@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,101 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { motion } from "motion/react";
4
+ import { useId, useLayoutEffect, useMemo } from "react";
5
+ import { chartCssVars, useChartStable, useYScale } from "./chart-context.js";
6
+ import { renderPatternPreset } from "./pattern-preset.js";
7
+ import { computeReferenceAreaRect, } from "./reference-area-geometry.js";
8
+ import { useReferenceAreaRegistration } from "./reference-area-registration-context.js";
9
+ import { normalizeYAxisId } from "./y-axis-scales.js";
10
+ import { isReferenceAreaVisiblePhase } from "./y-domain-utils.js";
11
+ const DEFAULT_FILL = "color-mix(in oklch, var(--chart-foreground-muted) 12%, transparent)";
12
+ const ENTER_FADE_MS = 420;
13
+ function clampFadeLength(length) {
14
+ return Math.min(45, Math.max(0, length));
15
+ }
16
+ function bracketMarkerPath(centerX, edgeY, size, direction) {
17
+ const half = size / 2;
18
+ if (direction === "down") {
19
+ return `M ${centerX - half} ${edgeY} L ${centerX + half} ${edgeY} L ${centerX} ${edgeY + size} Z`;
20
+ }
21
+ return `M ${centerX - half} ${edgeY} L ${centerX + half} ${edgeY} L ${centerX} ${edgeY - size} Z`;
22
+ }
23
+ export function ReferenceArea({ y1, y2, x1, x2, yAxisId, fill = DEFAULT_FILL, fillOpacity = 1, pattern = "none", patternColor = chartCssVars.foregroundMuted, patternScale = 1, patternStrokeWidth, patternRadius, patternComplement, patternFill, patternDotFill, patternTileBackground, stroke = chartCssVars.foregroundMuted, strokeWidth = 1, strokeStyle = "dashed", strokeDasharray = "4,4", fadeEdges = true, fadeEdgesLength = 10, axisLabelColor, showMarkers = false, markerColor = "var(--chart-1)", markerSize = 6, ifOverflow = "hidden", className, }) {
24
+ const { innerWidth, innerHeight, xScale, chartPhase, enterTransition } = useChartStable();
25
+ const yScale = useYScale(yAxisId);
26
+ const uniqueId = useId().replace(/:/g, "");
27
+ const registration = useReferenceAreaRegistration();
28
+ useLayoutEffect(() => {
29
+ if (!registration) {
30
+ return;
31
+ }
32
+ registration.registerReferenceArea(uniqueId, {
33
+ yAxisId: normalizeYAxisId(yAxisId),
34
+ y1,
35
+ y2,
36
+ axisLabelColor,
37
+ });
38
+ return () => registration.unregisterReferenceArea(uniqueId);
39
+ }, [registration, uniqueId, yAxisId, y1, y2, axisLabelColor]);
40
+ const patternId = `chart-reference-area-pattern-${uniqueId}`;
41
+ const hMaskId = `chart-reference-area-fade-${uniqueId}`;
42
+ const hGradientId = `${hMaskId}-gradient`;
43
+ const rect = useMemo(() => computeReferenceAreaRect({
44
+ innerWidth,
45
+ innerHeight,
46
+ x1,
47
+ x2,
48
+ y1,
49
+ y2,
50
+ ifOverflow,
51
+ xScale,
52
+ yScale,
53
+ }), [innerWidth, innerHeight, x1, x2, y1, y2, ifOverflow, xScale, yScale]);
54
+ const usesPattern = pattern !== "none";
55
+ const patternNode = useMemo(() => {
56
+ if (!usesPattern) {
57
+ return null;
58
+ }
59
+ return renderPatternPreset(pattern, patternId, {
60
+ color: patternColor,
61
+ scale: patternScale,
62
+ strokeWidth: patternStrokeWidth,
63
+ radius: patternRadius,
64
+ complement: patternComplement,
65
+ fill: patternFill,
66
+ dotFill: patternDotFill,
67
+ tileBackground: patternTileBackground,
68
+ });
69
+ }, [
70
+ usesPattern,
71
+ pattern,
72
+ patternId,
73
+ patternColor,
74
+ patternScale,
75
+ patternStrokeWidth,
76
+ patternRadius,
77
+ patternComplement,
78
+ patternFill,
79
+ patternDotFill,
80
+ patternTileBackground,
81
+ ]);
82
+ const fadeEdge = clampFadeLength(fadeEdgesLength);
83
+ const edgeMask = fadeEdges ? `url(#${hMaskId})` : undefined;
84
+ const lineDash = strokeStyle === "dashed" ? strokeDasharray : undefined;
85
+ if (!rect) {
86
+ return null;
87
+ }
88
+ const { x, y, width, height } = rect;
89
+ const topEdgeY = y;
90
+ const bottomEdgeY = y + height;
91
+ const centerX = x + width / 2;
92
+ const visible = isReferenceAreaVisiblePhase(chartPhase);
93
+ const fadeTransition = enterTransition && typeof enterTransition === "object"
94
+ ? enterTransition
95
+ : { duration: ENTER_FADE_MS / 1000, ease: "easeOut" };
96
+ const areaFill = usesPattern && patternNode ? `url(#${patternId})` : fill;
97
+ return (_jsxs(motion.g, { animate: { opacity: visible ? 1 : 0 }, "aria-hidden": "true", className: className ?? "chart-reference-area", initial: { opacity: 0 }, transition: fadeTransition, children: [edgeMask ? (_jsxs("defs", { children: [_jsxs("linearGradient", { id: hGradientId, x1: "0%", x2: "100%", y1: "0%", y2: "0%", children: [_jsx("stop", { offset: "0%", style: { stopColor: "white", stopOpacity: 0 } }), _jsx("stop", { offset: `${fadeEdge}%`, style: { stopColor: "white", stopOpacity: 1 } }), _jsx("stop", { offset: `${100 - fadeEdge}%`, style: { stopColor: "white", stopOpacity: 1 } }), _jsx("stop", { offset: "100%", style: { stopColor: "white", stopOpacity: 0 } })] }), _jsx("mask", { id: hMaskId, children: _jsx("rect", { fill: `url(#${hGradientId})`, height: innerHeight, width: innerWidth, x: 0, y: 0 }) })] })) : null, patternNode ? _jsx("defs", { children: patternNode }) : null, _jsx("rect", { fill: areaFill, fillOpacity: fillOpacity, height: height, mask: edgeMask, width: width, x: x, y: y }), _jsxs("g", { mask: edgeMask, children: [_jsx("line", { stroke: stroke, strokeDasharray: lineDash, strokeWidth: strokeWidth, x1: x, x2: x + width, y1: topEdgeY, y2: topEdgeY }), _jsx("line", { stroke: stroke, strokeDasharray: lineDash, strokeWidth: strokeWidth, x1: x, x2: x + width, y1: bottomEdgeY, y2: bottomEdgeY })] }), showMarkers ? (_jsxs(_Fragment, { children: [_jsx("path", { d: bracketMarkerPath(centerX, topEdgeY, markerSize, "down"), fill: markerColor }), _jsx("path", { d: bracketMarkerPath(centerX, bottomEdgeY, markerSize, "up"), fill: markerColor })] })) : null] }));
98
+ }
99
+ ReferenceArea.displayName = "ReferenceArea";
100
+ export default ReferenceArea;
101
+ //# sourceMappingURL=reference-area.js.map
@@ -0,0 +1,46 @@
1
+ import type { ReactNode } from "react";
2
+ import { type ChartStatFlowFormat } from "./chart-stat-flow.js";
3
+ export interface RingCenterProps {
4
+ /** Label shown below the value. Default: "Total" when not hovering */
5
+ defaultLabel?: string;
6
+ /** Format options for NumberFlow. Default: standard notation */
7
+ formatOptions?: ChartStatFlowFormat;
8
+ /** Custom render function for complete control over center content */
9
+ children?: (props: {
10
+ value: number;
11
+ label: string;
12
+ isHovered: boolean;
13
+ data: {
14
+ label: string;
15
+ value: number;
16
+ maxValue: number;
17
+ color?: string;
18
+ };
19
+ }) => ReactNode;
20
+ /** Additional class name for the container */
21
+ className?: string;
22
+ /** Class name for the value text. Scales with center size via container queries. */
23
+ valueClassName?: string;
24
+ /** Class name for the label text. Scales with center size via container queries. */
25
+ labelClassName?: string;
26
+ /** Prefix to show before the number (e.g., "$") */
27
+ prefix?: string;
28
+ /** Suffix to show after the number (e.g., "%") */
29
+ suffix?: string;
30
+ }
31
+ /**
32
+ * RingCenter displays content in the center of the ring chart.
33
+ *
34
+ * This component renders as pure HTML (not inside SVG foreignObject) to avoid
35
+ * Safari's WebKit bug #23113 where HTML content with CSS transforms/opacity
36
+ * inside foreignObject renders at incorrect positions.
37
+ *
38
+ * The parent RingChart uses CSS Grid stacking to overlay this HTML content
39
+ * on top of the SVG rings.
40
+ */
41
+ export declare function RingCenter({ defaultLabel, formatOptions, children, className, valueClassName, labelClassName, prefix, suffix, }: RingCenterProps): import("react").JSX.Element;
42
+ export declare namespace RingCenter {
43
+ var displayName: string;
44
+ }
45
+ export default RingCenter;
46
+ //# sourceMappingURL=ring-center.d.ts.map
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from "../lib/cn.js";
4
+ import { chartCenterContainerClassName, chartCenterLabelClassName, chartCenterValueClassName, } from "./chart-center-typography.js";
5
+ import { ChartStatFlow, defaultChartStatFlowFormat, } from "./chart-stat-flow.js";
6
+ import { useRingHover, useRingStable } from "./ring-context.js";
7
+ /**
8
+ * RingCenter displays content in the center of the ring chart.
9
+ *
10
+ * This component renders as pure HTML (not inside SVG foreignObject) to avoid
11
+ * Safari's WebKit bug #23113 where HTML content with CSS transforms/opacity
12
+ * inside foreignObject renders at incorrect positions.
13
+ *
14
+ * The parent RingChart uses CSS Grid stacking to overlay this HTML content
15
+ * on top of the SVG rings.
16
+ */
17
+ export function RingCenter({ defaultLabel = "Total", formatOptions = defaultChartStatFlowFormat, children, className = "", valueClassName = chartCenterValueClassName, labelClassName = chartCenterLabelClassName, prefix, suffix, }) {
18
+ const { data, totalValue, baseInnerRadius } = useRingStable();
19
+ const { hoveredIndex } = useRingHover();
20
+ const hoveredData = hoveredIndex === null ? null : data[hoveredIndex];
21
+ const displayValue = hoveredData ? hoveredData.value : totalValue;
22
+ const displayLabel = hoveredData ? hoveredData.label : defaultLabel;
23
+ // Calculate center area size based on scaled baseInnerRadius
24
+ // Leave some padding so text doesn't touch the inner ring
25
+ const centerSize = baseInnerRadius * 2 - 16;
26
+ // If custom render function is provided, use it
27
+ if (children && hoveredData) {
28
+ return (_jsx("div", { className: cn(chartCenterContainerClassName, "flex items-center justify-center", className), style: { width: centerSize, height: centerSize }, children: children({
29
+ value: displayValue,
30
+ label: displayLabel,
31
+ isHovered: hoveredIndex !== null,
32
+ data: hoveredData,
33
+ }) }));
34
+ }
35
+ // Default center content with NumberFlow animations
36
+ // Now renders as pure HTML, avoiding Safari's foreignObject bugs
37
+ return (_jsx("div", { className: cn(chartCenterContainerClassName, "flex flex-col items-center justify-center text-center", className), style: { width: centerSize, height: centerSize }, children: _jsx(ChartStatFlow, { formatOptions: formatOptions, label: displayLabel, labelClassName: labelClassName, prefix: prefix, suffix: suffix, value: displayValue, valueClassName: valueClassName }) }));
38
+ }
39
+ RingCenter.displayName = "RingCenter";
40
+ export default RingCenter;
41
+ //# sourceMappingURL=ring-center.js.map
@@ -0,0 +1,41 @@
1
+ import type { Transition } from "motion/react";
2
+ import { type ReactNode } from "react";
3
+ import { type RingData } from "./ring-context.js";
4
+ export interface RingChartProps {
5
+ /** Data array - each item represents a ring */
6
+ data: RingData[];
7
+ /** Chart size in pixels. If not provided, uses parent container size */
8
+ size?: number;
9
+ /** Stroke width of each ring. Default: 12 */
10
+ strokeWidth?: number;
11
+ /** Gap between rings. Default: 6 */
12
+ ringGap?: number;
13
+ /** Inner radius of the innermost ring. Default: 60 */
14
+ baseInnerRadius?: number;
15
+ /** Animation duration in milliseconds. Default: 1100 */
16
+ animationDuration?: number;
17
+ /** Additional class name for the container */
18
+ className?: string;
19
+ /** Controlled hover state - index of hovered ring */
20
+ hoveredIndex?: number | null;
21
+ /** Callback when hover state changes */
22
+ onHoverChange?: (index: number | null) => void;
23
+ /** Start angle in radians. Default: -PI/2 (top) */
24
+ startAngle?: number;
25
+ /** End angle in radians. Default: 3*PI/2 (full circle) */
26
+ endAngle?: number;
27
+ /** Framer Motion transition for ring enter animation */
28
+ enterTransition?: Transition;
29
+ /** Scales ring stagger delays (1 = default). */
30
+ enterStaggerScale?: number;
31
+ /**
32
+ * High-frequency geometry updates (e.g. studio NumberField scrub).
33
+ * Uses plain SVG paths instead of Motion `d` morphing.
34
+ */
35
+ geometryScrubbing?: boolean;
36
+ /** Child components (Ring, RingCenter, etc.) */
37
+ children: ReactNode;
38
+ }
39
+ export declare function RingChart({ data, size: fixedSize, strokeWidth, ringGap, baseInnerRadius, className, hoveredIndex, onHoverChange, startAngle, endAngle, enterTransition, enterStaggerScale, geometryScrubbing, children, }: RingChartProps): import("react").JSX.Element;
40
+ export default RingChart;
41
+ //# sourceMappingURL=ring-chart.d.ts.map
@@ -0,0 +1,212 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Group } from "@visx/group";
4
+ import { ParentSize } from "@visx/responsive";
5
+ import { arc as arcGenerator } from "@visx/shape";
6
+ import { Children, isValidElement, memo, useCallback, useEffect, useMemo, useRef, useState, } from "react";
7
+ import { cn } from "../lib/cn.js";
8
+ import { defaultRingColors, RingProvider, ringCssVars, } from "./ring-context.js";
9
+ function generateRingArcPath(innerRadius, outerRadius, startAngle, endAngle, cornerRadius) {
10
+ const generator = arcGenerator({
11
+ innerRadius,
12
+ outerRadius,
13
+ cornerRadius,
14
+ });
15
+ return generator({ startAngle, endAngle }) || "";
16
+ }
17
+ function isRing(child) {
18
+ return (isValidElement(child) &&
19
+ typeof child.type === "function" &&
20
+ (child.type.displayName === "Ring" ||
21
+ child.type.name === "Ring"));
22
+ }
23
+ // Helper to check if a child is a RingCenter component
24
+ function isRingCenter(child) {
25
+ return (isValidElement(child) &&
26
+ typeof child.type === "function" &&
27
+ (child.type.displayName === "RingCenter" ||
28
+ child.type.name === "RingCenter"));
29
+ }
30
+ function RingChartInner(props) {
31
+ const size = Math.min(props.width, props.height);
32
+ if (size < 10) {
33
+ return null;
34
+ }
35
+ return _jsx(RingChartCore, { ...props });
36
+ }
37
+ const RingChartCore = memo(function RingChartCore({ width, height, data, strokeWidth: strokeWidthProp, ringGap: ringGapProp, baseInnerRadius: baseInnerRadiusProp, children, containerRef, hoveredIndexProp, onHoverChange, startAngle, endAngle, enterTransition, enterStaggerScale, geometryScrubbing, }) {
38
+ const [internalHoveredIndex, setInternalHoveredIndex] = useState(null);
39
+ const [animationKey] = useState(0);
40
+ const [isLoaded, setIsLoaded] = useState(false);
41
+ // Use controlled or uncontrolled hover state
42
+ const isControlled = hoveredIndexProp !== undefined;
43
+ const hoveredIndex = isControlled ? hoveredIndexProp : internalHoveredIndex;
44
+ const setHoveredIndex = useCallback((index) => {
45
+ if (isControlled) {
46
+ onHoverChange?.(index);
47
+ }
48
+ else {
49
+ setInternalHoveredIndex(index);
50
+ }
51
+ }, [isControlled, onHoverChange]);
52
+ // Use the smaller dimension to ensure the chart fits
53
+ const size = Math.min(width, height);
54
+ const center = size / 2;
55
+ // Calculate scaled dimensions to fit within the available space
56
+ // The outermost ring needs to fit within the chart with some padding
57
+ const ringCount = data.length;
58
+ const padding = 8; // Padding from edge
59
+ const availableRadius = center - padding;
60
+ // Calculate the "design" outer radius (what we'd need at 1:1 scale)
61
+ const designOuterRadius = baseInnerRadiusProp + (ringCount - 1) * (strokeWidthProp + ringGapProp) + strokeWidthProp;
62
+ // Scale factor to fit within available space
63
+ const scale = Math.min(1, availableRadius / designOuterRadius);
64
+ // Apply scaling to all dimensions
65
+ const strokeWidth = strokeWidthProp * scale;
66
+ const ringGap = ringGapProp * scale;
67
+ const baseInnerRadius = baseInnerRadiusProp * scale;
68
+ // Calculate total value
69
+ const totalValue = useMemo(() => data.reduce((sum, d) => sum + d.value, 0), [data]);
70
+ // Get color for a ring index
71
+ const getColor = useCallback((index) => {
72
+ const item = data[index];
73
+ if (item?.color) {
74
+ return item.color;
75
+ }
76
+ return defaultRingColors[index % defaultRingColors.length];
77
+ }, [data]);
78
+ // Get ring radii for an index
79
+ const getRingRadii = useCallback((index) => {
80
+ const innerRadius = baseInnerRadius + index * (strokeWidth + ringGap);
81
+ const outerRadius = innerRadius + strokeWidth;
82
+ return { innerRadius, outerRadius };
83
+ }, [baseInnerRadius, strokeWidth, ringGap]);
84
+ const arcRange = endAngle - startAngle;
85
+ const scrubRingLayers = useMemo(() => {
86
+ if (!geometryScrubbing) {
87
+ return null;
88
+ }
89
+ return data.map((ringData, index) => {
90
+ const { innerRadius, outerRadius } = getRingRadii(index);
91
+ const cornerRadius = (outerRadius - innerRadius) / 2;
92
+ const progress = ringData.value / ringData.maxValue;
93
+ const progressEndAngle = startAngle + arcRange * progress;
94
+ return {
95
+ bgPath: generateRingArcPath(innerRadius, outerRadius, startAngle, endAngle, cornerRadius),
96
+ progressPath: progressEndAngle <= startAngle + 0.01
97
+ ? ""
98
+ : generateRingArcPath(innerRadius, outerRadius, startAngle, progressEndAngle, cornerRadius),
99
+ color: getColor(index),
100
+ };
101
+ });
102
+ }, [geometryScrubbing, data, getRingRadii, getColor, startAngle, endAngle, arcRange]);
103
+ const effectiveIsLoaded = geometryScrubbing || isLoaded;
104
+ // biome-ignore lint/correctness/useExhaustiveDependencies: enterTransition
105
+ useEffect(() => {
106
+ if (geometryScrubbing) {
107
+ return;
108
+ }
109
+ setIsLoaded(false);
110
+ const timer = setTimeout(() => {
111
+ setIsLoaded(true);
112
+ }, 100);
113
+ return () => clearTimeout(timer);
114
+ }, [enterTransition, enterStaggerScale, geometryScrubbing]);
115
+ // Separate SVG children (rings) from HTML children (RingCenter)
116
+ // This avoids Safari's foreignObject positioning bugs (WebKit #23113)
117
+ const { svgChildren, centerChildren } = useMemo(() => {
118
+ const svgNodes = [];
119
+ const centerNodes = [];
120
+ Children.forEach(children, (child) => {
121
+ if (isRingCenter(child)) {
122
+ centerNodes.push(child);
123
+ }
124
+ else if (geometryScrubbing && isRing(child)) {
125
+ return;
126
+ }
127
+ else {
128
+ svgNodes.push(child);
129
+ }
130
+ });
131
+ return { svgChildren: svgNodes, centerChildren: centerNodes };
132
+ }, [children, geometryScrubbing]);
133
+ const contextValue = useMemo(() => ({
134
+ data,
135
+ size,
136
+ center,
137
+ strokeWidth,
138
+ ringGap,
139
+ baseInnerRadius,
140
+ hoveredIndex,
141
+ setHoveredIndex,
142
+ animationKey,
143
+ isLoaded: effectiveIsLoaded,
144
+ enterTransition,
145
+ enterStaggerScale,
146
+ containerRef,
147
+ totalValue,
148
+ getColor,
149
+ getRingRadii,
150
+ startAngle,
151
+ endAngle,
152
+ geometryScrubbing,
153
+ }), [
154
+ data,
155
+ size,
156
+ center,
157
+ strokeWidth,
158
+ ringGap,
159
+ baseInnerRadius,
160
+ hoveredIndex,
161
+ setHoveredIndex,
162
+ animationKey,
163
+ effectiveIsLoaded,
164
+ enterTransition,
165
+ enterStaggerScale,
166
+ containerRef,
167
+ totalValue,
168
+ getColor,
169
+ getRingRadii,
170
+ startAngle,
171
+ endAngle,
172
+ geometryScrubbing,
173
+ ]);
174
+ // Use CSS Grid stacking to layer SVG and HTML content
175
+ // This avoids Safari's foreignObject rendering bugs where HTML content
176
+ // inside SVG foreignObject renders at wrong positions when it has a RenderLayer
177
+ return (_jsx(RingProvider, { value: contextValue, children: _jsxs("div", { className: "grid", style: {
178
+ gridTemplateColumns: "1fr",
179
+ gridTemplateRows: "1fr",
180
+ width: size,
181
+ height: size,
182
+ }, children: [_jsx("svg", { "aria-hidden": "true", height: size, style: { gridArea: "1 / 1", contain: "layout style paint" }, width: size, children: _jsxs(Group, { left: center, top: center, children: [scrubRingLayers
183
+ ? scrubRingLayers.map((layer, index) => (_jsxs("g", { children: [_jsx("path", { d: layer.bgPath, fill: ringCssVars.ringBackground }), layer.progressPath ? _jsx("path", { d: layer.progressPath, fill: layer.color }) : null] }, data[index]?.label ?? index)))
184
+ : null, svgChildren] }) }), centerChildren.length > 0 && (_jsx("div", { className: "pointer-events-none flex items-center justify-center", style: { gridArea: "1 / 1" }, children: centerChildren }))] }) }));
185
+ }, ringChartCorePropsEqual);
186
+ function ringChartCorePropsEqual(prev, next) {
187
+ return (prev.width === next.width &&
188
+ prev.height === next.height &&
189
+ prev.data === next.data &&
190
+ prev.strokeWidth === next.strokeWidth &&
191
+ prev.ringGap === next.ringGap &&
192
+ prev.baseInnerRadius === next.baseInnerRadius &&
193
+ prev.hoveredIndexProp === next.hoveredIndexProp &&
194
+ prev.onHoverChange === next.onHoverChange &&
195
+ prev.startAngle === next.startAngle &&
196
+ prev.endAngle === next.endAngle &&
197
+ prev.enterTransition === next.enterTransition &&
198
+ prev.enterStaggerScale === next.enterStaggerScale &&
199
+ prev.geometryScrubbing === next.geometryScrubbing &&
200
+ prev.children === next.children);
201
+ }
202
+ export function RingChart({ data, size: fixedSize, strokeWidth = 12, ringGap = 6, baseInnerRadius = 60, className = "", hoveredIndex, onHoverChange, startAngle = -Math.PI / 2, endAngle = (3 * Math.PI) / 2, enterTransition, enterStaggerScale = 1, geometryScrubbing = false, children, }) {
203
+ const containerRef = useRef(null);
204
+ // If fixed size is provided, use it directly
205
+ if (fixedSize) {
206
+ return (_jsx("div", { "data-slot": "ring-chart", className: cn("relative flex items-center justify-center", className), ref: containerRef, style: { width: fixedSize, height: fixedSize }, children: _jsx(RingChartInner, { baseInnerRadius: baseInnerRadius, containerRef: containerRef, data: data, endAngle: endAngle, enterStaggerScale: enterStaggerScale, enterTransition: enterTransition, geometryScrubbing: geometryScrubbing, height: fixedSize, hoveredIndexProp: hoveredIndex, onHoverChange: onHoverChange, ringGap: ringGap, startAngle: startAngle, strokeWidth: strokeWidth, width: fixedSize, children: children }) }));
207
+ }
208
+ // Otherwise use ParentSize for responsive sizing
209
+ return (_jsx("div", { className: cn("relative aspect-square w-full", className), ref: containerRef, children: _jsx(ParentSize, { debounceTime: 10, children: ({ width, height }) => (_jsx(RingChartInner, { baseInnerRadius: baseInnerRadius, containerRef: containerRef, data: data, endAngle: endAngle, enterStaggerScale: enterStaggerScale, enterTransition: enterTransition, geometryScrubbing: geometryScrubbing, height: height, hoveredIndexProp: hoveredIndex, onHoverChange: onHoverChange, ringGap: ringGap, startAngle: startAngle, strokeWidth: strokeWidth, width: width, children: children })) }) }));
210
+ }
211
+ export default RingChart;
212
+ //# sourceMappingURL=ring-chart.js.map
@@ -0,0 +1,66 @@
1
+ import type { Transition } from "motion/react";
2
+ import { type ReactNode, type RefObject } from "react";
3
+ export declare const ringCssVars: {
4
+ background: string;
5
+ foreground: string;
6
+ foregroundMuted: string;
7
+ label: string;
8
+ ringBackground: string;
9
+ ring1: string;
10
+ ring2: string;
11
+ ring3: string;
12
+ ring4: string;
13
+ ring5: string;
14
+ };
15
+ export declare const defaultRingColors: string[];
16
+ export interface RingData {
17
+ /** Display label for the ring */
18
+ label: string;
19
+ /** Current value */
20
+ value: number;
21
+ /** Maximum value (determines progress percentage) */
22
+ maxValue: number;
23
+ /** Optional color override - falls back to palette */
24
+ color?: string;
25
+ }
26
+ export interface RingHoverContextValue {
27
+ hoveredIndex: number | null;
28
+ setHoveredIndex: (index: number | null) => void;
29
+ }
30
+ export interface RingStableContextValue {
31
+ data: RingData[];
32
+ size: number;
33
+ center: number;
34
+ strokeWidth: number;
35
+ ringGap: number;
36
+ baseInnerRadius: number;
37
+ animationKey: number;
38
+ isLoaded: boolean;
39
+ enterTransition?: Transition;
40
+ enterStaggerScale: number;
41
+ containerRef: RefObject<HTMLDivElement | null>;
42
+ totalValue: number;
43
+ getColor: (index: number) => string;
44
+ getRingRadii: (index: number) => {
45
+ innerRadius: number;
46
+ outerRadius: number;
47
+ };
48
+ startAngle: number;
49
+ endAngle: number;
50
+ /**
51
+ * Studio geometry scrub — skip Motion path morphing and use plain SVG paths.
52
+ * @default false
53
+ */
54
+ geometryScrubbing: boolean;
55
+ }
56
+ export type RingContextValue = RingStableContextValue & RingHoverContextValue;
57
+ declare const RingStableContext: import("react").Context<RingStableContextValue | null>;
58
+ export declare function RingProvider({ children, value, }: {
59
+ children: ReactNode;
60
+ value: RingContextValue;
61
+ }): import("react").JSX.Element;
62
+ export declare function useRingStable(): RingStableContextValue;
63
+ export declare function useRingHover(): RingHoverContextValue;
64
+ export declare function useRing(): RingContextValue;
65
+ export default RingStableContext;
66
+ //# sourceMappingURL=ring-context.d.ts.map
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useMemo } from "react";
4
+ // CSS variable references for ring chart theming
5
+ export const ringCssVars = {
6
+ background: "var(--chart-background)",
7
+ foreground: "var(--chart-foreground)",
8
+ foregroundMuted: "var(--chart-foreground-muted)",
9
+ label: "var(--chart-label)",
10
+ ringBackground: "var(--border)",
11
+ // Default ring colors from chart palette
12
+ ring1: "var(--chart-1)",
13
+ ring2: "var(--chart-2)",
14
+ ring3: "var(--chart-3)",
15
+ ring4: "var(--chart-4)",
16
+ ring5: "var(--chart-5)",
17
+ };
18
+ // Default ring color palette
19
+ export const defaultRingColors = [
20
+ ringCssVars.ring1,
21
+ ringCssVars.ring2,
22
+ ringCssVars.ring3,
23
+ ringCssVars.ring4,
24
+ ringCssVars.ring5,
25
+ ];
26
+ const RingStableContext = createContext(null);
27
+ const RingHoverContext = createContext(null);
28
+ export function RingProvider({ children, value, }) {
29
+ const stable = useMemo(() => ({
30
+ data: value.data,
31
+ size: value.size,
32
+ center: value.center,
33
+ strokeWidth: value.strokeWidth,
34
+ ringGap: value.ringGap,
35
+ baseInnerRadius: value.baseInnerRadius,
36
+ animationKey: value.animationKey,
37
+ isLoaded: value.isLoaded,
38
+ enterTransition: value.enterTransition,
39
+ enterStaggerScale: value.enterStaggerScale,
40
+ containerRef: value.containerRef,
41
+ totalValue: value.totalValue,
42
+ getColor: value.getColor,
43
+ getRingRadii: value.getRingRadii,
44
+ startAngle: value.startAngle,
45
+ endAngle: value.endAngle,
46
+ geometryScrubbing: value.geometryScrubbing,
47
+ }), [
48
+ value.data,
49
+ value.size,
50
+ value.center,
51
+ value.strokeWidth,
52
+ value.ringGap,
53
+ value.baseInnerRadius,
54
+ value.animationKey,
55
+ value.isLoaded,
56
+ value.enterTransition,
57
+ value.enterStaggerScale,
58
+ value.containerRef,
59
+ value.totalValue,
60
+ value.getColor,
61
+ value.getRingRadii,
62
+ value.startAngle,
63
+ value.endAngle,
64
+ value.geometryScrubbing,
65
+ ]);
66
+ const hover = useMemo(() => ({
67
+ hoveredIndex: value.hoveredIndex,
68
+ setHoveredIndex: value.setHoveredIndex,
69
+ }), [value.hoveredIndex, value.setHoveredIndex]);
70
+ return (_jsx(RingStableContext.Provider, { value: stable, children: _jsx(RingHoverContext.Provider, { value: hover, children: children }) }));
71
+ }
72
+ export function useRingStable() {
73
+ const context = useContext(RingStableContext);
74
+ if (!context) {
75
+ throw new Error("useRingStable must be used within a RingProvider. " +
76
+ "Make sure your component is wrapped in <RingChart>.");
77
+ }
78
+ return context;
79
+ }
80
+ export function useRingHover() {
81
+ const context = useContext(RingHoverContext);
82
+ if (!context) {
83
+ throw new Error("useRingHover must be used within a RingProvider. " +
84
+ "Make sure your component is wrapped in <RingChart>.");
85
+ }
86
+ return context;
87
+ }
88
+ export function useRing() {
89
+ return { ...useRingStable(), ...useRingHover() };
90
+ }
91
+ export default RingStableContext;
92
+ //# sourceMappingURL=ring-context.js.map
@@ -0,0 +1,11 @@
1
+ export type RingLineCap = "round" | "butt";
2
+ export interface RingProps {
3
+ index: number;
4
+ color?: string;
5
+ animate?: boolean;
6
+ showGlow?: boolean;
7
+ lineCap?: RingLineCap;
8
+ }
9
+ export declare const Ring: import("react").MemoExoticComponent<({ index, color: colorProp, animate, showGlow, lineCap, }: RingProps) => import("react").JSX.Element | null>;
10
+ export default Ring;
11
+ //# sourceMappingURL=ring.d.ts.map