@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
package/src/index.ts ADDED
@@ -0,0 +1,400 @@
1
+ // @ggts-sh/spec — spec types, schemas, normalize(), validate(), portability,
2
+ // fluent builder. Zero d3, zero DOM. TypeBox is the schema source of truth
3
+ // (decision 0004): the same definitions provide the TS types (Static<>), the
4
+ // runtime validator, and the published JSON Schema artifact (schema/v0.json).
5
+ //
6
+ // Lifecycle (Hadley lesson 13; meanings in CONTRIBUTING.md): every export
7
+ // carries a lifecycle tag, collected into the generated lifecycle.json by
8
+ // scripts/gen-lifecycle.ts. Untagged exports inherit the file default below;
9
+ // statements tag themselves with a one-line "@lifecycle <tag>" JSDoc marker;
10
+ // individual names use a trailing "@lifecycle <tag>" line comment.
11
+ // @lifecycle-default experimental
12
+
13
+ // Schemas + Static types
14
+ export { AesSchema, AreaLayerSchema, BarLayerSchema, BoxplotLayerSchema } from "./schema.js";
15
+ export { CATEGORICAL_SCHEME_NAMES, CHANNELS, COLOR_SCHEME_NAMES } from "./schema.js";
16
+ export { CYCLIC_SCHEME_NAMES, ChannelValueSchema, ColLayerSchema } from "./schema.js";
17
+ export { CoordSpecSchema, CoordFixedSpecSchema, CoordSfSpecSchema } from "./schema.js";
18
+ export { CoordRadialSpecSchema, CoordTransformAxisSpecSchema } from "./schema.js";
19
+ export { CoordTransformSpecSchema, CURRENT_EDITION, DataRefSchema } from "./schema.js";
20
+ export { DensityLayerSchema, DotplotLayerSchema, ErrorbarLayerSchema } from "./schema.js";
21
+ export { LinerangeLayerSchema, PointrangeLayerSchema, CrossbarLayerSchema } from "./schema.js";
22
+ export { RectLayerSchema, TileLayerSchema, Bin2dLayerSchema, RasterLayerSchema } from "./schema.js";
23
+ export { HexLayerSchema, RibbonLayerSchema, SegmentLayerSchema } from "./schema.js";
24
+ export { CountLayerSchema, ViolinLayerSchema, FunctionLayerSchema } from "./schema.js";
25
+ export { PolygonLayerSchema, AblineLayerSchema, CurveLayerSchema } from "./schema.js";
26
+ export { RugLayerSchema, StepLayerSchema, QqLayerSchema, QqLineLayerSchema } from "./schema.js";
27
+ export { FacetFieldRefSchema, FacetStripSpecSchema, FacetSpecSchema } from "./schema.js";
28
+ export { ALIAS_GEOMS, GEOM_ALIASES, GEOM_DEFAULTS, HistogramLayerSchema } from "./schema.js";
29
+ export { FreqpolyLayerSchema, HlineLayerSchema, JitterLayerSchema, KNOWN_GEOMS } from "./schema.js";
30
+ export { KNOWN_POSITIONS, KNOWN_STATS, LayerSpecSchema, LineLayerSchema } from "./schema.js";
31
+ export { PathLayerSchema, LINETYPE_NAMES, MAX_BINNED_BREAKS, MAX_GLOW_RADIUS } from "./schema.js";
32
+ export { MAX_PAINT_STOPS, POINT_SHAPE_NAMES, PlotSpecSchema, PointLayerSchema } from "./schema.js";
33
+ export { RuleLayerSchema, VlineLayerSchema, ScalesSchema } from "./schema.js";
34
+ export { SEQUENTIAL_SCHEME_NAMES, TemporalParserSpecSchemaRef } from "./schema.js";
35
+ export { SmoothLayerSchema, SpecModule, TextLayerSchema, LabelLayerSchema } from "./schema.js";
36
+ export { THEME_NAMES, THEME_NAME_ALIASES } from "./schema.js";
37
+ export type { A11yMode, Aes, AreaLayer, AreaParams, BarLayer, BarParams } from "./schema.js";
38
+ export type { BoxplotLayer, BoxplotParams, CellValue, ChannelName } from "./schema.js";
39
+ export type { ChannelValue, ColorStop, ColLayer, ColorScaleSpec, GradientPaint } from "./schema.js";
40
+ export type { GlowSpec, LinearGradientPaint, PaintSpace, RadialGradientPaint } from "./schema.js";
41
+ export type { AlphaScaleSpec, ColParams, CoordSpec, CoordFixedSpec } from "./schema.js";
42
+ export type { CoordSfSpec, CoordRadialSpec, CoordTransformAxisSpec } from "./schema.js";
43
+ export type { CoordTransformSpec, DataColumns, DataName, DataRef, DataValues } from "./schema.js";
44
+ export type { DensityLayer, DensityParams, Density2dParams, Density2dLayer } from "./schema.js";
45
+ export type { Density2dFilledLayer, DotplotLayer, DotplotParams, ErrorbarLayer } from "./schema.js";
46
+ export type { ErrorbarParams, LinerangeLayer, LinerangeParams, PointrangeLayer } from "./schema.js";
47
+ export type { PointrangeParams, CrossbarLayer, CrossbarParams, RectLayer } from "./schema.js";
48
+ export type { RectParams, TileLayer, TileParams, Bin2dLayer, Bin2dParams } from "./schema.js";
49
+ export type { RasterLayer, RasterParams, HexLayer, HexParams, RibbonLayer } from "./schema.js";
50
+ export type { RibbonParams, FacetFieldRef, FacetScales, FacetSpec } from "./schema.js";
51
+ export type { FacetStripSpec, AliasGeomName, GeomName, NormalizedGeomName } from "./schema.js";
52
+ export type { NormalizedLayerSpec, NormalizedSpec, GuideSpec, GuidesSpec } from "./schema.js";
53
+ export type { GuideThemeSpec, AxisGuideSpec, LegendGuideSpec } from "./schema.js";
54
+ export type { ColorbarGuideSpec, ColorstepsGuideSpec, NoneGuideSpec } from "./schema.js";
55
+ export type { HistogramLayer, FreqpolyLayer, HlineLayer, HlineParams } from "./schema.js";
56
+ export type { InlineData, JitterLayer, Labs, LayerSpec, LegendSpec, LineLayer } from "./schema.js";
57
+ export type { LineParams, PathParams, PathLayer, StepLayer, StepParams } from "./schema.js";
58
+ export type { PointLayer, PointParams, PointPosition } from "./schema.js";
59
+ export type {
60
+ PortableSpec, // @lifecycle stable-intent
61
+ } from "./schema.js";
62
+ export type { PositionName, PositionParams, PositionScaleSpec } from "./schema.js";
63
+ export type { PositiveStyleScaleSpec, ShapeScaleSpec, LinetypeScaleSpec } from "./schema.js";
64
+ export type { LinetypeName, PointShapeName, RenderBackend, RuleLayer } from "./schema.js";
65
+ export type { RuleParams, VlineLayer, VlineParams, SegmentLayer, CurveLayer } from "./schema.js";
66
+ export type { SfLayer, SfTextLayer, SfLabelLayer, SpokeLayer, SpokeParams } from "./schema.js";
67
+ export type { SegmentParams, CountLayer, ViolinLayer, ViolinParams } from "./schema.js";
68
+ export type { FunctionLayer, FunctionParams, FunctionRegistryName } from "./schema.js";
69
+ export type { FunctionArgs, PolygonLayer, PolygonParams, AblineLayer } from "./schema.js";
70
+ export type { AblineParams, CurveParams, MapParams, SfParams, MapLayer } from "./schema.js";
71
+ export type { SfTextParams, SfLabelParams, BlankLayer, BlankParams, RugLayer } from "./schema.js";
72
+ export type { RugParams, QqLayer, QqParams, QqLineLayer, QqLineParams } from "./schema.js";
73
+ export type { ScaleExpansion, Scales, QuantileLayer, QuantileParams } from "./schema.js";
74
+ export type { ContourParams, ContourLayer, SmoothLayer, SmoothParams } from "./schema.js";
75
+ export type { StackablePosition, StatName, SummaryFun, TextLayer, LabelLayer } from "./schema.js";
76
+ export type { TemporalParserSpec, TextParams, LabelParams, ThemeName } from "./schema.js";
77
+ export type { ThemeSpec } from "./schema.js";
78
+
79
+ export { guideAxis, guideColorbar, guideColorsteps, guideLegend } from "./guide-helpers.js";
80
+ export { guideNone, guides, guide_axis, guide_colorbar } from "./guide-helpers.js";
81
+ export { guide_colorsteps, guide_legend, guide_none } from "./guide-helpers.js";
82
+ export type { AxisGuideOptions, ColorbarGuideOptions } from "./guide-helpers.js";
83
+ export type { ColorstepsGuideOptions, LegendGuideOptions } from "./guide-helpers.js";
84
+
85
+ // Checked public capability ledger
86
+ export { buildGreyPalette, buildHuePalette, GREY_PALETTE_10 } from "./hue-grey-palettes.js";
87
+ export { HUE_PALETTE_10, hslToHex } from "./hue-grey-palettes.js";
88
+ export { SCALE_CAPABILITIES, STYLE_AESTHETIC_GEOMS } from "./capabilities.js";
89
+ export { STYLE_ORDINAL_SCALE_HELPERS, scaleCapabilityCamelHelpers } from "./capabilities.js";
90
+ export { builderScaleHelperNames } from "./capabilities.js";
91
+ export type { ScaleCapability, StyleAesthetic } from "./capabilities.js";
92
+ /** @lifecycle experimental */
93
+ export { GEOM_PARAM_KEYS } from "./geom-params.js";
94
+ /** @lifecycle experimental */
95
+ export { GEOM_REFERENCE, SHARED_LAYER_PROPS, componentNameForGeom } from "./geom-reference.js";
96
+ /** @lifecycle experimental */
97
+ export { geomReferenceList } from "./geom-reference.js";
98
+ /** @lifecycle experimental */
99
+ export type { GeomParamDoc, GeomReferenceEntry, SharedLayerPropDoc } from "./geom-reference.js";
100
+ /** @lifecycle experimental */
101
+ export { STAT_REFERENCE, statReferenceList } from "./stat-reference.js";
102
+ /** @lifecycle experimental */
103
+ export type { StatReferenceEntry } from "./stat-reference.js";
104
+ /** @lifecycle experimental */
105
+ export { POSITION_REFERENCE, positionReferenceList } from "./position-reference.js";
106
+ /** @lifecycle experimental */
107
+ export type { PositionParamDoc, PositionReferenceEntry } from "./position-reference.js";
108
+ /** @lifecycle experimental */
109
+ export { COORD_REFERENCE, KNOWN_COORD_TYPES, coordReferenceList } from "./coord-reference.js";
110
+ /** @lifecycle experimental */
111
+ export type { CoordParamDoc, CoordReferenceEntry, CoordTypeName } from "./coord-reference.js";
112
+ /** @lifecycle experimental */
113
+ export { SCALE_FAMILY_LABELS, SCALE_REFERENCE, allScaleHelpers } from "./scale-reference.js";
114
+ /** @lifecycle experimental */
115
+ export { componentNameForScaleHelper, knownScaleSlugs } from "./scale-reference.js";
116
+ /** @lifecycle experimental */
117
+ export { primaryScaleHelpers, scaleReferenceByFamily } from "./scale-reference.js";
118
+ /** @lifecycle experimental */
119
+ export { scaleReferenceList, scaleReferencePrimaries } from "./scale-reference.js";
120
+ /** @lifecycle experimental */
121
+ export { slugForScaleHelper } from "./scale-reference.js";
122
+ /** @lifecycle experimental */
123
+ export type { ScaleAesthetic, ScaleFamily, ScaleParamDoc } from "./scale-reference.js";
124
+ /** @lifecycle experimental */
125
+ export type { ScaleReferenceEntry } from "./scale-reference.js";
126
+ /** @lifecycle experimental */
127
+ export { GUIDE_CHANNELS, GUIDE_REFERENCE, KNOWN_GUIDE_TYPES } from "./guide-reference.js";
128
+ /** @lifecycle experimental */
129
+ export { guideReferenceList } from "./guide-reference.js";
130
+ /** @lifecycle experimental */
131
+ export type { GuideChannelName, GuideParamDoc, GuideReferenceEntry } from "./guide-reference.js";
132
+ /** @lifecycle experimental */
133
+ export type { GuideTypeName } from "./guide-reference.js";
134
+
135
+ // Temporal parsing, inference, and authoring conversions
136
+ export { canonicalTemporalParserKey, dmy, dmy_hm, dmy_hms, dym, dym_hm } from "./temporal.js";
137
+ export { dym_hms, fromEpochMilliseconds, fromEpochSeconds } from "./temporal.js";
138
+ export { inferTemporalColumn, mdy, mdy_hm, mdy_hms, my, myd, myd_hm, myd_hms } from "./temporal.js";
139
+ export { parseTemporal, parseTemporalColumn, parseTemporalFormat } from "./temporal.js";
140
+ export { TEMPORAL_PARSER_NAMES, temporalParserConfigurationError } from "./temporal.js";
141
+ export { TemporalParseError, TemporalParserSpecSchema, ydm, ydm_hm, ydm_hms } from "./temporal.js";
142
+ export { ym, ymd, ymd_hm, ymd_hms, yq } from "./temporal.js";
143
+ export type { TemporalDecision, TemporalDisambiguation, TemporalFailure } from "./temporal.js";
144
+ export type { TemporalKind, TemporalScaleKind, ParsedTemporalColumn } from "./temporal.js";
145
+ export type { TemporalParseOptions, TemporalParseResult, TemporalParserName } from "./temporal.js";
146
+ export type { TemporalPrecision } from "./temporal.js";
147
+ export { MONTH_DAY_REFERENCE_YEAR } from "./temporal.js";
148
+ /** Registers `@js-temporal/polyfill` for full temporal graphs (not lean render). */
149
+ export { ensureTemporalPolyfill } from "./temporal-polyfill.js";
150
+ export { MAX_TEMPORAL_CANDIDATES, MAX_TEMPORAL_MAJOR_TICKS } from "./temporal-guides.js";
151
+ export { MAX_TEMPORAL_MINOR_TICKS, MIN_TEMPORAL_LABEL_GAP_PX } from "./temporal-guides.js";
152
+ export { parseTemporalInterval, TEMPORAL_INTERVAL_UNITS } from "./temporal-guides.js";
153
+ export { TEMPORAL_LABEL_TOKENS, TEMPORAL_WEEKDAYS } from "./temporal-guides.js";
154
+ export { TemporalIntervalError, TemporalIntervalSpecSchema } from "./temporal-guides.js";
155
+ export { TemporalLabelSpecSchema, temporalIntervalTicks } from "./temporal-guides.js";
156
+ export { temporalLabelConfigurationError } from "./temporal-guides.js";
157
+ export { temporalLocaleConfigurationError, TemporalWeekStartSchema } from "./temporal-guides.js";
158
+ export type { TemporalInterval, TemporalIntervalSpec } from "./temporal-guides.js";
159
+ export type { TemporalIntervalUnit, TemporalWeekStart } from "./temporal-guides.js";
160
+
161
+ // Coordinate helpers
162
+ export { coord_equal, coord_fixed, coord_polar, coord_radial, coord_sf } from "./coord-helpers.js";
163
+ export { coord_transform, coordEqual, coordFixed, coordPolar } from "./coord-helpers.js";
164
+ export { coordRadial, coordSf, coordTransform } from "./coord-helpers.js";
165
+ export type { CoordFixedOptions, CoordPolarOptions, CoordRadialOptions } from "./coord-helpers.js";
166
+ export type { CoordRadialReverse, CoordRadialTheta, CoordSfOptions } from "./coord-helpers.js";
167
+ export type { CoordTransformAxisOptions, CoordTransformName } from "./coord-helpers.js";
168
+ export type { CoordTransformOptions } from "./coord-helpers.js";
169
+ // Scale helpers
170
+ export { configuredColorScaleType, canonicalMultiScaleChannel } from "./scale-helpers.js";
171
+ export { scaleContinuousIdentity, scaleDiscreteIdentity } from "./scale-helpers.js";
172
+ export { scaleDiscreteManual, scaleType, scale_continuous_identity } from "./scale-helpers.js";
173
+ export { scale_discrete_identity, scale_discrete_manual, scale_type } from "./scale-helpers.js";
174
+ export { scaleColorBinned, scaleColorBrewer, scaleColorContinuous } from "./scale-helpers.js";
175
+ export { scaleColorDate, scaleColorDatetime, scaleColorDiscrete } from "./scale-helpers.js";
176
+ export { scaleColorDistiller, scaleColorFermenter, scaleColorGradient } from "./scale-helpers.js";
177
+ export { scaleColorGradient2, scaleColorGradientn, scaleColorIdentity } from "./scale-helpers.js";
178
+ export { scaleColorLog10, scaleColorManual, scaleColorSqrt } from "./scale-helpers.js";
179
+ export { scaleColorSteps, scaleColorSteps2, scaleColorStepsn } from "./scale-helpers.js";
180
+ export { scaleColorHue, scaleColorGrey, scaleColorGray } from "./scale-helpers.js";
181
+ export { scaleColorOrdinal, scaleColourBinned, scaleColourBrewer } from "./scale-helpers.js";
182
+ export { scaleColourContinuous, scaleColourDate, scaleColourDatetime } from "./scale-helpers.js";
183
+ export { scaleColourDiscrete, scaleColourDistiller } from "./scale-helpers.js";
184
+ export { scaleColourFermenter, scaleColourGradient } from "./scale-helpers.js";
185
+ export { scaleColourGradient2, scaleColourGradientn } from "./scale-helpers.js";
186
+ export { scaleColourIdentity, scaleColourLog10, scaleColourManual } from "./scale-helpers.js";
187
+ export { scaleColourSqrt, scaleColourSteps, scaleColourSteps2 } from "./scale-helpers.js";
188
+ export { scaleColourStepsn, scaleColourHue, scaleColourGrey } from "./scale-helpers.js";
189
+ export { scaleColourGray, scaleColourOrdinal, scaleFillBinned } from "./scale-helpers.js";
190
+ export { scaleFillBrewer, scaleFillContinuous, scaleFillDate } from "./scale-helpers.js";
191
+ export { scaleFillDatetime, scaleFillDiscrete, scaleFillDistiller } from "./scale-helpers.js";
192
+ export { scaleFillFermenter, scaleFillGradient, scaleFillGradient2 } from "./scale-helpers.js";
193
+ export { scaleFillGradientn, scaleFillIdentity, scaleFillLog10 } from "./scale-helpers.js";
194
+ export { scaleFillManual, scaleFillSqrt, scaleFillSteps } from "./scale-helpers.js";
195
+ export { scaleFillSteps2, scaleFillStepsn, scaleColorViridisB } from "./scale-helpers.js";
196
+ export { scaleColorViridisC, scaleColorViridisD, scaleColourViridisB } from "./scale-helpers.js";
197
+ export { scaleColourViridisC, scaleColourViridisD, scaleFillViridisB } from "./scale-helpers.js";
198
+ export { scaleFillViridisC, scaleFillViridisD, scaleFillHue } from "./scale-helpers.js";
199
+ export { scaleFillGrey, scaleFillGray, scaleFillOrdinal } from "./scale-helpers.js";
200
+ export { scale_color_binned, scale_color_brewer, scale_color_continuous } from "./scale-helpers.js";
201
+ export { scale_color_date, scale_color_datetime, scale_color_discrete } from "./scale-helpers.js";
202
+ export { scale_color_distiller, scale_color_fermenter } from "./scale-helpers.js";
203
+ export { scale_color_gradient, scale_color_gradient2 } from "./scale-helpers.js";
204
+ export { scale_color_gradientn, scale_color_identity, scale_color_log10 } from "./scale-helpers.js";
205
+ export { scale_color_manual, scale_color_sqrt, scale_color_steps } from "./scale-helpers.js";
206
+ export { scale_color_steps2, scale_color_stepsn, scale_color_viridis_b } from "./scale-helpers.js";
207
+ export { scale_color_viridis_c, scale_color_viridis_d, scale_color_hue } from "./scale-helpers.js";
208
+ export { scale_color_grey, scale_color_gray, scale_color_ordinal } from "./scale-helpers.js";
209
+ export { scale_colour_binned, scale_colour_brewer } from "./scale-helpers.js";
210
+ export { scale_colour_continuous, scale_colour_date } from "./scale-helpers.js";
211
+ export { scale_colour_datetime, scale_colour_discrete } from "./scale-helpers.js";
212
+ export { scale_colour_distiller, scale_colour_fermenter } from "./scale-helpers.js";
213
+ export { scale_colour_gradient, scale_colour_gradient2 } from "./scale-helpers.js";
214
+ export { scale_colour_gradientn, scale_colour_identity } from "./scale-helpers.js";
215
+ export { scale_colour_log10, scale_colour_manual, scale_colour_sqrt } from "./scale-helpers.js";
216
+ export { scale_colour_steps, scale_colour_steps2, scale_colour_stepsn } from "./scale-helpers.js";
217
+ export { scale_colour_viridis_b, scale_colour_viridis_c } from "./scale-helpers.js";
218
+ export { scale_colour_viridis_d, scale_colour_hue, scale_colour_grey } from "./scale-helpers.js";
219
+ export { scale_colour_gray, scale_colour_ordinal, scale_fill_binned } from "./scale-helpers.js";
220
+ export { scale_fill_brewer, scale_fill_continuous, scale_fill_date } from "./scale-helpers.js";
221
+ export { scale_fill_datetime, scale_fill_discrete, scale_fill_distiller } from "./scale-helpers.js";
222
+ export { scale_fill_fermenter, scale_fill_gradient } from "./scale-helpers.js";
223
+ export { scale_fill_gradient2, scale_fill_gradientn } from "./scale-helpers.js";
224
+ export { scale_fill_identity, scale_fill_log10, scale_fill_manual } from "./scale-helpers.js";
225
+ export { scale_fill_sqrt, scale_fill_steps, scale_fill_steps2 } from "./scale-helpers.js";
226
+ export { scale_fill_stepsn, scale_fill_viridis_b, scale_fill_viridis_c } from "./scale-helpers.js";
227
+ export { scale_fill_viridis_d, scale_fill_hue, scale_fill_grey } from "./scale-helpers.js";
228
+ export { scale_fill_gray, scale_fill_ordinal, scaleXBinned } from "./scale-helpers.js";
229
+ export { scaleXContinuous, scaleXDate, scaleXDatetime, scaleXTime } from "./scale-helpers.js";
230
+ export { scaleXDiscrete, scaleXLog10, scaleXReverse, scaleXSqrt } from "./scale-helpers.js";
231
+ export { scaleYBinned, scaleYContinuous, scaleYDate, scaleYDatetime } from "./scale-helpers.js";
232
+ export { scaleYTime, scaleXMonthDay, scaleYMonthDay, scaleYDiscrete } from "./scale-helpers.js";
233
+ export { scaleYLog10, scaleYReverse, scaleYSqrt, scale_x_binned } from "./scale-helpers.js";
234
+ export { scale_x_continuous, scale_x_date, scale_x_datetime } from "./scale-helpers.js";
235
+ export { scale_x_time, scale_x_discrete, scale_x_log10, scale_x_reverse } from "./scale-helpers.js";
236
+ export { scale_x_sqrt, scale_y_binned, scale_y_continuous, scale_y_date } from "./scale-helpers.js";
237
+ export { scale_y_datetime, scale_y_time, scale_x_month_day } from "./scale-helpers.js";
238
+ export { scale_y_month_day, scale_y_discrete, scale_y_log10 } from "./scale-helpers.js";
239
+ export { scale_y_reverse, scale_y_sqrt } from "./scale-helpers.js";
240
+ export { scaleAlpha, scaleAlphaBinned, scaleAlphaContinuous } from "./scale-helpers.js";
241
+ export { scaleAlphaDate, scaleAlphaDatetime, scaleAlphaDiscrete } from "./scale-helpers.js";
242
+ export { scaleAlphaIdentity, scaleAlphaManual, scaleAlphaOrdinal } from "./scale-helpers.js";
243
+ export { scaleLinewidth, scaleLinewidthBinned, scaleLinewidthContinuous } from "./scale-helpers.js";
244
+ export { scaleLinewidthDate, scaleLinewidthDatetime } from "./scale-helpers.js";
245
+ export { scaleLinewidthDiscrete, scaleLinewidthIdentity } from "./scale-helpers.js";
246
+ export { scaleLinewidthManual, scaleLinewidthOrdinal, scaleLinetype } from "./scale-helpers.js";
247
+ export { scaleLinetypeBinned, scaleLinetypeDiscrete } from "./scale-helpers.js";
248
+ export { scaleLinetypeIdentity, scaleLinetypeManual, scaleShape } from "./scale-helpers.js";
249
+ export { scaleShapeBinned, scaleShapeDiscrete, scaleShapeIdentity } from "./scale-helpers.js";
250
+ export { scaleShapeManual, scaleShapeOrdinal, scaleSize, scaleSizeArea } from "./scale-helpers.js";
251
+ export { scaleSizeBinned, scaleSizeBinnedArea, scaleSizeContinuous } from "./scale-helpers.js";
252
+ export { scaleSizeDate, scaleSizeDatetime, scaleSizeDiscrete } from "./scale-helpers.js";
253
+ export { scaleSizeIdentity, scaleSizeManual, scaleSizeOrdinal } from "./scale-helpers.js";
254
+ export { scaleRadius, scale_alpha, scale_alpha_binned } from "./scale-helpers.js";
255
+ export { scale_alpha_continuous, scale_alpha_date, scale_alpha_datetime } from "./scale-helpers.js";
256
+ export { scale_alpha_discrete, scale_alpha_identity, scale_alpha_manual } from "./scale-helpers.js";
257
+ export { scale_alpha_ordinal, scale_linetype, scale_linetype_binned } from "./scale-helpers.js";
258
+ export { scale_linetype_discrete, scale_linetype_identity } from "./scale-helpers.js";
259
+ export { scale_linetype_manual, scale_linewidth, scale_linewidth_binned } from "./scale-helpers.js";
260
+ export { scale_linewidth_continuous, scale_linewidth_date } from "./scale-helpers.js";
261
+ export { scale_linewidth_datetime, scale_linewidth_discrete } from "./scale-helpers.js";
262
+ export { scale_linewidth_identity, scale_linewidth_manual } from "./scale-helpers.js";
263
+ export { scale_linewidth_ordinal, scale_shape, scale_shape_binned } from "./scale-helpers.js";
264
+ export { scale_shape_discrete, scale_shape_identity, scale_shape_manual } from "./scale-helpers.js";
265
+ export { scale_shape_ordinal, scale_size, scale_size_area } from "./scale-helpers.js";
266
+ export { scale_size_binned, scale_size_binned_area } from "./scale-helpers.js";
267
+ export { scale_size_continuous, scale_size_date, scale_size_datetime } from "./scale-helpers.js";
268
+ export { scale_size_discrete, scale_size_identity, scale_size_manual } from "./scale-helpers.js";
269
+ export { scale_size_ordinal, scale_radius } from "./scale-helpers.js";
270
+ export type { BinnedColorScaleOptions, ColorBrewerScaleOptions } from "./scale-helpers.js";
271
+ export type { ColorDistillerScaleOptions, ColorFermenterScaleOptions } from "./scale-helpers.js";
272
+ export type { ColorScaleOptions, ContinuousPositionScaleOptions } from "./scale-helpers.js";
273
+ export type { DiscreteColorScaleOptions, IdentityColorScaleOptions } from "./scale-helpers.js";
274
+ export type { StepsScaleOptions, Steps2ScaleOptions, StepsnScaleOptions } from "./scale-helpers.js";
275
+ export type { GradientScaleOptions, Gradient2ScaleOptions } from "./scale-helpers.js";
276
+ export type { GradientnScaleOptions, HueScaleOptions, GreyScaleOptions } from "./scale-helpers.js";
277
+ export type { OrdinalColorScaleOptions, ManualColorScaleOptions } from "./scale-helpers.js";
278
+ export type { ViridisOptionName, ViridisScaleOptions } from "./scale-helpers.js";
279
+ export type { MultiIdentityScaleOptions, MultiManualScaleOptions } from "./scale-helpers.js";
280
+ export type { MultiScaleAesthetic, MultiScaleChannel } from "./scale-helpers.js";
281
+ export type { RecommendedScaleType, ScaleTypeAesthetic } from "./scale-helpers.js";
282
+ export type { DiscreteNumericStyleScaleOptions } from "./scale-helpers.js";
283
+ export type { BinnedFiniteStyleScaleOptions } from "./scale-helpers.js";
284
+ export type { DiscreteFiniteStyleScaleOptions, FiniteStyleScaleOptions } from "./scale-helpers.js";
285
+ export type { IdentityFiniteStyleScaleOptions } from "./scale-helpers.js";
286
+ export type { IdentityNumericStyleScaleOptions } from "./scale-helpers.js";
287
+ export type { ManualFiniteStyleScaleOptions } from "./scale-helpers.js";
288
+ export type { ManualNumericStyleScaleOptions, NumericStyleScaleOptions } from "./scale-helpers.js";
289
+ export type { SequentialStyleScaleOptions, SizeAreaScaleOptions } from "./scale-helpers.js";
290
+ export type { SizeSequentialStyleScaleOptions } from "./scale-helpers.js";
291
+ export type { SizeTemporalNumericStyleScaleOptions } from "./scale-helpers.js";
292
+ export type { TemporalNumericStyleScaleOptions } from "./scale-helpers.js";
293
+ export type { SequentialColorScaleOptions, TemporalColorScaleOptions } from "./scale-helpers.js";
294
+ export type { TransformedColorScaleOptions } from "./scale-helpers.js";
295
+ export type { DiscretePositionScaleOptions, TemporalScaleOptions } from "./scale-helpers.js";
296
+ export type { TransformedPositionScaleOptions } from "./scale-helpers.js";
297
+
298
+ // Portability (PortableSpec vs RuntimeSpec)
299
+ export { isPortable, portabilityIssues, toPortable, toPortableLossy } from "./portability.js";
300
+ export { UnportableSpecError } from "./portability.js";
301
+ export type { JSONValue, LossyResult, PortabilityIssue } from "./portability.js";
302
+ export type { ChannelFn, RuntimeAes, RuntimeAreaLayer, RuntimeBarLayer } from "./runtime.js";
303
+ export type { RuntimeBoxplotLayer, RuntimeChannelValue, RuntimeColLayer } from "./runtime.js";
304
+ export type { RuntimeDensityLayer, RuntimeErrorbarLayer } from "./runtime.js";
305
+ export type { RuntimeLinerangeLayer, RuntimePointrangeLayer } from "./runtime.js";
306
+ export type { RuntimeCrossbarLayer, RuntimeRibbonLayer, RuntimeHistogramLayer } from "./runtime.js";
307
+ export type { RuntimeFreqpolyLayer, RuntimeHlineLayer, RuntimeJitterLayer } from "./runtime.js";
308
+ export type { RuntimeLayerSpec, RuntimeLineLayer, RuntimePathLayer } from "./runtime.js";
309
+ export type { RuntimePointLayer, RuntimeRasterLayer, RuntimeHexLayer } from "./runtime.js";
310
+ export type { RuntimeRectLayer, RuntimeSegmentLayer, RuntimeCountLayer } from "./runtime.js";
311
+ export type { RuntimeViolinLayer, RuntimeFunctionLayer, RuntimePolygonLayer } from "./runtime.js";
312
+ export type { RuntimeAblineLayer, RuntimeContourLayer, RuntimeDensity2dLayer } from "./runtime.js";
313
+ export type { RuntimeDensity2dFilledLayer, RuntimeDotplotLayer } from "./runtime.js";
314
+ export type { RuntimeMapLayer, RuntimeBlankLayer, RuntimeSpokeLayer } from "./runtime.js";
315
+ export type { RuntimeRugLayer, RuntimeSfLayer, RuntimeSfTextLayer } from "./runtime.js";
316
+ export type { RuntimeSfLabelLayer, RuntimeCurveLayer, RuntimeStepLayer } from "./runtime.js";
317
+ export type { RuntimeQqLayer, RuntimeQqLineLayer, RuntimeRuleLayer } from "./runtime.js";
318
+ export type { RuntimeSmoothLayer, RuntimeQuantileLayer, RuntimeSpec } from "./runtime.js";
319
+ export type { RuntimeTextLayer, RuntimeLabelLayer, RuntimeTileLayer } from "./runtime.js";
320
+ export type { RuntimeBin2dLayer, RuntimeVlineLayer } from "./runtime.js";
321
+
322
+ // Canonicalizer
323
+ /** @lifecycle stable-intent */
324
+ export { normalize } from "./normalize.js";
325
+ export { normalizeChannel } from "./normalize.js";
326
+ export type { AesInput, AreaLayerInput, BarLayerInput, BoxplotLayerInput } from "./normalize.js";
327
+ export type { ChannelInput, ColLayerInput, DensityLayerInput } from "./normalize.js";
328
+ export type { ErrorbarLayerInput, LinerangeLayerInput, PointrangeLayerInput } from "./normalize.js";
329
+ export type { CrossbarLayerInput, RibbonLayerInput, SegmentLayerInput } from "./normalize.js";
330
+ export type { CountLayerInput, ViolinLayerInput, FunctionLayerInput } from "./normalize.js";
331
+ export type { PolygonLayerInput, AblineLayerInput, ContourLayerInput } from "./normalize.js";
332
+ export type { Density2dLayerInput, Density2dFilledLayerInput } from "./normalize.js";
333
+ export type { DotplotLayerInput, MapLayerInput, BlankLayerInput } from "./normalize.js";
334
+ export type { SpokeLayerInput, RugLayerInput, SfLayerInput } from "./normalize.js";
335
+ export type { SfTextLayerInput, SfLabelLayerInput, CurveLayerInput } from "./normalize.js";
336
+ export type { StepLayerInput, QqLayerInput, QqLineLayerInput } from "./normalize.js";
337
+ export type { FacetFieldInput, FacetInput, HistogramLayerInput } from "./normalize.js";
338
+ export type { FreqpolyLayerInput, HlineLayerInput, JitterLayerInput } from "./normalize.js";
339
+ export type { LayerInput, LineLayerInput, PathLayerInput, PointLayerInput } from "./normalize.js";
340
+ export type { RasterLayerInput, HexLayerInput, RectLayerInput } from "./normalize.js";
341
+ export type { RuleLayerInput, QuantileLayerInput, SmoothLayerInput } from "./normalize.js";
342
+ export type { TileLayerInput, Bin2dLayerInput, SpecInput, TextLayerInput } from "./normalize.js";
343
+ export type { LabelLayerInput, VlineLayerInput } from "./normalize.js";
344
+
345
+ // Validation + agent error contract
346
+ /** @lifecycle stable-intent */
347
+ export { validate } from "./validate.js";
348
+ /** @lifecycle stable-intent */
349
+ export type { ValidateResult } from "./validate.js";
350
+ /** TypeBox-free structural gate used by the render pipeline. */
351
+ export { assertStructuralGate, structuralGateErrors } from "./structural-gate.js";
352
+ /** Shared temporal-guide vs explicit scale-type check for validate and render. */
353
+ export { temporalGuideTypeMismatchError } from "./validate-data-checks-position.js";
354
+ export { LINT_CATALOG, lintSpec } from "./lint.js";
355
+ export type { LintAdvisoryCode, LintCatalogEntry, SpecAdvisory } from "./lint.js";
356
+ export { ERROR_CATALOG } from "./errors.js";
357
+ export type { ErrorCatalogEntry } from "./errors.js";
358
+ export { PIPELINE_ERROR_CATALOG } from "./pipeline-error-catalog.js";
359
+ export type { PipelineErrorCatalogEntry, PipelineErrorCode } from "./pipeline-error-catalog.js";
360
+ export { DEFAULT_VALIDATE_LIMITS, effectiveChannel, STAT_COLUMNS } from "./validate-data.js";
361
+ export type { DataProfile, DataProfileField, ProfileFieldType } from "./validate-data.js";
362
+ export type { ValidateLimits, ValidateOptions } from "./validate-data.js";
363
+ export { didYouMean, ERROR_CODES, levenshtein } from "./errors.js";
364
+ export {
365
+ SpecValidationError, // @lifecycle stable-intent
366
+ } from "./errors.js";
367
+ /** @lifecycle stable-intent */
368
+ export type { SpecError, SpecErrorCode, SpecErrorFix } from "./errors.js";
369
+
370
+ // Fluent builder
371
+ export { aes, gg, GGBuilder } from "./builder.js";
372
+ /** Authoring data snapshot + portable Date→ISO (shared by builder + assemble). */
373
+ export { calendarDateFields, toAuthoringDataRef, toDataRef } from "./builder-data.js";
374
+ export type { AuthoringCellValue, AuthoringColumns, AuthoringDataRef } from "./builder.js";
375
+ export type { AuthoringRows, DataInput, GeomAreaOptions, GeomBarOptions } from "./builder.js";
376
+ export type { GeomBoxplotOptions, GeomColOptions, GeomDensityOptions } from "./builder.js";
377
+ export type { GeomDensity2dOptions, GeomDensity2dFilledOptions } from "./builder.js";
378
+ export type { GeomDotplotOptions, GeomErrorbarOptions, GeomLinerangeOptions } from "./builder.js";
379
+ export type { GeomPointrangeOptions, GeomCrossbarOptions } from "./builder.js";
380
+ export type { GeomHistogramOptions, GeomFreqpolyOptions, GeomHlineOptions } from "./builder.js";
381
+ export type { GeomJitterOptions, GeomLineOptions, GeomPathOptions } from "./builder.js";
382
+ export type { GeomPointOptions, GeomQuantileOptions, GeomContourOptions } from "./builder.js";
383
+ export type { GeomRasterOptions, GeomHexOptions, GeomRectOptions } from "./builder.js";
384
+ export type { GeomRuleOptions, GeomRugOptions, GeomSegmentOptions } from "./builder.js";
385
+ export type { GeomCountOptions, GeomViolinOptions, GeomFunctionOptions } from "./builder.js";
386
+ export type { GeomPolygonOptions, GeomAblineOptions, GeomCurveOptions } from "./builder.js";
387
+ export type { GeomMapOptions, GeomBlankOptions, GeomSpokeOptions } from "./builder.js";
388
+ export type { GeomSfOptions, GeomSfTextOptions, GeomSfLabelOptions } from "./builder.js";
389
+ export type { GeomStepOptions, GeomQqOptions, GeomQqLineOptions } from "./builder.js";
390
+ export type { GeomSmoothOptions, GeomTextOptions, GeomLabelOptions } from "./builder.js";
391
+ export type { GeomTileOptions, GeomBin2dOptions, GeomVlineOptions } from "./builder.js";
392
+
393
+ // Within-mark paint helpers (#591)
394
+ export { fillPaintLinear, fillPaintRadial, glow, strokePaintLinear } from "./paint-helpers.js";
395
+ export { strokePaintRadial } from "./paint-helpers.js";
396
+ export type { ColorStopInput, GlowOptions, LinearPaintOptions } from "./paint-helpers.js";
397
+ export type { RadialPaintOptions } from "./paint-helpers.js";
398
+
399
+ // Schema artifact (schema/v0.json)
400
+ export { buildSchemaArtifact, SCHEMA_VERSION, schemaArtifactJSON } from "./artifact.js";
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Spec lint-advisory catalog — pure data for docs and code identity.
3
+ * Runtime SpecAdvisory instances and lintSpec() live in lint.ts;
4
+ * rule emission sites: lint-layer-rules.ts and lint-scale-rules.ts.
5
+ */
6
+
7
+ /** One entry of the lint catalog (docs render straight from it). */
8
+ export interface LintCatalogEntry {
9
+ summary: string;
10
+ /** What evidence the rule needs ("spec" alone, or inline data / profile). */
11
+ needs: "spec" | "data" | "data-or-profile";
12
+ rationale: string;
13
+ }
14
+
15
+ /** The lint-advisory catalog — the single source for the docs page. */
16
+ export const LINT_CATALOG = {
17
+ "line-over-nominal-x": {
18
+ summary: "A line layer connects points across a nominal (unordered) x field.",
19
+ needs: "data-or-profile",
20
+ rationale:
21
+ "Lines encode order; connecting unordered categories draws meaningless slopes. Use col/bar for per-category values, or declare the field ordinal if it is genuinely ordered.",
22
+ },
23
+ "many-discrete-colors": {
24
+ summary: "A discrete color/fill field has more than 10 distinct values.",
25
+ needs: "data",
26
+ rationale:
27
+ "Beyond ~10 hues, colors stop being distinguishable and the default palette cycles. Facet by the field, aggregate it, or pin an explicit domain + range.",
28
+ },
29
+ "stacked-area-negative": {
30
+ summary: "A stacked area layer's y field contains negative values.",
31
+ needs: "data",
32
+ rationale:
33
+ 'Stacked areas imply parts of a whole; negative contributions make band boundaries cross and mislead. Use a line layer per series, or position: "identity".',
34
+ },
35
+ "discrete-discrete-scatter": {
36
+ summary: "A point layer maps discrete fields on BOTH x and y.",
37
+ needs: "data-or-profile",
38
+ rationale:
39
+ "Discrete-by-discrete points overplot into a grid where counts are invisible. Jitter the points, or count the combinations and encode the count.",
40
+ },
41
+ "transform-domain-data": {
42
+ summary:
43
+ "A transform scale (log10/sqrt) is configured over data that mixes in-domain and out-of-domain values.",
44
+ needs: "data",
45
+ rationale:
46
+ "log10 rejects values <= 0 and sqrt rejects values < 0; the transform silently drops out-of-domain rows before stats (the pipeline warns at render). Filter the data deliberately, or use an identity/linear scale if those values are meaningful.",
47
+ },
48
+ "fractional-calendar-years": {
49
+ summary:
50
+ "A position channel holds year-like numbers with month fractions (year + month/12) on a linear scale.",
51
+ needs: "data",
52
+ rationale:
53
+ 'Encoding calendar months as 1854.25 / 1855.917 makes linear tick and tooltip formatters print decimals like 1855.9 — a silent unit lie. Store ISO year-month or date strings ("1854-04" / "1854-04-01") and use a time scale (ScaleXDate, labels "%b %Y") so axes and Inspect pins read as calendar months.',
54
+ },
55
+ } as const satisfies Record<string, LintCatalogEntry>;
56
+
57
+ export type LintAdvisoryCode = keyof typeof LINT_CATALOG;
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Layer-scoped lint rules: line-over-nominal-x, discrete-discrete-scatter,
3
+ * stacked-area-negative, many-discrete-colors.
4
+ * Scale-level rules: lint-scale-rules.ts. Orchestrator: lint.ts.
5
+ */
6
+ import type { Aes, ChannelName } from "./schema.js";
7
+ import { GEOM_DEFAULTS } from "./schema-catalog.js";
8
+ import type { FieldEvidenceEntry, ProfileFieldType } from "./validate-data.js";
9
+ import type { SpecAdvisory } from "./lint.js";
10
+
11
+ const DISCRETE: ReadonlySet<ProfileFieldType> = new Set(["nominal", "ordinal"]);
12
+
13
+ function isRecord(v: unknown): v is Record<string, unknown> {
14
+ return typeof v === "object" && v !== null && !Array.isArray(v);
15
+ }
16
+
17
+ /** Distinct non-null values in a column (single pass, no intermediate filter). */
18
+ function countDistinctNonNull(values: readonly unknown[]): number {
19
+ const distinct = new Set<unknown>();
20
+ for (const value of values) {
21
+ if (value !== null) distinct.add(value);
22
+ }
23
+ return distinct.size;
24
+ }
25
+
26
+ export type LintFieldOf = (
27
+ layerAes: Aes | undefined,
28
+ channel: ChannelName,
29
+ ) => { field: string; info: FieldEvidenceEntry } | null;
30
+
31
+ /** Layer-scoped advisories for one lintSpec pass. */
32
+ export function collectLayerLintAdvisories(input: {
33
+ layers: unknown[];
34
+ fieldOf: LintFieldOf;
35
+ }): SpecAdvisory[] {
36
+ const { layers, fieldOf } = input;
37
+ const advisories: SpecAdvisory[] = [];
38
+
39
+ // FieldEvidenceMap is built once per lintSpec/validate call; distinct counts
40
+ // for many-discrete-colors are memoized across layers/channels that share a
41
+ // field so a high-cardinality column is scanned O(n), not O(L·n).
42
+ const distinctNonNullByField = new Map<string, number>();
43
+ // Same contract for stacked-area-negative: one scan per y field, not per
44
+ // layer. Field name is a safe key because lint evidence is one plot-level
45
+ // map per pass (lintSpec builds or receives a single FieldEvidenceMap), so
46
+ // a field name always resolves to the same values array within one call.
47
+ // If lint ever gains layer-scoped evidence, key on the values array instead.
48
+ const hasNegativeByField = new Map<string, boolean>();
49
+
50
+ for (let i = 0; i < layers.length; i++) {
51
+ const layer = layers[i];
52
+ if (!isRecord(layer)) continue;
53
+ const geom = typeof layer["geom"] === "string" ? layer["geom"] : "";
54
+ const layerAes = isRecord(layer["aes"]) ? (layer["aes"] as Aes) : undefined;
55
+ const defaults = GEOM_DEFAULTS[geom as keyof typeof GEOM_DEFAULTS];
56
+ const position =
57
+ typeof layer["position"] === "string"
58
+ ? layer["position"]
59
+ : (defaults?.position ?? "identity");
60
+ addLineAdvisory({ advisories, fieldOf, geom, layerAes, index: i });
61
+ addScatterAdvisory({ advisories, fieldOf, geom, layerAes, position, index: i });
62
+ addAreaAdvisory({
63
+ advisories,
64
+ fieldOf,
65
+ geom,
66
+ layerAes,
67
+ position,
68
+ index: i,
69
+ hasNegativeByField,
70
+ });
71
+ addColorAdvisories({
72
+ advisories,
73
+ fieldOf,
74
+ layerAes,
75
+ index: i,
76
+ distinctNonNullByField,
77
+ });
78
+ }
79
+
80
+ return advisories;
81
+ }
82
+
83
+ interface LayerLintContext {
84
+ advisories: SpecAdvisory[];
85
+ fieldOf: LintFieldOf;
86
+ geom: string;
87
+ layerAes: Aes | undefined;
88
+ index: number;
89
+ }
90
+
91
+ function addLineAdvisory(ctx: LayerLintContext): void {
92
+ if (ctx.geom !== "line" && ctx.geom !== "step") return;
93
+ const x = ctx.fieldOf(ctx.layerAes, "x");
94
+ if (x === null || x.info.type !== "nominal") return;
95
+ ctx.advisories.push({
96
+ code: "line-over-nominal-x",
97
+ path: `/layers/${ctx.index}/aes/x`,
98
+ message: `This ${ctx.geom} layer connects points across "${x.field}", a nominal (unordered) field — the line's slopes carry no meaning.`,
99
+ suggestion: {
100
+ description:
101
+ 'Use geom "col" (or "bar" with the count stat) for per-category values; keep "line"/"step" only for ordered x (numbers, dates, or a genuinely ordinal field).',
102
+ example: { geom: "col" },
103
+ },
104
+ });
105
+ }
106
+
107
+ function addScatterAdvisory(ctx: LayerLintContext & { position: string }): void {
108
+ if (ctx.geom !== "point" || ctx.position === "jitter") return;
109
+ const x = ctx.fieldOf(ctx.layerAes, "x");
110
+ const y = ctx.fieldOf(ctx.layerAes, "y");
111
+ if (x === null || y === null || x.info.type === null || y.info.type === null) return;
112
+ if (!DISCRETE.has(x.info.type) || !DISCRETE.has(y.info.type)) return;
113
+ ctx.advisories.push({
114
+ code: "discrete-discrete-scatter",
115
+ path: `/layers/${ctx.index}`,
116
+ message: `This point layer maps discrete fields on both axes ("${x.field}" × "${y.field}") — identical combinations overplot invisibly.`,
117
+ suggestion: {
118
+ description:
119
+ 'Add position: "jitter" to spread the points, or count the combinations and encode the count (e.g. point size).',
120
+ example: { geom: "point", position: "jitter" },
121
+ },
122
+ });
123
+ }
124
+
125
+ function addAreaAdvisory(
126
+ ctx: LayerLintContext & { position: string; hasNegativeByField: Map<string, boolean> },
127
+ ): void {
128
+ if (ctx.geom !== "area" || (ctx.position !== "stack" && ctx.position !== "fill")) return;
129
+ const y = ctx.fieldOf(ctx.layerAes, "y");
130
+ const values = y?.info.values;
131
+ if (y === null || values === null || values === undefined) return;
132
+ let hasNegative = ctx.hasNegativeByField.get(y.field);
133
+ if (hasNegative === undefined) {
134
+ hasNegative = values.some((value) => typeof value === "number" && value < 0);
135
+ ctx.hasNegativeByField.set(y.field, hasNegative);
136
+ }
137
+ if (!hasNegative) return;
138
+ ctx.advisories.push({
139
+ code: "stacked-area-negative",
140
+ path: `/layers/${ctx.index}/aes/y`,
141
+ message: `This stacked area layer's y field "${y.field}" contains negative values — stacked bands will cross and misread as parts of a whole.`,
142
+ suggestion: {
143
+ description:
144
+ 'Draw one line per series instead, or set position: "identity" to overlap the areas.',
145
+ example: { geom: "area", position: "identity" },
146
+ },
147
+ });
148
+ }
149
+
150
+ function addColorAdvisories(
151
+ ctx: Omit<LayerLintContext, "geom"> & { distinctNonNullByField: Map<string, number> },
152
+ ): void {
153
+ for (const channel of ["color", "fill"] as const) {
154
+ const color = ctx.fieldOf(ctx.layerAes, channel);
155
+ const values = color?.info.values;
156
+ if (color === null || values === null || values === undefined || color.info.type === null)
157
+ continue;
158
+ if (!DISCRETE.has(color.info.type)) continue;
159
+ let distinct = ctx.distinctNonNullByField.get(color.field);
160
+ if (distinct === undefined) {
161
+ distinct = countDistinctNonNull(values);
162
+ ctx.distinctNonNullByField.set(color.field, distinct);
163
+ }
164
+ if (distinct <= 10) continue;
165
+ ctx.advisories.push({
166
+ code: "many-discrete-colors",
167
+ path: `/layers/${ctx.index}/aes/${channel}`,
168
+ message: `Field "${color.field}" maps ${distinct} distinct values to ${channel} — beyond ~10, hues stop being distinguishable and the default palette cycles.`,
169
+ suggestion: {
170
+ description: `Facet by "${color.field}", aggregate it to fewer categories, or pin scales.${channel}.domain (+ a range) to the values that matter.`,
171
+ example: { facet: { wrap: { field: color.field } } },
172
+ },
173
+ });
174
+ }
175
+ }