@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,47 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect, useState } from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { useChartStable } from "./chart-context.js";
6
+ /** Matches shadcn `ResizableHandle` withHandle pill (`h-6 w-1 rounded-lg`). */
7
+ const HANDLE_HEIGHT_PX = 24;
8
+ const HANDLE_WIDTH_PX = 4;
9
+ /**
10
+ * Invisible hit target for visx `BrushHandle` drag interaction.
11
+ * Visible pills render in `ChartBrushHandleOverlay` above the blur layer.
12
+ */
13
+ function brushHandleCursor(className) {
14
+ return className.includes("left") || className.includes("right") ? "ew-resize" : "ns-resize";
15
+ }
16
+ export function renderChartBrushHandle({ x, y, width, height, className }) {
17
+ return (_jsx("rect", { className: className, fill: "transparent", height: height, style: { cursor: brushHandleCursor(className) }, width: width, x: x, y: y }));
18
+ }
19
+ /** Renders brush resize pills above the outside blur portal (`z-[2]`). */
20
+ export function ChartBrushHandleOverlayContent({ containerRef, margin, innerWidth, innerHeight, selectionX0, selectionX1, }) {
21
+ const [mounted, setMounted] = useState(false);
22
+ useEffect(() => {
23
+ setMounted(true);
24
+ }, []);
25
+ const container = containerRef.current;
26
+ if (!(mounted && container)) {
27
+ return null;
28
+ }
29
+ const x0 = Math.max(0, Math.min(selectionX0, selectionX1, innerWidth));
30
+ const x1 = Math.max(x0, Math.min(Math.max(selectionX0, selectionX1), innerWidth));
31
+ const edges = x0 === x1 ? [x0] : [x0, x1];
32
+ const plotLeft = margin.left;
33
+ const plotTop = margin.top;
34
+ const handleTop = plotTop + (innerHeight - HANDLE_HEIGHT_PX) / 2;
35
+ return createPortal(_jsx("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 z-[2]", children: edges.map((edgeX) => (_jsx("div", { className: "absolute shrink-0 rounded-lg", style: {
36
+ top: handleTop,
37
+ left: plotLeft + edgeX - HANDLE_WIDTH_PX / 2,
38
+ width: HANDLE_WIDTH_PX,
39
+ height: HANDLE_HEIGHT_PX,
40
+ backgroundColor: "var(--chart-brush-border)",
41
+ } }, edgeX))) }), container);
42
+ }
43
+ export function ChartBrushHandleOverlay(props) {
44
+ const { containerRef, margin } = useChartStable();
45
+ return _jsx(ChartBrushHandleOverlayContent, { ...props, containerRef: containerRef, margin: margin });
46
+ }
47
+ //# sourceMappingURL=chart-brush-handle.js.map
@@ -0,0 +1,27 @@
1
+ import { type ReactNode } from "react";
2
+ import type { ChartBrushSelection } from "./chart-brush.js";
3
+ export interface ChartBrushLayoutState {
4
+ xDomain: [Date, Date] | undefined;
5
+ xDomainSlotCount: number | undefined;
6
+ brushSelection: ChartBrushSelection | null;
7
+ onBrushSelectionChange: (selection: ChartBrushSelection | null) => void;
8
+ }
9
+ export interface ChartBrushLayoutProps {
10
+ /** Full dataset backing the brush strip and main chart. */
11
+ data: Record<string, unknown>[];
12
+ xDataKey?: string;
13
+ /** Extends the brush track max beyond the last data row (e.g. projection horizon). */
14
+ xExtentMax?: Date;
15
+ /** When false, children render without brush zoom state. */
16
+ enabled: boolean;
17
+ /** Fixed height of the brush strip in pixels. */
18
+ height: number;
19
+ /** When true, the main chart area hugs content instead of growing to fill space. */
20
+ fitMainContent?: boolean;
21
+ className?: string;
22
+ children: (layout: ChartBrushLayoutState) => ReactNode;
23
+ /** Mini chart + brush handles rendered below the main chart when `enabled`. */
24
+ brushStrip?: (layout: ChartBrushLayoutState) => ReactNode;
25
+ }
26
+ export declare const ChartBrushLayout: import("react").MemoExoticComponent<({ data, xDataKey, xExtentMax, enabled, height, fitMainContent, className, children, brushStrip, }: ChartBrushLayoutProps) => import("react").JSX.Element>;
27
+ //# sourceMappingURL=chart-brush-layout.d.ts.map
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo, useCallback, useEffect, useMemo, useState } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ import { resolveBrushTrackXExtent } from "./filter-data-by-x-domain.js";
6
+ function createXAccessor(xDataKey) {
7
+ return (d) => {
8
+ const value = d[xDataKey];
9
+ return value instanceof Date ? value : new Date(value);
10
+ };
11
+ }
12
+ export const ChartBrushLayout = memo(function ChartBrushLayout({ data, xDataKey = "date", xExtentMax, enabled, height, fitMainContent = false, className, children, brushStrip, }) {
13
+ const xAccessor = useMemo(() => createXAccessor(xDataKey), [xDataKey]);
14
+ const fullExtent = useMemo(() => resolveBrushTrackXExtent(data, xAccessor, xExtentMax), [data, xAccessor, xExtentMax]);
15
+ const [brushSelection, setBrushSelection] = useState(null);
16
+ useEffect(() => {
17
+ if (!fullExtent) {
18
+ setBrushSelection(null);
19
+ return;
20
+ }
21
+ setBrushSelection({ start: fullExtent[0], end: fullExtent[1] });
22
+ }, [fullExtent]);
23
+ const handleBrushSelectionChange = useCallback((selection) => {
24
+ if (!selection) {
25
+ if (fullExtent) {
26
+ setBrushSelection({ start: fullExtent[0], end: fullExtent[1] });
27
+ }
28
+ return;
29
+ }
30
+ setBrushSelection(selection);
31
+ }, [fullExtent]);
32
+ const layoutState = useMemo(() => ({
33
+ xDomain: enabled && brushSelection
34
+ ? [brushSelection.start, brushSelection.end]
35
+ : undefined,
36
+ xDomainSlotCount: enabled ? data.length : undefined,
37
+ brushSelection,
38
+ onBrushSelectionChange: handleBrushSelectionChange,
39
+ }), [brushSelection, data.length, enabled, handleBrushSelectionChange]);
40
+ return (_jsxs("div", { className: cn("flex size-full min-h-0 min-w-0 flex-col", fitMainContent ? "justify-start gap-1" : "gap-3", className), children: [_jsx("div", { className: cn("min-h-0 min-w-0", fitMainContent ? "shrink-0" : "flex-1"), children: children(layoutState) }), enabled && brushStrip ? (_jsx("div", { className: "min-h-0 shrink-0", style: { height }, children: brushStrip(layoutState) })) : null] }));
41
+ });
42
+ //# sourceMappingURL=chart-brush-layout.js.map
@@ -0,0 +1,19 @@
1
+ import type { ChartBrushOverlayHost } from "./chart-brush-track-overlay.js";
2
+ import { type PatternPresetId, type PatternPresetOptions } from "./pattern-preset.js";
3
+ export type ChartBrushPatternPreset = PatternPresetId;
4
+ export interface ChartBrushSelectionPattern extends PatternPresetOptions {
5
+ preset: ChartBrushPatternPreset;
6
+ color: string;
7
+ opacity?: number;
8
+ }
9
+ export interface ChartBrushSelectionOverlayProps {
10
+ innerWidth: number;
11
+ innerHeight: number;
12
+ selectionX0: number;
13
+ selectionX1: number;
14
+ pattern?: ChartBrushSelectionPattern;
15
+ }
16
+ /** Pattern fill between brush handles (`z-[1]`, above blur panes). */
17
+ export declare function ChartBrushSelectionOverlayContent({ containerRef, margin, innerWidth, innerHeight, selectionX0, selectionX1, pattern, }: ChartBrushSelectionOverlayProps & ChartBrushOverlayHost): import("react").ReactPortal | null;
18
+ export declare function ChartBrushSelectionOverlay(props: ChartBrushSelectionOverlayProps): import("react").JSX.Element;
19
+ //# sourceMappingURL=chart-brush-selection-overlay.d.ts.map
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useId, useState } from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { useChartStable } from "./chart-context.js";
6
+ import { renderPatternPreset, } from "./pattern-preset.js";
7
+ /** Pattern fill between brush handles (`z-[1]`, above blur panes). */
8
+ export function ChartBrushSelectionOverlayContent({ containerRef, margin, innerWidth, innerHeight, selectionX0, selectionX1, pattern, }) {
9
+ const [mounted, setMounted] = useState(false);
10
+ const patternId = useId().replace(/:/g, "");
11
+ useEffect(() => {
12
+ setMounted(true);
13
+ }, []);
14
+ const container = containerRef.current;
15
+ if (!(mounted && container && pattern && pattern.preset !== "none")) {
16
+ return null;
17
+ }
18
+ const x0 = Math.max(0, Math.min(selectionX0, selectionX1, innerWidth));
19
+ const x1 = Math.max(x0, Math.min(Math.max(selectionX0, selectionX1), innerWidth));
20
+ const selectionWidth = x1 - x0;
21
+ if (selectionWidth <= 0) {
22
+ return null;
23
+ }
24
+ const plotLeft = margin.left;
25
+ const plotTop = margin.top;
26
+ const patternNode = renderPatternPreset(pattern.preset, patternId, {
27
+ color: pattern.color,
28
+ scale: pattern.scale,
29
+ strokeWidth: pattern.strokeWidth,
30
+ radius: pattern.radius,
31
+ complement: pattern.complement,
32
+ fill: pattern.fill,
33
+ tileBackground: pattern.tileBackground,
34
+ });
35
+ if (!patternNode) {
36
+ return null;
37
+ }
38
+ return createPortal(_jsxs("svg", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 z-[1]", height: "100%", width: "100%", children: [_jsx("defs", { children: patternNode }), _jsx("rect", { fill: `url(#${patternId})`, fillOpacity: pattern.opacity ?? 1, height: innerHeight, width: selectionWidth, x: plotLeft + x0, y: plotTop })] }), container);
39
+ }
40
+ export function ChartBrushSelectionOverlay(props) {
41
+ const { containerRef, margin } = useChartStable();
42
+ return (_jsx(ChartBrushSelectionOverlayContent, { ...props, containerRef: containerRef, margin: margin }));
43
+ }
44
+ //# sourceMappingURL=chart-brush-selection-overlay.js.map
@@ -0,0 +1,23 @@
1
+ import type { RefObject } from "react";
2
+ import type { Margin } from "./chart-context.js";
3
+ export interface ChartBrushTrackOverlayStyle {
4
+ /** Backdrop blur in px (0–5). Default: 1.5 */
5
+ blurPx?: number;
6
+ /** Fade blur at the outer left/right track ends. Default: true */
7
+ fadeOuterEdges?: boolean;
8
+ }
9
+ export interface ChartBrushTrackOverlayProps extends ChartBrushTrackOverlayStyle {
10
+ innerWidth: number;
11
+ innerHeight: number;
12
+ /** Pixel x of the selection start within the plot area. */
13
+ selectionX0: number;
14
+ /** Pixel x of the selection end within the plot area. */
15
+ selectionX1: number;
16
+ }
17
+ export interface ChartBrushOverlayHost {
18
+ containerRef: RefObject<HTMLDivElement | null>;
19
+ margin: Margin;
20
+ }
21
+ export declare function ChartBrushTrackOverlayContent({ containerRef, margin, innerWidth, innerHeight, selectionX0, selectionX1, blurPx, fadeOuterEdges, }: ChartBrushTrackOverlayProps & ChartBrushOverlayHost): import("react").ReactPortal | null;
22
+ export declare function ChartBrushTrackOverlay(props: ChartBrushTrackOverlayProps): import("react").JSX.Element;
23
+ //# sourceMappingURL=chart-brush-track-overlay.d.ts.map
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { useChartStable } from "./chart-context.js";
6
+ /** Fade dimming panes at the outer track ends — matches series edge fade (15%). */
7
+ const BRUSH_TRACK_OUTER_FADE = 0.15;
8
+ function outsidePaneStyle(edge, style) {
9
+ const fadeStop = `${BRUSH_TRACK_OUTER_FADE * 100}%`;
10
+ let mask;
11
+ if (style.fadeOuterEdges) {
12
+ mask =
13
+ edge === "left"
14
+ ? `linear-gradient(to right, transparent 0%, black ${fadeStop}, black 100%)`
15
+ : `linear-gradient(to left, transparent 0%, black ${fadeStop}, black 100%)`;
16
+ }
17
+ return {
18
+ pointerEvents: "none",
19
+ backdropFilter: style.blurPx > 0 ? `blur(${style.blurPx}px)` : undefined,
20
+ WebkitBackdropFilter: style.blurPx > 0 ? `blur(${style.blurPx}px)` : undefined,
21
+ maskImage: mask,
22
+ WebkitMaskImage: mask,
23
+ };
24
+ }
25
+ export function ChartBrushTrackOverlayContent({ containerRef, margin, innerWidth, innerHeight, selectionX0, selectionX1, blurPx = 1.5, fadeOuterEdges = true, }) {
26
+ const [mounted, setMounted] = useState(false);
27
+ const overlayStyle = {
28
+ blurPx: Math.min(5, Math.max(0, blurPx)),
29
+ fadeOuterEdges,
30
+ };
31
+ useEffect(() => {
32
+ setMounted(true);
33
+ }, []);
34
+ const container = containerRef.current;
35
+ if (!(mounted && container)) {
36
+ return null;
37
+ }
38
+ const x0 = Math.max(0, Math.min(selectionX0, selectionX1, innerWidth));
39
+ const x1 = Math.max(x0, Math.min(Math.max(selectionX0, selectionX1), innerWidth));
40
+ const leftWidth = Math.max(0, x0);
41
+ const rightWidth = Math.max(0, innerWidth - x1);
42
+ if (leftWidth <= 0 && rightWidth <= 0) {
43
+ return null;
44
+ }
45
+ const plotLeft = margin.left;
46
+ const plotTop = margin.top;
47
+ return createPortal(_jsxs("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 z-[1]", children: [leftWidth > 0 ? (_jsx("div", { className: "absolute", style: {
48
+ ...outsidePaneStyle("left", overlayStyle),
49
+ top: plotTop,
50
+ left: plotLeft,
51
+ width: leftWidth,
52
+ height: innerHeight,
53
+ } })) : null, rightWidth > 0 ? (_jsx("div", { className: "absolute", style: {
54
+ ...outsidePaneStyle("right", overlayStyle),
55
+ top: plotTop,
56
+ left: plotLeft + x1,
57
+ width: rightWidth,
58
+ height: innerHeight,
59
+ } })) : null] }), container);
60
+ }
61
+ export function ChartBrushTrackOverlay(props) {
62
+ const { containerRef, margin } = useChartStable();
63
+ return _jsx(ChartBrushTrackOverlayContent, { ...props, containerRef: containerRef, margin: margin });
64
+ }
65
+ //# sourceMappingURL=chart-brush-track-overlay.js.map
@@ -0,0 +1,32 @@
1
+ import type React from "react";
2
+ import { type ChartBrushSelectionPattern } from "./chart-brush-selection-overlay.js";
3
+ export interface ChartBrushSelection {
4
+ start: Date;
5
+ end: Date;
6
+ }
7
+ export interface ChartBrushProps {
8
+ /** Callback when brush selection ends. Domain is the selected time range. */
9
+ onSelectionChange?: (domain: ChartBrushSelection | null) => void;
10
+ /** Brush direction. Default: "horizontal" for time range selection. */
11
+ brushDirection?: "horizontal" | "vertical" | "both";
12
+ /** Fill style for the selected region. Default: chart segment style. */
13
+ selectedBoxStyle?: React.SVGProps<SVGRectElement>;
14
+ /** Initial selection so the brush overlay is visible on load (e.g. first 50% of range). */
15
+ initialSelection?: ChartBrushSelection | null;
16
+ /** Current selection (e.g. from parent state). When set, a visible selection rect is drawn. */
17
+ selection?: ChartBrushSelection | null;
18
+ /** Use window move events for brush (can fix coordinate offset when SVG is in transformed container). Default: true for brush-in-strip. */
19
+ useWindowMoveEvents?: boolean;
20
+ /** Backdrop blur on dimmed track (0–5 px). Default: 1.5 */
21
+ blurPx?: number;
22
+ /** Fade dimmed regions at the outer track edges. Default: true */
23
+ fadeOuterEdges?: boolean;
24
+ /** Optional pattern overlay inside the brush selection window. */
25
+ selectionPattern?: ChartBrushSelectionPattern;
26
+ }
27
+ export declare function ChartBrush({ onSelectionChange, brushDirection, selectedBoxStyle, initialSelection, selection: _selection, useWindowMoveEvents, blurPx, fadeOuterEdges, selectionPattern, }: ChartBrushProps): React.JSX.Element | null;
28
+ export declare namespace ChartBrush {
29
+ var displayName: string;
30
+ }
31
+ export default ChartBrush;
32
+ //# sourceMappingURL=chart-brush.d.ts.map
@@ -0,0 +1,116 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Brush } from "@visx/brush";
4
+ import { memo, useCallback, useEffect, useMemo, useState } from "react";
5
+ import { ChartBrushHandleOverlay, renderChartBrushHandle } from "./chart-brush-handle.js";
6
+ import { ChartBrushSelectionOverlay, } from "./chart-brush-selection-overlay.js";
7
+ import { ChartBrushTrackOverlay, } from "./chart-brush-track-overlay.js";
8
+ import { chartCssVars, useChartStable } from "./chart-context.js";
9
+ const BrushComponent = (() => Brush)();
10
+ function toDate(value) {
11
+ if (value instanceof Date) {
12
+ return value;
13
+ }
14
+ if (typeof value === "number") {
15
+ return new Date(value);
16
+ }
17
+ return new Date(Number(value));
18
+ }
19
+ function boundsToPixelExtent(bounds, xScale, innerWidth) {
20
+ if (!bounds || typeof bounds.x0 === "undefined" || typeof bounds.x1 === "undefined") {
21
+ return null;
22
+ }
23
+ const start = toDate(bounds.x0);
24
+ const end = toDate(bounds.x1);
25
+ const xScaleFn = xScale;
26
+ const x0 = Math.max(0, xScaleFn(start < end ? start : end) ?? 0);
27
+ const x1 = Math.min(innerWidth, xScaleFn(end > start ? end : start) ?? innerWidth);
28
+ if (x1 <= x0) {
29
+ return null;
30
+ }
31
+ return { x0, x1 };
32
+ }
33
+ const ChartBrushInner = memo(function ChartBrushInner({ brushDirection = "horizontal", selectedBoxStyle, initialSelection, useWindowMoveEvents = true, xScale, yScale, innerWidth, innerHeight, margin, onBrushPreview, onBrushCommit, blurPx, fadeOuterEdges, selectionPattern, }) {
34
+ const initialBrushPosition = useMemo(() => {
35
+ if (!initialSelection || innerWidth <= 0 || innerHeight <= 0) {
36
+ return undefined;
37
+ }
38
+ const xScaleFn = xScale;
39
+ const x0 = Math.max(0, xScaleFn(initialSelection.start) ?? 0);
40
+ const x1 = Math.min(innerWidth, xScaleFn(initialSelection.end) ?? innerWidth);
41
+ if (x1 <= x0) {
42
+ return undefined;
43
+ }
44
+ return {
45
+ start: { x: x0, y: 0 },
46
+ end: { x: x1, y: innerHeight },
47
+ };
48
+ }, [initialSelection, xScale, innerWidth, innerHeight]);
49
+ const [pixelExtent, setPixelExtent] = useState(() => ({
50
+ x0: initialBrushPosition?.start.x ?? 0,
51
+ x1: initialBrushPosition?.end.x ?? innerWidth,
52
+ }));
53
+ useEffect(() => {
54
+ setPixelExtent({
55
+ x0: initialBrushPosition?.start.x ?? 0,
56
+ x1: initialBrushPosition?.end.x ?? innerWidth,
57
+ });
58
+ }, [initialBrushPosition, innerWidth]);
59
+ const updatePixelExtent = useCallback((bounds) => {
60
+ const pixels = boundsToPixelExtent(bounds, xScale, innerWidth);
61
+ if (pixels) {
62
+ setPixelExtent(pixels);
63
+ }
64
+ }, [innerWidth, xScale]);
65
+ const handleBrushPreview = useCallback((bounds) => {
66
+ updatePixelExtent(bounds);
67
+ onBrushPreview?.(bounds);
68
+ }, [onBrushPreview, updatePixelExtent]);
69
+ const handleBrushCommit = useCallback((bounds) => {
70
+ updatePixelExtent(bounds);
71
+ onBrushCommit(bounds);
72
+ }, [onBrushCommit, updatePixelExtent]);
73
+ const defaultStyle = {
74
+ fill: "transparent",
75
+ fillOpacity: 0,
76
+ stroke: chartCssVars.brushBorder,
77
+ strokeWidth: 1,
78
+ };
79
+ return (_jsxs("g", { className: "chart-brush", children: [_jsx(ChartBrushTrackOverlay, { blurPx: blurPx, fadeOuterEdges: fadeOuterEdges, innerHeight: innerHeight, innerWidth: innerWidth, selectionX0: pixelExtent.x0, selectionX1: pixelExtent.x1 }), _jsx(ChartBrushSelectionOverlay, { innerHeight: innerHeight, innerWidth: innerWidth, pattern: selectionPattern, selectionX0: pixelExtent.x0, selectionX1: pixelExtent.x1 }), _jsx(ChartBrushHandleOverlay, { innerHeight: innerHeight, innerWidth: innerWidth, selectionX0: pixelExtent.x0, selectionX1: pixelExtent.x1 }), _jsx(BrushComponent, { brushDirection: brushDirection, handleSize: 8, height: innerHeight, initialBrushPosition: initialBrushPosition, margin: useWindowMoveEvents ? margin : { top: 0, left: 0, right: 0, bottom: 0 }, onBrushEnd: handleBrushCommit, onChange: handleBrushPreview, renderBrushHandle: renderChartBrushHandle, selectedBoxStyle: selectedBoxStyle ?? defaultStyle, useWindowMoveEvents: useWindowMoveEvents, width: innerWidth, xScale: xScale, yScale: yScale }, `brush-${innerWidth}-${innerHeight}`)] }));
80
+ });
81
+ export function ChartBrush({ onSelectionChange, brushDirection = "horizontal", selectedBoxStyle, initialSelection, selection: _selection, useWindowMoveEvents = true, blurPx, fadeOuterEdges, selectionPattern, }) {
82
+ const { xScale, yScale, innerWidth, innerHeight, margin, isLoaded } = useChartStable();
83
+ const boundsToSelection = useCallback((bounds) => {
84
+ if (!bounds || typeof bounds.x0 === "undefined" || typeof bounds.x1 === "undefined") {
85
+ return null;
86
+ }
87
+ const start = toDate(bounds.x0);
88
+ const end = toDate(bounds.x1);
89
+ if (start.getTime() === end.getTime()) {
90
+ return null;
91
+ }
92
+ return {
93
+ start: start < end ? start : end,
94
+ end: end > start ? end : start,
95
+ };
96
+ }, []);
97
+ const notifySelectionChange = useCallback((bounds) => {
98
+ if (!onSelectionChange) {
99
+ return;
100
+ }
101
+ onSelectionChange(boundsToSelection(bounds));
102
+ }, [onSelectionChange, boundsToSelection]);
103
+ const handleBrushPreview = useCallback((bounds) => {
104
+ notifySelectionChange(bounds);
105
+ }, [notifySelectionChange]);
106
+ const handleBrushCommit = useCallback((bounds) => {
107
+ notifySelectionChange(bounds);
108
+ }, [notifySelectionChange]);
109
+ if (!isLoaded || innerWidth <= 0 || innerHeight <= 0) {
110
+ return null;
111
+ }
112
+ return (_jsx(ChartBrushInner, { blurPx: blurPx, brushDirection: brushDirection, fadeOuterEdges: fadeOuterEdges, initialSelection: initialSelection, innerHeight: innerHeight, innerWidth: innerWidth, margin: margin, onBrushCommit: handleBrushCommit, onBrushPreview: handleBrushPreview, selectedBoxStyle: selectedBoxStyle, selectionPattern: selectionPattern, useWindowMoveEvents: useWindowMoveEvents, xScale: xScale, yScale: yScale }));
113
+ }
114
+ ChartBrush.displayName = "ChartBrush";
115
+ export default ChartBrush;
116
+ //# sourceMappingURL=chart-brush.js.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Fluid typography for pie / ring / gauge center labels.
3
+ *
4
+ * Uses CSS container query units (`cqw`) so values scale with the center
5
+ * hole — not the viewport — which keeps stat text readable on small charts.
6
+ */
7
+ export declare const chartCenterContainerClassName = "@container/chart-center size-full min-w-0";
8
+ /** Primary stat — ~22% of center width, clamped between text-sm and text-3xl. */
9
+ export declare const chartCenterValueClassName = "font-bold tabular-nums leading-none text-[clamp(0.75rem,22cqw,1.875rem)]";
10
+ /** Supporting label — ~9% of center width, clamped between 10px and text-xs. */
11
+ export declare const chartCenterLabelClassName = "max-w-full truncate leading-tight text-[clamp(0.625rem,9cqw,0.75rem)]";
12
+ //# sourceMappingURL=chart-center-typography.d.ts.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Fluid typography for pie / ring / gauge center labels.
3
+ *
4
+ * Uses CSS container query units (`cqw`) so values scale with the center
5
+ * hole — not the viewport — which keeps stat text readable on small charts.
6
+ */
7
+ export const chartCenterContainerClassName = "@container/chart-center size-full min-w-0";
8
+ /** Primary stat — ~22% of center width, clamped between text-sm and text-3xl. */
9
+ export const chartCenterValueClassName = "font-bold tabular-nums leading-none text-[clamp(0.75rem,22cqw,1.875rem)]";
10
+ /** Supporting label — ~9% of center width, clamped between 10px and text-xs. */
11
+ export const chartCenterLabelClassName = "max-w-full truncate leading-tight text-[clamp(0.625rem,9cqw,0.75rem)]";
12
+ //# sourceMappingURL=chart-center-typography.js.map
@@ -0,0 +1,17 @@
1
+ import { type ReactElement, type ReactNode } from "react";
2
+ /** Marker on wrapper components whose single child should inherit clip classification. */
3
+ export declare const CHART_CLIP_PASSTHROUGH: "__chartClipPassthrough";
4
+ export declare function isChartClipPassthrough(type: unknown): boolean;
5
+ /** Unwrap visibility wrappers so `Grid` / axes stay outside the series clip. */
6
+ export declare function resolveChartChildElement(child: ReactElement): ReactElement;
7
+ /** Walk chart children, flattening React fragments (studio often groups layers in `<>...</>`). */
8
+ export declare function forEachChartChild(children: ReactNode, callback: (child: ReactElement, index: number) => void): void;
9
+ /** Markers render after the interaction overlay so they stay clickable. */
10
+ export declare function isPostOverlayComponent(child: ReactElement): boolean;
11
+ /** Renders above grid/axes but below series; excluded from grow-clip reveal. */
12
+ export declare function isUnderlayComponent(child: ReactElement): boolean;
13
+ /** Grid and axes stay visible during series clip reveal (e.g. loading → ready). */
14
+ export declare function isClipExcludedComponent(child: ReactElement): boolean;
15
+ /** SVG layer lists from chart shells need stable keys when rendered as arrays. */
16
+ export declare function renderKeyedChartLayers(children: ReactElement[]): ReactElement<unknown, string | import("react").JSXElementConstructor<any>>[];
17
+ //# sourceMappingURL=chart-child-passthrough.d.ts.map
@@ -0,0 +1,74 @@
1
+ import { Children, cloneElement, Fragment, isValidElement, } from "react";
2
+ /** Marker on wrapper components whose single child should inherit clip classification. */
3
+ export const CHART_CLIP_PASSTHROUGH = "__chartClipPassthrough";
4
+ export function isChartClipPassthrough(type) {
5
+ return (typeof type === "function" &&
6
+ type[CHART_CLIP_PASSTHROUGH] === true);
7
+ }
8
+ /** Unwrap visibility wrappers so `Grid` / axes stay outside the series clip. */
9
+ export function resolveChartChildElement(child) {
10
+ if (isChartClipPassthrough(child.type)) {
11
+ const inner = child.props.children;
12
+ if (isValidElement(inner)) {
13
+ return resolveChartChildElement(inner);
14
+ }
15
+ }
16
+ return child;
17
+ }
18
+ /** Walk chart children, flattening React fragments (studio often groups layers in `<>...</>`). */
19
+ export function forEachChartChild(children, callback) {
20
+ let index = 0;
21
+ const visit = (nodes) => {
22
+ Children.forEach(nodes, (child) => {
23
+ if (!isValidElement(child)) {
24
+ return;
25
+ }
26
+ if (child.type === Fragment) {
27
+ visit(child.props.children);
28
+ return;
29
+ }
30
+ callback(child, index);
31
+ index += 1;
32
+ });
33
+ };
34
+ visit(children);
35
+ }
36
+ const CLIP_EXCLUDED_COMPONENT_NAMES = new Set([
37
+ "Background",
38
+ "Grid",
39
+ "XAxis",
40
+ "YAxis",
41
+ "BarXAxis",
42
+ "BarYAxis",
43
+ "LiveXAxis",
44
+ "LiveYAxis",
45
+ ]);
46
+ const UNDERLAY_COMPONENT_NAMES = new Set(["ReferenceArea", "BarColumnTrack"]);
47
+ /** Markers render after the interaction overlay so they stay clickable. */
48
+ export function isPostOverlayComponent(child) {
49
+ const childType = child.type;
50
+ if (childType.__isChartMarkers || childType.__isPostOverlay) {
51
+ return true;
52
+ }
53
+ const componentName = typeof child.type === "function" ? childType.displayName || childType.name || "" : "";
54
+ return (componentName === "ChartMarkers" ||
55
+ componentName === "MarkerGroup" ||
56
+ componentName === "ChartBrush");
57
+ }
58
+ /** Renders above grid/axes but below series; excluded from grow-clip reveal. */
59
+ export function isUnderlayComponent(child) {
60
+ const childType = child.type;
61
+ const componentName = typeof child.type === "function" ? childType.displayName || childType.name || "" : "";
62
+ return UNDERLAY_COMPONENT_NAMES.has(componentName);
63
+ }
64
+ /** Grid and axes stay visible during series clip reveal (e.g. loading → ready). */
65
+ export function isClipExcludedComponent(child) {
66
+ const childType = child.type;
67
+ const componentName = typeof child.type === "function" ? childType.displayName || childType.name || "" : "";
68
+ return CLIP_EXCLUDED_COMPONENT_NAMES.has(componentName);
69
+ }
70
+ /** SVG layer lists from chart shells need stable keys when rendered as arrays. */
71
+ export function renderKeyedChartLayers(children) {
72
+ return children.map((child, index) => cloneElement(child, { key: child.key ?? `chart-layer-${index}` }));
73
+ }
74
+ //# sourceMappingURL=chart-child-passthrough.js.map
@@ -0,0 +1,26 @@
1
+ import { type ReactNode } from "react";
2
+ export interface SpringConfig {
3
+ stiffness: number;
4
+ damping: number;
5
+ }
6
+ export interface ChartConfigValue {
7
+ /** Crosshair indicator, tooltip dot, date pill. */
8
+ tooltipSpring: SpringConfig;
9
+ /** Floating tooltip panel. */
10
+ tooltipBoxSpring: SpringConfig;
11
+ /** Line/area hover-highlight band (x + width). */
12
+ highlightSpring: SpringConfig;
13
+ }
14
+ export declare const DEFAULT_CHART_CONFIG: ChartConfigValue;
15
+ export interface ChartConfigProviderProps {
16
+ value?: Partial<ChartConfigValue>;
17
+ children: ReactNode;
18
+ }
19
+ export declare function ChartConfigProvider({ value, children }: ChartConfigProviderProps): import("react").JSX.Element;
20
+ export declare function useChartConfig(): ChartConfigValue;
21
+ /** Maps a damping slider to the floating tooltip panel follow spring. `0` = instant. */
22
+ export declare function resolveTooltipBoxMotion(damping?: number): {
23
+ animate: boolean;
24
+ springConfig: SpringConfig;
25
+ };
26
+ //# sourceMappingURL=chart-config-context.d.ts.map
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useMemo } from "react";
4
+ export const DEFAULT_CHART_CONFIG = {
5
+ tooltipSpring: { stiffness: 300, damping: 30 },
6
+ tooltipBoxSpring: { stiffness: 100, damping: 20 },
7
+ highlightSpring: { stiffness: 180, damping: 28 },
8
+ };
9
+ const ChartConfigContext = createContext(null);
10
+ export function ChartConfigProvider({ value, children }) {
11
+ const merged = useMemo(() => ({
12
+ ...DEFAULT_CHART_CONFIG,
13
+ ...value,
14
+ }), [value]);
15
+ return _jsx(ChartConfigContext.Provider, { value: merged, children: children });
16
+ }
17
+ export function useChartConfig() {
18
+ return useContext(ChartConfigContext) ?? DEFAULT_CHART_CONFIG;
19
+ }
20
+ const DEFAULT_TOOLTIP_BOX_DAMPING = DEFAULT_CHART_CONFIG.tooltipBoxSpring.damping;
21
+ /** Maps a damping slider to the floating tooltip panel follow spring. `0` = instant. */
22
+ export function resolveTooltipBoxMotion(damping) {
23
+ if (damping === 0) {
24
+ return {
25
+ animate: false,
26
+ springConfig: DEFAULT_CHART_CONFIG.tooltipBoxSpring,
27
+ };
28
+ }
29
+ const effectiveDamping = damping ?? DEFAULT_TOOLTIP_BOX_DAMPING;
30
+ let stiffness = DEFAULT_CHART_CONFIG.tooltipBoxSpring.stiffness;
31
+ if (effectiveDamping < DEFAULT_TOOLTIP_BOX_DAMPING) {
32
+ const t = (DEFAULT_TOOLTIP_BOX_DAMPING - effectiveDamping) / DEFAULT_TOOLTIP_BOX_DAMPING;
33
+ stiffness += t * 400;
34
+ }
35
+ else if (effectiveDamping > DEFAULT_TOOLTIP_BOX_DAMPING) {
36
+ const t = (effectiveDamping - DEFAULT_TOOLTIP_BOX_DAMPING) / (100 - DEFAULT_TOOLTIP_BOX_DAMPING);
37
+ stiffness -= t * 85;
38
+ }
39
+ return {
40
+ animate: true,
41
+ springConfig: {
42
+ stiffness: Math.max(12, Math.round(stiffness)),
43
+ damping: effectiveDamping,
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=chart-config-context.js.map