@ggts-sh/spec 0.43.0

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 (679) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +75 -0
  3. package/dist/artifact.d.ts +11 -0
  4. package/dist/artifact.d.ts.map +1 -0
  5. package/dist/artifact.js +71 -0
  6. package/dist/artifact.js.map +1 -0
  7. package/dist/builder-core.d.ts +100 -0
  8. package/dist/builder-core.d.ts.map +1 -0
  9. package/dist/builder-core.js +176 -0
  10. package/dist/builder-core.js.map +1 -0
  11. package/dist/builder-data.d.ts +36 -0
  12. package/dist/builder-data.d.ts.map +1 -0
  13. package/dist/builder-data.js +123 -0
  14. package/dist/builder-data.js.map +1 -0
  15. package/dist/builder-geoms.d.ts +128 -0
  16. package/dist/builder-geoms.d.ts.map +1 -0
  17. package/dist/builder-geoms.js +221 -0
  18. package/dist/builder-geoms.js.map +1 -0
  19. package/dist/builder-options.d.ts +323 -0
  20. package/dist/builder-options.d.ts.map +1 -0
  21. package/dist/builder-options.js +2 -0
  22. package/dist/builder-options.js.map +1 -0
  23. package/dist/builder-scales.d.ts +160 -0
  24. package/dist/builder-scales.d.ts.map +1 -0
  25. package/dist/builder-scales.js +322 -0
  26. package/dist/builder-scales.js.map +1 -0
  27. package/dist/builder.d.ts +242 -0
  28. package/dist/builder.d.ts.map +1 -0
  29. package/dist/builder.js +42 -0
  30. package/dist/builder.js.map +1 -0
  31. package/dist/capabilities-data.d.ts +72 -0
  32. package/dist/capabilities-data.d.ts.map +1 -0
  33. package/dist/capabilities-data.js +337 -0
  34. package/dist/capabilities-data.js.map +1 -0
  35. package/dist/capabilities-helpers.d.ts +31 -0
  36. package/dist/capabilities-helpers.d.ts.map +1 -0
  37. package/dist/capabilities-helpers.js +41 -0
  38. package/dist/capabilities-helpers.js.map +1 -0
  39. package/dist/capabilities.d.ts +22 -0
  40. package/dist/capabilities.d.ts.map +1 -0
  41. package/dist/capabilities.js +154 -0
  42. package/dist/capabilities.js.map +1 -0
  43. package/dist/coord-helpers.d.ts +102 -0
  44. package/dist/coord-helpers.d.ts.map +1 -0
  45. package/dist/coord-helpers.js +90 -0
  46. package/dist/coord-helpers.js.map +1 -0
  47. package/dist/coord-reference-build.d.ts +50 -0
  48. package/dist/coord-reference-build.d.ts.map +1 -0
  49. package/dist/coord-reference-build.js +211 -0
  50. package/dist/coord-reference-build.js.map +1 -0
  51. package/dist/coord-reference.d.ts +52 -0
  52. package/dist/coord-reference.d.ts.map +1 -0
  53. package/dist/coord-reference.js +27 -0
  54. package/dist/coord-reference.js.map +1 -0
  55. package/dist/error-catalog.d.ts +258 -0
  56. package/dist/error-catalog.d.ts.map +1 -0
  57. package/dist/error-catalog.js +235 -0
  58. package/dist/error-catalog.js.map +1 -0
  59. package/dist/error-prose-shared.d.ts +100 -0
  60. package/dist/error-prose-shared.d.ts.map +1 -0
  61. package/dist/error-prose-shared.js +95 -0
  62. package/dist/error-prose-shared.js.map +1 -0
  63. package/dist/errors.d.ts +39 -0
  64. package/dist/errors.d.ts.map +1 -0
  65. package/dist/errors.js +52 -0
  66. package/dist/errors.js.map +1 -0
  67. package/dist/generated/coord-reference-data.d.ts +189 -0
  68. package/dist/generated/coord-reference-data.d.ts.map +1 -0
  69. package/dist/generated/coord-reference-data.js +212 -0
  70. package/dist/generated/coord-reference-data.js.map +1 -0
  71. package/dist/generated/geom-param-keys.d.ts +58 -0
  72. package/dist/generated/geom-param-keys.d.ts.map +1 -0
  73. package/dist/generated/geom-param-keys.js +223 -0
  74. package/dist/generated/geom-param-keys.js.map +1 -0
  75. package/dist/generated/geom-reference-data.d.ts +2377 -0
  76. package/dist/generated/geom-reference-data.d.ts.map +1 -0
  77. package/dist/generated/geom-reference-data.js +2790 -0
  78. package/dist/generated/geom-reference-data.js.map +1 -0
  79. package/dist/generated/guide-reference-data.d.ts +219 -0
  80. package/dist/generated/guide-reference-data.d.ts.map +1 -0
  81. package/dist/generated/guide-reference-data.js +253 -0
  82. package/dist/generated/guide-reference-data.js.map +1 -0
  83. package/dist/generated/plot-spec-validator.d.ts +2 -0
  84. package/dist/generated/plot-spec-validator.d.ts.map +1 -0
  85. package/dist/generated/plot-spec-validator.js +6274 -0
  86. package/dist/generated/plot-spec-validator.js.map +1 -0
  87. package/dist/generated/position-reference-data.d.ts +82 -0
  88. package/dist/generated/position-reference-data.d.ts.map +1 -0
  89. package/dist/generated/position-reference-data.js +181 -0
  90. package/dist/generated/position-reference-data.js.map +1 -0
  91. package/dist/generated/scale-reference-data.d.ts +8366 -0
  92. package/dist/generated/scale-reference-data.d.ts.map +1 -0
  93. package/dist/generated/scale-reference-data.js +9821 -0
  94. package/dist/generated/scale-reference-data.js.map +1 -0
  95. package/dist/generated/stat-reference-data.d.ts +241 -0
  96. package/dist/generated/stat-reference-data.d.ts.map +1 -0
  97. package/dist/generated/stat-reference-data.js +311 -0
  98. package/dist/generated/stat-reference-data.js.map +1 -0
  99. package/dist/geom-params-build.d.ts +3 -0
  100. package/dist/geom-params-build.d.ts.map +1 -0
  101. package/dist/geom-params-build.js +80 -0
  102. package/dist/geom-params-build.js.map +1 -0
  103. package/dist/geom-params.d.ts +13 -0
  104. package/dist/geom-params.d.ts.map +1 -0
  105. package/dist/geom-params.js +7 -0
  106. package/dist/geom-params.js.map +1 -0
  107. package/dist/geom-reference-build.d.ts +29 -0
  108. package/dist/geom-reference-build.d.ts.map +1 -0
  109. package/dist/geom-reference-build.js +221 -0
  110. package/dist/geom-reference-build.js.map +1 -0
  111. package/dist/geom-reference.d.ts +52 -0
  112. package/dist/geom-reference.d.ts.map +1 -0
  113. package/dist/geom-reference.js +72 -0
  114. package/dist/geom-reference.js.map +1 -0
  115. package/dist/guide-helpers.d.ts +20 -0
  116. package/dist/guide-helpers.d.ts.map +1 -0
  117. package/dist/guide-helpers.js +25 -0
  118. package/dist/guide-helpers.js.map +1 -0
  119. package/dist/guide-reference-build.d.ts +42 -0
  120. package/dist/guide-reference-build.d.ts.map +1 -0
  121. package/dist/guide-reference-build.js +180 -0
  122. package/dist/guide-reference-build.js.map +1 -0
  123. package/dist/guide-reference.d.ts +48 -0
  124. package/dist/guide-reference.d.ts.map +1 -0
  125. package/dist/guide-reference.js +32 -0
  126. package/dist/guide-reference.js.map +1 -0
  127. package/dist/hue-grey-palettes.d.ts +15 -0
  128. package/dist/hue-grey-palettes.d.ts.map +1 -0
  129. package/dist/hue-grey-palettes.js +77 -0
  130. package/dist/hue-grey-palettes.js.map +1 -0
  131. package/dist/index.d.ts +364 -0
  132. package/dist/index.d.ts.map +1 -0
  133. package/dist/index.js +225 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/lint-catalog.d.ts +47 -0
  136. package/dist/lint-catalog.d.ts.map +1 -0
  137. package/dist/lint-catalog.js +39 -0
  138. package/dist/lint-catalog.js.map +1 -0
  139. package/dist/lint-layer-rules.d.ts +18 -0
  140. package/dist/lint-layer-rules.d.ts.map +1 -0
  141. package/dist/lint-layer-rules.js +145 -0
  142. package/dist/lint-layer-rules.js.map +1 -0
  143. package/dist/lint-scale-rules.d.ts +8 -0
  144. package/dist/lint-scale-rules.d.ts.map +1 -0
  145. package/dist/lint-scale-rules.js +254 -0
  146. package/dist/lint-scale-rules.js.map +1 -0
  147. package/dist/lint.d.ts +62 -0
  148. package/dist/lint.d.ts.map +1 -0
  149. package/dist/lint.js +57 -0
  150. package/dist/lint.js.map +1 -0
  151. package/dist/normalize-coord.d.ts +8 -0
  152. package/dist/normalize-coord.d.ts.map +1 -0
  153. package/dist/normalize-coord.js +123 -0
  154. package/dist/normalize-coord.js.map +1 -0
  155. package/dist/normalize-input-layers-marks.d.ts +208 -0
  156. package/dist/normalize-input-layers-marks.d.ts.map +1 -0
  157. package/dist/normalize-input-layers-marks.js +2 -0
  158. package/dist/normalize-input-layers-marks.js.map +1 -0
  159. package/dist/normalize-input-layers-special.d.ts +131 -0
  160. package/dist/normalize-input-layers-special.d.ts.map +1 -0
  161. package/dist/normalize-input-layers-special.js +2 -0
  162. package/dist/normalize-input-layers-special.js.map +1 -0
  163. package/dist/normalize-input.d.ts +81 -0
  164. package/dist/normalize-input.d.ts.map +1 -0
  165. package/dist/normalize-input.js +2 -0
  166. package/dist/normalize-input.js.map +1 -0
  167. package/dist/normalize-paint.d.ts +8 -0
  168. package/dist/normalize-paint.d.ts.map +1 -0
  169. package/dist/normalize-paint.js +83 -0
  170. package/dist/normalize-paint.js.map +1 -0
  171. package/dist/normalize-scales.d.ts +7 -0
  172. package/dist/normalize-scales.d.ts.map +1 -0
  173. package/dist/normalize-scales.js +90 -0
  174. package/dist/normalize-scales.js.map +1 -0
  175. package/dist/normalize.d.ts +46 -0
  176. package/dist/normalize.d.ts.map +1 -0
  177. package/dist/normalize.js +279 -0
  178. package/dist/normalize.js.map +1 -0
  179. package/dist/paint-helpers.d.ts +45 -0
  180. package/dist/paint-helpers.d.ts.map +1 -0
  181. package/dist/paint-helpers.js +48 -0
  182. package/dist/paint-helpers.js.map +1 -0
  183. package/dist/pipeline-error-catalog.d.ts +319 -0
  184. package/dist/pipeline-error-catalog.d.ts.map +1 -0
  185. package/dist/pipeline-error-catalog.js +260 -0
  186. package/dist/pipeline-error-catalog.js.map +1 -0
  187. package/dist/portability-check.d.ts +35 -0
  188. package/dist/portability-check.d.ts.map +1 -0
  189. package/dist/portability-check.js +121 -0
  190. package/dist/portability-check.js.map +1 -0
  191. package/dist/portability-lossy.d.ts +19 -0
  192. package/dist/portability-lossy.d.ts.map +1 -0
  193. package/dist/portability-lossy.js +65 -0
  194. package/dist/portability-lossy.js.map +1 -0
  195. package/dist/portability.d.ts +23 -0
  196. package/dist/portability.d.ts.map +1 -0
  197. package/dist/portability.js +23 -0
  198. package/dist/portability.js.map +1 -0
  199. package/dist/portable-builder.d.ts +215 -0
  200. package/dist/portable-builder.d.ts.map +1 -0
  201. package/dist/portable-builder.js +27 -0
  202. package/dist/portable-builder.js.map +1 -0
  203. package/dist/portable-entry.d.ts +16 -0
  204. package/dist/portable-entry.d.ts.map +1 -0
  205. package/dist/portable-entry.js +14 -0
  206. package/dist/portable-entry.js.map +1 -0
  207. package/dist/position-reference-build.d.ts +29 -0
  208. package/dist/position-reference-build.d.ts.map +1 -0
  209. package/dist/position-reference-build.js +115 -0
  210. package/dist/position-reference-build.js.map +1 -0
  211. package/dist/position-reference.d.ts +34 -0
  212. package/dist/position-reference.d.ts.map +1 -0
  213. package/dist/position-reference.js +19 -0
  214. package/dist/position-reference.js.map +1 -0
  215. package/dist/runtime.d.ts +139 -0
  216. package/dist/runtime.d.ts.map +1 -0
  217. package/dist/runtime.js +2 -0
  218. package/dist/runtime.js.map +1 -0
  219. package/dist/scale-color-helpers.d.ts +121 -0
  220. package/dist/scale-color-helpers.d.ts.map +1 -0
  221. package/dist/scale-color-helpers.js +188 -0
  222. package/dist/scale-color-helpers.js.map +1 -0
  223. package/dist/scale-color-hue-grey.d.ts +52 -0
  224. package/dist/scale-color-hue-grey.d.ts.map +1 -0
  225. package/dist/scale-color-hue-grey.js +60 -0
  226. package/dist/scale-color-hue-grey.js.map +1 -0
  227. package/dist/scale-color-stops.d.ts +85 -0
  228. package/dist/scale-color-stops.d.ts.map +1 -0
  229. package/dist/scale-color-stops.js +87 -0
  230. package/dist/scale-color-stops.js.map +1 -0
  231. package/dist/scale-color-viridis.d.ts +52 -0
  232. package/dist/scale-color-viridis.d.ts.map +1 -0
  233. package/dist/scale-color-viridis.js +68 -0
  234. package/dist/scale-color-viridis.js.map +1 -0
  235. package/dist/scale-helpers.d.ts +20 -0
  236. package/dist/scale-helpers.d.ts.map +1 -0
  237. package/dist/scale-helpers.js +20 -0
  238. package/dist/scale-helpers.js.map +1 -0
  239. package/dist/scale-multi-helpers.d.ts +61 -0
  240. package/dist/scale-multi-helpers.d.ts.map +1 -0
  241. package/dist/scale-multi-helpers.js +147 -0
  242. package/dist/scale-multi-helpers.js.map +1 -0
  243. package/dist/scale-position-helpers.d.ts +81 -0
  244. package/dist/scale-position-helpers.d.ts.map +1 -0
  245. package/dist/scale-position-helpers.js +133 -0
  246. package/dist/scale-position-helpers.js.map +1 -0
  247. package/dist/scale-reference-build.d.ts +50 -0
  248. package/dist/scale-reference-build.d.ts.map +1 -0
  249. package/dist/scale-reference-build.js +147 -0
  250. package/dist/scale-reference-build.js.map +1 -0
  251. package/dist/scale-reference-classify-color.d.ts +11 -0
  252. package/dist/scale-reference-classify-color.d.ts.map +1 -0
  253. package/dist/scale-reference-classify-color.js +292 -0
  254. package/dist/scale-reference-classify-color.js.map +1 -0
  255. package/dist/scale-reference-classify-position.d.ts +10 -0
  256. package/dist/scale-reference-classify-position.d.ts.map +1 -0
  257. package/dist/scale-reference-classify-position.js +137 -0
  258. package/dist/scale-reference-classify-position.js.map +1 -0
  259. package/dist/scale-reference-classify-style.d.ts +10 -0
  260. package/dist/scale-reference-classify-style.d.ts.map +1 -0
  261. package/dist/scale-reference-classify-style.js +194 -0
  262. package/dist/scale-reference-classify-style.js.map +1 -0
  263. package/dist/scale-reference-classify-support.d.ts +37 -0
  264. package/dist/scale-reference-classify-support.d.ts.map +1 -0
  265. package/dist/scale-reference-classify-support.js +206 -0
  266. package/dist/scale-reference-classify-support.js.map +1 -0
  267. package/dist/scale-reference.d.ts +80 -0
  268. package/dist/scale-reference.d.ts.map +1 -0
  269. package/dist/scale-reference.js +85 -0
  270. package/dist/scale-reference.js.map +1 -0
  271. package/dist/scale-style-helpers.d.ts +158 -0
  272. package/dist/scale-style-helpers.d.ts.map +1 -0
  273. package/dist/scale-style-helpers.js +197 -0
  274. package/dist/scale-style-helpers.js.map +1 -0
  275. package/dist/schema-catalog.d.ts +62 -0
  276. package/dist/schema-catalog.d.ts.map +1 -0
  277. package/dist/schema-catalog.js +208 -0
  278. package/dist/schema-catalog.js.map +1 -0
  279. package/dist/schema-declarations.d.ts +1585 -0
  280. package/dist/schema-declarations.d.ts.map +1 -0
  281. package/dist/schema-declarations.js +51 -0
  282. package/dist/schema-declarations.js.map +1 -0
  283. package/dist/schema-decls-data.d.ts +58 -0
  284. package/dist/schema-decls-data.d.ts.map +1 -0
  285. package/dist/schema-decls-data.js +151 -0
  286. package/dist/schema-decls-data.js.map +1 -0
  287. package/dist/schema-decls-guides-theme.d.ts +166 -0
  288. package/dist/schema-decls-guides-theme.d.ts.map +1 -0
  289. package/dist/schema-decls-guides-theme.js +251 -0
  290. package/dist/schema-decls-guides-theme.js.map +1 -0
  291. package/dist/schema-decls-layers-col-boxplot.d.ts +118 -0
  292. package/dist/schema-decls-layers-col-boxplot.d.ts.map +1 -0
  293. package/dist/schema-decls-layers-col-boxplot.js +239 -0
  294. package/dist/schema-decls-layers-col-boxplot.js.map +1 -0
  295. package/dist/schema-decls-layers-count-pointrange.d.ts +89 -0
  296. package/dist/schema-decls-layers-count-pointrange.d.ts.map +1 -0
  297. package/dist/schema-decls-layers-count-pointrange.js +190 -0
  298. package/dist/schema-decls-layers-count-pointrange.js.map +1 -0
  299. package/dist/schema-decls-layers-crossbar-jitter.d.ts +129 -0
  300. package/dist/schema-decls-layers-crossbar-jitter.d.ts.map +1 -0
  301. package/dist/schema-decls-layers-crossbar-jitter.js +255 -0
  302. package/dist/schema-decls-layers-crossbar-jitter.js.map +1 -0
  303. package/dist/schema-decls-layers-point-path.d.ts +49 -0
  304. package/dist/schema-decls-layers-point-path.d.ts.map +1 -0
  305. package/dist/schema-decls-layers-point-path.js +156 -0
  306. package/dist/schema-decls-layers-point-path.js.map +1 -0
  307. package/dist/schema-decls-layers-sf-blank.d.ts +89 -0
  308. package/dist/schema-decls-layers-sf-blank.d.ts.map +1 -0
  309. package/dist/schema-decls-layers-sf-blank.js +254 -0
  310. package/dist/schema-decls-layers-sf-blank.js.map +1 -0
  311. package/dist/schema-decls-layers-text-map.d.ts +80 -0
  312. package/dist/schema-decls-layers-text-map.d.ts.map +1 -0
  313. package/dist/schema-decls-layers-text-map.js +151 -0
  314. package/dist/schema-decls-layers-text-map.js.map +1 -0
  315. package/dist/schema-decls-paint.d.ts +39 -0
  316. package/dist/schema-decls-paint.d.ts.map +1 -0
  317. package/dist/schema-decls-paint.js +95 -0
  318. package/dist/schema-decls-paint.js.map +1 -0
  319. package/dist/schema-decls-params-area-abline.d.ts +85 -0
  320. package/dist/schema-decls-params-area-abline.d.ts.map +1 -0
  321. package/dist/schema-decls-params-area-abline.js +259 -0
  322. package/dist/schema-decls-params-area-abline.js.map +1 -0
  323. package/dist/schema-decls-params-col-contour.d.ts +61 -0
  324. package/dist/schema-decls-params-col-contour.d.ts.map +1 -0
  325. package/dist/schema-decls-params-col-contour.js +202 -0
  326. package/dist/schema-decls-params-col-contour.js.map +1 -0
  327. package/dist/schema-decls-params-curve-label.d.ts +64 -0
  328. package/dist/schema-decls-params-curve-label.d.ts.map +1 -0
  329. package/dist/schema-decls-params-curve-label.js +204 -0
  330. package/dist/schema-decls-params-curve-label.js.map +1 -0
  331. package/dist/schema-decls-params-errorbar-position.d.ts +83 -0
  332. package/dist/schema-decls-params-errorbar-position.d.ts.map +1 -0
  333. package/dist/schema-decls-params-errorbar-position.js +264 -0
  334. package/dist/schema-decls-params-errorbar-position.js.map +1 -0
  335. package/dist/schema-decls-params-point-path.d.ts +61 -0
  336. package/dist/schema-decls-params-point-path.d.ts.map +1 -0
  337. package/dist/schema-decls-params-point-path.js +240 -0
  338. package/dist/schema-decls-params-point-path.js.map +1 -0
  339. package/dist/schema-decls-params-violin-summary.d.ts +78 -0
  340. package/dist/schema-decls-params-violin-summary.d.ts.map +1 -0
  341. package/dist/schema-decls-params-violin-summary.js +272 -0
  342. package/dist/schema-decls-params-violin-summary.js.map +1 -0
  343. package/dist/schema-decls-plot.d.ts +80 -0
  344. package/dist/schema-decls-plot.d.ts.map +1 -0
  345. package/dist/schema-decls-plot.js +222 -0
  346. package/dist/schema-decls-plot.js.map +1 -0
  347. package/dist/schema-decls-scales-guides.d.ts +291 -0
  348. package/dist/schema-decls-scales-guides.d.ts.map +1 -0
  349. package/dist/schema-decls-scales-guides.js +189 -0
  350. package/dist/schema-decls-scales-guides.js.map +1 -0
  351. package/dist/schema-decls-scales.d.ts +124 -0
  352. package/dist/schema-decls-scales.d.ts.map +1 -0
  353. package/dist/schema-decls-scales.js +279 -0
  354. package/dist/schema-decls-scales.js.map +1 -0
  355. package/dist/schema-imports.d.ts +1679 -0
  356. package/dist/schema-imports.d.ts.map +1 -0
  357. package/dist/schema-imports.js +104 -0
  358. package/dist/schema-imports.js.map +1 -0
  359. package/dist/schema-name-schemas.d.ts +18 -0
  360. package/dist/schema-name-schemas.d.ts.map +1 -0
  361. package/dist/schema-name-schemas.js +13 -0
  362. package/dist/schema-name-schemas.js.map +1 -0
  363. package/dist/schema-names.d.ts +53 -0
  364. package/dist/schema-names.d.ts.map +1 -0
  365. package/dist/schema-names.js +229 -0
  366. package/dist/schema-names.js.map +1 -0
  367. package/dist/schema-types.d.ts +336 -0
  368. package/dist/schema-types.d.ts.map +1 -0
  369. package/dist/schema-types.js +10 -0
  370. package/dist/schema-types.js.map +1 -0
  371. package/dist/schema.d.ts +38 -0
  372. package/dist/schema.d.ts.map +1 -0
  373. package/dist/schema.js +34 -0
  374. package/dist/schema.js.map +1 -0
  375. package/dist/stat-reference-build.d.ts +24 -0
  376. package/dist/stat-reference-build.d.ts.map +1 -0
  377. package/dist/stat-reference-build.js +86 -0
  378. package/dist/stat-reference-build.js.map +1 -0
  379. package/dist/stat-reference.d.ts +33 -0
  380. package/dist/stat-reference.d.ts.map +1 -0
  381. package/dist/stat-reference.js +19 -0
  382. package/dist/stat-reference.js.map +1 -0
  383. package/dist/structural-gate.d.ts +15 -0
  384. package/dist/structural-gate.d.ts.map +1 -0
  385. package/dist/structural-gate.js +34 -0
  386. package/dist/structural-gate.js.map +1 -0
  387. package/dist/temporal-column.d.ts +33 -0
  388. package/dist/temporal-column.d.ts.map +1 -0
  389. package/dist/temporal-column.js +247 -0
  390. package/dist/temporal-column.js.map +1 -0
  391. package/dist/temporal-guides.d.ts +11 -0
  392. package/dist/temporal-guides.d.ts.map +1 -0
  393. package/dist/temporal-guides.js +11 -0
  394. package/dist/temporal-guides.js.map +1 -0
  395. package/dist/temporal-interval-schema.d.ts +9 -0
  396. package/dist/temporal-interval-schema.d.ts.map +1 -0
  397. package/dist/temporal-interval-schema.js +25 -0
  398. package/dist/temporal-interval-schema.js.map +1 -0
  399. package/dist/temporal-interval.d.ts +29 -0
  400. package/dist/temporal-interval.d.ts.map +1 -0
  401. package/dist/temporal-interval.js +122 -0
  402. package/dist/temporal-interval.js.map +1 -0
  403. package/dist/temporal-parse-core.d.ts +96 -0
  404. package/dist/temporal-parse-core.d.ts.map +1 -0
  405. package/dist/temporal-parse-core.js +235 -0
  406. package/dist/temporal-parse-core.js.map +1 -0
  407. package/dist/temporal-parse-format.d.ts +13 -0
  408. package/dist/temporal-parse-format.d.ts.map +1 -0
  409. package/dist/temporal-parse-format.js +180 -0
  410. package/dist/temporal-parse-format.js.map +1 -0
  411. package/dist/temporal-parse-schema.d.ts +11 -0
  412. package/dist/temporal-parse-schema.d.ts.map +1 -0
  413. package/dist/temporal-parse-schema.js +23 -0
  414. package/dist/temporal-parse-schema.js.map +1 -0
  415. package/dist/temporal-parse.d.ts +18 -0
  416. package/dist/temporal-parse.d.ts.map +1 -0
  417. package/dist/temporal-parse.js +183 -0
  418. package/dist/temporal-parse.js.map +1 -0
  419. package/dist/temporal-polyfill.d.ts +3 -0
  420. package/dist/temporal-polyfill.d.ts.map +1 -0
  421. package/dist/temporal-polyfill.js +25 -0
  422. package/dist/temporal-polyfill.js.map +1 -0
  423. package/dist/temporal-ticks.d.ts +20 -0
  424. package/dist/temporal-ticks.d.ts.map +1 -0
  425. package/dist/temporal-ticks.js +246 -0
  426. package/dist/temporal-ticks.js.map +1 -0
  427. package/dist/temporal.d.ts +109 -0
  428. package/dist/temporal.d.ts.map +1 -0
  429. package/dist/temporal.js +73 -0
  430. package/dist/temporal.js.map +1 -0
  431. package/dist/validate-data-checks-color-temporal.d.ts +58 -0
  432. package/dist/validate-data-checks-color-temporal.d.ts.map +1 -0
  433. package/dist/validate-data-checks-color-temporal.js +168 -0
  434. package/dist/validate-data-checks-color-temporal.js.map +1 -0
  435. package/dist/validate-data-checks-color.d.ts +28 -0
  436. package/dist/validate-data-checks-color.d.ts.map +1 -0
  437. package/dist/validate-data-checks-color.js +296 -0
  438. package/dist/validate-data-checks-color.js.map +1 -0
  439. package/dist/validate-data-checks-layer.d.ts +37 -0
  440. package/dist/validate-data-checks-layer.d.ts.map +1 -0
  441. package/dist/validate-data-checks-layer.js +343 -0
  442. package/dist/validate-data-checks-layer.js.map +1 -0
  443. package/dist/validate-data-checks-position.d.ts +45 -0
  444. package/dist/validate-data-checks-position.d.ts.map +1 -0
  445. package/dist/validate-data-checks-position.js +204 -0
  446. package/dist/validate-data-checks-position.js.map +1 -0
  447. package/dist/validate-data-checks-style-finite.d.ts +24 -0
  448. package/dist/validate-data-checks-style-finite.d.ts.map +1 -0
  449. package/dist/validate-data-checks-style-finite.js +40 -0
  450. package/dist/validate-data-checks-style-finite.js.map +1 -0
  451. package/dist/validate-data-checks-style-numeric.d.ts +26 -0
  452. package/dist/validate-data-checks-style-numeric.d.ts.map +1 -0
  453. package/dist/validate-data-checks-style-numeric.js +327 -0
  454. package/dist/validate-data-checks-style-numeric.js.map +1 -0
  455. package/dist/validate-data-checks-style.d.ts +14 -0
  456. package/dist/validate-data-checks-style.d.ts.map +1 -0
  457. package/dist/validate-data-checks-style.js +14 -0
  458. package/dist/validate-data-checks-style.js.map +1 -0
  459. package/dist/validate-data-checks-temporal.d.ts +57 -0
  460. package/dist/validate-data-checks-temporal.d.ts.map +1 -0
  461. package/dist/validate-data-checks-temporal.js +83 -0
  462. package/dist/validate-data-checks-temporal.js.map +1 -0
  463. package/dist/validate-data-checks.d.ts +31 -0
  464. package/dist/validate-data-checks.d.ts.map +1 -0
  465. package/dist/validate-data-checks.js +110 -0
  466. package/dist/validate-data-checks.js.map +1 -0
  467. package/dist/validate-data-evidence.d.ts +69 -0
  468. package/dist/validate-data-evidence.d.ts.map +1 -0
  469. package/dist/validate-data-evidence.js +329 -0
  470. package/dist/validate-data-evidence.js.map +1 -0
  471. package/dist/validate-data.d.ts +73 -0
  472. package/dist/validate-data.d.ts.map +1 -0
  473. package/dist/validate-data.js +30 -0
  474. package/dist/validate-data.js.map +1 -0
  475. package/dist/validate-map-errors.d.ts +32 -0
  476. package/dist/validate-map-errors.d.ts.map +1 -0
  477. package/dist/validate-map-errors.js +76 -0
  478. package/dist/validate-map-errors.js.map +1 -0
  479. package/dist/validate-map-forms.d.ts +43 -0
  480. package/dist/validate-map-forms.d.ts.map +1 -0
  481. package/dist/validate-map-forms.js +125 -0
  482. package/dist/validate-map-forms.js.map +1 -0
  483. package/dist/validate-map-path-keywords.d.ts +11 -0
  484. package/dist/validate-map-path-keywords.d.ts.map +1 -0
  485. package/dist/validate-map-path-keywords.js +95 -0
  486. package/dist/validate-map-path-keywords.js.map +1 -0
  487. package/dist/validate-map-path-unions.d.ts +27 -0
  488. package/dist/validate-map-path-unions.d.ts.map +1 -0
  489. package/dist/validate-map-path-unions.js +200 -0
  490. package/dist/validate-map-path-unions.js.map +1 -0
  491. package/dist/validate-schema-shape.d.ts +69 -0
  492. package/dist/validate-schema-shape.d.ts.map +1 -0
  493. package/dist/validate-schema-shape.js +156 -0
  494. package/dist/validate-schema-shape.js.map +1 -0
  495. package/dist/validate-schema-walk.d.ts +34 -0
  496. package/dist/validate-schema-walk.d.ts.map +1 -0
  497. package/dist/validate-schema-walk.js +216 -0
  498. package/dist/validate-schema-walk.js.map +1 -0
  499. package/dist/validate-structure-facet.d.ts +8 -0
  500. package/dist/validate-structure-facet.d.ts.map +1 -0
  501. package/dist/validate-structure-facet.js +67 -0
  502. package/dist/validate-structure-facet.js.map +1 -0
  503. package/dist/validate-structure-layer-computed-y.d.ts +14 -0
  504. package/dist/validate-structure-layer-computed-y.d.ts.map +1 -0
  505. package/dist/validate-structure-layer-computed-y.js +70 -0
  506. package/dist/validate-structure-layer-computed-y.js.map +1 -0
  507. package/dist/validate-structure-layer-ribbon.d.ts +8 -0
  508. package/dist/validate-structure-layer-ribbon.d.ts.map +1 -0
  509. package/dist/validate-structure-layer-ribbon.js +36 -0
  510. package/dist/validate-structure-layer-ribbon.js.map +1 -0
  511. package/dist/validate-structure-layer-rule.d.ts +14 -0
  512. package/dist/validate-structure-layer-rule.d.ts.map +1 -0
  513. package/dist/validate-structure-layer-rule.js +90 -0
  514. package/dist/validate-structure-layer-rule.js.map +1 -0
  515. package/dist/validate-structure-layer-shared.d.ts +12 -0
  516. package/dist/validate-structure-layer-shared.d.ts.map +1 -0
  517. package/dist/validate-structure-layer-shared.js +17 -0
  518. package/dist/validate-structure-layer-shared.js.map +1 -0
  519. package/dist/validate-structure-layers.d.ts +12 -0
  520. package/dist/validate-structure-layers.d.ts.map +1 -0
  521. package/dist/validate-structure-layers.js +292 -0
  522. package/dist/validate-structure-layers.js.map +1 -0
  523. package/dist/validate-structure-paint.d.ts +12 -0
  524. package/dist/validate-structure-paint.d.ts.map +1 -0
  525. package/dist/validate-structure-paint.js +87 -0
  526. package/dist/validate-structure-paint.js.map +1 -0
  527. package/dist/validate-structure-scales.d.ts +10 -0
  528. package/dist/validate-structure-scales.d.ts.map +1 -0
  529. package/dist/validate-structure-scales.js +242 -0
  530. package/dist/validate-structure-scales.js.map +1 -0
  531. package/dist/validate-structure-style-bins.d.ts +17 -0
  532. package/dist/validate-structure-style-bins.d.ts.map +1 -0
  533. package/dist/validate-structure-style-bins.js +150 -0
  534. package/dist/validate-structure-style-bins.js.map +1 -0
  535. package/dist/validate-structure.d.ts +16 -0
  536. package/dist/validate-structure.d.ts.map +1 -0
  537. package/dist/validate-structure.js +16 -0
  538. package/dist/validate-structure.js.map +1 -0
  539. package/dist/validate.d.ts +24 -0
  540. package/dist/validate.d.ts.map +1 -0
  541. package/dist/validate.js +178 -0
  542. package/dist/validate.js.map +1 -0
  543. package/package.json +59 -0
  544. package/schema/v0.json +9618 -0
  545. package/src/artifact.ts +81 -0
  546. package/src/builder-core.ts +276 -0
  547. package/src/builder-data.ts +156 -0
  548. package/src/builder-geoms.ts +290 -0
  549. package/src/builder-options.ts +428 -0
  550. package/src/builder-scales.ts +443 -0
  551. package/src/builder.ts +125 -0
  552. package/src/capabilities-data.ts +336 -0
  553. package/src/capabilities-helpers.ts +54 -0
  554. package/src/capabilities.ts +159 -0
  555. package/src/coord-helpers.ts +177 -0
  556. package/src/coord-reference-build.ts +283 -0
  557. package/src/coord-reference.ts +75 -0
  558. package/src/error-catalog.ts +253 -0
  559. package/src/error-prose-shared.ts +106 -0
  560. package/src/errors.ts +87 -0
  561. package/src/generated/coord-reference-data.ts +235 -0
  562. package/src/generated/geom-param-keys.ts +222 -0
  563. package/src/generated/geom-reference-data.ts +3024 -0
  564. package/src/generated/guide-reference-data.ts +284 -0
  565. package/src/generated/plot-spec-validator.ts +7335 -0
  566. package/src/generated/position-reference-data.ts +191 -0
  567. package/src/generated/scale-reference-data.ts +10665 -0
  568. package/src/generated/stat-reference-data.ts +339 -0
  569. package/src/geom-params-build.ts +92 -0
  570. package/src/geom-params.ts +14 -0
  571. package/src/geom-reference-build.ts +292 -0
  572. package/src/geom-reference.ts +127 -0
  573. package/src/guide-helpers.ts +44 -0
  574. package/src/guide-reference-build.ts +249 -0
  575. package/src/guide-reference.ts +76 -0
  576. package/src/hue-grey-palettes.ts +82 -0
  577. package/src/index.ts +400 -0
  578. package/src/lint-catalog.ts +57 -0
  579. package/src/lint-layer-rules.ts +175 -0
  580. package/src/lint-scale-rules.ts +285 -0
  581. package/src/lint.ts +126 -0
  582. package/src/normalize-coord.ts +126 -0
  583. package/src/normalize-input-layers-marks.ts +276 -0
  584. package/src/normalize-input-layers-special.ts +252 -0
  585. package/src/normalize-input.ts +154 -0
  586. package/src/normalize-paint.ts +98 -0
  587. package/src/normalize-scales.ts +108 -0
  588. package/src/normalize.ts +403 -0
  589. package/src/paint-helpers.ts +98 -0
  590. package/src/pipeline-error-catalog.ts +278 -0
  591. package/src/portability-check.ts +155 -0
  592. package/src/portability-lossy.ts +81 -0
  593. package/src/portability.ts +31 -0
  594. package/src/portable-builder.ts +35 -0
  595. package/src/portable-entry.ts +37 -0
  596. package/src/position-reference-build.ts +164 -0
  597. package/src/position-reference.ts +41 -0
  598. package/src/runtime.ts +198 -0
  599. package/src/scale-color-helpers.ts +263 -0
  600. package/src/scale-color-hue-grey.ts +95 -0
  601. package/src/scale-color-stops.ts +177 -0
  602. package/src/scale-color-viridis.ts +99 -0
  603. package/src/scale-helpers.ts +264 -0
  604. package/src/scale-multi-helpers.ts +220 -0
  605. package/src/scale-position-helpers.ts +231 -0
  606. package/src/scale-reference-build.ts +222 -0
  607. package/src/scale-reference-classify-color.ts +334 -0
  608. package/src/scale-reference-classify-position.ts +164 -0
  609. package/src/scale-reference-classify-style.ts +229 -0
  610. package/src/scale-reference-classify-support.ts +298 -0
  611. package/src/scale-reference.ts +165 -0
  612. package/src/scale-style-helpers.ts +316 -0
  613. package/src/schema-catalog.ts +222 -0
  614. package/src/schema-declarations.ts +51 -0
  615. package/src/schema-decls-data.ts +272 -0
  616. package/src/schema-decls-guides-theme.ts +395 -0
  617. package/src/schema-decls-layers-col-boxplot.ts +410 -0
  618. package/src/schema-decls-layers-count-pointrange.ts +321 -0
  619. package/src/schema-decls-layers-crossbar-jitter.ts +443 -0
  620. package/src/schema-decls-layers-point-path.ts +246 -0
  621. package/src/schema-decls-layers-sf-blank.ts +408 -0
  622. package/src/schema-decls-layers-text-map.ts +259 -0
  623. package/src/schema-decls-paint.ts +124 -0
  624. package/src/schema-decls-params-area-abline.ts +440 -0
  625. package/src/schema-decls-params-col-contour.ts +333 -0
  626. package/src/schema-decls-params-curve-label.ts +343 -0
  627. package/src/schema-decls-params-errorbar-position.ts +446 -0
  628. package/src/schema-decls-params-point-path.ts +394 -0
  629. package/src/schema-decls-params-violin-summary.ts +447 -0
  630. package/src/schema-decls-plot.ts +385 -0
  631. package/src/schema-decls-scales-guides.ts +233 -0
  632. package/src/schema-decls-scales.ts +432 -0
  633. package/src/schema-imports.ts +116 -0
  634. package/src/schema-name-schemas.ts +37 -0
  635. package/src/schema-names.ts +243 -0
  636. package/src/schema-types.ts +400 -0
  637. package/src/schema.ts +287 -0
  638. package/src/stat-reference-build.ts +145 -0
  639. package/src/stat-reference.ts +38 -0
  640. package/src/structural-gate.ts +42 -0
  641. package/src/temporal-column.ts +323 -0
  642. package/src/temporal-guides.ts +32 -0
  643. package/src/temporal-interval-schema.ts +40 -0
  644. package/src/temporal-interval.ts +151 -0
  645. package/src/temporal-parse-core.ts +331 -0
  646. package/src/temporal-parse-format.ts +222 -0
  647. package/src/temporal-parse-schema.ts +38 -0
  648. package/src/temporal-parse.ts +259 -0
  649. package/src/temporal-polyfill.ts +27 -0
  650. package/src/temporal-ticks.ts +312 -0
  651. package/src/temporal.ts +112 -0
  652. package/src/validate-data-checks-color-temporal.ts +261 -0
  653. package/src/validate-data-checks-color.ts +395 -0
  654. package/src/validate-data-checks-layer.ts +492 -0
  655. package/src/validate-data-checks-position.ts +275 -0
  656. package/src/validate-data-checks-style-finite.ts +55 -0
  657. package/src/validate-data-checks-style-numeric.ts +455 -0
  658. package/src/validate-data-checks-style.ts +13 -0
  659. package/src/validate-data-checks-temporal.ts +129 -0
  660. package/src/validate-data-checks.ts +157 -0
  661. package/src/validate-data-evidence.ts +419 -0
  662. package/src/validate-data.ts +114 -0
  663. package/src/validate-map-errors.ts +126 -0
  664. package/src/validate-map-forms.ts +148 -0
  665. package/src/validate-map-path-keywords.ts +129 -0
  666. package/src/validate-map-path-unions.ts +281 -0
  667. package/src/validate-schema-shape.ts +232 -0
  668. package/src/validate-schema-walk.ts +219 -0
  669. package/src/validate-structure-facet.ts +76 -0
  670. package/src/validate-structure-layer-computed-y.ts +94 -0
  671. package/src/validate-structure-layer-ribbon.ts +61 -0
  672. package/src/validate-structure-layer-rule.ts +98 -0
  673. package/src/validate-structure-layer-shared.ts +29 -0
  674. package/src/validate-structure-layers.ts +395 -0
  675. package/src/validate-structure-paint.ts +101 -0
  676. package/src/validate-structure-scales.ts +278 -0
  677. package/src/validate-structure-style-bins.ts +167 -0
  678. package/src/validate-structure.ts +16 -0
  679. package/src/validate.ts +212 -0
@@ -0,0 +1,2377 @@
1
+ /**
2
+ * AUTO-GENERATED by scripts/gen-reference-catalogs.ts — do not edit by hand.
3
+ * Regenerate: bun run reference:catalogs:gen
4
+ *
5
+ * GEOM_REFERENCE — per-geom API docs from SpecDeclarations.
6
+ */
7
+ export declare const GEOM_REFERENCE_DATA: {
8
+ readonly point: {
9
+ readonly name: "point";
10
+ readonly slug: "point";
11
+ readonly component: "GeomPoint";
12
+ readonly summary: "Point geometry: one mark per data row. Use for scatter plots, dot plots, bubbles, and correlation views.";
13
+ readonly defaultStat: "identity";
14
+ readonly defaultPosition: "identity";
15
+ readonly allowedStats: readonly ["identity", "unique", "summary_bin", "summary_rolling", "manual", "sum"];
16
+ readonly allowedPositions: readonly ["identity", "jitter", "nudge"];
17
+ readonly paramsType: "PointParams";
18
+ readonly params: readonly [{
19
+ readonly name: "alpha";
20
+ readonly description: "Point opacity. Must be between 0 and 1 (inclusive). Default 1.";
21
+ readonly typeSummary: "number";
22
+ readonly required: false;
23
+ }, {
24
+ readonly name: "size";
25
+ readonly description: "Point radius in px. Must be greater than 0. Default 2.5.";
26
+ readonly typeSummary: "number";
27
+ readonly required: false;
28
+ }, {
29
+ readonly name: "shape";
30
+ readonly description: "Point shape. One of \"circle\", \"triangle\", \"square\", \"diamond\", \"plus\", \"cross\", \"circle-open\". Default \"circle\".";
31
+ readonly typeSummary: "\"circle\" | \"triangle\" | \"square\" | \"diamond\" | \"plus\" | \"cross\" | \"circle-open\"";
32
+ readonly required: false;
33
+ }, {
34
+ readonly name: "bins";
35
+ readonly description: "STAT SUMMARY_BIN ONLY: number of bins (integer ≥ 1). Default 30 — advisory. Overridden by binwidth.";
36
+ readonly typeSummary: "number";
37
+ readonly required: false;
38
+ }, {
39
+ readonly name: "binwidth";
40
+ readonly description: "STAT SUMMARY_BIN ONLY: bin width in data units (must be greater than 0). Takes precedence over bins.";
41
+ readonly typeSummary: "number";
42
+ readonly required: false;
43
+ }, {
44
+ readonly name: "boundary";
45
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin EDGE with this x value. Mutually exclusive with center.";
46
+ readonly typeSummary: "number";
47
+ readonly required: false;
48
+ }, {
49
+ readonly name: "center";
50
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin CENTER with this x value. Mutually exclusive with boundary.";
51
+ readonly typeSummary: "number";
52
+ readonly required: false;
53
+ }, {
54
+ readonly name: "closed";
55
+ readonly description: "STAT SUMMARY_BIN ONLY: which edge of each bin is inclusive: \"right\" (default) or \"left\".";
56
+ readonly typeSummary: "\"right\" | \"left\"";
57
+ readonly required: false;
58
+ }, {
59
+ readonly name: "window";
60
+ readonly description: "STAT SUMMARY_ROLLING ONLY: centered rolling-window width in x data units (must be greater than 0). Required when stat is \"summary_rolling\".";
61
+ readonly typeSummary: "number";
62
+ readonly required: false;
63
+ }, {
64
+ readonly name: "fun";
65
+ readonly description: "SUMMARY_BIN / SUMMARY_ROLLING center fun (mean/median/sum;) or MANUAL named transform (first|last|mean|median|min|max|sum;). Required when stat is \"manual\".";
66
+ readonly typeSummary: "\"first\" | \"last\" | \"mean\" | \"median\" | \"min\" | \"max\" | \"sum\"";
67
+ readonly required: false;
68
+ }, {
69
+ readonly name: "funMin";
70
+ readonly description: "STAT SUMMARY_BIN ONLY: lower bound summary (ymin).";
71
+ readonly typeSummary: "SummaryFun";
72
+ readonly required: false;
73
+ }, {
74
+ readonly name: "funMax";
75
+ readonly description: "STAT SUMMARY_BIN ONLY: upper bound summary (ymax).";
76
+ readonly typeSummary: "SummaryFun";
77
+ readonly required: false;
78
+ }];
79
+ };
80
+ readonly line: {
81
+ readonly name: "line";
82
+ readonly slug: "line";
83
+ readonly component: "GeomLine";
84
+ readonly summary: "Line geometry: connects points in x order, one line per group (groups derive from discrete aesthetics such as color, or from aes.group). Use for time series, trends, and line charts. With stat ecdf, pair with step curves; with stat bin (freqpoly alias), y is computed from counts/density; with stat connect, successive points expand into connection vertices.";
85
+ readonly defaultStat: "identity";
86
+ readonly defaultPosition: "identity";
87
+ readonly allowedStats: readonly ["identity", "unique", "bin", "align", "connect", "summary_bin", "summary_rolling", "manual", "ecdf"];
88
+ readonly allowedPositions: readonly ["identity"];
89
+ readonly paramsType: "LineParams";
90
+ readonly params: readonly [{
91
+ readonly name: "alpha";
92
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
93
+ readonly typeSummary: "number";
94
+ readonly required: false;
95
+ }, {
96
+ readonly name: "linewidth";
97
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.5.";
98
+ readonly typeSummary: "number";
99
+ readonly required: false;
100
+ }, {
101
+ readonly name: "curve";
102
+ readonly description: "Interpolation: \"linear\" (default), \"step\" (mid-x corners), \"step-hv\" (horizontal then vertical — correct for ECDF), or \"step-vh\".";
103
+ readonly typeSummary: "\"linear\" | \"step\" | \"step-hv\" | \"step-vh\"";
104
+ readonly required: false;
105
+ }, {
106
+ readonly name: "pad";
107
+ readonly description: "With stat ecdf: when true (default), prepend (xmin, 0) so step stairs start at zero. Finite-clamped.";
108
+ readonly typeSummary: "boolean";
109
+ readonly required: false;
110
+ }, {
111
+ readonly name: "n";
112
+ readonly description: "With stat ecdf: evaluate on n equally spaced x in [min, max] per group; omit for one point per unique x.";
113
+ readonly typeSummary: "number";
114
+ readonly required: false;
115
+ }, {
116
+ readonly name: "connection";
117
+ readonly description: "STAT CONNECT ONLY: how successive points join — \"hv\" (default), \"vh\", \"mid\", or \"linear\". Ignored for other stats.";
118
+ readonly typeSummary: "\"hv\" | \"vh\" | \"mid\" | \"linear\"";
119
+ readonly required: false;
120
+ }, {
121
+ readonly name: "bins";
122
+ readonly description: "STAT BIN / SUMMARY_BIN: number of bins (integer ≥ 1). Default 30 — an advisory reminds you to pick a real value. Overridden by binwidth.";
123
+ readonly typeSummary: "number";
124
+ readonly required: false;
125
+ }, {
126
+ readonly name: "binwidth";
127
+ readonly description: "STAT BIN / SUMMARY_BIN: bin width in data units (must be greater than 0). Takes precedence over bins.";
128
+ readonly typeSummary: "number";
129
+ readonly required: false;
130
+ }, {
131
+ readonly name: "boundary";
132
+ readonly description: "STAT BIN / SUMMARY_BIN: align a bin EDGE with this x value. Mutually exclusive with center.";
133
+ readonly typeSummary: "number";
134
+ readonly required: false;
135
+ }, {
136
+ readonly name: "center";
137
+ readonly description: "STAT BIN / SUMMARY_BIN: align a bin CENTER with this x value. Mutually exclusive with boundary.";
138
+ readonly typeSummary: "number";
139
+ readonly required: false;
140
+ }, {
141
+ readonly name: "closed";
142
+ readonly description: "STAT BIN / SUMMARY_BIN: which edge of each bin is inclusive: \"right\" (default) or \"left\".";
143
+ readonly typeSummary: "\"right\" | \"left\"";
144
+ readonly required: false;
145
+ }, {
146
+ readonly name: "window";
147
+ readonly description: "STAT SUMMARY_ROLLING ONLY: centered rolling-window width in x data units (must be greater than 0). Required when stat is \"summary_rolling\".";
148
+ readonly typeSummary: "number";
149
+ readonly required: false;
150
+ }, {
151
+ readonly name: "fun";
152
+ readonly description: "SUMMARY_BIN / SUMMARY_ROLLING center fun (mean/median/sum;) or MANUAL named transform (first|last|mean|median|min|max|sum;). Required when stat is \"manual\".";
153
+ readonly typeSummary: "\"first\" | \"last\" | \"mean\" | \"median\" | \"min\" | \"max\" | \"sum\"";
154
+ readonly required: false;
155
+ }, {
156
+ readonly name: "funMin";
157
+ readonly description: "STAT SUMMARY_BIN ONLY: lower bound summary (ymin).";
158
+ readonly typeSummary: "SummaryFun";
159
+ readonly required: false;
160
+ }, {
161
+ readonly name: "funMax";
162
+ readonly description: "STAT SUMMARY_BIN ONLY: upper bound summary (ymax).";
163
+ readonly typeSummary: "SummaryFun";
164
+ readonly required: false;
165
+ }, {
166
+ readonly name: "strokePaint";
167
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
168
+ readonly typeSummary: "GradientPaint";
169
+ readonly required: false;
170
+ }, {
171
+ readonly name: "glow";
172
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
173
+ readonly typeSummary: "GlowSpec";
174
+ readonly required: false;
175
+ }];
176
+ };
177
+ readonly path: {
178
+ readonly name: "path";
179
+ readonly slug: "path";
180
+ readonly component: "GeomPath";
181
+ readonly summary: "Path geometry: connects points in data (row) order within each group — unlike line, which sorts by x. Use for trajectories, loops, connected scatterplots, and ellipse rings (stat ellipse). With stat connect, successive points expand into connection vertices.";
182
+ readonly defaultStat: "identity";
183
+ readonly defaultPosition: "identity";
184
+ readonly allowedStats: readonly ["identity", "unique", "connect", "manual", "ellipse"];
185
+ readonly allowedPositions: readonly ["identity"];
186
+ readonly paramsType: "PathParams";
187
+ readonly params: readonly [{
188
+ readonly name: "alpha";
189
+ readonly description: "Path opacity. Must be between 0 and 1 (inclusive). Default 1.";
190
+ readonly typeSummary: "number";
191
+ readonly required: false;
192
+ }, {
193
+ readonly name: "linewidth";
194
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.5.";
195
+ readonly typeSummary: "number";
196
+ readonly required: false;
197
+ }, {
198
+ readonly name: "curve";
199
+ readonly description: "Interpolation between points: \"linear\" (straight segments, default) or \"step\" (horizontal-then-vertical steps).";
200
+ readonly typeSummary: "\"linear\" | \"step\"";
201
+ readonly required: false;
202
+ }, {
203
+ readonly name: "connection";
204
+ readonly description: "STAT CONNECT ONLY: how successive points join — \"hv\" (default), \"vh\", \"mid\", or \"linear\". Ignored for other stats.";
205
+ readonly typeSummary: "\"hv\" | \"vh\" | \"mid\" | \"linear\"";
206
+ readonly required: false;
207
+ }, {
208
+ readonly name: "fun";
209
+ readonly description: "STAT MANUAL ONLY: portable named transform (first|last|mean|median|min|max|sum). Required when stat is \"manual\".";
210
+ readonly typeSummary: "\"first\" | \"last\" | \"mean\" | \"median\" | \"min\" | \"max\" | \"sum\"";
211
+ readonly required: false;
212
+ }, {
213
+ readonly name: "level";
214
+ readonly description: "STAT ELLIPSE ONLY: confidence level of the bivariate normal ellipse, strictly between 0 and 1. Default 0.95.";
215
+ readonly typeSummary: "number";
216
+ readonly required: false;
217
+ }, {
218
+ readonly name: "type";
219
+ readonly description: "STAT ELLIPSE ONLY: construction type. Only \"norm\" (bivariate normal) is supported in v1.";
220
+ readonly typeSummary: "\"norm\"";
221
+ readonly required: false;
222
+ }, {
223
+ readonly name: "segments";
224
+ readonly description: "STAT ELLIPSE ONLY: number of perimeter samples before the closing duplicate (output length = segments + 1). Default 51.";
225
+ readonly typeSummary: "number";
226
+ readonly required: false;
227
+ }, {
228
+ readonly name: "strokePaint";
229
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
230
+ readonly typeSummary: "GradientPaint";
231
+ readonly required: false;
232
+ }, {
233
+ readonly name: "glow";
234
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
235
+ readonly typeSummary: "GlowSpec";
236
+ readonly required: false;
237
+ }];
238
+ };
239
+ readonly col: {
240
+ readonly name: "col";
241
+ readonly slug: "col";
242
+ readonly component: "GeomCol";
243
+ readonly summary: "Column geometry: one rectangle per data row, from the y baseline (zero) to the row's y value. Use when the data already contains the bar heights — prefer over GeomBar, which counts or bins.";
244
+ readonly defaultStat: "identity";
245
+ readonly defaultPosition: "stack";
246
+ readonly allowedStats: readonly ["identity", "unique"];
247
+ readonly allowedPositions: readonly ["stack", "fill", "dodge", "identity"];
248
+ readonly paramsType: "ColParams";
249
+ readonly params: readonly [{
250
+ readonly name: "alpha";
251
+ readonly description: "Bar opacity. Must be between 0 and 1 (inclusive). Default 1.";
252
+ readonly typeSummary: "number";
253
+ readonly required: false;
254
+ }, {
255
+ readonly name: "width";
256
+ readonly description: "Bar width as a fraction of the band step. Must be greater than 0 and at most 1. Default 0.9.";
257
+ readonly typeSummary: "number";
258
+ readonly required: false;
259
+ }, {
260
+ readonly name: "fillPaint";
261
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
262
+ readonly typeSummary: "GradientPaint";
263
+ readonly required: false;
264
+ }, {
265
+ readonly name: "glow";
266
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
267
+ readonly typeSummary: "GlowSpec";
268
+ readonly required: false;
269
+ }];
270
+ };
271
+ readonly bar: {
272
+ readonly name: "bar";
273
+ readonly slug: "bar";
274
+ readonly component: "GeomBar";
275
+ readonly summary: "Bar geometry with counting or binning: one rectangle per distinct x value (stat count, discrete x) or per bin (stat bin, continuous x). Do not map aes.y — the stat computes it. Prefer GeomCol when bar heights are already in the data.";
276
+ readonly defaultStat: "count";
277
+ readonly defaultPosition: "stack";
278
+ readonly allowedStats: readonly ["count", "bin"];
279
+ readonly allowedPositions: readonly ["stack", "fill", "dodge", "identity"];
280
+ readonly paramsType: "BarParams";
281
+ readonly params: readonly [{
282
+ readonly name: "alpha";
283
+ readonly description: "Bar opacity. Must be between 0 and 1 (inclusive). Default 1.";
284
+ readonly typeSummary: "number";
285
+ readonly required: false;
286
+ }, {
287
+ readonly name: "width";
288
+ readonly description: "Bar width as a fraction of the band step (count-stat bars only; binned bars span their bin). Must be greater than 0 and at most 1. Default 0.9.";
289
+ readonly typeSummary: "number";
290
+ readonly required: false;
291
+ }, {
292
+ readonly name: "bins";
293
+ readonly description: "STAT BIN ONLY: number of bins (an integer of at least 1). Default 30 — an advisory reminds you to pick a real value. Overridden by binwidth.";
294
+ readonly typeSummary: "number";
295
+ readonly required: false;
296
+ }, {
297
+ readonly name: "binwidth";
298
+ readonly description: "STAT BIN ONLY: bin width in data units (must be greater than 0). Takes precedence over bins. Usually the better knob: pick a width meaningful for the data.";
299
+ readonly typeSummary: "number";
300
+ readonly required: false;
301
+ }, {
302
+ readonly name: "boundary";
303
+ readonly description: "STAT BIN ONLY: align a bin EDGE with this x value (e.g. 0 puts bin edges at multiples of the width). Mutually exclusive with center.";
304
+ readonly typeSummary: "number";
305
+ readonly required: false;
306
+ }, {
307
+ readonly name: "center";
308
+ readonly description: "STAT BIN ONLY: align a bin CENTER with this x value. Mutually exclusive with boundary.";
309
+ readonly typeSummary: "number";
310
+ readonly required: false;
311
+ }, {
312
+ readonly name: "closed";
313
+ readonly description: "STAT BIN ONLY: which edge of each bin is inclusive: \"right\" (default, matches) or \"left\".";
314
+ readonly typeSummary: "\"right\" | \"left\"";
315
+ readonly required: false;
316
+ }, {
317
+ readonly name: "fillPaint";
318
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
319
+ readonly typeSummary: "GradientPaint";
320
+ readonly required: false;
321
+ }, {
322
+ readonly name: "glow";
323
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
324
+ readonly typeSummary: "GlowSpec";
325
+ readonly required: false;
326
+ }];
327
+ };
328
+ readonly histogram: {
329
+ readonly name: "histogram";
330
+ readonly slug: "histogram";
331
+ readonly component: "GeomHistogram";
332
+ readonly summary: "Histogram geometry: a continuous x variable divided into bins, one bar per bin whose height is the count of rows (or the sum of aes.weight). Do not map aes.y — the bin stat computes it. Canonicalized by normalize() to a bar layer with stat bin.";
333
+ readonly defaultStat: "bin";
334
+ readonly defaultPosition: "stack";
335
+ readonly allowedStats: readonly ["bin"];
336
+ readonly allowedPositions: readonly ["stack", "fill", "dodge", "identity"];
337
+ readonly paramsType: "BarParams";
338
+ readonly params: readonly [{
339
+ readonly name: "alpha";
340
+ readonly description: "Bar opacity. Must be between 0 and 1 (inclusive). Default 1.";
341
+ readonly typeSummary: "number";
342
+ readonly required: false;
343
+ }, {
344
+ readonly name: "width";
345
+ readonly description: "Bar width as a fraction of the band step (count-stat bars only; binned bars span their bin). Must be greater than 0 and at most 1. Default 0.9.";
346
+ readonly typeSummary: "number";
347
+ readonly required: false;
348
+ }, {
349
+ readonly name: "bins";
350
+ readonly description: "STAT BIN ONLY: number of bins (an integer of at least 1). Default 30 — an advisory reminds you to pick a real value. Overridden by binwidth.";
351
+ readonly typeSummary: "number";
352
+ readonly required: false;
353
+ }, {
354
+ readonly name: "binwidth";
355
+ readonly description: "STAT BIN ONLY: bin width in data units (must be greater than 0). Takes precedence over bins. Usually the better knob: pick a width meaningful for the data.";
356
+ readonly typeSummary: "number";
357
+ readonly required: false;
358
+ }, {
359
+ readonly name: "boundary";
360
+ readonly description: "STAT BIN ONLY: align a bin EDGE with this x value (e.g. 0 puts bin edges at multiples of the width). Mutually exclusive with center.";
361
+ readonly typeSummary: "number";
362
+ readonly required: false;
363
+ }, {
364
+ readonly name: "center";
365
+ readonly description: "STAT BIN ONLY: align a bin CENTER with this x value. Mutually exclusive with boundary.";
366
+ readonly typeSummary: "number";
367
+ readonly required: false;
368
+ }, {
369
+ readonly name: "closed";
370
+ readonly description: "STAT BIN ONLY: which edge of each bin is inclusive: \"right\" (default, matches) or \"left\".";
371
+ readonly typeSummary: "\"right\" | \"left\"";
372
+ readonly required: false;
373
+ }, {
374
+ readonly name: "fillPaint";
375
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
376
+ readonly typeSummary: "GradientPaint";
377
+ readonly required: false;
378
+ }, {
379
+ readonly name: "glow";
380
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
381
+ readonly typeSummary: "GlowSpec";
382
+ readonly required: false;
383
+ }];
384
+ readonly aliasOf: "bar";
385
+ };
386
+ readonly freqpoly: {
387
+ readonly name: "freqpoly";
388
+ readonly slug: "freqpoly";
389
+ readonly component: "GeomFreqpoly";
390
+ readonly summary: "Frequency polygon: continuous x binned like a histogram, drawn as a line through bin centers. Do not map aes.y — the bin stat computes it. Canonicalized by normalize() to a line layer with stat bin.";
391
+ readonly defaultStat: "bin";
392
+ readonly defaultPosition: "identity";
393
+ readonly allowedStats: readonly ["bin"];
394
+ readonly allowedPositions: readonly ["identity"];
395
+ readonly paramsType: "LineParams";
396
+ readonly params: readonly [{
397
+ readonly name: "alpha";
398
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
399
+ readonly typeSummary: "number";
400
+ readonly required: false;
401
+ }, {
402
+ readonly name: "linewidth";
403
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.5.";
404
+ readonly typeSummary: "number";
405
+ readonly required: false;
406
+ }, {
407
+ readonly name: "curve";
408
+ readonly description: "Interpolation: \"linear\" (default), \"step\" (mid-x corners), \"step-hv\" (horizontal then vertical — correct for ECDF), or \"step-vh\".";
409
+ readonly typeSummary: "\"linear\" | \"step\" | \"step-hv\" | \"step-vh\"";
410
+ readonly required: false;
411
+ }, {
412
+ readonly name: "pad";
413
+ readonly description: "With stat ecdf: when true (default), prepend (xmin, 0) so step stairs start at zero. Finite-clamped.";
414
+ readonly typeSummary: "boolean";
415
+ readonly required: false;
416
+ }, {
417
+ readonly name: "n";
418
+ readonly description: "With stat ecdf: evaluate on n equally spaced x in [min, max] per group; omit for one point per unique x.";
419
+ readonly typeSummary: "number";
420
+ readonly required: false;
421
+ }, {
422
+ readonly name: "connection";
423
+ readonly description: "STAT CONNECT ONLY: how successive points join — \"hv\" (default), \"vh\", \"mid\", or \"linear\". Ignored for other stats.";
424
+ readonly typeSummary: "\"hv\" | \"vh\" | \"mid\" | \"linear\"";
425
+ readonly required: false;
426
+ }, {
427
+ readonly name: "bins";
428
+ readonly description: "STAT BIN / SUMMARY_BIN: number of bins (integer ≥ 1). Default 30 — an advisory reminds you to pick a real value. Overridden by binwidth.";
429
+ readonly typeSummary: "number";
430
+ readonly required: false;
431
+ }, {
432
+ readonly name: "binwidth";
433
+ readonly description: "STAT BIN / SUMMARY_BIN: bin width in data units (must be greater than 0). Takes precedence over bins.";
434
+ readonly typeSummary: "number";
435
+ readonly required: false;
436
+ }, {
437
+ readonly name: "boundary";
438
+ readonly description: "STAT BIN / SUMMARY_BIN: align a bin EDGE with this x value. Mutually exclusive with center.";
439
+ readonly typeSummary: "number";
440
+ readonly required: false;
441
+ }, {
442
+ readonly name: "center";
443
+ readonly description: "STAT BIN / SUMMARY_BIN: align a bin CENTER with this x value. Mutually exclusive with boundary.";
444
+ readonly typeSummary: "number";
445
+ readonly required: false;
446
+ }, {
447
+ readonly name: "closed";
448
+ readonly description: "STAT BIN / SUMMARY_BIN: which edge of each bin is inclusive: \"right\" (default) or \"left\".";
449
+ readonly typeSummary: "\"right\" | \"left\"";
450
+ readonly required: false;
451
+ }, {
452
+ readonly name: "window";
453
+ readonly description: "STAT SUMMARY_ROLLING ONLY: centered rolling-window width in x data units (must be greater than 0). Required when stat is \"summary_rolling\".";
454
+ readonly typeSummary: "number";
455
+ readonly required: false;
456
+ }, {
457
+ readonly name: "fun";
458
+ readonly description: "SUMMARY_BIN / SUMMARY_ROLLING center fun (mean/median/sum;) or MANUAL named transform (first|last|mean|median|min|max|sum;). Required when stat is \"manual\".";
459
+ readonly typeSummary: "\"first\" | \"last\" | \"mean\" | \"median\" | \"min\" | \"max\" | \"sum\"";
460
+ readonly required: false;
461
+ }, {
462
+ readonly name: "funMin";
463
+ readonly description: "STAT SUMMARY_BIN ONLY: lower bound summary (ymin).";
464
+ readonly typeSummary: "SummaryFun";
465
+ readonly required: false;
466
+ }, {
467
+ readonly name: "funMax";
468
+ readonly description: "STAT SUMMARY_BIN ONLY: upper bound summary (ymax).";
469
+ readonly typeSummary: "SummaryFun";
470
+ readonly required: false;
471
+ }, {
472
+ readonly name: "strokePaint";
473
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
474
+ readonly typeSummary: "GradientPaint";
475
+ readonly required: false;
476
+ }, {
477
+ readonly name: "glow";
478
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
479
+ readonly typeSummary: "GlowSpec";
480
+ readonly required: false;
481
+ }];
482
+ readonly aliasOf: "line";
483
+ };
484
+ readonly area: {
485
+ readonly name: "area";
486
+ readonly slug: "area";
487
+ readonly component: "GeomArea";
488
+ readonly summary: "Area geometry: a filled region from the y baseline (zero) to the y value, connected in x order per group. Use for stacked composition-over-time charts. With stat align, series with different x samples share a common grid for stack/fill.";
489
+ readonly defaultStat: "identity";
490
+ readonly defaultPosition: "stack";
491
+ readonly allowedStats: readonly ["identity", "unique", "align"];
492
+ readonly allowedPositions: readonly ["stack", "fill", "dodge", "identity"];
493
+ readonly paramsType: "AreaParams";
494
+ readonly params: readonly [{
495
+ readonly name: "alpha";
496
+ readonly description: "Area fill opacity. Must be between 0 and 1 (inclusive). Default 1.";
497
+ readonly typeSummary: "number";
498
+ readonly required: false;
499
+ }, {
500
+ readonly name: "fillPaint";
501
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
502
+ readonly typeSummary: "GradientPaint";
503
+ readonly required: false;
504
+ }, {
505
+ readonly name: "glow";
506
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
507
+ readonly typeSummary: "GlowSpec";
508
+ readonly required: false;
509
+ }];
510
+ };
511
+ readonly rule: {
512
+ readonly name: "rule";
513
+ readonly slug: "rule";
514
+ readonly component: "GeomRule";
515
+ readonly summary: "Rule geometry: reference lines spanning the panel. Two forms: (1) annotation — set params.xintercept and/or params.yintercept to fixed data values and map neither aes.x nor aes.y; (2) data-driven — map exactly one of aes.x (vertical rules) or aes.y (horizontal rules) to a field. Never mix the forms in one layer.";
516
+ readonly defaultStat: "identity";
517
+ readonly defaultPosition: "identity";
518
+ readonly allowedStats: readonly ["identity", "unique"];
519
+ readonly allowedPositions: readonly ["identity"];
520
+ readonly paramsType: "RuleParams";
521
+ readonly params: readonly [{
522
+ readonly name: "xintercept";
523
+ readonly description: "ANNOTATION FORM ONLY: draw a vertical rule at each of these fixed x positions. Mutually exclusive with mapping aes.x/aes.y on this layer.";
524
+ readonly typeSummary: "RuleIntercept";
525
+ readonly required: false;
526
+ }, {
527
+ readonly name: "yintercept";
528
+ readonly description: "ANNOTATION FORM ONLY: draw a horizontal rule at each of these fixed y positions. Mutually exclusive with mapping aes.x/aes.y on this layer.";
529
+ readonly typeSummary: "RuleIntercept";
530
+ readonly required: false;
531
+ }, {
532
+ readonly name: "alpha";
533
+ readonly description: "Rule opacity. Must be between 0 and 1 (inclusive). Default 1.";
534
+ readonly typeSummary: "number";
535
+ readonly required: false;
536
+ }, {
537
+ readonly name: "linewidth";
538
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
539
+ readonly typeSummary: "number";
540
+ readonly required: false;
541
+ }, {
542
+ readonly name: "strokePaint";
543
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
544
+ readonly typeSummary: "GradientPaint";
545
+ readonly required: false;
546
+ }, {
547
+ readonly name: "glow";
548
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
549
+ readonly typeSummary: "GlowSpec";
550
+ readonly required: false;
551
+ }];
552
+ };
553
+ readonly hline: {
554
+ readonly name: "hline";
555
+ readonly slug: "hline";
556
+ readonly component: "GeomHline";
557
+ readonly summary: "Horizontal reference-line alias. Canonicalized by normalize() to a rule layer. Annotation form: set params.yintercept. Data-driven form: map aes.y (inherited plot x is dropped so the one-axis rule contract holds).";
558
+ readonly defaultStat: "identity";
559
+ readonly defaultPosition: "identity";
560
+ readonly allowedStats: readonly ["identity"];
561
+ readonly allowedPositions: readonly ["identity"];
562
+ readonly paramsType: "HlineParams";
563
+ readonly params: readonly [{
564
+ readonly name: "yintercept";
565
+ readonly description: "ANNOTATION FORM ONLY: draw a horizontal rule at each of these fixed y positions. Mutually exclusive with mapping aes.y on this layer.";
566
+ readonly typeSummary: "RuleIntercept";
567
+ readonly required: false;
568
+ }, {
569
+ readonly name: "alpha";
570
+ readonly description: "Rule opacity. Must be between 0 and 1 (inclusive). Default 1.";
571
+ readonly typeSummary: "number";
572
+ readonly required: false;
573
+ }, {
574
+ readonly name: "linewidth";
575
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
576
+ readonly typeSummary: "number";
577
+ readonly required: false;
578
+ }, {
579
+ readonly name: "strokePaint";
580
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
581
+ readonly typeSummary: "GradientPaint";
582
+ readonly required: false;
583
+ }, {
584
+ readonly name: "glow";
585
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
586
+ readonly typeSummary: "GlowSpec";
587
+ readonly required: false;
588
+ }];
589
+ readonly aliasOf: "rule";
590
+ };
591
+ readonly vline: {
592
+ readonly name: "vline";
593
+ readonly slug: "vline";
594
+ readonly component: "GeomVline";
595
+ readonly summary: "Vertical reference-line alias. Canonicalized by normalize() to a rule layer. Annotation form: set params.xintercept. Data-driven form: map aes.x (inherited plot y is dropped so the one-axis rule contract holds).";
596
+ readonly defaultStat: "identity";
597
+ readonly defaultPosition: "identity";
598
+ readonly allowedStats: readonly ["identity"];
599
+ readonly allowedPositions: readonly ["identity"];
600
+ readonly paramsType: "VlineParams";
601
+ readonly params: readonly [{
602
+ readonly name: "xintercept";
603
+ readonly description: "ANNOTATION FORM ONLY: draw a vertical rule at each of these fixed x positions. Mutually exclusive with mapping aes.x on this layer.";
604
+ readonly typeSummary: "RuleIntercept";
605
+ readonly required: false;
606
+ }, {
607
+ readonly name: "alpha";
608
+ readonly description: "Rule opacity. Must be between 0 and 1 (inclusive). Default 1.";
609
+ readonly typeSummary: "number";
610
+ readonly required: false;
611
+ }, {
612
+ readonly name: "linewidth";
613
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
614
+ readonly typeSummary: "number";
615
+ readonly required: false;
616
+ }, {
617
+ readonly name: "strokePaint";
618
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
619
+ readonly typeSummary: "GradientPaint";
620
+ readonly required: false;
621
+ }, {
622
+ readonly name: "glow";
623
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
624
+ readonly typeSummary: "GlowSpec";
625
+ readonly required: false;
626
+ }];
627
+ readonly aliasOf: "rule";
628
+ };
629
+ readonly text: {
630
+ readonly name: "text";
631
+ readonly slug: "text";
632
+ readonly component: "GeomText";
633
+ readonly summary: "Text geometry: one label per data row at (x, y). No collision detection — labels draw exactly where placed. Requires x, y, and label channels.";
634
+ readonly defaultStat: "identity";
635
+ readonly defaultPosition: "identity";
636
+ readonly allowedStats: readonly ["identity", "unique"];
637
+ readonly allowedPositions: readonly ["identity", "nudge"];
638
+ readonly paramsType: "TextParams";
639
+ readonly params: readonly [{
640
+ readonly name: "alpha";
641
+ readonly description: "Text opacity. Must be between 0 and 1 (inclusive). Default 1.";
642
+ readonly typeSummary: "number";
643
+ readonly required: false;
644
+ }, {
645
+ readonly name: "size";
646
+ readonly description: "Font size in px. Must be greater than 0. Default 11.";
647
+ readonly typeSummary: "number";
648
+ readonly required: false;
649
+ }, {
650
+ readonly name: "anchor";
651
+ readonly description: "Horizontal text anchor relative to the (x, y) position: \"start\", \"middle\" (default), or \"end\".";
652
+ readonly typeSummary: "\"start\" | \"middle\" | \"end\"";
653
+ readonly required: false;
654
+ }, {
655
+ readonly name: "dx";
656
+ readonly description: "Horizontal offset in px applied after positioning. Default 0.";
657
+ readonly typeSummary: "number";
658
+ readonly required: false;
659
+ }, {
660
+ readonly name: "dy";
661
+ readonly description: "Vertical offset in px applied after positioning (positive = down). Default 0.";
662
+ readonly typeSummary: "number";
663
+ readonly required: false;
664
+ }];
665
+ };
666
+ readonly label: {
667
+ readonly name: "label";
668
+ readonly slug: "label";
669
+ readonly component: "GeomLabel";
670
+ readonly summary: "Label geometry: text with a rounded rectangular background box. Requires x, y, and label channels. No collision detection.";
671
+ readonly defaultStat: "identity";
672
+ readonly defaultPosition: "identity";
673
+ readonly allowedStats: readonly ["identity"];
674
+ readonly allowedPositions: readonly ["identity", "nudge"];
675
+ readonly paramsType: "LabelParams";
676
+ readonly params: readonly [{
677
+ readonly name: "alpha";
678
+ readonly description: "Label opacity. Must be between 0 and 1 (inclusive). Default 1.";
679
+ readonly typeSummary: "number";
680
+ readonly required: false;
681
+ }, {
682
+ readonly name: "size";
683
+ readonly description: "Font size in px. Must be greater than 0. Default 11.";
684
+ readonly typeSummary: "number";
685
+ readonly required: false;
686
+ }, {
687
+ readonly name: "anchor";
688
+ readonly description: "Horizontal text anchor relative to the (x, y) position: \"start\", \"middle\" (default), or \"end\".";
689
+ readonly typeSummary: "\"start\" | \"middle\" | \"end\"";
690
+ readonly required: false;
691
+ }, {
692
+ readonly name: "dx";
693
+ readonly description: "Horizontal offset in px applied after positioning. Default 0.";
694
+ readonly typeSummary: "number";
695
+ readonly required: false;
696
+ }, {
697
+ readonly name: "dy";
698
+ readonly description: "Vertical offset in px applied after positioning (positive = down). Default 0.";
699
+ readonly typeSummary: "number";
700
+ readonly required: false;
701
+ }, {
702
+ readonly name: "padding";
703
+ readonly description: "Uniform box padding around the text in px. Default 3.";
704
+ readonly typeSummary: "number";
705
+ readonly required: false;
706
+ }, {
707
+ readonly name: "radius";
708
+ readonly description: "Corner radius of the background box in px. Default 3.";
709
+ readonly typeSummary: "number";
710
+ readonly required: false;
711
+ }, {
712
+ readonly name: "linewidth";
713
+ readonly description: "Box outline stroke width in px. Default 0.5.";
714
+ readonly typeSummary: "number";
715
+ readonly required: false;
716
+ }];
717
+ };
718
+ readonly smooth: {
719
+ readonly name: "smooth";
720
+ readonly slug: "smooth";
721
+ readonly component: "GeomSmooth";
722
+ readonly summary: "Smooth geometry: a fitted trend line (with an optional confidence ribbon) over an x/y scatter, one fit per group. Use to reveal trends.";
723
+ readonly defaultStat: "smooth";
724
+ readonly defaultPosition: "identity";
725
+ readonly allowedStats: readonly ["smooth"];
726
+ readonly allowedPositions: readonly ["identity"];
727
+ readonly paramsType: "SmoothParams";
728
+ readonly params: readonly [{
729
+ readonly name: "method";
730
+ readonly description: "Smoothing method: \"lm\" (least-squares line) or \"loess\" (local polynomial regression). Omit to infer: loess for fewer than 1000 rows, lm above (an advisory reports the choice).";
731
+ readonly typeSummary: "\"lm\" | \"loess\"";
732
+ readonly required: false;
733
+ }, {
734
+ readonly name: "se";
735
+ readonly description: "Draw the confidence-interval ribbon around the fit. Default true.";
736
+ readonly typeSummary: "boolean";
737
+ readonly required: false;
738
+ }, {
739
+ readonly name: "level";
740
+ readonly description: "Confidence level of the ribbon, strictly between 0 and 1. Default 0.95.";
741
+ readonly typeSummary: "number";
742
+ readonly required: false;
743
+ }, {
744
+ readonly name: "span";
745
+ readonly description: "LOESS ONLY: fraction of points in each local neighborhood, greater than 0 and at most 1. Default 0.75. Smaller = wigglier.";
746
+ readonly typeSummary: "number";
747
+ readonly required: false;
748
+ }, {
749
+ readonly name: "degree";
750
+ readonly description: "LOESS ONLY: degree of the local polynomial, 1 or 2. Default 2 (the R default).";
751
+ readonly typeSummary: "1 | 2";
752
+ readonly required: false;
753
+ }, {
754
+ readonly name: "n";
755
+ readonly description: "Number of evaluation points along x (an integer between 2 and 5000). Default 80.";
756
+ readonly typeSummary: "number";
757
+ readonly required: false;
758
+ }, {
759
+ readonly name: "linewidth";
760
+ readonly description: "Stroke width of the fitted line in px. Must be greater than 0. Default 1.";
761
+ readonly typeSummary: "number";
762
+ readonly required: false;
763
+ }, {
764
+ readonly name: "alpha";
765
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
766
+ readonly typeSummary: "number";
767
+ readonly required: false;
768
+ }, {
769
+ readonly name: "strokePaint";
770
+ readonly description: "Within-mark gradient stroke paint for the fitted line (not a data scale).";
771
+ readonly typeSummary: "GradientPaint";
772
+ readonly required: false;
773
+ }, {
774
+ readonly name: "glow";
775
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
776
+ readonly typeSummary: "GlowSpec";
777
+ readonly required: false;
778
+ }];
779
+ };
780
+ readonly quantile: {
781
+ readonly name: "quantile";
782
+ readonly slug: "quantile";
783
+ readonly component: "GeomQuantile";
784
+ readonly summary: "Quantile geometry: linear quantile regression lines (y ~ x) at one or more conditional quantiles of y, one line per quantile per group.";
785
+ readonly defaultStat: "quantile";
786
+ readonly defaultPosition: "identity";
787
+ readonly allowedStats: readonly ["quantile"];
788
+ readonly allowedPositions: readonly ["identity"];
789
+ readonly paramsType: "QuantileParams";
790
+ readonly params: readonly [{
791
+ readonly name: "quantiles";
792
+ readonly description: "Conditional quantiles of y to fit and draw. Each entry must be in (0, 1). Default [0.25, 0.5, 0.75].";
793
+ readonly typeSummary: "Array<number>";
794
+ readonly required: false;
795
+ }, {
796
+ readonly name: "n";
797
+ readonly description: "Number of evaluation points along x (integer 2–5000). Default 80. Linear fits need only endpoints; denser grids help nonlinear coords.";
798
+ readonly typeSummary: "number";
799
+ readonly required: false;
800
+ }, {
801
+ readonly name: "linewidth";
802
+ readonly description: "Stroke width of quantile lines in px. Must be greater than 0. Default 1.";
803
+ readonly typeSummary: "number";
804
+ readonly required: false;
805
+ }, {
806
+ readonly name: "alpha";
807
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
808
+ readonly typeSummary: "number";
809
+ readonly required: false;
810
+ }, {
811
+ readonly name: "strokePaint";
812
+ readonly description: "Within-mark gradient stroke paint for quantile lines (not a data scale).";
813
+ readonly typeSummary: "GradientPaint";
814
+ readonly required: false;
815
+ }, {
816
+ readonly name: "glow";
817
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
818
+ readonly typeSummary: "GlowSpec";
819
+ readonly required: false;
820
+ }];
821
+ };
822
+ readonly boxplot: {
823
+ readonly name: "boxplot";
824
+ readonly slug: "boxplot";
825
+ readonly component: "GeomBoxplot";
826
+ readonly summary: "Box-and-whisker geometry: one box per x category (per group) summarizing the y distribution — hinges at the quartiles, whiskers to the furthest points within coef × IQR, outliers drawn individually.";
827
+ readonly defaultStat: "boxplot";
828
+ readonly defaultPosition: "dodge";
829
+ readonly allowedStats: readonly ["boxplot"];
830
+ readonly allowedPositions: readonly ["dodge", "identity"];
831
+ readonly paramsType: "BoxplotParams";
832
+ readonly params: readonly [{
833
+ readonly name: "width";
834
+ readonly description: "Box width as a fraction of the band step. Must be greater than 0 and at most 1. Default 0.75. When omitted, width is also capped at 15% of the panel so few categories do not read as slabs.";
835
+ readonly typeSummary: "number";
836
+ readonly required: false;
837
+ }, {
838
+ readonly name: "coef";
839
+ readonly description: "Whisker length as a multiple of the IQR (values beyond it are outliers). Must be at least 0. Default 1.5.";
840
+ readonly typeSummary: "number";
841
+ readonly required: false;
842
+ }, {
843
+ readonly name: "linewidth";
844
+ readonly description: "Stroke width of the box, whiskers, and median line in px (the median draws at twice this). Must be greater than 0. Default 1.";
845
+ readonly typeSummary: "number";
846
+ readonly required: false;
847
+ }, {
848
+ readonly name: "outlierSize";
849
+ readonly description: "Outlier point radius in px. Must be greater than 0. Default 1.5.";
850
+ readonly typeSummary: "number";
851
+ readonly required: false;
852
+ }, {
853
+ readonly name: "alpha";
854
+ readonly description: "Layer opacity. Must be between 0 and 1 (inclusive). Default 1.";
855
+ readonly typeSummary: "number";
856
+ readonly required: false;
857
+ }];
858
+ };
859
+ readonly density: {
860
+ readonly name: "density";
861
+ readonly slug: "density";
862
+ readonly component: "GeomDensity";
863
+ readonly summary: "Density geometry: a smooth kernel density estimate of a continuous x variable, drawn as a filled area — a smoothed histogram alternative. One curve per group. Do NOT map aes.y — the density stat computes it.";
864
+ readonly defaultStat: "density";
865
+ readonly defaultPosition: "identity";
866
+ readonly allowedStats: readonly ["density"];
867
+ readonly allowedPositions: readonly ["identity"];
868
+ readonly paramsType: "DensityParams";
869
+ readonly params: readonly [{
870
+ readonly name: "bw";
871
+ readonly description: "Kernel bandwidth in data units (must be greater than 0). Omit for R's bw.nrd0 rule-of-thumb default.";
872
+ readonly typeSummary: "number";
873
+ readonly required: false;
874
+ }, {
875
+ readonly name: "adjust";
876
+ readonly description: "Bandwidth multiplier (must be greater than 0). Default 1. 0.5 = half the default bandwidth (wigglier), 2 = double (smoother).";
877
+ readonly typeSummary: "number";
878
+ readonly required: false;
879
+ }, {
880
+ readonly name: "n";
881
+ readonly description: "Number of grid points the density is evaluated at (an integer between 2 and 4096). Default 512 (the R default).";
882
+ readonly typeSummary: "number";
883
+ readonly required: false;
884
+ }, {
885
+ readonly name: "cut";
886
+ readonly description: "The grid extends cut * bandwidth beyond the data extremes (at least 0). Default 3 (the R default).";
887
+ readonly typeSummary: "number";
888
+ readonly required: false;
889
+ }, {
890
+ readonly name: "alpha";
891
+ readonly description: "Area fill opacity. Must be between 0 and 1 (inclusive). Default 1.";
892
+ readonly typeSummary: "number";
893
+ readonly required: false;
894
+ }, {
895
+ readonly name: "fillPaint";
896
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
897
+ readonly typeSummary: "GradientPaint";
898
+ readonly required: false;
899
+ }, {
900
+ readonly name: "glow";
901
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
902
+ readonly typeSummary: "GlowSpec";
903
+ readonly required: false;
904
+ }];
905
+ };
906
+ readonly errorbar: {
907
+ readonly name: "errorbar";
908
+ readonly slug: "errorbar";
909
+ readonly component: "GeomErrorbar";
910
+ readonly summary: "Errorbar geometry: a vertical range with caps at ymin and ymax, one per data row (identity stat) or per x group (summary stat).";
911
+ readonly defaultStat: "identity";
912
+ readonly defaultPosition: "identity";
913
+ readonly allowedStats: readonly ["identity", "unique", "summary", "summary_bin"];
914
+ readonly allowedPositions: readonly ["identity"];
915
+ readonly paramsType: "ErrorbarParams";
916
+ readonly params: readonly [{
917
+ readonly name: "width";
918
+ readonly description: "Cap width as a fraction of the band step. Must be greater than 0 and at most 1. Default 0.9.";
919
+ readonly typeSummary: "number";
920
+ readonly required: false;
921
+ }, {
922
+ readonly name: "linewidth";
923
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
924
+ readonly typeSummary: "number";
925
+ readonly required: false;
926
+ }, {
927
+ readonly name: "alpha";
928
+ readonly description: "Errorbar opacity. Must be between 0 and 1 (inclusive). Default 1.";
929
+ readonly typeSummary: "number";
930
+ readonly required: false;
931
+ }, {
932
+ readonly name: "fun";
933
+ readonly description: "STAT SUMMARY ONLY: the center summary of y per x group: \"mean\" (default), \"median\", or \"sum\". With \"mean\" and no funMin/funMax, the bounds default to mean ± standard error.";
934
+ readonly typeSummary: "\"mean\" | \"median\" | \"sum\"";
935
+ readonly required: false;
936
+ }, {
937
+ readonly name: "funMin";
938
+ readonly description: "STAT SUMMARY ONLY: summary function for the lower bound (ymin). Overrides the mean_se default.";
939
+ readonly typeSummary: "SummaryFun";
940
+ readonly required: false;
941
+ }, {
942
+ readonly name: "funMax";
943
+ readonly description: "STAT SUMMARY / SUMMARY_BIN: summary function for the upper bound (ymax). Overrides the mean_se default.";
944
+ readonly typeSummary: "SummaryFun";
945
+ readonly required: false;
946
+ }, {
947
+ readonly name: "bins";
948
+ readonly description: "STAT SUMMARY_BIN ONLY: number of bins (integer ≥ 1). Default 30 — advisory. Overridden by binwidth.";
949
+ readonly typeSummary: "number";
950
+ readonly required: false;
951
+ }, {
952
+ readonly name: "binwidth";
953
+ readonly description: "STAT SUMMARY_BIN ONLY: bin width in data units (must be greater than 0). Takes precedence over bins.";
954
+ readonly typeSummary: "number";
955
+ readonly required: false;
956
+ }, {
957
+ readonly name: "boundary";
958
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin EDGE with this x value. Mutually exclusive with center.";
959
+ readonly typeSummary: "number";
960
+ readonly required: false;
961
+ }, {
962
+ readonly name: "center";
963
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin CENTER with this x value. Mutually exclusive with boundary.";
964
+ readonly typeSummary: "number";
965
+ readonly required: false;
966
+ }, {
967
+ readonly name: "closed";
968
+ readonly description: "STAT SUMMARY_BIN ONLY: which edge of each bin is inclusive: \"right\" (default) or \"left\".";
969
+ readonly typeSummary: "\"right\" | \"left\"";
970
+ readonly required: false;
971
+ }];
972
+ };
973
+ readonly linerange: {
974
+ readonly name: "linerange";
975
+ readonly slug: "linerange";
976
+ readonly component: "GeomLinerange";
977
+ readonly summary: "Linerange geometry: a vertical stem from ymin to ymax without end caps.";
978
+ readonly defaultStat: "identity";
979
+ readonly defaultPosition: "identity";
980
+ readonly allowedStats: readonly ["identity", "summary"];
981
+ readonly allowedPositions: readonly ["identity"];
982
+ readonly paramsType: "LinerangeParams";
983
+ readonly params: readonly [{
984
+ readonly name: "width";
985
+ readonly description: "Cap width as a fraction of the band step. Must be greater than 0 and at most 1. Default 0.9.";
986
+ readonly typeSummary: "number";
987
+ readonly required: false;
988
+ }, {
989
+ readonly name: "linewidth";
990
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
991
+ readonly typeSummary: "number";
992
+ readonly required: false;
993
+ }, {
994
+ readonly name: "alpha";
995
+ readonly description: "Errorbar opacity. Must be between 0 and 1 (inclusive). Default 1.";
996
+ readonly typeSummary: "number";
997
+ readonly required: false;
998
+ }, {
999
+ readonly name: "fun";
1000
+ readonly description: "STAT SUMMARY ONLY: the center summary of y per x group: \"mean\" (default), \"median\", or \"sum\". With \"mean\" and no funMin/funMax, the bounds default to mean ± standard error.";
1001
+ readonly typeSummary: "\"mean\" | \"median\" | \"sum\"";
1002
+ readonly required: false;
1003
+ }, {
1004
+ readonly name: "funMin";
1005
+ readonly description: "STAT SUMMARY ONLY: summary function for the lower bound (ymin). Overrides the mean_se default.";
1006
+ readonly typeSummary: "SummaryFun";
1007
+ readonly required: false;
1008
+ }, {
1009
+ readonly name: "funMax";
1010
+ readonly description: "STAT SUMMARY / SUMMARY_BIN: summary function for the upper bound (ymax). Overrides the mean_se default.";
1011
+ readonly typeSummary: "SummaryFun";
1012
+ readonly required: false;
1013
+ }, {
1014
+ readonly name: "bins";
1015
+ readonly description: "STAT SUMMARY_BIN ONLY: number of bins (integer ≥ 1). Default 30 — advisory. Overridden by binwidth.";
1016
+ readonly typeSummary: "number";
1017
+ readonly required: false;
1018
+ }, {
1019
+ readonly name: "binwidth";
1020
+ readonly description: "STAT SUMMARY_BIN ONLY: bin width in data units (must be greater than 0). Takes precedence over bins.";
1021
+ readonly typeSummary: "number";
1022
+ readonly required: false;
1023
+ }, {
1024
+ readonly name: "boundary";
1025
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin EDGE with this x value. Mutually exclusive with center.";
1026
+ readonly typeSummary: "number";
1027
+ readonly required: false;
1028
+ }, {
1029
+ readonly name: "center";
1030
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin CENTER with this x value. Mutually exclusive with boundary.";
1031
+ readonly typeSummary: "number";
1032
+ readonly required: false;
1033
+ }, {
1034
+ readonly name: "closed";
1035
+ readonly description: "STAT SUMMARY_BIN ONLY: which edge of each bin is inclusive: \"right\" (default) or \"left\".";
1036
+ readonly typeSummary: "\"right\" | \"left\"";
1037
+ readonly required: false;
1038
+ }];
1039
+ };
1040
+ readonly pointrange: {
1041
+ readonly name: "pointrange";
1042
+ readonly slug: "pointrange";
1043
+ readonly component: "GeomPointrange";
1044
+ readonly summary: "Pointrange geometry: vertical stem from ymin to ymax plus a point at (x, y).";
1045
+ readonly defaultStat: "identity";
1046
+ readonly defaultPosition: "identity";
1047
+ readonly allowedStats: readonly ["identity", "summary"];
1048
+ readonly allowedPositions: readonly ["identity"];
1049
+ readonly paramsType: "PointrangeParams";
1050
+ readonly params: readonly [{
1051
+ readonly name: "linewidth";
1052
+ readonly description: "Stem stroke width in px. Must be greater than 0. Default 1.";
1053
+ readonly typeSummary: "number";
1054
+ readonly required: false;
1055
+ }, {
1056
+ readonly name: "alpha";
1057
+ readonly description: "Opacity for stem and point. Default 1.";
1058
+ readonly typeSummary: "number";
1059
+ readonly required: false;
1060
+ }, {
1061
+ readonly name: "size";
1062
+ readonly description: "Mid-point radius in px. Default 2.5.";
1063
+ readonly typeSummary: "number";
1064
+ readonly required: false;
1065
+ }, {
1066
+ readonly name: "shape";
1067
+ readonly description: "Mid-point shape. Default \"circle\".";
1068
+ readonly typeSummary: "\"circle\" | \"triangle\" | \"square\" | \"diamond\" | \"plus\" | \"cross\" | \"circle-open\"";
1069
+ readonly required: false;
1070
+ }, {
1071
+ readonly name: "fun";
1072
+ readonly description: "STAT SUMMARY ONLY: center summary of y per x group. Default \"mean\" (mean_se when funMin/funMax omitted).";
1073
+ readonly typeSummary: "\"mean\" | \"median\" | \"sum\"";
1074
+ readonly required: false;
1075
+ }, {
1076
+ readonly name: "funMin";
1077
+ readonly description: "STAT SUMMARY ONLY: summary function for the lower bound (ymin). Overrides the mean_se default.";
1078
+ readonly typeSummary: "SummaryFun";
1079
+ readonly required: false;
1080
+ }, {
1081
+ readonly name: "funMax";
1082
+ readonly description: "STAT SUMMARY ONLY: summary function for the upper bound (ymax). Overrides the mean_se default.";
1083
+ readonly typeSummary: "SummaryFun";
1084
+ readonly required: false;
1085
+ }];
1086
+ };
1087
+ readonly crossbar: {
1088
+ readonly name: "crossbar";
1089
+ readonly slug: "crossbar";
1090
+ readonly component: "GeomCrossbar";
1091
+ readonly summary: "Crossbar geometry: a vertical interval box from ymin to ymax with a mid horizontal line at y.";
1092
+ readonly defaultStat: "identity";
1093
+ readonly defaultPosition: "identity";
1094
+ readonly allowedStats: readonly ["identity", "summary"];
1095
+ readonly allowedPositions: readonly ["identity"];
1096
+ readonly paramsType: "CrossbarParams";
1097
+ readonly params: readonly [{
1098
+ readonly name: "width";
1099
+ readonly description: "Box width: band-step fraction (band x) or fraction of continuous resolution (same rule as errorbar caps). Default 0.9.";
1100
+ readonly typeSummary: "number";
1101
+ readonly required: false;
1102
+ }, {
1103
+ readonly name: "fatten";
1104
+ readonly description: "Multiplier for the mid-line linewidth relative to params.linewidth / aes.linewidth. Default 2.5.";
1105
+ readonly typeSummary: "number";
1106
+ readonly required: false;
1107
+ }, {
1108
+ readonly name: "linewidth";
1109
+ readonly description: "Outline and base mid-line stroke width in px. Default 1.";
1110
+ readonly typeSummary: "number";
1111
+ readonly required: false;
1112
+ }, {
1113
+ readonly name: "alpha";
1114
+ readonly description: "Box and mid-line opacity. Default 1.";
1115
+ readonly typeSummary: "number";
1116
+ readonly required: false;
1117
+ }, {
1118
+ readonly name: "fun";
1119
+ readonly description: "STAT SUMMARY ONLY: center summary. Default \"mean\".";
1120
+ readonly typeSummary: "\"mean\" | \"median\" | \"sum\"";
1121
+ readonly required: false;
1122
+ }, {
1123
+ readonly name: "funMin";
1124
+ readonly description: "STAT SUMMARY ONLY: summary function for the lower bound (ymin). Overrides the mean_se default.";
1125
+ readonly typeSummary: "SummaryFun";
1126
+ readonly required: false;
1127
+ }, {
1128
+ readonly name: "funMax";
1129
+ readonly description: "STAT SUMMARY ONLY: summary function for the upper bound (ymax). Overrides the mean_se default.";
1130
+ readonly typeSummary: "SummaryFun";
1131
+ readonly required: false;
1132
+ }];
1133
+ };
1134
+ readonly rect: {
1135
+ readonly name: "rect";
1136
+ readonly slug: "rect";
1137
+ readonly component: "GeomRect";
1138
+ readonly summary: "Rectangle geometry: one rectangle per data row from mapped xmin/xmax/ymin/ymax edges. Use for arbitrary shaded regions and time bands.";
1139
+ readonly defaultStat: "identity";
1140
+ readonly defaultPosition: "identity";
1141
+ readonly allowedStats: readonly ["identity", "unique"];
1142
+ readonly allowedPositions: readonly ["identity"];
1143
+ readonly paramsType: "RectParams";
1144
+ readonly params: readonly [{
1145
+ readonly name: "linewidth";
1146
+ readonly description: "Outline stroke width in px when color is set. Must be greater than 0.";
1147
+ readonly typeSummary: "number";
1148
+ readonly required: false;
1149
+ }, {
1150
+ readonly name: "alpha";
1151
+ readonly description: "Rectangle opacity. Must be between 0 and 1 (inclusive). Default 1.";
1152
+ readonly typeSummary: "number";
1153
+ readonly required: false;
1154
+ }, {
1155
+ readonly name: "fillPaint";
1156
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
1157
+ readonly typeSummary: "GradientPaint";
1158
+ readonly required: false;
1159
+ }, {
1160
+ readonly name: "strokePaint";
1161
+ readonly description: "Within-mark gradient outline paint (not a data scale). Requires a solid fallback.";
1162
+ readonly typeSummary: "GradientPaint";
1163
+ readonly required: false;
1164
+ }, {
1165
+ readonly name: "glow";
1166
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1167
+ readonly typeSummary: "GlowSpec";
1168
+ readonly required: false;
1169
+ }];
1170
+ };
1171
+ readonly tile: {
1172
+ readonly name: "tile";
1173
+ readonly slug: "tile";
1174
+ readonly component: "GeomTile";
1175
+ readonly summary: "Tile geometry: center-sized cells at (x, y) with optional width/height. Use for heatmaps and gridded categorical cells; supports stroke outlines.";
1176
+ readonly defaultStat: "identity";
1177
+ readonly defaultPosition: "identity";
1178
+ readonly allowedStats: readonly ["identity"];
1179
+ readonly allowedPositions: readonly ["identity"];
1180
+ readonly paramsType: "TileParams";
1181
+ readonly params: readonly [{
1182
+ readonly name: "width";
1183
+ readonly description: "Constant tile width in data units after position transform (band axes: fraction of the band step). Default: resolution of unique x centers (continuous) or 1 (band).";
1184
+ readonly typeSummary: "number";
1185
+ readonly required: false;
1186
+ }, {
1187
+ readonly name: "height";
1188
+ readonly description: "Constant tile height in data units after position transform (band axes: fraction of the band step). Default: resolution of unique y centers (continuous) or 1 (band).";
1189
+ readonly typeSummary: "number";
1190
+ readonly required: false;
1191
+ }, {
1192
+ readonly name: "linewidth";
1193
+ readonly description: "Outline stroke width in px when color is set. Must be greater than 0.";
1194
+ readonly typeSummary: "number";
1195
+ readonly required: false;
1196
+ }, {
1197
+ readonly name: "alpha";
1198
+ readonly description: "Tile opacity. Must be between 0 and 1 (inclusive). Default 1.";
1199
+ readonly typeSummary: "number";
1200
+ readonly required: false;
1201
+ }, {
1202
+ readonly name: "fillPaint";
1203
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
1204
+ readonly typeSummary: "GradientPaint";
1205
+ readonly required: false;
1206
+ }, {
1207
+ readonly name: "strokePaint";
1208
+ readonly description: "Within-mark gradient outline paint (not a data scale). Requires a solid fallback.";
1209
+ readonly typeSummary: "GradientPaint";
1210
+ readonly required: false;
1211
+ }, {
1212
+ readonly name: "glow";
1213
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1214
+ readonly typeSummary: "GlowSpec";
1215
+ readonly required: false;
1216
+ }];
1217
+ };
1218
+ readonly raster: {
1219
+ readonly name: "raster";
1220
+ readonly slug: "raster";
1221
+ readonly component: "GeomRaster";
1222
+ readonly summary: "Raster geometry: equal-cell grid at (x, y) with fill; optimized dense heatmaps without per-cell strokes. Irregular spacing warns and suggests geom tile.";
1223
+ readonly defaultStat: "identity";
1224
+ readonly defaultPosition: "identity";
1225
+ readonly allowedStats: readonly ["identity"];
1226
+ readonly allowedPositions: readonly ["identity"];
1227
+ readonly paramsType: "RasterParams";
1228
+ readonly params: readonly [{
1229
+ readonly name: "alpha";
1230
+ readonly description: "Raster opacity. Must be between 0 and 1 (inclusive). Default 1.";
1231
+ readonly typeSummary: "number";
1232
+ readonly required: false;
1233
+ }, {
1234
+ readonly name: "hjust";
1235
+ readonly description: "Horizontal justification of each cell over its x center (0–1). Default 0.5.";
1236
+ readonly typeSummary: "number";
1237
+ readonly required: false;
1238
+ }, {
1239
+ readonly name: "vjust";
1240
+ readonly description: "Vertical justification of each cell over its y center (0–1). Default 0.5.";
1241
+ readonly typeSummary: "number";
1242
+ readonly required: false;
1243
+ }, {
1244
+ readonly name: "interpolate";
1245
+ readonly description: "Interpolation between cells. Only false (nearest / no interpolation) is supported.";
1246
+ readonly typeSummary: "boolean";
1247
+ readonly required: false;
1248
+ }];
1249
+ };
1250
+ readonly ribbon: {
1251
+ readonly name: "ribbon";
1252
+ readonly slug: "ribbon";
1253
+ readonly component: "GeomRibbon";
1254
+ readonly summary: "Ribbon geometry: a filled interval between two varying boundaries along a running coordinate. Map x+ymin+ymax (x orientation) or y+xmin+xmax (y orientation). Not a zero-baseline area.";
1255
+ readonly defaultStat: "identity";
1256
+ readonly defaultPosition: "identity";
1257
+ readonly allowedStats: readonly ["identity", "unique"];
1258
+ readonly allowedPositions: readonly ["identity"];
1259
+ readonly paramsType: "RibbonParams";
1260
+ readonly params: readonly [{
1261
+ readonly name: "alpha";
1262
+ readonly description: "Ribbon fill opacity. Must be between 0 and 1 (inclusive). Default 1.";
1263
+ readonly typeSummary: "number";
1264
+ readonly required: false;
1265
+ }, {
1266
+ readonly name: "linewidth";
1267
+ readonly description: "Outline stroke width in px when an outline is drawn. Must be greater than 0. Default 1.";
1268
+ readonly typeSummary: "number";
1269
+ readonly required: false;
1270
+ }, {
1271
+ readonly name: "outline";
1272
+ readonly description: "Which edges receive an outline stroke: \"both\" (default — upper and lower), \"upper\", \"lower\", or \"full\" (closed outline of the band). Strokes appear when aes.color / a color constant is set, or when strokePaint is set.";
1273
+ readonly typeSummary: "\"both\" | \"upper\" | \"lower\" | \"full\"";
1274
+ readonly required: false;
1275
+ }, {
1276
+ readonly name: "orientation";
1277
+ readonly description: "Running-coordinate orientation: \"x\" (map x + ymin + ymax) or \"y\" (map y + xmin + xmax). When omitted, inferred from the complete channel contract; set explicitly if both contracts are mapped.";
1278
+ readonly typeSummary: "\"x\" | \"y\"";
1279
+ readonly required: false;
1280
+ }, {
1281
+ readonly name: "lineend";
1282
+ readonly description: "SVG stroke-linecap for outlines. Default \"butt\".";
1283
+ readonly typeSummary: "\"butt\" | \"round\" | \"square\"";
1284
+ readonly required: false;
1285
+ }, {
1286
+ readonly name: "linejoin";
1287
+ readonly description: "SVG stroke-linejoin for outlines. Default \"round\".";
1288
+ readonly typeSummary: "\"miter\" | \"round\" | \"bevel\"";
1289
+ readonly required: false;
1290
+ }, {
1291
+ readonly name: "fillPaint";
1292
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
1293
+ readonly typeSummary: "GradientPaint";
1294
+ readonly required: false;
1295
+ }, {
1296
+ readonly name: "strokePaint";
1297
+ readonly description: "Within-mark gradient outline paint (not a data scale). Requires a solid fallback.";
1298
+ readonly typeSummary: "GradientPaint";
1299
+ readonly required: false;
1300
+ }, {
1301
+ readonly name: "glow";
1302
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1303
+ readonly typeSummary: "GlowSpec";
1304
+ readonly required: false;
1305
+ }];
1306
+ };
1307
+ readonly segment: {
1308
+ readonly name: "segment";
1309
+ readonly slug: "segment";
1310
+ readonly component: "GeomSegment";
1311
+ readonly summary: "Segment geometry: one finite line per data row from (x, y) to (xend, yend). Unlike rule, endpoints are data-mapped and do not span the panel.";
1312
+ readonly defaultStat: "identity";
1313
+ readonly defaultPosition: "identity";
1314
+ readonly allowedStats: readonly ["identity", "unique"];
1315
+ readonly allowedPositions: readonly ["identity"];
1316
+ readonly paramsType: "SegmentParams";
1317
+ readonly params: readonly [{
1318
+ readonly name: "alpha";
1319
+ readonly description: "Segment opacity. Must be between 0 and 1 (inclusive). Default 1.";
1320
+ readonly typeSummary: "number";
1321
+ readonly required: false;
1322
+ }, {
1323
+ readonly name: "linewidth";
1324
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
1325
+ readonly typeSummary: "number";
1326
+ readonly required: false;
1327
+ }, {
1328
+ readonly name: "lineend";
1329
+ readonly description: "SVG stroke-linecap for segment ends. Default \"butt\".";
1330
+ readonly typeSummary: "\"butt\" | \"round\" | \"square\"";
1331
+ readonly required: false;
1332
+ }, {
1333
+ readonly name: "strokePaint";
1334
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
1335
+ readonly typeSummary: "GradientPaint";
1336
+ readonly required: false;
1337
+ }, {
1338
+ readonly name: "glow";
1339
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1340
+ readonly typeSummary: "GlowSpec";
1341
+ readonly required: false;
1342
+ }];
1343
+ };
1344
+ readonly count: {
1345
+ readonly name: "count";
1346
+ readonly slug: "count";
1347
+ readonly component: "GeomCount";
1348
+ readonly summary: "Count geometry: point marks at unique (x, y) with size scaled by after_stat n (stat sum). Use for overplotting density on discrete or rounded coordinates.";
1349
+ readonly defaultStat: "sum";
1350
+ readonly defaultPosition: "identity";
1351
+ readonly allowedStats: readonly ["sum"];
1352
+ readonly allowedPositions: readonly ["identity", "jitter", "nudge"];
1353
+ readonly paramsType: "PointParams";
1354
+ readonly params: readonly [{
1355
+ readonly name: "alpha";
1356
+ readonly description: "Point opacity. Must be between 0 and 1 (inclusive). Default 1.";
1357
+ readonly typeSummary: "number";
1358
+ readonly required: false;
1359
+ }, {
1360
+ readonly name: "size";
1361
+ readonly description: "Point radius in px. Must be greater than 0. Default 2.5.";
1362
+ readonly typeSummary: "number";
1363
+ readonly required: false;
1364
+ }, {
1365
+ readonly name: "shape";
1366
+ readonly description: "Point shape. One of \"circle\", \"triangle\", \"square\", \"diamond\", \"plus\", \"cross\", \"circle-open\". Default \"circle\".";
1367
+ readonly typeSummary: "\"circle\" | \"triangle\" | \"square\" | \"diamond\" | \"plus\" | \"cross\" | \"circle-open\"";
1368
+ readonly required: false;
1369
+ }, {
1370
+ readonly name: "bins";
1371
+ readonly description: "STAT SUMMARY_BIN ONLY: number of bins (integer ≥ 1). Default 30 — advisory. Overridden by binwidth.";
1372
+ readonly typeSummary: "number";
1373
+ readonly required: false;
1374
+ }, {
1375
+ readonly name: "binwidth";
1376
+ readonly description: "STAT SUMMARY_BIN ONLY: bin width in data units (must be greater than 0). Takes precedence over bins.";
1377
+ readonly typeSummary: "number";
1378
+ readonly required: false;
1379
+ }, {
1380
+ readonly name: "boundary";
1381
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin EDGE with this x value. Mutually exclusive with center.";
1382
+ readonly typeSummary: "number";
1383
+ readonly required: false;
1384
+ }, {
1385
+ readonly name: "center";
1386
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin CENTER with this x value. Mutually exclusive with boundary.";
1387
+ readonly typeSummary: "number";
1388
+ readonly required: false;
1389
+ }, {
1390
+ readonly name: "closed";
1391
+ readonly description: "STAT SUMMARY_BIN ONLY: which edge of each bin is inclusive: \"right\" (default) or \"left\".";
1392
+ readonly typeSummary: "\"right\" | \"left\"";
1393
+ readonly required: false;
1394
+ }, {
1395
+ readonly name: "window";
1396
+ readonly description: "STAT SUMMARY_ROLLING ONLY: centered rolling-window width in x data units (must be greater than 0). Required when stat is \"summary_rolling\".";
1397
+ readonly typeSummary: "number";
1398
+ readonly required: false;
1399
+ }, {
1400
+ readonly name: "fun";
1401
+ readonly description: "SUMMARY_BIN / SUMMARY_ROLLING center fun (mean/median/sum;) or MANUAL named transform (first|last|mean|median|min|max|sum;). Required when stat is \"manual\".";
1402
+ readonly typeSummary: "\"first\" | \"last\" | \"mean\" | \"median\" | \"min\" | \"max\" | \"sum\"";
1403
+ readonly required: false;
1404
+ }, {
1405
+ readonly name: "funMin";
1406
+ readonly description: "STAT SUMMARY_BIN ONLY: lower bound summary (ymin).";
1407
+ readonly typeSummary: "SummaryFun";
1408
+ readonly required: false;
1409
+ }, {
1410
+ readonly name: "funMax";
1411
+ readonly description: "STAT SUMMARY_BIN ONLY: upper bound summary (ymax).";
1412
+ readonly typeSummary: "SummaryFun";
1413
+ readonly required: false;
1414
+ }];
1415
+ };
1416
+ readonly violin: {
1417
+ readonly name: "violin";
1418
+ readonly slug: "violin";
1419
+ readonly component: "GeomViolin";
1420
+ readonly summary: "Violin geometry: mirrored kernel density of continuous y at each discrete x (stat ydensity). One polygon per x×group. Default position dodge.";
1421
+ readonly defaultStat: "ydensity";
1422
+ readonly defaultPosition: "dodge";
1423
+ readonly allowedStats: readonly ["ydensity"];
1424
+ readonly allowedPositions: readonly ["dodge", "identity"];
1425
+ readonly paramsType: "ViolinParams";
1426
+ readonly params: readonly [{
1427
+ readonly name: "bw";
1428
+ readonly description: "Kernel bandwidth in data units (must be greater than 0). Omit for R's bw.nrd0 rule-of-thumb default.";
1429
+ readonly typeSummary: "number";
1430
+ readonly required: false;
1431
+ }, {
1432
+ readonly name: "adjust";
1433
+ readonly description: "Bandwidth multiplier (must be greater than 0). Default 1.";
1434
+ readonly typeSummary: "number";
1435
+ readonly required: false;
1436
+ }, {
1437
+ readonly name: "n";
1438
+ readonly description: "Number of density grid points (2–4096). Default 512.";
1439
+ readonly typeSummary: "number";
1440
+ readonly required: false;
1441
+ }, {
1442
+ readonly name: "trim";
1443
+ readonly description: "When true (default), trim the density to the data range; when false, extend cut·bw tails like density().";
1444
+ readonly typeSummary: "boolean";
1445
+ readonly required: false;
1446
+ }, {
1447
+ readonly name: "scale";
1448
+ readonly description: "Relative violin max-width scaling: \"area\" (default), \"count\", or \"width\" (equal max width).";
1449
+ readonly typeSummary: "\"area\" | \"count\" | \"width\"";
1450
+ readonly required: false;
1451
+ }, {
1452
+ readonly name: "width";
1453
+ readonly description: "Max violin width as a fraction of the discrete x band (like boxplot). Default 0.75.";
1454
+ readonly typeSummary: "number";
1455
+ readonly required: false;
1456
+ }, {
1457
+ readonly name: "alpha";
1458
+ readonly description: "Fill opacity. Must be between 0 and 1 (inclusive). Default 1.";
1459
+ readonly typeSummary: "number";
1460
+ readonly required: false;
1461
+ }, {
1462
+ readonly name: "linewidth";
1463
+ readonly description: "Outline stroke width in px. Must be greater than 0. Default 0.5.";
1464
+ readonly typeSummary: "number";
1465
+ readonly required: false;
1466
+ }, {
1467
+ readonly name: "fillPaint";
1468
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
1469
+ readonly typeSummary: "GradientPaint";
1470
+ readonly required: false;
1471
+ }, {
1472
+ readonly name: "strokePaint";
1473
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
1474
+ readonly typeSummary: "GradientPaint";
1475
+ readonly required: false;
1476
+ }, {
1477
+ readonly name: "glow";
1478
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1479
+ readonly typeSummary: "GlowSpec";
1480
+ readonly required: false;
1481
+ }];
1482
+ };
1483
+ readonly function: {
1484
+ readonly name: "function";
1485
+ readonly slug: "function";
1486
+ readonly component: "GeomFunction";
1487
+ readonly summary: "Function geometry: evaluate a named portable function y = f(x) on a grid and draw a path. Requires params.fun; domain from params.xlim, mapped x, or peer layers.";
1488
+ readonly defaultStat: "function";
1489
+ readonly defaultPosition: "identity";
1490
+ readonly allowedStats: readonly ["function"];
1491
+ readonly allowedPositions: readonly ["identity"];
1492
+ readonly paramsType: "FunctionParams";
1493
+ readonly params: readonly [{
1494
+ readonly name: "fun";
1495
+ readonly description: "Required named function from the portable registry.";
1496
+ readonly typeSummary: "FunctionRegistryName";
1497
+ readonly required: true;
1498
+ }, {
1499
+ readonly name: "n";
1500
+ readonly description: "Number of evaluation grid points (2–10000). Default 101.";
1501
+ readonly typeSummary: "number";
1502
+ readonly required: false;
1503
+ }, {
1504
+ readonly name: "xlim";
1505
+ readonly description: "Evaluation domain [min, max] (min < max). When omitted, uses continuous aes.x extent or peer-layer x domain.";
1506
+ readonly typeSummary: "Array<number>";
1507
+ readonly required: false;
1508
+ }, {
1509
+ readonly name: "args";
1510
+ readonly description: "Optional named arguments for the registry function (e.g. mean and sd for dnorm). Keys and values must be portable JSON.";
1511
+ readonly typeSummary: "FunctionArgs";
1512
+ readonly required: false;
1513
+ }, {
1514
+ readonly name: "alpha";
1515
+ readonly description: "Path opacity. Must be between 0 and 1 (inclusive). Default 1.";
1516
+ readonly typeSummary: "number";
1517
+ readonly required: false;
1518
+ }, {
1519
+ readonly name: "linewidth";
1520
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.5.";
1521
+ readonly typeSummary: "number";
1522
+ readonly required: false;
1523
+ }, {
1524
+ readonly name: "strokePaint";
1525
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
1526
+ readonly typeSummary: "GradientPaint";
1527
+ readonly required: false;
1528
+ }, {
1529
+ readonly name: "glow";
1530
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1531
+ readonly typeSummary: "GlowSpec";
1532
+ readonly required: false;
1533
+ }];
1534
+ };
1535
+ readonly polygon: {
1536
+ readonly name: "polygon";
1537
+ readonly slug: "polygon";
1538
+ readonly component: "GeomPolygon";
1539
+ readonly summary: "Polygon geometry: closed filled paths from (x, y) vertices in data/row order within each group. Groups form separate polygons. No x-sort (unlike line/area). Holes/subgroup omitted in v1.";
1540
+ readonly defaultStat: "identity";
1541
+ readonly defaultPosition: "identity";
1542
+ readonly allowedStats: readonly ["identity"];
1543
+ readonly allowedPositions: readonly ["identity"];
1544
+ readonly paramsType: "PolygonParams";
1545
+ readonly params: readonly [{
1546
+ readonly name: "alpha";
1547
+ readonly description: "Polygon fill/stroke opacity. Must be between 0 and 1 (inclusive). Default 1.";
1548
+ readonly typeSummary: "number";
1549
+ readonly required: false;
1550
+ }, {
1551
+ readonly name: "linewidth";
1552
+ readonly description: "Outline stroke width in px. Must be greater than 0. Default matches line (1.5).";
1553
+ readonly typeSummary: "number";
1554
+ readonly required: false;
1555
+ }, {
1556
+ readonly name: "fillPaint";
1557
+ readonly description: "Within-mark gradient fill paint (not a data scale). Requires a solid fallback.";
1558
+ readonly typeSummary: "GradientPaint";
1559
+ readonly required: false;
1560
+ }, {
1561
+ readonly name: "strokePaint";
1562
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
1563
+ readonly typeSummary: "GradientPaint";
1564
+ readonly required: false;
1565
+ }, {
1566
+ readonly name: "glow";
1567
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1568
+ readonly typeSummary: "GlowSpec";
1569
+ readonly required: false;
1570
+ }];
1571
+ };
1572
+ readonly hex: {
1573
+ readonly name: "hex";
1574
+ readonly slug: "hex";
1575
+ readonly component: "GeomHex";
1576
+ readonly summary: "Hexagonal bin heatmap: partitions continuous x×y into a hexagonal lattice and maps fill to bin count by default.";
1577
+ readonly defaultStat: "bin_hex";
1578
+ readonly defaultPosition: "identity";
1579
+ readonly allowedStats: readonly ["bin_hex"];
1580
+ readonly allowedPositions: readonly ["identity"];
1581
+ readonly paramsType: "HexParams";
1582
+ readonly params: readonly [{
1583
+ readonly name: "bins";
1584
+ readonly description: "Approximate number of hex bins across the x range. Default 30.";
1585
+ readonly typeSummary: "number";
1586
+ readonly required: false;
1587
+ }, {
1588
+ readonly name: "drop";
1589
+ readonly description: "When true (default), omit zero-count hexes from the output.";
1590
+ readonly typeSummary: "boolean";
1591
+ readonly required: false;
1592
+ }, {
1593
+ readonly name: "alpha";
1594
+ readonly description: "Hex opacity. Must be between 0 and 1 (inclusive). Default 1.";
1595
+ readonly typeSummary: "number";
1596
+ readonly required: false;
1597
+ }, {
1598
+ readonly name: "linewidth";
1599
+ readonly description: "Outline stroke width in px when color is set. Default 0 (no outline).";
1600
+ readonly typeSummary: "number";
1601
+ readonly required: false;
1602
+ }];
1603
+ };
1604
+ readonly bin_2d: {
1605
+ readonly name: "bin_2d";
1606
+ readonly slug: "bin_2d";
1607
+ readonly component: "GeomBin2d";
1608
+ readonly summary: "2D rectangular bin heatmap: partitions continuous x×y into a grid and maps fill to bin count by default. Empty bins are dropped unless params.drop is false.";
1609
+ readonly defaultStat: "bin_2d";
1610
+ readonly defaultPosition: "identity";
1611
+ readonly allowedStats: readonly ["bin_2d"];
1612
+ readonly allowedPositions: readonly ["identity"];
1613
+ readonly paramsType: "Bin2dParams";
1614
+ readonly params: readonly [{
1615
+ readonly name: "bins";
1616
+ readonly description: "Number of bins on each axis. Default 30. Applies equally to x and y in v1.";
1617
+ readonly typeSummary: "number";
1618
+ readonly required: false;
1619
+ }, {
1620
+ readonly name: "binwidth";
1621
+ readonly description: "Shared bin width in data units for both axes (overrides bins). Prefer when the scale units are meaningful.";
1622
+ readonly typeSummary: "number";
1623
+ readonly required: false;
1624
+ }, {
1625
+ readonly name: "drop";
1626
+ readonly description: "When true (default), omit zero-count bins from the output.";
1627
+ readonly typeSummary: "boolean";
1628
+ readonly required: false;
1629
+ }, {
1630
+ readonly name: "alpha";
1631
+ readonly description: "Cell opacity. Must be between 0 and 1 (inclusive). Default 1.";
1632
+ readonly typeSummary: "number";
1633
+ readonly required: false;
1634
+ }, {
1635
+ readonly name: "linewidth";
1636
+ readonly description: "Outline stroke width in px when color is set. Must be greater than 0.";
1637
+ readonly typeSummary: "number";
1638
+ readonly required: false;
1639
+ }];
1640
+ };
1641
+ readonly abline: {
1642
+ readonly name: "abline";
1643
+ readonly slug: "abline";
1644
+ readonly component: "GeomAbline";
1645
+ readonly summary: "Abline geometry: one infinite reference line y = intercept + slope · x, clipped to the panel. Annotation form: fixed slope/intercept in params; does not inherit plot aes.";
1646
+ readonly defaultStat: "identity";
1647
+ readonly defaultPosition: "identity";
1648
+ readonly allowedStats: readonly ["identity"];
1649
+ readonly allowedPositions: readonly ["identity"];
1650
+ readonly paramsType: "AblineParams";
1651
+ readonly params: readonly [{
1652
+ readonly name: "slope";
1653
+ readonly description: "Line slope (rise/run). Default 1 (identity line when intercept is 0).";
1654
+ readonly typeSummary: "number";
1655
+ readonly required: false;
1656
+ }, {
1657
+ readonly name: "intercept";
1658
+ readonly description: "Y-intercept in data units. Default 0.";
1659
+ readonly typeSummary: "number";
1660
+ readonly required: false;
1661
+ }, {
1662
+ readonly name: "alpha";
1663
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
1664
+ readonly typeSummary: "number";
1665
+ readonly required: false;
1666
+ }, {
1667
+ readonly name: "linewidth";
1668
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
1669
+ readonly typeSummary: "number";
1670
+ readonly required: false;
1671
+ }];
1672
+ };
1673
+ readonly curve: {
1674
+ readonly name: "curve";
1675
+ readonly slug: "curve";
1676
+ readonly component: "GeomCurve";
1677
+ readonly summary: "Curve geometry: one curved connector per row from (x, y) to (xend, yend). Tessellated as a quadratic Bezier (curvature/angle/ncp). Requires field-mapped x, y, xend, and yend.";
1678
+ readonly defaultStat: "identity";
1679
+ readonly defaultPosition: "identity";
1680
+ readonly allowedStats: readonly ["identity"];
1681
+ readonly allowedPositions: readonly ["identity"];
1682
+ readonly paramsType: "CurveParams";
1683
+ readonly params: readonly [{
1684
+ readonly name: "curvature";
1685
+ readonly description: "Amount of bend away from the straight chord. 0 is a straight line; default 0.5. Positive bows to the right of the start→end direction when angle is 90.";
1686
+ readonly typeSummary: "number";
1687
+ readonly required: false;
1688
+ }, {
1689
+ readonly name: "angle";
1690
+ readonly description: "Control-point direction relative to the chord, in degrees. default 90 (perpendicular).";
1691
+ readonly typeSummary: "number";
1692
+ readonly required: false;
1693
+ }, {
1694
+ readonly name: "ncp";
1695
+ readonly description: "Smoothness density knob. Maps to tessellation sample count = max(8, ncp×8); not multi-control xspline. Default 5.";
1696
+ readonly typeSummary: "number";
1697
+ readonly required: false;
1698
+ }, {
1699
+ readonly name: "alpha";
1700
+ readonly description: "Curve opacity. Must be between 0 and 1 (inclusive). Default 1.";
1701
+ readonly typeSummary: "number";
1702
+ readonly required: false;
1703
+ }, {
1704
+ readonly name: "linewidth";
1705
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
1706
+ readonly typeSummary: "number";
1707
+ readonly required: false;
1708
+ }, {
1709
+ readonly name: "lineend";
1710
+ readonly description: "SVG stroke-linecap for curve ends. Default \"butt\".";
1711
+ readonly typeSummary: "\"butt\" | \"round\" | \"square\"";
1712
+ readonly required: false;
1713
+ }, {
1714
+ readonly name: "strokePaint";
1715
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
1716
+ readonly typeSummary: "GradientPaint";
1717
+ readonly required: false;
1718
+ }, {
1719
+ readonly name: "glow";
1720
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1721
+ readonly typeSummary: "GlowSpec";
1722
+ readonly required: false;
1723
+ }];
1724
+ };
1725
+ readonly contour: {
1726
+ readonly name: "contour";
1727
+ readonly slug: "contour";
1728
+ readonly component: "GeomContour";
1729
+ readonly summary: "Contour geometry: isolines of a continuous z surface over a regular x×y grid. v1 draws open path polylines only (not filled bands).";
1730
+ readonly defaultStat: "contour";
1731
+ readonly defaultPosition: "identity";
1732
+ readonly allowedStats: readonly ["contour"];
1733
+ readonly allowedPositions: readonly ["identity"];
1734
+ readonly paramsType: "ContourParams";
1735
+ readonly params: readonly [{
1736
+ readonly name: "bins";
1737
+ readonly description: "Number of evenly spaced contour levels from min(z) to max(z) inclusive (integer ≥ 1). Default 10. Overridden by breaks or binwidth.";
1738
+ readonly typeSummary: "number";
1739
+ readonly required: false;
1740
+ }, {
1741
+ readonly name: "binwidth";
1742
+ readonly description: "Contour level step in z units (must be greater than 0). Takes precedence over bins; overridden by breaks.";
1743
+ readonly typeSummary: "number";
1744
+ readonly required: false;
1745
+ }, {
1746
+ readonly name: "breaks";
1747
+ readonly description: "Explicit contour levels (finite numbers). Overrides bins and binwidth when non-empty.";
1748
+ readonly typeSummary: "Array<number>";
1749
+ readonly required: false;
1750
+ }, {
1751
+ readonly name: "linewidth";
1752
+ readonly description: "Stroke width of contour lines in px. Must be greater than 0. Default 1.";
1753
+ readonly typeSummary: "number";
1754
+ readonly required: false;
1755
+ }, {
1756
+ readonly name: "alpha";
1757
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
1758
+ readonly typeSummary: "number";
1759
+ readonly required: false;
1760
+ }];
1761
+ };
1762
+ readonly density_2d: {
1763
+ readonly name: "density_2d";
1764
+ readonly slug: "density_2d";
1765
+ readonly component: "GeomDensity2d";
1766
+ readonly summary: "2D density geometry: bivariate KDE isolines over continuous x and y. Open path contours.";
1767
+ readonly defaultStat: "density_2d";
1768
+ readonly defaultPosition: "identity";
1769
+ readonly allowedStats: readonly ["density_2d"];
1770
+ readonly allowedPositions: readonly ["identity"];
1771
+ readonly paramsType: "Density2dParams";
1772
+ readonly params: readonly [{
1773
+ readonly name: "h";
1774
+ readonly description: "Kernel bandwidth: one positive number for both axes, or [hx, hy]. Omit for MASS bandwidth.nrd per axis (then kde2d h/4 scaling).";
1775
+ readonly typeSummary: "number | Array<number>";
1776
+ readonly required: false;
1777
+ }, {
1778
+ readonly name: "adjust";
1779
+ readonly description: "Bandwidth multiplier (must be greater than 0). Default 1.";
1780
+ readonly typeSummary: "number";
1781
+ readonly required: false;
1782
+ }, {
1783
+ readonly name: "n";
1784
+ readonly description: "Grid resolution per axis for the KDE surface (integer 10–200). Default 100.";
1785
+ readonly typeSummary: "number";
1786
+ readonly required: false;
1787
+ }, {
1788
+ readonly name: "bins";
1789
+ readonly description: "Number of contour levels of the density surface (integer ≥ 1). Default 10. Overridden by breaks.";
1790
+ readonly typeSummary: "number";
1791
+ readonly required: false;
1792
+ }, {
1793
+ readonly name: "binwidth";
1794
+ readonly description: "Contour level step in density units. Overridden by breaks.";
1795
+ readonly typeSummary: "number";
1796
+ readonly required: false;
1797
+ }, {
1798
+ readonly name: "breaks";
1799
+ readonly description: "Explicit density contour levels. Overrides bins and binwidth.";
1800
+ readonly typeSummary: "Array<number>";
1801
+ readonly required: false;
1802
+ }, {
1803
+ readonly name: "linewidth";
1804
+ readonly description: "Stroke width of density contours in px. Must be greater than 0. Default 1.";
1805
+ readonly typeSummary: "number";
1806
+ readonly required: false;
1807
+ }, {
1808
+ readonly name: "alpha";
1809
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
1810
+ readonly typeSummary: "number";
1811
+ readonly required: false;
1812
+ }];
1813
+ };
1814
+ readonly density_2d_filled: {
1815
+ readonly name: "density_2d_filled";
1816
+ readonly slug: "density_2d_filled";
1817
+ readonly component: "GeomDensity2dFilled";
1818
+ readonly summary: "2D density filled bands: bivariate KDE closed isoline rings filled by density level. Open rings dropped. Defaults fill to after_stat(level).";
1819
+ readonly defaultStat: "density_2d_filled";
1820
+ readonly defaultPosition: "identity";
1821
+ readonly allowedStats: readonly ["density_2d_filled"];
1822
+ readonly allowedPositions: readonly ["identity"];
1823
+ readonly paramsType: "Density2dParams";
1824
+ readonly params: readonly [{
1825
+ readonly name: "h";
1826
+ readonly description: "Kernel bandwidth: one positive number for both axes, or [hx, hy]. Omit for MASS bandwidth.nrd per axis (then kde2d h/4 scaling).";
1827
+ readonly typeSummary: "number | Array<number>";
1828
+ readonly required: false;
1829
+ }, {
1830
+ readonly name: "adjust";
1831
+ readonly description: "Bandwidth multiplier (must be greater than 0). Default 1.";
1832
+ readonly typeSummary: "number";
1833
+ readonly required: false;
1834
+ }, {
1835
+ readonly name: "n";
1836
+ readonly description: "Grid resolution per axis for the KDE surface (integer 10–200). Default 100.";
1837
+ readonly typeSummary: "number";
1838
+ readonly required: false;
1839
+ }, {
1840
+ readonly name: "bins";
1841
+ readonly description: "Number of contour levels of the density surface (integer ≥ 1). Default 10. Overridden by breaks.";
1842
+ readonly typeSummary: "number";
1843
+ readonly required: false;
1844
+ }, {
1845
+ readonly name: "binwidth";
1846
+ readonly description: "Contour level step in density units. Overridden by breaks.";
1847
+ readonly typeSummary: "number";
1848
+ readonly required: false;
1849
+ }, {
1850
+ readonly name: "breaks";
1851
+ readonly description: "Explicit density contour levels. Overrides bins and binwidth.";
1852
+ readonly typeSummary: "Array<number>";
1853
+ readonly required: false;
1854
+ }, {
1855
+ readonly name: "linewidth";
1856
+ readonly description: "Stroke width of density contours in px. Must be greater than 0. Default 1.";
1857
+ readonly typeSummary: "number";
1858
+ readonly required: false;
1859
+ }, {
1860
+ readonly name: "alpha";
1861
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
1862
+ readonly typeSummary: "number";
1863
+ readonly required: false;
1864
+ }];
1865
+ };
1866
+ readonly dotplot: {
1867
+ readonly name: "dotplot";
1868
+ readonly slug: "dotplot";
1869
+ readonly component: "GeomDotplot";
1870
+ readonly summary: "Dotplot geometry: stacked dots along a continuous x axis (histodot subset). Do not map aes.y — the bindot stat computes stack positions.";
1871
+ readonly defaultStat: "bindot";
1872
+ readonly defaultPosition: "identity";
1873
+ readonly allowedStats: readonly ["bindot"];
1874
+ readonly allowedPositions: readonly ["identity"];
1875
+ readonly paramsType: "DotplotParams";
1876
+ readonly params: readonly [{
1877
+ readonly name: "bins";
1878
+ readonly description: "Number of bins (integer ≥ 1). Default 30 — advisory when neither bins nor binwidth is set. Overridden by binwidth.";
1879
+ readonly typeSummary: "number";
1880
+ readonly required: false;
1881
+ }, {
1882
+ readonly name: "binwidth";
1883
+ readonly description: "Histodot bin width in data units (must be greater than 0). Takes precedence over bins. Also drives default point diameter via the x scale.";
1884
+ readonly typeSummary: "number";
1885
+ readonly required: false;
1886
+ }, {
1887
+ readonly name: "boundary";
1888
+ readonly description: "Align a bin edge to this value (mutually exclusive with center).";
1889
+ readonly typeSummary: "number";
1890
+ readonly required: false;
1891
+ }, {
1892
+ readonly name: "center";
1893
+ readonly description: "Align a bin center to this value (mutually exclusive with boundary).";
1894
+ readonly typeSummary: "number";
1895
+ readonly required: false;
1896
+ }, {
1897
+ readonly name: "closed";
1898
+ readonly description: "Which side of each bin is closed: \"right\" (default, (lo, hi]) or \"left\" ([lo, hi)).";
1899
+ readonly typeSummary: "\"right\" | \"left\"";
1900
+ readonly required: false;
1901
+ }, {
1902
+ readonly name: "stackdir";
1903
+ readonly description: "Stack direction: \"up\" (default), \"down\", \"center\", or \"centerwhole\" (integer-aligned center).";
1904
+ readonly typeSummary: "\"up\" | \"down\" | \"center\" | \"centerwhole\"";
1905
+ readonly required: false;
1906
+ }, {
1907
+ readonly name: "stackratio";
1908
+ readonly description: "Relative spacing between stacked dots (must be greater than 0). Default 1.";
1909
+ readonly typeSummary: "number";
1910
+ readonly required: false;
1911
+ }, {
1912
+ readonly name: "dotsize";
1913
+ readonly description: "Multiplier on diameter derived from binwidth × x-scale (must be greater than 0). Default 1. Ignored when params.size is set.";
1914
+ readonly typeSummary: "number";
1915
+ readonly required: false;
1916
+ }, {
1917
+ readonly name: "size";
1918
+ readonly description: "Point radius in px (must be greater than 0). When set, overrides binwidth-derived sizing.";
1919
+ readonly typeSummary: "number";
1920
+ readonly required: false;
1921
+ }, {
1922
+ readonly name: "alpha";
1923
+ readonly description: "Point opacity. Must be between 0 and 1 (inclusive). Default 1.";
1924
+ readonly typeSummary: "number";
1925
+ readonly required: false;
1926
+ }, {
1927
+ readonly name: "shape";
1928
+ readonly description: "Point shape. One of \"circle\", \"triangle\", \"square\", \"diamond\", \"plus\", \"cross\", \"circle-open\". Default \"circle\".";
1929
+ readonly typeSummary: "\"circle\" | \"triangle\" | \"square\" | \"diamond\" | \"plus\" | \"cross\" | \"circle-open\"";
1930
+ readonly required: false;
1931
+ }];
1932
+ };
1933
+ readonly map: {
1934
+ readonly name: "map";
1935
+ readonly slug: "map";
1936
+ readonly component: "GeomMap";
1937
+ readonly summary: "Map geometry: join fortified region borders to value rows via aes.map_id and params.map. Renders closed filled paths per region.";
1938
+ readonly defaultStat: "identity";
1939
+ readonly defaultPosition: "identity";
1940
+ readonly allowedStats: readonly ["identity"];
1941
+ readonly allowedPositions: readonly ["identity"];
1942
+ readonly paramsType: "MapParams";
1943
+ readonly params: readonly [{
1944
+ readonly name: "map";
1945
+ readonly description: "Fortified map coordinates ({ values }, { columns }, or { name } against spec.datasets). Must include long+lat or x+y, plus a region id column.";
1946
+ readonly typeSummary: "DataRef";
1947
+ readonly required: true;
1948
+ }, {
1949
+ readonly name: "mapId";
1950
+ readonly description: "Join column name in the map data (matched to aes.map_id). Default: \"region\", then \"id\".";
1951
+ readonly typeSummary: "string";
1952
+ readonly required: false;
1953
+ }, {
1954
+ readonly name: "alpha";
1955
+ readonly description: "Region fill opacity. Must be between 0 and 1 (inclusive). Default 1.";
1956
+ readonly typeSummary: "number";
1957
+ readonly required: false;
1958
+ }, {
1959
+ readonly name: "linewidth";
1960
+ readonly description: "Region outline stroke width in px. Must be greater than 0. Default 1.5.";
1961
+ readonly typeSummary: "number";
1962
+ readonly required: false;
1963
+ }, {
1964
+ readonly name: "fillPaint";
1965
+ readonly description: "Within-mark gradient fill paint (not a data scale).";
1966
+ readonly typeSummary: "GradientPaint";
1967
+ readonly required: false;
1968
+ }, {
1969
+ readonly name: "strokePaint";
1970
+ readonly description: "Within-mark gradient stroke paint (not a data scale).";
1971
+ readonly typeSummary: "GradientPaint";
1972
+ readonly required: false;
1973
+ }, {
1974
+ readonly name: "glow";
1975
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
1976
+ readonly typeSummary: "GlowSpec";
1977
+ readonly required: false;
1978
+ }];
1979
+ };
1980
+ readonly sf: {
1981
+ readonly name: "sf";
1982
+ readonly slug: "sf";
1983
+ readonly component: "GeomSf";
1984
+ readonly summary: "Simple-features geometry: already-projected GeoJSON Geometry JSON strings in a data column. Point/line/polygon families (incl. GeometryCollection of one family) with even-odd holes; use coord_sf for fixed-aspect (CRS reproject deferred).";
1985
+ readonly defaultStat: "sf";
1986
+ readonly defaultPosition: "identity";
1987
+ readonly allowedStats: readonly ["sf"];
1988
+ readonly allowedPositions: readonly ["identity"];
1989
+ readonly paramsType: "SfParams";
1990
+ readonly params: readonly [{
1991
+ readonly name: "geometry";
1992
+ readonly description: "Name of the data column holding GeoJSON Geometry JSON strings. Default \"geometry\". Already-projected coordinates only.";
1993
+ readonly typeSummary: "string";
1994
+ readonly required: false;
1995
+ }, {
1996
+ readonly name: "alpha";
1997
+ readonly description: "Mark opacity. Must be between 0 and 1 (inclusive). Default 1.";
1998
+ readonly typeSummary: "number";
1999
+ readonly required: false;
2000
+ }, {
2001
+ readonly name: "linewidth";
2002
+ readonly description: "Stroke width in px for lines/polygon outlines. Must be greater than 0.";
2003
+ readonly typeSummary: "number";
2004
+ readonly required: false;
2005
+ }, {
2006
+ readonly name: "size";
2007
+ readonly description: "Point radius in px when geometries are Point/MultiPoint.";
2008
+ readonly typeSummary: "number";
2009
+ readonly required: false;
2010
+ }, {
2011
+ readonly name: "fillPaint";
2012
+ readonly description: "Within-mark gradient fill paint (polygon family; not a data scale).";
2013
+ readonly typeSummary: "GradientPaint";
2014
+ readonly required: false;
2015
+ }, {
2016
+ readonly name: "strokePaint";
2017
+ readonly description: "Within-mark gradient stroke paint (not a data scale).";
2018
+ readonly typeSummary: "GradientPaint";
2019
+ readonly required: false;
2020
+ }, {
2021
+ readonly name: "glow";
2022
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
2023
+ readonly typeSummary: "GlowSpec";
2024
+ readonly required: false;
2025
+ }];
2026
+ };
2027
+ readonly sf_text: {
2028
+ readonly name: "sf_text";
2029
+ readonly slug: "sf_text";
2030
+ readonly component: "GeomSfText";
2031
+ readonly summary: "Simple-features text labels: places aes.label at representative geometry points (Multi* → one label per part; stat_sf_coordinates).";
2032
+ readonly defaultStat: "sf_coordinates";
2033
+ readonly defaultPosition: "identity";
2034
+ readonly allowedStats: readonly ["sf_coordinates"];
2035
+ readonly allowedPositions: readonly ["identity"];
2036
+ readonly paramsType: "SfTextParams";
2037
+ readonly params: readonly [{
2038
+ readonly name: "geometry";
2039
+ readonly description: "Name of the data column holding GeoJSON Geometry JSON strings. Default \"geometry\".";
2040
+ readonly typeSummary: "string";
2041
+ readonly required: false;
2042
+ }, {
2043
+ readonly name: "alpha";
2044
+ readonly description: "Text opacity. Must be between 0 and 1 (inclusive). Default 1.";
2045
+ readonly typeSummary: "number";
2046
+ readonly required: false;
2047
+ }, {
2048
+ readonly name: "size";
2049
+ readonly description: "Font size in px. Must be greater than 0. Default 11.";
2050
+ readonly typeSummary: "number";
2051
+ readonly required: false;
2052
+ }, {
2053
+ readonly name: "anchor";
2054
+ readonly description: "Horizontal text anchor relative to the representative point: \"start\", \"middle\" (default), or \"end\".";
2055
+ readonly typeSummary: "\"start\" | \"middle\" | \"end\"";
2056
+ readonly required: false;
2057
+ }, {
2058
+ readonly name: "dx";
2059
+ readonly description: "Horizontal offset in px applied after positioning. Default 0.";
2060
+ readonly typeSummary: "number";
2061
+ readonly required: false;
2062
+ }, {
2063
+ readonly name: "dy";
2064
+ readonly description: "Vertical offset in px applied after positioning (positive = down). Default 0.";
2065
+ readonly typeSummary: "number";
2066
+ readonly required: false;
2067
+ }];
2068
+ };
2069
+ readonly sf_label: {
2070
+ readonly name: "sf_label";
2071
+ readonly slug: "sf_label";
2072
+ readonly component: "GeomSfLabel";
2073
+ readonly summary: "Simple-features labels with background boxes: places aes.label at representative geometry points with a measured rounded rect (Multi* → one label per part). color=ink+box stroke; fill=box background.";
2074
+ readonly defaultStat: "sf_coordinates";
2075
+ readonly defaultPosition: "identity";
2076
+ readonly allowedStats: readonly ["sf_coordinates"];
2077
+ readonly allowedPositions: readonly ["identity"];
2078
+ readonly paramsType: "SfLabelParams";
2079
+ readonly params: readonly [{
2080
+ readonly name: "geometry";
2081
+ readonly description: "Name of the data column holding GeoJSON Geometry JSON strings. Default \"geometry\".";
2082
+ readonly typeSummary: "string";
2083
+ readonly required: false;
2084
+ }, {
2085
+ readonly name: "alpha";
2086
+ readonly description: "Label opacity. Must be between 0 and 1 (inclusive). Default 1.";
2087
+ readonly typeSummary: "number";
2088
+ readonly required: false;
2089
+ }, {
2090
+ readonly name: "size";
2091
+ readonly description: "Font size in px. Must be greater than 0. Default 11.";
2092
+ readonly typeSummary: "number";
2093
+ readonly required: false;
2094
+ }, {
2095
+ readonly name: "anchor";
2096
+ readonly description: "Horizontal text anchor relative to the representative point: \"start\", \"middle\" (default), or \"end\".";
2097
+ readonly typeSummary: "\"start\" | \"middle\" | \"end\"";
2098
+ readonly required: false;
2099
+ }, {
2100
+ readonly name: "dx";
2101
+ readonly description: "Horizontal offset in px applied after positioning. Default 0.";
2102
+ readonly typeSummary: "number";
2103
+ readonly required: false;
2104
+ }, {
2105
+ readonly name: "dy";
2106
+ readonly description: "Vertical offset in px applied after positioning (positive = down). Default 0.";
2107
+ readonly typeSummary: "number";
2108
+ readonly required: false;
2109
+ }, {
2110
+ readonly name: "padding";
2111
+ readonly description: "Box padding around the text in px. Default 3.";
2112
+ readonly typeSummary: "number";
2113
+ readonly required: false;
2114
+ }, {
2115
+ readonly name: "radius";
2116
+ readonly description: "Box corner radius in px. Default 3.";
2117
+ readonly typeSummary: "number";
2118
+ readonly required: false;
2119
+ }, {
2120
+ readonly name: "linewidth";
2121
+ readonly description: "Box stroke width in px. Default 0.5.";
2122
+ readonly typeSummary: "number";
2123
+ readonly required: false;
2124
+ }];
2125
+ };
2126
+ readonly blank: {
2127
+ readonly name: "blank";
2128
+ readonly slug: "blank";
2129
+ readonly component: "GeomBlank";
2130
+ readonly summary: "Blank geometry: contributes mapped aesthetics to scale training and layout without drawing marks or hit targets. No channels are required; whatever is mapped trains its scale.";
2131
+ readonly defaultStat: "identity";
2132
+ readonly defaultPosition: "identity";
2133
+ readonly allowedStats: readonly ["identity"];
2134
+ readonly allowedPositions: readonly ["identity"];
2135
+ readonly paramsType: "BlankParams";
2136
+ readonly params: readonly [];
2137
+ };
2138
+ readonly jitter: {
2139
+ readonly name: "jitter";
2140
+ readonly slug: "jitter";
2141
+ readonly component: "GeomJitter";
2142
+ readonly summary: "Jittered point alias. Canonicalized by normalize() to a point layer with position jitter. Configure jitter amount via positionParams.width/height/seed.";
2143
+ readonly defaultStat: "identity";
2144
+ readonly defaultPosition: "jitter";
2145
+ readonly allowedStats: readonly ["identity"];
2146
+ readonly allowedPositions: readonly ["jitter"];
2147
+ readonly paramsType: "PointParams";
2148
+ readonly params: readonly [{
2149
+ readonly name: "alpha";
2150
+ readonly description: "Point opacity. Must be between 0 and 1 (inclusive). Default 1.";
2151
+ readonly typeSummary: "number";
2152
+ readonly required: false;
2153
+ }, {
2154
+ readonly name: "size";
2155
+ readonly description: "Point radius in px. Must be greater than 0. Default 2.5.";
2156
+ readonly typeSummary: "number";
2157
+ readonly required: false;
2158
+ }, {
2159
+ readonly name: "shape";
2160
+ readonly description: "Point shape. One of \"circle\", \"triangle\", \"square\", \"diamond\", \"plus\", \"cross\", \"circle-open\". Default \"circle\".";
2161
+ readonly typeSummary: "\"circle\" | \"triangle\" | \"square\" | \"diamond\" | \"plus\" | \"cross\" | \"circle-open\"";
2162
+ readonly required: false;
2163
+ }, {
2164
+ readonly name: "bins";
2165
+ readonly description: "STAT SUMMARY_BIN ONLY: number of bins (integer ≥ 1). Default 30 — advisory. Overridden by binwidth.";
2166
+ readonly typeSummary: "number";
2167
+ readonly required: false;
2168
+ }, {
2169
+ readonly name: "binwidth";
2170
+ readonly description: "STAT SUMMARY_BIN ONLY: bin width in data units (must be greater than 0). Takes precedence over bins.";
2171
+ readonly typeSummary: "number";
2172
+ readonly required: false;
2173
+ }, {
2174
+ readonly name: "boundary";
2175
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin EDGE with this x value. Mutually exclusive with center.";
2176
+ readonly typeSummary: "number";
2177
+ readonly required: false;
2178
+ }, {
2179
+ readonly name: "center";
2180
+ readonly description: "STAT SUMMARY_BIN ONLY: align a bin CENTER with this x value. Mutually exclusive with boundary.";
2181
+ readonly typeSummary: "number";
2182
+ readonly required: false;
2183
+ }, {
2184
+ readonly name: "closed";
2185
+ readonly description: "STAT SUMMARY_BIN ONLY: which edge of each bin is inclusive: \"right\" (default) or \"left\".";
2186
+ readonly typeSummary: "\"right\" | \"left\"";
2187
+ readonly required: false;
2188
+ }, {
2189
+ readonly name: "window";
2190
+ readonly description: "STAT SUMMARY_ROLLING ONLY: centered rolling-window width in x data units (must be greater than 0). Required when stat is \"summary_rolling\".";
2191
+ readonly typeSummary: "number";
2192
+ readonly required: false;
2193
+ }, {
2194
+ readonly name: "fun";
2195
+ readonly description: "SUMMARY_BIN / SUMMARY_ROLLING center fun (mean/median/sum;) or MANUAL named transform (first|last|mean|median|min|max|sum;). Required when stat is \"manual\".";
2196
+ readonly typeSummary: "\"first\" | \"last\" | \"mean\" | \"median\" | \"min\" | \"max\" | \"sum\"";
2197
+ readonly required: false;
2198
+ }, {
2199
+ readonly name: "funMin";
2200
+ readonly description: "STAT SUMMARY_BIN ONLY: lower bound summary (ymin).";
2201
+ readonly typeSummary: "SummaryFun";
2202
+ readonly required: false;
2203
+ }, {
2204
+ readonly name: "funMax";
2205
+ readonly description: "STAT SUMMARY_BIN ONLY: upper bound summary (ymax).";
2206
+ readonly typeSummary: "SummaryFun";
2207
+ readonly required: false;
2208
+ }];
2209
+ readonly aliasOf: "point";
2210
+ };
2211
+ readonly spoke: {
2212
+ readonly name: "spoke";
2213
+ readonly slug: "spoke";
2214
+ readonly component: "GeomSpoke";
2215
+ readonly summary: "Spoke geometry: one finite segment per row from (x, y) in direction angle (radians) with length radius. Endpoints are derived as xend = x + radius·cos(angle), yend = y + radius·sin(angle) in data space, then transformed like x/y. Requires continuous x and y.";
2216
+ readonly defaultStat: "identity";
2217
+ readonly defaultPosition: "identity";
2218
+ readonly allowedStats: readonly ["identity"];
2219
+ readonly allowedPositions: readonly ["identity"];
2220
+ readonly paramsType: "SpokeParams";
2221
+ readonly params: readonly [{
2222
+ readonly name: "angle";
2223
+ readonly description: "Constant spoke direction in radians when aes.angle is not mapped. 0 = +x, π/2 = +y.";
2224
+ readonly typeSummary: "number";
2225
+ readonly required: false;
2226
+ }, {
2227
+ readonly name: "radius";
2228
+ readonly description: "Constant spoke length in data units when aes.radius is not mapped. Must be greater than 0.";
2229
+ readonly typeSummary: "number";
2230
+ readonly required: false;
2231
+ }, {
2232
+ readonly name: "alpha";
2233
+ readonly description: "Spoke opacity. Must be between 0 and 1 (inclusive). Default 1.";
2234
+ readonly typeSummary: "number";
2235
+ readonly required: false;
2236
+ }, {
2237
+ readonly name: "linewidth";
2238
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
2239
+ readonly typeSummary: "number";
2240
+ readonly required: false;
2241
+ }, {
2242
+ readonly name: "lineend";
2243
+ readonly description: "SVG stroke-linecap for spoke ends. Default \"butt\".";
2244
+ readonly typeSummary: "\"butt\" | \"round\" | \"square\"";
2245
+ readonly required: false;
2246
+ }, {
2247
+ readonly name: "strokePaint";
2248
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
2249
+ readonly typeSummary: "GradientPaint";
2250
+ readonly required: false;
2251
+ }, {
2252
+ readonly name: "glow";
2253
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
2254
+ readonly typeSummary: "GlowSpec";
2255
+ readonly required: false;
2256
+ }];
2257
+ };
2258
+ readonly rug: {
2259
+ readonly name: "rug";
2260
+ readonly slug: "rug";
2261
+ readonly component: "GeomRug";
2262
+ readonly summary: "Rug geometry: short ticks along panel edges for each observation. Map aes.x for bottom/top sides and/or aes.y for left/right sides.";
2263
+ readonly defaultStat: "identity";
2264
+ readonly defaultPosition: "identity";
2265
+ readonly allowedStats: readonly ["identity"];
2266
+ readonly allowedPositions: readonly ["identity"];
2267
+ readonly paramsType: "RugParams";
2268
+ readonly params: readonly [{
2269
+ readonly name: "sides";
2270
+ readonly description: "Which panel edges get ticks: any non-empty combination of \"b\" (bottom), \"l\" (left), \"t\" (top), \"r\" (right). Default \"bl\". Duplicates are treated as a set. Sides b/t require aes.x; sides l/r require aes.y.";
2271
+ readonly typeSummary: "string";
2272
+ readonly required: false;
2273
+ }, {
2274
+ readonly name: "length";
2275
+ readonly description: "Tick length as a fraction of the panel size along the tick axis (panel-fraction npc analogue of unit(0.03, \"npc\")). Default 0.03.";
2276
+ readonly typeSummary: "number";
2277
+ readonly required: false;
2278
+ }, {
2279
+ readonly name: "alpha";
2280
+ readonly description: "Tick opacity. Must be between 0 and 1 (inclusive). Default 1.";
2281
+ readonly typeSummary: "number";
2282
+ readonly required: false;
2283
+ }, {
2284
+ readonly name: "linewidth";
2285
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
2286
+ readonly typeSummary: "number";
2287
+ readonly required: false;
2288
+ }];
2289
+ };
2290
+ readonly step: {
2291
+ readonly name: "step";
2292
+ readonly slug: "step";
2293
+ readonly component: "GeomStep";
2294
+ readonly summary: "Step-line geometry: connect points with hv/vh/mid stairs. Same channels as line; ordered by x within groups.";
2295
+ readonly defaultStat: "identity";
2296
+ readonly defaultPosition: "identity";
2297
+ readonly allowedStats: readonly ["identity"];
2298
+ readonly allowedPositions: readonly ["identity"];
2299
+ readonly paramsType: "StepParams";
2300
+ readonly params: readonly [{
2301
+ readonly name: "alpha";
2302
+ readonly description: "Step-line opacity. Must be between 0 and 1 (inclusive). Default 1.";
2303
+ readonly typeSummary: "number";
2304
+ readonly required: false;
2305
+ }, {
2306
+ readonly name: "linewidth";
2307
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.5.";
2308
+ readonly typeSummary: "number";
2309
+ readonly required: false;
2310
+ }, {
2311
+ readonly name: "direction";
2312
+ readonly description: "Step corner placement: \"hv\" horizontal then vertical (default), \"vh\" vertical then horizontal, \"mid\" change at the midpoint between x positions.";
2313
+ readonly typeSummary: "\"hv\" | \"vh\" | \"mid\"";
2314
+ readonly required: false;
2315
+ }, {
2316
+ readonly name: "strokePaint";
2317
+ readonly description: "Within-mark gradient stroke paint (not a data scale). Requires a solid fallback.";
2318
+ readonly typeSummary: "GradientPaint";
2319
+ readonly required: false;
2320
+ }, {
2321
+ readonly name: "glow";
2322
+ readonly description: "Bounded within-mark glow treatment (not theme decoration).";
2323
+ readonly typeSummary: "GlowSpec";
2324
+ readonly required: false;
2325
+ }];
2326
+ };
2327
+ readonly qq: {
2328
+ readonly name: "qq";
2329
+ readonly slug: "qq";
2330
+ readonly component: "GeomQq";
2331
+ readonly summary: "Q–Q scatter: sample quantiles vs theoretical normal quantiles. Requires aes.sample.";
2332
+ readonly defaultStat: "qq";
2333
+ readonly defaultPosition: "identity";
2334
+ readonly allowedStats: readonly ["qq"];
2335
+ readonly allowedPositions: readonly ["identity"];
2336
+ readonly paramsType: "QqParams";
2337
+ readonly params: readonly [{
2338
+ readonly name: "alpha";
2339
+ readonly description: "Point opacity. Must be between 0 and 1 (inclusive). Default 1.";
2340
+ readonly typeSummary: "number";
2341
+ readonly required: false;
2342
+ }, {
2343
+ readonly name: "size";
2344
+ readonly description: "Point size in px. Must be greater than 0.";
2345
+ readonly typeSummary: "number";
2346
+ readonly required: false;
2347
+ }, {
2348
+ readonly name: "shape";
2349
+ readonly description: "Point shape. One of \"circle\", \"triangle\", \"square\", \"diamond\", \"plus\", \"cross\", \"circle-open\". Default \"circle\".";
2350
+ readonly typeSummary: "\"circle\" | \"triangle\" | \"square\" | \"diamond\" | \"plus\" | \"cross\" | \"circle-open\"";
2351
+ readonly required: false;
2352
+ }];
2353
+ };
2354
+ readonly qq_line: {
2355
+ readonly name: "qq_line";
2356
+ readonly slug: "qq_line";
2357
+ readonly component: "GeomQqLine";
2358
+ readonly summary: "Q–Q reference line: line through sample/theoretical quartile match, spanning the theoretical range of the Q–Q cloud. Requires aes.sample.";
2359
+ readonly defaultStat: "qq_line";
2360
+ readonly defaultPosition: "identity";
2361
+ readonly allowedStats: readonly ["qq_line"];
2362
+ readonly allowedPositions: readonly ["identity"];
2363
+ readonly paramsType: "QqLineParams";
2364
+ readonly params: readonly [{
2365
+ readonly name: "alpha";
2366
+ readonly description: "Line opacity. Must be between 0 and 1 (inclusive). Default 1.";
2367
+ readonly typeSummary: "number";
2368
+ readonly required: false;
2369
+ }, {
2370
+ readonly name: "linewidth";
2371
+ readonly description: "Stroke width in px. Must be greater than 0. Default 1.";
2372
+ readonly typeSummary: "number";
2373
+ readonly required: false;
2374
+ }];
2375
+ };
2376
+ };
2377
+ //# sourceMappingURL=geom-reference-data.d.ts.map