@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,165 @@
1
+ /**
2
+ * SCALE_REFERENCE — per-Scale* component API docs for the docs site.
3
+ *
4
+ * Catalog data is precomputed from SCALE_CAPABILITIES + SpecDeclarations
5
+ * (`scripts/gen-reference-catalogs.ts`) so reference pages never load TypeBox.
6
+ * Shells under packages/svelte/src/lib/scale/ are declaration-only; document
7
+ * this catalog instead of TypeDoc.
8
+ */
9
+ import {
10
+ SCALE_CAPABILITIES,
11
+ STYLE_ORDINAL_SCALE_HELPERS,
12
+ scaleCapabilityCamelHelpers,
13
+ type ScaleCapability,
14
+ } from "./capabilities.js";
15
+ import { SCALE_REFERENCE_DATA } from "./generated/scale-reference-data.js";
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Public types
19
+ // ---------------------------------------------------------------------------
20
+
21
+ export interface ScaleParamDoc {
22
+ readonly name: string;
23
+ readonly description: string;
24
+ readonly typeSummary: string;
25
+ readonly required: boolean;
26
+ }
27
+
28
+ export type ScaleFamily = ScaleCapability["family"];
29
+
30
+ /** Canonical aesthetic channel(s) this Scale* component configures. */
31
+ export type ScaleAesthetic =
32
+ | "x"
33
+ | "y"
34
+ | "color"
35
+ | "fill"
36
+ | "size"
37
+ | "linewidth"
38
+ | "alpha"
39
+ | "shape"
40
+ | "linetype";
41
+
42
+ export interface ScaleReferenceEntry {
43
+ /** Helper name, e.g. scaleXContinuous (Colour aliases use Colour spelling). */
44
+ readonly helper: string;
45
+ /** Route slug — snake_case stem without the scale prefix (e.g. x_continuous). */
46
+ readonly slug: string;
47
+ /** Svelte component export, e.g. ScaleXContinuous. */
48
+ readonly component: string;
49
+ readonly family: ScaleFamily;
50
+ /** Aesthetic channels written by this helper (usually one). */
51
+ readonly aesthetics: readonly ScaleAesthetic[];
52
+ /** Canonical post-normalize scale type(s) this helper authors. */
53
+ readonly scaleType: string;
54
+ /** Forced transform when the helper pins one (log10/sqrt); else undefined. */
55
+ readonly transform?: "log10" | "sqrt";
56
+ /** Forced temporalKind when the helper pins one. */
57
+ readonly temporalKind?: string;
58
+ /** Short purpose text for index + detail lede. */
59
+ readonly summary: string;
60
+ /** TypeScript options type name (or Omit expression) for the shell props. */
61
+ readonly optionsType: string;
62
+ /** Authoring props (schema-derived + helper sugar). */
63
+ readonly params: readonly ScaleParamDoc[];
64
+ /**
65
+ * How this scale interacts with guides: axis for position; legend/colorbar/
66
+ * colorsteps for style; "none" when guide: "none" is typical.
67
+ */
68
+ readonly guide: string;
69
+ /**
70
+ * When set, this component is a binding-identical re-export of another
71
+ * (British Colour spelling or *Ordinal → *Discrete).
72
+ */
73
+ readonly aliasOf?: string;
74
+ /** Alternate component names that re-export this shell. */
75
+ readonly alsoExportedAs: readonly string[];
76
+ }
77
+
78
+ // ---------------------------------------------------------------------------
79
+ // Naming
80
+ // ---------------------------------------------------------------------------
81
+
82
+ /** scaleXContinuous → ScaleXContinuous */
83
+ export function componentNameForScaleHelper(helper: string): string {
84
+ if (!helper.startsWith("scale")) {
85
+ throw new Error(`SCALE_REFERENCE: expected scale* helper, got "${helper}"`);
86
+ }
87
+ return "S" + helper.slice(1);
88
+ }
89
+
90
+ /** scaleXContinuous → x_continuous; scaleColorViridisC → color_viridis_c */
91
+ export function slugForScaleHelper(helper: string): string {
92
+ const stem = helper.startsWith("scale") ? helper.slice(5) : helper;
93
+ return stem
94
+ .replaceAll(/([a-z0-9])([A-Z])/g, "$1_$2")
95
+ .replaceAll(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
96
+ .toLowerCase();
97
+ }
98
+
99
+ /** Primary Scale* helpers (no Colour / Ordinal-only aliases). */
100
+ export function primaryScaleHelpers(): readonly string[] {
101
+ return scaleCapabilityCamelHelpers();
102
+ }
103
+
104
+ /**
105
+ * Every public Scale* surface: primary shells + Colour aliases + Ordinal
106
+ * style aliases (binding-identical re-exports).
107
+ */
108
+ export function allScaleHelpers(): readonly string[] {
109
+ const primary = scaleCapabilityCamelHelpers();
110
+ const colour = primary
111
+ .filter((h) => h.startsWith("scaleColor"))
112
+ .map((h) => h.replace("Color", "Colour"));
113
+ return [...new Set([...primary, ...colour, ...STYLE_ORDINAL_SCALE_HELPERS])].toSorted();
114
+ }
115
+
116
+ /**
117
+ * Complete per-scale API reference. Keys are route slugs
118
+ * (e.g. color_continuous, x_log10). Precomputed at gen time.
119
+ */
120
+ export const SCALE_REFERENCE: Readonly<Record<string, ScaleReferenceEntry>> = SCALE_REFERENCE_DATA;
121
+
122
+ /** Stable sorted list for docs index, search, and inventory. */
123
+ export function scaleReferenceList(): readonly ScaleReferenceEntry[] {
124
+ return Object.values(SCALE_REFERENCE).toSorted((a, b) => a.slug.localeCompare(b.slug));
125
+ }
126
+
127
+ /** Primary (non-alias) entries only. */
128
+ export function scaleReferencePrimaries(): readonly ScaleReferenceEntry[] {
129
+ return scaleReferenceList().filter((e) => e.aliasOf === undefined);
130
+ }
131
+
132
+ /** Group primaries by family for the landing page. */
133
+ export function scaleReferenceByFamily(): Readonly<
134
+ Record<ScaleFamily, readonly ScaleReferenceEntry[]>
135
+ > {
136
+ const groups = {} as Record<ScaleFamily, ScaleReferenceEntry[]>;
137
+ for (const cap of SCALE_CAPABILITIES) {
138
+ groups[cap.family] = [];
139
+ }
140
+ for (const entry of scaleReferencePrimaries()) {
141
+ groups[entry.family].push(entry);
142
+ }
143
+ for (const family of Object.keys(groups) as ScaleFamily[]) {
144
+ groups[family] = Object.freeze(
145
+ groups[family].toSorted((a, b) => a.slug.localeCompare(b.slug)),
146
+ ) as ScaleReferenceEntry[];
147
+ }
148
+ return Object.freeze(groups);
149
+ }
150
+
151
+ /** Display labels for capability families on the index page. */
152
+ export const SCALE_FAMILY_LABELS: Readonly<Record<ScaleFamily, string>> = Object.freeze({
153
+ "position-continuous": "Position — continuous",
154
+ "position-binned": "Position — binned",
155
+ "position-temporal": "Position — temporal",
156
+ "position-discrete": "Position — discrete",
157
+ "color-fill": "Color and fill",
158
+ "numeric-style": "Size, linewidth, and alpha",
159
+ "finite-style": "Shape and linetype",
160
+ });
161
+
162
+ /** Known scale reference slugs (for route entry generation). */
163
+ export function knownScaleSlugs(): readonly string[] {
164
+ return scaleReferenceList().map((e) => e.slug);
165
+ }
@@ -0,0 +1,316 @@
1
+ /**
2
+ * Non-position mapped style scale authoring helpers.
3
+ * Position and color/fill helpers live in their sibling modules; the stable
4
+ * public facade re-exports this module from scale-helpers.ts.
5
+ */
6
+
7
+ import type { CellValue, GuideSpec, PositiveStyleScaleSpec, Scales } from "./schema.js";
8
+ import type { LinetypeName, PointShapeName } from "./schema-names.js";
9
+
10
+ // --- mapped numeric and finite-symbol styles --------------------------------
11
+
12
+ type NumericStyleAesthetic = "size" | "linewidth" | "alpha";
13
+ type FiniteStyleAesthetic = "shape" | "linetype";
14
+ type NumericStyleScaleSpec = PositiveStyleScaleSpec;
15
+
16
+ /**
17
+ * Portable size/linewidth config options. `sizeUnit` is size-only at runtime;
18
+ * it is stripped from alpha helper option types (SequentialStyleScaleOptions).
19
+ */
20
+ export type NumericStyleScaleOptions = Omit<NumericStyleScaleSpec, "type"> & {
21
+ sizeUnit?: "area" | "radius" | "area_zero";
22
+ };
23
+ /** Continuous/binned options shared by size, linewidth, and alpha (no sizeUnit). */
24
+ export type SequentialStyleScaleOptions = Omit<
25
+ NumericStyleScaleOptions,
26
+ "domainMode" | "onExhaust" | "sizeUnit"
27
+ >;
28
+ /** Size sequential/binned options — may set sizeUnit (#830). */
29
+ export type SizeSequentialStyleScaleOptions = SequentialStyleScaleOptions & {
30
+ /** Size aesthetic only; runtime ignores this for linewidth. */
31
+ sizeUnit?: "area" | "radius" | "area_zero";
32
+ };
33
+ export type DiscreteNumericStyleScaleOptions = Pick<
34
+ NumericStyleScaleSpec,
35
+ "domain" | "domainMode" | "range" | "reverse" | "naValue" | "unknownValue" | "onExhaust" | "guide"
36
+ >;
37
+ export type TemporalNumericStyleScaleOptions = Omit<SequentialStyleScaleOptions, "temporalKind">;
38
+ export type SizeTemporalNumericStyleScaleOptions = Omit<
39
+ SizeSequentialStyleScaleOptions,
40
+ "temporalKind"
41
+ >;
42
+ export type ManualNumericStyleScaleOptions = Pick<
43
+ NumericStyleScaleSpec,
44
+ "domain" | "naValue" | "unknownValue" | "guide"
45
+ > & { values: NonNullable<NumericStyleScaleSpec["range"]> };
46
+ export type IdentityNumericStyleScaleOptions = Pick<
47
+ NumericStyleScaleSpec,
48
+ "naValue" | "unknownValue" | "guide"
49
+ >;
50
+ export interface FiniteStyleScaleOptions<Output extends string = PointShapeName | LinetypeName> {
51
+ domain?: readonly CellValue[];
52
+ domainMode?: "grow" | "data";
53
+ breaks?: readonly number[];
54
+ range?: readonly Output[];
55
+ reverse?: boolean;
56
+ naValue?: Output;
57
+ unknownValue?: Output;
58
+ onExhaust?: "cycle" | "error";
59
+ labels?: string;
60
+ guide?: GuideSpec;
61
+ }
62
+ export type DiscreteFiniteStyleScaleOptions<Output extends string = PointShapeName | LinetypeName> =
63
+ Omit<FiniteStyleScaleOptions<Output>, "breaks" | "labels">;
64
+ export type BinnedFiniteStyleScaleOptions<Output extends string = PointShapeName | LinetypeName> =
65
+ Omit<FiniteStyleScaleOptions<Output>, "domain" | "domainMode" | "onExhaust"> & {
66
+ domain?: readonly [number, number];
67
+ };
68
+ type ShapeDiscreteStyleScaleOptions = DiscreteFiniteStyleScaleOptions<PointShapeName>;
69
+ type ShapeBinnedStyleScaleOptions = BinnedFiniteStyleScaleOptions<PointShapeName>;
70
+ type LinetypeDiscreteStyleScaleOptions = DiscreteFiniteStyleScaleOptions<LinetypeName>;
71
+ type LinetypeBinnedStyleScaleOptions = BinnedFiniteStyleScaleOptions<LinetypeName>;
72
+ export interface ManualFiniteStyleScaleOptions<
73
+ Output extends string = PointShapeName | LinetypeName,
74
+ > {
75
+ domain?: readonly CellValue[];
76
+ values: readonly Output[];
77
+ naValue?: Output;
78
+ unknownValue?: Output;
79
+ guide?: GuideSpec;
80
+ }
81
+ export interface IdentityFiniteStyleScaleOptions<
82
+ Output extends string = PointShapeName | LinetypeName,
83
+ > {
84
+ naValue?: Output;
85
+ unknownValue?: Output;
86
+ guide?: GuideSpec;
87
+ }
88
+
89
+ function numericStyleScale(
90
+ aesthetic: NumericStyleAesthetic,
91
+ type: "ordinal" | "sequential" | "binned" | "manual" | "identity",
92
+ options: NumericStyleScaleOptions = {},
93
+ temporalKind?: "date" | "datetime",
94
+ ): Scales {
95
+ return {
96
+ [aesthetic]: {
97
+ type,
98
+ ...options,
99
+ ...(temporalKind !== undefined && { temporalKind }),
100
+ },
101
+ };
102
+ }
103
+
104
+ function manualNumericStyleScale(
105
+ aesthetic: NumericStyleAesthetic,
106
+ options: ManualNumericStyleScaleOptions,
107
+ ): Scales {
108
+ const { values, ...rest } = options;
109
+ return numericStyleScale(aesthetic, "manual", { ...rest, range: [...values] });
110
+ }
111
+
112
+ function finiteStyleScale(
113
+ aesthetic: FiniteStyleAesthetic,
114
+ type: "ordinal" | "binned" | "manual" | "identity",
115
+ options: FiniteStyleScaleOptions = {},
116
+ ): Scales {
117
+ return { [aesthetic]: { type, ...options } };
118
+ }
119
+
120
+ function manualFiniteStyleScale(
121
+ aesthetic: FiniteStyleAesthetic,
122
+ options: ManualFiniteStyleScaleOptions,
123
+ ): Scales {
124
+ const { values, ...rest } = options;
125
+ return { [aesthetic]: { type: "manual", ...rest, range: [...values] } };
126
+ }
127
+
128
+ export type SizeAreaScaleOptions = SizeSequentialStyleScaleOptions & {
129
+ /** Max radius when range is omitted (ggplot2 `max_size`; default 6). */
130
+ maxSize?: number;
131
+ };
132
+
133
+ export function scaleSizeContinuous(options: SizeSequentialStyleScaleOptions = {}): Scales {
134
+ return numericStyleScale("size", "sequential", options);
135
+ }
136
+ export function scaleSizeDiscrete(options: DiscreteNumericStyleScaleOptions = {}): Scales {
137
+ return numericStyleScale("size", "ordinal", options);
138
+ }
139
+ export function scaleSizeBinned(options: SizeSequentialStyleScaleOptions = {}): Scales {
140
+ return numericStyleScale("size", "binned", options);
141
+ }
142
+ export function scaleSizeDate(options: SizeTemporalNumericStyleScaleOptions = {}): Scales {
143
+ return numericStyleScale("size", "sequential", options, "date");
144
+ }
145
+ export function scaleSizeDatetime(options: SizeTemporalNumericStyleScaleOptions = {}): Scales {
146
+ return numericStyleScale("size", "sequential", options, "datetime");
147
+ }
148
+ export function scaleSizeManual(options: ManualNumericStyleScaleOptions): Scales {
149
+ return manualNumericStyleScale("size", options);
150
+ }
151
+ export function scaleSizeIdentity(options: IdentityNumericStyleScaleOptions = {}): Scales {
152
+ return numericStyleScale("size", "identity", options);
153
+ }
154
+
155
+ /**
156
+ * ggplot2 `scale_size_area` — area ∝ value with zero→zero area.
157
+ * Prefer `maxSize` (or `range: [0, max]`) for the maximum radius.
158
+ */
159
+ export function scaleSizeArea(options: SizeAreaScaleOptions = {}): Scales {
160
+ const { maxSize, range, ...rest } = options;
161
+ const resolvedRange = range === undefined ? [0, maxSize ?? 6] : [...range];
162
+ return numericStyleScale("size", "sequential", {
163
+ ...rest,
164
+ range: resolvedRange,
165
+ sizeUnit: "area_zero",
166
+ });
167
+ }
168
+
169
+ /** ggplot2 `scale_size_binned_area` — binned values mapped with zero→zero area. */
170
+ export function scaleSizeBinnedArea(options: SizeAreaScaleOptions = {}): Scales {
171
+ const { maxSize, range, ...rest } = options;
172
+ const resolvedRange = range === undefined ? [0, maxSize ?? 6] : [...range];
173
+ return numericStyleScale("size", "binned", {
174
+ ...rest,
175
+ range: resolvedRange,
176
+ sizeUnit: "area_zero",
177
+ });
178
+ }
179
+
180
+ /** ggplot2 `scale_radius` — map value linearly to radius (not area). */
181
+ export function scaleRadius(options: SizeSequentialStyleScaleOptions = {}): Scales {
182
+ return numericStyleScale("size", "sequential", {
183
+ ...options,
184
+ sizeUnit: "radius",
185
+ });
186
+ }
187
+
188
+ /** ggplot2 `scale_size_ordinal` — ordered discrete sizes. */
189
+ export const scaleSizeOrdinal = scaleSizeDiscrete;
190
+
191
+ export function scaleLinewidthContinuous(options: SequentialStyleScaleOptions = {}): Scales {
192
+ return numericStyleScale("linewidth", "sequential", options);
193
+ }
194
+ export function scaleLinewidthDiscrete(options: DiscreteNumericStyleScaleOptions = {}): Scales {
195
+ return numericStyleScale("linewidth", "ordinal", options);
196
+ }
197
+ export function scaleLinewidthBinned(options: SequentialStyleScaleOptions = {}): Scales {
198
+ return numericStyleScale("linewidth", "binned", options);
199
+ }
200
+ export function scaleLinewidthDate(options: TemporalNumericStyleScaleOptions = {}): Scales {
201
+ return numericStyleScale("linewidth", "sequential", options, "date");
202
+ }
203
+ export function scaleLinewidthDatetime(options: TemporalNumericStyleScaleOptions = {}): Scales {
204
+ return numericStyleScale("linewidth", "sequential", options, "datetime");
205
+ }
206
+ export function scaleLinewidthManual(options: ManualNumericStyleScaleOptions): Scales {
207
+ return manualNumericStyleScale("linewidth", options);
208
+ }
209
+ export function scaleLinewidthIdentity(options: IdentityNumericStyleScaleOptions = {}): Scales {
210
+ return numericStyleScale("linewidth", "identity", options);
211
+ }
212
+
213
+ export function scaleAlphaContinuous(options: SequentialStyleScaleOptions = {}): Scales {
214
+ return numericStyleScale("alpha", "sequential", options);
215
+ }
216
+ export function scaleAlphaDiscrete(options: DiscreteNumericStyleScaleOptions = {}): Scales {
217
+ return numericStyleScale("alpha", "ordinal", options);
218
+ }
219
+ export function scaleAlphaBinned(options: SequentialStyleScaleOptions = {}): Scales {
220
+ return numericStyleScale("alpha", "binned", options);
221
+ }
222
+ export function scaleAlphaDate(options: TemporalNumericStyleScaleOptions = {}): Scales {
223
+ return numericStyleScale("alpha", "sequential", options, "date");
224
+ }
225
+ export function scaleAlphaDatetime(options: TemporalNumericStyleScaleOptions = {}): Scales {
226
+ return numericStyleScale("alpha", "sequential", options, "datetime");
227
+ }
228
+ export function scaleAlphaManual(options: ManualNumericStyleScaleOptions): Scales {
229
+ return manualNumericStyleScale("alpha", options);
230
+ }
231
+ export function scaleAlphaIdentity(options: IdentityNumericStyleScaleOptions = {}): Scales {
232
+ return numericStyleScale("alpha", "identity", options);
233
+ }
234
+
235
+ export function scaleShapeDiscrete(options: ShapeDiscreteStyleScaleOptions = {}): Scales {
236
+ return finiteStyleScale("shape", "ordinal", options);
237
+ }
238
+ export function scaleShapeBinned(options: ShapeBinnedStyleScaleOptions = {}): Scales {
239
+ return finiteStyleScale("shape", "binned", options);
240
+ }
241
+ export function scaleShapeManual(options: ManualFiniteStyleScaleOptions<PointShapeName>): Scales {
242
+ return manualFiniteStyleScale("shape", options);
243
+ }
244
+ export function scaleShapeIdentity(
245
+ options: IdentityFiniteStyleScaleOptions<PointShapeName> = {},
246
+ ): Scales {
247
+ return finiteStyleScale("shape", "identity", options);
248
+ }
249
+
250
+ export function scaleLinetypeDiscrete(options: LinetypeDiscreteStyleScaleOptions = {}): Scales {
251
+ return finiteStyleScale("linetype", "ordinal", options);
252
+ }
253
+ export function scaleLinetypeBinned(options: LinetypeBinnedStyleScaleOptions = {}): Scales {
254
+ return finiteStyleScale("linetype", "binned", options);
255
+ }
256
+ export function scaleLinetypeManual(options: ManualFiniteStyleScaleOptions<LinetypeName>): Scales {
257
+ return manualFiniteStyleScale("linetype", options);
258
+ }
259
+ export function scaleLinetypeIdentity(
260
+ options: IdentityFiniteStyleScaleOptions<LinetypeName> = {},
261
+ ): Scales {
262
+ return finiteStyleScale("linetype", "identity", options);
263
+ }
264
+
265
+ export const scaleSize = scaleSizeContinuous;
266
+ export const scaleLinewidth = scaleLinewidthContinuous;
267
+ export const scaleAlpha = scaleAlphaContinuous;
268
+ export const scaleShape = scaleShapeDiscrete;
269
+ export const scaleLinetype = scaleLinetypeDiscrete;
270
+ // ggplot2 scale_*_ordinal spellings — discrete style already emits type:"ordinal" (#832).
271
+ export const scaleAlphaOrdinal = scaleAlphaDiscrete;
272
+ export const scaleLinewidthOrdinal = scaleLinewidthDiscrete;
273
+ export const scaleShapeOrdinal = scaleShapeDiscrete;
274
+ export const scale_size_continuous = scaleSizeContinuous;
275
+ export const scale_size_discrete = scaleSizeDiscrete;
276
+ export const scale_size_binned = scaleSizeBinned;
277
+ export const scale_size_date = scaleSizeDate;
278
+ export const scale_size_datetime = scaleSizeDatetime;
279
+ export const scale_size_manual = scaleSizeManual;
280
+ export const scale_size_identity = scaleSizeIdentity;
281
+ export const scale_size = scaleSizeContinuous;
282
+ export const scale_size_area = scaleSizeArea;
283
+ export const scale_size_binned_area = scaleSizeBinnedArea;
284
+ export const scale_size_ordinal = scaleSizeOrdinal;
285
+ export const scale_radius = scaleRadius;
286
+ export const scale_linewidth_continuous = scaleLinewidthContinuous;
287
+ export const scale_linewidth_discrete = scaleLinewidthDiscrete;
288
+ export const scale_linewidth_binned = scaleLinewidthBinned;
289
+ export const scale_linewidth_date = scaleLinewidthDate;
290
+ export const scale_linewidth_datetime = scaleLinewidthDatetime;
291
+ export const scale_linewidth_manual = scaleLinewidthManual;
292
+ export const scale_linewidth_identity = scaleLinewidthIdentity;
293
+ /** Bare ggplot2 alias → continuous (#832). */
294
+ export const scale_linewidth = scaleLinewidthContinuous;
295
+ export const scale_linewidth_ordinal = scaleLinewidthOrdinal;
296
+ export const scale_alpha_continuous = scaleAlphaContinuous;
297
+ export const scale_alpha_discrete = scaleAlphaDiscrete;
298
+ export const scale_alpha_binned = scaleAlphaBinned;
299
+ export const scale_alpha_date = scaleAlphaDate;
300
+ export const scale_alpha_datetime = scaleAlphaDatetime;
301
+ export const scale_alpha_manual = scaleAlphaManual;
302
+ export const scale_alpha_identity = scaleAlphaIdentity;
303
+ /** Bare ggplot2 alias → continuous (#832). */
304
+ export const scale_alpha = scaleAlphaContinuous;
305
+ export const scale_alpha_ordinal = scaleAlphaOrdinal;
306
+ export const scale_shape = scaleShapeDiscrete;
307
+ export const scale_shape_discrete = scaleShapeDiscrete;
308
+ export const scale_shape_ordinal = scaleShapeOrdinal;
309
+ export const scale_shape_binned = scaleShapeBinned;
310
+ export const scale_shape_manual = scaleShapeManual;
311
+ export const scale_shape_identity = scaleShapeIdentity;
312
+ export const scale_linetype = scaleLinetypeDiscrete;
313
+ export const scale_linetype_discrete = scaleLinetypeDiscrete;
314
+ export const scale_linetype_binned = scaleLinetypeBinned;
315
+ export const scale_linetype_manual = scaleLinetypeManual;
316
+ export const scale_linetype_identity = scaleLinetypeIdentity;