@cronus-ui/ui 0.6.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 (717) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +262 -0
  3. package/dist/charts/animation.d.ts +11 -0
  4. package/dist/charts/animation.js +29 -0
  5. package/dist/charts/area-chart-loading.d.ts +34 -0
  6. package/dist/charts/area-chart-loading.js +22 -0
  7. package/dist/charts/area-chart.d.ts +48 -0
  8. package/dist/charts/area-chart.js +57 -0
  9. package/dist/charts/area-gradient-defs.d.ts +20 -0
  10. package/dist/charts/area-gradient-defs.js +15 -0
  11. package/dist/charts/area.d.ts +76 -0
  12. package/dist/charts/area.js +104 -0
  13. package/dist/charts/background.d.ts +27 -0
  14. package/dist/charts/background.js +68 -0
  15. package/dist/charts/bar-chart-loading.d.ts +17 -0
  16. package/dist/charts/bar-chart-loading.js +14 -0
  17. package/dist/charts/bar-chart.d.ts +55 -0
  18. package/dist/charts/bar-chart.js +432 -0
  19. package/dist/charts/bar-depth-geometry.d.ts +33 -0
  20. package/dist/charts/bar-depth-geometry.js +38 -0
  21. package/dist/charts/bar-depth.d.ts +157 -0
  22. package/dist/charts/bar-depth.js +586 -0
  23. package/dist/charts/bar-squares-layout.d.ts +28 -0
  24. package/dist/charts/bar-squares-layout.js +47 -0
  25. package/dist/charts/bar-squares.d.ts +49 -0
  26. package/dist/charts/bar-squares.js +207 -0
  27. package/dist/charts/bar-x-axis.d.ts +14 -0
  28. package/dist/charts/bar-x-axis.js +73 -0
  29. package/dist/charts/bar-y-axis.d.ts +12 -0
  30. package/dist/charts/bar-y-axis.js +64 -0
  31. package/dist/charts/bar.d.ts +41 -0
  32. package/dist/charts/bar.js +208 -0
  33. package/dist/charts/candlestick-chart.d.ts +46 -0
  34. package/dist/charts/candlestick-chart.js +203 -0
  35. package/dist/charts/candlestick.d.ts +24 -0
  36. package/dist/charts/candlestick.js +139 -0
  37. package/dist/charts/chart-brush-handle.d.ts +15 -0
  38. package/dist/charts/chart-brush-handle.js +47 -0
  39. package/dist/charts/chart-brush-layout.d.ts +27 -0
  40. package/dist/charts/chart-brush-layout.js +42 -0
  41. package/dist/charts/chart-brush-selection-overlay.d.ts +19 -0
  42. package/dist/charts/chart-brush-selection-overlay.js +44 -0
  43. package/dist/charts/chart-brush-track-overlay.d.ts +23 -0
  44. package/dist/charts/chart-brush-track-overlay.js +65 -0
  45. package/dist/charts/chart-brush.d.ts +32 -0
  46. package/dist/charts/chart-brush.js +116 -0
  47. package/dist/charts/chart-center-typography.d.ts +12 -0
  48. package/dist/charts/chart-center-typography.js +12 -0
  49. package/dist/charts/chart-child-passthrough.d.ts +17 -0
  50. package/dist/charts/chart-child-passthrough.js +74 -0
  51. package/dist/charts/chart-config-context.d.ts +26 -0
  52. package/dist/charts/chart-config-context.js +47 -0
  53. package/dist/charts/chart-context.d.ts +199 -0
  54. package/dist/charts/chart-context.js +201 -0
  55. package/dist/charts/chart-defs.d.ts +13 -0
  56. package/dist/charts/chart-defs.js +49 -0
  57. package/dist/charts/chart-formatters.d.ts +10 -0
  58. package/dist/charts/chart-formatters.js +28 -0
  59. package/dist/charts/chart-legend-hover.d.ts +13 -0
  60. package/dist/charts/chart-legend-hover.js +18 -0
  61. package/dist/charts/chart-legend.d.ts +55 -0
  62. package/dist/charts/chart-legend.js +30 -0
  63. package/dist/charts/chart-loading-label.d.ts +10 -0
  64. package/dist/charts/chart-loading-label.js +21 -0
  65. package/dist/charts/chart-phase.d.ts +31 -0
  66. package/dist/charts/chart-phase.js +21 -0
  67. package/dist/charts/chart-reveal-clip.d.ts +24 -0
  68. package/dist/charts/chart-reveal-clip.js +24 -0
  69. package/dist/charts/chart-scale.d.ts +12 -0
  70. package/dist/charts/chart-scale.js +17 -0
  71. package/dist/charts/chart-stat-flow.d.ts +36 -0
  72. package/dist/charts/chart-stat-flow.js +23 -0
  73. package/dist/charts/choropleth/choropleth-chart.d.ts +43 -0
  74. package/dist/charts/choropleth/choropleth-chart.js +218 -0
  75. package/dist/charts/choropleth/choropleth-context.d.ts +86 -0
  76. package/dist/charts/choropleth/choropleth-context.js +106 -0
  77. package/dist/charts/choropleth/choropleth-feature.d.ts +13 -0
  78. package/dist/charts/choropleth/choropleth-feature.js +125 -0
  79. package/dist/charts/choropleth/choropleth-graticule.d.ts +11 -0
  80. package/dist/charts/choropleth/choropleth-graticule.js +12 -0
  81. package/dist/charts/choropleth/choropleth-tooltip.d.ts +31 -0
  82. package/dist/charts/choropleth/choropleth-tooltip.js +50 -0
  83. package/dist/charts/choropleth/index.d.ts +7 -0
  84. package/dist/charts/choropleth/index.js +6 -0
  85. package/dist/charts/composed-chart.d.ts +36 -0
  86. package/dist/charts/composed-chart.js +152 -0
  87. package/dist/charts/dash-tail-stroke.d.ts +18 -0
  88. package/dist/charts/dash-tail-stroke.js +13 -0
  89. package/dist/charts/decimate-time-series.d.ts +10 -0
  90. package/dist/charts/decimate-time-series.js +112 -0
  91. package/dist/charts/fade-edges.d.ts +34 -0
  92. package/dist/charts/fade-edges.js +35 -0
  93. package/dist/charts/filter-data-by-x-domain.d.ts +5 -0
  94. package/dist/charts/filter-data-by-x-domain.js +42 -0
  95. package/dist/charts/funnel-chart.d.ts +91 -0
  96. package/dist/charts/funnel-chart.js +302 -0
  97. package/dist/charts/gauge-label-layout.d.ts +22 -0
  98. package/dist/charts/gauge-label-layout.js +44 -0
  99. package/dist/charts/gauge.d.ts +56 -0
  100. package/dist/charts/gauge.js +307 -0
  101. package/dist/charts/generate-chart-skeleton-data.d.ts +16 -0
  102. package/dist/charts/generate-chart-skeleton-data.js +25 -0
  103. package/dist/charts/grid.d.ts +58 -0
  104. package/dist/charts/grid.js +80 -0
  105. package/dist/charts/heatmap/generate-heatmap-skeleton-data.d.ts +4 -0
  106. package/dist/charts/heatmap/generate-heatmap-skeleton-data.js +12 -0
  107. package/dist/charts/heatmap/heatmap-animation.d.ts +41 -0
  108. package/dist/charts/heatmap/heatmap-animation.js +85 -0
  109. package/dist/charts/heatmap/heatmap-cells.d.ts +21 -0
  110. package/dist/charts/heatmap/heatmap-cells.js +265 -0
  111. package/dist/charts/heatmap/heatmap-chart-loading.d.ts +21 -0
  112. package/dist/charts/heatmap/heatmap-chart-loading.js +14 -0
  113. package/dist/charts/heatmap/heatmap-chart.d.ts +80 -0
  114. package/dist/charts/heatmap/heatmap-chart.js +275 -0
  115. package/dist/charts/heatmap/heatmap-colors.d.ts +70 -0
  116. package/dist/charts/heatmap/heatmap-colors.js +113 -0
  117. package/dist/charts/heatmap/heatmap-context.d.ts +109 -0
  118. package/dist/charts/heatmap/heatmap-context.js +69 -0
  119. package/dist/charts/heatmap/heatmap-legend-gradient.d.ts +20 -0
  120. package/dist/charts/heatmap/heatmap-legend-gradient.js +44 -0
  121. package/dist/charts/heatmap/heatmap-legend-swatch.d.ts +8 -0
  122. package/dist/charts/heatmap/heatmap-legend-swatch.js +26 -0
  123. package/dist/charts/heatmap/heatmap-legend.d.ts +41 -0
  124. package/dist/charts/heatmap/heatmap-legend.js +68 -0
  125. package/dist/charts/heatmap/heatmap-pattern-defs.d.ts +5 -0
  126. package/dist/charts/heatmap/heatmap-pattern-defs.js +25 -0
  127. package/dist/charts/heatmap/heatmap-resolve-separator.d.ts +8 -0
  128. package/dist/charts/heatmap/heatmap-resolve-separator.js +82 -0
  129. package/dist/charts/heatmap/heatmap-separator.d.ts +63 -0
  130. package/dist/charts/heatmap/heatmap-separator.js +71 -0
  131. package/dist/charts/heatmap/heatmap-tooltip.d.ts +30 -0
  132. package/dist/charts/heatmap/heatmap-tooltip.js +20 -0
  133. package/dist/charts/heatmap/heatmap-utils.d.ts +175 -0
  134. package/dist/charts/heatmap/heatmap-utils.js +595 -0
  135. package/dist/charts/heatmap/heatmap-x-axis.d.ts +7 -0
  136. package/dist/charts/heatmap/heatmap-x-axis.js +54 -0
  137. package/dist/charts/heatmap/heatmap-y-axis.d.ts +14 -0
  138. package/dist/charts/heatmap/heatmap-y-axis.js +37 -0
  139. package/dist/charts/heatmap/index.d.ts +15 -0
  140. package/dist/charts/heatmap/index.js +15 -0
  141. package/dist/charts/heatmap/use-delayed-tooltip-data.d.ts +3 -0
  142. package/dist/charts/heatmap/use-delayed-tooltip-data.js +53 -0
  143. package/dist/charts/highlight-segment-bounds.d.ts +18 -0
  144. package/dist/charts/highlight-segment-bounds.js +36 -0
  145. package/dist/charts/highlight-segment.d.ts +22 -0
  146. package/dist/charts/highlight-segment.js +14 -0
  147. package/dist/charts/index.d.ts +106 -0
  148. package/dist/charts/index.js +133 -0
  149. package/dist/charts/indicator-fade.d.ts +15 -0
  150. package/dist/charts/indicator-fade.js +42 -0
  151. package/dist/charts/legend/index.d.ts +8 -0
  152. package/dist/charts/legend/index.js +10 -0
  153. package/dist/charts/legend/legend-context.d.ts +48 -0
  154. package/dist/charts/legend/legend-context.js +34 -0
  155. package/dist/charts/legend/legend-item.d.ts +12 -0
  156. package/dist/charts/legend/legend-item.js +11 -0
  157. package/dist/charts/legend/legend-label.d.ts +9 -0
  158. package/dist/charts/legend/legend-label.js +10 -0
  159. package/dist/charts/legend/legend-marker.d.ts +9 -0
  160. package/dist/charts/legend/legend-marker.js +11 -0
  161. package/dist/charts/legend/legend-progress.d.ts +13 -0
  162. package/dist/charts/legend/legend-progress.js +15 -0
  163. package/dist/charts/legend/legend-value.d.ts +17 -0
  164. package/dist/charts/legend/legend-value.js +11 -0
  165. package/dist/charts/legend/legend.d.ts +23 -0
  166. package/dist/charts/legend/legend.js +43 -0
  167. package/dist/charts/line-chart-loading.d.ts +34 -0
  168. package/dist/charts/line-chart-loading.js +22 -0
  169. package/dist/charts/line-chart.d.ts +46 -0
  170. package/dist/charts/line-chart.js +91 -0
  171. package/dist/charts/line-loading-pulse.d.ts +20 -0
  172. package/dist/charts/line-loading-pulse.js +124 -0
  173. package/dist/charts/line-loading-timing.d.ts +10 -0
  174. package/dist/charts/line-loading-timing.js +10 -0
  175. package/dist/charts/line-series-terminal-marker.d.ts +16 -0
  176. package/dist/charts/line-series-terminal-marker.js +46 -0
  177. package/dist/charts/line.d.ts +64 -0
  178. package/dist/charts/line.js +96 -0
  179. package/dist/charts/live-line-chart.d.ts +35 -0
  180. package/dist/charts/live-line-chart.js +374 -0
  181. package/dist/charts/live-line.d.ts +39 -0
  182. package/dist/charts/live-line.js +78 -0
  183. package/dist/charts/live-x-axis.d.ts +12 -0
  184. package/dist/charts/live-x-axis.js +85 -0
  185. package/dist/charts/live-y-axis.d.ts +16 -0
  186. package/dist/charts/live-y-axis.js +137 -0
  187. package/dist/charts/loading-sweep.d.ts +66 -0
  188. package/dist/charts/loading-sweep.js +174 -0
  189. package/dist/charts/markers/chart-markers.d.ts +25 -0
  190. package/dist/charts/markers/chart-markers.js +87 -0
  191. package/dist/charts/markers/index.d.ts +3 -0
  192. package/dist/charts/markers/index.js +3 -0
  193. package/dist/charts/markers/marker-group.d.ts +88 -0
  194. package/dist/charts/markers/marker-group.js +171 -0
  195. package/dist/charts/motion-utils.d.ts +9 -0
  196. package/dist/charts/motion-utils.js +28 -0
  197. package/dist/charts/notch-gauge-shared.d.ts +49 -0
  198. package/dist/charts/notch-gauge-shared.js +103 -0
  199. package/dist/charts/path-stroke-utils.d.ts +20 -0
  200. package/dist/charts/path-stroke-utils.js +55 -0
  201. package/dist/charts/pattern-area.d.ts +21 -0
  202. package/dist/charts/pattern-area.js +19 -0
  203. package/dist/charts/pattern-preset.d.ts +26 -0
  204. package/dist/charts/pattern-preset.js +83 -0
  205. package/dist/charts/pie-center-shell.d.ts +24 -0
  206. package/dist/charts/pie-center-shell.js +109 -0
  207. package/dist/charts/pie-center.d.ts +46 -0
  208. package/dist/charts/pie-center.js +46 -0
  209. package/dist/charts/pie-chart.d.ts +50 -0
  210. package/dist/charts/pie-chart.js +248 -0
  211. package/dist/charts/pie-context.d.ts +74 -0
  212. package/dist/charts/pie-context.js +95 -0
  213. package/dist/charts/pie-slice.d.ts +28 -0
  214. package/dist/charts/pie-slice.js +180 -0
  215. package/dist/charts/profit-loss-legend-hover.d.ts +11 -0
  216. package/dist/charts/profit-loss-legend-hover.js +12 -0
  217. package/dist/charts/profit-loss-legend.d.ts +17 -0
  218. package/dist/charts/profit-loss-legend.js +18 -0
  219. package/dist/charts/profit-loss-line.d.ts +27 -0
  220. package/dist/charts/profit-loss-line.js +77 -0
  221. package/dist/charts/profit-loss-segments.d.ts +12 -0
  222. package/dist/charts/profit-loss-segments.js +86 -0
  223. package/dist/charts/projection-config.d.ts +11 -0
  224. package/dist/charts/projection-config.js +80 -0
  225. package/dist/charts/projection-line-end-marker.d.ts +15 -0
  226. package/dist/charts/projection-line-end-marker.js +27 -0
  227. package/dist/charts/projection-line.d.ts +40 -0
  228. package/dist/charts/projection-line.js +79 -0
  229. package/dist/charts/projection-utils.d.ts +46 -0
  230. package/dist/charts/projection-utils.js +253 -0
  231. package/dist/charts/radar-area.d.ts +17 -0
  232. package/dist/charts/radar-area.js +84 -0
  233. package/dist/charts/radar-axis.d.ts +14 -0
  234. package/dist/charts/radar-axis.js +24 -0
  235. package/dist/charts/radar-chart.d.ts +36 -0
  236. package/dist/charts/radar-chart.js +89 -0
  237. package/dist/charts/radar-context.d.ts +68 -0
  238. package/dist/charts/radar-context.js +87 -0
  239. package/dist/charts/radar-grid.d.ts +16 -0
  240. package/dist/charts/radar-grid.js +40 -0
  241. package/dist/charts/radar-labels.d.ts +16 -0
  242. package/dist/charts/radar-labels.js +29 -0
  243. package/dist/charts/reference-area-config.d.ts +10 -0
  244. package/dist/charts/reference-area-config.js +39 -0
  245. package/dist/charts/reference-area-geometry.d.ts +23 -0
  246. package/dist/charts/reference-area-geometry.js +68 -0
  247. package/dist/charts/reference-area-registration-context.d.ts +8 -0
  248. package/dist/charts/reference-area-registration-context.js +7 -0
  249. package/dist/charts/reference-area.d.ts +52 -0
  250. package/dist/charts/reference-area.js +101 -0
  251. package/dist/charts/ring-center.d.ts +46 -0
  252. package/dist/charts/ring-center.js +41 -0
  253. package/dist/charts/ring-chart.d.ts +41 -0
  254. package/dist/charts/ring-chart.js +212 -0
  255. package/dist/charts/ring-context.d.ts +66 -0
  256. package/dist/charts/ring-context.js +92 -0
  257. package/dist/charts/ring.d.ts +11 -0
  258. package/dist/charts/ring.js +104 -0
  259. package/dist/charts/sankey/index.d.ts +6 -0
  260. package/dist/charts/sankey/index.js +6 -0
  261. package/dist/charts/sankey/sankey-chart.d.ts +39 -0
  262. package/dist/charts/sankey/sankey-chart.js +117 -0
  263. package/dist/charts/sankey/sankey-context.d.ts +69 -0
  264. package/dist/charts/sankey/sankey-context.js +23 -0
  265. package/dist/charts/sankey/sankey-link.d.ts +26 -0
  266. package/dist/charts/sankey/sankey-link.js +155 -0
  267. package/dist/charts/sankey/sankey-node.d.ts +29 -0
  268. package/dist/charts/sankey/sankey-node.js +200 -0
  269. package/dist/charts/sankey/sankey-tooltip.d.ts +24 -0
  270. package/dist/charts/sankey/sankey-tooltip.js +70 -0
  271. package/dist/charts/scatter-chart-shell.d.ts +21 -0
  272. package/dist/charts/scatter-chart-shell.js +152 -0
  273. package/dist/charts/scatter-chart.d.ts +32 -0
  274. package/dist/charts/scatter-chart.js +56 -0
  275. package/dist/charts/scatter-svg.d.ts +6 -0
  276. package/dist/charts/scatter-svg.js +16 -0
  277. package/dist/charts/scatter.d.ts +21 -0
  278. package/dist/charts/scatter.js +30 -0
  279. package/dist/charts/segment.d.ts +26 -0
  280. package/dist/charts/segment.js +42 -0
  281. package/dist/charts/series-bar-layout.d.ts +18 -0
  282. package/dist/charts/series-bar-layout.js +31 -0
  283. package/dist/charts/series-bar.d.ts +20 -0
  284. package/dist/charts/series-bar.js +120 -0
  285. package/dist/charts/series-dash-tail-overlay.d.ts +17 -0
  286. package/dist/charts/series-dash-tail-overlay.js +39 -0
  287. package/dist/charts/series-highlight-layer.d.ts +23 -0
  288. package/dist/charts/series-highlight-layer.js +21 -0
  289. package/dist/charts/series-hover-dim.d.ts +29 -0
  290. package/dist/charts/series-hover-dim.js +26 -0
  291. package/dist/charts/series-markers.d.ts +14 -0
  292. package/dist/charts/series-markers.js +98 -0
  293. package/dist/charts/series-path-utils.d.ts +19 -0
  294. package/dist/charts/series-path-utils.js +60 -0
  295. package/dist/charts/series-point-marker.d.ts +48 -0
  296. package/dist/charts/series-point-marker.js +48 -0
  297. package/dist/charts/shimmering-text.d.ts +23 -0
  298. package/dist/charts/shimmering-text.js +31 -0
  299. package/dist/charts/static-chart-preview-context.d.ts +7 -0
  300. package/dist/charts/static-chart-preview-context.js +12 -0
  301. package/dist/charts/sunburst-breadcrumb.d.ts +16 -0
  302. package/dist/charts/sunburst-breadcrumb.js +26 -0
  303. package/dist/charts/sunburst-center.d.ts +5 -0
  304. package/dist/charts/sunburst-center.js +17 -0
  305. package/dist/charts/sunburst-chart.d.ts +30 -0
  306. package/dist/charts/sunburst-chart.js +263 -0
  307. package/dist/charts/sunburst-context.d.ts +61 -0
  308. package/dist/charts/sunburst-context.js +112 -0
  309. package/dist/charts/sunburst-data.d.ts +9 -0
  310. package/dist/charts/sunburst-data.js +2 -0
  311. package/dist/charts/sunburst-hint.d.ts +13 -0
  312. package/dist/charts/sunburst-hint.js +31 -0
  313. package/dist/charts/sunburst-labels.d.ts +9 -0
  314. package/dist/charts/sunburst-labels.js +63 -0
  315. package/dist/charts/sunburst-segment.d.ts +11 -0
  316. package/dist/charts/sunburst-segment.js +78 -0
  317. package/dist/charts/sunburst.d.ts +101 -0
  318. package/dist/charts/sunburst.js +396 -0
  319. package/dist/charts/time-series-chart-shell.d.ts +47 -0
  320. package/dist/charts/time-series-chart-shell.js +390 -0
  321. package/dist/charts/tooltip/chart-tooltip.d.ts +76 -0
  322. package/dist/charts/tooltip/chart-tooltip.js +150 -0
  323. package/dist/charts/tooltip/date-ticker.d.ts +11 -0
  324. package/dist/charts/tooltip/date-ticker.js +77 -0
  325. package/dist/charts/tooltip/index.d.ts +7 -0
  326. package/dist/charts/tooltip/index.js +7 -0
  327. package/dist/charts/tooltip/tooltip-box.d.ts +48 -0
  328. package/dist/charts/tooltip/tooltip-box.js +114 -0
  329. package/dist/charts/tooltip/tooltip-content.d.ts +18 -0
  330. package/dist/charts/tooltip/tooltip-content.js +9 -0
  331. package/dist/charts/tooltip/tooltip-dot.d.ts +28 -0
  332. package/dist/charts/tooltip/tooltip-dot.js +54 -0
  333. package/dist/charts/tooltip/tooltip-indicator.d.ts +45 -0
  334. package/dist/charts/tooltip/tooltip-indicator.js +65 -0
  335. package/dist/charts/use-animated-series-path.d.ts +19 -0
  336. package/dist/charts/use-animated-series-path.js +93 -0
  337. package/dist/charts/use-animated-y-domains.d.ts +14 -0
  338. package/dist/charts/use-animated-y-domains.js +150 -0
  339. package/dist/charts/use-chart-interaction.d.ts +41 -0
  340. package/dist/charts/use-chart-interaction.js +244 -0
  341. package/dist/charts/use-chart-phase-orchestrator.d.ts +23 -0
  342. package/dist/charts/use-chart-phase-orchestrator.js +139 -0
  343. package/dist/charts/use-enter-complete.d.ts +8 -0
  344. package/dist/charts/use-enter-complete.js +23 -0
  345. package/dist/charts/use-grid-shimmer.d.ts +16 -0
  346. package/dist/charts/use-grid-shimmer.js +63 -0
  347. package/dist/charts/use-highlight-segment.d.ts +14 -0
  348. package/dist/charts/use-highlight-segment.js +34 -0
  349. package/dist/charts/use-mount-progress.d.ts +4 -0
  350. package/dist/charts/use-mount-progress.js +22 -0
  351. package/dist/charts/use-scatter-chart-interaction.d.ts +35 -0
  352. package/dist/charts/use-scatter-chart-interaction.js +228 -0
  353. package/dist/charts/use-scheduled-tooltip.d.ts +9 -0
  354. package/dist/charts/use-scheduled-tooltip.js +76 -0
  355. package/dist/charts/visx-pattern.d.ts +19 -0
  356. package/dist/charts/visx-pattern.js +20 -0
  357. package/dist/charts/x-axis.d.ts +27 -0
  358. package/dist/charts/x-axis.js +415 -0
  359. package/dist/charts/y-axis-scales.d.ts +26 -0
  360. package/dist/charts/y-axis-scales.js +72 -0
  361. package/dist/charts/y-axis-ticks.d.ts +12 -0
  362. package/dist/charts/y-axis-ticks.js +24 -0
  363. package/dist/charts/y-axis.d.ts +22 -0
  364. package/dist/charts/y-axis.js +80 -0
  365. package/dist/charts/y-domain-utils.d.ts +27 -0
  366. package/dist/charts/y-domain-utils.js +88 -0
  367. package/dist/components/accordion.d.ts +6 -0
  368. package/dist/components/accordion.js +20 -0
  369. package/dist/components/alert-dialog.d.ts +18 -0
  370. package/dist/components/alert-dialog.js +41 -0
  371. package/dist/components/alert.d.ts +24 -0
  372. package/dist/components/alert.js +46 -0
  373. package/dist/components/animated-button.d.ts +5 -0
  374. package/dist/components/animated-button.js +16 -0
  375. package/dist/components/animated-list.d.ts +26 -0
  376. package/dist/components/animated-list.js +25 -0
  377. package/dist/components/animated-number.d.ts +67 -0
  378. package/dist/components/animated-number.js +131 -0
  379. package/dist/components/app-shell.d.ts +27 -0
  380. package/dist/components/app-shell.js +18 -0
  381. package/dist/components/area-chart.d.ts +11 -0
  382. package/dist/components/area-chart.js +12 -0
  383. package/dist/components/aspect-ratio.d.ts +16 -0
  384. package/dist/components/aspect-ratio.js +14 -0
  385. package/dist/components/aurora-background.d.ts +3 -0
  386. package/dist/components/aurora-background.js +8 -0
  387. package/dist/components/autocomplete.d.ts +55 -0
  388. package/dist/components/autocomplete.js +279 -0
  389. package/dist/components/avatar-group.d.ts +39 -0
  390. package/dist/components/avatar-group.js +50 -0
  391. package/dist/components/avatar.d.ts +5 -0
  392. package/dist/components/avatar.js +17 -0
  393. package/dist/components/badge.d.ts +10 -0
  394. package/dist/components/badge.js +35 -0
  395. package/dist/components/banner.d.ts +45 -0
  396. package/dist/components/banner.js +80 -0
  397. package/dist/components/bar-chart.d.ts +11 -0
  398. package/dist/components/bar-chart.js +9 -0
  399. package/dist/components/border-beam.d.ts +45 -0
  400. package/dist/components/border-beam.js +48 -0
  401. package/dist/components/breadcrumb.d.ts +12 -0
  402. package/dist/components/breadcrumb.js +35 -0
  403. package/dist/components/button-group.d.ts +7 -0
  404. package/dist/components/button-group.js +10 -0
  405. package/dist/components/button.d.ts +12 -0
  406. package/dist/components/button.js +39 -0
  407. package/dist/components/calendar.d.ts +7 -0
  408. package/dist/components/calendar.js +71 -0
  409. package/dist/components/candlestick-chart.d.ts +13 -0
  410. package/dist/components/candlestick-chart.js +66 -0
  411. package/dist/components/card-stack.d.ts +28 -0
  412. package/dist/components/card-stack.js +47 -0
  413. package/dist/components/card.d.ts +9 -0
  414. package/dist/components/card.js +32 -0
  415. package/dist/components/carousel.d.ts +82 -0
  416. package/dist/components/carousel.js +310 -0
  417. package/dist/components/chart.d.ts +100 -0
  418. package/dist/components/chart.js +210 -0
  419. package/dist/components/checkbox.d.ts +3 -0
  420. package/dist/components/checkbox.js +11 -0
  421. package/dist/components/chip.d.ts +80 -0
  422. package/dist/components/chip.js +186 -0
  423. package/dist/components/choropleth-chart.d.ts +12 -0
  424. package/dist/components/choropleth-chart.js +31 -0
  425. package/dist/components/click-spark.d.ts +19 -0
  426. package/dist/components/click-spark.js +51 -0
  427. package/dist/components/code-block.d.ts +13 -0
  428. package/dist/components/code-block.js +20 -0
  429. package/dist/components/code-tabs.d.ts +51 -0
  430. package/dist/components/code-tabs.js +150 -0
  431. package/dist/components/collapsible.d.ts +5 -0
  432. package/dist/components/collapsible.js +12 -0
  433. package/dist/components/color-picker.d.ts +30 -0
  434. package/dist/components/color-picker.js +300 -0
  435. package/dist/components/combobox.d.ts +33 -0
  436. package/dist/components/combobox.js +32 -0
  437. package/dist/components/command.d.ts +87 -0
  438. package/dist/components/command.js +44 -0
  439. package/dist/components/comparison-slider.d.ts +17 -0
  440. package/dist/components/comparison-slider.js +81 -0
  441. package/dist/components/composed-chart.d.ts +13 -0
  442. package/dist/components/composed-chart.js +22 -0
  443. package/dist/components/confetti.d.ts +21 -0
  444. package/dist/components/confetti.js +111 -0
  445. package/dist/components/confirmation-dialog.d.ts +46 -0
  446. package/dist/components/confirmation-dialog.js +102 -0
  447. package/dist/components/context-menu.d.ts +28 -0
  448. package/dist/components/context-menu.js +52 -0
  449. package/dist/components/copy-button.d.ts +13 -0
  450. package/dist/components/copy-button.js +72 -0
  451. package/dist/components/countdown.d.ts +58 -0
  452. package/dist/components/countdown.js +106 -0
  453. package/dist/components/credit-card-input.d.ts +62 -0
  454. package/dist/components/credit-card-input.js +211 -0
  455. package/dist/components/currency-input.d.ts +86 -0
  456. package/dist/components/currency-input.js +215 -0
  457. package/dist/components/data-table.d.ts +232 -0
  458. package/dist/components/data-table.js +359 -0
  459. package/dist/components/date-picker.d.ts +66 -0
  460. package/dist/components/date-picker.js +55 -0
  461. package/dist/components/date-range-picker.d.ts +59 -0
  462. package/dist/components/date-range-picker.js +59 -0
  463. package/dist/components/description-list.d.ts +84 -0
  464. package/dist/components/description-list.js +138 -0
  465. package/dist/components/dialog.d.ts +26 -0
  466. package/dist/components/dialog.js +35 -0
  467. package/dist/components/dock.d.ts +34 -0
  468. package/dist/components/dock.js +61 -0
  469. package/dist/components/dot-pattern.d.ts +24 -0
  470. package/dist/components/dot-pattern.js +19 -0
  471. package/dist/components/drawer.d.ts +22 -0
  472. package/dist/components/drawer.js +37 -0
  473. package/dist/components/dropdown-menu.d.ts +32 -0
  474. package/dist/components/dropdown-menu.js +56 -0
  475. package/dist/components/dynamic-island.d.ts +26 -0
  476. package/dist/components/dynamic-island.js +31 -0
  477. package/dist/components/empty.d.ts +7 -0
  478. package/dist/components/empty.js +24 -0
  479. package/dist/components/expandable-tabs.d.ts +24 -0
  480. package/dist/components/expandable-tabs.js +30 -0
  481. package/dist/components/fab.d.ts +35 -0
  482. package/dist/components/fab.js +36 -0
  483. package/dist/components/field.d.ts +6 -0
  484. package/dist/components/field.js +22 -0
  485. package/dist/components/file-dropzone.d.ts +28 -0
  486. package/dist/components/file-dropzone.js +59 -0
  487. package/dist/components/flickering-grid.d.ts +25 -0
  488. package/dist/components/flickering-grid.js +30 -0
  489. package/dist/components/flip-card.d.ts +70 -0
  490. package/dist/components/flip-card.js +117 -0
  491. package/dist/components/floating-label-input.d.ts +34 -0
  492. package/dist/components/floating-label-input.js +25 -0
  493. package/dist/components/form.d.ts +25 -0
  494. package/dist/components/form.js +68 -0
  495. package/dist/components/frame.d.ts +12 -0
  496. package/dist/components/frame.js +10 -0
  497. package/dist/components/funnel-chart.d.ts +11 -0
  498. package/dist/components/funnel-chart.js +16 -0
  499. package/dist/components/gauge-chart.d.ts +8 -0
  500. package/dist/components/gauge-chart.js +10 -0
  501. package/dist/components/glare-hover.d.ts +15 -0
  502. package/dist/components/glare-hover.js +64 -0
  503. package/dist/components/glass-card.d.ts +3 -0
  504. package/dist/components/glass-card.js +8 -0
  505. package/dist/components/gradient-border.d.ts +7 -0
  506. package/dist/components/gradient-border.js +8 -0
  507. package/dist/components/gradient-text.d.ts +6 -0
  508. package/dist/components/gradient-text.js +10 -0
  509. package/dist/components/grid-pattern.d.ts +23 -0
  510. package/dist/components/grid-pattern.js +18 -0
  511. package/dist/components/heatmap-chart.d.ts +6 -0
  512. package/dist/components/heatmap-chart.js +8 -0
  513. package/dist/components/heatmap.d.ts +28 -0
  514. package/dist/components/heatmap.js +41 -0
  515. package/dist/components/highlighter.d.ts +20 -0
  516. package/dist/components/highlighter.js +19 -0
  517. package/dist/components/hover-card.d.ts +5 -0
  518. package/dist/components/hover-card.js +12 -0
  519. package/dist/components/image-zoom.d.ts +47 -0
  520. package/dist/components/image-zoom.js +125 -0
  521. package/dist/components/input-group.d.ts +10 -0
  522. package/dist/components/input-group.js +12 -0
  523. package/dist/components/input-otp.d.ts +18 -0
  524. package/dist/components/input-otp.js +38 -0
  525. package/dist/components/input.d.ts +6 -0
  526. package/dist/components/input.js +8 -0
  527. package/dist/components/json-viewer.d.ts +43 -0
  528. package/dist/components/json-viewer.js +313 -0
  529. package/dist/components/kanban.d.ts +31 -0
  530. package/dist/components/kanban.js +143 -0
  531. package/dist/components/kbd.d.ts +3 -0
  532. package/dist/components/kbd.js +8 -0
  533. package/dist/components/label.d.ts +3 -0
  534. package/dist/components/label.js +9 -0
  535. package/dist/components/light-rays.d.ts +19 -0
  536. package/dist/components/light-rays.js +20 -0
  537. package/dist/components/lightbox.d.ts +24 -0
  538. package/dist/components/lightbox.js +68 -0
  539. package/dist/components/line-chart.d.ts +10 -0
  540. package/dist/components/line-chart.js +9 -0
  541. package/dist/components/live-line-chart.d.ts +12 -0
  542. package/dist/components/live-line-chart.js +42 -0
  543. package/dist/components/logo-carousel.d.ts +27 -0
  544. package/dist/components/logo-carousel.js +101 -0
  545. package/dist/components/magnetic.d.ts +44 -0
  546. package/dist/components/magnetic.js +172 -0
  547. package/dist/components/marquee.d.ts +71 -0
  548. package/dist/components/marquee.js +141 -0
  549. package/dist/components/masonry.d.ts +16 -0
  550. package/dist/components/masonry.js +84 -0
  551. package/dist/components/menubar.d.ts +33 -0
  552. package/dist/components/menubar.js +56 -0
  553. package/dist/components/meteors.d.ts +20 -0
  554. package/dist/components/meteors.js +39 -0
  555. package/dist/components/metric.d.ts +9 -0
  556. package/dist/components/metric.js +35 -0
  557. package/dist/components/mode-toggle.d.ts +32 -0
  558. package/dist/components/mode-toggle.js +40 -0
  559. package/dist/components/morphing-popover.d.ts +91 -0
  560. package/dist/components/morphing-popover.js +194 -0
  561. package/dist/components/motion-presets.d.ts +9 -0
  562. package/dist/components/motion-presets.js +20 -0
  563. package/dist/components/multi-select.d.ts +54 -0
  564. package/dist/components/multi-select.js +0 -0
  565. package/dist/components/navigation-menu.d.ts +12 -0
  566. package/dist/components/navigation-menu.js +42 -0
  567. package/dist/components/noise.d.ts +19 -0
  568. package/dist/components/noise.js +18 -0
  569. package/dist/components/notification-center.d.ts +68 -0
  570. package/dist/components/notification-center.js +57 -0
  571. package/dist/components/number-input.d.ts +45 -0
  572. package/dist/components/number-input.js +148 -0
  573. package/dist/components/orbit.d.ts +77 -0
  574. package/dist/components/orbit.js +100 -0
  575. package/dist/components/pagination.d.ts +16 -0
  576. package/dist/components/pagination.js +34 -0
  577. package/dist/components/particles.d.ts +18 -0
  578. package/dist/components/particles.js +92 -0
  579. package/dist/components/password-input.d.ts +16 -0
  580. package/dist/components/password-input.js +49 -0
  581. package/dist/components/phone-input.d.ts +67 -0
  582. package/dist/components/phone-input.js +225 -0
  583. package/dist/components/pie-chart.d.ts +12 -0
  584. package/dist/components/pie-chart.js +13 -0
  585. package/dist/components/pill-nav.d.ts +25 -0
  586. package/dist/components/pill-nav.js +66 -0
  587. package/dist/components/popover.d.ts +7 -0
  588. package/dist/components/popover.js +15 -0
  589. package/dist/components/profit-loss-chart.d.ts +10 -0
  590. package/dist/components/profit-loss-chart.js +8 -0
  591. package/dist/components/progress.d.ts +10 -0
  592. package/dist/components/progress.js +17 -0
  593. package/dist/components/progressive-blur.d.ts +24 -0
  594. package/dist/components/progressive-blur.js +43 -0
  595. package/dist/components/radar-chart.d.ts +9 -0
  596. package/dist/components/radar-chart.js +9 -0
  597. package/dist/components/radio-group.d.ts +4 -0
  598. package/dist/components/radio-group.js +15 -0
  599. package/dist/components/rating.d.ts +29 -0
  600. package/dist/components/rating.js +94 -0
  601. package/dist/components/resizable.d.ts +57 -0
  602. package/dist/components/resizable.js +73 -0
  603. package/dist/components/retro-grid.d.ts +25 -0
  604. package/dist/components/retro-grid.js +26 -0
  605. package/dist/components/reveal.d.ts +9 -0
  606. package/dist/components/reveal.js +14 -0
  607. package/dist/components/rich-text-editor.d.ts +28 -0
  608. package/dist/components/rich-text-editor.js +83 -0
  609. package/dist/components/ring-chart.d.ts +13 -0
  610. package/dist/components/ring-chart.js +16 -0
  611. package/dist/components/ripple.d.ts +25 -0
  612. package/dist/components/ripple.js +26 -0
  613. package/dist/components/sankey-chart.d.ts +16 -0
  614. package/dist/components/sankey-chart.js +8 -0
  615. package/dist/components/scatter-chart.d.ts +12 -0
  616. package/dist/components/scatter-chart.js +9 -0
  617. package/dist/components/scheduler.d.ts +50 -0
  618. package/dist/components/scheduler.js +93 -0
  619. package/dist/components/scramble-text.d.ts +39 -0
  620. package/dist/components/scramble-text.js +78 -0
  621. package/dist/components/scroll-area.d.ts +13 -0
  622. package/dist/components/scroll-area.js +14 -0
  623. package/dist/components/scroll-progress.d.ts +19 -0
  624. package/dist/components/scroll-progress.js +67 -0
  625. package/dist/components/segmented-control.d.ts +48 -0
  626. package/dist/components/segmented-control.js +222 -0
  627. package/dist/components/select.d.ts +12 -0
  628. package/dist/components/select.js +43 -0
  629. package/dist/components/separator.d.ts +3 -0
  630. package/dist/components/separator.js +9 -0
  631. package/dist/components/sheet.d.ts +25 -0
  632. package/dist/components/sheet.js +47 -0
  633. package/dist/components/shimmer.d.ts +3 -0
  634. package/dist/components/shimmer.js +8 -0
  635. package/dist/components/shiny-text.d.ts +20 -0
  636. package/dist/components/shiny-text.js +24 -0
  637. package/dist/components/sidebar.d.ts +92 -0
  638. package/dist/components/sidebar.js +290 -0
  639. package/dist/components/signature-pad.d.ts +44 -0
  640. package/dist/components/signature-pad.js +317 -0
  641. package/dist/components/skeleton.d.ts +3 -0
  642. package/dist/components/skeleton.js +8 -0
  643. package/dist/components/slider.d.ts +10 -0
  644. package/dist/components/slider.js +27 -0
  645. package/dist/components/sonner.d.ts +9 -0
  646. package/dist/components/sonner.js +17 -0
  647. package/dist/components/sparkles-text.d.ts +19 -0
  648. package/dist/components/sparkles-text.js +36 -0
  649. package/dist/components/sparkline.d.ts +22 -0
  650. package/dist/components/sparkline.js +100 -0
  651. package/dist/components/spinner.d.ts +10 -0
  652. package/dist/components/spinner.js +20 -0
  653. package/dist/components/spinning-text.d.ts +29 -0
  654. package/dist/components/spinning-text.js +40 -0
  655. package/dist/components/split-button.d.ts +71 -0
  656. package/dist/components/split-button.js +30 -0
  657. package/dist/components/spotlight-card.d.ts +11 -0
  658. package/dist/components/spotlight-card.js +63 -0
  659. package/dist/components/star-border.d.ts +19 -0
  660. package/dist/components/star-border.js +18 -0
  661. package/dist/components/status-dot.d.ts +60 -0
  662. package/dist/components/status-dot.js +76 -0
  663. package/dist/components/stepper.d.ts +98 -0
  664. package/dist/components/stepper.js +164 -0
  665. package/dist/components/sunburst-chart.d.ts +11 -0
  666. package/dist/components/sunburst-chart.js +45 -0
  667. package/dist/components/switch.d.ts +3 -0
  668. package/dist/components/switch.js +10 -0
  669. package/dist/components/table-of-contents.d.ts +64 -0
  670. package/dist/components/table-of-contents.js +0 -0
  671. package/dist/components/table.d.ts +10 -0
  672. package/dist/components/table.js +38 -0
  673. package/dist/components/tabs.d.ts +6 -0
  674. package/dist/components/tabs.js +22 -0
  675. package/dist/components/tags-input.d.ts +39 -0
  676. package/dist/components/tags-input.js +86 -0
  677. package/dist/components/terminal.d.ts +86 -0
  678. package/dist/components/terminal.js +182 -0
  679. package/dist/components/text-effect.d.ts +71 -0
  680. package/dist/components/text-effect.js +166 -0
  681. package/dist/components/textarea.d.ts +6 -0
  682. package/dist/components/textarea.js +8 -0
  683. package/dist/components/tilt-card.d.ts +30 -0
  684. package/dist/components/tilt-card.js +84 -0
  685. package/dist/components/time-picker.d.ts +58 -0
  686. package/dist/components/time-picker.js +245 -0
  687. package/dist/components/timeline.d.ts +81 -0
  688. package/dist/components/timeline.js +165 -0
  689. package/dist/components/toggle-group.d.ts +12 -0
  690. package/dist/components/toggle-group.js +23 -0
  691. package/dist/components/toggle.d.ts +12 -0
  692. package/dist/components/toggle.js +25 -0
  693. package/dist/components/toolbar.d.ts +14 -0
  694. package/dist/components/toolbar.js +89 -0
  695. package/dist/components/tooltip.d.ts +29 -0
  696. package/dist/components/tooltip.js +48 -0
  697. package/dist/components/tree-view.d.ts +45 -0
  698. package/dist/components/tree-view.js +197 -0
  699. package/dist/components/typing-text.d.ts +49 -0
  700. package/dist/components/typing-text.js +90 -0
  701. package/dist/components/usage-meter.d.ts +30 -0
  702. package/dist/components/usage-meter.js +90 -0
  703. package/dist/components/video-player.d.ts +48 -0
  704. package/dist/components/video-player.js +216 -0
  705. package/dist/components/word-rotate.d.ts +40 -0
  706. package/dist/components/word-rotate.js +34 -0
  707. package/dist/index.d.ts +306 -0
  708. package/dist/index.js +179 -0
  709. package/dist/lib/cn.d.ts +7 -0
  710. package/dist/lib/cn.js +10 -0
  711. package/dist/lib/demo-saas.d.ts +171 -0
  712. package/dist/lib/demo-saas.js +210 -0
  713. package/dist/lib/demo-store.d.ts +157 -0
  714. package/dist/lib/demo-store.js +353 -0
  715. package/dist/testing/index.d.ts +76 -0
  716. package/dist/testing/index.js +116 -0
  717. package/package.json +941 -0
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { AnimatePresence, motion } from "motion/react";
4
+ import { useMemo } from "react";
5
+ import { chartCssVars, useChart } from "./chart-context.js";
6
+ function useSegmentVisibility() {
7
+ const { selection, innerHeight } = useChart();
8
+ const isVisible = selection?.active === true && Math.abs(selection.endX - selection.startX) > 5;
9
+ return { selection, innerHeight, isVisible };
10
+ }
11
+ export function SegmentBackground({ fill = chartCssVars.segmentBackground, }) {
12
+ const { selection, innerHeight, isVisible } = useSegmentVisibility();
13
+ return (_jsx(AnimatePresence, { children: isVisible && selection && (_jsx(motion.rect, { animate: { opacity: 1 }, exit: { opacity: 0 }, fill: fill, height: innerHeight, initial: { opacity: 0 }, transition: { duration: 0.15 }, width: selection.endX - selection.startX, x: selection.startX, y: 0 })) }));
14
+ }
15
+ SegmentBackground.displayName = "SegmentBackground";
16
+ const gradientIdCounter = { current: 0 };
17
+ function SegmentLine({ x, stroke = chartCssVars.segmentLine, strokeWidth = 1, variant = "dashed", visible, innerHeight, }) {
18
+ const gradientId = useMemo(() => {
19
+ gradientIdCounter.current += 1;
20
+ return `segment-line-grad-${gradientIdCounter.current}`;
21
+ }, []);
22
+ if (!visible) {
23
+ return null;
24
+ }
25
+ if (variant === "gradient") {
26
+ return (_jsxs("g", { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0%", x2: "0%", y1: "0%", y2: "100%", children: [_jsx("stop", { offset: "0%", style: { stopColor: stroke, stopOpacity: 0 } }), _jsx("stop", { offset: "10%", style: { stopColor: stroke, stopOpacity: 1 } }), _jsx("stop", { offset: "90%", style: { stopColor: stroke, stopOpacity: 1 } }), _jsx("stop", { offset: "100%", style: { stopColor: stroke, stopOpacity: 0 } })] }) }), _jsx("line", { stroke: `url(#${gradientId})`, strokeWidth: strokeWidth, x1: x, x2: x, y1: 0, y2: innerHeight })] }));
27
+ }
28
+ return (_jsx("line", { stroke: stroke, strokeDasharray: variant === "dashed" ? "4,4" : undefined, strokeWidth: strokeWidth, x1: x, x2: x, y1: 0, y2: innerHeight }));
29
+ }
30
+ // --- SegmentLineFrom ---
31
+ export function SegmentLineFrom(props) {
32
+ const { selection, innerHeight, isVisible } = useSegmentVisibility();
33
+ return (_jsx(SegmentLine, { ...props, innerHeight: innerHeight, visible: isVisible, x: selection?.startX ?? 0 }));
34
+ }
35
+ SegmentLineFrom.displayName = "SegmentLineFrom";
36
+ // --- SegmentLineTo ---
37
+ export function SegmentLineTo(props) {
38
+ const { selection, innerHeight, isVisible } = useSegmentVisibility();
39
+ return (_jsx(SegmentLine, { ...props, innerHeight: innerHeight, visible: isVisible, x: selection?.endX ?? 0 }));
40
+ }
41
+ SegmentLineTo.displayName = "SegmentLineTo";
42
+ //# sourceMappingURL=segment.js.map
@@ -0,0 +1,18 @@
1
+ export declare function computeSeriesBarWidth(input: {
2
+ innerWidth: number;
3
+ dataLength: number;
4
+ columnWidth: number;
5
+ seriesCount: number;
6
+ composedBarSize?: number;
7
+ composedMaxBarSize?: number;
8
+ composedBarGap?: number;
9
+ stacked?: boolean;
10
+ }): number;
11
+ /** Half-width of the bar group at each x — used to pad reveal clips. */
12
+ export declare function computeSeriesBarRevealClipPadding(input: {
13
+ barWidth: number;
14
+ seriesCount: number;
15
+ gap?: number;
16
+ stacked?: boolean;
17
+ }): number;
18
+ //# sourceMappingURL=series-bar-layout.d.ts.map
@@ -0,0 +1,31 @@
1
+ export function computeSeriesBarWidth(input) {
2
+ const { innerWidth, dataLength, columnWidth, seriesCount, composedBarSize, composedMaxBarSize, composedBarGap = 4, stacked = false, } = input;
3
+ const gap = composedBarGap;
4
+ const groupCount = stacked ? 1 : Math.max(1, seriesCount);
5
+ let slot = columnWidth;
6
+ if (slot <= 0) {
7
+ slot = dataLength < 2 ? innerWidth : innerWidth / (dataLength - 1);
8
+ }
9
+ let width = composedBarSize ?? Math.min(slot * 0.88, composedMaxBarSize ?? Number.POSITIVE_INFINITY);
10
+ if (composedMaxBarSize != null) {
11
+ width = Math.min(width, composedMaxBarSize);
12
+ }
13
+ if (groupCount > 1) {
14
+ const maxGroup = slot * 0.92;
15
+ const needed = groupCount * width + (groupCount - 1) * gap;
16
+ if (needed > maxGroup && maxGroup > 0) {
17
+ width = Math.max(4, (maxGroup - (groupCount - 1) * gap) / groupCount);
18
+ }
19
+ }
20
+ return Math.max(2, width);
21
+ }
22
+ /** Half-width of the bar group at each x — used to pad reveal clips. */
23
+ export function computeSeriesBarRevealClipPadding(input) {
24
+ const { barWidth, seriesCount, gap = 4, stacked = false } = input;
25
+ if (stacked || seriesCount <= 1) {
26
+ return Math.ceil(barWidth / 2);
27
+ }
28
+ const groupWidth = seriesCount * barWidth + (seriesCount - 1) * gap;
29
+ return Math.ceil(groupWidth / 2);
30
+ }
31
+ //# sourceMappingURL=series-bar-layout.js.map
@@ -0,0 +1,20 @@
1
+ export interface SeriesBarProps {
2
+ /** Key in data for bar height (y value) */
3
+ dataKey: string;
4
+ /** Fill color. Default: var(--chart-line-primary) */
5
+ fill?: string;
6
+ /** Tooltip dot color when fill is gradient/pattern. Default: fill */
7
+ stroke?: string;
8
+ /** Corner radius for bar top corners. Default: 0 (square tops, similar to Bar lineCap="butt") */
9
+ radius?: number;
10
+ /** Animate grow from baseline. Default: true */
11
+ animate?: boolean;
12
+ /** Opacity for non-hovered bars when another point is hovered (matches BarChart). Default: 0.3 */
13
+ fadedOpacity?: number;
14
+ }
15
+ export declare function SeriesBar({ dataKey, fill, radius, animate, fadedOpacity, }: SeriesBarProps): import("react").JSX.Element | null;
16
+ export declare namespace SeriesBar {
17
+ var displayName: string;
18
+ }
19
+ export default SeriesBar;
20
+ //# sourceMappingURL=series-bar.d.ts.map
@@ -0,0 +1,120 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { motion } from "motion/react";
4
+ import { useMemo } from "react";
5
+ import { chartCssVars, useChart } from "./chart-context.js";
6
+ import { useChartLegendHover } from "./chart-legend-hover.js";
7
+ import { transitionWithDelay } from "./motion-utils.js";
8
+ import { computeSeriesBarWidth } from "./series-bar-layout.js";
9
+ function computeSeriesBarLayout(input) {
10
+ const { stacked, composedStackOffsets, rowIndex, dataKey, value, yScale, innerHeight, xCenter, barWidth, seriesCount, gap, seriesIndex, stackGap, isLastSeries, radius, } = input;
11
+ if (stacked && composedStackOffsets) {
12
+ const offset = composedStackOffsets.get(rowIndex)?.get(dataKey) ?? 0;
13
+ const valuePos = yScale(value) ?? 0;
14
+ let barHeight = innerHeight - valuePos;
15
+ const offsetY = yScale(offset) ?? innerHeight;
16
+ const gapOffset = seriesIndex * stackGap;
17
+ const valueY = offsetY - barHeight - gapOffset;
18
+ if (!isLastSeries && stackGap > 0) {
19
+ barHeight = Math.max(0, barHeight - stackGap);
20
+ }
21
+ const barLeft = xCenter - barWidth / 2;
22
+ const applyRounding = stackGap > 0 || isLastSeries;
23
+ return {
24
+ barLeft,
25
+ barHeight,
26
+ effectiveRadius: applyRounding ? radius : 0,
27
+ valueY,
28
+ };
29
+ }
30
+ const groupWidth = seriesCount * barWidth + (seriesCount > 1 ? (seriesCount - 1) * gap : 0);
31
+ const valueY = yScale(value) ?? innerHeight;
32
+ return {
33
+ barLeft: xCenter - groupWidth / 2 + seriesIndex * (barWidth + gap),
34
+ barHeight: innerHeight - valueY,
35
+ effectiveRadius: radius,
36
+ valueY,
37
+ };
38
+ }
39
+ export function SeriesBar({ dataKey, fill = chartCssVars.linePrimary, radius = 0, animate = true, fadedOpacity = 0.3, }) {
40
+ const { data, xScale, yScale, xAccessor, innerHeight, innerWidth, columnWidth, isLoaded, animationDuration, enterTransition, revealEpoch = 0, barScale, composedBarDataKeys, composedBarSize, composedMaxBarSize, composedBarGap, composedStacked, composedStackOffsets, composedStackGap, tooltipData, } = useChart();
41
+ const barKeys = useMemo(() => {
42
+ if (composedBarDataKeys && composedBarDataKeys.length > 0) {
43
+ return composedBarDataKeys;
44
+ }
45
+ return [dataKey];
46
+ }, [composedBarDataKeys, dataKey]);
47
+ const seriesIndex = useMemo(() => {
48
+ const idx = barKeys.indexOf(dataKey);
49
+ return idx >= 0 ? idx : 0;
50
+ }, [barKeys, dataKey]);
51
+ const n = barKeys.length;
52
+ const gap = composedBarGap ?? 4;
53
+ const stackGap = composedStackGap ?? 0;
54
+ const stacked = Boolean(composedStacked) &&
55
+ composedStackOffsets != null &&
56
+ composedBarDataKeys != null &&
57
+ composedBarDataKeys.length > 0;
58
+ const isLastSeries = seriesIndex === n - 1;
59
+ const barWidth = useMemo(() => computeSeriesBarWidth({
60
+ innerWidth,
61
+ dataLength: data.length,
62
+ columnWidth,
63
+ seriesCount: n,
64
+ composedBarSize,
65
+ composedMaxBarSize,
66
+ composedBarGap: gap,
67
+ stacked,
68
+ }), [columnWidth, composedBarSize, composedMaxBarSize, data.length, gap, innerWidth, n, stacked]);
69
+ const totalAnimDuration = animationDuration || 1100;
70
+ const staggerSpread = totalAnimDuration * 0.4;
71
+ const calculatedStaggerDelay = data.length > 1 ? staggerSpread / 1000 / data.length : 0;
72
+ const { hoveredIndex: legendHoveredIndex } = useChartLegendHover();
73
+ const isLegendDimmed = legendHoveredIndex !== null && legendHoveredIndex !== seriesIndex;
74
+ const hoveredIndex = tooltipData?.index ?? null;
75
+ if (barScale) {
76
+ console.warn("SeriesBar is for time-based ComposedChart / LineChart context. Use Bar inside BarChart for categorical x.");
77
+ return null;
78
+ }
79
+ return (_jsx("g", { className: "series-bar", children: data.map((d, i) => {
80
+ const value = d[dataKey];
81
+ if (typeof value !== "number") {
82
+ return null;
83
+ }
84
+ const xCenter = xScale(xAccessor(d)) ?? 0;
85
+ const { barLeft, valueY, barHeight, effectiveRadius } = computeSeriesBarLayout({
86
+ stacked,
87
+ composedStackOffsets,
88
+ rowIndex: i,
89
+ dataKey,
90
+ value,
91
+ yScale,
92
+ innerHeight,
93
+ xCenter,
94
+ barWidth,
95
+ seriesCount: n,
96
+ gap,
97
+ seriesIndex,
98
+ stackGap,
99
+ isLastSeries,
100
+ radius,
101
+ });
102
+ const categoryLabel = String(xAccessor(d).getTime());
103
+ const isFaded = (hoveredIndex !== null && hoveredIndex !== i) || isLegendDimmed;
104
+ if (animate && !isLoaded) {
105
+ return (_jsx(SeriesBarRect, { barHeight: barHeight, barWidth: barWidth, calculatedStaggerDelay: calculatedStaggerDelay, enterTransition: enterTransition, fadedOpacity: fadedOpacity, fill: fill, index: i, innerHeight: innerHeight, isFaded: isFaded, radius: effectiveRadius, revealEpoch: revealEpoch, x: barLeft, y: valueY }, `${dataKey}-${categoryLabel}-${revealEpoch}`));
106
+ }
107
+ return (_jsx(motion.rect, { animate: { opacity: isFaded ? fadedOpacity : 1 }, fill: fill, height: barHeight, rx: effectiveRadius, ry: effectiveRadius, transition: { opacity: { duration: 0.12 } }, width: barWidth, x: barLeft, y: valueY }, `${dataKey}-${categoryLabel}`));
108
+ }) }));
109
+ }
110
+ SeriesBar.displayName = "SeriesBar";
111
+ function SeriesBarRect({ x, y, barWidth, barHeight, fill, radius, index, innerHeight, calculatedStaggerDelay, enterTransition, revealEpoch, isFaded, fadedOpacity, }) {
112
+ const enterAnim = transitionWithDelay(enterTransition, index * calculatedStaggerDelay);
113
+ return (_jsx(motion.rect, { animate: {
114
+ height: barHeight,
115
+ y,
116
+ opacity: isFaded ? fadedOpacity : 1,
117
+ }, fill: fill, initial: { height: 0, y: innerHeight, opacity: 1 }, rx: radius, ry: radius, transition: enterAnim, width: barWidth, x: x }, `series-bar-${index}-${revealEpoch}`));
118
+ }
119
+ export default SeriesBar;
120
+ //# sourceMappingURL=series-bar.js.map
@@ -0,0 +1,17 @@
1
+ interface SeriesDashTailOverlayProps {
2
+ dashFromIndex?: number;
3
+ dashArray: string;
4
+ data: Record<string, unknown>[];
5
+ pathD: string | null;
6
+ pathLength: number;
7
+ innerWidth: number;
8
+ innerHeight: number;
9
+ stroke: string;
10
+ strokeWidth: number;
11
+ xScale: (value: Date | number) => number | undefined;
12
+ xAccessor: (datum: Record<string, unknown>) => Date | number;
13
+ }
14
+ declare function SeriesDashTailOverlayImpl({ dashFromIndex, dashArray, data, pathD, pathLength, innerWidth, innerHeight, stroke, strokeWidth, xScale, xAccessor, }: SeriesDashTailOverlayProps): import("react").JSX.Element | null;
15
+ export declare const SeriesDashTailOverlay: import("react").MemoExoticComponent<typeof SeriesDashTailOverlayImpl>;
16
+ export {};
17
+ //# sourceMappingURL=series-dash-tail-overlay.d.ts.map
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { memo, useMemo } from "react";
4
+ import { DashTailStroke } from "./dash-tail-stroke.js";
5
+ import { resolveDashStartX, resolveDashTailBounds } from "./path-stroke-utils.js";
6
+ function SeriesDashTailOverlayImpl({ dashFromIndex, dashArray, data, pathD, pathLength, innerWidth, innerHeight, stroke, strokeWidth, xScale, xAccessor, }) {
7
+ const hasDashTail = resolveDashTailBounds(dashFromIndex, data.length);
8
+ const dashStartX = useMemo(() => {
9
+ if (!hasDashTail || dashFromIndex == null) {
10
+ return 0;
11
+ }
12
+ return resolveDashStartX(data, dashFromIndex, xScale, xAccessor);
13
+ }, [hasDashTail, dashFromIndex, data, xScale, xAccessor]);
14
+ // Linear (index-based) approximation of the path length at `dashFromIndex`.
15
+ // The accurate version (`findPathLengthAtX` binary search via
16
+ // `getPointAtLength`) is exact but cost ~40 ms per series on a 365-point
17
+ // bezier — for charts with ~10 series that synchronously blocks the main
18
+ // thread for ~400 ms on the post-measurement re-render, swallowing the first
19
+ // second of the entrance animation.
20
+ //
21
+ // For evenly-spaced time-series data — the standard case — this is exact at
22
+ // flat regions of the curve and only differs by a pixel or two where the
23
+ // curve has steep y-variation, which is imperceptible at the dash boundary.
24
+ const dashStartLength = useMemo(() => {
25
+ if (!hasDashTail || dashFromIndex == null || pathLength <= 0) {
26
+ return 0;
27
+ }
28
+ return (dashFromIndex / Math.max(1, data.length - 1)) * pathLength;
29
+ }, [hasDashTail, dashFromIndex, data.length, pathLength]);
30
+ if (!hasDashTail || dashFromIndex == null || pathLength <= 0) {
31
+ return null;
32
+ }
33
+ return (_jsx(DashTailStroke, { dashArray: dashArray, dashStartLength: dashStartLength, dashStartX: dashStartX, innerHeight: innerHeight, innerWidth: innerWidth, pathD: pathD, pathLength: pathLength, stroke: stroke, strokeWidth: strokeWidth }));
34
+ }
35
+ // All props originate from the chart's stable context slice (data, xScale,
36
+ // xAccessor, …) or are mount-stable strings (gradient `url(#…)` ids). Shallow
37
+ // compare lets us skip the path-length binary search on every cursor move.
38
+ export const SeriesDashTailOverlay = memo(SeriesDashTailOverlayImpl);
39
+ //# sourceMappingURL=series-dash-tail-overlay.js.map
@@ -0,0 +1,23 @@
1
+ import type { RefObject } from "react";
2
+ interface SeriesHighlightLayerProps {
3
+ /** Caller already gated `showHighlight && showLine`; this just routes through. */
4
+ enabled: boolean;
5
+ height: number;
6
+ pathRef: RefObject<SVGPathElement | null>;
7
+ stroke: string;
8
+ strokeWidth: number;
9
+ }
10
+ /**
11
+ * Self-contained hover-highlight band over a series stroke.
12
+ *
13
+ * Owns the `useHighlightSegment` subscription (which reads both stable + hover
14
+ * context) so the parent <Area> / <Line> can stay on the stable slice. This
15
+ * component still re-renders on hover — that's the price of driving the
16
+ * highlight band — but it's a tiny leaf so the cost is bounded to itself.
17
+ */
18
+ export declare function SeriesHighlightLayer({ enabled, height, pathRef, stroke, strokeWidth, }: SeriesHighlightLayerProps): import("react").JSX.Element;
19
+ export declare namespace SeriesHighlightLayer {
20
+ var displayName: string;
21
+ }
22
+ export default SeriesHighlightLayer;
23
+ //# sourceMappingURL=series-highlight-layer.d.ts.map
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useChartStable } from "./chart-context.js";
4
+ import { HighlightSegment } from "./highlight-segment.js";
5
+ import { useHighlightSegment } from "./use-highlight-segment.js";
6
+ /**
7
+ * Self-contained hover-highlight band over a series stroke.
8
+ *
9
+ * Owns the `useHighlightSegment` subscription (which reads both stable + hover
10
+ * context) so the parent <Area> / <Line> can stay on the stable slice. This
11
+ * component still re-renders on hover — that's the price of driving the
12
+ * highlight band — but it's a tiny leaf so the cost is bounded to itself.
13
+ */
14
+ export function SeriesHighlightLayer({ enabled, height, pathRef, stroke, strokeWidth, }) {
15
+ const { isLoaded } = useChartStable();
16
+ const { xSpring, widthSpring, isActive } = useHighlightSegment({ enabled });
17
+ return (_jsx(HighlightSegment, { height: height, pathRef: pathRef, stroke: stroke, strokeWidth: strokeWidth, visible: enabled && isActive && isLoaded, width: widthSpring, x: xSpring }));
18
+ }
19
+ SeriesHighlightLayer.displayName = "SeriesHighlightLayer";
20
+ export default SeriesHighlightLayer;
21
+ //# sourceMappingURL=series-highlight-layer.js.map
@@ -0,0 +1,29 @@
1
+ import type { ReactNode } from "react";
2
+ interface SeriesHoverDimProps {
3
+ /** Skip the dim entirely. */
4
+ enabled?: boolean;
5
+ /** Opacity to fade to while the chart is being hovered. */
6
+ dimOpacity?: number;
7
+ /** Tween duration in seconds. */
8
+ durationSec?: number;
9
+ /** Series index for multi-series legend hover dimming. */
10
+ seriesIndex?: number;
11
+ /** Stable chart visuals — area fill, stroke line, dashed tail, etc. */
12
+ children: ReactNode;
13
+ }
14
+ /**
15
+ * Wraps stable series visuals with a hover-driven opacity animation.
16
+ *
17
+ * The wrapper subscribes to chart hover state internally so the parent (Area /
18
+ * Line) can stay on the stable context slice. Children come in as a React prop:
19
+ * because the parent is not re-rendering on hover, the children element
20
+ * reference stays identical and React skips re-rendering them when this
21
+ * wrapper re-renders. That keeps expensive subtrees (`SeriesDashTailOverlay`
22
+ * and its `getPointAtLength` binary search) quiescent on cursor motion.
23
+ */
24
+ export declare function SeriesHoverDim({ enabled, dimOpacity, durationSec, seriesIndex, children, }: SeriesHoverDimProps): import("react").JSX.Element;
25
+ export declare namespace SeriesHoverDim {
26
+ var displayName: string;
27
+ }
28
+ export default SeriesHoverDim;
29
+ //# sourceMappingURL=series-hover-dim.d.ts.map
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { motion } from "motion/react";
4
+ import { useChartHover } from "./chart-context.js";
5
+ import { useChartLegendHover } from "./chart-legend-hover.js";
6
+ /**
7
+ * Wraps stable series visuals with a hover-driven opacity animation.
8
+ *
9
+ * The wrapper subscribes to chart hover state internally so the parent (Area /
10
+ * Line) can stay on the stable context slice. Children come in as a React prop:
11
+ * because the parent is not re-rendering on hover, the children element
12
+ * reference stays identical and React skips re-rendering them when this
13
+ * wrapper re-renders. That keeps expensive subtrees (`SeriesDashTailOverlay`
14
+ * and its `getPointAtLength` binary search) quiescent on cursor motion.
15
+ */
16
+ export function SeriesHoverDim({ enabled = true, dimOpacity = 0.5, durationSec = 0.4, seriesIndex, children, }) {
17
+ const { tooltipData, selection } = useChartHover();
18
+ const { hoveredIndex: legendHoveredIndex } = useChartLegendHover();
19
+ const isChartHovering = tooltipData !== null || selection?.active === true;
20
+ const isLegendDimmed = legendHoveredIndex !== null && seriesIndex !== undefined && legendHoveredIndex !== seriesIndex;
21
+ const opacity = enabled && (isChartHovering || isLegendDimmed) ? dimOpacity : 1;
22
+ return (_jsx(motion.g, { animate: { opacity }, initial: { opacity: 1 }, transition: { duration: durationSec, ease: "easeInOut" }, children: children }));
23
+ }
24
+ SeriesHoverDim.displayName = "SeriesHoverDim";
25
+ export default SeriesHoverDim;
26
+ //# sourceMappingURL=series-hover-dim.js.map
@@ -0,0 +1,14 @@
1
+ import { type SeriesPointMarkerStyle } from "./series-point-marker.js";
2
+ export interface SeriesMarkersProps extends SeriesPointMarkerStyle {
3
+ dataKey: string;
4
+ /** Marker fill color. Defaults to series stroke or chart palette color. */
5
+ fill?: string;
6
+ /** Whether to animate markers with clip reveal. Default: true */
7
+ animate?: boolean;
8
+ }
9
+ export declare function SeriesMarkers({ dataKey, fill, stroke, strokeWidth, ringGap, outlineWidth, outlineColor, radius, animate, fadeOnHover, inactiveOpacity, inactiveBlur, enterBlur, showActiveHighlight, }: SeriesMarkersProps): import("react").JSX.Element;
10
+ export declare namespace SeriesMarkers {
11
+ var displayName: string;
12
+ }
13
+ export default SeriesMarkers;
14
+ //# sourceMappingURL=series-markers.d.ts.map
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useMemo } from "react";
4
+ import { clipRevealTransition } from "./animation.js";
5
+ import { defaultScatterColors, useChartHover, useChartStable, useYScale } from "./chart-context.js";
6
+ import { useChartLegendHover } from "./chart-legend-hover.js";
7
+ import { getSeriesMarkerVisualExtent, SeriesPointMarker, StaticSeriesPointMarker, } from "./series-point-marker.js";
8
+ export function SeriesMarkers({ dataKey, fill, stroke, strokeWidth = 2, ringGap = 2, outlineWidth = 0, outlineColor, radius = 5, animate = true, fadeOnHover = true, inactiveOpacity = 0.5, inactiveBlur = 2, enterBlur = 2, showActiveHighlight = true, }) {
9
+ // Stable slice only. Hover-driven dim + active-highlight live in the inner
10
+ // <SeriesMarkersDimWrapper> / <SeriesMarkersActiveHighlight> components, so
11
+ // mouse motion does not re-render the full point grid.
12
+ const { data, xScale, innerWidth, enterTransition, animationDuration, revealEpoch, isLoaded, xAccessor, lines, } = useChartStable();
13
+ const seriesIndex = useMemo(() => {
14
+ const index = lines.findIndex((line) => line.dataKey === dataKey);
15
+ return index >= 0 ? index : 0;
16
+ }, [lines, dataKey]);
17
+ const seriesConfig = lines[seriesIndex];
18
+ const yScale = useYScale(seriesConfig?.yAxisId);
19
+ const seriesColor = defaultScatterColors[seriesIndex % defaultScatterColors.length] ?? defaultScatterColors[0];
20
+ const resolvedFill = fill ?? seriesConfig?.stroke ?? seriesColor;
21
+ const resolvedStroke = stroke ?? resolvedFill;
22
+ const visualExtent = useMemo(() => getSeriesMarkerVisualExtent({
23
+ radius,
24
+ strokeWidth,
25
+ ringGap,
26
+ outlineWidth,
27
+ showActiveHighlight,
28
+ }), [radius, strokeWidth, ringGap, outlineWidth, showActiveHighlight]);
29
+ const revealDurationSec = clipRevealTransition(enterTransition).duration ?? animationDuration / 1000;
30
+ const enterDuration = 0.5;
31
+ const isRevealing = animate && !isLoaded;
32
+ const getY = useCallback((d) => {
33
+ const value = d[dataKey];
34
+ return typeof value === "number" ? (yScale(value) ?? 0) : null;
35
+ }, [dataKey, yScale]);
36
+ const points = useMemo(() => data.flatMap((d, index) => {
37
+ const cy = getY(d);
38
+ if (cy === null) {
39
+ return [];
40
+ }
41
+ const cx = xScale(xAccessor(d)) ?? 0;
42
+ const leadingEdge = Math.max(0, cx - visualExtent);
43
+ const revealDelay = innerWidth > 0 && isRevealing ? (leadingEdge / innerWidth) * revealDurationSec : 0;
44
+ return [{ index, cx, cy, revealDelay }];
45
+ }), [data, getY, xScale, xAccessor, innerWidth, isRevealing, revealDurationSec, visualExtent]);
46
+ // Memo so the inner <SeriesMarkersActiveHighlight> sees a stable prop and
47
+ // can be cheaply re-rendered on hover without re-creating the spread.
48
+ const markerStyle = useMemo(() => ({
49
+ fill: resolvedFill,
50
+ stroke: resolvedStroke,
51
+ strokeWidth,
52
+ ringGap,
53
+ outlineWidth,
54
+ outlineColor,
55
+ radius,
56
+ }), [resolvedFill, resolvedStroke, strokeWidth, ringGap, outlineWidth, outlineColor, radius]);
57
+ if (isRevealing) {
58
+ return (_jsx("g", { children: points.map((point) => (_jsx(SeriesPointMarker, { cx: point.cx, cy: point.cy, dataKey: dataKey, enterBlur: enterBlur, enterDuration: enterDuration, index: point.index, revealDelay: point.revealDelay, revealEpoch: revealEpoch ?? 0, ...markerStyle }, `${dataKey}-${point.index}`))) }));
59
+ }
60
+ // Stable base layer — its children come from the parent and stay
61
+ // referentially identical when the dim wrapper re-renders for hover.
62
+ const baseMarkers = points.map((point) => (_jsx(StaticSeriesPointMarker, { cx: point.cx, cy: point.cy, ...markerStyle }, `${dataKey}-${point.index}`)));
63
+ const activeScale = showActiveHighlight ? 1.35 : 1;
64
+ return (_jsxs("g", { children: [_jsx(SeriesMarkersDimWrapper, { enabled: fadeOnHover, inactiveBlur: inactiveBlur, inactiveOpacity: inactiveOpacity, seriesIndex: seriesIndex, children: baseMarkers }), _jsx(SeriesMarkersActiveHighlight, { activeScale: activeScale, enabled: fadeOnHover, markerStyle: markerStyle, points: points })] }));
65
+ }
66
+ SeriesMarkers.displayName = "SeriesMarkers";
67
+ /**
68
+ * Wraps the stable point grid with hover-driven opacity + blur. Subscribes to
69
+ * hover internally so the grid (passed as `children`) keeps a stable reference
70
+ * and React skips reconciling it when this wrapper re-renders.
71
+ */
72
+ function SeriesMarkersDimWrapper({ enabled, inactiveOpacity, inactiveBlur, seriesIndex, children, }) {
73
+ const { tooltipData } = useChartHover();
74
+ const { hoveredIndex: legendHoveredIndex } = useChartLegendHover();
75
+ const isLegendDimmed = legendHoveredIndex !== null && legendHoveredIndex !== seriesIndex;
76
+ const dimBase = enabled && (tooltipData !== null || isLegendDimmed);
77
+ return (_jsx("g", { opacity: dimBase ? inactiveOpacity : 1, style: {
78
+ transition: "opacity 0.15s ease-in-out, filter 0.15s ease-in-out",
79
+ filter: dimBase && inactiveBlur > 0 ? `blur(${inactiveBlur}px)` : "none",
80
+ }, children: children }));
81
+ }
82
+ /**
83
+ * Renders the scaled "active" marker on top of the base grid. Subscribes to
84
+ * hover internally; the parent doesn't re-render on cursor motion.
85
+ */
86
+ function SeriesMarkersActiveHighlight({ enabled, points, markerStyle, activeScale, }) {
87
+ const { tooltipData } = useChartHover();
88
+ if (!enabled || tooltipData === null) {
89
+ return null;
90
+ }
91
+ const activePoint = points.find((point) => point.index === tooltipData.index);
92
+ if (!activePoint) {
93
+ return null;
94
+ }
95
+ return (_jsx(StaticSeriesPointMarker, { cx: activePoint.cx, cy: activePoint.cy, scale: activeScale, ...markerStyle }));
96
+ }
97
+ export default SeriesMarkers;
98
+ //# sourceMappingURL=series-markers.js.map
@@ -0,0 +1,19 @@
1
+ type CurveFactory = any;
2
+ export interface SeriesPathPoint {
3
+ x: number;
4
+ y: number;
5
+ key: string;
6
+ }
7
+ export declare function computeSeriesPathPoints(data: Record<string, unknown>[], xAccessor: (datum: Record<string, unknown>) => Date, xScale: (value: Date) => number | undefined, yScale: (value: number) => number | undefined, dataKey: string): SeriesPathPoint[];
8
+ export declare function interpolateSeriesPathPoints(from: SeriesPathPoint[], to: SeriesPathPoint[], progress: number): SeriesPathPoint[];
9
+ export declare function seriesPathFromPoints(points: SeriesPathPoint[], curve: CurveFactory): string;
10
+ export declare function seriesPathTransitionSignature({ renderData, xAccessor, dataKey, innerWidth, xDomainMin, xDomainMax, }: {
11
+ renderData: Record<string, unknown>[];
12
+ xAccessor: (datum: Record<string, unknown>) => Date;
13
+ dataKey: string;
14
+ innerWidth: number;
15
+ xDomainMin: number;
16
+ xDomainMax: number;
17
+ }): string;
18
+ export {};
19
+ //# sourceMappingURL=series-path-utils.d.ts.map
@@ -0,0 +1,60 @@
1
+ import { line as d3Line } from "d3-shape";
2
+ export function computeSeriesPathPoints(data, xAccessor, xScale, yScale, dataKey) {
3
+ return data.map((datum, index) => {
4
+ const xValue = xAccessor(datum);
5
+ const yValue = datum[dataKey];
6
+ return {
7
+ x: xScale(xValue) ?? 0,
8
+ y: typeof yValue === "number" ? (yScale(yValue) ?? 0) : 0,
9
+ key: String(xValue.getTime?.() ?? index),
10
+ };
11
+ });
12
+ }
13
+ export function interpolateSeriesPathPoints(from, to, progress) {
14
+ if (progress >= 1) {
15
+ return to;
16
+ }
17
+ if (progress <= 0) {
18
+ return from.length > 0 ? from : to;
19
+ }
20
+ const fromByKey = new Map(from.map((point) => [point.key, point]));
21
+ return to.map((target, index) => {
22
+ const source = fromByKey.get(target.key);
23
+ if (source) {
24
+ return {
25
+ key: target.key,
26
+ x: source.x + (target.x - source.x) * progress,
27
+ y: source.y + (target.y - source.y) * progress,
28
+ };
29
+ }
30
+ const previousTarget = index > 0 ? to[index - 1] : undefined;
31
+ const previousSource = previousTarget ? fromByKey.get(previousTarget.key) : undefined;
32
+ const nextTarget = index < to.length - 1 ? to[index + 1] : undefined;
33
+ const nextSource = nextTarget ? fromByKey.get(nextTarget.key) : undefined;
34
+ const anchor = previousSource ?? nextSource ?? from[0] ?? target;
35
+ return {
36
+ key: target.key,
37
+ x: anchor.x + (target.x - anchor.x) * progress,
38
+ y: anchor.y + (target.y - anchor.y) * progress,
39
+ };
40
+ });
41
+ }
42
+ export function seriesPathFromPoints(points, curve) {
43
+ if (points.length === 0) {
44
+ return "";
45
+ }
46
+ const generator = d3Line()
47
+ .x((point) => point.x)
48
+ .y((point) => point.y)
49
+ .curve(curve);
50
+ return generator(points) ?? "";
51
+ }
52
+ export function seriesPathTransitionSignature({ renderData, xAccessor, dataKey, innerWidth, xDomainMin, xDomainMax, }) {
53
+ const values = renderData.map((datum) => {
54
+ const xValue = xAccessor(datum);
55
+ const yValue = datum[dataKey];
56
+ return `${xValue.getTime()}:${typeof yValue === "number" ? yValue : ""}`;
57
+ });
58
+ return `${innerWidth}|${xDomainMin}|${xDomainMax}|${values.join(",")}`;
59
+ }
60
+ //# sourceMappingURL=series-path-utils.js.map
@@ -0,0 +1,48 @@
1
+ export interface SeriesPointMarkerStyle {
2
+ /** Fill color for the inner circle */
3
+ fill?: string;
4
+ /** Outer ring stroke color. Default: same as `fill` */
5
+ stroke?: string;
6
+ /** Outer ring stroke width in px. Default: 2. Set to 0 to disable. */
7
+ strokeWidth?: number;
8
+ /** Gap between the inner fill and outer ring in px. Default: 2 */
9
+ ringGap?: number;
10
+ /** Optional outer outline beyond the ring. Default: 0 */
11
+ outlineWidth?: number;
12
+ /** Outer outline color. Default: same as `stroke` */
13
+ outlineColor?: string;
14
+ /** Point radius in px. Default: 5 */
15
+ radius?: number;
16
+ /** Dim non-active points while hovering. Default: true */
17
+ fadeOnHover?: boolean;
18
+ /** Opacity for non-hovered points when `fadeOnHover` is true. Default: 0.5 */
19
+ inactiveOpacity?: number;
20
+ /**
21
+ * Blur in px for non-hovered points when `fadeOnHover` is true.
22
+ * Applied once on the dimmed layer (not per dot) for performance. Default: 2
23
+ */
24
+ inactiveBlur?: number;
25
+ /** Initial blur in px during enter animation. Default: 2 */
26
+ enterBlur?: number;
27
+ /** Enlarge the active point while hovering. Default: true */
28
+ showActiveHighlight?: boolean;
29
+ }
30
+ export interface StaticSeriesPointMarkerProps extends SeriesPointMarkerStyle {
31
+ cx: number;
32
+ cy: number;
33
+ scale?: number;
34
+ }
35
+ export declare const StaticSeriesPointMarker: import("react").MemoExoticComponent<({ cx, cy, scale, fill, stroke, strokeWidth, ringGap, outlineWidth, outlineColor, radius, }: StaticSeriesPointMarkerProps) => import("react").JSX.Element>;
36
+ export interface SeriesPointMarkerProps extends SeriesPointMarkerStyle {
37
+ dataKey: string;
38
+ index: number;
39
+ cx: number;
40
+ cy: number;
41
+ revealDelay: number;
42
+ revealEpoch: number;
43
+ enterDuration: number;
44
+ }
45
+ /** Motion enter marker — used only while the chart reveal is running. */
46
+ export declare function SeriesPointMarker({ dataKey, index, cx, cy, enterBlur, revealDelay, revealEpoch, enterDuration, fill, stroke, strokeWidth, ringGap, outlineWidth, outlineColor, radius, }: SeriesPointMarkerProps): import("react").JSX.Element;
47
+ export declare function getSeriesMarkerVisualExtent(style: Pick<SeriesPointMarkerStyle, "radius" | "strokeWidth" | "ringGap" | "outlineWidth" | "showActiveHighlight">): number;
48
+ //# sourceMappingURL=series-point-marker.d.ts.map