@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,243 @@
1
+ /**
2
+ * Named registries shared by the TypeBox schema graph and runtime catalogs.
3
+ * Kept separate from the `$defs` object so scale/theme name lists can change
4
+ * without editing the full declarations bag.
5
+ */
6
+
7
+ /**
8
+ * Hard cap on a binned position scale's bins (automatic or explicit). This is
9
+ * the single shared source of truth: the TypeBox `breaks` `maxItems` below,
10
+ * the core runtime boundary resolver, and the `binned-scale-break-limit`
11
+ * pipeline error all key off it. `n` boundaries produce `n − 1` bins, so the
12
+ * schema allows at most `MAX_BINNED_BREAKS + 1` break values.
13
+ */
14
+ export const MAX_BINNED_BREAKS = 64;
15
+
16
+ /** Maximum gradient color stops in a portable paint (closed, bounded). */
17
+ export const MAX_PAINT_STOPS = 16;
18
+
19
+ /** Maximum glow blur radius in CSS px (bounded filter work). */
20
+ export const MAX_GLOW_RADIUS = 32;
21
+
22
+ /** Named categorical color schemes known to this schema version. */
23
+ export const CATEGORICAL_SCHEME_NAMES = [
24
+ "observable10",
25
+ "ipsum",
26
+ "flexoki",
27
+ "colorblind",
28
+ // ggthemes ports (#1159): Stata s2color default
29
+ "stata",
30
+ /** ggthemes scale_colour/fill_economist — Economist blues/greens (fill order). */
31
+ "economist",
32
+ /** ggthemes scale_colour/fill_solarized — Solarized accents, blue first. */
33
+ "solarized",
34
+ // ggthemes ports (#1159): Few "Show Me the Numbers" variants + FiveThirtyEight
35
+ "few",
36
+ "few_light",
37
+ "few_dark",
38
+ "fivethirtyeight",
39
+ // ggthemes ports (#1159): Paul Tol + Canva default
40
+ "ptol",
41
+ "canva",
42
+ /** ggthemes wsj_pal — scale_colour/fill_wsj palette variants. */
43
+ "wsj",
44
+ "wsj_rgby",
45
+ "wsj_red_green",
46
+ "wsj_black_green",
47
+ "wsj_dem_rep",
48
+ // ggthemes tableau_color_pal regular variants (#1159)
49
+ "tableau20",
50
+ "tableau_colorblind",
51
+ "tableau_seattle_grays",
52
+ "tableau_jewel_bright",
53
+ "tableau_hue_circle",
54
+ // ggthemes ports (#1159): pander
55
+ "pander",
56
+ // ColorBrewer qualitative (#825)
57
+ "Dark2",
58
+ /** Even HSL hues — ggplot2-shaped scale_*_hue default discrete path (#829). */
59
+ "hue",
60
+ // Crameri Scientific colour maps v8.0.1 categorical (*S) 10-class prefixes
61
+ "actonS",
62
+ "bamakoS",
63
+ "batlowS",
64
+ "batlowWS",
65
+ "batlowKS",
66
+ "bilbaoS",
67
+ "budaS",
68
+ "davosS",
69
+ "devonS",
70
+ "glasgowS",
71
+ "grayCS",
72
+ "hawaiiS",
73
+ "imolaS",
74
+ "lajollaS",
75
+ "lapazS",
76
+ "lipariS",
77
+ "naviaS",
78
+ "nuukS",
79
+ "osloS",
80
+ "tokyoS",
81
+ "turkuS",
82
+ ] as const;
83
+
84
+ /**
85
+ * Crameri cyclic (*O) sequential schemes. Periodic data only: wrap OOB and
86
+ * an explicit [min, max] period. Not legal on ordinal or binned scales.
87
+ */
88
+ export const CYCLIC_SCHEME_NAMES = ["bamO", "brocO", "corkO", "romaO", "vikO"] as const;
89
+
90
+ /**
91
+ * Named sequential color schemes known to this schema version.
92
+ * Viridis family maps (matplotlib/CC0 samples + Google turbo), ColorBrewer
93
+ * sequential/diverging ramps (#825), and Crameri Scientific colour maps
94
+ * v8.0.1 continuous suite plus cyclic (*O) ramps; used by continuous color
95
+ * scales. Discrete even-sampling (viridis_d parity) covers viridis-family
96
+ * and non-cyclic Crameri ramps only.
97
+ */
98
+ export const SEQUENTIAL_SCHEME_NAMES = [
99
+ "viridis",
100
+ "magma",
101
+ "plasma",
102
+ "inferno",
103
+ "cividis",
104
+ "turbo",
105
+ // ColorBrewer sequential + diverging ramps (#825)
106
+ "Blues",
107
+ "Greens",
108
+ "Reds",
109
+ "Oranges",
110
+ "Purples",
111
+ "Greys",
112
+ "YlOrRd",
113
+ "YlGnBu",
114
+ "BuPu",
115
+ "RdYlBu",
116
+ "RdBu",
117
+ "BrBG",
118
+ "Spectral",
119
+ "PuOr",
120
+ // Crameri Scientific colour maps v8.0.1 continuous suite (seq / div / multi-seq)
121
+ "acton",
122
+ "bamako",
123
+ "batlow",
124
+ "batlowW",
125
+ "batlowK",
126
+ "bilbao",
127
+ "buda",
128
+ "davos",
129
+ "devon",
130
+ "glasgow",
131
+ "grayC",
132
+ "hawaii",
133
+ "imola",
134
+ "lajolla",
135
+ "lapaz",
136
+ "lipari",
137
+ "navia",
138
+ "naviaW",
139
+ "nuuk",
140
+ "oslo",
141
+ "tokyo",
142
+ "turku",
143
+ "bam",
144
+ "berlin",
145
+ "broc",
146
+ "cork",
147
+ "lisbon",
148
+ "managua",
149
+ "roma",
150
+ "tofino",
151
+ "vanimo",
152
+ "vik",
153
+ "bukavu",
154
+ "fes",
155
+ "oleron",
156
+ // Crameri cyclic (*O) — sequential family, wrap OOB, explicit period
157
+ ...CYCLIC_SCHEME_NAMES,
158
+ ] as const;
159
+
160
+ export const COLOR_SCHEME_NAMES = [
161
+ ...CATEGORICAL_SCHEME_NAMES,
162
+ ...SEQUENTIAL_SCHEME_NAMES,
163
+ ] as const;
164
+
165
+ /** Audited finite point symbols, ordered by default assignment priority. */
166
+ export const POINT_SHAPE_NAMES = [
167
+ "circle",
168
+ "triangle",
169
+ "square",
170
+ "diamond",
171
+ "plus",
172
+ "cross",
173
+ "circle-open",
174
+ ] as const;
175
+ export type PointShapeName = (typeof POINT_SHAPE_NAMES)[number];
176
+
177
+ /** Audited finite stroke patterns, ordered by default assignment priority. */
178
+ export const LINETYPE_NAMES = [
179
+ "solid",
180
+ "dashed",
181
+ "dotted",
182
+ "dotdash",
183
+ "longdash",
184
+ "twodash",
185
+ ] as const;
186
+ export type LinetypeName = (typeof LINETYPE_NAMES)[number];
187
+
188
+ /** Built-in theme names known to this schema version. */
189
+ export const THEME_NAMES = [
190
+ "default",
191
+ "light",
192
+ "dark",
193
+ "minimal",
194
+ "ggplot2",
195
+ "classic",
196
+ "bw",
197
+ "hrbr",
198
+ "few",
199
+ "clean",
200
+ "fivethirtyeight",
201
+ "economist",
202
+ "tufte",
203
+ "linedraw",
204
+ "void",
205
+ // ggthemes theme ports (#1158): Stata family
206
+ "stata",
207
+ "stata_s1color",
208
+ // ggthemes theme_solarized: light (default) and dark (light = FALSE) variants.
209
+ "solarized",
210
+ "solarizeddark",
211
+ // ggthemes theme ports (#1158)
212
+ "economist_white",
213
+ "solarized_2",
214
+ "solarized_2dark",
215
+ /** ggthemes theme_wsj (Wall Street Journal). */
216
+ "wsj",
217
+ "hc",
218
+ "hcdark",
219
+ "pander",
220
+ // ggthemes minimalist family (#1158): theme_base / igray / map / solid
221
+ "base",
222
+ "igray",
223
+ "map",
224
+ "solid",
225
+ "grey",
226
+ "gray",
227
+ // Snapshot/unit-test complete theme (#823). Last: ordered docs/VR rosters
228
+ // append after product themes (and after name aliases).
229
+ "test",
230
+ ] as const;
231
+
232
+ type ThemeNameValue = (typeof THEME_NAMES)[number];
233
+
234
+ /**
235
+ * Registered theme names that share another theme's token map / evidence.
236
+ * Keys are first-class ThemeName values (PortableSpec accepts them); values
237
+ * are the canonical theme that owns the built-in tokens and visual evidence.
238
+ * UK `grey` and US `gray` both alias the grey-panel `ggplot2` look (#824).
239
+ */
240
+ export const THEME_NAME_ALIASES = {
241
+ grey: "ggplot2",
242
+ gray: "ggplot2",
243
+ } as const satisfies Partial<Record<ThemeNameValue, ThemeNameValue>>;
@@ -0,0 +1,400 @@
1
+ /**
2
+ * Spec type bag for Static<> extraction (not for JSON emission).
3
+ *
4
+ * Prefer `ReturnType<typeof Type.Module<...>>` over a `const SpecStatic =
5
+ * Type.Module(...)` value: once LayerSpec includes density_2d_filled + map the
6
+ * Module instance exceeds TS7056 declaration-serialize limits under composite
7
+ * emit. The type-level Module is enough for SpecType / Static<>.
8
+ */
9
+ import Type, { type Static } from "typebox";
10
+
11
+ import type { NormalizedGeomName } from "./schema-catalog.js";
12
+ import type { SpecDeclarations } from "./schema-declarations.js";
13
+
14
+ type SpecModuleStatic = ReturnType<typeof Type.Module<typeof SpecDeclarations>>;
15
+ type SpecType<K extends keyof SpecModuleStatic> = Static<SpecModuleStatic[K]>;
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Static types (the package's public TS types)
19
+ // ---------------------------------------------------------------------------
20
+
21
+ /** A single data cell (JSON scalar). */
22
+ export type CellValue = SpecType<"CellValue">;
23
+
24
+ // The data-container types are written out by hand: TypeBox's computed module
25
+ // types collapse `Type.Record`/`additionalProperties` value schemas to `{}`
26
+ // in Static<>, losing the record value type. Runtime validation and the
27
+ // emitted JSON Schema are unaffected (they come from the module above); these
28
+ // aliases restore the intended TS shapes and are covered by assignability
29
+ // tests against schema fixtures.
30
+
31
+ /** Inline row-oriented data. */
32
+ export interface DataValues {
33
+ values: Record<string, CellValue>[];
34
+ }
35
+ /** Inline column-oriented data (equal-length arrays). */
36
+ export interface DataColumns {
37
+ columns: Record<string, CellValue[]>;
38
+ }
39
+ /** A reference to a named dataset. */
40
+ export interface DataName {
41
+ name: string;
42
+ }
43
+ /** Where a plot's data comes from. */
44
+ export type DataRef = DataValues | DataColumns | DataName;
45
+ /** Inline data only ({values} or {columns}). */
46
+ export type InlineData = DataValues | DataColumns;
47
+ /** Canonical channel value: {field} | {value, scale?} | {stat} | null. */
48
+ export type ChannelValue = SpecType<"ChannelValue">;
49
+ /** Aesthetic mapping (canonical channel forms only). */
50
+ export type Aes = SpecType<"Aes">;
51
+ /** One ordered gradient color stop. */
52
+ export type ColorStop = SpecType<"ColorStop">;
53
+ /** Gradient coordinate space. */
54
+ export type PaintSpace = SpecType<"PaintSpace">;
55
+ /** Deterministic linear gradient paint. */
56
+ export type LinearGradientPaint = SpecType<"LinearGradientPaint">;
57
+ /** Deterministic radial gradient paint. */
58
+ export type RadialGradientPaint = SpecType<"RadialGradientPaint">;
59
+ /** Closed portable gradient paint (linear | radial). */
60
+ export type GradientPaint = SpecType<"GradientPaint">;
61
+ /** Bounded glow treatment. */
62
+ export type GlowSpec = SpecType<"GlowSpec">;
63
+ /** Point layer params. */
64
+ export type PointParams = SpecType<"PointParams">;
65
+ /** Line layer params. */
66
+ export type LineParams = SpecType<"LineParams">;
67
+ /** Path layer params (no bin knobs). */
68
+ export type PathParams = SpecType<"PathParams">;
69
+ /** Step layer params (ggplot2 geom_step direction). */
70
+ export type StepParams = SpecType<"StepParams">;
71
+ /** Col layer params. */
72
+ export type ColParams = SpecType<"ColParams">;
73
+ /** Bar/histogram layer params (styling + stat-bin controls). */
74
+ export type BarParams = SpecType<"BarParams">;
75
+ /** Area layer params. */
76
+ export type AreaParams = SpecType<"AreaParams">;
77
+ /** Rule layer params (annotation intercepts + styling). */
78
+ export type RuleParams = SpecType<"RuleParams">;
79
+ /** Hline alias params (yintercept + styling). */
80
+ export type HlineParams = SpecType<"HlineParams">;
81
+ /** Vline alias params (xintercept + styling). */
82
+ export type VlineParams = SpecType<"VlineParams">;
83
+ /** Segment layer params (styling + lineend). */
84
+ export type SegmentParams = SpecType<"SegmentParams">;
85
+ export type ViolinParams = SpecType<"ViolinParams">;
86
+ /** Function layer params (named fun + grid). */
87
+ export type FunctionParams = SpecType<"FunctionParams">;
88
+ /** Named portable function registry entry. */
89
+ export type FunctionRegistryName = SpecType<"FunctionRegistryName">;
90
+ /** Args bag for registry functions. */
91
+ export type FunctionArgs = SpecType<"FunctionArgs">;
92
+ /** Polygon layer params (fill/stroke styling). */
93
+ export type PolygonParams = SpecType<"PolygonParams">;
94
+ export type AblineParams = SpecType<"AblineParams">;
95
+ /** Curve layer params (curvature/angle/ncp + stroke). */
96
+ export type CurveParams = SpecType<"CurveParams">;
97
+ /** Simple-features layer params (geometry column + styling; #809 phase 1). */
98
+ export type SfParams = SpecType<"SfParams">;
99
+ /** Map layer params (fortified map DataRef + styling; #808). */
100
+ export type MapParams = SpecType<"MapParams">;
101
+ /** SF text layer params (geometry column + text styling; #809 phase 2). */
102
+ export type SfTextParams = SpecType<"SfTextParams">;
103
+ /** SF label layer params (geometry + text + box chrome; #809 phase 3). */
104
+ export type SfLabelParams = SpecType<"SfLabelParams">;
105
+ /** Rug layer params (sides, length, stroke styling). */
106
+ export type RugParams = SpecType<"RugParams">;
107
+ export type QqParams = SpecType<"QqParams">;
108
+ export type QqLineParams = SpecType<"QqLineParams">;
109
+ /** Text layer params. */
110
+ export type TextParams = SpecType<"TextParams">;
111
+ /** Label layer params (text + background box). */
112
+ export type LabelParams = SpecType<"LabelParams">;
113
+ /** Smooth layer params (method/se/level/span/degree/n + styling). */
114
+ export type SmoothParams = SpecType<"SmoothParams">;
115
+ /** Quantile layer params (quantiles/n + styling). */
116
+ export type QuantileParams = SpecType<"QuantileParams">;
117
+ /** Contour isoline params (bins/breaks/binwidth + stroke; #801). */
118
+ export type ContourParams = SpecType<"ContourParams">;
119
+ /** Boxplot layer params. */
120
+ export type BoxplotParams = SpecType<"BoxplotParams">;
121
+ /** Density layer params (bw/adjust/n/cut + styling). */
122
+ export type DensityParams = SpecType<"DensityParams">;
123
+ /** 2D density isoline params (#802). */
124
+ export type Density2dParams = SpecType<"Density2dParams">;
125
+ /** Dotplot layer params (histodot binning + stack + point style; #803). */
126
+ export type DotplotParams = SpecType<"DotplotParams">;
127
+ /** A summary function name (stat summary). */
128
+ export type SummaryFun = SpecType<"SummaryFun">;
129
+ /** Errorbar layer params (styling + summary-stat functions). */
130
+ export type ErrorbarParams = SpecType<"ErrorbarParams">;
131
+ /** Linerange params (alias of ErrorbarParams). */
132
+ export type LinerangeParams = SpecType<"LinerangeParams">;
133
+ /** Pointrange params (stem + mid point size/shape). */
134
+ export type PointrangeParams = SpecType<"PointrangeParams">;
135
+ /** Crossbar params (width, fatten, stroke). */
136
+ export type CrossbarParams = SpecType<"CrossbarParams">;
137
+ /** Rect layer params. */
138
+ export type RectParams = SpecType<"RectParams">;
139
+ /** Tile layer params. */
140
+ export type TileParams = SpecType<"TileParams">;
141
+ /** bin_2d layer params. */
142
+ export type Bin2dParams = SpecType<"Bin2dParams">;
143
+ /** Raster layer params. */
144
+ export type RasterParams = SpecType<"RasterParams">;
145
+ /** Hex bin heatmap params. */
146
+ export type HexParams = SpecType<"HexParams">;
147
+ /** Ribbon layer params (outline, orientation, stroke ends). */
148
+ export type RibbonParams = SpecType<"RibbonParams">;
149
+ /** Jitter/nudge position parameters. */
150
+ export type PositionParams = SpecType<"PositionParams">;
151
+ // Layer types: TypeBox Static collapses DataRef to object[]; restore the
152
+ // hand-written DataRef on optional per-layer `data` (#589).
153
+ type LayerWithDataRef<T> = Omit<T, "data"> & { data?: DataRef };
154
+ /** A point layer. */
155
+ export type PointLayer = LayerWithDataRef<SpecType<"PointLayer">>;
156
+ /** A line layer. */
157
+ export type LineLayer = LayerWithDataRef<SpecType<"LineLayer">>;
158
+ /** A path layer (data-order polylines; ggplot2 geom_path). */
159
+ export type PathLayer = LayerWithDataRef<SpecType<"PathLayer">>;
160
+ /** A col layer (pre-computed bars). */
161
+ export type ColLayer = LayerWithDataRef<SpecType<"ColLayer">>;
162
+ /** A bar layer (count or bin stat). */
163
+ export type BarLayer = LayerWithDataRef<SpecType<"BarLayer">>;
164
+ /** A histogram layer (alias; normalize() canonicalizes to bar + stat bin). */
165
+ export type HistogramLayer = LayerWithDataRef<SpecType<"HistogramLayer">>;
166
+ /** A freqpoly layer (alias; normalize() → line + stat bin). */
167
+ export type FreqpolyLayer = LayerWithDataRef<SpecType<"FreqpolyLayer">>;
168
+ /** An area layer. */
169
+ export type AreaLayer = LayerWithDataRef<SpecType<"AreaLayer">>;
170
+ /** A rule (reference line) layer. */
171
+ export type RuleLayer = LayerWithDataRef<SpecType<"RuleLayer">>;
172
+ /** An hline layer (alias; normalize() → rule). */
173
+ export type HlineLayer = LayerWithDataRef<SpecType<"HlineLayer">>;
174
+ /** A vline layer (alias; normalize() → rule). */
175
+ export type VlineLayer = LayerWithDataRef<SpecType<"VlineLayer">>;
176
+ /** A jitter layer (alias; normalize() → point + position jitter). */
177
+ export type JitterLayer = LayerWithDataRef<SpecType<"JitterLayer">>;
178
+ /** A text-label layer. */
179
+ export type TextLayer = LayerWithDataRef<SpecType<"TextLayer">>;
180
+ /** A label layer (text with background box). */
181
+ export type LabelLayer = LayerWithDataRef<SpecType<"LabelLayer">>;
182
+ /** A smooth (fitted trend) layer. */
183
+ export type SmoothLayer = LayerWithDataRef<SpecType<"SmoothLayer">>;
184
+ /** A quantile regression layer. */
185
+ export type QuantileLayer = LayerWithDataRef<SpecType<"QuantileLayer">>;
186
+ /** A contour isoline layer (#801). */
187
+ export type ContourLayer = LayerWithDataRef<SpecType<"ContourLayer">>;
188
+ /** A boxplot layer. */
189
+ export type BoxplotLayer = LayerWithDataRef<SpecType<"BoxplotLayer">>;
190
+ /** A density (KDE) layer. */
191
+ export type DensityLayer = LayerWithDataRef<SpecType<"DensityLayer">>;
192
+ /** A 2D density isoline layer (#802). */
193
+ export type Density2dLayer = LayerWithDataRef<SpecType<"Density2dLayer">>;
194
+ /** A filled 2D density layer. */
195
+ export type Density2dFilledLayer = LayerWithDataRef<SpecType<"Density2dFilledLayer">>;
196
+ /** A stacked-dot (geom_dotplot) layer. */
197
+ export type DotplotLayer = LayerWithDataRef<SpecType<"DotplotLayer">>;
198
+ /** An errorbar layer. */
199
+ export type ErrorbarLayer = LayerWithDataRef<SpecType<"ErrorbarLayer">>;
200
+ /** A linerange layer (stem without caps). */
201
+ export type LinerangeLayer = LayerWithDataRef<SpecType<"LinerangeLayer">>;
202
+ /** A pointrange layer (stem + mid point). */
203
+ export type PointrangeLayer = LayerWithDataRef<SpecType<"PointrangeLayer">>;
204
+ /** A crossbar layer (interval box + mid line). */
205
+ export type CrossbarLayer = LayerWithDataRef<SpecType<"CrossbarLayer">>;
206
+ /** A rect layer (arbitrary xmin/xmax/ymin/ymax regions). */
207
+ export type RectLayer = LayerWithDataRef<SpecType<"RectLayer">>;
208
+ /** A tile layer (center-sized cells). */
209
+ export type TileLayer = LayerWithDataRef<SpecType<"TileLayer">>;
210
+ /** A 2D bin heatmap layer. */
211
+ export type Bin2dLayer = LayerWithDataRef<SpecType<"Bin2dLayer">>;
212
+ /** A raster layer (equal-cell dense grid). */
213
+ export type RasterLayer = LayerWithDataRef<SpecType<"RasterLayer">>;
214
+ /** A hexagonal bin heatmap layer. */
215
+ export type HexLayer = LayerWithDataRef<SpecType<"HexLayer">>;
216
+ /** A ribbon (interval band) layer. */
217
+ export type RibbonLayer = LayerWithDataRef<SpecType<"RibbonLayer">>;
218
+ /** A finite segment layer ((x,y)→(xend,yend)). */
219
+ export type SegmentLayer = LayerWithDataRef<SpecType<"SegmentLayer">>;
220
+ /** Count (geom_count / stat_sum) layer. */
221
+ export type CountLayer = LayerWithDataRef<
222
+ SpecType<"CountLayer">
223
+ >; /** A slope/intercept reference line layer (geom_abline). */
224
+ /** A violin (mirrored y-density) layer. */
225
+ export type ViolinLayer = LayerWithDataRef<SpecType<"ViolinLayer">>;
226
+ /** An analytic function path layer (y = f(x) grid). */
227
+ export type FunctionLayer = LayerWithDataRef<SpecType<"FunctionLayer">>;
228
+ /** A closed polygon layer ((x,y) vertices in data order). */
229
+ export type PolygonLayer = LayerWithDataRef<SpecType<"PolygonLayer">>;
230
+ /** A slope/intercept reference line layer (geom_abline). */
231
+ export type AblineLayer = LayerWithDataRef<SpecType<"AblineLayer">>;
232
+ /** A curve layer (curved connectors). */
233
+ export type CurveLayer = LayerWithDataRef<SpecType<"CurveLayer">>;
234
+ /** A choropleth/map layer (#808). */
235
+ export type MapLayer = LayerWithDataRef<SpecType<"MapLayer">>;
236
+ export type SfLayer = LayerWithDataRef<SpecType<"SfLayer">>;
237
+ /** An sf_text layer (labels at representative points; #809 phase 2). */
238
+ export type SfTextLayer = LayerWithDataRef<SpecType<"SfTextLayer">>;
239
+ /** An sf_label layer (boxed labels at representative points; #809 phase 3). */
240
+ export type SfLabelLayer = LayerWithDataRef<SpecType<"SfLabelLayer">>;
241
+ /**
242
+ * Empty params bag for blank layers.
243
+ *
244
+ * TypeBox `Type.Object({})` Static-infers as `{}`, which is *not* assignable
245
+ * to `Record<string, unknown>` and also poisons `LayerSpec["params"]` unions
246
+ * (oxlint no-unnecessary-type-assertion on every `(layer.params ?? {}) as X`).
247
+ * Override so blank matches every other geom params bag.
248
+ */
249
+ export type BlankParams = Record<string, never>;
250
+ /** A blank layer (no marks; trains scales from mapped aesthetics). */
251
+ export type BlankLayer = LayerWithDataRef<
252
+ Omit<SpecType<"BlankLayer">, "params"> & { readonly params?: BlankParams }
253
+ >;
254
+
255
+ export type SpokeParams = SpecType<"SpokeParams">;
256
+ export type SpokeLayer = LayerWithDataRef<SpecType<"SpokeLayer">>;
257
+ /** A marginal rug layer (edge ticks). */
258
+ export type RugLayer = LayerWithDataRef<SpecType<"RugLayer">>;
259
+ /** A step-line layer (ggplot2 geom_step). */
260
+ export type StepLayer = LayerWithDataRef<SpecType<"StepLayer">>;
261
+ export type QqLayer = LayerWithDataRef<SpecType<"QqLayer">>;
262
+ export type QqLineLayer = LayerWithDataRef<SpecType<"QqLineLayer">>;
263
+ /** One plot layer, discriminated by `geom`. */
264
+ export type LayerSpec =
265
+ | PointLayer
266
+ | LineLayer
267
+ | PathLayer
268
+ | ColLayer
269
+ | BarLayer
270
+ | HistogramLayer
271
+ | FreqpolyLayer
272
+ | AreaLayer
273
+ | RibbonLayer
274
+ | SegmentLayer
275
+ | CountLayer
276
+ | ViolinLayer
277
+ | FunctionLayer
278
+ | PolygonLayer
279
+ | AblineLayer
280
+ | CurveLayer
281
+ | MapLayer
282
+ | SfLayer
283
+ | SfTextLayer
284
+ | SfLabelLayer
285
+ | BlankLayer
286
+ | SpokeLayer
287
+ | RugLayer
288
+ | StepLayer
289
+ | RuleLayer
290
+ | HlineLayer
291
+ | VlineLayer
292
+ | JitterLayer
293
+ | TextLayer
294
+ | LabelLayer
295
+ | SmoothLayer
296
+ | QuantileLayer
297
+ | ContourLayer
298
+ | BoxplotLayer
299
+ | DensityLayer
300
+ | Density2dLayer
301
+ | Density2dFilledLayer
302
+ | DotplotLayer
303
+ | ErrorbarLayer
304
+ | LinerangeLayer
305
+ | PointrangeLayer
306
+ | CrossbarLayer
307
+ | RectLayer
308
+ | TileLayer
309
+ | Bin2dLayer
310
+ | RasterLayer
311
+ | HexLayer
312
+ | QqLayer
313
+ | QqLineLayer;
314
+ /**
315
+ * A layer that survived normalize(): the alias geoms (histogram, freqpoly,
316
+ * jitter, hline, vline) are rewritten by then, so this union is 44 wide, not
317
+ * 49. Keying pipeline tables off it lets `tsc` name a geom nobody handled
318
+ * instead of leaving a silent `default:` arm (#1042).
319
+ */
320
+ export type NormalizedLayerSpec = Extract<LayerSpec, { geom: NormalizedGeomName }>;
321
+ /** Stackable position adjustment names. */
322
+ export type StackablePosition = SpecType<"StackablePosition">;
323
+ /** Position adjustments accepted by point layers. */
324
+ export type PointPosition = "identity" | "jitter" | "nudge";
325
+ /** Positional (x/y) scale configuration. */
326
+ export type TemporalParserSpec = SpecType<"TemporalParserSpec">;
327
+ export type PositionScaleSpec = SpecType<"PositionScaleSpec">;
328
+ /** Display-domain expansion ({ mult?, add? }) for continuous/binned scales. */
329
+ export type ScaleExpansion = SpecType<"ScaleExpansion">;
330
+ /** Color/fill scale configuration. */
331
+ export type ColorScaleSpec = SpecType<"ColorScaleSpec">;
332
+ /** Positive numeric size/linewidth scale configuration. */
333
+ export type PositiveStyleScaleSpec = SpecType<"PositiveStyleScaleSpec">;
334
+ /** Opacity scale configuration. */
335
+ export type AlphaScaleSpec = SpecType<"AlphaScaleSpec">;
336
+ /** Finite point-shape scale configuration. */
337
+ export type ShapeScaleSpec = SpecType<"ShapeScaleSpec">;
338
+ /** Finite stroke-pattern scale configuration. */
339
+ export type LinetypeScaleSpec = SpecType<"LinetypeScaleSpec">;
340
+ /** Per-scale configuration for all position and style aesthetics. */
341
+ export type Scales = SpecType<"Scales">;
342
+ /** Facet-panel scale behavior. */
343
+ export type FacetScales = SpecType<"FacetScales">;
344
+ /** Facet configuration (wrap OR rows/cols grid). */
345
+ export type FacetFieldRef = SpecType<"FacetFieldRef">;
346
+ export type FacetStripSpec = SpecType<"FacetStripSpec">;
347
+ export type FacetSpec = SpecType<"FacetSpec">;
348
+ /** One post-stat coordinate axis transform. */
349
+ export type CoordTransformAxisSpec = SpecType<"CoordTransformAxisSpec">;
350
+ /** Post-stat coordinate transform configuration. */
351
+ export type CoordTransformSpec = SpecType<"CoordTransformSpec">;
352
+ /** Fixed-aspect Cartesian coordinate configuration. */
353
+ export type CoordFixedSpec = SpecType<"CoordFixedSpec">;
354
+ /** Simple-features fixed-aspect coordinates (already-projected maps; #809). */
355
+ export type CoordSfSpec = SpecType<"CoordSfSpec">;
356
+ /** Polar/radial coordinates (ggplot2 coord_radial / coord_polar). */
357
+ export type CoordRadialSpec = SpecType<"CoordRadialSpec">;
358
+ /** Cartesian, flipped, post-stat transformed, fixed-aspect, SF, or radial. */
359
+ export type CoordSpec = SpecType<"CoordSpec">;
360
+ /** Per-layer rendering backend hint. */
361
+ export type RenderBackend = SpecType<"RenderBackend">;
362
+ /** Plot-level accessibility mode. */
363
+ export type A11yMode = "auto" | "force-svg";
364
+ /** Bounded per-guide presentation theme overrides. */
365
+ export type GuideThemeSpec = SpecType<"GuideThemeSpec">;
366
+ export type BandAxisGuideSpec = SpecType<"BandAxisGuideSpec">;
367
+ export type AxisGuideSpec = SpecType<"AxisGuideSpec">;
368
+ export type LegendGuideSpec = SpecType<"LegendGuideSpec">;
369
+ export type ColorbarGuideSpec = SpecType<"ColorbarGuideSpec">;
370
+ export type ColorstepsGuideSpec = SpecType<"ColorstepsGuideSpec">;
371
+ export type NoneGuideSpec = SpecType<"NoneGuideSpec">;
372
+ /** One portable appearance-only guide configuration. */
373
+ export type GuideSpec = SpecType<"GuideSpec">;
374
+ /** Guide configuration keyed by aesthetic. */
375
+ export type GuidesSpec = SpecType<"GuidesSpec">;
376
+ /** Legacy legend ordering options. */
377
+ export type LegendSpec = SpecType<"LegendSpec">;
378
+ /** Built-in theme names. */
379
+ export type ThemeName = SpecType<"ThemeName">;
380
+ /** Theme object: named base + role overrides. */
381
+ export type ThemeSpec = SpecType<"ThemeSpec">;
382
+ /** Plot labels. */
383
+ export type Labs = SpecType<"Labs">;
384
+ /** The canonical, strictly-JSON plot spec (what agents emit and schemas describe). */
385
+ export type PortableSpec = Omit<SpecType<"PlotSpec">, "data" | "datasets" | "layers"> & {
386
+ data?: DataRef;
387
+ datasets?: Record<string, InlineData>;
388
+ layers: LayerSpec[];
389
+ };
390
+
391
+ /**
392
+ * What normalize() returns: a PortableSpec whose layers carry no alias geom.
393
+ *
394
+ * Assignable to PortableSpec, so passing the result on is unchanged. The JSON
395
+ * Schema keeps describing PortableSpec — histogram and friends stay legal
396
+ * *input*; they just cannot survive normalize().
397
+ */
398
+ export type NormalizedSpec = Omit<PortableSpec, "layers"> & {
399
+ layers: NormalizedLayerSpec[];
400
+ };