@opendata-ai/openchart-core 8.8.0 → 8.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -111,6 +111,81 @@ interface ChromeEconomy {
111
111
  */
112
112
  declare function resolveChromeEconomy(width: number, height: number): ChromeEconomy;
113
113
 
114
+ /** Supplied semantics; the library never invents a measure or uncertainty. */
115
+ interface FieldMetadata {
116
+ /** Explicit imported field type; preserved with the portable document. */
117
+ type?: 'text' | 'number' | 'date';
118
+ /** Identifies an internal, persistent row identity column. */
119
+ role?: 'identity';
120
+ label?: string;
121
+ unit?: string;
122
+ measure?: string;
123
+ provenance?: string;
124
+ /** Percent is encoded 0–100; proportion is encoded 0–1. */
125
+ representation?: 'number' | 'percent' | 'proportion';
126
+ interval?: {
127
+ lower: string;
128
+ upper: string;
129
+ };
130
+ statusField?: string;
131
+ }
132
+ interface DesignDiagnostic {
133
+ code: string;
134
+ severity: 'info' | 'warning' | 'error';
135
+ status: 'failed' | 'uncheckable';
136
+ path: string;
137
+ viewport: {
138
+ width: number;
139
+ height: number;
140
+ };
141
+ message: string;
142
+ origin: 'author' | 'default';
143
+ fix?: SpecPatch;
144
+ }
145
+ /** Atomic JSON-pointer edits guarded by the complete source document. */
146
+ interface SpecPatch {
147
+ label: string;
148
+ /** Canonical source snapshot prevents stale fixes overwriting subsequent edits. */
149
+ precondition: string;
150
+ changes: Array<{
151
+ path: string;
152
+ value: unknown;
153
+ }>;
154
+ }
155
+ type DesignQuestion = 'comparison' | 'change' | 'distribution' | 'composition' | 'geography' | 'relationships';
156
+ interface CompositionRecommendation {
157
+ id: string;
158
+ title: string;
159
+ reason: string;
160
+ tradeoff: string;
161
+ spec: VizSpec;
162
+ }
163
+ interface ObservationIdentity {
164
+ observation: string;
165
+ series?: string;
166
+ persistent: boolean;
167
+ }
168
+ interface ReaderObservation extends ObservationIdentity {
169
+ /** Aggregates are visible groups and never imply a raw-row selection. */
170
+ kind?: 'row' | 'aggregate';
171
+ datum: DataRow;
172
+ previous?: DataRow;
173
+ state: 'visible' | 'filtered';
174
+ }
175
+ interface ReaderSelection {
176
+ preview: ReaderObservation | null;
177
+ pinned: ReaderObservation[];
178
+ announcement: string;
179
+ }
180
+ /** Explicit relationships; aggregate groups never masquerade as raw rows. */
181
+ interface DatasetBinding {
182
+ dataset: string;
183
+ entityField: string;
184
+ kind: 'row' | 'group';
185
+ transform?: string;
186
+ groupMembers?: Record<string, Array<string | number>>;
187
+ }
188
+
114
189
  /**
115
190
  * Derived neutral ramp.
116
191
  *
@@ -165,8 +240,8 @@ declare function deriveNeutralRamp(text: string, bg: string, isDark?: boolean):
165
240
  /**
166
241
  * Theme types: color palettes, typography, spacing, and chrome defaults.
167
242
  *
168
- * Theme is the user-facing partial config (all optional).
169
- * ResolvedTheme is the engine-internal fully resolved version (no optionals).
243
+ * ThemeConfig is the user-facing partial config (all optional).
244
+ * ResolvedTheme is the public fully resolved output type.
170
245
  */
171
246
 
172
247
  /**
@@ -223,6 +298,20 @@ interface ThemeColors {
223
298
  annotationFill: string;
224
299
  /** Annotation text color. */
225
300
  annotationText: string;
301
+ /** Annotation label color. */
302
+ annotationLabel: string;
303
+ /** Annotation muted color. */
304
+ annotationMuted: string;
305
+ /** Annotation leader color. */
306
+ annotationLeader: string;
307
+ /** Annotation rule color. */
308
+ annotationRule: string;
309
+ /** Annotation rangefill color. */
310
+ annotationRangeFill: string;
311
+ /** Annotation markerfill color. */
312
+ annotationMarkerFill: string;
313
+ /** Annotation plate color. */
314
+ annotationPlate: string;
226
315
  /** Semantic color for positive/up-trend values (e.g. sparkline trend coloring). */
227
316
  positive: string;
228
317
  /** Semantic color for negative/down-trend values (e.g. sparkline trend coloring). */
@@ -331,10 +420,11 @@ interface ThemeChromeDefaults {
331
420
  * works with).
332
421
  *
333
422
  * Users provide ThemeConfig (from spec.ts) which is the partial/optional
334
- * version. The theme resolver deep-merges ThemeConfig onto the default Theme
423
+ * version. The theme resolver deep-merges ThemeConfig onto the default theme
335
424
  * to produce a ResolvedTheme.
336
425
  */
337
- interface Theme {
426
+ /** @internal Base structure before runtime color resolution. */
427
+ interface ThemeBase {
338
428
  /** Color palettes. */
339
429
  colors: ThemeColors;
340
430
  /** Typography settings. */
@@ -353,18 +443,10 @@ interface Theme {
353
443
  /** Series color assignment strategy. Default: 'palette' (full categorical). */
354
444
  seriesStrategy: SeriesStrategy;
355
445
  }
356
- /**
357
- * Fully resolved theme with no optional fields.
358
- *
359
- * This is the result of resolveTheme(): the default theme with user
360
- * overrides deep-merged in. Every property is guaranteed to have a value.
361
- * The engine uses ResolvedTheme internally so it never needs null checks.
362
- *
363
- * Structurally identical to Theme (both have all required fields), but
364
- * exists as a separate type for semantic clarity: Theme is the default
365
- * definition, ResolvedTheme is the runtime-resolved instance.
366
- */
367
- interface ResolvedTheme extends Theme {
446
+ /** @deprecated Use ThemeConfig for input or ResolvedTheme for resolved output. */
447
+ type Theme = ThemeBase;
448
+ /** Fully resolved runtime theme, including color adaptation and token metadata. */
449
+ interface ResolvedTheme extends ThemeBase {
368
450
  /** Colors plus the neutral ramp derived from `text` and `background`. */
369
451
  colors: ResolvedThemeColors;
370
452
  /** Whether dark mode adaptations have been applied to this theme. */
@@ -480,6 +562,17 @@ interface ResolvedChrome {
480
562
  brand?: ResolvedChromeElement;
481
563
  /** Annotation footnotes generated by auto-thinning. Rendered as a numbered list above the source line. */
482
564
  footnotes?: AnnotationFootnote[];
565
+ /** Reserved annotation-note and series-summary band, independent of the current demoted set. */
566
+ noteBandHeight?: number;
567
+ /** Height added by the engine in grow mode; hosts must not add it again. */
568
+ grownHeight?: number;
569
+ /** Responsive series readout above source/methodology. */
570
+ seriesSummary?: Array<{
571
+ key: string;
572
+ text: string;
573
+ lines: string[];
574
+ color: string;
575
+ }>;
483
576
  /** Absolute y at which bottom-chrome relative offsets are anchored: area.y + area.height + x-axis extent. */
484
577
  bottomAnchorY?: number;
485
578
  }
@@ -977,6 +1070,8 @@ type Mark = LineMark | AreaMark | RectMark | ArcMark | PointMark | TextMarkLayou
977
1070
  * The collision engine determines whether labels are visible or demoted to tooltip-only.
978
1071
  */
979
1072
  interface ResolvedLabel {
1073
+ /** Engine-wrapped display lines; text retains the original identity string. */
1074
+ lines?: string[];
980
1075
  /** Label text content. */
981
1076
  text: string;
982
1077
  /** Computed x position. */
@@ -993,6 +1088,10 @@ interface ResolvedLabel {
993
1088
  connector?: {
994
1089
  /** Connector start (at the label). */
995
1090
  from: Point;
1091
+ /** Engine-resolved quadratic control point; absent in older hand-built layouts. */
1092
+ control?: Point;
1093
+ /** Authored curve displacement, retained for geometry rebuilds. */
1094
+ bend?: number;
996
1095
  /** Connector end (pulled back from the data point so the line doesn't touch it). */
997
1096
  to: Point;
998
1097
  /** Actual data point the connector is calling out. Renderer uses this for the endpoint marker. */
@@ -1002,6 +1101,8 @@ interface ResolvedLabel {
1002
1101
  dx: number;
1003
1102
  dy: number;
1004
1103
  };
1104
+ /** Fixed label attachment for outside-reference gutter leaders; retained during animation. */
1105
+ labelAttachment?: 'left-center';
1005
1106
  /** Connector line color. */
1006
1107
  stroke: string;
1007
1108
  /** Connector style: straight line, curved arrow, or vertical drop-line through the data point. */
@@ -1078,6 +1179,7 @@ interface ResolvedAnnotation {
1078
1179
  * label. Positioned `lineHeight * primaryLineCount + gap` below `label.y`.
1079
1180
  */
1080
1181
  subtitle?: {
1182
+ lines?: string[];
1081
1183
  text: string;
1082
1184
  x: number;
1083
1185
  y: number;
@@ -1094,6 +1196,12 @@ interface ResolvedAnnotation {
1094
1196
  }
1095
1197
  /** A footnote entry generated by annotation auto-thinning. */
1096
1198
  interface AnnotationFootnote {
1199
+ /** Engine-wrapped display lines, including the number; omitted for one-line notes. */
1200
+ lines?: string[];
1201
+ /** Source annotation index, independent of note numbering. */
1202
+ specIndex?: number;
1203
+ /** Authored source ID, when present. */
1204
+ id?: string;
1097
1205
  /** 1-indexed footnote number matching the dot marker on the chart. */
1098
1206
  index: number;
1099
1207
  /** The original annotation text that was demoted. */
@@ -1206,6 +1314,8 @@ interface ContinuousLegendTick {
1206
1314
  x: number;
1207
1315
  /** Horizontal text anchor for the label. */
1208
1316
  anchor: 'start' | 'middle' | 'end';
1317
+ /** Additional baseline offset for staggered class boundaries (pixels). */
1318
+ offsetY?: number;
1209
1319
  }
1210
1320
  /** A discrete class swatch in a binned continuous legend. */
1211
1321
  interface ContinuousLegendBin {
@@ -1431,6 +1541,8 @@ interface A11yMetadata {
1431
1541
  }
1432
1542
  /** One fully-resolved animation phase. */
1433
1543
  interface ResolvedAnimationPhase {
1544
+ /** Present for bounded spring mode; duration is its finite settling time. */
1545
+ spring?: SpringConfig;
1434
1546
  /** Duration in ms. */
1435
1547
  duration: number;
1436
1548
  /** Easing preset name. */
@@ -2404,6 +2516,8 @@ type MeasureTextFn = (text: string, fontSize: number, fontWeight?: number) => {
2404
2516
  * chrome, axes, and legend to compute the chart drawing area.
2405
2517
  */
2406
2518
  interface CompileOptions {
2519
+ /** Structured design review; emitted from the resolved chart geometry. */
2520
+ onDiagnostic?: (diagnostic: DesignDiagnostic) => void;
2407
2521
  /** Total available width in pixels. */
2408
2522
  width: number;
2409
2523
  /** Total available height in pixels. */
@@ -2475,11 +2589,10 @@ interface CompileOptions {
2475
2589
  /** Extra pixels to reserve on the right margin for a secondary y-axis. Set by compileLayer when resolve.scale.y is 'independent'. */
2476
2590
  rightAxisReserve?: number;
2477
2591
  /**
2478
- * Extra pixels to reserve below the plot for the auto-thinning footnote list.
2479
- * Chicken-and-egg: thinning needs the chart area to decide what to demote, but
2480
- * the footnotes it produces need space carved out of that same area. compileChart
2481
- * resolves it by compiling once to learn the footnote count, then recompiling with
2482
- * this set. Callers should not set it; it is internal to that second pass.
2592
+ * Internal note-band reserve resolved from source annotation capacity and
2593
+ * responsive series-summary lines. Subtract mode consumes the fixed figure
2594
+ * budget; grow mode adds the reserve to the SVG height while keeping the
2595
+ * original layout budget and padding. Callers should not set this field.
2483
2596
  */
2484
2597
  footnoteReserve?: number;
2485
2598
  /** Recursion depth of the footnote-reserve convergence pass. Internal to compileChart. */
@@ -3576,6 +3689,8 @@ type ConnectorType = 'straight' | 'curve' | 'drop-line';
3576
3689
  interface ConnectorConfig {
3577
3690
  /** Connector style. */
3578
3691
  type: ConnectorType;
3692
+ /** Curve displacement along the chord normal, from -1 to 1. Omitted or zero preserves the automatic curve. Ignored for other connector types. */
3693
+ bend?: number;
3579
3694
  /** Whether to draw an arrowhead at the data-point end. Default: true for curve, false for straight. Drop-line never takes a head. */
3580
3695
  arrow?: boolean;
3581
3696
  }
@@ -3637,6 +3752,10 @@ interface TextAnnotation extends AnnotationBase {
3637
3752
  * 700 — the lede + context stack.
3638
3753
  */
3639
3754
  subtitle?: string;
3755
+ /** Subtitle size in pixels. Default: round(fontSize * 0.85). */
3756
+ subtitleFontSize?: number;
3757
+ /** Optional display wrap width in pixels. Omitted or null keeps unbounded lines. */
3758
+ maxWidth?: number | null;
3640
3759
  /**
3641
3760
  * Open-ring marker drawn on the data point itself (not on the pulled-back
3642
3761
  * connector tip).
@@ -3749,6 +3868,8 @@ interface RefLineAnnotation extends AnnotationBase {
3749
3868
  strokeWidth?: number;
3750
3869
  /** Pixel offset for the reference line label. */
3751
3870
  labelOffset?: AnnotationOffset;
3871
+ /** Opt-in screen-space label placement. Outside reserves a right gutter or top lane; omission preserves legacy labelAnchor behavior. */
3872
+ labelPlacement?: 'auto' | 'start' | 'end' | 'outside';
3752
3873
  /** Anchor direction for the reference line label. */
3753
3874
  labelAnchor?: AnnotationAnchor;
3754
3875
  /** Label font size in pixels. Default: 11. */
@@ -3823,6 +3944,20 @@ interface ThemeConfig {
3823
3944
  annotationFill?: TokenValue;
3824
3945
  /** Annotation text color. Accepts a TokenValue for light/dark pairs. */
3825
3946
  annotationText?: TokenValue;
3947
+ /** Annotation label color. Accepts a TokenValue light/dark pair. */
3948
+ annotationLabel?: TokenValue;
3949
+ /** Annotation muted color. Accepts a TokenValue light/dark pair. */
3950
+ annotationMuted?: TokenValue;
3951
+ /** Annotation leader color. Accepts a TokenValue light/dark pair. */
3952
+ annotationLeader?: TokenValue;
3953
+ /** Annotation rule color. Accepts a TokenValue light/dark pair. */
3954
+ annotationRule?: TokenValue;
3955
+ /** Annotation rangefill color. Accepts a TokenValue light/dark pair. */
3956
+ annotationRangeFill?: TokenValue;
3957
+ /** Annotation markerfill color. Accepts a TokenValue light/dark pair. */
3958
+ annotationMarkerFill?: TokenValue;
3959
+ /** Annotation plate color. Accepts a TokenValue light/dark pair. */
3960
+ annotationPlate?: TokenValue;
3826
3961
  /** Semantic color for positive/up-trend values. Accepts a TokenValue for light/dark pairs. */
3827
3962
  positive?: TokenValue;
3828
3963
  /** Semantic color for negative/down-trend values. Accepts a TokenValue for light/dark pairs. */
@@ -3889,17 +4024,17 @@ interface ThemeConfig {
3889
4024
  */
3890
4025
  chrome?: {
3891
4026
  /** Eyebrow (kicker) style override. */
3892
- eyebrow?: string | ChromeThemeOverride;
4027
+ eyebrow?: ChromeThemeOverride | /** @deprecated Use { color }. */ string;
3893
4028
  /** Title style override. */
3894
- title?: string | ChromeThemeOverride;
4029
+ title?: ChromeThemeOverride | /** @deprecated Use { color }. */ string;
3895
4030
  /** Subtitle style override. */
3896
- subtitle?: string | ChromeThemeOverride;
4031
+ subtitle?: ChromeThemeOverride | /** @deprecated Use { color }. */ string;
3897
4032
  /** Source/attribution style override. */
3898
- source?: string | ChromeThemeOverride;
4033
+ source?: ChromeThemeOverride | /** @deprecated Use { color }. */ string;
3899
4034
  /** Byline style override. */
3900
- byline?: string | ChromeThemeOverride;
4035
+ byline?: ChromeThemeOverride | /** @deprecated Use { color }. */ string;
3901
4036
  /** Footer style override. */
3902
- footer?: string | ChromeThemeOverride;
4037
+ footer?: ChromeThemeOverride | /** @deprecated Use { color }. */ string;
3903
4038
  };
3904
4039
  /**
3905
4040
  * Editorial rule above the chrome block: a short colored bar (the
@@ -4103,6 +4238,16 @@ interface SeriesStyle {
4103
4238
  * Uses CSS linear() curves. Named 'ease' (not 'easing') to match Vega convention.
4104
4239
  */
4105
4240
  type AnimationEase = 'smooth' | 'snappy';
4241
+ /** Opt-in motion language. */
4242
+ type AnimationPreset = 'fluid' | 'subtle'
4243
+ /** @deprecated Omit preset for v8 timing. */
4244
+ | 'legacy';
4245
+ /** Physical spring parameters. Quantitative motion is bounded at critical damping. */
4246
+ interface SpringConfig {
4247
+ stiffness?: number;
4248
+ damping?: number;
4249
+ mass?: number;
4250
+ }
4106
4251
  /** Stagger configuration for sequential element reveal. */
4107
4252
  interface AnimationStagger {
4108
4253
  /** Delay between each element in ms. Default: 80 */
@@ -4112,6 +4257,12 @@ interface AnimationStagger {
4112
4257
  }
4113
4258
  /** Fine-grained responsive behavior configuration. */
4114
4259
  interface ResponsiveConfig {
4260
+ /** Maximum eligible inline callouts below 400px container width; null or omitted is unlimited. Pinned annotations are exempt. */
4261
+ compactAnnotationLimit?: number | null;
4262
+ /** Preserve the final temporal boundary before thinning interior ticks. */
4263
+ preserveEnd?: boolean;
4264
+ /** Move direct series labels into a keyed list when the inline column cannot fit. */
4265
+ labelSummary?: boolean;
4115
4266
  /**
4116
4267
  * Automatic annotation thinning at narrow widths. When true (default),
4117
4268
  * annotations that can't be placed without overlap are demoted to numbered
@@ -4125,6 +4276,8 @@ interface ResponsiveConfig {
4125
4276
  * Each phase can be true (use defaults) or a config object.
4126
4277
  */
4127
4278
  interface AnimationPhaseConfig {
4279
+ /** Spring mode. Cannot be combined with duration or ease in this phase. */
4280
+ spring?: SpringConfig;
4128
4281
  /** Duration in ms. Default: 500 for enter. */
4129
4282
  duration?: number;
4130
4283
  /** Easing preset. Default: 'smooth'. */
@@ -4151,6 +4304,8 @@ interface UpdatePhaseConfig extends AnimationPhaseConfig {
4151
4304
  * following Vega's encoding set model.
4152
4305
  */
4153
4306
  interface AnimationConfig {
4307
+ /** Base preset; explicit phase settings take precedence. */
4308
+ preset?: AnimationPreset;
4154
4309
  /** Entrance animation when chart first renders. */
4155
4310
  enter?: AnimationPhaseConfig | boolean;
4156
4311
  /** Transition animation when data updates. */
@@ -4166,7 +4321,7 @@ interface AnimationConfig {
4166
4321
  * - false/omitted: no animation (current behavior)
4167
4322
  * - AnimationConfig: full control via enter/update/exit phases
4168
4323
  */
4169
- type AnimationSpec = boolean | AnimationConfig;
4324
+ type AnimationSpec = boolean | AnimationPreset | AnimationConfig;
4170
4325
  /**
4171
4326
  * Chart display mode.
4172
4327
  * - `'full'` (default): standard chart with chrome, axes, legend, padding.
@@ -4417,6 +4572,8 @@ interface A11yConfig {
4417
4572
  * @internal
4418
4573
  */
4419
4574
  interface BaseChartSpec<TData extends DataRow = DataRow> {
4575
+ /** Optional authored measure, unit, provenance, and supplied interval metadata. */
4576
+ fields?: Record<string, FieldMetadata>;
4420
4577
  /**
4421
4578
  * Data array: each element is a row with field values.
4422
4579
  * The Vega-Lite object form `{ values: [...] }` is also accepted at runtime
@@ -4505,6 +4662,7 @@ interface BaseChartSpec<TData extends DataRow = DataRow> {
4505
4662
  /** Theme configuration overrides. */
4506
4663
  theme?: ThemeConfig;
4507
4664
  /** Dark mode behavior. Defaults to "off". */
4665
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
4508
4666
  darkMode?: DarkMode;
4509
4667
  /**
4510
4668
  * Whether to show the OpenData watermark. Defaults to true; auto-hides
@@ -4722,6 +4880,10 @@ type TableDensity = 'condensed' | 'regular' | 'relaxed';
4722
4880
  * heatmap coloring, inline sparklines, sorted columns, search, and pagination.
4723
4881
  */
4724
4882
  interface TableSpec {
4883
+ /** Compact layout. v8 defaults to cards; priority retains comparable columns with expandable details. */
4884
+ mobileLayout?: 'cards' | 'priority' | 'scroll';
4885
+ /** Optional authored measure, unit, provenance, and supplied interval metadata. */
4886
+ fields?: Record<string, FieldMetadata>;
4725
4887
  /** Discriminant: always "table". */
4726
4888
  type: 'table';
4727
4889
  /** Data array: each element is a row. */
@@ -4735,6 +4897,7 @@ interface TableSpec {
4735
4897
  /** Theme configuration overrides. */
4736
4898
  theme?: ThemeConfig;
4737
4899
  /** Dark mode behavior. */
4900
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
4738
4901
  darkMode?: DarkMode;
4739
4902
  /** Whether to show the OpenData watermark. Defaults to true. */
4740
4903
  watermark?: boolean;
@@ -4906,6 +5069,7 @@ interface GraphSpec {
4906
5069
  /** Theme configuration overrides. */
4907
5070
  theme?: ThemeConfig;
4908
5071
  /** Dark mode behavior. */
5072
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
4909
5073
  darkMode?: DarkMode;
4910
5074
  /**
4911
5075
  * Motion configuration. DEFAULT-ON: omit for full defaults, `false` to opt
@@ -5034,6 +5198,7 @@ interface LayerSpec<TData extends DataRow = DataRow> {
5034
5198
  /** Theme configuration overrides. */
5035
5199
  theme?: ThemeConfig;
5036
5200
  /** Dark mode behavior. Defaults to "off". */
5201
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
5037
5202
  darkMode?: DarkMode;
5038
5203
  /** Whether to show the OpenData watermark. Defaults to true. */
5039
5204
  watermark?: boolean;
@@ -5121,6 +5286,7 @@ interface SankeySpec {
5121
5286
  /** Theme configuration overrides. */
5122
5287
  theme?: ThemeConfig;
5123
5288
  /** Dark mode behavior. Defaults to "off". */
5289
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
5124
5290
  darkMode?: DarkMode;
5125
5291
  /** Whether to show the OpenData watermark. Defaults to true. */
5126
5292
  watermark?: boolean;
@@ -5185,6 +5351,7 @@ interface TileMapSpec {
5185
5351
  /** Theme configuration overrides. */
5186
5352
  theme?: ThemeConfig;
5187
5353
  /** Dark mode behavior. Defaults to "off". */
5354
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
5188
5355
  darkMode?: DarkMode;
5189
5356
  /** Whether to show the OpenData watermark. Defaults to true. */
5190
5357
  watermark?: boolean;
@@ -5193,8 +5360,6 @@ interface TileMapSpec {
5193
5360
  /**
5194
5361
  * d3-format string applied to tile values, legend labels, and tooltips.
5195
5362
  * Examples: ".1f" for one decimal, "$,.0f" for currency, "~s" for SI.
5196
- * @deprecated Use the encoding channel's `format` field instead. This
5197
- * property is expanded into the encoding during compilation.
5198
5363
  */
5199
5364
  valueFormat?: string;
5200
5365
  }
@@ -5291,6 +5456,8 @@ interface GeoMapPointsLayer {
5291
5456
  opacity?: number;
5292
5457
  }
5293
5458
  interface GeoMapSpec {
5459
+ /** Optional authored measure, unit, provenance, and supplied interval metadata. */
5460
+ fields?: Record<string, FieldMetadata>;
5294
5461
  /** Discriminant: always "map". */
5295
5462
  type: 'map';
5296
5463
  /** Geo configuration: TopoJSON features, join key, and projection. */
@@ -5306,6 +5473,7 @@ interface GeoMapSpec {
5306
5473
  /** Theme configuration overrides. */
5307
5474
  theme?: ThemeConfig;
5308
5475
  /** Dark mode behavior. Defaults to "off". */
5476
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
5309
5477
  darkMode?: DarkMode;
5310
5478
  /** Whether to show the OpenData watermark. Defaults to true. */
5311
5479
  watermark?: boolean;
@@ -5340,6 +5508,7 @@ interface BarListSpec {
5340
5508
  /** Theme configuration overrides. */
5341
5509
  theme?: ThemeConfig;
5342
5510
  /** Dark mode behavior. Defaults to "off". */
5511
+ /** @deprecated Use the mount darkMode option; the spec field has no effect. */
5343
5512
  darkMode?: DarkMode;
5344
5513
  /** Whether to show the OpenData watermark. Defaults to true. */
5345
5514
  watermark?: boolean;
@@ -5700,79 +5869,6 @@ declare function isRefLineAnnotation(annotation: Annotation): annotation is RefL
5700
5869
  /** Human-readable display names for mark types (used in alt text, error messages). */
5701
5870
  declare const MARK_DISPLAY_NAMES: Record<MarkType, string>;
5702
5871
 
5703
- /**
5704
- * Per-mark-type encoding validation rules.
5705
- *
5706
- * Defines which encoding channels are required vs optional for each mark type.
5707
- * The engine compiler uses these rules to validate specs at runtime (TypeScript
5708
- * catches compile-time errors; these catch runtime JSON from Claude or APIs).
5709
- */
5710
-
5711
- /** Constraint on what field types are valid for an encoding channel. */
5712
- interface ChannelRule {
5713
- /** Whether this channel is required for the chart type. */
5714
- required: boolean;
5715
- /** Allowed field types. If empty, any field type is accepted. */
5716
- allowedTypes: FieldType[];
5717
- }
5718
- /** Encoding rules for a single chart type: which channels are required/optional. */
5719
- interface EncodingRule {
5720
- x: ChannelRule;
5721
- y: ChannelRule;
5722
- x2?: ChannelRule;
5723
- y2?: ChannelRule;
5724
- color: ChannelRule;
5725
- size: ChannelRule;
5726
- opacity?: ChannelRule;
5727
- strokeDash?: ChannelRule;
5728
- text?: ChannelRule;
5729
- tooltip?: ChannelRule;
5730
- theta?: ChannelRule;
5731
- detail: ChannelRule;
5732
- }
5733
- /**
5734
- * Encoding rules per mark type.
5735
- *
5736
- * Defines which channels are required and what field types they accept.
5737
- * The compiler uses this map to validate user specs at runtime.
5738
- *
5739
- * Key design decisions:
5740
- * - line/area: x is temporal/ordinal (the axis), y is quantitative (the value)
5741
- * - bar: covers both horizontal and vertical orientations, so both axes accept
5742
- * all relevant types. The engine validates the combination later (one axis
5743
- * must be quantitative).
5744
- * - arc: no x axis; y is the value (quantitative), color is the category
5745
- * - circle: y is the category, x is quantitative
5746
- * - point: both axes are quantitative
5747
- * - text/rule: fully optional positioning
5748
- * - tick/rect: both axes required, any type
5749
- * - beeswarm: both axes optional at the channel level; the compiler enforces
5750
- * the combination (exactly one quantitative value axis, the other axis an
5751
- * optional nominal/ordinal lane channel)
5752
- * - waffle: no positional axes; y is the share value (quantitative, with
5753
- * theta accepted as an alias like arc), color is the category
5754
- * - calendar: x is the daily date (temporal), color the per-day value
5755
- * (quantitative); no y channel (the calendar owns its own geometry)
5756
- * - parliament: no positional axes; theta (aliased to y) is the seat count
5757
- * (quantitative), color the party
5758
- */
5759
- declare const MARK_ENCODING_RULES: Record<MarkType, EncodingRule>;
5760
- /** Encoding rule for a single graph visual channel. */
5761
- interface GraphChannelRule {
5762
- /** Whether this channel is required. */
5763
- required: boolean;
5764
- /** Allowed field types. Empty means any type. */
5765
- allowedTypes: FieldType[];
5766
- }
5767
- /**
5768
- * Encoding rules for graph visualizations.
5769
- *
5770
- * All graph encoding channels are optional since a graph can be rendered
5771
- * with just nodes and edges (uniform appearance). Encoding channels add
5772
- * visual differentiation based on data fields.
5773
- */
5774
- declare const GRAPH_ENCODING_RULES: Record<string, GraphChannelRule>;
5775
-
5776
5872
  /**
5777
5873
  * Chart interaction event types.
5778
5874
  *
@@ -5784,6 +5880,23 @@ declare const GRAPH_ENCODING_RULES: Record<string, GraphChannelRule>;
5784
5880
  * mark elements and constructs these typed events from the raw browser events.
5785
5881
  */
5786
5882
 
5883
+ /** A source-addressed durable edit. Paths use escaped RFC 6901 JSON Pointers. */
5884
+ interface EditOp {
5885
+ op: 'set' | 'remove' | 'add';
5886
+ path: string;
5887
+ value?: unknown;
5888
+ /** Preconditions on the nearest authored annotation ancestor. */
5889
+ expect?: {
5890
+ id?: string;
5891
+ type?: string;
5892
+ text?: string;
5893
+ };
5894
+ }
5895
+ /** All operations succeed together. Revision is optional host bookkeeping. */
5896
+ interface EditTransaction {
5897
+ revision?: string | number;
5898
+ ops: EditOp[];
5899
+ }
5787
5900
  /** Identifies a specific chrome text element (title, subtitle, source, byline, footer). */
5788
5901
  type ChromeKey = 'title' | 'subtitle' | 'source' | 'byline' | 'footer';
5789
5902
  /**
@@ -5798,6 +5911,8 @@ type ElementRef = {
5798
5911
  id?: string;
5799
5912
  /** RFC 6901 JSON Pointer to the edited property in the spec. */
5800
5913
  path?: string;
5914
+ /** Rendered facet instance; source identity remains index/id/path. */
5915
+ facetInstance?: string;
5801
5916
  } | {
5802
5917
  type: 'chrome';
5803
5918
  key: ChromeKey;
@@ -5821,7 +5936,9 @@ type ElementRef = {
5821
5936
  };
5822
5937
  /** Helper constructors for ergonomic ElementRef creation. */
5823
5938
  declare const elementRef: {
5824
- readonly annotation: (index: number, id?: string, path?: string) => ElementRef;
5939
+ readonly annotation: (index: number, id?: string, path?: string) => Extract<ElementRef, {
5940
+ type: "annotation";
5941
+ }>;
5825
5942
  readonly chrome: (key: ChromeKey, path?: string) => ElementRef;
5826
5943
  readonly seriesLabel: (series: string, path?: string) => ElementRef;
5827
5944
  readonly legend: (path?: string) => ElementRef;
@@ -5843,6 +5960,10 @@ type ElementEdit = {
5843
5960
  element: ElementRef;
5844
5961
  annotation: TextAnnotation;
5845
5962
  offset: AnnotationOffset;
5963
+ /** Resolved first-drag placement. Persist together with offset when supplied. */
5964
+ anchor?: TextAnnotation['anchor'];
5965
+ /** A moved annotation stays inline. */
5966
+ responsive?: false;
5846
5967
  } | {
5847
5968
  type: 'annotation-connector';
5848
5969
  element: ElementRef;
@@ -5950,16 +6071,20 @@ interface ChartEventHandlers {
5950
6071
  */
5951
6072
  onHighlightChange?: (values: string[]) => void;
5952
6073
  /** Called when an annotation element is clicked. */
5953
- onAnnotationClick?: (annotation: Annotation, event: MouseEvent) => void;
5954
- /** Called when a text annotation label is dragged to a new position. */
6074
+ onAnnotationClick?: (annotation: Annotation, event: MouseEvent, element: ElementRef) => void;
6075
+ /** @deprecated Use onEditTransaction to persist complete edits. */
5955
6076
  onAnnotationEdit?: (annotation: TextAnnotation, updatedOffset: AnnotationOffset) => void;
5956
6077
  /** Unified edit callback. Fires for any spec-modifying edit (repositioning, deletion, text editing). */
5957
6078
  onEdit?: (edit: ElementEdit) => void;
6079
+ /** Optional source revision, stamped on emitted transactions. */
6080
+ revision?: string | number;
6081
+ /** Durable authored edits, applied atomically with applyEditTransaction. */
6082
+ onEditTransaction?: (transaction: EditTransaction) => void;
5958
6083
  /** Fired when an element is selected via click or programmatic select(). */
5959
6084
  onSelect?: (element: ElementRef) => void;
5960
6085
  /** Fired when the current element is deselected (click empty, Escape, or new selection replaces old). */
5961
6086
  onDeselect?: (element: ElementRef) => void;
5962
- /** Fired when inline text editing commits. Also flows through onEdit as a 'text-edit' event. */
6087
+ /** @deprecated Use onEditTransaction with a text set operation. */
5963
6088
  onTextEdit?: (element: ElementRef, oldText: string, newText: string) => void;
5964
6089
  /**
5965
6090
  * Fired when a "you draw it" (`youDrawIt`) drawing is revealed (button click
@@ -5972,6 +6097,98 @@ interface ChartEventHandlers {
5972
6097
  }>) => void;
5973
6098
  }
5974
6099
 
6100
+ type EditTransactionResult<T> = {
6101
+ ok: true;
6102
+ spec: T;
6103
+ inverse: EditTransaction;
6104
+ } | {
6105
+ ok: false;
6106
+ error: {
6107
+ opIndex: number;
6108
+ path: string;
6109
+ reason: string;
6110
+ };
6111
+ };
6112
+ /**
6113
+ * Apply an ordered transaction to a private copy, returning it only when every
6114
+ * operation validates. The original spec is never mutated, even on failure.
6115
+ * The inverse restores both values and optional containers created by add.
6116
+ */
6117
+ declare function applyEditTransaction<T>(spec: T, tx: EditTransaction): EditTransactionResult<T>;
6118
+
6119
+ /**
6120
+ * Per-mark-type encoding validation rules.
6121
+ *
6122
+ * Defines which encoding channels are required vs optional for each mark type.
6123
+ * The engine compiler uses these rules to validate specs at runtime (TypeScript
6124
+ * catches compile-time errors; these catch runtime JSON from Claude or APIs).
6125
+ */
6126
+
6127
+ /** Constraint on what field types are valid for an encoding channel. */
6128
+ interface ChannelRule {
6129
+ /** Whether this channel is required for the chart type. */
6130
+ required: boolean;
6131
+ /** Allowed field types. If empty, any field type is accepted. */
6132
+ allowedTypes: FieldType[];
6133
+ }
6134
+ /** Encoding rules for a single chart type: which channels are required/optional. */
6135
+ interface EncodingRule {
6136
+ x: ChannelRule;
6137
+ y: ChannelRule;
6138
+ x2?: ChannelRule;
6139
+ y2?: ChannelRule;
6140
+ color: ChannelRule;
6141
+ size: ChannelRule;
6142
+ opacity?: ChannelRule;
6143
+ strokeDash?: ChannelRule;
6144
+ text?: ChannelRule;
6145
+ tooltip?: ChannelRule;
6146
+ theta?: ChannelRule;
6147
+ detail: ChannelRule;
6148
+ }
6149
+ /**
6150
+ * Encoding rules per mark type.
6151
+ *
6152
+ * Defines which channels are required and what field types they accept.
6153
+ * The compiler uses this map to validate user specs at runtime.
6154
+ *
6155
+ * Key design decisions:
6156
+ * - line/area: x is temporal/ordinal (the axis), y is quantitative (the value)
6157
+ * - bar: covers both horizontal and vertical orientations, so both axes accept
6158
+ * all relevant types. The engine validates the combination later (one axis
6159
+ * must be quantitative).
6160
+ * - arc: no x axis; y is the value (quantitative), color is the category
6161
+ * - circle: y is the category, x is quantitative
6162
+ * - point: both axes are quantitative
6163
+ * - text/rule: fully optional positioning
6164
+ * - tick/rect: both axes required, any type
6165
+ * - beeswarm: both axes optional at the channel level; the compiler enforces
6166
+ * the combination (exactly one quantitative value axis, the other axis an
6167
+ * optional nominal/ordinal lane channel)
6168
+ * - waffle: no positional axes; y is the share value (quantitative, with
6169
+ * theta accepted as an alias like arc), color is the category
6170
+ * - calendar: x is the daily date (temporal), color the per-day value
6171
+ * (quantitative); no y channel (the calendar owns its own geometry)
6172
+ * - parliament: no positional axes; theta (aliased to y) is the seat count
6173
+ * (quantitative), color the party
6174
+ */
6175
+ declare const MARK_ENCODING_RULES: Record<MarkType, EncodingRule>;
6176
+ /** Encoding rule for a single graph visual channel. */
6177
+ interface GraphChannelRule {
6178
+ /** Whether this channel is required. */
6179
+ required: boolean;
6180
+ /** Allowed field types. Empty means any type. */
6181
+ allowedTypes: FieldType[];
6182
+ }
6183
+ /**
6184
+ * Encoding rules for graph visualizations.
6185
+ *
6186
+ * All graph encoding channels are optional since a graph can be rendered
6187
+ * with just nodes and edges (uniform appearance). Encoding channels add
6188
+ * visual differentiation based on data fields.
6189
+ */
6190
+ declare const GRAPH_ENCODING_RULES: Record<string, GraphChannelRule>;
6191
+
5975
6192
  /**
5976
6193
  * Color blindness simulation and palette distinguishability checks.
5977
6194
  *
@@ -6204,7 +6421,10 @@ declare function adaptForLightLineStroke(color: string): string;
6204
6421
  /**
6205
6422
  * The default theme. All fields are required and fully specified.
6206
6423
  */
6207
- declare const DEFAULT_THEME: Theme;
6424
+ declare const DEFAULT_THEME: ThemeBase;
6425
+
6426
+ /** Merge authored theme layers with v8 shallow precedence (later layers win). */
6427
+ declare function mergeThemeConfig(base: ThemeConfig | undefined, override: ThemeConfig | undefined): ThemeConfig | undefined;
6208
6428
 
6209
6429
  /**
6210
6430
  * Named theme presets built on the design token system.
@@ -6246,6 +6466,10 @@ declare const broadsheet: ThemeConfig;
6246
6466
  * siblings, the register a monitoring UI wants.
6247
6467
  */
6248
6468
  declare const terminal: ThemeConfig;
6469
+ /** Next-generation editorial composition; opt in during v8. */
6470
+ declare const clarity: ThemeConfig;
6471
+ /** Documented v8 typography. This does not freeze the layout engine. */
6472
+ declare const legacyEditorial: ThemeConfig;
6249
6473
 
6250
6474
  /**
6251
6475
  * Theme resolver: deep-merges user overrides onto default theme.
@@ -6270,7 +6494,7 @@ declare const terminal: ThemeConfig;
6270
6494
  * @param base - Base theme to merge onto. Defaults to DEFAULT_THEME.
6271
6495
  * @returns A ResolvedTheme with all properties guaranteed.
6272
6496
  */
6273
- declare function resolveTheme(userTheme?: ThemeConfig, base?: Theme): ResolvedTheme;
6497
+ declare function resolveTheme(userTheme?: ThemeConfig, base?: ThemeBase): ResolvedTheme;
6274
6498
 
6275
6499
  /**
6276
6500
  * Chrome layout computation.
@@ -6295,15 +6519,12 @@ declare function resolveTheme(userTheme?: ThemeConfig, base?: Theme): ResolvedTh
6295
6519
  * the last line drifts outside the band that was reserved for it.
6296
6520
  */
6297
6521
  declare const FOOTNOTE_LINE_HEIGHT = 1.3;
6522
+ /** Internal compiler arithmetic and compatibility fallback for hand-built layouts. */
6523
+ declare function computeNoteBandHeight(input: number | Pick<ResolvedChrome, 'noteBandHeight' | 'footnotes' | 'seriesSummary'>, theme: ResolvedTheme): number;
6298
6524
  /**
6299
- * Vertical space a footnote list of `count` lines occupies below the plot.
6300
- *
6301
- * Single source of truth, deliberately: the engine reserves this band in the
6302
- * bottom margin, the chrome renderer shifts the source row down by it, and the
6303
- * brand watermark shifts by it too. When those three disagree the footnotes
6304
- * land on top of the watermark, which is exactly the bug this centralizes away.
6525
+ * @deprecated Read layout.chrome.noteBandHeight. The numeric signature remains compatible in 8.x.
6305
6526
  */
6306
- declare function footnoteBandHeight(count: number, theme: ResolvedTheme): number;
6527
+ declare function footnoteBandHeight(input: number | Pick<ResolvedChrome, 'noteBandHeight' | 'footnotes' | 'seriesSummary'>, theme: ResolvedTheme): number;
6307
6528
  /**
6308
6529
  * Compute resolved chrome layout from a Chrome spec and resolved theme.
6309
6530
  *
@@ -6799,7 +7020,7 @@ interface ChartBuilderOptions {
6799
7020
  responsive?: boolean;
6800
7021
  /** Theme configuration overrides. */
6801
7022
  theme?: ThemeConfig;
6802
- /** Dark mode behavior. */
7023
+ /** @deprecated Set darkMode on the mount instead; this option has no effect. */
6803
7024
  darkMode?: DarkMode;
6804
7025
  }
6805
7026
  /** Options for the dataTable builder. */
@@ -6812,7 +7033,7 @@ interface TableBuilderOptions {
6812
7033
  chrome?: Chrome;
6813
7034
  /** Theme configuration overrides. */
6814
7035
  theme?: ThemeConfig;
6815
- /** Dark mode behavior. */
7036
+ /** @deprecated Set darkMode on the mount instead; this option has no effect. */
6816
7037
  darkMode?: DarkMode;
6817
7038
  /** Enable client-side search/filter. */
6818
7039
  search?: boolean;
@@ -6822,7 +7043,9 @@ interface TableBuilderOptions {
6822
7043
  };
6823
7044
  /** Stick the first column during horizontal scroll. */
6824
7045
  stickyFirstColumn?: boolean;
6825
- /** Compact mode. */
7046
+ /** Row density. */
7047
+ density?: TableDensity;
7048
+ /** @deprecated Use density. */
6826
7049
  compact?: boolean;
6827
7050
  /** Whether the table adapts to container width. */
6828
7051
  responsive?: boolean;
@@ -6943,7 +7166,7 @@ interface TileMapBuilderOptions {
6943
7166
  legend?: LegendConfig;
6944
7167
  /** Theme overrides. */
6945
7168
  theme?: ThemeConfig;
6946
- /** Dark mode setting. */
7169
+ /** @deprecated Set darkMode on the mount instead; this option has no effect. */
6947
7170
  darkMode?: DarkMode;
6948
7171
  /** Whether to show the watermark. */
6949
7172
  watermark?: boolean;
@@ -6978,6 +7201,36 @@ declare function tileMap(data: Record<string, number | string | null> | DataRow[
6978
7201
  */
6979
7202
  declare function deepMergeSpec(target: any, source: any): any;
6980
7203
 
7204
+ /** Matches layer compilation's parent-or-first-leaf annotation ownership. */
7205
+ declare function annotationSource(spec: unknown): {
7206
+ annotations: Annotation[];
7207
+ path: string;
7208
+ };
7209
+
7210
+ /** Deterministic, bounded motion shared by rendering and timestamp-based export. */
7211
+
7212
+ interface MotionPhase {
7213
+ duration: number;
7214
+ ease?: AnimationEase;
7215
+ spring?: SpringConfig;
7216
+ }
7217
+ interface MotionSample {
7218
+ /** Normalized progress; quantitative geometry never overshoots its endpoints. */
7219
+ position: number;
7220
+ /** Normalized distance per second. */
7221
+ velocity: number;
7222
+ settled: boolean;
7223
+ }
7224
+ declare const MOTION_REST_THRESHOLD = 0.001;
7225
+ declare const MAX_SPRING_DURATION = 1200;
7226
+ declare const FLUID_SPRING: Readonly<Required<SpringConfig>>;
7227
+ /** Resolve finite duration once, outside the frame loop. */
7228
+ declare function springDuration(config: SpringConfig): number;
7229
+ /** All callers, including exports, pass elapsed milliseconds explicitly. */
7230
+ declare function sampleMotion(phase: MotionPhase, elapsedMs: number): MotionSample;
7231
+ /** CSS samples use the same clock and evaluator as SVG, canvas, and export. */
7232
+ declare function motionCSS(phase: MotionPhase): string;
7233
+
6981
7234
  interface CssTokenDef {
6982
7235
  name: string;
6983
7236
  light: string;
@@ -7002,4 +7255,4 @@ declare const CSS_TOKEN_ROOT_SELECTORS: readonly string[];
7002
7255
  declare const CSS_TOKENS: readonly CssTokenDef[];
7003
7256
  declare function cssTokenDefault(name: string, mode: 'light' | 'dark'): string;
7004
7257
 
7005
- export { type A11yConfig, type A11yMetadata, ACHROMATIC_RAMP, AXIS_TITLE_GAP, AXIS_TITLE_OFFSET_COMPACT, AXIS_TITLE_OFFSET_DEFAULT, AXIS_TITLE_TRAILING_PAD, type AggregateOp, type AggregateTransform, type AnimationConfig, type AnimationEase, type AnimationPhaseConfig, type AnimationSpec, type AnimationStagger, type Annotation, type AnnotationAnchor, type AnnotationFootnote, type AnnotationOffset, type AnnotationPosition, type ArcEncoding, type ArcMark, type AreaEncoding, type AreaMark, type AxisConfig, type AxisLabelDensity, type AxisLayout, type AxisTick, BRAND_FONT_SIZE, BRAND_MIN_WIDTH, BRAND_RESERVE_WIDTH, BREAKPOINT_COMPACT_MAX, BREAKPOINT_MEDIUM_MAX, type BarColumnConfig, type BarEncoding, type BarListEncoding, type BarListLayout, type BarListRowMark, type BarListSpec, type BarListSpecWithoutData, type BarTableCell, type BaseLegendLayout, type BeeswarmEncoding, type BinParams, type BinTransform, type Breakpoint, CATEGORICAL_EXTENDED_PALETTE, CATEGORICAL_FILL_PALETTE, CATEGORICAL_FILL_PALETTE_DARK, CATEGORICAL_PALETTE, CATEGORICAL_PALETTE_DARK, COMPACT_MAX_X_TICKS, COMPACT_WIDTH, CSS_TOKENS, CSS_TOKEN_ROOT_SELECTORS, type CalculateExpression, type CalculateTransform, type CalendarEncoding, type CategoricalLegendLayout, type CategoricalPalette, type CategoryColorsConfig, type CategoryTableCell, type CellStyle, type ChannelRule, type ChartBuilderOptions, type ChartEventHandlers, type ChartLayout, type ChartSpec, type ChartSpecOverride, type ChartSpecWithoutData, type Chrome, type ChromeDefaults, type ChromeEconomy, type ChromeKey, type ChromeMode, type ChromeText, type ChromeTextStyle, type ChromeThemeOverride, type CircleEncoding, type ColorBlindnessType, type ColumnConfig, type CompileOptions, type CompileTableOptions, type CompileWarning, type Condition, type ConditionalValueDef, type ConnectorConfig, type ConnectorType, type ContinuousLegendBin, type ContinuousLegendLayout, type ContinuousLegendTick, type CssTokenDef, DEFAULT_THEME, DIVERGING_PALETTES, type DarkMode, type DataRow, type DateGranularity, type DeltaColumnConfig, type DeltaTableCell, type DensityEncoding, type DensityTransform, type Display, type DivergingPalette, EXTENDED_OFFSET_STRATEGIES, type ElementEdit, type ElementRef, type Encoding, type EncodingChannel, type EncodingRule, type EndpointLabelContent, type EndpointLabelEntry, type EndpointLabelsConfig, type EndpointLabelsLayout, FOOTNOTE_LINE_HEIGHT, type FacetChannel, type FacetLayout, type FacetPanelLayout, type FieldFormatContext, type FieldPredicate, type FieldRef, type FieldType, type FillPatternType, type FilterPredicate, type FilterTransform, type FlagTableCell, type FoldTransform, GRAPH_ENCODING_RULES, type GeoMapBorders, type GeoMapEncoding, type GeoMapFeatureMark, type GeoMapFocus, type GeoMapFocusLayout, type GeoMapGeo, type GeoMapLayout, type GeoMapPointMark, type GeoMapPointsLayer, type GeoMapProjection, type GeoMapSpec, type GeoMapSpecWithoutData, type GeoMapZoomConfig, type GradientColorStop, type GradientDef, type GradientLegendLayout, type GradientStop, type GraphAnimationConfig, type GraphAnimationSpec, type GraphChannelRule, type GraphEdge, type GraphEdgeLayout, type GraphEncoding, type GraphEncodingChannel, type GraphInteractionConfig, type GraphLayout, type GraphLayoutConfig, type GraphNode, type GraphNodeLayout, type GraphSpec, type GraphSpecWithoutData, type Gridline, HEIGHT_CRAMPED_MAX, HEIGHT_MINIMAL_MAX, HEIGHT_NO_GRID_MAX, HEIGHT_SHORT_MAX, HPAD_COMPACT_FRACTION, HPAD_COMPACT_MIN, type HeatmapColumnConfig, type HeatmapTableCell, type HeightClass, type HistogramEncoding, type ImageColumnConfig, type ImageTableCell, type JoinAggregateTransform, LABEL_GAP_COMPACT, LABEL_GAP_DEFAULT, LABEL_GAP_NARROW_MAX, type LabelCandidate, type LabelConfig, type LabelDensity, type LabelMode, type LabelPriority, type LabelSpec, type LayerSpec, type LayoutStrategy, type LegendChannel, type LegendConfig, type LegendEntry, type LegendEntryPosition, type LegendLayout, type LegendPosition, type LineEncoding, type LineMark, type LinearGradient, type LogicalAnd, type LogicalNot, type LogicalOr, type LollipopEncoding, MARK_DISPLAY_NAMES, MARK_ENCODING_RULES, MARK_TYPES, MAX_LEFT_LABEL_FRACTION_COMPACT, MAX_LEFT_LABEL_FRACTION_DEFAULT, MAX_LEFT_LABEL_FRACTION_MEDIUM, MAX_LEFT_LABEL_FRACTION_MEDIUM_MAX, MAX_SR_TABLE_ROWS, type Margins, type Mark, type MarkAria, type MarkDef, type MarkEvent, type MarkType, type MeasureTextFn, type Metric, NARROW_VIEWPORT_MAX, type NeutralRamp, type NodeOverride, type NumberFormatter, OFFSET_STRATEGIES, type OffsetStrategy, type PaginationState, type ParliamentEncoding, type Point, type PointEncoding, type PointMark, type RadialGradient, type RangeAnnotation, type RangeEncoding, type Rect, type RectEncoding, type RectMark, type RefLineAnnotation, type RelativeTimeRef, type ResolveConfig, type ResolveMode, type ResolvedAnimation, type ResolvedAnimationPhase, type ResolvedAnnotation, type ResolvedChrome, type ResolvedChromeElement, type ResolvedChromeRule, type ResolvedColumn, type ResolvedFillPattern, type ResolvedLabel, type ResolvedMetricBar, type ResolvedMetricCell, type ResolvedSeriesSearch, type ResolvedTheme, type ResolvedThemeColors, type ResolvedYouDrawIt, type ResponsiveConfig, type RuleMarkLayout, SEQUENTIAL_PALETTES, SUPPORTED_SCHEME_NAMES, type SankeyEncoding, type SankeyLayout, type SankeyLinkColor, type SankeyLinkMark, type SankeyNodeAlign, type SankeyNodeMark, type SankeySpec, type SankeySpecWithoutData, type ScaleConfig, type ScaleInvert, type ScaleType, type SequentialPalette, type SeriesSearchConfig, type SeriesStrategy, type SeriesStyle, type SizeLegendCircle, type SizeLegendLayout, type SortByField, type SortState, type SparklineColumnConfig, type SparklineData, type SparklineTableCell, type StoredVizSpec, TICK_LABEL_OFFSET, TICK_LINE_HEIGHT_FACTOR, TOP_PAD_EXTRA_NARROW, TOP_PAD_NARROW_MAX, type TableBuilderOptions, type TableCell, type TableCellBase, type TableDensity, type TableLayout, type TableRow, type TableSpec, type TableSpecWithoutData, type TableTotalRow, type TextAnnotation, type TextEncoding, type TextMarkLayout, type TextStyle, type TextTableCell, type Theme, type ThemeChromeDefaults, type ThemeColors, type ThemeConfig, type ThemeFontSizes, type ThemeFontWeights, type ThemeFonts, type ThemeRule, type ThemeSpacing, type TickEncoding, type TickMarkLayout, type TileMapBuilderOptions, type TileMapEncoding, type TileMapLayout, type TileMapPalette, type TileMapSpec, type TileMapSpecWithoutData, type TileMapTileMark, type TimeUnit, type TimeUnitTransform, type TokenValue, type TooltipContent, type TooltipField, type Transform, type UpdatePhaseConfig, type ValueDef, type VizSpec, type WaffleEncoding, type WindowFieldDef, type WindowOp, type WindowSortField, type WindowTransform, type XAxisExtentInput, X_AXIS_BAND_HEIGHT, X_AXIS_ROTATED_EXTENT_CAP, X_AXIS_TITLE_BAND, X_AXIS_TITLE_BAND_ROTATED, type YouDrawItConfig, type YouDrawItSample, type YouDrawItYInvert, abbreviateNumber, adaptColorForDarkMode, adaptForLightLineStroke, adaptTheme, areaChart, axisTitleOffset, barChart, broadsheet, buildCompactStepFormatter, buildD3Formatter, buildTemporalFormatter, checkPaletteDistinguishability, columnChart, computeChrome, computeFieldFormatContext, computeLabelBounds, computeXAxisExtentFromLabels, contrastRatio, cssTokenDefault, dataTable, deepMergeSpec, defaultNumberFormatter, deriveNeutralRamp, detectCollision, donutChart, dotChart, editorial, elementRef, essay, estimateTextWidth, findAccessibleColor, footnoteBandHeight, formatCurrency, formatDate, formatNumber, formatOrdinal, formatPercent, generateAltText, generateAriaLabels, generateDataTable, getAxisTitleOffset, getBreakpoint, getHeightClass, getLayoutStrategy, getRepresentativeColor, heuristicMeasure, inferFieldType, isAxislessMark, isBarListSpec, isChartSpec, isConditionalDef, isEncodingChannel, isGeoMapSpec, isGradientDef, isGraphSpec, isLayerSpec, isOpaqueColor, isRangeAnnotation, isRefLineAnnotation, isSankeySpec, isTableSpec, isTextAnnotation, isTileMapSpec, isValueDef, isYearContext, lineChart, maxRotatedLabelWidth, meetsAA, overlapArea, pickLabelColor, pieChart, resolveChromeEconomy, resolveCollisions, resolveMarkDef, resolveMarkType, resolveMeasurer, resolveNumberFormatter, resolveSchemeName, resolveTheme, scatterChart, simulateColorBlindness, terminal, textAscent, tileMap, truncateRotatedLabel, truncateToWidth, wire, wrapText };
7258
+ export { type A11yConfig, type A11yMetadata, ACHROMATIC_RAMP, AXIS_TITLE_GAP, AXIS_TITLE_OFFSET_COMPACT, AXIS_TITLE_OFFSET_DEFAULT, AXIS_TITLE_TRAILING_PAD, type AggregateOp, type AggregateTransform, type AnimationConfig, type AnimationEase, type AnimationPhaseConfig, type AnimationPreset, type AnimationSpec, type AnimationStagger, type Annotation, type AnnotationAnchor, type AnnotationFootnote, type AnnotationOffset, type AnnotationPosition, type ArcEncoding, type ArcMark, type AreaEncoding, type AreaMark, type AxisConfig, type AxisLabelDensity, type AxisLayout, type AxisTick, BRAND_FONT_SIZE, BRAND_MIN_WIDTH, BRAND_RESERVE_WIDTH, BREAKPOINT_COMPACT_MAX, BREAKPOINT_MEDIUM_MAX, type BarColumnConfig, type BarEncoding, type BarListEncoding, type BarListLayout, type BarListRowMark, type BarListSpec, type BarListSpecWithoutData, type BarTableCell, type BaseLegendLayout, type BeeswarmEncoding, type BinParams, type BinTransform, type Breakpoint, CATEGORICAL_EXTENDED_PALETTE, CATEGORICAL_FILL_PALETTE, CATEGORICAL_FILL_PALETTE_DARK, CATEGORICAL_PALETTE, CATEGORICAL_PALETTE_DARK, COMPACT_MAX_X_TICKS, COMPACT_WIDTH, CSS_TOKENS, CSS_TOKEN_ROOT_SELECTORS, type CalculateExpression, type CalculateTransform, type CalendarEncoding, type CategoricalLegendLayout, type CategoricalPalette, type CategoryColorsConfig, type CategoryTableCell, type CellStyle, type ChannelRule, type ChartBuilderOptions, type ChartEventHandlers, type ChartLayout, type ChartSpec, type ChartSpecOverride, type ChartSpecWithoutData, type Chrome, type ChromeDefaults, type ChromeEconomy, type ChromeKey, type ChromeMode, type ChromeText, type ChromeTextStyle, type ChromeThemeOverride, type CircleEncoding, type ColorBlindnessType, type ColumnConfig, type CompileOptions, type CompileTableOptions, type CompileWarning, type CompositionRecommendation, type Condition, type ConditionalValueDef, type ConnectorConfig, type ConnectorType, type ContinuousLegendBin, type ContinuousLegendLayout, type ContinuousLegendTick, type CssTokenDef, DEFAULT_THEME, DIVERGING_PALETTES, type DarkMode, type DataRow, type DatasetBinding, type DateGranularity, type DeltaColumnConfig, type DeltaTableCell, type DensityEncoding, type DensityTransform, type DesignDiagnostic, type DesignQuestion, type Display, type DivergingPalette, EXTENDED_OFFSET_STRATEGIES, type EditOp, type EditTransaction, type EditTransactionResult, type ElementEdit, type ElementRef, type Encoding, type EncodingChannel, type EncodingRule, type EndpointLabelContent, type EndpointLabelEntry, type EndpointLabelsConfig, type EndpointLabelsLayout, FLUID_SPRING, FOOTNOTE_LINE_HEIGHT, type FacetChannel, type FacetLayout, type FacetPanelLayout, type FieldFormatContext, type FieldMetadata, type FieldPredicate, type FieldRef, type FieldType, type FillPatternType, type FilterPredicate, type FilterTransform, type FlagTableCell, type FoldTransform, GRAPH_ENCODING_RULES, type GeoMapBorders, type GeoMapEncoding, type GeoMapFeatureMark, type GeoMapFocus, type GeoMapFocusLayout, type GeoMapGeo, type GeoMapLayout, type GeoMapPointMark, type GeoMapPointsLayer, type GeoMapProjection, type GeoMapSpec, type GeoMapSpecWithoutData, type GeoMapZoomConfig, type GradientColorStop, type GradientDef, type GradientLegendLayout, type GradientStop, type GraphAnimationConfig, type GraphAnimationSpec, type GraphChannelRule, type GraphEdge, type GraphEdgeLayout, type GraphEncoding, type GraphEncodingChannel, type GraphInteractionConfig, type GraphLayout, type GraphLayoutConfig, type GraphNode, type GraphNodeLayout, type GraphSpec, type GraphSpecWithoutData, type Gridline, HEIGHT_CRAMPED_MAX, HEIGHT_MINIMAL_MAX, HEIGHT_NO_GRID_MAX, HEIGHT_SHORT_MAX, HPAD_COMPACT_FRACTION, HPAD_COMPACT_MIN, type HeatmapColumnConfig, type HeatmapTableCell, type HeightClass, type HistogramEncoding, type ImageColumnConfig, type ImageTableCell, type JoinAggregateTransform, LABEL_GAP_COMPACT, LABEL_GAP_DEFAULT, LABEL_GAP_NARROW_MAX, type LabelCandidate, type LabelConfig, type LabelDensity, type LabelMode, type LabelPriority, type LabelSpec, type LayerSpec, type LayoutStrategy, type LegendChannel, type LegendConfig, type LegendEntry, type LegendEntryPosition, type LegendLayout, type LegendPosition, type LineEncoding, type LineMark, type LinearGradient, type LogicalAnd, type LogicalNot, type LogicalOr, type LollipopEncoding, MARK_DISPLAY_NAMES, MARK_ENCODING_RULES, MARK_TYPES, MAX_LEFT_LABEL_FRACTION_COMPACT, MAX_LEFT_LABEL_FRACTION_DEFAULT, MAX_LEFT_LABEL_FRACTION_MEDIUM, MAX_LEFT_LABEL_FRACTION_MEDIUM_MAX, MAX_SPRING_DURATION, MAX_SR_TABLE_ROWS, MOTION_REST_THRESHOLD, type Margins, type Mark, type MarkAria, type MarkDef, type MarkEvent, type MarkType, type MeasureTextFn, type Metric, type MotionPhase, type MotionSample, NARROW_VIEWPORT_MAX, type NeutralRamp, type NodeOverride, type NumberFormatter, OFFSET_STRATEGIES, type ObservationIdentity, type OffsetStrategy, type PaginationState, type ParliamentEncoding, type Point, type PointEncoding, type PointMark, type RadialGradient, type RangeAnnotation, type RangeEncoding, type ReaderObservation, type ReaderSelection, type Rect, type RectEncoding, type RectMark, type RefLineAnnotation, type RelativeTimeRef, type ResolveConfig, type ResolveMode, type ResolvedAnimation, type ResolvedAnimationPhase, type ResolvedAnnotation, type ResolvedChrome, type ResolvedChromeElement, type ResolvedChromeRule, type ResolvedColumn, type ResolvedFillPattern, type ResolvedLabel, type ResolvedMetricBar, type ResolvedMetricCell, type ResolvedSeriesSearch, type ResolvedTheme, type ResolvedThemeColors, type ResolvedYouDrawIt, type ResponsiveConfig, type RuleMarkLayout, SEQUENTIAL_PALETTES, SUPPORTED_SCHEME_NAMES, type SankeyEncoding, type SankeyLayout, type SankeyLinkColor, type SankeyLinkMark, type SankeyNodeAlign, type SankeyNodeMark, type SankeySpec, type SankeySpecWithoutData, type ScaleConfig, type ScaleInvert, type ScaleType, type SequentialPalette, type SeriesSearchConfig, type SeriesStrategy, type SeriesStyle, type SizeLegendCircle, type SizeLegendLayout, type SortByField, type SortState, type SparklineColumnConfig, type SparklineData, type SparklineTableCell, type SpecPatch, type SpringConfig, type StoredVizSpec, TICK_LABEL_OFFSET, TICK_LINE_HEIGHT_FACTOR, TOP_PAD_EXTRA_NARROW, TOP_PAD_NARROW_MAX, type TableBuilderOptions, type TableCell, type TableCellBase, type TableDensity, type TableLayout, type TableRow, type TableSpec, type TableSpecWithoutData, type TableTotalRow, type TextAnnotation, type TextEncoding, type TextMarkLayout, type TextStyle, type TextTableCell, type Theme, type ThemeChromeDefaults, type ThemeColors, type ThemeConfig, type ThemeFontSizes, type ThemeFontWeights, type ThemeFonts, type ThemeRule, type ThemeSpacing, type TickEncoding, type TickMarkLayout, type TileMapBuilderOptions, type TileMapEncoding, type TileMapLayout, type TileMapPalette, type TileMapSpec, type TileMapSpecWithoutData, type TileMapTileMark, type TimeUnit, type TimeUnitTransform, type TokenValue, type TooltipContent, type TooltipField, type Transform, type UpdatePhaseConfig, type ValueDef, type VizSpec, type WaffleEncoding, type WindowFieldDef, type WindowOp, type WindowSortField, type WindowTransform, type XAxisExtentInput, X_AXIS_BAND_HEIGHT, X_AXIS_ROTATED_EXTENT_CAP, X_AXIS_TITLE_BAND, X_AXIS_TITLE_BAND_ROTATED, type YouDrawItConfig, type YouDrawItSample, type YouDrawItYInvert, abbreviateNumber, adaptColorForDarkMode, adaptForLightLineStroke, adaptTheme, annotationSource, applyEditTransaction, areaChart, axisTitleOffset, barChart, broadsheet, buildCompactStepFormatter, buildD3Formatter, buildTemporalFormatter, checkPaletteDistinguishability, clarity, columnChart, computeChrome, computeFieldFormatContext, computeLabelBounds, computeNoteBandHeight, computeXAxisExtentFromLabels, contrastRatio, cssTokenDefault, dataTable, deepMergeSpec, defaultNumberFormatter, deriveNeutralRamp, detectCollision, donutChart, dotChart, editorial, elementRef, essay, estimateTextWidth, findAccessibleColor, footnoteBandHeight, formatCurrency, formatDate, formatNumber, formatOrdinal, formatPercent, generateAltText, generateAriaLabels, generateDataTable, getAxisTitleOffset, getBreakpoint, getHeightClass, getLayoutStrategy, getRepresentativeColor, heuristicMeasure, inferFieldType, isAxislessMark, isBarListSpec, isChartSpec, isConditionalDef, isEncodingChannel, isGeoMapSpec, isGradientDef, isGraphSpec, isLayerSpec, isOpaqueColor, isRangeAnnotation, isRefLineAnnotation, isSankeySpec, isTableSpec, isTextAnnotation, isTileMapSpec, isValueDef, isYearContext, legacyEditorial, lineChart, maxRotatedLabelWidth, meetsAA, mergeThemeConfig, motionCSS, overlapArea, pickLabelColor, pieChart, resolveChromeEconomy, resolveCollisions, resolveMarkDef, resolveMarkType, resolveMeasurer, resolveNumberFormatter, resolveSchemeName, resolveTheme, sampleMotion, scatterChart, simulateColorBlindness, springDuration, terminal, textAscent, tileMap, truncateRotatedLabel, truncateToWidth, wire, wrapText };