@ggts-sh/svelte 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 (656) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +97 -0
  3. package/bin/ggts-codemod.js +47 -0
  4. package/dist/GGPlot.svelte +491 -0
  5. package/dist/GGPlot.svelte.d.ts +67 -0
  6. package/dist/a11y/CanvasA11y.svelte +115 -0
  7. package/dist/a11y/CanvasA11y.svelte.d.ts +15 -0
  8. package/dist/a11y/canvas-a11y.d.ts +1 -0
  9. package/dist/a11y/canvas-a11y.js +2 -0
  10. package/dist/assembly/assemble.d.ts +1 -0
  11. package/dist/assembly/assemble.js +1 -0
  12. package/dist/assembly/labels.d.ts +43 -0
  13. package/dist/assembly/labels.js +126 -0
  14. package/dist/assembly/layout.d.ts +158 -0
  15. package/dist/assembly/layout.js +175 -0
  16. package/dist/chrome/StatusChrome.svelte +125 -0
  17. package/dist/chrome/StatusChrome.svelte.d.ts +16 -0
  18. package/dist/chrome/ToolRail.svelte +293 -0
  19. package/dist/chrome/ToolRail.svelte.d.ts +26 -0
  20. package/dist/chrome/chrome-state.svelte.d.ts +63 -0
  21. package/dist/chrome/chrome-state.svelte.js +158 -0
  22. package/dist/chrome/theme-css.d.ts +16 -0
  23. package/dist/chrome/theme-css.js +16 -0
  24. package/dist/codemod/cli.d.ts +16 -0
  25. package/dist/codemod/cli.js +150 -0
  26. package/dist/codemod/edits.d.ts +28 -0
  27. package/dist/codemod/edits.js +36 -0
  28. package/dist/codemod/index.d.ts +10 -0
  29. package/dist/codemod/index.js +10 -0
  30. package/dist/codemod/migrate-plot-props-rewrite.d.ts +86 -0
  31. package/dist/codemod/migrate-plot-props-rewrite.js +228 -0
  32. package/dist/codemod/migrate-plot-props.d.ts +38 -0
  33. package/dist/codemod/migrate-plot-props.js +159 -0
  34. package/dist/coord/Coord.svelte +21 -0
  35. package/dist/coord/Coord.svelte.d.ts +16 -0
  36. package/dist/coord/CoordCartesian.svelte +11 -0
  37. package/dist/coord/CoordCartesian.svelte.d.ts +18 -0
  38. package/dist/coord/CoordFixed.svelte +17 -0
  39. package/dist/coord/CoordFixed.svelte.d.ts +10 -0
  40. package/dist/coord/CoordFlip.svelte +11 -0
  41. package/dist/coord/CoordFlip.svelte.d.ts +18 -0
  42. package/dist/coord/CoordPolar.svelte +16 -0
  43. package/dist/coord/CoordPolar.svelte.d.ts +9 -0
  44. package/dist/coord/CoordRadial.svelte +16 -0
  45. package/dist/coord/CoordRadial.svelte.d.ts +9 -0
  46. package/dist/coord/CoordSf.svelte +16 -0
  47. package/dist/coord/CoordSf.svelte.d.ts +9 -0
  48. package/dist/coord/CoordTransform.svelte +16 -0
  49. package/dist/coord/CoordTransform.svelte.d.ts +9 -0
  50. package/dist/data/index.d.ts +1 -0
  51. package/dist/data/index.js +2 -0
  52. package/dist/diagnostics/composition.d.ts +112 -0
  53. package/dist/diagnostics/composition.js +203 -0
  54. package/dist/diagnostics/deprecation.d.ts +58 -0
  55. package/dist/diagnostics/deprecation.js +27 -0
  56. package/dist/diagnostics/plot-engine-diagnostics.svelte.d.ts +44 -0
  57. package/dist/diagnostics/plot-engine-diagnostics.svelte.js +193 -0
  58. package/dist/facet/Facet.svelte +23 -0
  59. package/dist/facet/Facet.svelte.d.ts +16 -0
  60. package/dist/facet/FacetGrid.svelte +32 -0
  61. package/dist/facet/FacetGrid.svelte.d.ts +16 -0
  62. package/dist/facet/FacetWrap.svelte +32 -0
  63. package/dist/facet/FacetWrap.svelte.d.ts +16 -0
  64. package/dist/fonts/RobotoCondensed-Bold.ttf +0 -0
  65. package/dist/fonts/RobotoCondensed-Light.ttf +0 -0
  66. package/dist/fonts/RobotoCondensed-Regular.ttf +0 -0
  67. package/dist/fonts/THIRD_PARTY_NOTICES.txt +416 -0
  68. package/dist/geoms/GeomAbline.svelte +25 -0
  69. package/dist/geoms/GeomAbline.svelte.d.ts +7 -0
  70. package/dist/geoms/GeomArea.svelte +12 -0
  71. package/dist/geoms/GeomArea.svelte.d.ts +7 -0
  72. package/dist/geoms/GeomBar.svelte +12 -0
  73. package/dist/geoms/GeomBar.svelte.d.ts +7 -0
  74. package/dist/geoms/GeomBin2d.svelte +21 -0
  75. package/dist/geoms/GeomBin2d.svelte.d.ts +7 -0
  76. package/dist/geoms/GeomBlank.svelte +12 -0
  77. package/dist/geoms/GeomBlank.svelte.d.ts +7 -0
  78. package/dist/geoms/GeomBoxplot.svelte +25 -0
  79. package/dist/geoms/GeomBoxplot.svelte.d.ts +7 -0
  80. package/dist/geoms/GeomCol.svelte +12 -0
  81. package/dist/geoms/GeomCol.svelte.d.ts +7 -0
  82. package/dist/geoms/GeomContour.svelte +25 -0
  83. package/dist/geoms/GeomContour.svelte.d.ts +7 -0
  84. package/dist/geoms/GeomCount.svelte +12 -0
  85. package/dist/geoms/GeomCount.svelte.d.ts +7 -0
  86. package/dist/geoms/GeomCrossbar.svelte +25 -0
  87. package/dist/geoms/GeomCrossbar.svelte.d.ts +7 -0
  88. package/dist/geoms/GeomCurve.svelte +21 -0
  89. package/dist/geoms/GeomCurve.svelte.d.ts +7 -0
  90. package/dist/geoms/GeomDensity.svelte +25 -0
  91. package/dist/geoms/GeomDensity.svelte.d.ts +7 -0
  92. package/dist/geoms/GeomDensity2d.svelte +25 -0
  93. package/dist/geoms/GeomDensity2d.svelte.d.ts +7 -0
  94. package/dist/geoms/GeomDensity2dFilled.svelte +25 -0
  95. package/dist/geoms/GeomDensity2dFilled.svelte.d.ts +7 -0
  96. package/dist/geoms/GeomDotplot.svelte +25 -0
  97. package/dist/geoms/GeomDotplot.svelte.d.ts +7 -0
  98. package/dist/geoms/GeomErrorbar.svelte +25 -0
  99. package/dist/geoms/GeomErrorbar.svelte.d.ts +7 -0
  100. package/dist/geoms/GeomFreqpoly.svelte +25 -0
  101. package/dist/geoms/GeomFreqpoly.svelte.d.ts +7 -0
  102. package/dist/geoms/GeomFunction.svelte +25 -0
  103. package/dist/geoms/GeomFunction.svelte.d.ts +7 -0
  104. package/dist/geoms/GeomHex.svelte +21 -0
  105. package/dist/geoms/GeomHex.svelte.d.ts +7 -0
  106. package/dist/geoms/GeomHistogram.svelte +25 -0
  107. package/dist/geoms/GeomHistogram.svelte.d.ts +7 -0
  108. package/dist/geoms/GeomHline.svelte +12 -0
  109. package/dist/geoms/GeomHline.svelte.d.ts +7 -0
  110. package/dist/geoms/GeomJitter.svelte +35 -0
  111. package/dist/geoms/GeomJitter.svelte.d.ts +13 -0
  112. package/dist/geoms/GeomLabel.svelte +12 -0
  113. package/dist/geoms/GeomLabel.svelte.d.ts +7 -0
  114. package/dist/geoms/GeomLine.svelte +12 -0
  115. package/dist/geoms/GeomLine.svelte.d.ts +7 -0
  116. package/dist/geoms/GeomLinerange.svelte +25 -0
  117. package/dist/geoms/GeomLinerange.svelte.d.ts +7 -0
  118. package/dist/geoms/GeomMap.svelte +21 -0
  119. package/dist/geoms/GeomMap.svelte.d.ts +7 -0
  120. package/dist/geoms/GeomPath.svelte +12 -0
  121. package/dist/geoms/GeomPath.svelte.d.ts +7 -0
  122. package/dist/geoms/GeomPoint.svelte +12 -0
  123. package/dist/geoms/GeomPoint.svelte.d.ts +7 -0
  124. package/dist/geoms/GeomPointrange.svelte +25 -0
  125. package/dist/geoms/GeomPointrange.svelte.d.ts +7 -0
  126. package/dist/geoms/GeomPolygon.svelte +25 -0
  127. package/dist/geoms/GeomPolygon.svelte.d.ts +7 -0
  128. package/dist/geoms/GeomQq.svelte +21 -0
  129. package/dist/geoms/GeomQq.svelte.d.ts +7 -0
  130. package/dist/geoms/GeomQqLine.svelte +25 -0
  131. package/dist/geoms/GeomQqLine.svelte.d.ts +7 -0
  132. package/dist/geoms/GeomQuantile.svelte +25 -0
  133. package/dist/geoms/GeomQuantile.svelte.d.ts +7 -0
  134. package/dist/geoms/GeomRaster.svelte +25 -0
  135. package/dist/geoms/GeomRaster.svelte.d.ts +7 -0
  136. package/dist/geoms/GeomRect.svelte +12 -0
  137. package/dist/geoms/GeomRect.svelte.d.ts +7 -0
  138. package/dist/geoms/GeomRibbon.svelte +16 -0
  139. package/dist/geoms/GeomRibbon.svelte.d.ts +7 -0
  140. package/dist/geoms/GeomRug.svelte +21 -0
  141. package/dist/geoms/GeomRug.svelte.d.ts +7 -0
  142. package/dist/geoms/GeomRule.svelte +12 -0
  143. package/dist/geoms/GeomRule.svelte.d.ts +7 -0
  144. package/dist/geoms/GeomSegment.svelte +16 -0
  145. package/dist/geoms/GeomSegment.svelte.d.ts +7 -0
  146. package/dist/geoms/GeomSf.svelte +21 -0
  147. package/dist/geoms/GeomSf.svelte.d.ts +7 -0
  148. package/dist/geoms/GeomSfLabel.svelte +25 -0
  149. package/dist/geoms/GeomSfLabel.svelte.d.ts +7 -0
  150. package/dist/geoms/GeomSfText.svelte +25 -0
  151. package/dist/geoms/GeomSfText.svelte.d.ts +7 -0
  152. package/dist/geoms/GeomSmooth.svelte +25 -0
  153. package/dist/geoms/GeomSmooth.svelte.d.ts +7 -0
  154. package/dist/geoms/GeomSpoke.svelte +21 -0
  155. package/dist/geoms/GeomSpoke.svelte.d.ts +7 -0
  156. package/dist/geoms/GeomStep.svelte +12 -0
  157. package/dist/geoms/GeomStep.svelte.d.ts +7 -0
  158. package/dist/geoms/GeomText.svelte +12 -0
  159. package/dist/geoms/GeomText.svelte.d.ts +7 -0
  160. package/dist/geoms/GeomTile.svelte +21 -0
  161. package/dist/geoms/GeomTile.svelte.d.ts +7 -0
  162. package/dist/geoms/GeomViolin.svelte +25 -0
  163. package/dist/geoms/GeomViolin.svelte.d.ts +7 -0
  164. package/dist/geoms/GeomVline.svelte +12 -0
  165. package/dist/geoms/GeomVline.svelte.d.ts +7 -0
  166. package/dist/geoms/factory.svelte.d.ts +41 -0
  167. package/dist/geoms/factory.svelte.js +60 -0
  168. package/dist/geoms/registry.svelte.d.ts +71 -0
  169. package/dist/geoms/registry.svelte.js +177 -0
  170. package/dist/guides/GuideAxis.svelte +20 -0
  171. package/dist/guides/GuideAxis.svelte.d.ts +14 -0
  172. package/dist/guides/GuideColorbar.svelte +22 -0
  173. package/dist/guides/GuideColorbar.svelte.d.ts +13 -0
  174. package/dist/guides/GuideColorsteps.svelte +22 -0
  175. package/dist/guides/GuideColorsteps.svelte.d.ts +13 -0
  176. package/dist/guides/GuideLegend.svelte +90 -0
  177. package/dist/guides/GuideLegend.svelte.d.ts +37 -0
  178. package/dist/guides/GuideNone.svelte +19 -0
  179. package/dist/guides/GuideNone.svelte.d.ts +7 -0
  180. package/dist/guides/Guides.svelte +14 -0
  181. package/dist/guides/Guides.svelte.d.ts +13 -0
  182. package/dist/guides/factory.svelte.d.ts +36 -0
  183. package/dist/guides/factory.svelte.js +15 -0
  184. package/dist/index.d.ts +418 -0
  185. package/dist/index.js +376 -0
  186. package/dist/inspection/Inspect.svelte +71 -0
  187. package/dist/inspection/Inspect.svelte.d.ts +36 -0
  188. package/dist/inspection/Tooltip.svelte +439 -0
  189. package/dist/inspection/Tooltip.svelte.d.ts +32 -0
  190. package/dist/inspection/apply.d.ts +120 -0
  191. package/dist/inspection/apply.js +99 -0
  192. package/dist/inspection/coordinator.d.ts +51 -0
  193. package/dist/inspection/coordinator.js +354 -0
  194. package/dist/inspection/display-members.d.ts +1 -0
  195. package/dist/inspection/display-members.js +2 -0
  196. package/dist/inspection/frame.d.ts +90 -0
  197. package/dist/inspection/frame.js +76 -0
  198. package/dist/inspection/group-total.d.ts +1 -0
  199. package/dist/inspection/group-total.js +2 -0
  200. package/dist/inspection/inspect-guide-axes.d.ts +10 -0
  201. package/dist/inspection/inspect-guide-axes.js +24 -0
  202. package/dist/inspection/inspection-reconcile.svelte.d.ts +37 -0
  203. package/dist/inspection/inspection-reconcile.svelte.js +33 -0
  204. package/dist/inspection/inspection-state.svelte.d.ts +86 -0
  205. package/dist/inspection/inspection-state.svelte.js +347 -0
  206. package/dist/inspection/inspection-traversal.svelte.d.ts +29 -0
  207. package/dist/inspection/inspection-traversal.svelte.js +52 -0
  208. package/dist/inspection/pointer-inspect.d.ts +74 -0
  209. package/dist/inspection/pointer-inspect.js +158 -0
  210. package/dist/inspection/resolver.d.ts +3 -0
  211. package/dist/inspection/resolver.js +4 -0
  212. package/dist/inspection/teardown.d.ts +199 -0
  213. package/dist/inspection/teardown.js +181 -0
  214. package/dist/inspection/tooltip-chrome.d.ts +19 -0
  215. package/dist/inspection/tooltip-chrome.js +17 -0
  216. package/dist/inspection/tooltip-motion.d.ts +25 -0
  217. package/dist/inspection/tooltip-motion.js +32 -0
  218. package/dist/inspection/tooltip-presence.svelte.d.ts +49 -0
  219. package/dist/inspection/tooltip-presence.svelte.js +110 -0
  220. package/dist/inspection/tooltip-total.d.ts +1 -0
  221. package/dist/inspection/tooltip-total.js +2 -0
  222. package/dist/interaction/capability-resolution.svelte.d.ts +42 -0
  223. package/dist/interaction/capability-resolution.svelte.js +40 -0
  224. package/dist/interaction/capability.d.ts +129 -0
  225. package/dist/interaction/capability.js +134 -0
  226. package/dist/interaction/controller.svelte.d.ts +4 -0
  227. package/dist/interaction/controller.svelte.js +43 -0
  228. package/dist/interaction/inspect-geom-advisories.d.ts +10 -0
  229. package/dist/interaction/inspect-geom-advisories.js +10 -0
  230. package/dist/interaction/interaction-context.svelte.d.ts +57 -0
  231. package/dist/interaction/interaction-context.svelte.js +4 -0
  232. package/dist/interaction/interaction-diagnostics.d.ts +11 -0
  233. package/dist/interaction/interaction-diagnostics.js +173 -0
  234. package/dist/interaction/interaction-states.svelte.d.ts +84 -0
  235. package/dist/interaction/interaction-states.svelte.js +55 -0
  236. package/dist/interaction/interaction.d.ts +304 -0
  237. package/dist/interaction/interaction.js +7 -0
  238. package/dist/interaction/normalize-interaction-config.d.ts +9 -0
  239. package/dist/interaction/normalize-interaction-config.js +112 -0
  240. package/dist/interaction/reducer.d.ts +97 -0
  241. package/dist/interaction/reducer.js +117 -0
  242. package/dist/interaction/resolve-inspect-capability.d.ts +40 -0
  243. package/dist/interaction/resolve-inspect-capability.js +50 -0
  244. package/dist/interaction/scoped-store.svelte.d.ts +73 -0
  245. package/dist/interaction/scoped-store.svelte.js +93 -0
  246. package/dist/interaction/target.d.ts +91 -0
  247. package/dist/interaction/target.js +68 -0
  248. package/dist/interaction/transition-owner.d.ts +19 -0
  249. package/dist/interaction/transition-owner.js +10 -0
  250. package/dist/interaction/wiring-advisories.d.ts +33 -0
  251. package/dist/interaction/wiring-advisories.js +46 -0
  252. package/dist/interval/BoundsEditor.svelte +332 -0
  253. package/dist/interval/BoundsEditor.svelte.d.ts +10 -0
  254. package/dist/interval/bounds-editor.d.ts +1 -0
  255. package/dist/interval/bounds-editor.js +2 -0
  256. package/dist/interval/consumption.d.ts +1 -0
  257. package/dist/interval/consumption.js +2 -0
  258. package/dist/interval/interval-bounds-state.svelte.d.ts +53 -0
  259. package/dist/interval/interval-bounds-state.svelte.js +117 -0
  260. package/dist/interval/interval-state-helpers.d.ts +10 -0
  261. package/dist/interval/interval-state-helpers.js +34 -0
  262. package/dist/interval/interval-state.svelte.d.ts +60 -0
  263. package/dist/interval/interval-state.svelte.js +360 -0
  264. package/dist/interval/interval.d.ts +1 -0
  265. package/dist/interval/interval.js +2 -0
  266. package/dist/interval/precise-bounds.d.ts +1 -0
  267. package/dist/interval/precise-bounds.js +2 -0
  268. package/dist/interval/query.d.ts +1 -0
  269. package/dist/interval/query.js +2 -0
  270. package/dist/labs/Labs.svelte +29 -0
  271. package/dist/labs/Labs.svelte.d.ts +16 -0
  272. package/dist/layers/fold.d.ts +2 -0
  273. package/dist/layers/fold.js +1 -0
  274. package/dist/layers/grammar-families.d.ts +2 -0
  275. package/dist/layers/grammar-families.js +1 -0
  276. package/dist/layers/plot-layer-contract.d.ts +1 -0
  277. package/dist/layers/plot-layer-contract.js +29 -0
  278. package/dist/layers/plot-layer.svelte.d.ts +42 -0
  279. package/dist/layers/plot-layer.svelte.js +34 -0
  280. package/dist/layers/types.d.ts +2 -0
  281. package/dist/layers/types.js +1 -0
  282. package/dist/legend/Legend.svelte +24 -0
  283. package/dist/legend/Legend.svelte.d.ts +5 -0
  284. package/dist/legend/LegendFilters.svelte +196 -0
  285. package/dist/legend/LegendFilters.svelte.d.ts +8 -0
  286. package/dist/legend/LegendTargets.svelte +393 -0
  287. package/dist/legend/LegendTargets.svelte.d.ts +31 -0
  288. package/dist/legend/entry-key-index.d.ts +1 -0
  289. package/dist/legend/entry-key-index.js +2 -0
  290. package/dist/legend/entry-key-index.svelte.d.ts +34 -0
  291. package/dist/legend/entry-key-index.svelte.js +35 -0
  292. package/dist/legend/filter-state.svelte.d.ts +66 -0
  293. package/dist/legend/filter-state.svelte.js +284 -0
  294. package/dist/legend/filter.d.ts +1 -0
  295. package/dist/legend/filter.js +2 -0
  296. package/dist/legend/focus-emphasis.d.ts +72 -0
  297. package/dist/legend/focus-emphasis.js +91 -0
  298. package/dist/legend/focus-plans.d.ts +89 -0
  299. package/dist/legend/focus-plans.js +72 -0
  300. package/dist/legend/focus-reconcile.svelte.d.ts +53 -0
  301. package/dist/legend/focus-reconcile.svelte.js +113 -0
  302. package/dist/legend/focus-state.svelte.d.ts +73 -0
  303. package/dist/legend/focus-state.svelte.js +338 -0
  304. package/dist/legend/focus.d.ts +1 -0
  305. package/dist/legend/focus.js +2 -0
  306. package/dist/legend/resolve-legend-capability.d.ts +52 -0
  307. package/dist/legend/resolve-legend-capability.js +68 -0
  308. package/dist/legend/resolve-legend-filter.d.ts +65 -0
  309. package/dist/legend/resolve-legend-filter.js +54 -0
  310. package/dist/legend/resolve-legend-focus.d.ts +58 -0
  311. package/dist/legend/resolve-legend-focus.js +36 -0
  312. package/dist/legend/surface.d.ts +190 -0
  313. package/dist/legend/surface.js +158 -0
  314. package/dist/plot-engine-deriveds.svelte.d.ts +75 -0
  315. package/dist/plot-engine-deriveds.svelte.js +166 -0
  316. package/dist/plot-engine.svelte.d.ts +116 -0
  317. package/dist/plot-engine.svelte.js +316 -0
  318. package/dist/plot-props.d.ts +144 -0
  319. package/dist/plot-props.js +81 -0
  320. package/dist/runtime/announcer.svelte.d.ts +17 -0
  321. package/dist/runtime/announcer.svelte.js +28 -0
  322. package/dist/runtime/paint.d.ts +38 -0
  323. package/dist/runtime/paint.js +45 -0
  324. package/dist/runtime/resolve-datum-key.d.ts +53 -0
  325. package/dist/runtime/resolve-datum-key.js +73 -0
  326. package/dist/runtime/runtime.svelte.d.ts +37 -0
  327. package/dist/runtime/runtime.svelte.js +233 -0
  328. package/dist/runtime/semantic-candidate-projection.svelte.d.ts +29 -0
  329. package/dist/runtime/semantic-candidate-projection.svelte.js +137 -0
  330. package/dist/runtime/semantic-data-identity.d.ts +64 -0
  331. package/dist/runtime/semantic-data-identity.js +153 -0
  332. package/dist/runtime/semantic-keys-projection.d.ts +22 -0
  333. package/dist/runtime/semantic-keys-projection.js +40 -0
  334. package/dist/runtime/semantic-keys-resolve.d.ts +69 -0
  335. package/dist/runtime/semantic-keys-resolve.js +122 -0
  336. package/dist/runtime/semantic-keys.svelte.d.ts +30 -0
  337. package/dist/runtime/semantic-keys.svelte.js +69 -0
  338. package/dist/runtime/semantic-source-identity.d.ts +9 -0
  339. package/dist/runtime/semantic-source-identity.js +16 -0
  340. package/dist/scale/Scale.svelte +26 -0
  341. package/dist/scale/Scale.svelte.d.ts +21 -0
  342. package/dist/scale/ScaleAlphaBinned.svelte +14 -0
  343. package/dist/scale/ScaleAlphaBinned.svelte.d.ts +4 -0
  344. package/dist/scale/ScaleAlphaContinuous.svelte +14 -0
  345. package/dist/scale/ScaleAlphaContinuous.svelte.d.ts +4 -0
  346. package/dist/scale/ScaleAlphaDate.svelte +15 -0
  347. package/dist/scale/ScaleAlphaDate.svelte.d.ts +5 -0
  348. package/dist/scale/ScaleAlphaDatetime.svelte +15 -0
  349. package/dist/scale/ScaleAlphaDatetime.svelte.d.ts +5 -0
  350. package/dist/scale/ScaleAlphaDiscrete.svelte +14 -0
  351. package/dist/scale/ScaleAlphaDiscrete.svelte.d.ts +4 -0
  352. package/dist/scale/ScaleAlphaIdentity.svelte +14 -0
  353. package/dist/scale/ScaleAlphaIdentity.svelte.d.ts +4 -0
  354. package/dist/scale/ScaleAlphaManual.svelte +14 -0
  355. package/dist/scale/ScaleAlphaManual.svelte.d.ts +4 -0
  356. package/dist/scale/ScaleColorBinned.svelte +14 -0
  357. package/dist/scale/ScaleColorBinned.svelte.d.ts +3 -0
  358. package/dist/scale/ScaleColorBrewer.svelte +14 -0
  359. package/dist/scale/ScaleColorBrewer.svelte.d.ts +4 -0
  360. package/dist/scale/ScaleColorContinuous.svelte +14 -0
  361. package/dist/scale/ScaleColorContinuous.svelte.d.ts +4 -0
  362. package/dist/scale/ScaleColorDate.svelte +15 -0
  363. package/dist/scale/ScaleColorDate.svelte.d.ts +5 -0
  364. package/dist/scale/ScaleColorDatetime.svelte +15 -0
  365. package/dist/scale/ScaleColorDatetime.svelte.d.ts +5 -0
  366. package/dist/scale/ScaleColorDiscrete.svelte +14 -0
  367. package/dist/scale/ScaleColorDiscrete.svelte.d.ts +4 -0
  368. package/dist/scale/ScaleColorDistiller.svelte +14 -0
  369. package/dist/scale/ScaleColorDistiller.svelte.d.ts +4 -0
  370. package/dist/scale/ScaleColorFermenter.svelte +14 -0
  371. package/dist/scale/ScaleColorFermenter.svelte.d.ts +4 -0
  372. package/dist/scale/ScaleColorGradient.svelte +11 -0
  373. package/dist/scale/ScaleColorGradient.svelte.d.ts +4 -0
  374. package/dist/scale/ScaleColorGradient2.svelte +14 -0
  375. package/dist/scale/ScaleColorGradient2.svelte.d.ts +4 -0
  376. package/dist/scale/ScaleColorGradientn.svelte +14 -0
  377. package/dist/scale/ScaleColorGradientn.svelte.d.ts +4 -0
  378. package/dist/scale/ScaleColorGrey.svelte +11 -0
  379. package/dist/scale/ScaleColorGrey.svelte.d.ts +4 -0
  380. package/dist/scale/ScaleColorHue.svelte +11 -0
  381. package/dist/scale/ScaleColorHue.svelte.d.ts +4 -0
  382. package/dist/scale/ScaleColorIdentity.svelte +14 -0
  383. package/dist/scale/ScaleColorIdentity.svelte.d.ts +4 -0
  384. package/dist/scale/ScaleColorLog10.svelte +14 -0
  385. package/dist/scale/ScaleColorLog10.svelte.d.ts +4 -0
  386. package/dist/scale/ScaleColorManual.svelte +14 -0
  387. package/dist/scale/ScaleColorManual.svelte.d.ts +4 -0
  388. package/dist/scale/ScaleColorOrdinal.svelte +14 -0
  389. package/dist/scale/ScaleColorOrdinal.svelte.d.ts +3 -0
  390. package/dist/scale/ScaleColorSqrt.svelte +14 -0
  391. package/dist/scale/ScaleColorSqrt.svelte.d.ts +4 -0
  392. package/dist/scale/ScaleColorSteps.svelte +11 -0
  393. package/dist/scale/ScaleColorSteps.svelte.d.ts +4 -0
  394. package/dist/scale/ScaleColorSteps2.svelte +11 -0
  395. package/dist/scale/ScaleColorSteps2.svelte.d.ts +4 -0
  396. package/dist/scale/ScaleColorStepsn.svelte +11 -0
  397. package/dist/scale/ScaleColorStepsn.svelte.d.ts +4 -0
  398. package/dist/scale/ScaleColorViridisB.svelte +11 -0
  399. package/dist/scale/ScaleColorViridisB.svelte.d.ts +4 -0
  400. package/dist/scale/ScaleColorViridisC.svelte +11 -0
  401. package/dist/scale/ScaleColorViridisC.svelte.d.ts +4 -0
  402. package/dist/scale/ScaleColorViridisD.svelte +11 -0
  403. package/dist/scale/ScaleColorViridisD.svelte.d.ts +4 -0
  404. package/dist/scale/ScaleFillBinned.svelte +11 -0
  405. package/dist/scale/ScaleFillBinned.svelte.d.ts +3 -0
  406. package/dist/scale/ScaleFillBrewer.svelte +11 -0
  407. package/dist/scale/ScaleFillBrewer.svelte.d.ts +4 -0
  408. package/dist/scale/ScaleFillContinuous.svelte +14 -0
  409. package/dist/scale/ScaleFillContinuous.svelte.d.ts +4 -0
  410. package/dist/scale/ScaleFillDate.svelte +12 -0
  411. package/dist/scale/ScaleFillDate.svelte.d.ts +5 -0
  412. package/dist/scale/ScaleFillDatetime.svelte +15 -0
  413. package/dist/scale/ScaleFillDatetime.svelte.d.ts +5 -0
  414. package/dist/scale/ScaleFillDiscrete.svelte +14 -0
  415. package/dist/scale/ScaleFillDiscrete.svelte.d.ts +4 -0
  416. package/dist/scale/ScaleFillDistiller.svelte +14 -0
  417. package/dist/scale/ScaleFillDistiller.svelte.d.ts +4 -0
  418. package/dist/scale/ScaleFillFermenter.svelte +14 -0
  419. package/dist/scale/ScaleFillFermenter.svelte.d.ts +4 -0
  420. package/dist/scale/ScaleFillGradient.svelte +11 -0
  421. package/dist/scale/ScaleFillGradient.svelte.d.ts +4 -0
  422. package/dist/scale/ScaleFillGradient2.svelte +14 -0
  423. package/dist/scale/ScaleFillGradient2.svelte.d.ts +4 -0
  424. package/dist/scale/ScaleFillGradientn.svelte +14 -0
  425. package/dist/scale/ScaleFillGradientn.svelte.d.ts +4 -0
  426. package/dist/scale/ScaleFillGrey.svelte +11 -0
  427. package/dist/scale/ScaleFillGrey.svelte.d.ts +4 -0
  428. package/dist/scale/ScaleFillHue.svelte +11 -0
  429. package/dist/scale/ScaleFillHue.svelte.d.ts +4 -0
  430. package/dist/scale/ScaleFillIdentity.svelte +14 -0
  431. package/dist/scale/ScaleFillIdentity.svelte.d.ts +4 -0
  432. package/dist/scale/ScaleFillLog10.svelte +14 -0
  433. package/dist/scale/ScaleFillLog10.svelte.d.ts +4 -0
  434. package/dist/scale/ScaleFillManual.svelte +11 -0
  435. package/dist/scale/ScaleFillManual.svelte.d.ts +4 -0
  436. package/dist/scale/ScaleFillOrdinal.svelte +14 -0
  437. package/dist/scale/ScaleFillOrdinal.svelte.d.ts +3 -0
  438. package/dist/scale/ScaleFillSqrt.svelte +14 -0
  439. package/dist/scale/ScaleFillSqrt.svelte.d.ts +4 -0
  440. package/dist/scale/ScaleFillSteps.svelte +11 -0
  441. package/dist/scale/ScaleFillSteps.svelte.d.ts +4 -0
  442. package/dist/scale/ScaleFillSteps2.svelte +11 -0
  443. package/dist/scale/ScaleFillSteps2.svelte.d.ts +4 -0
  444. package/dist/scale/ScaleFillStepsn.svelte +11 -0
  445. package/dist/scale/ScaleFillStepsn.svelte.d.ts +4 -0
  446. package/dist/scale/ScaleFillViridisB.svelte +11 -0
  447. package/dist/scale/ScaleFillViridisB.svelte.d.ts +4 -0
  448. package/dist/scale/ScaleFillViridisC.svelte +11 -0
  449. package/dist/scale/ScaleFillViridisC.svelte.d.ts +4 -0
  450. package/dist/scale/ScaleFillViridisD.svelte +11 -0
  451. package/dist/scale/ScaleFillViridisD.svelte.d.ts +4 -0
  452. package/dist/scale/ScaleLinetypeBinned.svelte +15 -0
  453. package/dist/scale/ScaleLinetypeBinned.svelte.d.ts +4 -0
  454. package/dist/scale/ScaleLinetypeDiscrete.svelte +15 -0
  455. package/dist/scale/ScaleLinetypeDiscrete.svelte.d.ts +4 -0
  456. package/dist/scale/ScaleLinetypeIdentity.svelte +15 -0
  457. package/dist/scale/ScaleLinetypeIdentity.svelte.d.ts +4 -0
  458. package/dist/scale/ScaleLinetypeManual.svelte +15 -0
  459. package/dist/scale/ScaleLinetypeManual.svelte.d.ts +4 -0
  460. package/dist/scale/ScaleLinewidthBinned.svelte +14 -0
  461. package/dist/scale/ScaleLinewidthBinned.svelte.d.ts +4 -0
  462. package/dist/scale/ScaleLinewidthContinuous.svelte +14 -0
  463. package/dist/scale/ScaleLinewidthContinuous.svelte.d.ts +4 -0
  464. package/dist/scale/ScaleLinewidthDate.svelte +15 -0
  465. package/dist/scale/ScaleLinewidthDate.svelte.d.ts +5 -0
  466. package/dist/scale/ScaleLinewidthDatetime.svelte +15 -0
  467. package/dist/scale/ScaleLinewidthDatetime.svelte.d.ts +5 -0
  468. package/dist/scale/ScaleLinewidthDiscrete.svelte +14 -0
  469. package/dist/scale/ScaleLinewidthDiscrete.svelte.d.ts +4 -0
  470. package/dist/scale/ScaleLinewidthIdentity.svelte +14 -0
  471. package/dist/scale/ScaleLinewidthIdentity.svelte.d.ts +4 -0
  472. package/dist/scale/ScaleLinewidthManual.svelte +14 -0
  473. package/dist/scale/ScaleLinewidthManual.svelte.d.ts +4 -0
  474. package/dist/scale/ScaleRadius.svelte +11 -0
  475. package/dist/scale/ScaleRadius.svelte.d.ts +4 -0
  476. package/dist/scale/ScaleShapeBinned.svelte +15 -0
  477. package/dist/scale/ScaleShapeBinned.svelte.d.ts +4 -0
  478. package/dist/scale/ScaleShapeDiscrete.svelte +15 -0
  479. package/dist/scale/ScaleShapeDiscrete.svelte.d.ts +4 -0
  480. package/dist/scale/ScaleShapeIdentity.svelte +15 -0
  481. package/dist/scale/ScaleShapeIdentity.svelte.d.ts +4 -0
  482. package/dist/scale/ScaleShapeManual.svelte +15 -0
  483. package/dist/scale/ScaleShapeManual.svelte.d.ts +4 -0
  484. package/dist/scale/ScaleSizeArea.svelte +11 -0
  485. package/dist/scale/ScaleSizeArea.svelte.d.ts +4 -0
  486. package/dist/scale/ScaleSizeBinned.svelte +14 -0
  487. package/dist/scale/ScaleSizeBinned.svelte.d.ts +4 -0
  488. package/dist/scale/ScaleSizeBinnedArea.svelte +14 -0
  489. package/dist/scale/ScaleSizeBinnedArea.svelte.d.ts +4 -0
  490. package/dist/scale/ScaleSizeContinuous.svelte +14 -0
  491. package/dist/scale/ScaleSizeContinuous.svelte.d.ts +4 -0
  492. package/dist/scale/ScaleSizeDate.svelte +15 -0
  493. package/dist/scale/ScaleSizeDate.svelte.d.ts +5 -0
  494. package/dist/scale/ScaleSizeDatetime.svelte +15 -0
  495. package/dist/scale/ScaleSizeDatetime.svelte.d.ts +5 -0
  496. package/dist/scale/ScaleSizeDiscrete.svelte +14 -0
  497. package/dist/scale/ScaleSizeDiscrete.svelte.d.ts +4 -0
  498. package/dist/scale/ScaleSizeIdentity.svelte +14 -0
  499. package/dist/scale/ScaleSizeIdentity.svelte.d.ts +4 -0
  500. package/dist/scale/ScaleSizeManual.svelte +14 -0
  501. package/dist/scale/ScaleSizeManual.svelte.d.ts +4 -0
  502. package/dist/scale/ScaleXBinned.svelte +14 -0
  503. package/dist/scale/ScaleXBinned.svelte.d.ts +4 -0
  504. package/dist/scale/ScaleXContinuous.svelte +14 -0
  505. package/dist/scale/ScaleXContinuous.svelte.d.ts +4 -0
  506. package/dist/scale/ScaleXDate.svelte +12 -0
  507. package/dist/scale/ScaleXDate.svelte.d.ts +5 -0
  508. package/dist/scale/ScaleXDatetime.svelte +12 -0
  509. package/dist/scale/ScaleXDatetime.svelte.d.ts +5 -0
  510. package/dist/scale/ScaleXDiscrete.svelte +14 -0
  511. package/dist/scale/ScaleXDiscrete.svelte.d.ts +4 -0
  512. package/dist/scale/ScaleXLog10.svelte +14 -0
  513. package/dist/scale/ScaleXLog10.svelte.d.ts +4 -0
  514. package/dist/scale/ScaleXMonthDay.svelte +12 -0
  515. package/dist/scale/ScaleXMonthDay.svelte.d.ts +5 -0
  516. package/dist/scale/ScaleXReverse.svelte +15 -0
  517. package/dist/scale/ScaleXReverse.svelte.d.ts +4 -0
  518. package/dist/scale/ScaleXSqrt.svelte +14 -0
  519. package/dist/scale/ScaleXSqrt.svelte.d.ts +4 -0
  520. package/dist/scale/ScaleXTime.svelte +12 -0
  521. package/dist/scale/ScaleXTime.svelte.d.ts +5 -0
  522. package/dist/scale/ScaleYBinned.svelte +14 -0
  523. package/dist/scale/ScaleYBinned.svelte.d.ts +4 -0
  524. package/dist/scale/ScaleYContinuous.svelte +14 -0
  525. package/dist/scale/ScaleYContinuous.svelte.d.ts +4 -0
  526. package/dist/scale/ScaleYDate.svelte +12 -0
  527. package/dist/scale/ScaleYDate.svelte.d.ts +5 -0
  528. package/dist/scale/ScaleYDatetime.svelte +12 -0
  529. package/dist/scale/ScaleYDatetime.svelte.d.ts +5 -0
  530. package/dist/scale/ScaleYDiscrete.svelte +14 -0
  531. package/dist/scale/ScaleYDiscrete.svelte.d.ts +4 -0
  532. package/dist/scale/ScaleYLog10.svelte +14 -0
  533. package/dist/scale/ScaleYLog10.svelte.d.ts +4 -0
  534. package/dist/scale/ScaleYMonthDay.svelte +12 -0
  535. package/dist/scale/ScaleYMonthDay.svelte.d.ts +5 -0
  536. package/dist/scale/ScaleYReverse.svelte +15 -0
  537. package/dist/scale/ScaleYReverse.svelte.d.ts +4 -0
  538. package/dist/scale/ScaleYSqrt.svelte +14 -0
  539. package/dist/scale/ScaleYSqrt.svelte.d.ts +4 -0
  540. package/dist/scale/ScaleYTime.svelte +12 -0
  541. package/dist/scale/ScaleYTime.svelte.d.ts +5 -0
  542. package/dist/scene/Axis.svelte +159 -0
  543. package/dist/scene/Axis.svelte.d.ts +12 -0
  544. package/dist/scene/Batch.svelte +252 -0
  545. package/dist/scene/Batch.svelte.d.ts +23 -0
  546. package/dist/scene/InteractionOverlay.svelte +402 -0
  547. package/dist/scene/InteractionOverlay.svelte.d.ts +44 -0
  548. package/dist/scene/Legend.svelte +278 -0
  549. package/dist/scene/Legend.svelte.d.ts +8 -0
  550. package/dist/scene/MarkStrata.svelte +129 -0
  551. package/dist/scene/MarkStrata.svelte.d.ts +15 -0
  552. package/dist/scene/SceneOverlays.svelte +118 -0
  553. package/dist/scene/SceneOverlays.svelte.d.ts +49 -0
  554. package/dist/scene/SceneView.svelte +478 -0
  555. package/dist/scene/SceneView.svelte.d.ts +32 -0
  556. package/dist/scene/batch-presentation.svelte.d.ts +111 -0
  557. package/dist/scene/batch-presentation.svelte.js +207 -0
  558. package/dist/scene/geometry.d.ts +2 -0
  559. package/dist/scene/geometry.js +3 -0
  560. package/dist/scene/stratum-paint.d.ts +25 -0
  561. package/dist/scene/stratum-paint.js +40 -0
  562. package/dist/selection/selection-state.svelte.d.ts +23 -0
  563. package/dist/selection/selection-state.svelte.js +73 -0
  564. package/dist/selection/selection.d.ts +1 -0
  565. package/dist/selection/selection.js +2 -0
  566. package/dist/surface/CaptureSurface.svelte +109 -0
  567. package/dist/surface/CaptureSurface.svelte.d.ts +27 -0
  568. package/dist/surface/area-brush.d.ts +48 -0
  569. package/dist/surface/area-brush.js +44 -0
  570. package/dist/surface/brush-finish.d.ts +49 -0
  571. package/dist/surface/brush-finish.js +44 -0
  572. package/dist/surface/keyboard.d.ts +97 -0
  573. package/dist/surface/keyboard.js +105 -0
  574. package/dist/surface/pointer.d.ts +241 -0
  575. package/dist/surface/pointer.js +179 -0
  576. package/dist/surface/surface-description.d.ts +10 -0
  577. package/dist/surface/surface-description.js +11 -0
  578. package/dist/surface/surface-handlers.svelte.d.ts +53 -0
  579. package/dist/surface/surface-handlers.svelte.js +418 -0
  580. package/dist/surface/surface-state.svelte.d.ts +90 -0
  581. package/dist/surface/surface-state.svelte.js +161 -0
  582. package/dist/theme/Theme.svelte +27 -0
  583. package/dist/theme/Theme.svelte.d.ts +23 -0
  584. package/dist/theme/ThemeBase.svelte +13 -0
  585. package/dist/theme/ThemeBase.svelte.d.ts +8 -0
  586. package/dist/theme/ThemeBw.svelte +13 -0
  587. package/dist/theme/ThemeBw.svelte.d.ts +8 -0
  588. package/dist/theme/ThemeClassic.svelte +13 -0
  589. package/dist/theme/ThemeClassic.svelte.d.ts +8 -0
  590. package/dist/theme/ThemeClean.svelte +13 -0
  591. package/dist/theme/ThemeClean.svelte.d.ts +8 -0
  592. package/dist/theme/ThemeDark.svelte +13 -0
  593. package/dist/theme/ThemeDark.svelte.d.ts +8 -0
  594. package/dist/theme/ThemeDefault.svelte +13 -0
  595. package/dist/theme/ThemeDefault.svelte.d.ts +8 -0
  596. package/dist/theme/ThemeEconomist.svelte +13 -0
  597. package/dist/theme/ThemeEconomist.svelte.d.ts +8 -0
  598. package/dist/theme/ThemeEconomistwhite.svelte +13 -0
  599. package/dist/theme/ThemeEconomistwhite.svelte.d.ts +8 -0
  600. package/dist/theme/ThemeFew.svelte +13 -0
  601. package/dist/theme/ThemeFew.svelte.d.ts +8 -0
  602. package/dist/theme/ThemeFivethirtyeight.svelte +14 -0
  603. package/dist/theme/ThemeFivethirtyeight.svelte.d.ts +9 -0
  604. package/dist/theme/ThemeGgplot2.svelte +13 -0
  605. package/dist/theme/ThemeGgplot2.svelte.d.ts +8 -0
  606. package/dist/theme/ThemeGray.svelte +13 -0
  607. package/dist/theme/ThemeGray.svelte.d.ts +8 -0
  608. package/dist/theme/ThemeGrey.svelte +13 -0
  609. package/dist/theme/ThemeGrey.svelte.d.ts +8 -0
  610. package/dist/theme/ThemeHc.svelte +13 -0
  611. package/dist/theme/ThemeHc.svelte.d.ts +8 -0
  612. package/dist/theme/ThemeHcdark.svelte +13 -0
  613. package/dist/theme/ThemeHcdark.svelte.d.ts +8 -0
  614. package/dist/theme/ThemeHrbr.svelte +13 -0
  615. package/dist/theme/ThemeHrbr.svelte.d.ts +8 -0
  616. package/dist/theme/ThemeIgray.svelte +13 -0
  617. package/dist/theme/ThemeIgray.svelte.d.ts +8 -0
  618. package/dist/theme/ThemeLight.svelte +13 -0
  619. package/dist/theme/ThemeLight.svelte.d.ts +8 -0
  620. package/dist/theme/ThemeLinedraw.svelte +13 -0
  621. package/dist/theme/ThemeLinedraw.svelte.d.ts +8 -0
  622. package/dist/theme/ThemeMap.svelte +13 -0
  623. package/dist/theme/ThemeMap.svelte.d.ts +8 -0
  624. package/dist/theme/ThemeMinimal.svelte +13 -0
  625. package/dist/theme/ThemeMinimal.svelte.d.ts +8 -0
  626. package/dist/theme/ThemePander.svelte +13 -0
  627. package/dist/theme/ThemePander.svelte.d.ts +8 -0
  628. package/dist/theme/ThemeSolarized.svelte +13 -0
  629. package/dist/theme/ThemeSolarized.svelte.d.ts +8 -0
  630. package/dist/theme/ThemeSolarized2.svelte +13 -0
  631. package/dist/theme/ThemeSolarized2.svelte.d.ts +8 -0
  632. package/dist/theme/ThemeSolarized2dark.svelte +13 -0
  633. package/dist/theme/ThemeSolarized2dark.svelte.d.ts +8 -0
  634. package/dist/theme/ThemeSolarizeddark.svelte +14 -0
  635. package/dist/theme/ThemeSolarizeddark.svelte.d.ts +9 -0
  636. package/dist/theme/ThemeSolid.svelte +13 -0
  637. package/dist/theme/ThemeSolid.svelte.d.ts +8 -0
  638. package/dist/theme/ThemeStata.svelte +13 -0
  639. package/dist/theme/ThemeStata.svelte.d.ts +8 -0
  640. package/dist/theme/ThemeStatas1color.svelte +13 -0
  641. package/dist/theme/ThemeStatas1color.svelte.d.ts +8 -0
  642. package/dist/theme/ThemeTest.svelte +14 -0
  643. package/dist/theme/ThemeTest.svelte.d.ts +9 -0
  644. package/dist/theme/ThemeTufte.svelte +13 -0
  645. package/dist/theme/ThemeTufte.svelte.d.ts +8 -0
  646. package/dist/theme/ThemeVoid.svelte +14 -0
  647. package/dist/theme/ThemeVoid.svelte.d.ts +9 -0
  648. package/dist/theme/ThemeWsj.svelte +13 -0
  649. package/dist/theme/ThemeWsj.svelte.d.ts +8 -0
  650. package/dist/theme/factory.svelte.d.ts +36 -0
  651. package/dist/theme/factory.svelte.js +100 -0
  652. package/dist/zoom/zoom-state.svelte.d.ts +44 -0
  653. package/dist/zoom/zoom-state.svelte.js +121 -0
  654. package/dist/zoom/zoom.d.ts +1 -0
  655. package/dist/zoom/zoom.js +2 -0
  656. package/package.json +83 -0
@@ -0,0 +1,67 @@
1
+ /**
2
+ * <GGPlot> — the props-first Svelte adapter (plan: "Svelte adapter").
3
+ *
4
+ * Guaranteed API: `spec={...}` or `data`/`aes`/`layers` props. Declaration-
5
+ * only children (<GeomPoint>/<GeomLine>) are OPTIONAL sugar; explicit
6
+ * `layers` props win over children when both are present.
7
+ *
8
+ * Reactivity: spec assembly is $derived; model production runs in the plot
9
+ * runtime with run-id gating; the committed scale
10
+ * state lives in a NON-reactive box (never read-modify-write shared reactive
11
+ * state across init/teardown — decision 0001, finding 3). That box is what
12
+ * makes discrete colors value-stable across data changes AND across
13
+ * brush-to-zoom respecs.
14
+ *
15
+ * M2 compositing (decision 0006): when any layer resolves to the canvas
16
+ * backend, the plot root becomes an ordered list of full-size sibling
17
+ * strata (SVG chrome-bottom, mark strata in svg/canvas, SVG chrome-top) —
18
+ * document order = paint order, no z-index anywhere. Every stratum is
19
+ * pointer-events: none; ONE transparent capture layer (last child) owns
20
+ * all pointer events and resolves them through the semantic viewport, so
21
+ * hover/tooltip/brush never care which stratum painted a mark. Hover,
22
+ * tooltip, and the transient brush are pure overlays — the pipeline NEVER
23
+ * re-runs for them. Brush-to-zoom is an intentional respec (explicit
24
+ * continuous domains via scale inversion) with prevScales flowing, so
25
+ * color assignments never shift. Double-click resets the zoom;
26
+ * resetScales() (component export) also clears grow-mode scale state.
27
+ *
28
+ * Memory (plan: "Memory ownership"): the previous RenderModel is disposed
29
+ * on commit ($effect cleanup — runs after the DOM has moved to the new
30
+ * model) and the last one on unmount.
31
+ *
32
+ * Controller wiring lives in `plot-engine.svelte.ts` (construction /
33
+ * effect-order contract documented there).
34
+ */
35
+ import type { CellValue } from "@ggts-sh/core";
36
+ import type { ZoomDomains } from "./interaction/interaction.js";
37
+ import type { GGPlotProps } from "./plot-props.js";
38
+ declare function $$render<Row extends Record<string, CellValue> = Record<string, CellValue>, Identity extends keyof Row | ((row: Row, index: number) => PropertyKey) = keyof Row>(): {
39
+ props: GGPlotProps<Row, Identity>;
40
+ exports: {
41
+ resetScales: () => void;
42
+ setZoom: (domains: Partial<ZoomDomains>) => void;
43
+ };
44
+ bindings: "";
45
+ slots: {};
46
+ events: {};
47
+ };
48
+ declare class __sveltets_Render<Row extends Record<string, CellValue> = Record<string, CellValue>, Identity extends keyof Row | ((row: Row, index: number) => PropertyKey) = keyof Row> {
49
+ props(): ReturnType<typeof $$render<Row, Identity>>['props'];
50
+ events(): ReturnType<typeof $$render<Row, Identity>>['events'];
51
+ slots(): ReturnType<typeof $$render<Row, Identity>>['slots'];
52
+ bindings(): "";
53
+ exports(): {
54
+ resetScales: () => void;
55
+ setZoom: (domains: Partial<ZoomDomains>) => void;
56
+ };
57
+ }
58
+ interface $$IsomorphicComponent {
59
+ new <Row extends Record<string, CellValue> = Record<string, CellValue>, Identity extends keyof Row | ((row: Row, index: number) => PropertyKey) = keyof Row>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Row, Identity>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Row, Identity>['props']>, ReturnType<__sveltets_Render<Row, Identity>['events']>, ReturnType<__sveltets_Render<Row, Identity>['slots']>> & {
60
+ $$bindings?: ReturnType<__sveltets_Render<Row, Identity>['bindings']>;
61
+ } & ReturnType<__sveltets_Render<Row, Identity>['exports']>;
62
+ <Row extends Record<string, CellValue> = Record<string, CellValue>, Identity extends keyof Row | ((row: Row, index: number) => PropertyKey) = keyof Row>(internal: unknown, props: ReturnType<__sveltets_Render<Row, Identity>['props']> & {}): ReturnType<__sveltets_Render<Row, Identity>['exports']>;
63
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
64
+ }
65
+ declare const GGPlot: $$IsomorphicComponent;
66
+ type GGPlot<Row extends Record<string, CellValue> = Record<string, CellValue>, Identity extends keyof Row | ((row: Row, index: number) => PropertyKey) = keyof Row> = InstanceType<typeof GGPlot<Row, Identity>>;
67
+ export default GGPlot;
@@ -0,0 +1,115 @@
1
+ <script lang="ts">
2
+ /**
3
+ * Canvas-stratum accessibility surface for GGPlot.
4
+ * Host owns shared open state (plot-scoped across canvas strata).
5
+ */
6
+ import type { GeometryBatch, RenderModel } from "@ggts-sh/core";
7
+
8
+ import { a11yMarkCount, a11yRows } from "./canvas-a11y.js";
9
+
10
+ const {
11
+ model,
12
+ batches,
13
+ sceneLabelText,
14
+ open,
15
+ onToggle,
16
+ }: {
17
+ model: RenderModel;
18
+ batches: GeometryBatch[];
19
+ sceneLabelText: string;
20
+ open: boolean;
21
+ onToggle: () => void;
22
+ } = $props();
23
+
24
+ // Closed: O(P) distinct-index count only (aria-label). Open: one full table
25
+ // build — reuse `table.total` so the primitive scan is not paid twice (#1329).
26
+ const table = $derived(open ? a11yRows(model, batches) : null);
27
+ const total = $derived(table === null ? a11yMarkCount(batches) : table.total);
28
+ const ariaLabel = $derived(
29
+ `${sceneLabelText} — ${String(total)} canvas-rendered marks. Canvas marks are not individually focusable; use the data table.`,
30
+ );
31
+ </script>
32
+
33
+ <div class="gg-canvas-a11y" role="img" aria-label={ariaLabel}></div>
34
+ <button
35
+ type="button"
36
+ class="gg-a11y-toggle"
37
+ aria-expanded={open}
38
+ onclick={() => onToggle()}
39
+ >{open ? "Hide data table" : "Show data table"}</button
40
+ >
41
+ {#if open && table !== null}
42
+ <div class="gg-a11y-table">
43
+ <table>
44
+ <thead>
45
+ <tr>
46
+ {#each table.fields as field (field)}<th>{field}</th>{/each}
47
+ </tr>
48
+ </thead>
49
+ <tbody>
50
+ {#each table.rows as row, ri (ri)}
51
+ <tr>
52
+ {#each row as cell, ci (ci)}<td>{cell}</td>{/each}
53
+ </tr>
54
+ {/each}
55
+ </tbody>
56
+ </table>
57
+ {#if table.total > table.rows.length}
58
+ <p>First {table.rows.length} of {table.total} rows.</p>
59
+ {/if}
60
+ </div>
61
+ {/if}
62
+
63
+ <style>
64
+ /* Full-size inert layer base; sr-only clip below keeps it in the a11y tree. */
65
+ .gg-canvas-a11y {
66
+ position: absolute;
67
+ inset: 0;
68
+ pointer-events: none;
69
+ }
70
+
71
+ /* sr-only pattern (NOT display:none — must stay in the a11y tree). */
72
+ .gg-canvas-a11y,
73
+ .gg-a11y-toggle:not(:focus) {
74
+ position: absolute;
75
+ width: 1px;
76
+ height: 1px;
77
+ margin: -1px;
78
+ padding: 0;
79
+ overflow: hidden;
80
+ clip-path: inset(50%);
81
+ white-space: nowrap;
82
+ border: 0;
83
+ }
84
+
85
+ .gg-a11y-toggle {
86
+ pointer-events: auto;
87
+ position: absolute;
88
+ top: 2px;
89
+ left: 2px;
90
+ font-size: 11px;
91
+ line-height: 1.2;
92
+ }
93
+
94
+ .gg-a11y-table {
95
+ position: absolute;
96
+ inset: 0;
97
+ overflow: auto;
98
+ background: var(--gg-paper, #fff);
99
+ color: var(--gg-ink, #1f2328);
100
+ font-size: 11px;
101
+ line-height: 1.4;
102
+ pointer-events: auto;
103
+ }
104
+
105
+ .gg-a11y-table table {
106
+ border-collapse: collapse;
107
+ }
108
+
109
+ .gg-a11y-table th,
110
+ .gg-a11y-table td {
111
+ border: 1px solid var(--gg-grid, rgba(128, 128, 128, 0.4));
112
+ padding: 2px 6px;
113
+ text-align: left;
114
+ }
115
+ </style>
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Canvas-stratum accessibility surface for GGPlot.
3
+ * Host owns shared open state (plot-scoped across canvas strata).
4
+ */
5
+ import type { GeometryBatch, RenderModel } from "@ggts-sh/core";
6
+ type $$ComponentProps = {
7
+ model: RenderModel;
8
+ batches: GeometryBatch[];
9
+ sceneLabelText: string;
10
+ open: boolean;
11
+ onToggle: () => void;
12
+ };
13
+ declare const CanvasA11y: import("svelte").Component<$$ComponentProps, {}, "">;
14
+ type CanvasA11y = ReturnType<typeof CanvasA11y>;
15
+ export default CanvasA11y;
@@ -0,0 +1 @@
1
+ export { A11Y_TABLE_CAP, collectCanvasRowIndexes, a11yMarkCount, a11yRows, } from "@ggts-sh/core/interaction";
@@ -0,0 +1,2 @@
1
+ // Shared pure behavior used by React and Svelte.
2
+ export { A11Y_TABLE_CAP, collectCanvasRowIndexes, a11yMarkCount, a11yRows, } from "@ggts-sh/core/interaction";
@@ -0,0 +1 @@
1
+ export { assemblePortableSpec, isFacetedPlotIntent, mappedChannelField, resolveInteractionScope, toLayerInput, } from "@ggts-sh/compose";
@@ -0,0 +1 @@
1
+ export { assemblePortableSpec, isFacetedPlotIntent, mappedChannelField, resolveInteractionScope, toLayerInput, } from "@ggts-sh/compose";
@@ -0,0 +1,43 @@
1
+ import type { CellValue, RenderModel } from "@ggts-sh/core";
2
+ import type { LegendFocusEvent, PlotInspectionChange, PlotSelection, ReadonlyZoomDomains } from "../interaction/interaction.js";
3
+ /** Shared a11y count phrase: "1 datum" / "N data". */
4
+ export declare function countLabel(count: number): string;
5
+ /** Live message when the brush needs a second corner (pointer or keyboard). */
6
+ export declare const BRUSH_SECOND_CORNER_ANNOUNCEMENT: "Choose opposite corner.";
7
+ /**
8
+ * Live message for selection emission, or null when the phase does not announce
9
+ * (interval start/change).
10
+ */
11
+ export declare function selectionAnnouncement(event: PlotSelection): string | null;
12
+ /** Live message for legend-focus change/clear events. */
13
+ export declare function legendFocusAnnouncement(event: LegendFocusEvent): string;
14
+ /** Live message after a zoom commit or reset (`null` domains → reset). */
15
+ export declare function zoomAnnouncement(domains: ReadonlyZoomDomains | null): string;
16
+ /**
17
+ * Unique mapped field names across layers (first-seen order).
18
+ * Hosts that label many marks should call once per model and close over the
19
+ * result — `markLabel` / `datumLabel` recompute it per call (#1329).
20
+ */
21
+ export declare function uniqueMappedFields(model: RenderModel): readonly string[];
22
+ /** Label parts from a precomputed unique field list and a row record. */
23
+ export declare function labelFromFields(fields: readonly string[], values: Record<string, CellValue>, emptyFallback: string): string;
24
+ /** Accessible per-mark label from the layer's mapped fields. */
25
+ export declare function markLabel(model: RenderModel | null, row: number): string;
26
+ export declare function datumLabel(model: RenderModel | null, values: Record<string, CellValue> | null): string;
27
+ export declare function inspectionLiveText(model: RenderModel | null, value: PlotInspectionChange<Record<string, CellValue>, PropertyKey>): string;
28
+ /**
29
+ * Capture live-region text for the interaction ARIA live region.
30
+ *
31
+ * Priority (matches host `announcement || fallback`):
32
+ * 1. non-empty sticky `announcement` (including after microtask fill)
33
+ * 2. keyboard/touch inspection → `inspectionLiveText` (short-circuited)
34
+ * 3. otherwise empty string
35
+ *
36
+ * Empty-string announcement is falsy and falls through — host
37
+ * `announceInteraction` briefly sets `""` before the microtask message.
38
+ */
39
+ export declare function resolveInteractionLiveText(input: {
40
+ readonly announcement: string;
41
+ readonly model: RenderModel | null;
42
+ readonly inspection: PlotInspectionChange<Record<string, CellValue>, PropertyKey> | null;
43
+ }): string;
@@ -0,0 +1,126 @@
1
+ import { collapseIdenticalDisplayMembers, formatTooltipCell, } from "../inspection/display-members.js";
2
+ /** Shared a11y count phrase: "1 datum" / "N data". */
3
+ export function countLabel(count) {
4
+ return `${String(count)} ${count === 1 ? "datum" : "data"}`;
5
+ }
6
+ /** Live message when the brush needs a second corner (pointer or keyboard). */
7
+ export const BRUSH_SECOND_CORNER_ANNOUNCEMENT = "Choose opposite corner.";
8
+ /**
9
+ * Live message for selection emission, or null when the phase does not announce
10
+ * (interval start/change).
11
+ */
12
+ export function selectionAnnouncement(event) {
13
+ if (event.phase === "end") {
14
+ const count = event.mode === "point" ? event.keys.length : event.lineageCount;
15
+ return `Selection complete, ${countLabel(count)}.`;
16
+ }
17
+ if (event.phase === "clear")
18
+ return "Selection cleared.";
19
+ return null;
20
+ }
21
+ /** Live message for legend-focus change/clear events. */
22
+ export function legendFocusAnnouncement(event) {
23
+ if (event.phase === "change") {
24
+ const verb = event.state === "committed" ? "focused" : "previewed";
25
+ return `${event.label} ${verb}, ${countLabel(event.keys.length)}.`;
26
+ }
27
+ return "Legend focus cleared.";
28
+ }
29
+ /** Live message after a zoom commit or reset (`null` domains → reset). */
30
+ export function zoomAnnouncement(domains) {
31
+ return domains === null ? "Zoom reset." : "Zoom complete.";
32
+ }
33
+ /**
34
+ * Unique mapped field names across layers (first-seen order).
35
+ * Hosts that label many marks should call once per model and close over the
36
+ * result — `markLabel` / `datumLabel` recompute it per call (#1329).
37
+ */
38
+ export function uniqueMappedFields(model) {
39
+ const seen = new Set();
40
+ const fields = [];
41
+ for (const layer of model.layerFields) {
42
+ if (layer === undefined)
43
+ continue;
44
+ for (const mapped of layer) {
45
+ if (seen.has(mapped.field))
46
+ continue;
47
+ seen.add(mapped.field);
48
+ fields.push(mapped.field);
49
+ }
50
+ }
51
+ return fields;
52
+ }
53
+ /** Label parts from a precomputed unique field list and a row record. */
54
+ export function labelFromFields(fields, values, emptyFallback) {
55
+ if (fields.length === 0)
56
+ return emptyFallback;
57
+ const parts = [];
58
+ for (const field of fields)
59
+ parts.push(`${field} ${String(values[field] ?? "")}`);
60
+ return parts.join(", ");
61
+ }
62
+ /** Accessible per-mark label from the layer's mapped fields. */
63
+ export function markLabel(model, row) {
64
+ if (model === null)
65
+ return `data point ${row + 1}`;
66
+ const values = model.row(row);
67
+ if (values === null)
68
+ return `data point ${row + 1}`;
69
+ return labelFromFields(uniqueMappedFields(model), values, `data point ${row + 1}`);
70
+ }
71
+ export function datumLabel(model, values) {
72
+ if (values === null)
73
+ return "No active datum";
74
+ if (model === null)
75
+ return labelFromFields([], values, "Active datum");
76
+ return labelFromFields(uniqueMappedFields(model), values, "Active datum");
77
+ }
78
+ export function inspectionLiveText(model, value) {
79
+ // Count distinct default-tooltip payloads so line+point same-data does not
80
+ // announce "2 data" for one observation (#385).
81
+ const axisFormatters = model?.axisFormatters ?? null;
82
+ const count = collapseIdenticalDisplayMembers(value.members, value.focus, axisFormatters, value.mode).length;
83
+ const state = value.state === "pinned" ? ", pinned" : "";
84
+ if (value.mode !== "x" && value.mode !== "y")
85
+ return `${datumLabel(model, value.focus.row)}; ${countLabel(count)}${state}`;
86
+ // Stat focus (no source row) formats x/y with axis formatters; identity keeps
87
+ // precise cell values (#1113).
88
+ const focusFormatters = value.focus.row === null ? axisFormatters : null;
89
+ const seen = new Set();
90
+ const focused = value.focus.fields
91
+ .filter((field) => {
92
+ if (field.channel === value.mode || seen.has(field.field))
93
+ return false;
94
+ seen.add(field.field);
95
+ return true;
96
+ })
97
+ .map((field) => {
98
+ const display = formatTooltipCell(field.value, {
99
+ channel: field.channel,
100
+ axisFormatters: focusFormatters,
101
+ });
102
+ return `${field.field} ${display}`;
103
+ })
104
+ .join(", ");
105
+ return `${value.mode} ${value.axisLabel}; ${countLabel(count)}${focused ? `; focused ${focused}` : ""}${state}`;
106
+ }
107
+ /**
108
+ * Capture live-region text for the interaction ARIA live region.
109
+ *
110
+ * Priority (matches host `announcement || fallback`):
111
+ * 1. non-empty sticky `announcement` (including after microtask fill)
112
+ * 2. keyboard/touch inspection → `inspectionLiveText` (short-circuited)
113
+ * 3. otherwise empty string
114
+ *
115
+ * Empty-string announcement is falsy and falls through — host
116
+ * `announceInteraction` briefly sets `""` before the microtask message.
117
+ */
118
+ export function resolveInteractionLiveText(input) {
119
+ if (input.announcement)
120
+ return input.announcement;
121
+ if (input.inspection === null)
122
+ return "";
123
+ if (input.inspection.source === "keyboard" || input.inspection.source === "touch")
124
+ return inspectionLiveText(input.model, input.inspection);
125
+ return "";
126
+ }
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Pure plot-root layout chrome: inline size/theme style, responsive
3
+ * breakpoint helpers, tooltip viewport clamp, and legend clear-control
4
+ * anchor lookup. Hosts own class bindings and tool-rail visibility.
5
+ */
6
+ export type ResolvePlotSizeInput = {
7
+ /** Host width prop: fixed px, `"container"`, or omitted (container mode). */
8
+ readonly width: number | "container" | undefined;
9
+ readonly height: number | undefined;
10
+ /** ResizeObserver content width when in container mode; null before first measure. */
11
+ readonly containerWidth: number | null;
12
+ /** Assembled spec width fallback. */
13
+ readonly assembledWidth: number | undefined;
14
+ /** Assembled spec height fallback. */
15
+ readonly assembledHeight: number | undefined;
16
+ };
17
+ /**
18
+ * True when the width prop is omitted or `"container"` (responsive layout).
19
+ * Shared by resolvePlotSize, paint readiness widthMode, root class, ResizeObserver
20
+ * install, and plotRootInlineStyle containerWidth flag.
21
+ * Type predicate so fixed-mode branches narrow to `number`.
22
+ */
23
+ export declare function isContainerWidthProp(width: number | "container" | undefined): width is "container" | undefined;
24
+ /**
25
+ * Resolved plot pixel size for the pipeline and root style.
26
+ * Container mode: measured container width, then assembled, then
27
+ * DEFAULT_PLOT_WIDTH_PX (832). Fixed mode: the numeric width prop (assembled
28
+ * fallback is unused once fixed). Height: height prop, then assembled, then 400.
29
+ */
30
+ export declare function resolvePlotSize(input: ResolvePlotSizeInput): {
31
+ readonly width: number;
32
+ readonly height: number;
33
+ };
34
+ /** True when the tool rail should use the narrow layout (width < 560). */
35
+ export declare function isNarrowToolsWidth(widthPx: number): boolean;
36
+ /**
37
+ * True when a pinned tooltip should dock (width < 480).
38
+ * Prefer `isTooltipDocked` at call sites that also gate on pin state.
39
+ */
40
+ export declare function isDockedTooltipWidth(widthPx: number): boolean;
41
+ /**
42
+ * Whether the inspection tooltip (and root docked chrome class) should dock.
43
+ * Unifies root class and Tooltip `docked` prop (both used pinned + width).
44
+ */
45
+ export declare function isTooltipDocked(input: {
46
+ readonly inspectionState: "transient" | "pinned" | "none" | null | undefined;
47
+ readonly widthPx: number;
48
+ }): boolean;
49
+ /** Stable DOM id for the plot's inspection tooltip element. */
50
+ export declare function plotTooltipDomId(plotId: string): string;
51
+ /**
52
+ * Capture-surface `aria-controls` when a pinned interactive tooltip is up.
53
+ * Undefined otherwise (attribute omitted).
54
+ *
55
+ * Takes domain state (not pre-derived booleans) so hosts pass `inspection?.state`
56
+ * and inspect `contentMode` directly — same shape as `isTooltipDocked`.
57
+ */
58
+ export declare function resolveCaptureAriaControls(input: {
59
+ readonly inspectionState: "transient" | "pinned" | "none" | null | undefined;
60
+ readonly contentMode: "interactive" | "informational" | undefined;
61
+ readonly plotId: string;
62
+ }): string | undefined;
63
+ export type TooltipViewportSizeInput = {
64
+ readonly sceneWidth: number;
65
+ readonly sceneHeight: number;
66
+ /** Host: `root?.clientWidth` — nullish falls back to scene; 0 is kept. */
67
+ readonly clientWidth: number | null | undefined;
68
+ /** Host: `root?.clientHeight` — nullish falls back to scene; 0 is kept. */
69
+ readonly clientHeight: number | null | undefined;
70
+ };
71
+ /**
72
+ * Tooltip layout box: min(scene, client) per axis.
73
+ * Uses nullish coalesce so a laid-out zero client size does not fall back
74
+ * to the scene (matches historical `root?.clientWidth ?? sceneWidth`).
75
+ */
76
+ export declare function tooltipViewportSize(input: TooltipViewportSizeInput): {
77
+ readonly width: number;
78
+ readonly height: number;
79
+ };
80
+ export type PlotRootStyleInput = {
81
+ /**
82
+ * When true, emit width/height CSS before theme tokens.
83
+ * Host: hasCanvas || interactive || emphasis || selection.
84
+ */
85
+ readonly needsSizedBox: boolean;
86
+ /** True when the width prop is undefined or `"container"`. */
87
+ readonly containerWidth: boolean;
88
+ /** Fixed-width CSS uses scene dimensions (model scene with resolved fallback). */
89
+ readonly sceneWidth: number;
90
+ readonly sceneHeight: number;
91
+ readonly themeStyle: string;
92
+ };
93
+ /**
94
+ * Root `style` attribute value.
95
+ * Sized box: `width:…;height:…;` then raw `themeStyle` (no extra separator).
96
+ * Empty concatenation → `undefined` (matches host `… || undefined`).
97
+ */
98
+ export declare function plotRootInlineStyle(input: PlotRootStyleInput): string | undefined;
99
+ /** Edge/gap pad between a pressed legend box and the Clear recovery control. */
100
+ export declare const CLEAR_CONTROL_GAP_PX = 4;
101
+ /**
102
+ * Compact control height — matches discrete legend row targets (min 24px AA
103
+ * target size) rather than the old 44×44 AAA square that dwarfed swatches.
104
+ */
105
+ export declare const CLEAR_CONTROL_HEIGHT_PX = 24;
106
+ /** Grace period after pointer leaves legend chrome before Clear fades for screenshots. */
107
+ export declare const CLEAR_HIDE_DELAY_MS = 2500;
108
+ export type ClearControlLayoutInput = {
109
+ /**
110
+ * Host: `interactionConfig.legendFocus !== null`.
111
+ * Must stay even when `pressedScale` is non-null: controller emphasis can
112
+ * briefly leave a pressed scale after legend focus is disabled; Clear is
113
+ * intentionally suppressed then.
114
+ */
115
+ readonly legendFocusEnabled: boolean;
116
+ /** Host: `effectiveLegendPressed?.scale ?? null`. */
117
+ readonly pressedScale: string | null;
118
+ /** Scene legends — full box + position so Clear anchors off the pressed guide. */
119
+ readonly legends: readonly {
120
+ readonly scale: string;
121
+ readonly x: number;
122
+ readonly y: number;
123
+ readonly width: number;
124
+ readonly height: number;
125
+ readonly position?: "right" | "bottom";
126
+ readonly direction?: "vertical" | "horizontal";
127
+ }[];
128
+ readonly sceneWidth: number;
129
+ readonly sceneHeight: number;
130
+ };
131
+ export type ClearControlLayout = {
132
+ readonly left: number;
133
+ readonly top: number;
134
+ };
135
+ /**
136
+ * Scene-local position for the legend Clear recovery control, or null to hide.
137
+ *
138
+ * Placement (collision-safe relative to the pressed legend):
139
+ * - **right / vertical** — prefer **below** the stack; if that would clamp into
140
+ * the legend box (tall low guide), try **above**, then **left** of the box
141
+ * - **bottom / horizontal** — prefer **right** of the strip; else under, then above
142
+ *
143
+ * Candidates are clamped into the scene, then the first that does not intersect
144
+ * the pressed legend box wins. null when focus is off / nothing pressed / no match.
145
+ */
146
+ export declare function resolveClearControlLayout(input: ClearControlLayoutInput): ClearControlLayout | null;
147
+ /**
148
+ * Whether the Clear control should paint (opacity / pointer-events) while a
149
+ * series remains pressed. Host owns the hide timer; this pure gate only
150
+ * combines pressed + chrome hover/focus + elapsed hide.
151
+ */
152
+ export declare function shouldRevealClearControl(input: {
153
+ readonly pressed: boolean;
154
+ /** Pointer over legend targets/clear, or focus within that chrome. */
155
+ readonly chromeActive: boolean;
156
+ /** True once the post-leave hide delay has elapsed without re-entry. */
157
+ readonly hideElapsed: boolean;
158
+ }): boolean;