ggaction 0.0.12 → 0.0.15

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 (378) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/README.md +20 -11
  3. package/knowledge/action-card.schema.json +1 -1
  4. package/knowledge/action-cards.json +1 -1
  5. package/knowledge/action-cards.schema.json +1 -1
  6. package/knowledge/extension-authoring.md +2 -1
  7. package/knowledge/intent-taxonomy.json +1 -1
  8. package/knowledge/mcp-resources.json +1 -1
  9. package/knowledge/task-resolver.js +1 -1
  10. package/package.json +10 -3
  11. package/src/actions/basic.js +4 -2
  12. package/src/actions/boxPlots/components.js +14 -4
  13. package/src/actions/boxPlots/edit.js +31 -5
  14. package/src/actions/boxPlots/materialize.js +13 -4
  15. package/src/actions/boxPlots/options.js +48 -16
  16. package/src/actions/canvas/actions.js +3 -1
  17. package/src/actions/canvas/fitting.js +211 -0
  18. package/src/actions/canvas/index.js +2 -0
  19. package/src/actions/categoryOrder/index.js +18 -6
  20. package/src/actions/charts/area.js +51 -0
  21. package/src/actions/charts/bar.js +13 -6
  22. package/src/actions/charts/beeswarm.js +70 -0
  23. package/src/actions/charts/density.js +48 -0
  24. package/src/actions/charts/ecdf.js +186 -0
  25. package/src/actions/charts/endpoints.js +473 -0
  26. package/src/actions/charts/heatmap.js +4 -3
  27. package/src/actions/charts/histogram.js +5 -4
  28. package/src/actions/charts/horizon.js +73 -0
  29. package/src/actions/charts/index.js +37 -0
  30. package/src/actions/charts/interval-regression.js +172 -0
  31. package/src/actions/charts/line.js +8 -6
  32. package/src/actions/charts/parallel.js +8 -2
  33. package/src/actions/charts/pie.js +52 -0
  34. package/src/actions/charts/polar.js +134 -0
  35. package/src/actions/charts/radar.js +305 -0
  36. package/src/actions/charts/radial.js +50 -0
  37. package/src/actions/charts/raincloud.js +422 -0
  38. package/src/actions/charts/rug-strip.js +283 -0
  39. package/src/actions/charts/scatter.js +11 -3
  40. package/src/actions/charts/shared.js +69 -10
  41. package/src/actions/composition/actions.js +129 -3
  42. package/src/actions/coordinates/actions.js +1 -1
  43. package/src/actions/coordinates/edit.js +76 -0
  44. package/src/actions/data/bin.js +29 -0
  45. package/src/actions/data/bin2d.js +57 -185
  46. package/src/actions/data/complete.js +26 -0
  47. package/src/actions/data/computed.js +24 -0
  48. package/src/actions/data/create.js +2 -2
  49. package/src/actions/data/density.js +12 -20
  50. package/src/actions/data/derived.js +111 -15
  51. package/src/actions/data/ecdf.js +38 -0
  52. package/src/actions/data/edit.js +539 -0
  53. package/src/actions/data/filter.js +226 -30
  54. package/src/actions/data/fold.js +24 -0
  55. package/src/actions/data/impute.js +26 -0
  56. package/src/actions/data/index.js +38 -0
  57. package/src/actions/data/interval.js +2 -0
  58. package/src/actions/data/intervalEdit.js +86 -4
  59. package/src/actions/data/normalize.js +27 -0
  60. package/src/actions/data/regression.js +19 -21
  61. package/src/actions/data/revisionBindings.js +145 -0
  62. package/src/actions/data/shared.js +20 -4
  63. package/src/actions/data/stack.js +26 -0
  64. package/src/actions/data/summary.js +26 -0
  65. package/src/actions/data/timeUnit.js +4 -1
  66. package/src/actions/data/window.js +1 -1
  67. package/src/actions/encodings/appearance.js +32 -13
  68. package/src/actions/encodings/barWidth.js +8 -0
  69. package/src/actions/encodings/basic.js +2 -0
  70. package/src/actions/encodings/channels.js +415 -0
  71. package/src/actions/encodings/color/continuous.js +19 -59
  72. package/src/actions/encodings/color/index.js +30 -23
  73. package/src/actions/encodings/color/layout.js +3 -97
  74. package/src/actions/encodings/color/policy.js +5 -8
  75. package/src/actions/encodings/density/resolve.js +37 -5
  76. package/src/actions/encodings/density.js +124 -34
  77. package/src/actions/encodings/histogram.js +3 -2
  78. package/src/actions/encodings/horizon/resolve.js +8 -4
  79. package/src/actions/encodings/horizon.js +18 -8
  80. package/src/actions/encodings/index.js +6 -0
  81. package/src/actions/encodings/offset.js +30 -29
  82. package/src/actions/encodings/parallel.js +2 -8
  83. package/src/actions/encodings/position/apply.js +63 -11
  84. package/src/actions/encodings/position/index.js +52 -6
  85. package/src/actions/encodings/position/policies/arc.js +14 -0
  86. package/src/actions/encodings/position/policies/area.js +4 -42
  87. package/src/actions/encodings/position/policies/bar.js +57 -13
  88. package/src/actions/encodings/position/resolve.js +88 -26
  89. package/src/actions/encodings/ranged.js +123 -97
  90. package/src/actions/encodings/remove.js +44 -34
  91. package/src/actions/encodings/ruleAppearance.js +24 -32
  92. package/src/actions/encodings/seriesLayout.js +105 -0
  93. package/src/actions/encodings/shared.js +107 -37
  94. package/src/actions/encodings/stroke.js +226 -0
  95. package/src/actions/encodings/strokeDash.js +9 -6
  96. package/src/actions/encodings/temporal.js +7 -0
  97. package/src/actions/encodings/text.js +30 -15
  98. package/src/actions/errorBands/create.js +41 -8
  99. package/src/actions/errorBands/edit.js +360 -25
  100. package/src/actions/errorBars/create.js +56 -17
  101. package/src/actions/errorBars/edit.js +372 -21
  102. package/src/actions/facets/actions.js +619 -41
  103. package/src/actions/facets/derive.js +139 -25
  104. package/src/actions/gradientPlots/components.js +43 -13
  105. package/src/actions/gradientPlots/edit.js +14 -4
  106. package/src/actions/gradientPlots/materialize.js +8 -8
  107. package/src/actions/gradientPlots/options.js +10 -2
  108. package/src/actions/guides/applicability.js +28 -19
  109. package/src/actions/guides/axes/axes.js +4 -3
  110. package/src/actions/guides/axes/axis.js +18 -18
  111. package/src/actions/guides/axes/components.js +43 -0
  112. package/src/actions/guides/axes/edit.js +16 -51
  113. package/src/actions/guides/axes/labels.js +184 -28
  114. package/src/actions/guides/axes/lines.js +13 -7
  115. package/src/actions/guides/axes/parallel/lifecycle.js +117 -0
  116. package/src/actions/guides/axes/parallel/policy.js +137 -0
  117. package/src/actions/guides/axes/parallel/resolve.js +50 -25
  118. package/src/actions/guides/axes/parallel.js +93 -217
  119. package/src/actions/guides/axes/policy.js +21 -67
  120. package/src/actions/guides/axes/tickGroups.js +15 -8
  121. package/src/actions/guides/axes/ticks.js +11 -6
  122. package/src/actions/guides/axes/titles.js +32 -11
  123. package/src/actions/guides/basic.js +2 -0
  124. package/src/actions/guides/facade.js +106 -0
  125. package/src/actions/guides/facadeAxes.js +200 -0
  126. package/src/actions/guides/facadeLegend.js +63 -0
  127. package/src/actions/guides/grids/grid.js +37 -33
  128. package/src/actions/guides/grids/resolve.js +17 -4
  129. package/src/actions/guides/guides.js +54 -31
  130. package/src/actions/guides/legends/blocks.js +426 -0
  131. package/src/actions/guides/legends/categorical/actions.js +309 -279
  132. package/src/actions/guides/legends/categorical/components.js +21 -17
  133. package/src/actions/guides/legends/categorical/index.js +37 -33
  134. package/src/actions/guides/legends/categorical/layout.js +123 -354
  135. package/src/actions/guides/legends/categorical/options.js +32 -16
  136. package/src/actions/guides/legends/categorical/recipes.js +114 -9
  137. package/src/actions/guides/legends/categorical/resolve.js +30 -15
  138. package/src/actions/guides/legends/categorical/symbols.js +87 -33
  139. package/src/actions/guides/legends/continuous/common.js +99 -26
  140. package/src/actions/guides/legends/continuous/gradient.js +120 -89
  141. package/src/actions/guides/legends/continuous/index.js +8 -2
  142. package/src/actions/guides/legends/continuous/interval.js +79 -95
  143. package/src/actions/guides/legends/continuous/opacity.js +113 -89
  144. package/src/actions/guides/legends/continuous/stroke.js +525 -0
  145. package/src/actions/guides/legends/creation.js +40 -0
  146. package/src/actions/guides/legends/edit.js +321 -90
  147. package/src/actions/guides/legends/focused.js +2 -2
  148. package/src/actions/guides/legends/index.js +2 -0
  149. package/src/actions/guides/legends/lane.js +149 -102
  150. package/src/actions/guides/legends/lifecycle.js +143 -0
  151. package/src/actions/guides/legends/remove.js +43 -78
  152. package/src/actions/guides/legends/sampling.js +140 -0
  153. package/src/actions/guides/legends/size.js +213 -116
  154. package/src/actions/guides/legends/strokeWidth.js +121 -73
  155. package/src/actions/guides/legends/target.js +123 -0
  156. package/src/actions/guides/legends/transition.js +192 -0
  157. package/src/actions/guides/polar/axes/facade.js +81 -66
  158. package/src/actions/guides/polar/axes/labels.js +28 -8
  159. package/src/actions/guides/polar/axes/lines.js +12 -5
  160. package/src/actions/guides/polar/axes/shared.js +22 -0
  161. package/src/actions/guides/polar/axes/ticks.js +6 -5
  162. package/src/actions/guides/polar/axes/titles.js +6 -5
  163. package/src/actions/guides/polar/grids.js +8 -8
  164. package/src/actions/guides/polar/resolve.js +12 -8
  165. package/src/actions/guides/reuse.js +44 -0
  166. package/src/actions/guides/tickValues.js +19 -21
  167. package/src/actions/index.js +15 -2
  168. package/src/actions/intervals/resolve.js +35 -15
  169. package/src/actions/marks/arc/actions.js +78 -20
  170. package/src/actions/marks/area/actions.js +51 -12
  171. package/src/actions/marks/area/materialize.js +22 -3
  172. package/src/actions/marks/bar/create.js +11 -2
  173. package/src/actions/marks/bar/edit.js +20 -3
  174. package/src/actions/marks/bar/materialize.js +33 -9
  175. package/src/actions/marks/index.js +14 -0
  176. package/src/actions/marks/line/actions.js +71 -113
  177. package/src/actions/marks/line/materialize.js +57 -56
  178. package/src/actions/marks/point/create.js +8 -2
  179. package/src/actions/marks/point/edit.js +29 -21
  180. package/src/actions/marks/point/index.js +1 -0
  181. package/src/actions/marks/point/jitter.js +3 -0
  182. package/src/actions/marks/point/materialize.js +154 -16
  183. package/src/actions/marks/point/packing.js +68 -0
  184. package/src/actions/marks/rect/actions.js +33 -12
  185. package/src/actions/marks/references.js +658 -0
  186. package/src/actions/marks/remove.js +87 -4
  187. package/src/actions/marks/rule/actions.js +77 -9
  188. package/src/actions/marks/rule/appearance.js +26 -0
  189. package/src/actions/marks/shared.js +13 -13
  190. package/src/actions/marks/text/actions.js +296 -13
  191. package/src/actions/marks/text/index.js +4 -0
  192. package/src/actions/marks/text/layout.js +156 -8
  193. package/src/actions/marks/text/removal.js +173 -0
  194. package/src/actions/marks/text/selection.js +73 -0
  195. package/src/actions/marks/tick/actions.js +22 -5
  196. package/src/actions/primitives/createGraphics.js +3 -1
  197. package/src/actions/primitives/editGraphics.js +26 -0
  198. package/src/actions/primitives/semantic.js +3 -2
  199. package/src/actions/primitives/semanticAction.js +120 -10
  200. package/src/actions/primitives/semanticValidation/guide.js +10 -0
  201. package/src/actions/primitives/semanticValidation/index.js +9 -1
  202. package/src/actions/primitives/semanticValidation/layer.js +23 -1
  203. package/src/actions/primitives/semanticValidation/scale.js +38 -8
  204. package/src/actions/regression/components.js +26 -11
  205. package/src/actions/regression/create.js +11 -3
  206. package/src/actions/regression/edit.js +40 -13
  207. package/src/actions/regression/resolve.js +1 -1
  208. package/src/actions/resources/index.js +7 -0
  209. package/src/actions/resources/remove.js +172 -0
  210. package/src/actions/scales/channels.js +212 -0
  211. package/src/actions/scales/consumers/common.js +21 -54
  212. package/src/actions/scales/consumers/families.js +28 -14
  213. package/src/actions/scales/consumers/index.js +42 -4
  214. package/src/actions/scales/consumers/seriesLayout.js +57 -12
  215. package/src/actions/scales/create.js +58 -26
  216. package/src/actions/scales/definitions.js +109 -39
  217. package/src/actions/scales/edit.js +101 -34
  218. package/src/actions/scales/editPolicy.js +95 -35
  219. package/src/actions/scales/index.js +6 -0
  220. package/src/actions/scales/materialize.js +14 -49
  221. package/src/actions/scales/offset.js +48 -0
  222. package/src/actions/scales/parallel.js +71 -0
  223. package/src/actions/scales/patch.js +1 -1
  224. package/src/actions/scales/preview.js +140 -0
  225. package/src/actions/scales/quantitativeColor.js +9 -5
  226. package/src/actions/selection/actions.js +154 -30
  227. package/src/actions/selection/index.js +3 -0
  228. package/src/actions/theme/actions.js +98 -0
  229. package/src/actions/theme/composition.js +238 -0
  230. package/src/actions/theme/index.js +16 -0
  231. package/src/actions/theme/reconcile.js +1130 -0
  232. package/src/actions/theme/state.js +160 -0
  233. package/src/actions/titles/actions.js +11 -10
  234. package/src/actions/titles/resolve.js +1 -40
  235. package/src/actions/violinPlots/create.js +90 -43
  236. package/src/actions/violinPlots/edit.js +192 -0
  237. package/src/actions/violinPlots/index.js +2 -0
  238. package/src/core/ChartProgram.js +7 -0
  239. package/src/core/action.js +32 -2
  240. package/src/core/compositionState.js +141 -8
  241. package/src/core/programState.js +20 -0
  242. package/src/core/resourceReferences.js +332 -0
  243. package/src/core/vocabulary.js +16 -3
  244. package/src/grammar/aggregate.js +66 -23
  245. package/src/grammar/arcs.js +58 -1
  246. package/src/grammar/areaEndpoints.js +46 -0
  247. package/src/grammar/areaSeries.js +87 -41
  248. package/src/grammar/bars/aggregate.js +37 -13
  249. package/src/grammar/bars/geometry.js +44 -0
  250. package/src/grammar/bars/policy.js +9 -7
  251. package/src/grammar/bin.js +226 -0
  252. package/src/grammar/categoryOrder.js +34 -0
  253. package/src/grammar/complete.js +279 -0
  254. package/src/grammar/computed.js +351 -0
  255. package/src/grammar/coordinates.js +37 -0
  256. package/src/grammar/density.js +239 -37
  257. package/src/grammar/displayLabels.js +57 -0
  258. package/src/grammar/ecdf.js +198 -0
  259. package/src/grammar/facets/dependencies.js +133 -1
  260. package/src/grammar/facets/guides.js +3 -0
  261. package/src/grammar/facets/index.js +123 -52
  262. package/src/grammar/facets/scales.js +15 -18
  263. package/src/grammar/fold.js +123 -0
  264. package/src/grammar/horizon.js +6 -4
  265. package/src/grammar/impute.js +340 -0
  266. package/src/grammar/interval.js +37 -20
  267. package/src/grammar/lineSeries.js +20 -63
  268. package/src/grammar/markFilter.js +22 -4
  269. package/src/grammar/markLabelSelection.js +57 -0
  270. package/src/grammar/markLabels.js +110 -0
  271. package/src/grammar/normalize.js +366 -0
  272. package/src/grammar/parallelAxisTitles.js +16 -0
  273. package/src/grammar/pathSeries.js +109 -0
  274. package/src/grammar/pointPacking.js +183 -0
  275. package/src/grammar/pointShapes.js +13 -4
  276. package/src/grammar/polar.js +90 -8
  277. package/src/grammar/positionDatum.js +12 -0
  278. package/src/grammar/rects.js +9 -1
  279. package/src/grammar/regression/derive.js +4 -0
  280. package/src/grammar/regression/index.js +8 -2
  281. package/src/grammar/regression/models.js +22 -7
  282. package/src/grammar/regression/parameters.js +63 -13
  283. package/src/grammar/rotation.js +29 -0
  284. package/src/grammar/roundedRect.js +180 -0
  285. package/src/grammar/rules.js +8 -21
  286. package/src/grammar/scales/color.js +23 -1
  287. package/src/grammar/scales/colorConsumers.js +57 -0
  288. package/src/grammar/scales/continuous.js +2 -2
  289. package/src/grammar/scales/definition.js +42 -5
  290. package/src/grammar/scales/discretized.js +11 -5
  291. package/src/grammar/scales/fields.js +38 -8
  292. package/src/grammar/scales/index.js +1 -0
  293. package/src/grammar/scales/mapping.js +2 -0
  294. package/src/grammar/scales/ordinal.js +12 -3
  295. package/src/grammar/scales/policies.js +2 -2
  296. package/src/grammar/scales/radial.js +55 -0
  297. package/src/grammar/scales/size.js +456 -0
  298. package/src/grammar/scales/types.js +1 -0
  299. package/src/grammar/schemas/concreteGraphic.js +14 -2
  300. package/src/grammar/schemas/graphic.js +15 -0
  301. package/src/grammar/schemas/graphicBounds.js +179 -30
  302. package/src/grammar/schemas/semanticPath.js +23 -4
  303. package/src/grammar/stack.js +170 -0
  304. package/src/grammar/statisticalReference.js +103 -0
  305. package/src/grammar/statistics/confidenceInterval.js +101 -0
  306. package/src/grammar/strokeStyle.js +77 -0
  307. package/src/grammar/summary.js +245 -0
  308. package/src/grammar/text.js +22 -16
  309. package/src/grammar/timeUnit.js +234 -13
  310. package/src/grammar/transformTopology.js +10 -0
  311. package/src/grammar/transforms.js +418 -16
  312. package/src/grammar/valueFormat.js +112 -0
  313. package/src/grammar/weightedStatistics.js +374 -0
  314. package/src/grammar/window.js +232 -21
  315. package/src/layout/aspect.js +80 -0
  316. package/src/layout/facets.js +100 -12
  317. package/src/layout/guideCollisions.js +12 -0
  318. package/src/layout/labels.js +343 -0
  319. package/src/layout/legend.js +2 -10
  320. package/src/layout/legendItems.js +102 -0
  321. package/src/layout/legendLane.js +100 -11
  322. package/src/materialization/bars/aggregate.js +56 -147
  323. package/src/materialization/bars/histogram.js +104 -20
  324. package/src/materialization/bars/ranged.js +19 -3
  325. package/src/materialization/bars/resolve.js +7 -4
  326. package/src/materialization/categorySlotOffset.js +40 -0
  327. package/src/materialization/composition.js +3 -1
  328. package/src/materialization/compositionSnapshot.js +1 -1
  329. package/src/materialization/coordinateBounds.js +204 -0
  330. package/src/materialization/dependencies.js +93 -16
  331. package/src/materialization/encodings.js +1 -1
  332. package/src/materialization/facetGuides/legacyCategorical.js +3 -0
  333. package/src/materialization/facetGuides/placement.js +8 -2
  334. package/src/materialization/facetGuides/preparation.js +12 -7
  335. package/src/materialization/facetHeaders.js +346 -0
  336. package/src/materialization/facets.js +23 -66
  337. package/src/materialization/guides/layout.js +57 -0
  338. package/src/materialization/guides/resources.js +28 -2
  339. package/src/materialization/legends.js +11 -2
  340. package/src/materialization/marks/capabilities.js +20 -5
  341. package/src/materialization/marks/grouping.js +52 -0
  342. package/src/materialization/marks/index.js +68 -27
  343. package/src/materialization/marks/policies.js +4 -1
  344. package/src/materialization/rect.js +55 -42
  345. package/src/materialization/rectConfig.js +5 -1
  346. package/src/materialization/rowEncoding.js +13 -13
  347. package/src/materialization/scaleGuideDependencies.js +8 -5
  348. package/src/materialization/scales/map.js +6 -3
  349. package/src/materialization/scales/policies/arc.js +42 -0
  350. package/src/materialization/scales/policies/binnedPosition.js +7 -4
  351. package/src/materialization/scales/policies/offset.js +50 -8
  352. package/src/materialization/scales/policies/series.js +5 -1
  353. package/src/materialization/scales/resolve.js +65 -17
  354. package/src/materialization/selection/compatibility.js +11 -0
  355. package/src/materialization/selection/items/arc.js +28 -4
  356. package/src/materialization/selection/items/bar.js +42 -71
  357. package/src/materialization/selection/items/common.js +27 -6
  358. package/src/materialization/selection/items/path.js +3 -13
  359. package/src/materialization/selection/items/rect.js +35 -8
  360. package/src/materialization/selection/path.js +1 -1
  361. package/src/materialization/selection/point.js +3 -1
  362. package/src/materialization/text.js +324 -14
  363. package/src/mcp/adapter.js +2 -2
  364. package/src/renderers/canvas/circle.js +2 -3
  365. package/src/renderers/canvas/line.js +2 -3
  366. package/src/renderers/canvas/native.js +4 -4
  367. package/src/renderers/canvas/path.js +2 -3
  368. package/src/renderers/canvas/rect.js +2 -3
  369. package/src/renderers/canvas/stroke.js +11 -0
  370. package/src/renderers/svg.js +19 -0
  371. package/src/selectors/datasets.js +44 -0
  372. package/src/selectors/layers.js +7 -2
  373. package/src/selectors/scales.js +6 -0
  374. package/src/theme/defaults.js +140 -0
  375. package/types/basic.d.ts +17 -2
  376. package/types/index.d.ts +211 -0
  377. package/types/program.d.ts +2182 -204
  378. package/src/materialization/bars/grouped.js +0 -144
@@ -2,6 +2,37 @@ export function findDataset(program, id) {
2
2
  return program.semanticSpec.datasets.find(dataset => dataset.id === id);
3
3
  }
4
4
 
5
+ function currentOwnerMatches(program, id) {
6
+ const families = program.materializationConfigs.data ?? {};
7
+ return Object.entries(families).flatMap(([family, owners]) =>
8
+ Object.entries(owners ?? {}).flatMap(([owner, config]) =>
9
+ owner === id && typeof config?.current === "string"
10
+ ? [{ family, owner, current: config.current }]
11
+ : []
12
+ )
13
+ );
14
+ }
15
+
16
+ export function hasDatasetOwner(program, id) {
17
+ return currentOwnerMatches(program, id).length > 0;
18
+ }
19
+
20
+ export function resolveDatasetReference(program, id, label = "Dataset") {
21
+ const matches = currentOwnerMatches(program, id);
22
+ if (matches.length > 1) {
23
+ throw new Error(`${label} logical owner "${id}" is ambiguous.`);
24
+ }
25
+ const resolved = matches.length === 1 ? matches[0].current : id;
26
+ const dataset = findDataset(program, resolved);
27
+ if (dataset === undefined) {
28
+ const kind = label.toLowerCase().includes("source")
29
+ ? "source dataset"
30
+ : "dataset";
31
+ throw new Error(`Unknown ${kind} "${id}" does not exist.`);
32
+ }
33
+ return dataset;
34
+ }
35
+
5
36
  export function hasDataset(program, id) {
6
37
  return findDataset(program, id) !== undefined;
7
38
  }
@@ -15,3 +46,16 @@ export function requireDataset(program, id, label = `Dataset "${id}"`) {
15
46
  if (dataset === undefined) throw new Error(`${label} does not exist.`);
16
47
  return dataset;
17
48
  }
49
+
50
+ export function requireMaterializedDataset(program, id) {
51
+ const dataset = resolveDatasetReference(program, id, "Dataset");
52
+ if (dataset === undefined) throw new Error(`Unknown dataset "${id}".`);
53
+ if (!Array.isArray(dataset.values)) {
54
+ throw new Error(
55
+ `Dataset "${id}" requires materialized values. ` +
56
+ "createDerivedData stores a definition only; use the corresponding " +
57
+ "value-producing data action before creating a chart or mark."
58
+ );
59
+ }
60
+ return dataset;
61
+ }
@@ -2,6 +2,10 @@ export function findLayer(program, id) {
2
2
  return program.semanticSpec.layers.find(layer => layer.id === id);
3
3
  }
4
4
 
5
+ export function findLayerMatching(program, predicate) {
6
+ return program.semanticSpec.layers.find(predicate);
7
+ }
8
+
5
9
  export function hasLayer(program, id) {
6
10
  return findLayer(program, id) !== undefined;
7
11
  }
@@ -16,17 +20,18 @@ export function resolveEligibleLayer(program, {
16
20
  target,
17
21
  predicate,
18
22
  label,
23
+ targetOption = "target",
19
24
  current = program.context.currentMark
20
25
  }) {
21
26
  const candidates = program.semanticSpec.layers.filter(predicate);
22
27
  if (target !== undefined) {
23
28
  const selected = candidates.find(layer => layer.id === target);
24
- if (selected === undefined) throw new Error(`Unknown ${label} target "${target}".`);
29
+ if (selected === undefined) throw new Error(`Unknown ${label} ${targetOption} "${target}".`);
25
30
  return selected;
26
31
  }
27
32
  const selected = candidates.find(layer => layer.id === current);
28
33
  if (selected !== undefined) return selected;
29
34
  if (candidates.length === 1) return candidates[0];
30
35
  if (candidates.length === 0) throw new Error(`${label} requires an eligible layer.`);
31
- throw new Error(`${label} target is ambiguous; provide target.`);
36
+ throw new Error(`${label} ${targetOption} is ambiguous; provide ${targetOption}.`);
32
37
  }
@@ -19,3 +19,9 @@ export function requireResolvedScale(program, id, type) {
19
19
  }
20
20
  return scale;
21
21
  }
22
+
23
+ export function hasSemanticScaleReferences(spec, id) {
24
+ const referenced = value => value !== null && typeof value === "object" && Object.entries(value).some(([key, child]) =>
25
+ (key === "scale" && child === id) || (key === "scales" && Array.isArray(child) && child.includes(id)) || referenced(child));
26
+ return referenced(spec.layers) || referenced(spec.guides);
27
+ }
@@ -13,5 +13,145 @@ export const DEFAULT_COLORS = Object.freeze({
13
13
  border: "#cbd5e1",
14
14
  sizeSymbol: "#94a3b8",
15
15
  regressionBand: "#111111",
16
+ boxLine: "#111111",
17
+ boxMedian: "#1f2937",
18
+ referenceLine: "#64748b",
19
+ referenceBand: "#94a3b8",
20
+ gradientCenter: "#0f172a",
16
21
  highlight: "#dc2626"
17
22
  });
23
+
24
+ export const THEME_NAMES = Object.freeze(["light", "dark"]);
25
+
26
+ export const THEME_TOKEN_KEYS = Object.freeze([
27
+ "background",
28
+ "mark",
29
+ "text",
30
+ "strongText",
31
+ "mutedText",
32
+ "axis",
33
+ "axisTitle",
34
+ "grid",
35
+ "border",
36
+ "sizeSymbol",
37
+ "regressionBand",
38
+ "boxLine",
39
+ "boxMedian",
40
+ "referenceLine",
41
+ "referenceBand",
42
+ "gradientCenter",
43
+ "highlight",
44
+ "fontFamily"
45
+ ]);
46
+
47
+ const THEME_DEFINITION_KEYS = Object.freeze(["base", "tokens"]);
48
+
49
+ function isPlainObject(value) {
50
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
51
+ return false;
52
+ }
53
+ const prototype = Object.getPrototypeOf(value);
54
+ return prototype === Object.prototype || prototype === null;
55
+ }
56
+
57
+ function own(value) {
58
+ return Object.freeze({ ...value });
59
+ }
60
+
61
+ function validateKeys(value, allowed, label) {
62
+ const supported = new Set(allowed);
63
+ const unknown = Object.keys(value).find(key => !supported.has(key));
64
+ if (unknown !== undefined) {
65
+ throw new Error(`Unknown ${label} option "${unknown}".`);
66
+ }
67
+ }
68
+
69
+ function validateNonEmptyString(value, label) {
70
+ if (typeof value !== "string" || value.length === 0) {
71
+ throw new TypeError(`${label} must be a non-empty string.`);
72
+ }
73
+ return value;
74
+ }
75
+
76
+ export const THEME_TOKENS = Object.freeze({
77
+ light: Object.freeze({
78
+ background: "white",
79
+ ...DEFAULT_COLORS,
80
+ fontFamily: DEFAULT_FONT_FAMILY
81
+ }),
82
+ dark: Object.freeze({
83
+ background: "#0f172a",
84
+ mark: "#60a5fa",
85
+ text: "#e2e8f0",
86
+ strongText: "#f8fafc",
87
+ mutedText: "#94a3b8",
88
+ axis: "#cbd5e1",
89
+ axisTitle: "#f1f5f9",
90
+ grid: "#334155",
91
+ border: "#475569",
92
+ sizeSymbol: "#94a3b8",
93
+ regressionBand: "#f8fafc",
94
+ boxLine: "#f8fafc",
95
+ boxMedian: "#f8fafc",
96
+ referenceLine: "#94a3b8",
97
+ referenceBand: "#94a3b8",
98
+ gradientCenter: "#f8fafc",
99
+ highlight: DEFAULT_COLORS.highlight,
100
+ fontFamily: DEFAULT_FONT_FAMILY
101
+ })
102
+ });
103
+
104
+ export function themeTokens(name = "light") {
105
+ return THEME_TOKENS[name];
106
+ }
107
+
108
+ function validateThemeName(value, label) {
109
+ if (!THEME_NAMES.includes(value)) {
110
+ throw new Error(`Unsupported ${label} "${value}".`);
111
+ }
112
+ return value;
113
+ }
114
+
115
+ function normalizeThemeTokens(tokens) {
116
+ if (!isPlainObject(tokens)) {
117
+ throw new TypeError("applyTheme theme.tokens must be a plain object.");
118
+ }
119
+ validateKeys(tokens, THEME_TOKEN_KEYS, "applyTheme theme.tokens");
120
+ const normalized = {};
121
+ for (const [key, value] of Object.entries(tokens)) {
122
+ validateNonEmptyString(value, `applyTheme theme.tokens.${key}`);
123
+ normalized[key] = value;
124
+ }
125
+ return own(normalized);
126
+ }
127
+
128
+ export function normalizeThemeDefinition(definition) {
129
+ if (typeof definition === "string") {
130
+ return own({
131
+ name: validateThemeName(definition, "theme"),
132
+ tokens: own({})
133
+ });
134
+ }
135
+ if (!isPlainObject(definition)) {
136
+ throw new TypeError(
137
+ "applyTheme theme must be a built-in name or a plain { base, tokens } object."
138
+ );
139
+ }
140
+ validateKeys(definition, THEME_DEFINITION_KEYS, "applyTheme theme");
141
+ if (!Object.hasOwn(definition, "base") ||
142
+ !Object.hasOwn(definition, "tokens")) {
143
+ throw new Error("applyTheme custom theme requires base and tokens.");
144
+ }
145
+ return own({
146
+ name: validateThemeName(definition.base, "theme base"),
147
+ tokens: normalizeThemeTokens(definition.tokens)
148
+ });
149
+ }
150
+
151
+ export function resolveThemeTokens(definition = "light") {
152
+ const normalized = normalizeThemeDefinition(definition);
153
+ return own({
154
+ ...THEME_TOKENS[normalized.name],
155
+ ...normalized.tokens
156
+ });
157
+ }
package/types/basic.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ChartProgram } from "./program.js";
1
+ import type { ChartProgram, BasicSeriesLayoutOptions } from "./program.js";
2
2
 
3
3
  export type {
4
4
  AxisLabelOptions,
@@ -6,7 +6,11 @@ export type {
6
6
  AxisTickOptions,
7
7
  AxisTicksAndLabelsOptions,
8
8
  AxisTitleOptions,
9
+ DisplayLabelMap,
10
+ DisplayLabelOptions,
11
+ ApplyThemeOptions,
9
12
  BarWidthOptions,
13
+ BasicSeriesLayoutOptions,
10
14
  Bin2DDataOptions,
11
15
  CanvasOptions,
12
16
  ColorEncodingOptions,
@@ -21,15 +25,22 @@ export type {
21
25
  CreateScatterPlotOptions,
22
26
  CreateScaleOptions,
23
27
  GraphicSpec,
28
+ GroupEncodingOptions,
24
29
  GridDirectionOptions,
25
30
  HistogramEncodingOptions,
26
31
  LegendOptions,
27
32
  PositionEncodingOptions,
28
33
  RectMarkOptions,
34
+ RectStyleDetails,
29
35
  ScaleOptions,
30
36
  SecondaryPositionEncodingOptions,
31
37
  SemanticSpec,
32
38
  StrokeDashEncodingOptions,
39
+ StrokeStyleDetails,
40
+ TemporalInputUnit,
41
+ ThemeDefinition,
42
+ ThemeName,
43
+ ThemeTokens,
33
44
  TraceNode,
34
45
  XAxisPosition,
35
46
  XOffsetEncodingOptions,
@@ -47,6 +58,8 @@ type BasicStateKey =
47
58
 
48
59
  type BasicMethodKey =
49
60
  | "createCanvas"
61
+ | "applyTheme"
62
+ | "removeTheme"
50
63
  | "createData"
51
64
  | "createPointMark"
52
65
  | "createLineMark"
@@ -57,6 +70,7 @@ type BasicMethodKey =
57
70
  | "encodeX2"
58
71
  | "encodeY2"
59
72
  | "encodeGroup"
73
+ | "encodePointRadius"
60
74
  | "encodeColor"
61
75
  | "encodeStrokeDash"
62
76
  | "encodeSize"
@@ -97,7 +111,8 @@ type RebindMethod<T> = T extends (...args: infer Args) => ChartProgram
97
111
 
98
112
  export type BasicChartProgram =
99
113
  Pick<ChartProgram, BasicStateKey> &
100
- { readonly [Key in BasicMethodKey]: RebindMethod<ChartProgram[Key]> };
114
+ { readonly [Key in BasicMethodKey]: RebindMethod<ChartProgram[Key]> } &
115
+ { readonly layoutSeries: (options: BasicSeriesLayoutOptions) => BasicChartProgram };
101
116
 
102
117
  export function chart(): BasicChartProgram;
103
118
  export function render(
package/types/index.d.ts CHANGED
@@ -4,7 +4,13 @@ export type {
4
4
  ActionOptions,
5
5
  AxisFormat,
6
6
  AxisFormatString,
7
+ RotationInput,
8
+ RotationUnit,
9
+ NumericFormatString,
10
+ UtcFormatString,
11
+ ValueFormat,
7
12
  AxisLabelOptions,
13
+ AxisLabelLayoutOptions,
8
14
  AxisLabelStyleOptions,
9
15
  AxisLineStyleOptions,
10
16
  AxisTickOptions,
@@ -12,6 +18,8 @@ export type {
12
18
  AxisTickStyleOptions,
13
19
  AxisTitleOptions,
14
20
  AxisValue,
21
+ DisplayLabelMap,
22
+ DisplayLabelOptions,
15
23
  BarWidthOptions,
16
24
  BoxPlotOptions,
17
25
  BinnedHeatmapColorOptions,
@@ -21,41 +29,165 @@ export type {
21
29
  Bin2DDataOptions,
22
30
  Bin2DExtent,
23
31
  Bin2DOutputFields,
32
+ BinDataOptions,
33
+ BinDataOutputFields,
34
+ BindMarkDataOptions,
35
+ RemoveResourceOptions,
24
36
  CanvasOptions,
37
+ FitCanvasOptions,
38
+ FoldDataOptions,
39
+ FoldDataOutputFields,
25
40
  CategoricalEncodingOptions,
26
41
  CategoryOrder,
27
42
  CategoryOrderSummary,
28
43
  CategoryValue,
29
44
  ColorLayout,
45
+ SeriesLayoutOptions,
46
+ BasicSeriesLayoutOptions,
47
+ StrokeStyleDetails,
48
+ RectStyleDetails,
49
+ CreateAreaPlotOptions,
50
+ AreaPlotIndependentChannel,
51
+ AreaPlotMeasureChannel,
30
52
  ColorEncodingOptions,
53
+ StrokeEncodingOptions,
54
+ EncodeChannelsOptions,
55
+ EncodingChannelAssignments,
56
+ SizeEncodingOptions,
57
+ ShapeEncodingOptions,
58
+ AngleEncodingOptions,
31
59
  CompleteAxisOptions,
32
60
  ConcatCompositionSpec,
33
61
  CompositionAlign,
34
62
  CompositionOptions,
63
+ EditFacetSourceOptions,
64
+ FacetHeaderRole,
65
+ FacetHeaderSide,
66
+ FacetHeaderAlign,
35
67
  CompositionPadding,
36
68
  CompositionProgramEntry,
37
69
  CompositionSpec,
70
+ ComputedDataOptions,
71
+ ComputedExpression,
72
+ CompleteDataOptions,
73
+ ImputedDataOptions,
74
+ NormalizedDataOptions,
75
+ NormalizeBaseline,
76
+ NormalizeMethod,
77
+ NormalizeZeroDenominator,
38
78
  ChartProgram,
39
79
  ConcretePathCommand,
40
80
  CurveInterpolation,
41
81
  CreateDerivedDataOptions,
42
82
  CreateAxesOptions,
83
+ PolarAxisTickSelection,
84
+ ParallelAxisTickSelection,
85
+ ParallelAxisTicksOptions,
86
+ ParallelAxisLabelsOptions,
87
+ ParallelAxisTitleOptions,
88
+ ParallelAxisComponentsOptions,
89
+ CreateParallelAxisOptions,
90
+ EditParallelAxisOptions,
91
+ ParallelAxesOptions,
92
+ RemoveParallelAxisOptions,
93
+ CreateThetaAxisLineOptions,
94
+ CreateRadialAxisLineOptions,
95
+ CreateThetaAxisTicksOptions,
96
+ CreateRadialAxisTicksOptions,
97
+ CreateThetaAxisLabelsOptions,
98
+ ThetaAxisLabelOptions,
99
+ ThetaTicksAndLabelsOptions,
100
+ CompleteThetaAxisOptions,
101
+ EditThetaAxisOptions,
102
+ CreateRadialAxisLabelsOptions,
103
+ CreateThetaAxisTitleOptions,
104
+ CreateRadialAxisTitleOptions,
43
105
  CreateCoordinateOptions,
106
+ CoordinateAspect,
107
+ CoordinateAspectAlign,
108
+ PolarFrameCenter,
109
+ PolarFrameRadius,
110
+ PolarFrameOptions,
111
+ EditCoordinateOptions,
44
112
  CreateGuidesOptions,
45
113
  CreateGridOptions,
46
114
  CreateBarPlotOptions,
47
115
  CreateHeatmapOptions,
48
116
  CreateHistogramOptions,
117
+ CreatePiePlotOptions,
118
+ CreateRosePlotOptions,
119
+ CreateRadialBarPlotOptions,
120
+ MeasuredRadialGuideOptions,
121
+ MeasuredRadiusScaleOptions,
122
+ RadialMapping,
123
+ RadialEncodingOptions,
124
+ RadiusScaleOptions,
125
+ CreateDensityPlotOptions,
126
+ CreateHorizonPlotOptions,
127
+ HorizonPlotGuideOptions,
128
+ DensityPlotGuideOptions,
129
+ DensityPlotLegendOptions,
130
+ PieCategory,
131
+ PieColor,
132
+ PieLegendOptions,
49
133
  CreateRegressionBandOptions,
50
134
  CreateRegressionLineOptions,
51
135
  CreateLinePlotOptions,
136
+ CreatePolarLinePlotOptions,
137
+ CreatePolarScatterPlotOptions,
138
+ CreateRadarPlotOptions,
139
+ CreateRugPlotOptions,
140
+ CreateStripPlotOptions,
141
+ CreateBeeswarmPlotOptions,
142
+ RaincloudDensityOptions,
143
+ RaincloudBoxSummaryOptions,
144
+ RaincloudIntervalSummaryOptions,
145
+ RaincloudSummaryOptions,
146
+ RaincloudPointAppearanceOptions,
147
+ RaincloudPointsOptions,
148
+ CreateRaincloudPlotOptions,
149
+ EditRaincloudPlotOptions,
150
+ BeeswarmPackingOptions,
151
+ RadarCategoryChannel,
152
+ RadarCategoryScaleOptions,
153
+ RadarCategoryValue,
154
+ RadarWideOptions,
155
+ RugGuideOptions,
156
+ RugMeasureChannel,
157
+ RugTickOptions,
158
+ StripCategoryChannel,
159
+ StripBandJitterOptions,
160
+ StripJitterOptions,
161
+ StripPixelJitterOptions,
52
162
  CreateParallelCoordinatesOptions,
53
163
  CreateScatterPlotOptions,
164
+ CreateIntervalPlotOptions,
165
+ CreateRegressionPlotOptions,
166
+ CreateDotPlotOptions,
167
+ CreateLollipopPlotOptions,
168
+ CreateDumbbellPlotOptions,
169
+ EditEndpointPlotOptions,
170
+ CreateECDFPlotOptions,
171
+ EditECDFPlotOptions,
172
+ EndpointCategoryChannel,
173
+ EndpointValueChannel,
174
+ EndpointPlotSummary,
175
+ EndpointLabelOptions,
176
+ IntervalPlotErrorBarOptions,
177
+ RegressionPlotPositionChannel,
54
178
  CreateScaleOptions,
55
179
  DashPattern,
56
180
  DashScaleOptions,
57
181
  DashStyle,
58
182
  DatasetDensityTransform,
183
+ DatasetECDFResolvedGroup,
184
+ DatasetECDFTransform,
185
+ ECDFOutputFields,
186
+ ECDFDataOptions,
187
+ DatasetComputedTransform,
188
+ DatasetCompleteTransform,
189
+ DatasetImputedTransform,
190
+ DatasetNormalizedTransform,
59
191
  DatasetHorizonTransform,
60
192
  DensityPlacement,
61
193
  BaselineDensityPlacement,
@@ -67,27 +199,52 @@ export type {
67
199
  DatasetBin2DOutputFields,
68
200
  DatasetBin2DTransform,
69
201
  DatasetFilterTransform,
202
+ DatasetFoldTransform,
70
203
  DatasetIntervalOutputFields,
71
204
  DatasetIntervalTransform,
72
205
  DatasetTimeUnitTransform,
73
206
  DatasetWindowOperation,
74
207
  DatasetWindowSort,
75
208
  DatasetWindowTransform,
209
+ DurationWindowFrame,
210
+ DurationWindowUnit,
76
211
  DatasetRegressionTransform,
77
212
  DatasetScalar,
213
+ StatisticalWeight,
214
+ DatasetStackTransform,
78
215
  DatasetTransform,
216
+ RequestedDatasetTransform,
217
+ DerivedDataDependents,
218
+ EditDerivedDataOptions,
79
219
  EditGraphicsOptions,
80
220
  EditBin2DDataOptions,
221
+ EditComputedDataOptions,
222
+ EditFilteredDataOptions,
223
+ EditFoldDataOptions,
224
+ EditSummaryDataOptions,
225
+ EditBinDataOptions,
226
+ EditTimeUnitDataOptions,
227
+ EditWindowDataOptions,
228
+ EditDensityDataOptions,
229
+ EditStackDataOptions,
230
+ EditRegressionDataOptions,
231
+ EditIntervalDataOptions,
232
+ EditECDFDataOptions,
233
+ EditNormalizedDataOptions,
234
+ EditCompleteDataOptions,
235
+ EditImputedDataOptions,
81
236
  EditHorizonOptions,
82
237
  EditCompositionLayoutOptions,
83
238
  EditFacetHeadersOptions,
84
239
  EditAxisOptions,
85
240
  EditGradientPlotOptions,
241
+ EditViolinPlotOptions,
86
242
  EditGridDirectionsOptions,
87
243
  EditGridOptions,
88
244
  EditErrorBandBoundaryOptions,
89
245
  EditErrorBandOptions,
90
246
  EditErrorBarOptions,
247
+ RuleStyleOptions,
91
248
  EditBoxPlotOptions,
92
249
  EditLegendBorderOptions,
93
250
  EditLegendLabelsOptions,
@@ -95,17 +252,32 @@ export type {
95
252
  EditLegendSymbolsOptions,
96
253
  EditLegendTitleOptions,
97
254
  EditScaleOptions,
255
+ EditXScaleOptions,
256
+ EditYScaleOptions,
257
+ EditParallelScaleOptions,
258
+ EditThetaScaleOptions,
259
+ EditRScaleOptions,
260
+ EditColorScaleOptions,
261
+ EditStrokeScaleOptions,
262
+ EditSizeScaleOptions,
263
+ EditOpacityScaleOptions,
264
+ EditShapeScaleOptions,
265
+ EditStrokeWidthScaleOptions,
266
+ EditStrokeDashScaleOptions,
98
267
  EditSemanticOptions,
99
268
  FieldType,
100
269
  FillPaint,
101
270
  FacetCompositionSpec,
102
271
  FacetGuideOptions,
103
272
  FacetOptions,
273
+ FacetGridOptions,
274
+ FacetGridRole,
104
275
  FacetScaleResolution,
105
276
  FacetScaleResolutions,
106
277
  GraphicObject,
107
278
  GraphicSpec,
108
279
  GraphicType,
280
+ GroupEncodingOptions,
109
281
  GradientPlotAppearanceOptions,
110
282
  GradientPlotCenterOptions,
111
283
  GradientPlotDensityOptions,
@@ -135,11 +307,18 @@ export type {
135
307
  HighlightMarksOptions,
136
308
  JitterMaxOffset,
137
309
  JitterPointsOptions,
310
+ PointPackingMaxOffset,
311
+ PackPointsOptions,
312
+ RemovePointPackingOptions,
138
313
  LabelLayoutAxis,
139
314
  LabelLayoutBounds,
140
315
  LabelLayoutOptions,
141
316
  LabelLeaderOptions,
142
317
  LegendOptions,
318
+ LegendChannel,
319
+ LegendBlockTextPatch,
320
+ LegendBlockSymbolPatch,
321
+ EditLegendBlockOptions,
143
322
  EditLegendOptions,
144
323
  ContinuousColorInterpolation,
145
324
  ContinuousColorScaleOptions,
@@ -147,6 +326,9 @@ export type {
147
326
  OpacityScaleOptions,
148
327
  OrderCategoriesOptions,
149
328
  OffsetScaleOptions,
329
+ OffsetScaleEditPatch,
330
+ EditXOffsetScaleOptions,
331
+ EditYOffsetScaleOptions,
150
332
  PathOrderEncodingOptions,
151
333
  ParallelCoordinatesEncodingOptions,
152
334
  ParallelDimension,
@@ -169,6 +351,10 @@ export type {
169
351
  RegressionOptions,
170
352
  RectMarkOptions,
171
353
  ReplaceCompositionChildOptions,
354
+ InsertCompositionChildOptions,
355
+ RemoveCompositionChildOptions,
356
+ ReorderCompositionChildrenOptions,
357
+ RepeatChartsOptions,
172
358
  EditRegressionOptions,
173
359
  EditRectMarkOptions,
174
360
  RemoveAxisOptions,
@@ -185,6 +371,11 @@ export type {
185
371
  ShapeScaleOptions,
186
372
  SizeScaleOptions,
187
373
  StackMode,
374
+ StackDataMode,
375
+ StackDataOptions,
376
+ StackDataOutputFields,
377
+ SummaryAggregateOptions,
378
+ SummaryDataOptions,
188
379
  YStackMode,
189
380
  SemanticCoordinate,
190
381
  SemanticDataset,
@@ -199,6 +390,12 @@ export type {
199
390
  ThetaScaleOptions,
200
391
  TimeUnit,
201
392
  TimeUnitDataOptions,
393
+ RowWindowFrame,
394
+ TemporalInputUnit,
395
+ ThemeDefinition,
396
+ ThemeName,
397
+ ThemeTokens,
398
+ ApplyThemeOptions,
202
399
  TraceNode,
203
400
  TitleOptions,
204
401
  EditTitleOptions,
@@ -207,9 +404,23 @@ export type {
207
404
  TextEncodingOptions,
208
405
  TextFormat,
209
406
  TextMarkOptions,
407
+ DatumPositionEncodingOptions,
408
+ CreateMarkLabelsOptions,
409
+ EditMarkLabelPlacementOptions,
410
+ EditMarkLabelSelectionOptions,
411
+ MarkLabelAnchor,
412
+ MarkLabelPlacement,
413
+ MarkLabelPlacementLeaderOptions,
414
+ MarkLabelSelectionOptions,
415
+ RemoveMarkLabelsOptions,
416
+ CreateAnnotationOptions,
417
+ ReferenceStatistic,
418
+ CreateReferenceLineOptions,
419
+ CreateReferenceBandOptions,
210
420
  XAxisPosition,
211
421
  YAxisPosition,
212
422
  WindowDataOptions,
423
+ WindowFrame,
213
424
  WindowOperation,
214
425
  WindowSort,
215
426
  WindowSortOrder,