@pibbl/core 0.0.2 → 0.0.3-alpha.85.1

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 (233) hide show
  1. package/THIRD_PARTY_NOTICES.txt +81 -0
  2. package/dist/features/textures/index.d.ts +12 -2
  3. package/dist/features/textures/index.js +33 -1
  4. package/dist/features/textures/index.js.map +2 -2
  5. package/dist/features/textures/lib/chemical-field.d.ts +56 -0
  6. package/dist/features/textures/lib/chemical-field.js +154 -0
  7. package/dist/features/textures/lib/chemical-field.js.map +7 -0
  8. package/dist/features/textures/lib/chemical-recipes.d.ts +119 -0
  9. package/dist/features/textures/lib/chemical-recipes.js +275 -0
  10. package/dist/features/textures/lib/chemical-recipes.js.map +7 -0
  11. package/dist/features/textures/lib/definitions.d.ts +3 -18
  12. package/dist/features/textures/lib/definitions.js +15 -20
  13. package/dist/features/textures/lib/definitions.js.map +2 -2
  14. package/dist/features/textures/lib/geometric-patterns.d.ts +149 -0
  15. package/dist/features/textures/lib/geometric-patterns.js +305 -0
  16. package/dist/features/textures/lib/geometric-patterns.js.map +7 -0
  17. package/dist/features/textures/lib/gray-scott.d.ts +55 -0
  18. package/dist/features/textures/lib/gray-scott.js +39 -0
  19. package/dist/features/textures/lib/gray-scott.js.map +7 -0
  20. package/dist/features/textures/lib/patterns.d.ts +123 -0
  21. package/dist/features/textures/lib/patterns.js +344 -0
  22. package/dist/features/textures/lib/patterns.js.map +7 -0
  23. package/dist/features/textures/lib/reaction-diffusion.d.ts +3 -2
  24. package/dist/features/textures/lib/reaction-diffusion.js +9 -20
  25. package/dist/features/textures/lib/reaction-diffusion.js.map +2 -2
  26. package/dist/features/textures/lib/simulation.d.ts +10 -4
  27. package/dist/features/textures/lib/simulation.js +23 -13
  28. package/dist/features/textures/lib/simulation.js.map +2 -2
  29. package/dist/features/viz/index.d.ts +55 -6
  30. package/dist/features/viz/index.js +107 -2
  31. package/dist/features/viz/index.js.map +2 -2
  32. package/dist/features/viz/inspection/bar.d.ts +79 -0
  33. package/dist/features/viz/inspection/bar.js +49 -0
  34. package/dist/features/viz/inspection/bar.js.map +7 -0
  35. package/dist/features/viz/inspection/candle.d.ts +156 -0
  36. package/dist/features/viz/inspection/candle.js +120 -0
  37. package/dist/features/viz/inspection/candle.js.map +7 -0
  38. package/dist/features/viz/inspection/capture-types.d.ts +65 -0
  39. package/dist/features/viz/inspection/capture.d.ts +16 -0
  40. package/dist/features/viz/inspection/capture.js +49 -0
  41. package/dist/features/viz/inspection/capture.js.map +7 -0
  42. package/dist/features/viz/inspection/handler.d.ts +36 -0
  43. package/dist/features/viz/inspection/handler.js +91 -0
  44. package/dist/features/viz/inspection/handler.js.map +7 -0
  45. package/dist/features/viz/inspection/ohlc-bar.d.ts +132 -0
  46. package/dist/features/viz/inspection/ohlc-bar.js +118 -0
  47. package/dist/features/viz/inspection/ohlc-bar.js.map +7 -0
  48. package/dist/features/viz/inspection/owned-ref.d.ts +16 -0
  49. package/dist/features/viz/inspection/owned-ref.js +99 -0
  50. package/dist/features/viz/inspection/owned-ref.js.map +7 -0
  51. package/dist/features/viz/inspection/painted-point.d.ts +22 -0
  52. package/dist/features/viz/inspection/painted-point.js +29 -0
  53. package/dist/features/viz/inspection/painted-point.js.map +7 -0
  54. package/dist/features/viz/inspection/queries.d.ts +100 -0
  55. package/dist/features/viz/inspection/queries.js +192 -0
  56. package/dist/features/viz/inspection/queries.js.map +7 -0
  57. package/dist/features/viz/inspection/query-types.d.ts +177 -0
  58. package/dist/features/viz/inspection/volume.d.ts +104 -0
  59. package/dist/features/viz/inspection/volume.js +95 -0
  60. package/dist/features/viz/inspection/volume.js.map +7 -0
  61. package/dist/features/viz/inspection.d.ts +19 -0
  62. package/dist/features/viz/inspection.js +54 -0
  63. package/dist/features/viz/inspection.js.map +7 -0
  64. package/dist/features/viz/inspection.mjs +1 -0
  65. package/dist/features/viz/lib/area-series.d.ts +62 -0
  66. package/dist/features/viz/lib/area-series.js +120 -0
  67. package/dist/features/viz/lib/area-series.js.map +7 -0
  68. package/dist/features/viz/lib/axis.js +1 -1
  69. package/dist/features/viz/lib/axis.js.map +2 -2
  70. package/dist/features/viz/lib/bar-series.d.ts +3 -1
  71. package/dist/features/viz/lib/bar-series.js +16 -1
  72. package/dist/features/viz/lib/bar-series.js.map +2 -2
  73. package/dist/features/viz/lib/baseline-series.d.ts +55 -0
  74. package/dist/features/viz/lib/baseline-series.js +136 -0
  75. package/dist/features/viz/lib/baseline-series.js.map +7 -0
  76. package/dist/features/viz/lib/candlestick-series.d.ts +62 -0
  77. package/dist/features/viz/lib/candlestick-series.js +150 -0
  78. package/dist/features/viz/lib/candlestick-series.js.map +7 -0
  79. package/dist/features/viz/lib/censored-point-series.d.ts +71 -0
  80. package/dist/features/viz/lib/censored-point-series.js +129 -0
  81. package/dist/features/viz/lib/censored-point-series.js.map +7 -0
  82. package/dist/features/viz/lib/color-context.d.ts +4 -0
  83. package/dist/features/viz/lib/color-context.js +41 -0
  84. package/dist/features/viz/lib/color-context.js.map +7 -0
  85. package/dist/features/viz/lib/color-math.d.ts +4 -0
  86. package/dist/features/viz/lib/color-math.js +31 -0
  87. package/dist/features/viz/lib/color-math.js.map +7 -0
  88. package/dist/features/viz/lib/color-types.d.ts +53 -0
  89. package/dist/features/viz/lib/curve-definition.d.ts +49 -0
  90. package/dist/features/viz/lib/curve-definition.js +148 -0
  91. package/dist/features/viz/lib/curve-definition.js.map +7 -0
  92. package/dist/features/viz/lib/diverging-color-scale.d.ts +11 -0
  93. package/dist/features/viz/lib/diverging-color-scale.js +51 -0
  94. package/dist/features/viz/lib/diverging-color-scale.js.map +7 -0
  95. package/dist/features/viz/lib/domain-navigation.d.ts +40 -0
  96. package/dist/features/viz/lib/domain-navigation.js +77 -0
  97. package/dist/features/viz/lib/domain-navigation.js.map +7 -0
  98. package/dist/features/viz/lib/editable-chart-elements.d.ts +178 -0
  99. package/dist/features/viz/lib/editable-chart-elements.js +733 -0
  100. package/dist/features/viz/lib/editable-chart-elements.js.map +7 -0
  101. package/dist/features/viz/lib/financial-aggregation.d.ts +127 -0
  102. package/dist/features/viz/lib/financial-aggregation.js +116 -0
  103. package/dist/features/viz/lib/financial-aggregation.js.map +7 -0
  104. package/dist/features/viz/lib/financial-autoscale.d.ts +64 -0
  105. package/dist/features/viz/lib/financial-autoscale.js +61 -0
  106. package/dist/features/viz/lib/financial-autoscale.js.map +7 -0
  107. package/dist/features/viz/lib/financial-comparison.d.ts +62 -0
  108. package/dist/features/viz/lib/financial-comparison.js +98 -0
  109. package/dist/features/viz/lib/financial-comparison.js.map +7 -0
  110. package/dist/features/viz/lib/financial-geometry.d.ts +77 -0
  111. package/dist/features/viz/lib/financial-geometry.js +67 -0
  112. package/dist/features/viz/lib/financial-geometry.js.map +7 -0
  113. package/dist/features/viz/lib/financial-indicators.d.ts +114 -0
  114. package/dist/features/viz/lib/financial-indicators.js +135 -0
  115. package/dist/features/viz/lib/financial-indicators.js.map +7 -0
  116. package/dist/features/viz/lib/financial-oscillators.d.ts +171 -0
  117. package/dist/features/viz/lib/financial-oscillators.js +265 -0
  118. package/dist/features/viz/lib/financial-oscillators.js.map +7 -0
  119. package/dist/features/viz/lib/hover-data.d.ts +1 -1
  120. package/dist/features/viz/lib/hover-data.js +5 -2
  121. package/dist/features/viz/lib/hover-data.js.map +2 -2
  122. package/dist/features/viz/lib/interval-band-series.d.ts +49 -0
  123. package/dist/features/viz/lib/interval-band-series.js +136 -0
  124. package/dist/features/viz/lib/interval-band-series.js.map +7 -0
  125. package/dist/features/viz/lib/interval-diamond-series.d.ts +43 -0
  126. package/dist/features/viz/lib/interval-diamond-series.js +124 -0
  127. package/dist/features/viz/lib/interval-diamond-series.js.map +7 -0
  128. package/dist/features/viz/lib/interval-series.d.ts +79 -0
  129. package/dist/features/viz/lib/interval-series.js +158 -0
  130. package/dist/features/viz/lib/interval-series.js.map +7 -0
  131. package/dist/features/viz/lib/line-series.d.ts +1 -1
  132. package/dist/features/viz/lib/line-series.js +47 -28
  133. package/dist/features/viz/lib/line-series.js.map +2 -2
  134. package/dist/features/viz/lib/linear-scale.js +1 -1
  135. package/dist/features/viz/lib/linear-scale.js.map +2 -2
  136. package/dist/features/viz/lib/monotone-curve.d.ts +11 -0
  137. package/dist/features/viz/lib/monotone-curve.js +63 -0
  138. package/dist/features/viz/lib/monotone-curve.js.map +7 -0
  139. package/dist/features/viz/lib/numeric-range-interpolation.d.ts +15 -0
  140. package/dist/features/viz/lib/numeric-range-interpolation.js +36 -0
  141. package/dist/features/viz/lib/numeric-range-interpolation.js.map +7 -0
  142. package/dist/features/viz/lib/ohlc-bar-series.d.ts +55 -0
  143. package/dist/features/viz/lib/ohlc-bar-series.js +168 -0
  144. package/dist/features/viz/lib/ohlc-bar-series.js.map +7 -0
  145. package/dist/features/viz/lib/paired-series.d.ts +44 -0
  146. package/dist/features/viz/lib/paired-series.js +93 -0
  147. package/dist/features/viz/lib/paired-series.js.map +7 -0
  148. package/dist/features/viz/lib/plot-series.js +11 -6
  149. package/dist/features/viz/lib/plot-series.js.map +2 -2
  150. package/dist/features/viz/lib/plot-types.d.ts +4 -3
  151. package/dist/features/viz/lib/point-series.d.ts +1 -1
  152. package/dist/features/viz/lib/point-series.js +36 -9
  153. package/dist/features/viz/lib/point-series.js.map +2 -2
  154. package/dist/features/viz/lib/point-types.d.ts +5 -2
  155. package/dist/features/viz/lib/scale-context.d.ts +1 -1
  156. package/dist/features/viz/lib/scale-ticks.js +21 -6
  157. package/dist/features/viz/lib/scale-ticks.js.map +2 -2
  158. package/dist/features/viz/lib/sequential-color-scale.d.ts +11 -0
  159. package/dist/features/viz/lib/sequential-color-scale.js +49 -0
  160. package/dist/features/viz/lib/sequential-color-scale.js.map +7 -0
  161. package/dist/features/viz/lib/series-position.d.ts +12 -0
  162. package/dist/features/viz/lib/series-position.js +44 -0
  163. package/dist/features/viz/lib/series-position.js.map +7 -0
  164. package/dist/features/viz/lib/step-curves.d.ts +19 -0
  165. package/dist/features/viz/lib/step-curves.js +53 -0
  166. package/dist/features/viz/lib/step-curves.js.map +7 -0
  167. package/dist/features/viz/lib/threshold-color-scale.d.ts +43 -0
  168. package/dist/features/viz/lib/threshold-color-scale.js +59 -0
  169. package/dist/features/viz/lib/threshold-color-scale.js.map +7 -0
  170. package/dist/features/viz/lib/trading-time-mapping.d.ts +32 -0
  171. package/dist/features/viz/lib/trading-time-mapping.js +89 -0
  172. package/dist/features/viz/lib/trading-time-mapping.js.map +7 -0
  173. package/dist/features/viz/lib/trading-time-scale.d.ts +83 -0
  174. package/dist/features/viz/lib/trading-time-scale.js +96 -0
  175. package/dist/features/viz/lib/trading-time-scale.js.map +7 -0
  176. package/dist/features/viz/lib/trajectory-series.d.ts +71 -0
  177. package/dist/features/viz/lib/trajectory-series.js +111 -0
  178. package/dist/features/viz/lib/trajectory-series.js.map +7 -0
  179. package/dist/features/viz/lib/types.d.ts +20 -4
  180. package/dist/features/viz/lib/use-continuous-scale.js +6 -1
  181. package/dist/features/viz/lib/use-continuous-scale.js.map +2 -2
  182. package/dist/features/viz/lib/volume-series.d.ts +59 -0
  183. package/dist/features/viz/lib/volume-series.js +117 -0
  184. package/dist/features/viz/lib/volume-series.js.map +7 -0
  185. package/dist/features/viz/lib/weighted-point-series.d.ts +71 -0
  186. package/dist/features/viz/lib/weighted-point-series.js +169 -0
  187. package/dist/features/viz/lib/weighted-point-series.js.map +7 -0
  188. package/dist/filters/emboss-gpu.d.ts +4 -0
  189. package/dist/filters/emboss-gpu.js +39 -0
  190. package/dist/filters/emboss-gpu.js.map +7 -0
  191. package/dist/filters/emboss.d.ts +32 -0
  192. package/dist/filters/emboss.js +106 -0
  193. package/dist/filters/emboss.js.map +7 -0
  194. package/dist/filters/reflection-gpu.d.ts +3 -1
  195. package/dist/filters/reflection-gpu.js +5 -2
  196. package/dist/filters/reflection-gpu.js.map +2 -2
  197. package/dist/filters/render-emboss-boundary.d.ts +13 -0
  198. package/dist/filters/render-emboss-boundary.js +131 -0
  199. package/dist/filters/render-emboss-boundary.js.map +7 -0
  200. package/dist/filters.d.ts +2 -0
  201. package/dist/filters.js +2 -0
  202. package/dist/filters.js.map +2 -2
  203. package/dist/index.d.ts +2 -0
  204. package/dist/index.js +3 -0
  205. package/dist/index.js.map +2 -2
  206. package/dist/internal.d.ts +2 -0
  207. package/dist/internal.js +4 -0
  208. package/dist/internal.js.map +2 -2
  209. package/dist/lib/events/event-facade.d.ts +13 -0
  210. package/dist/lib/events/event-facade.js +23 -0
  211. package/dist/lib/events/event-facade.js.map +2 -2
  212. package/dist/lib/events/propagation.js +19 -14
  213. package/dist/lib/events/propagation.js.map +2 -2
  214. package/dist/lib/execute-render.js +13 -0
  215. package/dist/lib/execute-render.js.map +2 -2
  216. package/dist/lib/recording/recording.d.ts +43 -0
  217. package/dist/lib/recording/recording.js +555 -0
  218. package/dist/lib/recording/recording.js.map +7 -0
  219. package/dist/lib/recording/types.d.ts +118 -0
  220. package/dist/lib/recording/wasm-bytes.d.ts +1 -0
  221. package/dist/lib/recording/wasm-bytes.js +5 -0
  222. package/dist/lib/recording/wasm-bytes.js.map +7 -0
  223. package/dist/lib/recording/worker-source.d.ts +1 -0
  224. package/dist/lib/recording/worker-source.js +5 -0
  225. package/dist/lib/recording/worker-source.js.map +7 -0
  226. package/dist/lib/render-transaction.d.ts +5 -2
  227. package/dist/lib/render-transaction.js +23 -1
  228. package/dist/lib/render-transaction.js.map +2 -2
  229. package/dist/lib/series-inspection-frame.d.ts +18 -0
  230. package/dist/lib/series-inspection-frame.js +70 -0
  231. package/dist/lib/series-inspection-frame.js.map +7 -0
  232. package/dist/lib/types.d.ts +6 -0
  233. package/package.json +10 -2
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/features/viz/lib/domain-navigation.ts"],
4
+ "sourcesContent": ["import type { LinearDomain, ResolvedContinuousScale } from \"./types.js\";\n/** Explicit hard bounds and minimum mapped extent for continuous-domain navigation. @see {@link panDomain} @see {@link zoomDomain} */\nexport interface DomainNavigationConstraints {\n /** Finite hard domain endpoints, in either order, valid for the supplied scale. See {@link LinearDomain}. */\n readonly bounds: LinearDomain;\n /** Minimum span as a fraction of the mapped hard bounds, greater than zero through one. Defaults to 0.01. */\n readonly minimumSpanRatio?: number;\n}\n/** Named pan settings with explicit navigation limits. @see {@link panDomain} */\nexport interface PanDomainOptions extends DomainNavigationConstraints {\n /** Finite displacement in range units; positive shifts mapped values toward increasing range coordinates. */\n readonly rangeDelta: number;\n}\n/** Named zoom settings with explicit navigation limits. @see {@link zoomDomain} */\nexport interface ZoomDomainOptions extends DomainNavigationConstraints {\n /** Finite anchor in the scale's range coordinates, using the same units as its range. */\n readonly rangeAnchor: number;\n /** Finite positive magnification; greater than one zooms in. */\n readonly factor: number;\n}\nfunction finite(value: number, name: string): number {\n if (typeof value !== \"number\" || !Number.isFinite(value))\n throw new RangeError(`${name} must be finite.`);\n return value;\n}\nfunction navigate(\n scale: ResolvedContinuousScale,\n start: number,\n end: number,\n constraints: DomainNavigationConstraints,\n requestedSpan?: number,\n): LinearDomain {\n const [r0, r1] = scale.range;\n if (r0 === r1 || scale.domain[0] === scale.domain[1])\n throw new RangeError(\n \"Domain navigation requires noncollapsed domain and range.\",\n );\n const { bounds, minimumSpanRatio = 0.01 } = constraints;\n if (!Array.isArray(bounds) || bounds.length !== 2)\n throw new RangeError(\"Navigation bounds require two endpoints.\");\n if (scale.type === \"utc\" && !bounds.every(Number.isSafeInteger))\n throw new RangeError(\n \"UTC navigation bounds must be safe integer milliseconds.\",\n );\n const b0 = scale.map(finite(bounds[0], \"Lower bound\")),\n b1 = scale.map(finite(bounds[1], \"Upper bound\"));\n const lo = Math.min(b0, b1),\n hi = Math.max(b0, b1),\n extent = hi - lo;\n if (!Number.isFinite(extent) || extent <= 0)\n throw new RangeError(\n \"Navigation bounds must have a finite nonzero mapped extent.\",\n );\n if (\n !Number.isFinite(minimumSpanRatio) ||\n minimumSpanRatio <= 0 ||\n minimumSpanRatio > 1\n )\n throw new RangeError(\n \"minimumSpanRatio must be greater than zero and at most one.\",\n );\n finite(start, \"Mapped start\");\n finite(end, \"Mapped end\");\n const requested = requestedSpan ?? Math.abs(end - start);\n if (!Number.isFinite(requested))\n throw new RangeError(\"Navigation span must be finite.\");\n const span = Math.min(extent, Math.max(extent * minimumSpanRatio, requested));\n const center = start / 2 + end / 2;\n const low = Math.max(lo, Math.min(hi - span, center - span / 2)),\n high = low + span;\n let a = scale.invert(r0 < r1 ? low : high),\n b = scale.invert(r0 < r1 ? high : low);\n if (scale.type === \"utc\") {\n a = Math.round(a);\n b = Math.round(b);\n }\n finite(a, \"Domain start\");\n finite(b, \"Domain end\");\n if (a === b)\n throw new RangeError(\n \"Navigation result collapses at the scale's numeric precision.\",\n );\n return Object.freeze([a, b] as const);\n}\n/**\n * Moves the visible continuous domain by a displacement expressed in range units.\n * Positive displacement shifts mapped values toward increasing range coordinates; the returned domain moves oppositely.\n * @param scale - Current resolved continuous mapping. See {@link ResolvedContinuousScale}.\n * @param options - Displacement, bounds, and minimum span. See {@link PanDomainOptions}.\n * @returns A new immutable domain pair. See {@link LinearDomain}.\n * @throws When inputs, bounds, or the resulting extent are invalid or collapsed.\n * @see {@link zoomDomain}\n */\nexport function panDomain(\n scale: ResolvedContinuousScale,\n options: PanDomainOptions,\n): LinearDomain {\n const { rangeDelta } = options;\n finite(rangeDelta, \"Pan displacement\");\n return navigate(\n scale,\n scale.range[0] - rangeDelta,\n scale.range[1] - rangeDelta,\n options,\n Math.abs(scale.range[1] - scale.range[0]),\n );\n}\n/**\n * Magnifies a continuous domain around an anchor in range coordinates.\n * Factor greater than one zooms in; hard bounds and minimum span may limit anchor preservation.\n * @param scale - Current resolved continuous mapping. See {@link ResolvedContinuousScale}.\n * @param options - Anchor, magnification, bounds, and minimum span. See {@link ZoomDomainOptions}.\n * @returns A new immutable domain pair. See {@link LinearDomain}.\n * @throws When factor, mapping, bounds, or the resulting extent are invalid or collapsed.\n * @see {@link panDomain}\n */\nexport function zoomDomain(\n scale: ResolvedContinuousScale,\n options: ZoomDomainOptions,\n): LinearDomain {\n const { rangeAnchor, factor } = options;\n finite(rangeAnchor, \"Zoom anchor\");\n finite(factor, \"Zoom factor\");\n if (factor <= 0) throw new RangeError(\"Zoom factor must be positive.\");\n return navigate(\n scale,\n rangeAnchor + (scale.range[0] - rangeAnchor) / factor,\n rangeAnchor + (scale.range[1] - rangeAnchor) / factor,\n options,\n );\n}\n"],
5
+ "mappings": "AAoBA,SAAS,OAAO,OAAe,MAAsB;AACnD,MAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK;AACrD,UAAM,IAAI,WAAW,GAAG,IAAI,kBAAkB;AAChD,SAAO;AACT;AACA,SAAS,SACP,OACA,OACA,KACA,aACA,eACc;AACd,QAAM,CAAC,IAAI,EAAE,IAAI,MAAM;AACvB,MAAI,OAAO,MAAM,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC;AACjD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,QAAM,EAAE,QAAQ,mBAAmB,KAAK,IAAI;AAC5C,MAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW;AAC9C,UAAM,IAAI,WAAW,0CAA0C;AACjE,MAAI,MAAM,SAAS,SAAS,CAAC,OAAO,MAAM,OAAO,aAAa;AAC5D,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,QAAM,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,GAAG,aAAa,CAAC,GACnD,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,GAAG,aAAa,CAAC;AACjD,QAAM,KAAK,KAAK,IAAI,IAAI,EAAE,GACxB,KAAK,KAAK,IAAI,IAAI,EAAE,GACpB,SAAS,KAAK;AAChB,MAAI,CAAC,OAAO,SAAS,MAAM,KAAK,UAAU;AACxC,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,MACE,CAAC,OAAO,SAAS,gBAAgB,KACjC,oBAAoB,KACpB,mBAAmB;AAEnB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO,OAAO,cAAc;AAC5B,SAAO,KAAK,YAAY;AACxB,QAAM,YAAY,iBAAiB,KAAK,IAAI,MAAM,KAAK;AACvD,MAAI,CAAC,OAAO,SAAS,SAAS;AAC5B,UAAM,IAAI,WAAW,iCAAiC;AACxD,QAAM,OAAO,KAAK,IAAI,QAAQ,KAAK,IAAI,SAAS,kBAAkB,SAAS,CAAC;AAC5E,QAAM,SAAS,QAAQ,IAAI,MAAM;AACjC,QAAM,MAAM,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,MAAM,SAAS,OAAO,CAAC,CAAC,GAC7D,OAAO,MAAM;AACf,MAAI,IAAI,MAAM,OAAO,KAAK,KAAK,MAAM,IAAI,GACvC,IAAI,MAAM,OAAO,KAAK,KAAK,OAAO,GAAG;AACvC,MAAI,MAAM,SAAS,OAAO;AACxB,QAAI,KAAK,MAAM,CAAC;AAChB,QAAI,KAAK,MAAM,CAAC;AAAA,EAClB;AACA,SAAO,GAAG,cAAc;AACxB,SAAO,GAAG,YAAY;AACtB,MAAI,MAAM;AACR,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO,OAAO,OAAO,CAAC,GAAG,CAAC,CAAU;AACtC;AAUO,SAAS,UACd,OACA,SACc;AACd,QAAM,EAAE,WAAW,IAAI;AACvB,SAAO,YAAY,kBAAkB;AACrC,SAAO;AAAA,IACL;AAAA,IACA,MAAM,MAAM,CAAC,IAAI;AAAA,IACjB,MAAM,MAAM,CAAC,IAAI;AAAA,IACjB;AAAA,IACA,KAAK,IAAI,MAAM,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC;AAAA,EAC1C;AACF;AAUO,SAAS,WACd,OACA,SACc;AACd,QAAM,EAAE,aAAa,OAAO,IAAI;AAChC,SAAO,aAAa,aAAa;AACjC,SAAO,QAAQ,aAAa;AAC5B,MAAI,UAAU,EAAG,OAAM,IAAI,WAAW,+BAA+B;AACrE,SAAO;AAAA,IACL;AAAA,IACA,eAAe,MAAM,MAAM,CAAC,IAAI,eAAe;AAAA,IAC/C,eAAe,MAAM,MAAM,CAAC,IAAI,eAAe;AAAA,IAC/C;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,178 @@
1
+ import { type SignalValue } from "@pibbl/core";
2
+ import { type SignalStyle } from "@pibbl/core/internal";
3
+ import type { ScaleId } from "./types.js";
4
+ /** One numeric x/y domain anchor for {@link EditableTrendLine}. */
5
+ export interface ChartAnchor {
6
+ /** X-scale domain value; an exact supplied timestamp for a trading-time x scale. */
7
+ readonly x: number;
8
+ /** Y-scale numeric domain value. */
9
+ readonly y: number;
10
+ }
11
+ /** Paint and hit-area fields shared by {@link RangeNavigator} and editable annotations. */
12
+ export interface EditableChartStyle {
13
+ /** Fill for navigator and reference-band interiors. */
14
+ readonly fill?: string;
15
+ /** Stroke color for visible annotation geometry. */
16
+ readonly stroke?: string;
17
+ /** Positive width of visible strokes. */
18
+ readonly strokeWidth?: number;
19
+ /** Annotation opacity from zero through one; handles remain fully opaque. */
20
+ readonly opacity?: number;
21
+ /** Fill color for visible drag handles. */
22
+ readonly handleFill?: string;
23
+ /** Stroke color for visible drag handles. */
24
+ readonly handleStroke?: string;
25
+ /** Positive square size of the painted handle. */
26
+ readonly handleSize?: number;
27
+ /** Positive width and height of each invisible pointer hit region. */
28
+ readonly hitSize?: number;
29
+ }
30
+ /** {@link EditableChartStyle} accepted by {@link RangeNavigator}. */
31
+ export interface RangeNavigatorStyle extends EditableChartStyle {
32
+ }
33
+ /** {@link EditableChartStyle} accepted by {@link EditableReferenceLine}. */
34
+ export interface EditableReferenceLineStyle extends EditableChartStyle {
35
+ }
36
+ /** {@link EditableChartStyle} accepted by {@link EditableReferenceBand}. */
37
+ export interface EditableReferenceBandStyle extends EditableChartStyle {
38
+ }
39
+ /** {@link EditableChartStyle} accepted by {@link EditableTrendLine}. */
40
+ export interface EditableTrendLineStyle extends EditableChartStyle {
41
+ }
42
+ type Pair = readonly [number, number];
43
+ type StyleInput<S extends EditableChartStyle> = SignalValue<SignalStyle<S>>;
44
+ type Change<T> = (value: T) => void;
45
+ /** Controlled inputs and callbacks for {@link RangeNavigator}. */
46
+ export interface RangeNavigatorProps {
47
+ /** ID of an ancestor invertible numeric continuous scale. */
48
+ readonly scale: ScaleId;
49
+ /** Controlled numeric interval in the scale domain. */
50
+ readonly values: SignalValue<Pair>;
51
+ /** Perpendicular local-coordinate start and end for the navigator strip. */
52
+ readonly span: SignalValue<Pair>;
53
+ /** Minimum numeric distance between interval endpoints; defaults to zero. */
54
+ readonly minimumSpan?: number;
55
+ /** Receives each synchronous controlled drag or keyboard interval. */
56
+ readonly onChange: Change<Pair>;
57
+ /** Receives the final interval after a completed pointer or keyboard edit. */
58
+ readonly onCommit?: Change<Pair>;
59
+ /** Runs after a cancelled interaction restores its starting interval. */
60
+ readonly onCancel?: () => void;
61
+ /** Optional annotation and handle paint inputs. */
62
+ readonly style?: StyleInput<RangeNavigatorStyle>;
63
+ }
64
+ /** Controlled inputs and callbacks for {@link EditableReferenceLine}. */
65
+ export interface EditableReferenceLineProps {
66
+ /** ID of an ancestor invertible numeric continuous scale. */
67
+ readonly scale: ScaleId;
68
+ /** Axis perpendicular to the drawn line and edited value. */
69
+ readonly direction: "horizontal" | "vertical";
70
+ /** Controlled numeric value in the scale domain. */
71
+ readonly value: SignalValue<number>;
72
+ /** Local-coordinate extent of the line along its non-edited axis. */
73
+ readonly span: SignalValue<Pair>;
74
+ /** Whether endpoint-independent handle geometry is drawn; defaults to true. */
75
+ readonly selected?: SignalValue<boolean>;
76
+ /** Finite positive numeric domain increment for arrow-key edits. */
77
+ readonly keyboardStep: number;
78
+ /** Runs when a pointer or keyboard interaction selects the line. */
79
+ readonly onSelect?: () => void;
80
+ /** Receives each synchronous controlled drag or keyboard value. */
81
+ readonly onChange: Change<number>;
82
+ /** Receives the final value after a completed pointer or keyboard edit. */
83
+ readonly onCommit?: Change<number>;
84
+ /** Runs after a cancelled interaction restores its starting value. */
85
+ readonly onCancel?: () => void;
86
+ /** Optional line and handle paint inputs. */
87
+ readonly style?: StyleInput<EditableReferenceLineStyle>;
88
+ }
89
+ /** Controlled inputs and callbacks for {@link EditableReferenceBand}. */
90
+ export interface EditableReferenceBandProps {
91
+ /** ID of an ancestor invertible numeric continuous scale. */
92
+ readonly scale: ScaleId;
93
+ /** Axis perpendicular to the band and edited interval. */
94
+ readonly direction: "horizontal" | "vertical";
95
+ /** Controlled numeric interval in the scale domain. */
96
+ readonly values: SignalValue<Pair>;
97
+ /** Local-coordinate extent of the band along its non-edited axis. */
98
+ readonly span: SignalValue<Pair>;
99
+ /** Whether resize handles are drawn; defaults to true. */
100
+ readonly selected?: SignalValue<boolean>;
101
+ /** Finite positive numeric domain increment for arrow-key panning. */
102
+ readonly keyboardStep: number;
103
+ /** Minimum numeric distance between interval endpoints; defaults to zero. */
104
+ readonly minimumSpan?: number;
105
+ /** Runs when a pointer or keyboard interaction selects the band. */
106
+ readonly onSelect?: () => void;
107
+ /** Receives each synchronous controlled drag or keyboard interval. */
108
+ readonly onChange: Change<Pair>;
109
+ /** Receives the final interval after a completed pointer or keyboard edit. */
110
+ readonly onCommit?: Change<Pair>;
111
+ /** Runs after a cancelled interaction restores its starting interval. */
112
+ readonly onCancel?: () => void;
113
+ /** Optional band and handle paint inputs. */
114
+ readonly style?: StyleInput<EditableReferenceBandStyle>;
115
+ }
116
+ /** Controlled inputs and callbacks for {@link EditableTrendLine}. */
117
+ export interface EditableTrendLineProps {
118
+ /** ID of an ancestor numeric or TradingTimeScale x mapping. */
119
+ readonly xScale: ScaleId;
120
+ /** ID of an ancestor invertible numeric y mapping. */
121
+ readonly yScale: ScaleId;
122
+ /** Controlled pair of domain anchors forming the line. */
123
+ readonly anchors: SignalValue<readonly [ChartAnchor, ChartAnchor]>;
124
+ /** Whether endpoint handles are drawn; defaults to true. */
125
+ readonly selected?: SignalValue<boolean>;
126
+ /** Finite positive x and y increments for arrow-key translation. */
127
+ readonly keyboardStep: {
128
+ /** Numeric-domain or timestamp increment for x translation. */
129
+ readonly x: number;
130
+ /** Numeric-domain increment for y translation. */
131
+ readonly y: number;
132
+ };
133
+ /** Runs when a pointer or keyboard interaction selects the trend line. */
134
+ readonly onSelect?: () => void;
135
+ /** Receives each synchronous controlled drag or keyboard anchor pair. */
136
+ readonly onChange: Change<readonly [ChartAnchor, ChartAnchor]>;
137
+ /** Receives final anchors after a completed pointer or keyboard edit. */
138
+ readonly onCommit?: Change<readonly [ChartAnchor, ChartAnchor]>;
139
+ /** Runs after a cancelled interaction restores its starting anchors. */
140
+ readonly onCancel?: () => void;
141
+ /** Optional line and handle paint inputs. */
142
+ readonly style?: StyleInput<EditableTrendLineStyle>;
143
+ }
144
+ /**
145
+ * Renders a controlled overview interval with pan and edge-resize handles.
146
+ *
147
+ * @param props - Controlled range inputs and callbacks; see {@link RangeNavigatorProps}.
148
+ * @returns Navigator geometry, handles, or no geometry when outside the visible scale range.
149
+ * @see {@link EditableReferenceBand} for a directional plot interval.
150
+ */
151
+ export declare function RangeNavigator(props: RangeNavigatorProps): import("../../../jsx-runtime.js").JSX.Element | null;
152
+ /**
153
+ * Renders one controlled numeric-domain reference line.
154
+ *
155
+ * @param props - Controlled line inputs and callbacks; see {@link EditableReferenceLineProps}.
156
+ * @returns The line and its selected handle, or no geometry when it is outside the visible range.
157
+ * @see {@link EditableReferenceBand} for an editable interval.
158
+ */
159
+ export declare function EditableReferenceLine(props: EditableReferenceLineProps): import("../../../jsx-runtime.js").JSX.Element | null;
160
+ /**
161
+ * Renders a controlled numeric-domain interval with pan and edge-resize handles.
162
+ *
163
+ * @param props - Controlled band inputs and callbacks; see {@link EditableReferenceBandProps}.
164
+ * @returns Band geometry and selected handles, or no geometry when outside the visible range.
165
+ * @see {@link RangeNavigator} for an overview-strip interval.
166
+ */
167
+ export declare function EditableReferenceBand(props: EditableReferenceBandProps): import("../../../jsx-runtime.js").JSX.Element | null;
168
+ /**
169
+ * Renders two controlled anchors as an editable trend line.
170
+ *
171
+ * Trading-time x values snap to supplied observations during pointer and keyboard edits.
172
+ *
173
+ * @param props - Controlled anchor inputs and callbacks; see {@link EditableTrendLineProps}.
174
+ * @returns Line geometry and selected endpoint handles.
175
+ * @see {@link ChartAnchor} for the controlled anchor shape.
176
+ */
177
+ export declare function EditableTrendLine(props: EditableTrendLineProps): import("../../../jsx-runtime.js").JSX.Element;
178
+ export {};