ggaction 0.0.24 → 0.0.26

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 (217) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +2 -2
  3. package/knowledge/action-cards.json +1 -1
  4. package/knowledge/intent-taxonomy.json +1 -1
  5. package/knowledge/mcp-resources.json +1 -1
  6. package/knowledge/task-resolver.js +1 -1
  7. package/package.json +1 -1
  8. package/src/accessibility.js +13 -0
  9. package/src/actions/canvas/actions.js +2 -1
  10. package/src/actions/canvas/fitting.js +68 -13
  11. package/src/actions/charts/beeswarm.js +2 -1
  12. package/src/actions/charts/ecdf.js +2 -1
  13. package/src/actions/charts/endpoints.js +25 -16
  14. package/src/actions/charts/heatmap.js +5 -3
  15. package/src/actions/charts/missing.js +17 -0
  16. package/src/actions/charts/radar.js +70 -33
  17. package/src/actions/charts/raincloud.js +18 -4
  18. package/src/actions/charts/rug-strip.js +2 -2
  19. package/src/actions/charts/shared.js +17 -0
  20. package/src/actions/composition/actions.js +24 -7
  21. package/src/actions/composition/adjacent.js +90 -0
  22. package/src/actions/composition/index.js +11 -1
  23. package/src/actions/composition/layer.js +42 -0
  24. package/src/actions/composition/layerPlan.js +176 -0
  25. package/src/actions/composition/targets.js +105 -0
  26. package/src/actions/data/derived.js +3 -0
  27. package/src/actions/data/filter.js +1 -1
  28. package/src/actions/data/raincloudFilter.js +3 -1
  29. package/src/actions/encodings/appearance.js +26 -7
  30. package/src/actions/encodings/channels.js +1 -0
  31. package/src/actions/encodings/color/continuous.js +37 -34
  32. package/src/actions/encodings/color/index.js +57 -43
  33. package/src/actions/encodings/color/policy.js +15 -0
  34. package/src/actions/encodings/density/resolve.js +3 -2
  35. package/src/actions/encodings/density.js +2 -2
  36. package/src/actions/encodings/offset.js +2 -0
  37. package/src/actions/encodings/pathOrder.js +2 -0
  38. package/src/actions/encodings/position/areaAlignment.js +42 -0
  39. package/src/actions/encodings/position/index.js +37 -3
  40. package/src/actions/encodings/position/policies/line.js +1 -1
  41. package/src/actions/encodings/ranged.js +2 -0
  42. package/src/actions/encodings/remove.js +13 -10
  43. package/src/actions/encodings/ruleAppearance.js +14 -2
  44. package/src/actions/facets/actions.js +1 -1
  45. package/src/actions/guides/axes/axes.js +2 -1
  46. package/src/actions/guides/axes/edit.js +1 -1
  47. package/src/actions/guides/axes/labels.js +2 -1
  48. package/src/actions/guides/axes/parallel/lifecycle.js +11 -4
  49. package/src/actions/guides/axes/parallel/policy.js +5 -2
  50. package/src/actions/guides/axes/parallel/resolve.js +3 -1
  51. package/src/actions/guides/axes/parallel.js +9 -4
  52. package/src/actions/guides/axes/titles.js +1 -1
  53. package/src/actions/guides/facadeLegend.js +3 -2
  54. package/src/actions/guides/grids/grid.js +3 -2
  55. package/src/actions/guides/grids/resolve.js +2 -1
  56. package/src/actions/guides/guides.js +3 -2
  57. package/src/actions/guides/legends/automatic.js +28 -0
  58. package/src/actions/guides/legends/blocks.js +15 -21
  59. package/src/actions/guides/legends/categorical/actions.js +1 -1
  60. package/src/actions/guides/legends/categorical/components.js +4 -3
  61. package/src/actions/guides/legends/categorical/layout.js +5 -2
  62. package/src/actions/guides/legends/categorical/options.js +9 -14
  63. package/src/actions/guides/legends/categorical/recipes.js +3 -0
  64. package/src/actions/guides/legends/categorical/resolve.js +7 -5
  65. package/src/actions/guides/legends/colorSize.js +51 -14
  66. package/src/actions/guides/legends/continuous/common.js +1 -1
  67. package/src/actions/guides/legends/continuous/gradient.js +1 -1
  68. package/src/actions/guides/legends/continuous/opacity.js +2 -0
  69. package/src/actions/guides/legends/edit.js +1 -1
  70. package/src/actions/guides/legends/focused.js +2 -2
  71. package/src/actions/guides/legends/group.js +1 -1
  72. package/src/actions/guides/legends/lane.js +1 -1
  73. package/src/actions/guides/legends/lifecycle.js +2 -2
  74. package/src/actions/guides/legends/remove.js +18 -4
  75. package/src/actions/guides/legends/size.js +1 -1
  76. package/src/actions/guides/legends/transition.js +15 -6
  77. package/src/actions/guides/polar/axes/facade.js +4 -2
  78. package/src/actions/guides/polar/axes/labels.js +6 -1
  79. package/src/actions/guides/polar/axes/shared.js +4 -4
  80. package/src/actions/guides/polar/axes/titles.js +13 -2
  81. package/src/actions/guides/polar/grids.js +6 -3
  82. package/src/actions/guides/tickValues.js +7 -1
  83. package/src/actions/index.js +2 -0
  84. package/src/actions/marks/area/actions.js +9 -2
  85. package/src/actions/marks/area/materialize.js +1 -1
  86. package/src/actions/marks/bar/materialize.js +4 -4
  87. package/src/actions/marks/lifecycle.js +14 -0
  88. package/src/actions/marks/line/actions.js +3 -0
  89. package/src/actions/marks/line/materialize.js +4 -2
  90. package/src/actions/marks/point/edit.js +2 -0
  91. package/src/actions/marks/point/jitter.js +2 -0
  92. package/src/actions/marks/point/materialize.js +5 -4
  93. package/src/actions/marks/point/packing.js +2 -0
  94. package/src/actions/marks/references.js +5 -3
  95. package/src/actions/marks/remove.js +16 -0
  96. package/src/actions/marks/shared.js +2 -1
  97. package/src/actions/marks/text/actions.js +5 -2
  98. package/src/actions/overlays/index.js +168 -0
  99. package/src/actions/overlays/snapshot.js +45 -0
  100. package/src/actions/primitives/editGraphics.js +21 -27
  101. package/src/actions/primitives/semanticAction.js +4 -5
  102. package/src/actions/primitives/semanticValidation/guide.js +1 -0
  103. package/src/actions/primitives/semanticValidation/layer.js +7 -0
  104. package/src/actions/scales/consumers/common.js +10 -0
  105. package/src/actions/scales/consumers/families.js +1 -1
  106. package/src/actions/scales/preview.js +1 -1
  107. package/src/actions/selection/actions.js +63 -11
  108. package/src/actions/titles/actions.js +3 -14
  109. package/src/actions/titles/resolve.js +12 -9
  110. package/src/core/action.js +41 -25
  111. package/src/core/compositionScales.js +12 -0
  112. package/src/core/compositionState.js +16 -2
  113. package/src/core/immutable.js +11 -6
  114. package/src/core/programState.js +16 -0
  115. package/src/core/resourceReferences.js +19 -3
  116. package/src/core/validation.js +7 -0
  117. package/src/core/vocabulary.js +8 -2
  118. package/src/grammar/actionTargets.js +24 -0
  119. package/src/grammar/bin2d.js +7 -0
  120. package/src/grammar/colorSizeLegend.js +56 -5
  121. package/src/grammar/displayLabels.js +10 -0
  122. package/src/grammar/facetHeaders.js +1 -1
  123. package/src/grammar/facets/dependencies.js +10 -3
  124. package/src/grammar/facets/guides.js +2 -1
  125. package/src/grammar/facets/legendIntent.js +7 -5
  126. package/src/grammar/legendBlocks.js +1 -1
  127. package/src/grammar/legendCombinations.js +1 -1
  128. package/src/grammar/legendGroups.js +1 -1
  129. package/src/grammar/legendItemsOffset.js +12 -0
  130. package/src/grammar/legendOverflow.js +25 -0
  131. package/src/grammar/lineSeries.js +1 -1
  132. package/src/grammar/markSelection.js +23 -0
  133. package/src/grammar/overlay.js +51 -0
  134. package/src/grammar/parallelCoordinates.js +1 -208
  135. package/src/grammar/pathCommands.js +8 -2
  136. package/src/grammar/pathSeries.js +1 -1
  137. package/src/grammar/plotComposition.js +152 -0
  138. package/src/grammar/pointShapes.js +18 -0
  139. package/src/grammar/scales/transformed.js +1 -1
  140. package/src/grammar/schemas/concreteGraphic.js +8 -1
  141. package/src/grammar/schemas/graphicBounds.js +8 -1
  142. package/src/grammar/schemas/graphicTree.js +18 -2
  143. package/src/grammar/schemas/semanticPath.js +3 -0
  144. package/src/grammar/strokeStyle.js +14 -8
  145. package/src/grammar/text.js +72 -0
  146. package/src/inspection.js +1 -1
  147. package/src/inspectionDescriptors.js +1 -1
  148. package/src/layout/composition.js +30 -4
  149. package/src/layout/compositionLegend.js +91 -0
  150. package/src/layout/facetHeaderTitles.js +1 -1
  151. package/src/layout/labels.js +55 -27
  152. package/src/layout/legend.js +3 -2
  153. package/src/layout/legendGroup.js +1 -1
  154. package/src/layout/legendItems.js +7 -6
  155. package/src/layout/legendLane.js +1 -1
  156. package/src/layout/legendText.js +1 -1
  157. package/src/materialization/adjacentSource.js +27 -0
  158. package/src/materialization/composition.js +165 -52
  159. package/src/materialization/compositionLegends.js +120 -0
  160. package/src/materialization/compositionScales.js +125 -0
  161. package/src/materialization/compositionTitle.js +96 -0
  162. package/src/materialization/facetGuides/edit.js +22 -2
  163. package/src/materialization/facetGuides/layout.js +1 -1
  164. package/src/materialization/facetGuides/owner.js +4 -3
  165. package/src/materialization/facetGuides/ownerLayout.js +12 -6
  166. package/src/materialization/facetGuides/placement.js +19 -22
  167. package/src/materialization/facetGuides/preparation.js +17 -5
  168. package/src/materialization/facetHeaders.js +5 -1
  169. package/src/materialization/facets.js +1 -1
  170. package/src/materialization/guides/layout.js +1 -1
  171. package/src/materialization/guides/resources.js +1 -1
  172. package/src/materialization/guides/visibility.js +105 -0
  173. package/src/materialization/legendClip.js +1 -1
  174. package/src/materialization/legendGroups.js +1 -1
  175. package/src/materialization/legendItemsOffset.js +68 -0
  176. package/src/materialization/legendSuppression.js +22 -0
  177. package/src/materialization/legends.js +3 -2
  178. package/src/materialization/marks/capabilities.js +4 -0
  179. package/src/materialization/marks/index.js +5 -1
  180. package/src/materialization/marks/pathOrder.js +1 -1
  181. package/src/materialization/marks/policies.js +2 -1
  182. package/src/materialization/overlayItems.js +154 -0
  183. package/src/materialization/scales/policies/binnedPosition.js +43 -5
  184. package/src/materialization/scales/policies/series.js +12 -4
  185. package/src/materialization/scales/resolve.js +2 -0
  186. package/src/materialization/selection/items/bar.js +21 -3
  187. package/src/materialization/selection/items/common.js +18 -5
  188. package/src/materialization/selection/items/overlay.js +15 -0
  189. package/src/materialization/selection/items/path.js +1 -0
  190. package/src/materialization/selection/items/point.js +2 -3
  191. package/src/materialization/selection/items/tick.js +3 -12
  192. package/src/materialization/selection/path.js +2 -2
  193. package/src/materialization/selection/policies/bar.js +2 -0
  194. package/src/materialization/selection/policies/index.js +35 -1
  195. package/src/materialization/selection/policies/point.js +2 -0
  196. package/src/materialization/selection/policies/text.js +17 -0
  197. package/src/materialization/selection/rows.js +103 -0
  198. package/src/materialization/selection/state.js +19 -3
  199. package/src/materialization/selection/styles.js +8 -0
  200. package/src/materialization/text.js +6 -489
  201. package/src/materialization/textGeometry.js +503 -0
  202. package/src/materialization/textLines.js +20 -0
  203. package/src/persistence/validation.js +97 -24
  204. package/src/renderers/canvas/index.js +12 -7
  205. package/src/renderers/canvas/text.js +5 -5
  206. package/src/renderers/nativeBackend.js +25 -0
  207. package/src/renderers/pdf.js +3 -3
  208. package/src/renderers/png.js +4 -3
  209. package/src/renderers/svgSerialization.js +1 -643
  210. package/src/scene.js +5 -3
  211. package/src/selectors/plotComposition.js +115 -0
  212. package/src/selectors/selectionTargets.js +19 -0
  213. package/src/version.js +1 -1
  214. package/types/basic.d.ts +2 -2
  215. package/types/index.d.ts +11 -0
  216. package/types/inspection.d.ts +34 -0
  217. package/types/program.d.ts +553 -365
@@ -157,19 +157,34 @@ export interface CompositionPadding {
157
157
  export type CompositionProgramEntry =
158
158
  | ChartProgram
159
159
  | { id?: string; program: ChartProgram };
160
+ /** Explicit child paths avoid ambiguous IDs in composed charts. An empty path addresses this view. */
161
+ export interface ScopedActionTarget { childPath: readonly string[]; id?: string; /** Persist this action in a facet source, then regenerate its cells. */ facetSource?: true; }
162
+ export type ActionTargetList = readonly [string | ScopedActionTarget, ...(string | ScopedActionTarget)[]];
163
+ /** Full authoring can apply one native action atomically to named resources or views. */
164
+ export type TargetedOptions<T> = T | (T extends unknown ? Omit<T, "target"> & { target: ScopedActionTarget | ActionTargetList } : never);
165
+ export interface CompositionShares {
166
+ x?: boolean; y?: boolean; color?: boolean; stroke?: boolean; size?: boolean; shape?: boolean;
167
+ opacity?: boolean; strokeWidth?: boolean; strokeDash?: boolean;
168
+ }
169
+ export interface EditCompositionScalesOptions { share: CompositionShares; }
160
170
  export interface CompositionOptions {
171
+ /** Keep non-shared guides local (default), or collect all displayed blocks around the parent plot union. */
172
+ legends?: "local" | "collect";
173
+ share?: CompositionShares;
161
174
  id?: string;
162
175
  programs: readonly CompositionProgramEntry[];
163
176
  gap?: number;
164
- align?: CompositionAlign;
177
+ align?: CompositionAlign | "plot";
165
178
  padding?: number | CompositionPadding;
166
179
  }
167
180
  /** Facets may set independent axis gaps; concat continues to require a number. */
168
181
  export type FacetGap = number | Readonly<{ x: number; y: number }>;
169
182
  export interface EditCompositionLayoutOptions {
183
+ /** Concat only. Change guide collection without changing scale sharing. */
184
+ legends?: "local" | "collect";
170
185
  columns?: number;
171
186
  gap?: FacetGap;
172
- align?: CompositionAlign;
187
+ align?: CompositionAlign | "plot";
173
188
  padding?: number | CompositionPadding;
174
189
  /** Interpret gap between child canvases (default), inner plots, or retained full content (wrapped facets). */
175
190
  spacing?: "canvas" | "plot" | "content";
@@ -191,6 +206,67 @@ export interface RemoveCompositionChildOptions { target: string; }
191
206
  export interface ReorderCompositionChildrenOptions {
192
207
  order: readonly [string, ...string[]];
193
208
  }
209
+ type AdjacentConstructorOptions<T> = T extends unknown ? Partial<Omit<T, "id">> : never;
210
+ export type AdjacentPlotSpecification = (
211
+ | { action: "createScatterPlot"; options?: AdjacentConstructorOptions<CreateScatterPlotOptions> }
212
+ | { action: "createLinePlot"; options?: Partial<AdjacentConstructorOptions<CreateLinePlotOptions>> }
213
+ | { action: "createBarPlot"; options?: Partial<AdjacentConstructorOptions<CreateBarPlotOptions>> }
214
+ | { action: "createAreaPlot"; options?: AdjacentConstructorOptions<CreateAreaPlotOptions> }
215
+ | { action: "createDotPlot"; options?: AdjacentConstructorOptions<CreateDotPlotOptions> }
216
+ | { action: "createLollipopPlot"; options?: AdjacentConstructorOptions<CreateLollipopPlotOptions> }
217
+ | { action: "createDumbbellPlot"; options?: AdjacentConstructorOptions<CreateDumbbellPlotOptions> }
218
+ | { action: "createECDFPlot"; options?: AdjacentConstructorOptions<CreateECDFPlotOptions> }
219
+ | { action: "createIntervalPlot"; options?: AdjacentConstructorOptions<CreateIntervalPlotOptions> }
220
+ | { action: "createRegressionPlot"; options?: AdjacentConstructorOptions<CreateRegressionPlotOptions> }
221
+ | { action: "createRugPlot"; options?: AdjacentConstructorOptions<CreateRugPlotOptions> }
222
+ | { action: "createStripPlot"; options?: AdjacentConstructorOptions<CreateStripPlotOptions> }
223
+ | { action: "createBeeswarmPlot"; options?: AdjacentConstructorOptions<CreateBeeswarmPlotOptions> }
224
+ | { action: "createRaincloudPlot"; options?: AdjacentConstructorOptions<CreateRaincloudPlotOptions> }
225
+ | { action: "createBoxPlot"; options?: AdjacentConstructorOptions<BoxPlotOptions> }
226
+ | { action: "createGradientPlot"; options?: AdjacentConstructorOptions<GradientPlotOptions> }
227
+ | { action: "createViolinPlot"; options?: AdjacentConstructorOptions<ViolinPlotOptions> }
228
+ | { action: "createDensityPlot"; options?: AdjacentConstructorOptions<CreateDensityPlotOptions> }
229
+ | { action: "createHorizonPlot"; options?: AdjacentConstructorOptions<CreateHorizonPlotOptions> }
230
+ | { action: "createHistogram"; options?: AdjacentConstructorOptions<CreateHistogramOptions> }
231
+ | { action: "createHeatmap"; options?: AdjacentConstructorOptions<CreateHeatmapOptions> }
232
+ | { action: "createPiePlot"; options?: AdjacentConstructorOptions<CreatePiePlotOptions> }
233
+ | { action: "createRosePlot"; options?: AdjacentConstructorOptions<CreateRosePlotOptions> }
234
+ | { action: "createRadialBarPlot"; options?: AdjacentConstructorOptions<CreateRadialBarPlotOptions> }
235
+ | { action: "createPolarScatterPlot"; options?: AdjacentConstructorOptions<CreatePolarScatterPlotOptions> }
236
+ | { action: "createPolarLinePlot"; options?: AdjacentConstructorOptions<CreatePolarLinePlotOptions> }
237
+ | { action: "createRadarPlot"; options?: AdjacentConstructorOptions<CreateRadarPlotOptions> }
238
+ | { action: "createParallelCoordinates"; options?: AdjacentConstructorOptions<CreateParallelCoordinatesOptions> }
239
+ | { action: "createTextPlot"; options?: AdjacentConstructorOptions<CreateTextPlotOptions> }) & { inherit?: { color?: boolean } };
240
+ /** A native constructor with positional/data decisions inferred from the source.
241
+ * Omitted color is inherited only when valid at the new plot's grain. Line and
242
+ * Polar Line require one color value per series; otherwise the default is a
243
+ * single color. Explicit color/groupBy options remain validated and authoritative.
244
+ */
245
+ export type LayerPlotSpecification = {
246
+ [Action in AdjacentPlotSpecification["action"]]: {
247
+ action: Action;
248
+ inherit?: { color?: boolean };
249
+ options?: Partial<NonNullable<Extract<AdjacentPlotSpecification, { action: Action }>["options"]>> & { guides?: false };
250
+ }
251
+ }[AdjacentPlotSpecification["action"]];
252
+ export interface CreateLayerPlotOptions {
253
+ id?: string;
254
+ source?: string;
255
+ plot: LayerPlotSpecification;
256
+ placement?: "front" | "back";
257
+ }
258
+
259
+ export interface CreateAdjacentPlotOptions {
260
+ /** Collect all legends around the combined view by default. Local retains panel-owned placement. */
261
+ legends?: "local" | "collect";
262
+ id?: string;
263
+ /** Source mark in a unit/facet, or an explicit panel path relative to the receiving concat. */
264
+ source?: string | { childPath: readonly string[]; id: string };
265
+ position?: "left" | "right" | "top" | "bottom";
266
+ plot?: AdjacentPlotSpecification; share?: CompositionShares; gap?: number;
267
+ align?: CompositionAlign | "plot";
268
+ }
269
+
194
270
  export type FacetScaleResolution = "shared" | "independent";
195
271
  export interface FacetScaleResolutions {
196
272
  x?: FacetScaleResolution;
@@ -315,11 +391,13 @@ export type FacetHeaderRole = "all" | "row" | "column";
315
391
  export type FacetHeaderSide = "top" | "bottom" | "left" | "right";
316
392
  export type FacetHeaderAlign = "start" | "center" | "end";
317
393
  export interface ConcatCompositionSpec {
394
+ readonly legends?: "local" | "collect";
318
395
  readonly id: string;
319
396
  readonly direction: "horizontal" | "vertical";
320
397
  readonly children: readonly string[];
321
398
  readonly gap: number;
322
- readonly align: CompositionAlign;
399
+ readonly align: CompositionAlign | "plot";
400
+ readonly share?: Readonly<CompositionShares>;
323
401
  readonly padding: Readonly<Required<CompositionPadding>>;
324
402
  }
325
403
  export interface FacetCompositionSpec {
@@ -1092,7 +1170,7 @@ export type MarkGraphicProperty =
1092
1170
  | "x" | "y" | "width" | "height" | "radius"
1093
1171
  | "x1" | "y1" | "x2" | "y2"
1094
1172
  | "fill" | "stroke" | "strokeWidth" | "opacity";
1095
- export type MarkSelector = {
1173
+ export type MarkSelector = { grain?: "item" | "stack"; rows: { data: string; indices: readonly number[] }; } | {
1096
1174
  grain?: "item" | "stack";
1097
1175
  } & (
1098
1176
  | { field: string; channel?: never; property?: never }
@@ -1132,6 +1210,7 @@ export interface RemoveMarkFilterOptions {
1132
1210
  target?: string;
1133
1211
  }
1134
1212
  export interface HighlightMarksOptions {
1213
+ fontSize?: number;
1135
1214
  id?: string;
1136
1215
  target?: string;
1137
1216
  select?: MarkSelector;
@@ -1266,7 +1345,7 @@ export type EditSemanticOptions =
1266
1345
  | { property: string; remove: true; value?: never };
1267
1346
  export type EditGraphicsOptions =
1268
1347
  | { target: string; property: string; value: unknown; remove?: false }
1269
- | { target: string; remove: true; property?: never; value?: never };
1348
+ | { target: string | readonly string[]; remove: true; property?: never; value?: never };
1270
1349
 
1271
1350
  export interface TraceNode {
1272
1351
  readonly id: string;
@@ -1330,11 +1409,43 @@ export interface SemanticLayer {
1330
1409
  readonly coordinate?: string;
1331
1410
  readonly mark?: Readonly<{ type?: string; missing?: "error" | "break" | "skip"; blend?: "difference"; [key: string]: unknown }>;
1332
1411
  readonly layout?: Readonly<{ mode?: ColorLayout }>;
1333
- readonly derivedBindings?: Readonly<{ regression?: Readonly<{ mode: "follow"; roles: readonly ["data", "x", "y"] }> }>;
1412
+ readonly derivedBindings?: Readonly<{ regression?: Readonly<{ mode: "follow"; roles: readonly ["data", "x", "y"] }>;
1413
+ overlay?: Readonly<{ source: string; basis: "visibleItems"; mode: "follow"; series: "source" | "total";
1414
+ missing: "break" | "connect"; orderBy?: "x" | "y"; inheritColor: boolean }> }>;
1334
1415
  readonly encoding?: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
1335
1416
  readonly [key: string]: unknown;
1336
1417
  }
1337
1418
 
1419
+ export interface OverlayLineAppearance extends StrokeStyleDetails {
1420
+ clip?: boolean;
1421
+ stroke?: string;
1422
+ strokeWidth?: number;
1423
+ opacity?: number;
1424
+ curve?: CurveInterpolation;
1425
+ tension?: number;
1426
+ closed?: boolean;
1427
+ }
1428
+ export interface OverlayPointAppearance extends StrokeStyleDetails {
1429
+ clip?: boolean;
1430
+ shape?: PointShape;
1431
+ fill?: string;
1432
+ stroke?: FilledMarkStroke;
1433
+ strokeWidth?: number;
1434
+ opacity?: number;
1435
+ }
1436
+ export type CreateOverlayOptions = {
1437
+ id?: string;
1438
+ source?: string;
1439
+ basis?: "visibleItems";
1440
+ series?: "source" | "total";
1441
+ missing?: "break" | "connect";
1442
+ orderBy?: "x" | "y";
1443
+ } & ({ type?: "line"; line?: OverlayLineAppearance; point?: never } |
1444
+ { type: "point"; point?: OverlayPointAppearance; line?: never });
1445
+ export type EditOverlayOptions = { target?: string } & ({ follow: false; source?: never;
1446
+ series?: never; missing?: never; orderBy?: never } | { follow?: true; source?: string;
1447
+ series?: "source" | "total"; missing?: "break" | "connect"; orderBy?: "x" | "y" });
1448
+
1338
1449
  export interface SemanticScale {
1339
1450
  readonly id: string;
1340
1451
  readonly type?: ScaleType;
@@ -1405,6 +1516,8 @@ export interface CanvasOptions {
1405
1516
  }
1406
1517
 
1407
1518
  export interface FitCanvasOptions {
1519
+ /** Exact inner plot mode: distribute spare outer space around visible content. */
1520
+ align?: "preserve" | "center";
1408
1521
  /** Minimum fitted margin on every Canvas edge. Defaults to 0. */
1409
1522
  padding?: number;
1410
1523
  /** Required final plot width. Defaults to 160. */
@@ -1455,6 +1568,8 @@ export type CartesianGuideDashMap = ReadonlyArray<Readonly<{
1455
1568
  strokeDash: readonly number[];
1456
1569
  }>>;
1457
1570
  export interface AxisLabelStyleOptions {
1571
+ /** Local text alignment; omission preserves the native owner default. */
1572
+ align?: "left" | "center" | "right";
1458
1573
  offset?: number;
1459
1574
  format?: AxisFormat;
1460
1575
  color?: string;
@@ -1574,8 +1689,10 @@ export type ParallelAxisTickSelection =
1574
1689
  | { count?: number; values?: never }
1575
1690
  | { values: readonly AxisValue[]; count?: never };
1576
1691
  export type ParallelAxisTicksOptions = AxisTickStyleOptions & ParallelAxisTickSelection;
1577
- export type ParallelAxisLabelsOptions = AxisLabelStyleOptions & ParallelAxisTickSelection;
1692
+ export type ParallelAxisLabelsOptions = AxisLabelStyleOptions & DisplayLabelOptions & ParallelAxisTickSelection;
1578
1693
  export interface ParallelAxisTitleOptions {
1694
+ /** Local text alignment; omission preserves the native owner default. */
1695
+ align?: "left" | "center" | "right";
1579
1696
  text?: string;
1580
1697
  offset?: number;
1581
1698
  color?: string;
@@ -1590,13 +1707,21 @@ export type ParallelAxisComponentsOptions = {
1590
1707
  title?: false | ParallelAxisTitleOptions;
1591
1708
  } & (
1592
1709
  | { ticksAndLabels?: false | (ParallelAxisTickSelection & {
1593
- ticks?: AxisTickStyleOptions; labels?: AxisLabelStyleOptions;
1710
+ ticks?: AxisTickStyleOptions; labels?: AxisLabelStyleOptions & DisplayLabelOptions;
1594
1711
  }); ticks?: never; labels?: never }
1595
1712
  | { ticks?: false | ParallelAxisTicksOptions; labels?: false | ParallelAxisLabelsOptions;
1596
1713
  ticksAndLabels?: never }
1597
1714
  );
1598
1715
  export type CreateParallelAxisOptions = ParallelAxisComponentsOptions;
1599
- export type EditParallelAxisOptions = ParallelAxisComponentsOptions;
1716
+ export type EditParallelAxisOptions = GuideVisibilityOptions & { field: string; target?: string;
1717
+ line?: false | VisibleGuide<AxisLineStyleOptions>;
1718
+ title?: false | VisibleGuide<ParallelAxisTitleOptions>;
1719
+ } & (
1720
+ | { ticksAndLabels?: false | (ParallelAxisTickSelection & {
1721
+ ticks?: VisibleGuide<AxisTickStyleOptions>; labels?: VisibleGuide<AxisLabelStyleOptions & DisplayLabelOptions>;
1722
+ }); ticks?: never; labels?: never }
1723
+ | { ticks?: false | VisibleGuide<ParallelAxisTicksOptions>; labels?: false | VisibleGuide<ParallelAxisLabelsOptions>; ticksAndLabels?: never }
1724
+ );
1600
1725
  export interface ParallelAxesOptions { target?: string; coordinate?: string; }
1601
1726
  export interface RemoveParallelAxisOptions { field: string; target?: string; }
1602
1727
 
@@ -1625,6 +1750,8 @@ export interface ThetaTicksAndLabelsOptions
1625
1750
  labels?: AxisLabelStyleOptions & DisplayLabelOptions;
1626
1751
  }
1627
1752
  export interface PolarTitleOptions {
1753
+ /** Local text alignment; omission preserves the native owner default. */
1754
+ align?: "left" | "center" | "right";
1628
1755
  text?: string;
1629
1756
  offset?: number;
1630
1757
  color?: string;
@@ -1668,21 +1795,22 @@ export interface CompleteRadialAxisOptions
1668
1795
  title?: false | RadialTitleOptions;
1669
1796
  }
1670
1797
  export interface EditPolarAxisOptions {
1798
+ visible?: boolean;
1671
1799
  angle?: number;
1672
- line?: false | AxisLineStyleOptions;
1673
- ticks?: false | PolarTickOptions;
1674
- labels?: false | PolarLabelOptions;
1675
- ticksAndLabels?: false | PolarTicksAndLabelsOptions;
1676
- title?: false | PolarTitleOptions;
1800
+ line?: false | VisibleGuide<AxisLineStyleOptions>;
1801
+ ticks?: false | VisibleGuide<PolarTickOptions>;
1802
+ labels?: false | VisibleGuide<PolarLabelOptions>;
1803
+ ticksAndLabels?: false | VisibleTickGroup<PolarTicksAndLabelsOptions>;
1804
+ title?: false | VisibleGuide<PolarTitleOptions>;
1677
1805
  }
1678
1806
  export interface EditThetaAxisOptions
1679
1807
  extends Omit<EditPolarAxisOptions, "angle" | "labels" | "ticksAndLabels"> {
1680
- labels?: false | ThetaAxisLabelOptions;
1681
- ticksAndLabels?: false | ThetaTicksAndLabelsOptions;
1808
+ labels?: false | VisibleGuide<ThetaAxisLabelOptions>;
1809
+ ticksAndLabels?: false | VisibleTickGroup<ThetaTicksAndLabelsOptions>;
1682
1810
  }
1683
1811
  export interface EditRadialAxisOptions
1684
1812
  extends Omit<EditPolarAxisOptions, "title"> {
1685
- title?: false | RadialTitleOptions;
1813
+ title?: false | VisibleGuide<RadialTitleOptions>;
1686
1814
  }
1687
1815
 
1688
1816
  export interface GridDirectionOptions {
@@ -1702,6 +1830,7 @@ export interface GridDirectionOptions {
1702
1830
  strokeDash?: readonly number[];
1703
1831
  }
1704
1832
  export interface EditGridOptions {
1833
+ visible?: boolean;
1705
1834
  strokeDashMap?: CartesianGuideDashMap | "auto";
1706
1835
  /** Absolute signed logical-pixel displacement; omission preserves the current value. */
1707
1836
  alongOffset?: number;
@@ -1737,6 +1866,7 @@ export interface PolarGridOptions {
1737
1866
  strokeDash?: readonly number[];
1738
1867
  }
1739
1868
  export interface EditPolarGridOptions {
1869
+ visible?: boolean;
1740
1870
  count?: number;
1741
1871
  values?: readonly AxisValue[];
1742
1872
  color?: string;
@@ -1773,11 +1903,12 @@ type FilledLegendSymbolRecipe = "auto"
1773
1903
  type FilledMarkLegendOptions = Omit<LegendOptions, "symbol" | "representation" | "combine"> & (
1774
1904
  | { combine?: "separate" | "size-shape"; representation?: "gradient"; symbol?: FilledLegendSymbolRecipe }
1775
1905
  | { combine?: "separate" | "size-shape"; representation: "symbols"; symbol?: "auto" | { type?: "point"; radius?: number; stroke?: string; strokeWidth?: number } }
1906
+ | { combine: "color-size-shape"; representation?: never; symbol?: "auto" | { type?: "point"; fill?: string; stroke?: string; strokeWidth?: number; opacity?: number } }
1776
1907
  | { combine: "color-size"; representation?: never; symbol?: "auto" | { type?: "point"; stroke?: string; strokeWidth?: number; opacity?: number } }
1777
1908
  );
1778
1909
  type DistributiveLegendOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
1779
- type SeparateFilledLegendOptions = DistributiveLegendOmit<Exclude<FilledMarkLegendOptions, { combine: "color-size" }>, "combine"> & { combine?: "separate" };
1780
- type CategoricalPointLegendOptions = DistributiveLegendOmit<Exclude<FilledMarkLegendOptions, { combine: "color-size" }>, "representation">;
1910
+ type SeparateFilledLegendOptions = DistributiveLegendOmit<Exclude<FilledMarkLegendOptions, { combine: "color-size" | "color-size-shape" }>, "combine"> & { combine?: "separate" };
1911
+ type CategoricalPointLegendOptions = DistributiveLegendOmit<Exclude<FilledMarkLegendOptions, { combine: "color-size" | "color-size-shape" }>, "representation">;
1781
1912
  type CategoricalLegendTextOptions = {
1782
1913
  offset?: number;
1783
1914
  color?: string;
@@ -1801,6 +1932,16 @@ type CartesianGuideOptions = {
1801
1932
  grid?: false | CartesianGridOptions;
1802
1933
  legend?: false | (DistributiveLegendOmit<FilledMarkLegendOptions, "order"> & { order?: CartesianLegendOrder });
1803
1934
  };
1935
+ // These constructors map hue through color, so their combined legend cannot
1936
+ // override fill. Scatter and direct legend actions also support mapped stroke.
1937
+ type ColorMappedPointLegendOptions =
1938
+ | Exclude<FilledMarkLegendOptions, { combine: "color-size-shape" }>
1939
+ | (Omit<Extract<FilledMarkLegendOptions, { combine: "color-size-shape" }>, "symbol"> & {
1940
+ symbol?: "auto" | { type?: "point"; stroke?: string; strokeWidth?: number; opacity?: number };
1941
+ });
1942
+ type ColorMappedPointGuideOptions = Omit<CartesianGuideOptions, "legend"> & {
1943
+ legend?: false | (DistributiveLegendOmit<ColorMappedPointLegendOptions, "order"> & { order?: CartesianLegendOrder });
1944
+ };
1804
1945
  type CartesianPathGuideOptions = Omit<CartesianGuideOptions, "legend"> & {
1805
1946
  legend?: false | (Omit<PathLegendOptions, "order"> & { order?: LegendValueOrder });
1806
1947
  };
@@ -3082,7 +3223,7 @@ type PointFacadePositionChannel =
3082
3223
  ));
3083
3224
  type LineXPositionChannel =
3084
3225
  | string
3085
- | ({ field: string; bin?: PositionEncodingBase["bin"] } & (
3226
+ | ({ field: string; bin?: PositionEncodingBase["bin"]; aggregate?: never } & (
3086
3227
  | {
3087
3228
  fieldType?: "quantitative";
3088
3229
  scale?: NonPointQuantitativePositionScaleOptions;
@@ -3112,6 +3253,7 @@ type LineYPositionChannel =
3112
3253
  aggregate?: never;
3113
3254
  scale?: NonPointTemporalPositionScaleOptions;
3114
3255
  }
3256
+ | { fieldType: "nominal" | "ordinal"; aggregate?: never; scale?: NonPointCategoricalPositionScaleOptions }
3115
3257
  ));
3116
3258
  type BandPositionChannel = FacadePositionChannel<
3117
3259
  NonPointZeroSupportingPositionScaleOptions,
@@ -3255,17 +3397,15 @@ export type ParallelDimension = string | ({
3255
3397
  } & (
3256
3398
  | {
3257
3399
  fieldType: "quantitative";
3258
- scale?: WithoutScaleId<QuantitativePositionScaleOptions>;
3400
+ scale?: QuantitativePositionScaleOptions;
3259
3401
  }
3260
3402
  | {
3261
3403
  fieldType: "ordinal";
3262
- scale?: WithoutScaleId<CategoricalPositionScaleOptions>;
3404
+ scale?: CategoricalPositionScaleOptions;
3263
3405
  }
3264
3406
  | {
3265
3407
  fieldType?: undefined;
3266
- scale?: WithoutScaleId<
3267
- QuantitativePositionScaleOptions | CategoricalPositionScaleOptions
3268
- >;
3408
+ scale?: QuantitativePositionScaleOptions | CategoricalPositionScaleOptions;
3269
3409
  }
3270
3410
  ));
3271
3411
  export interface ParallelCoordinatesEncodingOptions {
@@ -3364,7 +3504,7 @@ type RegressionPlotBaseOptions = {
3364
3504
  size?: BasicSizeChannel;
3365
3505
  shape?: BasicShapeChannel;
3366
3506
  point?: CreateScatterPlotOptions["point"];
3367
- guides?: false | CartesianGuideOptions;
3507
+ guides?: false | ColorMappedPointGuideOptions;
3368
3508
  };
3369
3509
  type RegressionPlotStatisticalOptions<T> = T extends unknown
3370
3510
  ? Omit<T, "target" | "x" | "y">
@@ -3394,6 +3534,7 @@ export type EndpointLabelOptions = Omit<
3394
3534
  | { field?: never; value: unknown }
3395
3535
  );
3396
3536
  type EndpointPlotBaseOptions = {
3537
+ missing?: "error" | "skip";
3397
3538
  id?: string;
3398
3539
  data?: string;
3399
3540
  coordinate?: string;
@@ -3424,7 +3565,7 @@ export interface CreateDumbbellPlotOptions extends EndpointPlotBaseOptions {
3424
3565
  }
3425
3566
  export type EditEndpointPlotOptions = { target?: string } & Partial<Pick<
3426
3567
  CreateDumbbellPlotOptions,
3427
- "data" | "coordinate" | "category" | "start" | "end" | "orientation" | "summary"
3568
+ "data" | "coordinate" | "category" | "start" | "end" | "orientation" | "summary" | "missing"
3428
3569
  >> & {
3429
3570
  value?: EndpointValueChannel;
3430
3571
  baseline?: number;
@@ -3473,7 +3614,7 @@ type PolarLegendOrder = LegendValueOrder | { channel: "theta"; values?: never };
3473
3614
  type PolarPathLegendOptions = Omit<PathLegendOptions, "order"> & {
3474
3615
  order?: PolarLegendOrder;
3475
3616
  };
3476
- type PolarPointLegendOptions = DistributiveLegendOmit<Exclude<FilledMarkLegendOptions, { combine: "color-size" }>, "order"> & {
3617
+ type PolarPointLegendOptions = DistributiveLegendOmit<Exclude<FilledMarkLegendOptions, { combine: "color-size" | "color-size-shape" }>, "order"> & {
3477
3618
  order?: PolarLegendOrder;
3478
3619
  };
3479
3620
  export type PolarPathGuideOptions = Omit<PolarChartGuideOptions, "legend"> & {
@@ -3553,6 +3694,10 @@ export type RadarGuideOptions = Omit<PolarPathGuideOptions, "axes" | "grid" | "l
3553
3694
  legend?: false | (Omit<PathLegendOptions, "order"> & { order?: LegendValueOrder });
3554
3695
  };
3555
3696
  export interface RadarWideOptions {
3697
+ /** Explicit aggregation into one profile per group. False requires unique series rows. */
3698
+ summary?: false | "mean" | "median";
3699
+ /** Explicit min-max normalization of each selected dimension across the resulting profiles. Constant dimensions map to zero. */
3700
+ normalize?: false | "minmax";
3556
3701
  fields: readonly [string, string, string, ...string[]];
3557
3702
  as?: { key?: string; value?: string };
3558
3703
  }
@@ -3580,7 +3725,7 @@ export type CreateRadarPlotOptions = {
3580
3725
  );
3581
3726
  export interface EditRadarPlotOptions {
3582
3727
  target?: string;
3583
- wide: { fields: readonly [string, string, ...string[]] };
3728
+ wide: { fields: readonly [string, string, ...string[]]; summary?: false | "mean" | "median"; normalize?: false | "minmax" };
3584
3729
  }
3585
3730
  export type RugMeasureChannel = string | (
3586
3731
  | {
@@ -3643,6 +3788,7 @@ export interface StripBandJitterOptions {
3643
3788
  }
3644
3789
  export type StripJitterOptions = StripPixelJitterOptions | StripBandJitterOptions;
3645
3790
  export type CreateStripPlotOptions = {
3791
+ missing?: "error" | "skip";
3646
3792
  id?: string;
3647
3793
  data?: string;
3648
3794
  coordinate?: string;
@@ -3658,7 +3804,7 @@ export type CreateStripPlotOptions = {
3658
3804
  stroke?: FilledMarkStroke;
3659
3805
  strokeWidth?: number;
3660
3806
  };
3661
- guides?: false | CartesianGuideOptions;
3807
+ guides?: false | ColorMappedPointGuideOptions;
3662
3808
  } & (
3663
3809
  | { x: RugMeasureChannel; y?: never; jitter?: false | StripPixelJitterOptions }
3664
3810
  | { x: RugMeasureChannel; y: StripCategoryChannel; jitter?: false | StripBandJitterOptions }
@@ -3671,6 +3817,7 @@ export interface BeeswarmPackingOptions {
3671
3817
  overflow?: "error" | "overlap";
3672
3818
  }
3673
3819
  export type CreateBeeswarmPlotOptions = {
3820
+ missing?: "error" | "skip";
3674
3821
  id?: string;
3675
3822
  data?: string;
3676
3823
  coordinate?: string;
@@ -3687,7 +3834,7 @@ export type CreateBeeswarmPlotOptions = {
3687
3834
  strokeWidth?: number;
3688
3835
  };
3689
3836
  packing?: false | BeeswarmPackingOptions;
3690
- guides?: false | CartesianGuideOptions;
3837
+ guides?: false | ColorMappedPointGuideOptions;
3691
3838
  } & (
3692
3839
  | { x: RugMeasureChannel; y: StripCategoryChannel }
3693
3840
  | { x: StripCategoryChannel; y: RugMeasureChannel }
@@ -3746,6 +3893,7 @@ export type RaincloudValueChannel = string | {
3746
3893
  };
3747
3894
  export type RaincloudColorChannel = LineCategoricalColorChannel | { value: string };
3748
3895
  export interface CreateRaincloudPlotOptions {
3896
+ missing?: "error" | "skip";
3749
3897
  id?: string;
3750
3898
  data?: string;
3751
3899
  coordinate?: string;
@@ -3760,6 +3908,7 @@ export interface CreateRaincloudPlotOptions {
3760
3908
  guides?: false | CartesianCategoricalPointGuideOptions;
3761
3909
  }
3762
3910
  export interface EditRaincloudPlotOptions {
3911
+ missing?: "error" | "skip";
3763
3912
  target?: string;
3764
3913
  data?: string;
3765
3914
  category?: RaincloudCategoryChannel;
@@ -3803,12 +3952,10 @@ export type CreateAreaPlotOptions = {
3803
3952
  | { valueChannel: "x"; x: Extract<AreaPlotMeasureChannel, { lower: unknown }>; y: AreaPlotIndependentChannel; baseline?: never }
3804
3953
  );
3805
3954
 
3806
- export interface CreateLinePlotOptions {
3955
+ interface LinePlotCommonOptions {
3807
3956
  id?: string;
3808
3957
  data?: string;
3809
3958
  coordinate?: string;
3810
- x: LineXPositionChannel;
3811
- y: LineYPositionChannel;
3812
3959
  color?: LineCategoricalColorChannel<CategoricalColorScaleOptions>;
3813
3960
  groupBy?: string | readonly [string, ...string[]];
3814
3961
  strokeDash?: BasicStrokeDashChannel;
@@ -3822,18 +3969,20 @@ export interface CreateLinePlotOptions {
3822
3969
  opacity?: number;
3823
3970
  closed?: false;
3824
3971
  };
3825
- guides?: false | (Omit<CPathGuides, "legend" | "grid"> & {
3826
- grid?: false | (Omit<CartesianGridOptions, "horizontal"> & {
3827
- horizontal?: boolean | (Omit<GridDirectionOptions, "bandPosition"> & {
3828
- /** Line y is continuous; band positioning is available only for categorical x grids. */
3829
- bandPosition?: never;
3830
- });
3831
- });
3832
- legend?: false | (Omit<PathLegendOptions, "order"> & {
3833
- order?: LegendValueOrder | { channel: "x"; values?: never };
3834
- });
3972
+ }
3973
+ type LinePlotGuides<Continuous extends "horizontal" | "vertical"> = Omit<CPathGuides, "legend" | "grid"> & {
3974
+ grid?: false | (Omit<CartesianGridOptions, Continuous> & {
3975
+ [Direction in Continuous]?: boolean | (Omit<GridDirectionOptions, "bandPosition"> & { bandPosition?: never });
3835
3976
  });
3836
- }
3977
+ legend?: false | (Omit<PathLegendOptions, "order"> & { order?: LegendValueOrder | { channel: Continuous extends "horizontal" ? "x" : "y"; values?: never } });
3978
+ };
3979
+ export type CreateLinePlotOptions = LinePlotCommonOptions & (
3980
+ | { x: LineXPositionChannel; y: Exclude<LineYPositionChannel, { fieldType: "nominal" | "ordinal" }>; guides?: false | LinePlotGuides<"horizontal"> }
3981
+ | { x: string | { field: string; fieldType?: "quantitative"; aggregate?: AggregateOperation; scale?: NonPointQuantitativePositionScaleOptions };
3982
+ y: Extract<LineYPositionChannel, { fieldType: "nominal" | "ordinal" }>; guides?: false | LinePlotGuides<"vertical"> }
3983
+ | { x: { field: string; fieldType?: "quantitative"; aggregate: AggregateOperation; scale?: NonPointQuantitativePositionScaleOptions };
3984
+ y: string | (Exclude<AreaPlotIndependentChannel, string> & { aggregate?: never }); guides?: false | LinePlotGuides<"vertical"> }
3985
+ );
3837
3986
 
3838
3987
  type BasicHistogramEncoding =
3839
3988
  HistogramEncodingOptions extends infer T
@@ -4220,8 +4369,16 @@ export interface TextMarkOptions {
4220
4369
  dy?: number;
4221
4370
  }
4222
4371
 
4372
+ export interface TextOverride {
4373
+ match: { fields?: Readonly<Record<string, string | number | boolean | null>>; channels?: Readonly<Record<string, string | number | boolean | null>> };
4374
+ occurrence: number;
4375
+ text: string;
4376
+ }
4377
+
4223
4378
  export interface EditTextMarkOptions extends Omit<TextMarkOptions, "id" | "data" | "source" | "text"> {
4224
4379
  target?: string;
4380
+ /** Display-only semantic item overrides; auto restores encoded content. */
4381
+ textOverrides?: readonly TextOverride[] | "auto";
4225
4382
  }
4226
4383
 
4227
4384
  export type LabelLayoutAxis = "x" | "y" | "both";
@@ -4554,7 +4711,8 @@ export type OpacityScaleOptions = ScaleFields<
4554
4711
  unknown?: number;
4555
4712
  };
4556
4713
 
4557
- /** Constant or quantitative opacity on Point, Rule, Line, Bar, or row-owned Rect marks. */
4714
+ /** Constant or quantitative opacity on Point, Rule, Line, Area, Bar, or row-owned Rect marks.
4715
+ * Line and Area fields must be constant within each existing path series. */
4558
4716
  export type OpacityEncodingOptions =
4559
4717
  | { value: number; field?: never; target?: string; fieldType?: never; scale?: never }
4560
4718
  | {
@@ -4650,7 +4808,10 @@ export type SizeEncodingOptions =
4650
4808
  | { fieldType: "nominal" | "ordinal"; scale?: CategoricalSizeScaleOptions }
4651
4809
  ));
4652
4810
 
4653
- export type ShapeEncodingOptions = {
4811
+ export type ShapeEncodingOptions =
4812
+ | { value: PointShape; target?: string; field?: never; fieldType?: never; scale?: never }
4813
+ | {
4814
+ value?: never;
4654
4815
  field: string;
4655
4816
  target?: string;
4656
4817
  fieldType?: "nominal";
@@ -4878,6 +5039,8 @@ export interface RemoveLegendOptions {
4878
5039
  target?: string;
4879
5040
  /** Remove selected content, including part of a combined categorical legend; omission removes every owned block. */
4880
5041
  channels?: readonly ("color" | "stroke" | "strokeDash" | "strokeWidth" | "shape" | "size" | "opacity")[];
5042
+ /** Keep removed channels out of automatic guides until explicit createLegend restores them. Default false. */
5043
+ suppress?: boolean;
4881
5044
  }
4882
5045
 
4883
5046
  export interface RemoveMarkOptions {
@@ -4885,6 +5048,8 @@ export interface RemoveMarkOptions {
4885
5048
  }
4886
5049
 
4887
5050
  export interface LegendTextOptions {
5051
+ /** Local text alignment; omission preserves the native owner default. */
5052
+ align?: "left" | "center" | "right";
4888
5053
  /** Gap after the occupied sample slot: categorical color/interval default 8; series 10; size/width 12.
4889
5054
  * Categorical slots include all recipe strokes and mapped shape extents.
4890
5055
  * Size retains a minimum 32px slot. Width includes the widest line stroke.
@@ -4952,14 +5117,14 @@ export type LegendOrder = LegendValueOrder |
4952
5117
  export interface LegendOptions {
4953
5118
  /** Positive sample window height. Clips point-bearing glyphs without changing mapped area. */
4954
5119
  clipHeight?: number;
4955
- /** Explicitly combine ordinal size/shape or same-field quantitative color/size circle samples. Omission retains separate blocks. */
4956
- combine?: "separate" | "size-shape" | "color-size";
5120
+ /** Combine size/shape, continuous color/size, or interval color/stroke + size + ordinal shape samples. Omission retains separate blocks. */
5121
+ combine?: "separate" | "size-shape" | "color-size" | "color-size-shape";
4957
5122
  /** Continuous color only. Omission creates the existing gradient; symbols samples the same scale without changing marks. */
4958
5123
  representation?: "gradient" | "symbols";
4959
5124
  /** Categorical, interval, size, or stroke-width layout. Defaults to edge; legacy-bottom is categorical and requires bottom position. */
4960
5125
  layout?: "edge" | "legacy-bottom";
4961
5126
  /** Categorical and ordinal-size display limit; omitted or false shows every item. */
4962
- overflow?: false | { maxItems: number; summary?: "ellipsis-count" };
5127
+ overflow?: false | { maxItems: number; summary?: "ellipsis-count"; summarySymbol?: "first-hidden" };
4963
5128
  /** Categorical item order; preserves the appearance scale's assignments. */
4964
5129
  order?: LegendOrder;
4965
5130
  target?: string;
@@ -4969,7 +5134,7 @@ export interface LegendOptions {
4969
5134
  position?: "right" | "left" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
4970
5135
  /** Arrange every legend block owned by the selected target. Item direction and columns remain independent. */
4971
5136
  blockLayout?: "row" | "column" | "wrap";
4972
- /** Occupied group top-left relative to the plot. Cannot be supplied with position, align, or offset in the same call. */
5137
+ /** Occupied group top-left relative to the plot. Cannot be supplied with position, align, offset, or alongOffset in the same call. */
4973
5138
  at?: { x: number; y: number };
4974
5139
  /** Single top/bottom edge: align complete occupied bounds, including border strokes, to the plot. Side positions require center. */
4975
5140
  align?: "left" | "center" | "right";
@@ -4977,6 +5142,8 @@ export interface LegendOptions {
4977
5142
  direction?: "horizontal" | "vertical";
4978
5143
  /** Categorical legends accept a positive column count on every supported position. */
4979
5144
  columns?: number;
5145
+ /** Signed logical pixels along the edge: right for top/bottom and in-plot corners, down for left/right. */
5146
+ alongOffset?: number;
4980
5147
  /** Single top/bottom edge: gap from the plot to the nearest occupied legend edge. */
4981
5148
  offset?: number;
4982
5149
  /** bottom is gradient-only; left retains the existing categorical/opacity rules. */
@@ -4984,7 +5151,7 @@ export interface LegendOptions {
4984
5151
  /** false hides the title while retaining its inferred field text. */
4985
5152
  /** LF, CRLF and CR preserve explicit title lines, including blank lines. */
4986
5153
  title?: string | false;
4987
- /** Exact ascending samples for continuous size, opacity, stroke-width, color symbols, or color/stroke gradient ticks. Cannot be combined with count. */
5154
+ /** Exact ascending samples for continuous guides, or one representative per interval for color-size-shape. Cannot be combined with count. */
4988
5155
  values?: readonly number[];
4989
5156
  count?: number;
4990
5157
  /** Body-only opacity defaults to 1; edits preserve omitted fields. */
@@ -5042,20 +5209,26 @@ export interface LegendTitleStyleEditOptions extends Omit<LegendTitleStyleOption
5042
5209
  align?: "left" | "center" | "right" | "auto";
5043
5210
  }
5044
5211
 
5212
+ export interface LegendLabelEditStyle extends LegendTextOptions { visible?: boolean; }
5213
+ export interface LegendTitleEditStyle extends LegendTitleStyleEditOptions { visible?: boolean; }
5045
5214
  export interface EditLegendOptions
5046
- extends Omit<LegendOptions, "title" | "values" | "titleStyle" | "direction" | "position" | "clipHeight" | "rowPadding" | "titlePadding"> {
5215
+ extends Omit<LegendOptions, "labels" | "title" | "values" | "titleStyle" | "direction" | "position" | "clipHeight" | "rowPadding" | "titlePadding"> {
5216
+ visible?: boolean;
5217
+ /** Body offset in pixels; auto resets. */
5218
+ itemsOffset?: { x?: number; y?: number } | "auto";
5219
+ labels?: LegendLabelEditStyle;
5047
5220
  clipHeight?: number | "auto";
5048
5221
  /** auto removes the row policy and restores the retained itemGap behavior. */
5049
5222
  rowPadding?: number | "auto";
5050
5223
  /** auto removes the title/body spacing override. */
5051
5224
  titlePadding?: number | "auto";
5052
- /** Select one existing block; cannot accompany channels. */
5053
- channel?: LegendChannel;
5225
+ /** Select a block or all. all excludes channels/combine/representation. */
5226
+ channel?: LegendChannel | "all";
5054
5227
  /** inherit is allowed only with a singular channel selector. */
5055
5228
  position?: "right" | "left" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "inherit";
5056
5229
  /** Gradient-only auto resets orientation. */
5057
5230
  direction?: "horizontal" | "vertical" | "auto";
5058
- titleStyle?: LegendTitleStyleEditOptions;
5231
+ titleStyle?: LegendTitleEditStyle;
5059
5232
  /** Exact final content set for the whole target; omission preserves content. */
5060
5233
  channels?: LegendOptions["channels"];
5061
5234
  title?: string | "auto" | false;
@@ -5080,6 +5253,8 @@ export interface EditLegendLayoutOptions {
5080
5253
  direction?: "horizontal" | "vertical" | "auto";
5081
5254
  /** Categorical legends accept a positive column count on every supported position. */
5082
5255
  columns?: number;
5256
+ /** Signed logical pixels along the edge: right for top/bottom and in-plot corners, down for left/right. */
5257
+ alongOffset?: number;
5083
5258
  /** Single top/bottom edge: gap from the plot to the nearest occupied legend edge. */
5084
5259
  offset?: number;
5085
5260
  /** bottom is gradient-only; left retains the existing categorical/opacity rules. */
@@ -5131,21 +5306,27 @@ export interface EditAxesOptions {
5131
5306
  parallel?: false | EditParallelAxisOptions | readonly [EditParallelAxisOptions, ...EditParallelAxisOptions[]];
5132
5307
  }
5133
5308
 
5309
+ export interface GuideVisibilityOptions { /** Hide/show without deleting retained style or relative geometry. */ visible?: boolean; }
5310
+ export type VisibleGuide<T> = T & GuideVisibilityOptions;
5311
+ export type VisibleTickGroup<T> = T & { ticks?: VisibleGuide<AxisTickStyleOptions>; labels?: VisibleGuide<AxisLabelStyleOptions>; };
5134
5312
  export interface EditAxisOptions<P extends string> {
5313
+ visible?: boolean;
5135
5314
  /** Omission preserves placement; false restores the ordinary overlay. */
5136
5315
  underlay?: boolean;
5137
5316
  target?: string;
5138
5317
  /** Omitted edits preserve the frame; zero restores the plot-edge frame. */
5139
5318
  offset?: number;
5140
5319
  position?: P;
5141
- line?: false | AxisLineStyleOptions;
5142
- ticks?: false | Omit<AxisTickOptions<P>, "scale" | "position" | "target">;
5143
- labels?: false | Omit<AxisLabelOptions<P>, "scale" | "position" | "target">;
5144
- ticksAndLabels?: false | Omit<AxisTicksAndLabelsOptions<P>, "scale" | "position" | "target">;
5145
- title?: false | Omit<AxisTitleOptions<P>, "scale" | "position" | "target">;
5320
+ line?: false | VisibleGuide<AxisLineStyleOptions>;
5321
+ ticks?: false | VisibleGuide<Omit<AxisTickOptions<P>, "scale" | "position" | "target">>;
5322
+ labels?: false | VisibleGuide<Omit<AxisLabelOptions<P>, "scale" | "position" | "target">>;
5323
+ ticksAndLabels?: false | VisibleTickGroup<Omit<AxisTicksAndLabelsOptions<P>, "scale" | "position" | "target">>;
5324
+ title?: false | VisibleGuide<Omit<AxisTitleOptions<P>, "scale" | "position" | "target">>;
5146
5325
  }
5147
5326
 
5148
5327
  export interface TitleTextStyleOptions {
5328
+ /** Local text alignment; omission preserves the native owner default. */
5329
+ align?: "left" | "center" | "right";
5149
5330
  fontStyle?: "normal" | "italic";
5150
5331
  color?: string;
5151
5332
  fontSize?: number;
@@ -5245,70 +5426,70 @@ export class ChartProgram {
5245
5426
  readonly trace: TraceNode;
5246
5427
  readonly actionStack: readonly unknown[];
5247
5428
 
5248
- createCanvas(options?: CanvasOptions): ChartProgram;
5249
- editCanvas(options: CanvasOptions): ChartProgram;
5250
- fitCanvas(options?: FitCanvasOptions): ChartProgram;
5251
- applyTextMetrics(options: ApplyTextMetricsOptions): ChartProgram;
5429
+ createCanvas(options?: TargetedOptions<CanvasOptions>): ChartProgram;
5430
+ editCanvas(options: TargetedOptions<CanvasOptions>): ChartProgram;
5431
+ fitCanvas(options?: TargetedOptions<FitCanvasOptions>): ChartProgram;
5432
+ applyTextMetrics(options: TargetedOptions<ApplyTextMetricsOptions>): ChartProgram;
5252
5433
  removeTextMetrics(): ChartProgram;
5253
- applyTheme(options: ApplyThemeOptions): ChartProgram;
5434
+ applyTheme(options: TargetedOptions<ApplyThemeOptions>): ChartProgram;
5254
5435
  removeTheme(): ChartProgram;
5255
5436
  createData<Row extends object>(options: CreateDataOptions<Row>): ChartProgram;
5256
- reviseData<Row extends object>(options: ReviseDataOptions<Row>): ChartProgram;
5257
- removeData(options: RemoveResourceOptions): ChartProgram;
5258
- removeScale(options: RemoveResourceOptions): ChartProgram;
5259
- removeCoordinate(options: RemoveResourceOptions): ChartProgram;
5260
- bindMarkData(options: BindMarkDataOptions): ChartProgram;
5261
- filterData(options: FilterDataOptions): ChartProgram;
5262
- filterMarks(options: FilterMarksOptions): ChartProgram;
5263
- removeMarkFilter(options?: RemoveMarkFilterOptions): ChartProgram;
5264
- selectMarks(options: SelectMarksOptions): ChartProgram;
5265
- editMarkSelection(options: EditMarkSelectionOptions): ChartProgram;
5266
- removeMarkHighlight(options?: RemoveMarkSelectionOptions): ChartProgram;
5267
- removeMarkSelection(options?: RemoveMarkSelectionOptions): ChartProgram;
5268
- highlightMarks(options: HighlightMarksOptions): ChartProgram;
5269
- createDensityData(options: DensityDataOptions): ChartProgram;
5270
- createSummaryData(options: SummaryDataOptions): ChartProgram;
5271
- createBinData(options: BinDataOptions): ChartProgram;
5272
- createFlattenData(options: FlattenDataOptions): ChartProgram;
5273
- createLookupData(options: LookupDataOptions): ChartProgram;
5274
- createFoldData(options: FoldDataOptions): ChartProgram;
5275
- createComputedData(options: ComputedDataOptions): ChartProgram;
5276
- createNormalizedData(options: NormalizedDataOptions): ChartProgram;
5277
- createCompleteData(options: CompleteDataOptions): ChartProgram;
5278
- createImputedData(options: ImputedDataOptions): ChartProgram;
5279
- createStackData(options: StackDataOptions): ChartProgram;
5280
- createRegressionData(options: RegressionDataOptions): ChartProgram;
5281
- createRegressionStatisticsData(options: RegressionStatisticsDataOptions): ChartProgram;
5282
- editRegressionStatisticsData(options?: EditRegressionStatisticsDataOptions): ChartProgram;
5283
- createIntervalData(options: IntervalDataOptions): ChartProgram;
5284
- createECDFData(options: ECDFDataOptions): ChartProgram;
5285
- createTimeUnitData(options: TimeUnitDataOptions): ChartProgram;
5286
- createWindowData(options: WindowDataOptions): ChartProgram;
5287
- createBin2DData(options: Bin2DDataOptions): ChartProgram;
5288
- createSortedData(options: SortedDataOptions): ChartProgram;
5289
- editDerivedData(options: EditDerivedDataOptions): ChartProgram;
5290
- editComputedData(options: EditComputedDataOptions): ChartProgram;
5291
- editFilteredData(options: EditFilteredDataOptions): ChartProgram;
5292
- editFlattenData(options: EditFlattenDataOptions): ChartProgram;
5293
- editLookupData(options: EditLookupDataOptions): ChartProgram;
5294
- editFoldData(options: EditFoldDataOptions): ChartProgram;
5295
- editSummaryData(options: EditSummaryDataOptions): ChartProgram;
5296
- editBinData(options: EditBinDataOptions): ChartProgram;
5297
- editTimeUnitData(options: EditTimeUnitDataOptions): ChartProgram;
5298
- editWindowData(options: EditWindowDataOptions): ChartProgram;
5299
- editDensityData(options: EditDensityDataOptions): ChartProgram;
5300
- editStackData(options: EditStackDataOptions): ChartProgram;
5301
- editRegressionData(options: EditRegressionDataOptions): ChartProgram;
5302
- editSortedData(options: EditSortedDataOptions): ChartProgram;
5303
- editIntervalData(options: EditIntervalDataOptions): ChartProgram;
5304
- editECDFData(options: EditECDFDataOptions): ChartProgram;
5305
- editNormalizedData(options: EditNormalizedDataOptions): ChartProgram;
5306
- editCompleteData(options: EditCompleteDataOptions): ChartProgram;
5307
- editImputedData(options: EditImputedDataOptions): ChartProgram;
5308
- editBin2DData(options: EditBin2DDataOptions): ChartProgram;
5437
+ reviseData<Row extends object>(options: TargetedOptions<ReviseDataOptions<Row>>): ChartProgram;
5438
+ removeData(options: TargetedOptions<RemoveResourceOptions>): ChartProgram;
5439
+ removeScale(options: TargetedOptions<RemoveResourceOptions>): ChartProgram;
5440
+ removeCoordinate(options: TargetedOptions<RemoveResourceOptions>): ChartProgram;
5441
+ bindMarkData(options: TargetedOptions<BindMarkDataOptions>): ChartProgram;
5442
+ filterData(options: TargetedOptions<FilterDataOptions>): ChartProgram;
5443
+ filterMarks(options: TargetedOptions<FilterMarksOptions>): ChartProgram;
5444
+ removeMarkFilter(options?: TargetedOptions<RemoveMarkFilterOptions>): ChartProgram;
5445
+ selectMarks(options: TargetedOptions<SelectMarksOptions>): ChartProgram;
5446
+ editMarkSelection(options: TargetedOptions<EditMarkSelectionOptions>): ChartProgram;
5447
+ removeMarkHighlight(options?: TargetedOptions<RemoveMarkSelectionOptions>): ChartProgram;
5448
+ removeMarkSelection(options?: TargetedOptions<RemoveMarkSelectionOptions>): ChartProgram;
5449
+ highlightMarks(options: TargetedOptions<HighlightMarksOptions>): ChartProgram;
5450
+ createDensityData(options: TargetedOptions<DensityDataOptions>): ChartProgram;
5451
+ createSummaryData(options: TargetedOptions<SummaryDataOptions>): ChartProgram;
5452
+ createBinData(options: TargetedOptions<BinDataOptions>): ChartProgram;
5453
+ createFlattenData(options: TargetedOptions<FlattenDataOptions>): ChartProgram;
5454
+ createLookupData(options: TargetedOptions<LookupDataOptions>): ChartProgram;
5455
+ createFoldData(options: TargetedOptions<FoldDataOptions>): ChartProgram;
5456
+ createComputedData(options: TargetedOptions<ComputedDataOptions>): ChartProgram;
5457
+ createNormalizedData(options: TargetedOptions<NormalizedDataOptions>): ChartProgram;
5458
+ createCompleteData(options: TargetedOptions<CompleteDataOptions>): ChartProgram;
5459
+ createImputedData(options: TargetedOptions<ImputedDataOptions>): ChartProgram;
5460
+ createStackData(options: TargetedOptions<StackDataOptions>): ChartProgram;
5461
+ createRegressionData(options: TargetedOptions<RegressionDataOptions>): ChartProgram;
5462
+ createRegressionStatisticsData(options: TargetedOptions<RegressionStatisticsDataOptions>): ChartProgram;
5463
+ editRegressionStatisticsData(options?: TargetedOptions<EditRegressionStatisticsDataOptions>): ChartProgram;
5464
+ createIntervalData(options: TargetedOptions<IntervalDataOptions>): ChartProgram;
5465
+ createECDFData(options: TargetedOptions<ECDFDataOptions>): ChartProgram;
5466
+ createTimeUnitData(options: TargetedOptions<TimeUnitDataOptions>): ChartProgram;
5467
+ createWindowData(options: TargetedOptions<WindowDataOptions>): ChartProgram;
5468
+ createBin2DData(options: TargetedOptions<Bin2DDataOptions>): ChartProgram;
5469
+ createSortedData(options: TargetedOptions<SortedDataOptions>): ChartProgram;
5470
+ editDerivedData(options: TargetedOptions<EditDerivedDataOptions>): ChartProgram;
5471
+ editComputedData(options: TargetedOptions<EditComputedDataOptions>): ChartProgram;
5472
+ editFilteredData(options: TargetedOptions<EditFilteredDataOptions>): ChartProgram;
5473
+ editFlattenData(options: TargetedOptions<EditFlattenDataOptions>): ChartProgram;
5474
+ editLookupData(options: TargetedOptions<EditLookupDataOptions>): ChartProgram;
5475
+ editFoldData(options: TargetedOptions<EditFoldDataOptions>): ChartProgram;
5476
+ editSummaryData(options: TargetedOptions<EditSummaryDataOptions>): ChartProgram;
5477
+ editBinData(options: TargetedOptions<EditBinDataOptions>): ChartProgram;
5478
+ editTimeUnitData(options: TargetedOptions<EditTimeUnitDataOptions>): ChartProgram;
5479
+ editWindowData(options: TargetedOptions<EditWindowDataOptions>): ChartProgram;
5480
+ editDensityData(options: TargetedOptions<EditDensityDataOptions>): ChartProgram;
5481
+ editStackData(options: TargetedOptions<EditStackDataOptions>): ChartProgram;
5482
+ editRegressionData(options: TargetedOptions<EditRegressionDataOptions>): ChartProgram;
5483
+ editSortedData(options: TargetedOptions<EditSortedDataOptions>): ChartProgram;
5484
+ editIntervalData(options: TargetedOptions<EditIntervalDataOptions>): ChartProgram;
5485
+ editECDFData(options: TargetedOptions<EditECDFDataOptions>): ChartProgram;
5486
+ editNormalizedData(options: TargetedOptions<EditNormalizedDataOptions>): ChartProgram;
5487
+ editCompleteData(options: TargetedOptions<EditCompleteDataOptions>): ChartProgram;
5488
+ editImputedData(options: TargetedOptions<EditImputedDataOptions>): ChartProgram;
5489
+ editBin2DData(options: TargetedOptions<EditBin2DDataOptions>): ChartProgram;
5309
5490
 
5310
5491
  /** One point layer accepts at most 50,000 selected rows, before missing-value filtering. */
5311
- createPointMark(options?: StrokeStyleDetails & {
5492
+ createPointMark(options?: TargetedOptions<StrokeStyleDetails & {
5312
5493
  clip?: boolean;
5313
5494
  id?: string;
5314
5495
  data?: string;
@@ -5318,8 +5499,8 @@ export class ChartProgram {
5318
5499
  opacity?: number;
5319
5500
  stroke?: FilledMarkStroke;
5320
5501
  strokeWidth?: number;
5321
- }): ChartProgram;
5322
- editPointMark(options: StrokeStyleDetails & {
5502
+ }>): ChartProgram;
5503
+ editPointMark(options: TargetedOptions<StrokeStyleDetails & {
5323
5504
  clip?: boolean;
5324
5505
  target?: string;
5325
5506
  missing?: "error" | "skip";
@@ -5328,8 +5509,8 @@ export class ChartProgram {
5328
5509
  opacity?: number;
5329
5510
  stroke?: FilledMarkStroke;
5330
5511
  strokeWidth?: number;
5331
- }): ChartProgram;
5332
- createTickMark(options?: StrokeStyleDetails & {
5512
+ }>): ChartProgram;
5513
+ createTickMark(options?: TargetedOptions<StrokeStyleDetails & {
5333
5514
  clip?: boolean;
5334
5515
  id?: string;
5335
5516
  data?: string;
@@ -5338,8 +5519,8 @@ export class ChartProgram {
5338
5519
  stroke?: string;
5339
5520
  strokeWidth?: number;
5340
5521
  opacity?: number;
5341
- }): ChartProgram;
5342
- editTickMark(options: StrokeStyleDetails & {
5522
+ }>): ChartProgram;
5523
+ editTickMark(options: TargetedOptions<StrokeStyleDetails & {
5343
5524
  clip?: boolean;
5344
5525
  target?: string;
5345
5526
  missing?: "error" | "skip";
@@ -5347,12 +5528,12 @@ export class ChartProgram {
5347
5528
  stroke?: string;
5348
5529
  strokeWidth?: number;
5349
5530
  opacity?: number;
5350
- }): ChartProgram;
5351
- jitterPoints(options: JitterPointsOptions): ChartProgram;
5352
- removeJitter(options?: RemoveJitterOptions): ChartProgram;
5353
- packPoints(options: PackPointsOptions): ChartProgram;
5354
- removePointPacking(options?: RemovePointPackingOptions): ChartProgram;
5355
- createLineMark(options?: StrokeStyleDetails & {
5531
+ }>): ChartProgram;
5532
+ jitterPoints(options: TargetedOptions<JitterPointsOptions>): ChartProgram;
5533
+ removeJitter(options?: TargetedOptions<RemoveJitterOptions>): ChartProgram;
5534
+ packPoints(options: TargetedOptions<PackPointsOptions>): ChartProgram;
5535
+ removePointPacking(options?: TargetedOptions<RemovePointPackingOptions>): ChartProgram;
5536
+ createLineMark(options?: TargetedOptions<StrokeStyleDetails & {
5356
5537
  clip?: boolean;
5357
5538
  missing?: "error" | "break";
5358
5539
  id?: string;
@@ -5363,8 +5544,8 @@ export class ChartProgram {
5363
5544
  stroke?: string;
5364
5545
  opacity?: number;
5365
5546
  closed?: boolean;
5366
- }): ChartProgram;
5367
- editLineMark(options: StrokeStyleDetails & {
5547
+ }>): ChartProgram;
5548
+ editLineMark(options: TargetedOptions<StrokeStyleDetails & {
5368
5549
  clip?: boolean;
5369
5550
  missing?: "error" | "break";
5370
5551
  target?: string;
@@ -5374,8 +5555,8 @@ export class ChartProgram {
5374
5555
  stroke?: string;
5375
5556
  opacity?: number;
5376
5557
  closed?: boolean;
5377
- }): ChartProgram;
5378
- createBarMark(options?: RectStyleDetails & {
5558
+ }>): ChartProgram;
5559
+ createBarMark(options?: TargetedOptions<RectStyleDetails & {
5379
5560
  clip?: boolean;
5380
5561
  id?: string;
5381
5562
  data?: string;
@@ -5385,8 +5566,8 @@ export class ChartProgram {
5385
5566
  opacity?: number;
5386
5567
  stroke?: FilledMarkStroke;
5387
5568
  strokeWidth?: number;
5388
- }): ChartProgram;
5389
- editBarMark(options: RectStyleDetails & {
5569
+ }>): ChartProgram;
5570
+ editBarMark(options: TargetedOptions<RectStyleDetails & {
5390
5571
  clip?: boolean;
5391
5572
  target?: string;
5392
5573
  blend?: "normal" | "difference";
@@ -5395,8 +5576,8 @@ export class ChartProgram {
5395
5576
  opacity?: number;
5396
5577
  stroke?: FilledMarkStroke;
5397
5578
  strokeWidth?: number;
5398
- }): ChartProgram;
5399
- createAreaMark(options?: StrokeStyleDetails & {
5579
+ }>): ChartProgram;
5580
+ createAreaMark(options?: TargetedOptions<StrokeStyleDetails & {
5400
5581
  clip?: boolean;
5401
5582
  id?: string;
5402
5583
  data?: string;
@@ -5406,8 +5587,8 @@ export class ChartProgram {
5406
5587
  strokeWidth?: number;
5407
5588
  curve?: CurveInterpolation;
5408
5589
  missing?: "error" | "break";
5409
- }): ChartProgram;
5410
- createArcMark(options?: StrokeStyleDetails & {
5590
+ }>): ChartProgram;
5591
+ createArcMark(options?: TargetedOptions<StrokeStyleDetails & {
5411
5592
  id?: string;
5412
5593
  data?: string;
5413
5594
  innerRadius?: ArcInnerRadius;
@@ -5416,8 +5597,8 @@ export class ChartProgram {
5416
5597
  opacity?: number;
5417
5598
  stroke?: string;
5418
5599
  strokeWidth?: number;
5419
- }): ChartProgram;
5420
- editArcMark(options: StrokeStyleDetails & {
5600
+ }>): ChartProgram;
5601
+ editArcMark(options: TargetedOptions<StrokeStyleDetails & {
5421
5602
  target?: string;
5422
5603
  innerRadius?: ArcInnerRadius;
5423
5604
  padAngle?: number;
@@ -5425,25 +5606,30 @@ export class ChartProgram {
5425
5606
  opacity?: number;
5426
5607
  stroke?: string | false;
5427
5608
  strokeWidth?: number;
5428
- }): ChartProgram;
5429
- createRectMark(options?: RectMarkOptions): ChartProgram;
5430
- editRectMark(options: EditRectMarkOptions): ChartProgram;
5431
- createRuleMark(options?: { clip?: boolean; id?: string; data?: string; missing?: "error" | "skip" } & RuleStyleOptions): ChartProgram;
5432
- editRuleMark(options: { clip?: boolean; target?: string; missing?: "error" | "skip" } & RuleStyleOptions): ChartProgram;
5433
- createTextMark(options?: TextMarkOptions): ChartProgram;
5434
- createTextPlot(options: CreateTextPlotOptions): ChartProgram;
5435
- createMarkLabels(options?: CreateMarkLabelsOptions): ChartProgram;
5436
- editMarkLabelSelection(options: EditMarkLabelSelectionOptions): ChartProgram;
5437
- editMarkLabelPlacement(options: EditMarkLabelPlacementOptions): ChartProgram;
5438
- removeMarkLabels(options: RemoveMarkLabelsOptions): ChartProgram;
5439
- createAnnotation(options: CreateAnnotationOptions): ChartProgram;
5440
- createStatisticalReference(options: CreateStatisticalReferenceOptions): ChartProgram;
5441
- createReferenceLine(options: CreateReferenceLineOptions): ChartProgram;
5442
- createReferenceBand(options: CreateReferenceBandOptions): ChartProgram;
5443
- editTextMark(options: EditTextMarkOptions): ChartProgram;
5444
- layoutLabels(options?: LabelLayoutOptions): ChartProgram;
5445
- removeLabelLayout(options?: RemoveLabelLayoutOptions): ChartProgram;
5446
- editAreaMark(options: StrokeStyleDetails & {
5609
+ }>): ChartProgram;
5610
+ createRectMark(options?: TargetedOptions<RectMarkOptions>): ChartProgram;
5611
+ editRectMark(options: TargetedOptions<EditRectMarkOptions>): ChartProgram;
5612
+ createRuleMark(options?: TargetedOptions<{ clip?: boolean; id?: string; data?: string; missing?: "error" | "skip" } & RuleStyleOptions>): ChartProgram;
5613
+ editRuleMark(options: TargetedOptions<{ clip?: boolean; target?: string; missing?: "error" | "skip" } & RuleStyleOptions>): ChartProgram;
5614
+ createTextMark(options?: TargetedOptions<TextMarkOptions>): ChartProgram;
5615
+ createTextPlot(options: TargetedOptions<CreateTextPlotOptions>): ChartProgram;
5616
+ createMarkLabels(options?: TargetedOptions<CreateMarkLabelsOptions>): ChartProgram;
5617
+ editMarkLabelSelection(options: TargetedOptions<EditMarkLabelSelectionOptions>): ChartProgram;
5618
+ editMarkLabelPlacement(options: TargetedOptions<EditMarkLabelPlacementOptions>): ChartProgram;
5619
+ removeMarkLabels(options: TargetedOptions<RemoveMarkLabelsOptions>): ChartProgram;
5620
+ createAnnotation(options: TargetedOptions<CreateAnnotationOptions>): ChartProgram;
5621
+ createStatisticalReference(options: TargetedOptions<CreateStatisticalReferenceOptions>): ChartProgram;
5622
+ createOverlay(options?: TargetedOptions<CreateOverlayOptions>): ChartProgram;
5623
+ createLayerPlot(options: TargetedOptions<CreateLayerPlotOptions>): ChartProgram;
5624
+ createAdjacentPlot(options?: TargetedOptions<CreateAdjacentPlotOptions>): ChartProgram;
5625
+ editCompositionScales(options: TargetedOptions<EditCompositionScalesOptions>): ChartProgram;
5626
+ editOverlay(options: TargetedOptions<EditOverlayOptions>): ChartProgram;
5627
+ createReferenceLine(options: TargetedOptions<CreateReferenceLineOptions>): ChartProgram;
5628
+ createReferenceBand(options: TargetedOptions<CreateReferenceBandOptions>): ChartProgram;
5629
+ editTextMark(options: TargetedOptions<EditTextMarkOptions>): ChartProgram;
5630
+ layoutLabels(options?: TargetedOptions<LabelLayoutOptions>): ChartProgram;
5631
+ removeLabelLayout(options?: TargetedOptions<RemoveLabelLayoutOptions>): ChartProgram;
5632
+ editAreaMark(options: TargetedOptions<StrokeStyleDetails & {
5447
5633
  clip?: boolean;
5448
5634
  target?: string;
5449
5635
  fill?: FillPaint;
@@ -5452,225 +5638,227 @@ export class ChartProgram {
5452
5638
  strokeWidth?: number;
5453
5639
  curve?: CurveInterpolation;
5454
5640
  missing?: "error" | "break";
5455
- }): ChartProgram;
5456
-
5457
- encodeX(options: PositionEncodingOptions | DatumPositionEncodingOptions): ChartProgram;
5458
- encodeY(options: YPositionEncodingOptions | DatumPositionEncodingOptions): ChartProgram;
5459
- encodeTheta(options: ThetaEncodingOptions): ChartProgram;
5460
- encodeR(options: RadialEncodingOptions): ChartProgram;
5461
- encodeX2(options: SecondaryPositionEncodingOptions): ChartProgram;
5462
- encodeColor(options: ColorEncodingOptions): ChartProgram;
5463
- encodeStrokeDash(options: StrokeDashEncodingOptions): ChartProgram;
5464
- encodeSize(options: SizeEncodingOptions): ChartProgram;
5465
- encodeShape(options: ShapeEncodingOptions): ChartProgram;
5466
- encodeAngle(options: AngleEncodingOptions): ChartProgram;
5467
- encodeOpacity(options: OpacityEncodingOptions): ChartProgram;
5468
- encodeRadius(options: { value: number; target?: string }): ChartProgram;
5469
- encodePointRadius(options: { value: number; target?: string }): ChartProgram;
5470
- removePointRadius(options?: { target?: string }): ChartProgram;
5471
- encodeXOffset(options: XOffsetEncodingOptions): ChartProgram;
5472
- encodeYOffset(options: YOffsetEncodingOptions): ChartProgram;
5473
- encodeY2(options: SecondaryPositionEncodingOptions): ChartProgram;
5474
- encodeYRange(options: RangePositionEncodingOptions): ChartProgram;
5475
- encodeXRange(options: RangePositionEncodingOptions): ChartProgram;
5476
- encodeGroup(options: GroupEncodingOptions): ChartProgram;
5477
- layoutSeries(options: SeriesLayoutOptions): ChartProgram;
5478
- encodePathOrder(options: PathOrderEncodingOptions): ChartProgram;
5479
- orderCategories(options: OrderCategoriesOptions): ChartProgram;
5480
- encodeParallelCoordinates(options: ParallelCoordinatesEncodingOptions): ChartProgram;
5481
- removePathOrder(options?: RemovePathOrderOptions): ChartProgram;
5482
- removeCategoryOrder(options: RemoveCategoryOrderOptions): ChartProgram;
5483
- removeEncoding(options: {
5641
+ }>): ChartProgram;
5642
+
5643
+ encodeX(options: TargetedOptions<PositionEncodingOptions | DatumPositionEncodingOptions>): ChartProgram;
5644
+ encodeY(options: TargetedOptions<YPositionEncodingOptions | DatumPositionEncodingOptions>): ChartProgram;
5645
+ encodeTheta(options: TargetedOptions<ThetaEncodingOptions>): ChartProgram;
5646
+ encodeR(options: TargetedOptions<RadialEncodingOptions>): ChartProgram;
5647
+ encodeX2(options: TargetedOptions<SecondaryPositionEncodingOptions>): ChartProgram;
5648
+ encodeColor(options: TargetedOptions<ColorEncodingOptions>): ChartProgram;
5649
+ encodeStrokeDash(options: TargetedOptions<StrokeDashEncodingOptions>): ChartProgram;
5650
+ encodeSize(options: TargetedOptions<SizeEncodingOptions>): ChartProgram;
5651
+ encodeShape(options: TargetedOptions<ShapeEncodingOptions>): ChartProgram;
5652
+ encodeAngle(options: TargetedOptions<AngleEncodingOptions>): ChartProgram;
5653
+ encodeOpacity(options: TargetedOptions<OpacityEncodingOptions>): ChartProgram;
5654
+ encodeRadius(options: TargetedOptions<{ value: number; target?: string }>): ChartProgram;
5655
+ encodePointRadius(options: TargetedOptions<{ value: number; target?: string }>): ChartProgram;
5656
+ removePointRadius(options?: TargetedOptions<{ target?: string }>): ChartProgram;
5657
+ encodeXOffset(options: TargetedOptions<XOffsetEncodingOptions>): ChartProgram;
5658
+ encodeYOffset(options: TargetedOptions<YOffsetEncodingOptions>): ChartProgram;
5659
+ encodeY2(options: TargetedOptions<SecondaryPositionEncodingOptions>): ChartProgram;
5660
+ encodeYRange(options: TargetedOptions<RangePositionEncodingOptions>): ChartProgram;
5661
+ encodeXRange(options: TargetedOptions<RangePositionEncodingOptions>): ChartProgram;
5662
+ encodeGroup(options: TargetedOptions<GroupEncodingOptions>): ChartProgram;
5663
+ layoutSeries(options: TargetedOptions<SeriesLayoutOptions>): ChartProgram;
5664
+ encodePathOrder(options: TargetedOptions<PathOrderEncodingOptions>): ChartProgram;
5665
+ orderCategories(options: TargetedOptions<OrderCategoriesOptions>): ChartProgram;
5666
+ encodeParallelCoordinates(options: TargetedOptions<ParallelCoordinatesEncodingOptions>): ChartProgram;
5667
+ removePathOrder(options?: TargetedOptions<RemovePathOrderOptions>): ChartProgram;
5668
+ removeCategoryOrder(options: TargetedOptions<RemoveCategoryOrderOptions>): ChartProgram;
5669
+ removeEncoding(options: TargetedOptions<{
5484
5670
  target?: string;
5485
5671
  channel:
5486
5672
  | "x" | "y" | "x2" | "y2" | "xOffset" | "yOffset"
5487
5673
  | "theta" | "radius" | "color" | "stroke" | "strokeDash" | "strokeWidth"
5488
5674
  | "size" | "shape" | "angle" | "group" | "opacity" | "text" | "dx" | "dy";
5489
- }): ChartProgram;
5490
- encodeText(options: TextEncodingOptions): ChartProgram;
5491
- encodeDx(options: TextOffsetEncodingOptions): ChartProgram;
5492
- encodeDy(options: TextOffsetEncodingOptions): ChartProgram;
5493
- encodeHistogram(options: HistogramEncodingOptions): ChartProgram;
5494
- encodeDensity(options: DensityEncodingOptions): ChartProgram;
5495
- editDensity(options: EditDensityOptions): ChartProgram;
5496
- encodeHorizon(options?: HorizonEncodingOptions): ChartProgram;
5497
- editHorizon(options: EditHorizonOptions): ChartProgram;
5498
- encodeBarWidth(options?: BarWidthOptions): ChartProgram;
5499
- encodeStroke(options: StrokeEncodingOptions): ChartProgram;
5500
- encodeStrokeWidth(options: StrokeWidthEncodingOptions): ChartProgram;
5501
- encodeChannels(options: EncodeChannelsOptions): ChartProgram;
5502
-
5503
- createRegression(options?: RegressionOptions): ChartProgram;
5504
- editRegression(options: EditRegressionOptions): ChartProgram;
5505
- createErrorBar(options?: ErrorBarOptions): ChartProgram;
5506
- editErrorBar(options: EditErrorBarOptions): ChartProgram;
5507
- createErrorBand(options?: ErrorBandOptions): ChartProgram;
5508
- editErrorBand(options: EditErrorBandOptions): ChartProgram;
5509
- editErrorBandBoundary(options: EditErrorBandBoundaryOptions): ChartProgram;
5510
- createBoxPlot(options?: BoxPlotOptions): ChartProgram;
5511
- editBoxPlot(options: EditBoxPlotOptions): ChartProgram;
5512
- createGradientPlot(options?: GradientPlotOptions): ChartProgram;
5513
- editGradientPlot(options: EditGradientPlotOptions): ChartProgram;
5514
- createViolinPlot(options: ViolinPlotOptions): ChartProgram;
5515
- editViolinPlot(options: EditViolinPlotOptions): ChartProgram;
5516
- createScatterPlot(options: CreateScatterPlotOptions): ChartProgram;
5517
- createIntervalPlot(options: CreateIntervalPlotOptions): ChartProgram;
5518
- createRegressionPlot(options: CreateRegressionPlotOptions): ChartProgram;
5519
- createDotPlot(options: CreateDotPlotOptions): ChartProgram;
5520
- createLollipopPlot(options: CreateLollipopPlotOptions): ChartProgram;
5521
- createDumbbellPlot(options: CreateDumbbellPlotOptions): ChartProgram;
5522
- editEndpointPlot(options: EditEndpointPlotOptions): ChartProgram;
5523
- createECDFPlot(options: CreateECDFPlotOptions): ChartProgram;
5524
- editECDFPlot(options: EditECDFPlotOptions): ChartProgram;
5525
- createLinePlot(options: CreateLinePlotOptions): ChartProgram;
5526
- createPolarScatterPlot(options: CreatePolarScatterPlotOptions): ChartProgram;
5527
- createPolarLinePlot(options: CreatePolarLinePlotOptions): ChartProgram;
5528
- createRadarPlot(options: CreateRadarPlotOptions): ChartProgram;
5529
- editRadarPlot(options: EditRadarPlotOptions): ChartProgram;
5530
- createRugPlot(options: CreateRugPlotOptions): ChartProgram;
5531
- createStripPlot(options: CreateStripPlotOptions): ChartProgram;
5532
- createBeeswarmPlot(options: CreateBeeswarmPlotOptions): ChartProgram;
5533
- createRaincloudPlot(options: CreateRaincloudPlotOptions): ChartProgram;
5534
- editRaincloudPlot(options: EditRaincloudPlotOptions): ChartProgram;
5535
- createAreaPlot(options: CreateAreaPlotOptions): ChartProgram;
5536
- createBarPlot(options: CreateBarPlotOptions): ChartProgram;
5537
- createHistogram(options: CreateHistogramOptions): ChartProgram;
5538
- createPiePlot(options: CreatePiePlotOptions): ChartProgram;
5539
- createRosePlot(options: CreateRosePlotOptions): ChartProgram;
5540
- createRadialBarPlot(options: CreateRadialBarPlotOptions): ChartProgram;
5541
- createDensityPlot(options: CreateDensityPlotOptions): ChartProgram;
5542
- createHorizonPlot(options: CreateHorizonPlotOptions): ChartProgram;
5543
- createHeatmap(options: CreateHeatmapOptions): ChartProgram;
5544
- createParallelCoordinates(options: CreateParallelCoordinatesOptions): ChartProgram;
5545
- removeMark(options?: RemoveMarkOptions): ChartProgram;
5546
- createParallelAxes(options?: ParallelAxesOptions): ChartProgram;
5547
- createParallelAxis(options: CreateParallelAxisOptions): ChartProgram;
5548
- editParallelAxis(options: EditParallelAxisOptions): ChartProgram;
5549
- removeParallelAxis(options: RemoveParallelAxisOptions): ChartProgram;
5550
- removeParallelAxes(options?: ParallelAxesOptions): ChartProgram;
5551
- createAxes(options?: CreateAxesOptions): ChartProgram;
5552
- editAxes(options: EditAxesOptions): ChartProgram;
5553
- createXAxis(options?: CompleteAxisOptions<XAxisPosition>): ChartProgram;
5554
- createYAxis(options?: CompleteAxisOptions<YAxisPosition>): ChartProgram;
5555
- createThetaAxis(options?: CompleteThetaAxisOptions): ChartProgram;
5556
- createRadialAxis(options?: CompleteRadialAxisOptions): ChartProgram;
5557
- createThetaAxisLine(options?: CreateThetaAxisLineOptions): ChartProgram;
5558
- createRadialAxisLine(options?: CreateRadialAxisLineOptions): ChartProgram;
5559
- createThetaAxisTicks(options?: CreateThetaAxisTicksOptions): ChartProgram;
5560
- createRadialAxisTicks(options?: CreateRadialAxisTicksOptions): ChartProgram;
5561
- createThetaAxisLabels(options?: CreateThetaAxisLabelsOptions): ChartProgram;
5562
- createRadialAxisLabels(options?: CreateRadialAxisLabelsOptions): ChartProgram;
5563
- createThetaAxisTitle(options?: CreateThetaAxisTitleOptions): ChartProgram;
5564
- createRadialAxisTitle(options?: CreateRadialAxisTitleOptions): ChartProgram;
5565
- editThetaAxisLine(options?: AxisLineStyleOptions): ChartProgram;
5566
- editRadialAxisLine(options?: AxisLineStyleOptions): ChartProgram;
5567
- editThetaAxisTicks(options?: PolarTickOptions): ChartProgram;
5568
- editRadialAxisTicks(options?: PolarTickOptions): ChartProgram;
5569
- editThetaAxisLabels(options?: ThetaAxisLabelOptions): ChartProgram;
5570
- editRadialAxisLabels(options?: PolarLabelOptions): ChartProgram;
5571
- editThetaAxisTitle(options?: PolarTitleOptions): ChartProgram;
5572
- editRadialAxisTitle(options?: RadialTitleOptions): ChartProgram;
5573
- createXAxisLine(options?: AxisLineStyleOptions & { target?: string; scale?: string; position?: XAxisPosition }): ChartProgram;
5574
- createYAxisLine(options?: AxisLineStyleOptions & { target?: string; scale?: string; position?: YAxisPosition }): ChartProgram;
5575
- editXAxisLine(options?: AxisLineStyleOptions & { target?: string; position?: XAxisPosition }): ChartProgram;
5576
- editYAxisLine(options?: AxisLineStyleOptions & { target?: string; position?: YAxisPosition }): ChartProgram;
5577
- createXAxisTicks(options?: AxisTickOptions<XAxisPosition>): ChartProgram;
5578
- createYAxisTicks(options?: AxisTickOptions<YAxisPosition>): ChartProgram;
5579
- editXAxisTicks(options?: Omit<AxisTickOptions<XAxisPosition>, "scale">): ChartProgram;
5580
- editYAxisTicks(options?: Omit<AxisTickOptions<YAxisPosition>, "scale">): ChartProgram;
5581
- createXAxisLabels(options?: AxisLabelOptions<XAxisPosition>): ChartProgram;
5582
- createYAxisLabels(options?: AxisLabelOptions<YAxisPosition>): ChartProgram;
5583
- editXAxisLabels(options?: Omit<AxisLabelOptions<XAxisPosition>, "scale">): ChartProgram;
5584
- editYAxisLabels(options?: Omit<AxisLabelOptions<YAxisPosition>, "scale">): ChartProgram;
5585
- createXAxisTicksAndLabels(options?: AxisTicksAndLabelsOptions<XAxisPosition>): ChartProgram;
5586
- createYAxisTicksAndLabels(options?: AxisTicksAndLabelsOptions<YAxisPosition>): ChartProgram;
5587
- editXAxisTicksAndLabels(options: Omit<AxisTicksAndLabelsOptions<XAxisPosition>, "scale">): ChartProgram;
5588
- editYAxisTicksAndLabels(options: Omit<AxisTicksAndLabelsOptions<YAxisPosition>, "scale">): ChartProgram;
5589
- createXAxisTitle(options?: AxisTitleOptions<XAxisPosition>): ChartProgram;
5590
- createYAxisTitle(options?: AxisTitleOptions<YAxisPosition>): ChartProgram;
5591
- editXAxisTitle(options?: Omit<AxisTitleOptions<XAxisPosition>, "scale">): ChartProgram;
5592
- editYAxisTitle(options?: Omit<AxisTitleOptions<YAxisPosition>, "scale">): ChartProgram;
5593
- editXAxis(options: EditAxisOptions<XAxisPosition>): ChartProgram;
5594
- editYAxis(options: EditAxisOptions<YAxisPosition>): ChartProgram;
5595
- editThetaAxis(options: EditThetaAxisOptions): ChartProgram;
5596
- editRadialAxis(options: EditRadialAxisOptions): ChartProgram;
5597
- removeXAxis(options?: RemoveAxisOptions): ChartProgram;
5598
- removeYAxis(options?: RemoveAxisOptions): ChartProgram;
5599
- removeThetaAxis(options?: Omit<RemoveAxisOptions, "target">): ChartProgram;
5600
- removeRadialAxis(options?: Omit<RemoveAxisOptions, "target">): ChartProgram;
5601
- createGrid(options?: CreateGridOptions): ChartProgram;
5602
- createHorizontalGrid(options?: GridDirectionOptions): ChartProgram;
5603
- createVerticalGrid(options?: GridDirectionOptions): ChartProgram;
5604
- createThetaGrid(options?: PolarGridOptions): ChartProgram;
5605
- createRadialGrid(options?: PolarGridOptions): ChartProgram;
5606
- editHorizontalGrid(options: EditGridOptions): ChartProgram;
5607
- editVerticalGrid(options: EditGridOptions): ChartProgram;
5608
- editThetaGrid(options: EditPolarGridOptions): ChartProgram;
5609
- editRadialGrid(options: EditPolarGridOptions): ChartProgram;
5610
- editGrid(options: EditGridDirectionsOptions): ChartProgram;
5611
- removeGrid(options?: RemoveGridOptions): ChartProgram;
5675
+ }>): ChartProgram;
5676
+ encodeText(options: TargetedOptions<TextEncodingOptions>): ChartProgram;
5677
+ encodeDx(options: TargetedOptions<TextOffsetEncodingOptions>): ChartProgram;
5678
+ encodeDy(options: TargetedOptions<TextOffsetEncodingOptions>): ChartProgram;
5679
+ encodeHistogram(options: TargetedOptions<HistogramEncodingOptions>): ChartProgram;
5680
+ encodeDensity(options: TargetedOptions<DensityEncodingOptions>): ChartProgram;
5681
+ editDensity(options: TargetedOptions<EditDensityOptions>): ChartProgram;
5682
+ encodeHorizon(options?: TargetedOptions<HorizonEncodingOptions>): ChartProgram;
5683
+ editHorizon(options: TargetedOptions<EditHorizonOptions>): ChartProgram;
5684
+ encodeBarWidth(options?: TargetedOptions<BarWidthOptions>): ChartProgram;
5685
+ encodeStroke(options: TargetedOptions<StrokeEncodingOptions>): ChartProgram;
5686
+ encodeStrokeWidth(options: TargetedOptions<StrokeWidthEncodingOptions>): ChartProgram;
5687
+ encodeChannels(options: TargetedOptions<EncodeChannelsOptions>): ChartProgram;
5688
+
5689
+ createRegression(options?: TargetedOptions<RegressionOptions>): ChartProgram;
5690
+ editRegression(options: TargetedOptions<EditRegressionOptions>): ChartProgram;
5691
+ createErrorBar(options?: TargetedOptions<ErrorBarOptions>): ChartProgram;
5692
+ editErrorBar(options: TargetedOptions<EditErrorBarOptions>): ChartProgram;
5693
+ createErrorBand(options?: TargetedOptions<ErrorBandOptions>): ChartProgram;
5694
+ editErrorBand(options: TargetedOptions<EditErrorBandOptions>): ChartProgram;
5695
+ editErrorBandBoundary(options: TargetedOptions<EditErrorBandBoundaryOptions>): ChartProgram;
5696
+ createBoxPlot(options?: TargetedOptions<BoxPlotOptions>): ChartProgram;
5697
+ editBoxPlot(options: TargetedOptions<EditBoxPlotOptions>): ChartProgram;
5698
+ createGradientPlot(options?: TargetedOptions<GradientPlotOptions>): ChartProgram;
5699
+ editGradientPlot(options: TargetedOptions<EditGradientPlotOptions>): ChartProgram;
5700
+ createViolinPlot(options: TargetedOptions<ViolinPlotOptions>): ChartProgram;
5701
+ editViolinPlot(options: TargetedOptions<EditViolinPlotOptions>): ChartProgram;
5702
+ createScatterPlot(options: TargetedOptions<CreateScatterPlotOptions>): ChartProgram;
5703
+ createIntervalPlot(options: TargetedOptions<CreateIntervalPlotOptions>): ChartProgram;
5704
+ createRegressionPlot(options: TargetedOptions<CreateRegressionPlotOptions>): ChartProgram;
5705
+ createDotPlot(options: TargetedOptions<CreateDotPlotOptions>): ChartProgram;
5706
+ createLollipopPlot(options: TargetedOptions<CreateLollipopPlotOptions>): ChartProgram;
5707
+ createDumbbellPlot(options: TargetedOptions<CreateDumbbellPlotOptions>): ChartProgram;
5708
+ editEndpointPlot(options: TargetedOptions<EditEndpointPlotOptions>): ChartProgram;
5709
+ createECDFPlot(options: TargetedOptions<CreateECDFPlotOptions>): ChartProgram;
5710
+ editECDFPlot(options: TargetedOptions<EditECDFPlotOptions>): ChartProgram;
5711
+ createLinePlot(options: TargetedOptions<CreateLinePlotOptions>): ChartProgram;
5712
+ createPolarScatterPlot(options: TargetedOptions<CreatePolarScatterPlotOptions>): ChartProgram;
5713
+ createPolarLinePlot(options: TargetedOptions<CreatePolarLinePlotOptions>): ChartProgram;
5714
+ createRadarPlot(options: TargetedOptions<CreateRadarPlotOptions>): ChartProgram;
5715
+ editRadarPlot(options: TargetedOptions<EditRadarPlotOptions>): ChartProgram;
5716
+ createRugPlot(options: TargetedOptions<CreateRugPlotOptions>): ChartProgram;
5717
+ createStripPlot(options: TargetedOptions<CreateStripPlotOptions>): ChartProgram;
5718
+ createBeeswarmPlot(options: TargetedOptions<CreateBeeswarmPlotOptions>): ChartProgram;
5719
+ createRaincloudPlot(options: TargetedOptions<CreateRaincloudPlotOptions>): ChartProgram;
5720
+ editRaincloudPlot(options: TargetedOptions<EditRaincloudPlotOptions>): ChartProgram;
5721
+ createAreaPlot(options: TargetedOptions<CreateAreaPlotOptions>): ChartProgram;
5722
+ createBarPlot(options: TargetedOptions<CreateBarPlotOptions>): ChartProgram;
5723
+ createHistogram(options: TargetedOptions<CreateHistogramOptions>): ChartProgram;
5724
+ createPiePlot(options: TargetedOptions<CreatePiePlotOptions>): ChartProgram;
5725
+ createRosePlot(options: TargetedOptions<CreateRosePlotOptions>): ChartProgram;
5726
+ createRadialBarPlot(options: TargetedOptions<CreateRadialBarPlotOptions>): ChartProgram;
5727
+ createDensityPlot(options: TargetedOptions<CreateDensityPlotOptions>): ChartProgram;
5728
+ createHorizonPlot(options: TargetedOptions<CreateHorizonPlotOptions>): ChartProgram;
5729
+ createHeatmap(options: TargetedOptions<CreateHeatmapOptions>): ChartProgram;
5730
+ createParallelCoordinates(options: TargetedOptions<CreateParallelCoordinatesOptions>): ChartProgram;
5731
+ removeMark(options?: TargetedOptions<RemoveMarkOptions>): ChartProgram;
5732
+ createParallelAxes(options?: TargetedOptions<ParallelAxesOptions>): ChartProgram;
5733
+ createParallelAxis(options: TargetedOptions<CreateParallelAxisOptions>): ChartProgram;
5734
+ editParallelAxis(options: TargetedOptions<EditParallelAxisOptions>): ChartProgram;
5735
+ removeParallelAxis(options: TargetedOptions<RemoveParallelAxisOptions>): ChartProgram;
5736
+ removeParallelAxes(options?: TargetedOptions<ParallelAxesOptions>): ChartProgram;
5737
+ createAxes(options?: TargetedOptions<CreateAxesOptions>): ChartProgram;
5738
+ editAxes(options: TargetedOptions<EditAxesOptions>): ChartProgram;
5739
+ createXAxis(options?: TargetedOptions<CompleteAxisOptions<XAxisPosition>>): ChartProgram;
5740
+ createYAxis(options?: TargetedOptions<CompleteAxisOptions<YAxisPosition>>): ChartProgram;
5741
+ createThetaAxis(options?: TargetedOptions<CompleteThetaAxisOptions>): ChartProgram;
5742
+ createRadialAxis(options?: TargetedOptions<CompleteRadialAxisOptions>): ChartProgram;
5743
+ createThetaAxisLine(options?: TargetedOptions<CreateThetaAxisLineOptions>): ChartProgram;
5744
+ createRadialAxisLine(options?: TargetedOptions<CreateRadialAxisLineOptions>): ChartProgram;
5745
+ createThetaAxisTicks(options?: TargetedOptions<CreateThetaAxisTicksOptions>): ChartProgram;
5746
+ createRadialAxisTicks(options?: TargetedOptions<CreateRadialAxisTicksOptions>): ChartProgram;
5747
+ createThetaAxisLabels(options?: TargetedOptions<CreateThetaAxisLabelsOptions>): ChartProgram;
5748
+ createRadialAxisLabels(options?: TargetedOptions<CreateRadialAxisLabelsOptions>): ChartProgram;
5749
+ createThetaAxisTitle(options?: TargetedOptions<CreateThetaAxisTitleOptions>): ChartProgram;
5750
+ createRadialAxisTitle(options?: TargetedOptions<CreateRadialAxisTitleOptions>): ChartProgram;
5751
+ editThetaAxisLine(options?: TargetedOptions<AxisLineStyleOptions>): ChartProgram;
5752
+ editRadialAxisLine(options?: TargetedOptions<AxisLineStyleOptions>): ChartProgram;
5753
+ editThetaAxisTicks(options?: TargetedOptions<PolarTickOptions>): ChartProgram;
5754
+ editRadialAxisTicks(options?: TargetedOptions<PolarTickOptions>): ChartProgram;
5755
+ editThetaAxisLabels(options?: TargetedOptions<ThetaAxisLabelOptions>): ChartProgram;
5756
+ editRadialAxisLabels(options?: TargetedOptions<PolarLabelOptions>): ChartProgram;
5757
+ editThetaAxisTitle(options?: TargetedOptions<PolarTitleOptions>): ChartProgram;
5758
+ editRadialAxisTitle(options?: TargetedOptions<RadialTitleOptions>): ChartProgram;
5759
+ createXAxisLine(options?: TargetedOptions<AxisLineStyleOptions & { target?: string; scale?: string; position?: XAxisPosition }>): ChartProgram;
5760
+ createYAxisLine(options?: TargetedOptions<AxisLineStyleOptions & { target?: string; scale?: string; position?: YAxisPosition }>): ChartProgram;
5761
+ editXAxisLine(options?: TargetedOptions<AxisLineStyleOptions & { target?: string; position?: XAxisPosition }>): ChartProgram;
5762
+ editYAxisLine(options?: TargetedOptions<AxisLineStyleOptions & { target?: string; position?: YAxisPosition }>): ChartProgram;
5763
+ createXAxisTicks(options?: TargetedOptions<AxisTickOptions<XAxisPosition>>): ChartProgram;
5764
+ createYAxisTicks(options?: TargetedOptions<AxisTickOptions<YAxisPosition>>): ChartProgram;
5765
+ editXAxisTicks(options?: TargetedOptions<Omit<AxisTickOptions<XAxisPosition>, "scale">>): ChartProgram;
5766
+ editYAxisTicks(options?: TargetedOptions<Omit<AxisTickOptions<YAxisPosition>, "scale">>): ChartProgram;
5767
+ createXAxisLabels(options?: TargetedOptions<AxisLabelOptions<XAxisPosition>>): ChartProgram;
5768
+ createYAxisLabels(options?: TargetedOptions<AxisLabelOptions<YAxisPosition>>): ChartProgram;
5769
+ editXAxisLabels(options?: TargetedOptions<Omit<AxisLabelOptions<XAxisPosition>, "scale">>): ChartProgram;
5770
+ editYAxisLabels(options?: TargetedOptions<Omit<AxisLabelOptions<YAxisPosition>, "scale">>): ChartProgram;
5771
+ createXAxisTicksAndLabels(options?: TargetedOptions<AxisTicksAndLabelsOptions<XAxisPosition>>): ChartProgram;
5772
+ createYAxisTicksAndLabels(options?: TargetedOptions<AxisTicksAndLabelsOptions<YAxisPosition>>): ChartProgram;
5773
+ editXAxisTicksAndLabels(options: TargetedOptions<Omit<AxisTicksAndLabelsOptions<XAxisPosition>, "scale">>): ChartProgram;
5774
+ editYAxisTicksAndLabels(options: TargetedOptions<Omit<AxisTicksAndLabelsOptions<YAxisPosition>, "scale">>): ChartProgram;
5775
+ createXAxisTitle(options?: TargetedOptions<AxisTitleOptions<XAxisPosition>>): ChartProgram;
5776
+ createYAxisTitle(options?: TargetedOptions<AxisTitleOptions<YAxisPosition>>): ChartProgram;
5777
+ editXAxisTitle(options?: TargetedOptions<Omit<AxisTitleOptions<XAxisPosition>, "scale">>): ChartProgram;
5778
+ editYAxisTitle(options?: TargetedOptions<Omit<AxisTitleOptions<YAxisPosition>, "scale">>): ChartProgram;
5779
+ editXAxis(options: TargetedOptions<EditAxisOptions<XAxisPosition>>): ChartProgram;
5780
+ editYAxis(options: TargetedOptions<EditAxisOptions<YAxisPosition>>): ChartProgram;
5781
+ editThetaAxis(options: TargetedOptions<EditThetaAxisOptions>): ChartProgram;
5782
+ editRadialAxis(options: TargetedOptions<EditRadialAxisOptions>): ChartProgram;
5783
+ removeXAxis(options?: TargetedOptions<RemoveAxisOptions>): ChartProgram;
5784
+ removeYAxis(options?: TargetedOptions<RemoveAxisOptions>): ChartProgram;
5785
+ removeThetaAxis(options?: TargetedOptions<Omit<RemoveAxisOptions, "target">>): ChartProgram;
5786
+ removeRadialAxis(options?: TargetedOptions<Omit<RemoveAxisOptions, "target">>): ChartProgram;
5787
+ createGrid(options?: TargetedOptions<CreateGridOptions>): ChartProgram;
5788
+ createHorizontalGrid(options?: TargetedOptions<GridDirectionOptions>): ChartProgram;
5789
+ createVerticalGrid(options?: TargetedOptions<GridDirectionOptions>): ChartProgram;
5790
+ createThetaGrid(options?: TargetedOptions<PolarGridOptions>): ChartProgram;
5791
+ createRadialGrid(options?: TargetedOptions<PolarGridOptions>): ChartProgram;
5792
+ editHorizontalGrid(options: TargetedOptions<EditGridOptions>): ChartProgram;
5793
+ editVerticalGrid(options: TargetedOptions<EditGridOptions>): ChartProgram;
5794
+ editThetaGrid(options: TargetedOptions<EditPolarGridOptions>): ChartProgram;
5795
+ editRadialGrid(options: TargetedOptions<EditPolarGridOptions>): ChartProgram;
5796
+ editGrid(options: TargetedOptions<EditGridDirectionsOptions>): ChartProgram;
5797
+ removeGrid(options?: TargetedOptions<RemoveGridOptions>): ChartProgram;
5612
5798
  /** Combined categorical and size legends support all four edges and plot corners with layout "edge". */
5613
- createLegend(options?: LegendOptions): ChartProgram;
5614
- editLegend(options: EditLegendOptions): ChartProgram;
5615
- editLegendBlock(options: EditLegendBlockOptions): ChartProgram;
5616
- editLegendLayout(options: EditLegendLayoutOptions): ChartProgram;
5617
- editLegendLabels(options: EditLegendLabelsOptions): ChartProgram;
5618
- editLegendTitle(options: EditLegendTitleOptions): ChartProgram;
5619
- editLegendSymbols(options: EditLegendSymbolsOptions): ChartProgram;
5620
- editLegendBorder(options: EditLegendBorderOptions): ChartProgram;
5621
- removeLegend(options?: RemoveLegendOptions): ChartProgram;
5622
- createGuides(options?: CreateGuidesOptions): ChartProgram;
5623
- createTitle(options: TitleOptions): ChartProgram;
5624
- editTitle(options: EditTitleOptions): ChartProgram;
5799
+ createLegend(options?: TargetedOptions<LegendOptions>): ChartProgram;
5800
+ editLegend(options: TargetedOptions<EditLegendOptions>): ChartProgram;
5801
+ editLegendBlock(options: TargetedOptions<EditLegendBlockOptions>): ChartProgram;
5802
+ editLegendLayout(options: TargetedOptions<EditLegendLayoutOptions>): ChartProgram;
5803
+ editLegendLabels(options: TargetedOptions<EditLegendLabelsOptions>): ChartProgram;
5804
+ editLegendTitle(options: TargetedOptions<EditLegendTitleOptions>): ChartProgram;
5805
+ editLegendSymbols(options: TargetedOptions<EditLegendSymbolsOptions>): ChartProgram;
5806
+ editLegendBorder(options: TargetedOptions<EditLegendBorderOptions>): ChartProgram;
5807
+ removeLegend(options?: TargetedOptions<RemoveLegendOptions>): ChartProgram;
5808
+ createGuides(options?: TargetedOptions<CreateGuidesOptions>): ChartProgram;
5809
+ /** Omit target for one overall unit/facet/concat title; childPath targets one view. */
5810
+ createTitle(options: TargetedOptions<TitleOptions>): ChartProgram;
5811
+ /** Edit the selected view title, or the overall composition title when target is omitted. */
5812
+ editTitle(options: TargetedOptions<EditTitleOptions>): ChartProgram;
5625
5813
  removeTitle(): ChartProgram;
5626
5814
 
5627
- createCoordinate(options?: CreateCoordinateOptions): ChartProgram;
5628
- editCoordinate(options: EditCoordinateOptions): ChartProgram;
5629
- createScale(options: CreateScaleOptions): ChartProgram;
5630
- editScale(options: EditScaleOptions): ChartProgram;
5631
- editXScale(options: EditXScaleOptions): ChartProgram;
5632
- editYScale(options: EditYScaleOptions): ChartProgram;
5633
- editXOffsetScale(options: EditXOffsetScaleOptions): ChartProgram;
5634
- editYOffsetScale(options: EditYOffsetScaleOptions): ChartProgram;
5635
- editParallelScale(options: EditParallelScaleOptions): ChartProgram;
5636
- editThetaScale(options: EditThetaScaleOptions): ChartProgram;
5637
- editRScale(options: EditRScaleOptions): ChartProgram;
5638
- editColorScale(options: EditColorScaleOptions): ChartProgram;
5639
- editStrokeScale(options: EditStrokeScaleOptions): ChartProgram;
5640
- editSizeScale(options: EditSizeScaleOptions): ChartProgram;
5641
- editOpacityScale(options: EditOpacityScaleOptions): ChartProgram;
5642
- editShapeScale(options: EditShapeScaleOptions): ChartProgram;
5643
- editStrokeWidthScale(options: EditStrokeWidthScaleOptions): ChartProgram;
5644
- editStrokeDashScale(options: EditStrokeDashScaleOptions): ChartProgram;
5645
- createDerivedData(options: CreateDerivedDataOptions): ChartProgram;
5646
- createRegressionBand(options: CreateRegressionBandOptions): ChartProgram;
5647
- editRegressionBand(options: StrokeStyleDetails & {
5815
+ createCoordinate(options?: TargetedOptions<CreateCoordinateOptions>): ChartProgram;
5816
+ editCoordinate(options: TargetedOptions<EditCoordinateOptions>): ChartProgram;
5817
+ createScale(options: TargetedOptions<CreateScaleOptions>): ChartProgram;
5818
+ editScale(options: TargetedOptions<EditScaleOptions>): ChartProgram;
5819
+ editXScale(options: TargetedOptions<EditXScaleOptions>): ChartProgram;
5820
+ editYScale(options: TargetedOptions<EditYScaleOptions>): ChartProgram;
5821
+ editXOffsetScale(options: TargetedOptions<EditXOffsetScaleOptions>): ChartProgram;
5822
+ editYOffsetScale(options: TargetedOptions<EditYOffsetScaleOptions>): ChartProgram;
5823
+ editParallelScale(options: TargetedOptions<EditParallelScaleOptions>): ChartProgram;
5824
+ editThetaScale(options: TargetedOptions<EditThetaScaleOptions>): ChartProgram;
5825
+ editRScale(options: TargetedOptions<EditRScaleOptions>): ChartProgram;
5826
+ editColorScale(options: TargetedOptions<EditColorScaleOptions>): ChartProgram;
5827
+ editStrokeScale(options: TargetedOptions<EditStrokeScaleOptions>): ChartProgram;
5828
+ editSizeScale(options: TargetedOptions<EditSizeScaleOptions>): ChartProgram;
5829
+ editOpacityScale(options: TargetedOptions<EditOpacityScaleOptions>): ChartProgram;
5830
+ editShapeScale(options: TargetedOptions<EditShapeScaleOptions>): ChartProgram;
5831
+ editStrokeWidthScale(options: TargetedOptions<EditStrokeWidthScaleOptions>): ChartProgram;
5832
+ editStrokeDashScale(options: TargetedOptions<EditStrokeDashScaleOptions>): ChartProgram;
5833
+ createDerivedData(options: TargetedOptions<CreateDerivedDataOptions>): ChartProgram;
5834
+ createRegressionBand(options: TargetedOptions<CreateRegressionBandOptions>): ChartProgram;
5835
+ editRegressionBand(options: TargetedOptions<StrokeStyleDetails & {
5648
5836
  target?: string;
5649
5837
  color?: string;
5650
5838
  opacity?: number;
5651
5839
  stroke?: string | false;
5652
5840
  strokeWidth?: number;
5653
5841
  curve?: CurveInterpolation;
5654
- }): ChartProgram;
5655
- createRegressionLine(options: CreateRegressionLineOptions): ChartProgram;
5656
- editRegressionLine(options: StrokeStyleDetails & {
5842
+ }>): ChartProgram;
5843
+ createRegressionLine(options: TargetedOptions<CreateRegressionLineOptions>): ChartProgram;
5844
+ editRegressionLine(options: TargetedOptions<StrokeStyleDetails & {
5657
5845
  target?: string;
5658
5846
  strokeWidth?: number;
5659
5847
  curve?: CurveInterpolation;
5660
- }): ChartProgram;
5661
-
5662
- editCompositionLayout(options: EditCompositionLayoutOptions): ChartProgram;
5663
- replaceCompositionChild(options: ReplaceCompositionChildOptions): ChartProgram;
5664
- insertCompositionChild(options: InsertCompositionChildOptions): ChartProgram;
5665
- removeCompositionChild(options: RemoveCompositionChildOptions): ChartProgram;
5666
- reorderCompositionChildren(options: ReorderCompositionChildrenOptions): ChartProgram;
5667
- facet(options: FacetOptions): ChartProgram;
5668
- facetGrid(options: FacetGridOptions): ChartProgram;
5669
- repeatCharts(options: RepeatChartsOptions): ChartProgram;
5670
- editFacetSource(options: EditFacetSourceOptions): ChartProgram;
5671
- editFacetScales(options: FacetScaleResolutions): ChartProgram;
5672
- editFacetGuides(options: FacetGuideOptions): ChartProgram;
5673
- editFacetHeaders(options: EditFacetHeadersOptions): ChartProgram;
5848
+ }>): ChartProgram;
5849
+
5850
+ editCompositionLayout(options: TargetedOptions<EditCompositionLayoutOptions>): ChartProgram;
5851
+ replaceCompositionChild(options: TargetedOptions<ReplaceCompositionChildOptions>): ChartProgram;
5852
+ insertCompositionChild(options: TargetedOptions<InsertCompositionChildOptions>): ChartProgram;
5853
+ removeCompositionChild(options: TargetedOptions<RemoveCompositionChildOptions>): ChartProgram;
5854
+ reorderCompositionChildren(options: TargetedOptions<ReorderCompositionChildrenOptions>): ChartProgram;
5855
+ facet(options: TargetedOptions<FacetOptions>): ChartProgram;
5856
+ facetGrid(options: TargetedOptions<FacetGridOptions>): ChartProgram;
5857
+ repeatCharts(options: TargetedOptions<RepeatChartsOptions>): ChartProgram;
5858
+ editFacetSource(options: TargetedOptions<EditFacetSourceOptions>): ChartProgram;
5859
+ editFacetScales(options: TargetedOptions<FacetScaleResolutions>): ChartProgram;
5860
+ editFacetGuides(options: TargetedOptions<FacetGuideOptions>): ChartProgram;
5861
+ editFacetHeaders(options: TargetedOptions<EditFacetHeadersOptions>): ChartProgram;
5674
5862
 
5675
5863
  editSemantic(options: EditSemanticOptions): ChartProgram;
5676
5864
  createGraphics(options: {