@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,25 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ export interface RippleProps extends HTMLAttributes<HTMLDivElement> {
3
+ ref?: Ref<HTMLDivElement>;
4
+ /**
5
+ * Number of concentric rings. Clamped to `1–16`.
6
+ * @default 8
7
+ */
8
+ count?: number;
9
+ /**
10
+ * Seconds for one expansion cycle.
11
+ * @default 8
12
+ */
13
+ duration?: number;
14
+ }
15
+ /**
16
+ * Concentric rings that expand from the centre of a surface and fade out —
17
+ * a living pulse behind a hero, CTA or empty state. The rings are purely
18
+ * decorative (`aria-hidden`) and are suppressed under
19
+ * `prefers-reduced-motion: reduce`.
20
+ */
21
+ export declare function Ripple({ ref, className, children, count, duration, style, ...props }: RippleProps): import("react").JSX.Element;
22
+ export declare namespace Ripple {
23
+ var displayName: string;
24
+ }
25
+ //# sourceMappingURL=ripple.d.ts.map
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../lib/cn.js";
3
+ const RIPPLE_KEYFRAMES = "@keyframes cronus-ripple{from{transform:scale(0);opacity:var(--ripple-opacity,0.35)}to{transform:scale(1);opacity:0}}";
4
+ function finiteOr(value, fallback) {
5
+ return Number.isFinite(value) ? value : fallback;
6
+ }
7
+ /**
8
+ * Concentric rings that expand from the centre of a surface and fade out —
9
+ * a living pulse behind a hero, CTA or empty state. The rings are purely
10
+ * decorative (`aria-hidden`) and are suppressed under
11
+ * `prefers-reduced-motion: reduce`.
12
+ */
13
+ export function Ripple({ ref, className, children, count = 8, duration = 8, style, ...props }) {
14
+ const ringCount = Math.min(16, Math.max(1, Math.round(finiteOr(count, 8))));
15
+ const cycle = Math.max(0.5, finiteOr(duration, 8));
16
+ return (_jsxs("div", { ref: ref, "data-slot": "ripple", className: cn("relative overflow-hidden", className), style: style, ...props, children: [_jsxs("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 motion-reduce:hidden", children: [_jsx("style", { children: RIPPLE_KEYFRAMES }), Array.from({ length: ringCount }, (_, index) => {
17
+ const ringStyle = {
18
+ "--ripple-duration": `${cycle}s`,
19
+ "--ripple-delay": `${(index * cycle) / ringCount}s`,
20
+ "--ripple-opacity": "0.35",
21
+ };
22
+ return (_jsx("span", { className: "absolute start-1/2 top-1/2 aspect-square w-[220%] -translate-x-1/2 -translate-y-1/2 rounded-full border border-primary/40 [animation-delay:var(--ripple-delay)] [animation-duration:var(--ripple-duration)] [animation-iteration-count:infinite] [animation-name:cronus-ripple] [animation-timing-function:ease-out]", style: ringStyle }, index));
23
+ })] }), _jsx("div", { className: "relative", children: children })] }));
24
+ }
25
+ Ripple.displayName = "Ripple";
26
+ //# sourceMappingURL=ripple.js.map
@@ -0,0 +1,16 @@
1
+ import type { HTMLAttributes } from "react";
2
+ export interface SankeyChartData {
3
+ nodes: {
4
+ name: string;
5
+ }[];
6
+ links: {
7
+ source: number;
8
+ target: number;
9
+ value: number;
10
+ }[];
11
+ }
12
+ export interface SankeyChartProps extends HTMLAttributes<HTMLDivElement> {
13
+ data: SankeyChartData;
14
+ }
15
+ export declare function SankeyChart({ data, className, ...props }: SankeyChartProps): import("react").JSX.Element;
16
+ //# sourceMappingURL=sankey-chart.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Sankey, Tooltip } from "recharts";
3
+ import { cn } from "../lib/cn.js";
4
+ import { ChartContainer } from "./chart.js";
5
+ export function SankeyChart({ data, className, ...props }) {
6
+ return (_jsx("div", { "data-slot": "sankey-chart", className: cn("h-64 w-full", className), ...props, children: _jsx(ChartContainer, { config: { flow: { label: "Flow", color: "var(--cronus-chart-1)" } }, className: "h-full w-full", children: _jsx(Sankey, { data: data, nodePadding: 16, nodeWidth: 12, linkCurvature: 0.5, iterations: 32, children: _jsx(Tooltip, {}) }) }) }));
7
+ }
8
+ //# sourceMappingURL=sankey-chart.js.map
@@ -0,0 +1,12 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import { type ChartSeries } from "./chart.js";
3
+ export interface ScatterChartSeries extends ChartSeries {
4
+ data: Record<string, unknown>[];
5
+ }
6
+ export interface ScatterChartProps extends HTMLAttributes<HTMLDivElement> {
7
+ xKey?: string;
8
+ yKey?: string;
9
+ series: ScatterChartSeries[];
10
+ }
11
+ export declare function ScatterChart({ xKey, yKey, series, className, ...props }: ScatterChartProps): import("react").JSX.Element;
12
+ //# sourceMappingURL=scatter-chart.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CartesianGrid, ScatterChart as RechartsScatterChart, Scatter, XAxis, YAxis, ZAxis, } from "recharts";
3
+ import { cn } from "../lib/cn.js";
4
+ import { ChartContainer, ChartTooltip, ChartTooltipContent, chartSeriesConfig, } from "./chart.js";
5
+ export function ScatterChart({ xKey = "x", yKey = "y", series, className, ...props }) {
6
+ const config = chartSeriesConfig(series);
7
+ return (_jsx("div", { "data-slot": "scatter-chart", className: cn("h-64 w-full", className), ...props, children: _jsx(ChartContainer, { config: config, className: "h-full w-full", children: _jsxs(RechartsScatterChart, { margin: { left: 8, right: 8, top: 8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "4 4" }), _jsx(XAxis, { dataKey: xKey, tickLine: false, axisLine: false, type: "number" }), _jsx(YAxis, { dataKey: yKey, tickLine: false, axisLine: false, type: "number" }), _jsx(ZAxis, { range: [60, 60] }), _jsx(ChartTooltip, { content: _jsx(ChartTooltipContent, {}) }), series.map((item) => (_jsx(Scatter, { name: item.label, data: item.data, fill: `var(--color-${item.key})` }, item.key)))] }) }) }));
8
+ }
9
+ //# sourceMappingURL=scatter-chart.js.map
@@ -0,0 +1,50 @@
1
+ import { type HTMLAttributes } from "react";
2
+ /** Token-colour key for an event chip. Maps to surface/foreground utilities. */
3
+ export type SchedulerEventColor = "primary" | "success" | "warning" | "error" | "info";
4
+ export interface SchedulerEvent {
5
+ /** Stable identity used as the React key and passed back to callbacks. */
6
+ id: string;
7
+ /** Short label rendered inside the chip (truncated when it overflows). */
8
+ title: string;
9
+ /** Day the event belongs to. Only the calendar date is considered. */
10
+ date: Date;
11
+ /** Token colour for the chip. Defaults to `"primary"`. */
12
+ color?: SchedulerEventColor;
13
+ }
14
+ export interface SchedulerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
15
+ /** Controlled visible month. Provide together with `onMonthChange`. */
16
+ month?: Date;
17
+ /** Initial visible month for the uncontrolled case. Defaults to "today". */
18
+ defaultMonth?: Date;
19
+ /** Called with the first day of the next visible month on Prev/Today/Next. */
20
+ onMonthChange?: (month: Date) => void;
21
+ /** Events to lay out across the grid. Bucketed by calendar day. */
22
+ events?: SchedulerEvent[];
23
+ /** Fired when an event chip is activated. */
24
+ onEventClick?: (event: SchedulerEvent) => void;
25
+ /** Fired when a day cell (not a chip) is activated, with that day's date. */
26
+ onDayClick?: (date: Date) => void;
27
+ /**
28
+ * The day to highlight as "today". Optional and defaulting to `undefined` so
29
+ * server render and first client paint are deterministic — pass a stable
30
+ * Date (or compute one in an effect) to light up the current day without a
31
+ * hydration mismatch.
32
+ */
33
+ today?: Date;
34
+ /**
35
+ * Locale-aware start of the week (0 = Sunday … 6 = Saturday). Defaults to
36
+ * `0`, matching the Sun…Sat header.
37
+ */
38
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
39
+ /** Accessible label for the grid. Defaults to "Event calendar". */
40
+ ariaLabel?: string;
41
+ }
42
+ /**
43
+ * Month-view event calendar. Distinct from the date-picker `Calendar`: it lays
44
+ * events onto day cells rather than selecting a date. The visible month is
45
+ * controllable (`month`/`defaultMonth` + `onMonthChange`); everything rendered
46
+ * is derived from props so the component is SSR-safe (the only client-only
47
+ * concern, "today" highlighting, is opt-in via the `today` prop).
48
+ */
49
+ export declare const Scheduler: import("react").ForwardRefExoticComponent<SchedulerProps & import("react").RefAttributes<HTMLDivElement>>;
50
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1,93 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { addMonths, eachDayOfInterval, endOfMonth, endOfWeek, format, isSameDay, isSameMonth, startOfMonth, startOfWeek, subMonths, } from "date-fns";
4
+ import { ChevronLeft, ChevronRight } from "lucide-react";
5
+ import { forwardRef, useCallback, useMemo, useState } from "react";
6
+ import { cn } from "../lib/cn.js";
7
+ import { Button } from "./button.js";
8
+ /**
9
+ * Token classes per event colour. Mirrors the soft `bg-…/15 text-…-strong`
10
+ * treatment used by `Badge` so chips read as quiet, on-brand pills that still
11
+ * clear WCAG AA (the `*-strong` text variant is AA-tuned for the 15% tint).
12
+ */
13
+ const EVENT_CHIP_CLASSES = {
14
+ primary: "bg-primary/15 text-primary-strong",
15
+ success: "bg-success/15 text-success-strong",
16
+ warning: "bg-warning/15 text-warning-strong",
17
+ error: "bg-error/15 text-error-strong",
18
+ info: "bg-info/15 text-info-strong",
19
+ };
20
+ /** Max chips rendered per day before collapsing the rest into `+N more`. */
21
+ const MAX_VISIBLE_EVENTS = 3;
22
+ /** Key into an events-by-day map. Pure date math — no time zone surprises. */
23
+ function dayKey(date) {
24
+ return format(date, "yyyy-MM-dd");
25
+ }
26
+ /**
27
+ * Month-view event calendar. Distinct from the date-picker `Calendar`: it lays
28
+ * events onto day cells rather than selecting a date. The visible month is
29
+ * controllable (`month`/`defaultMonth` + `onMonthChange`); everything rendered
30
+ * is derived from props so the component is SSR-safe (the only client-only
31
+ * concern, "today" highlighting, is opt-in via the `today` prop).
32
+ */
33
+ export const Scheduler = forwardRef(({ className, month: monthProp, defaultMonth, onMonthChange, events = [], onEventClick, onDayClick, today, weekStartsOn = 0, ariaLabel = "Event calendar", ...props }, ref) => {
34
+ // Controlled/uncontrolled visible month, mirroring the house idiom.
35
+ const [uncontrolledMonth, setUncontrolledMonth] = useState(() => defaultMonth ?? new Date());
36
+ const isControlled = monthProp !== undefined;
37
+ const month = isControlled ? monthProp : uncontrolledMonth;
38
+ const goToMonth = useCallback((next) => {
39
+ if (!isControlled)
40
+ setUncontrolledMonth(next);
41
+ onMonthChange?.(next);
42
+ }, [isControlled, onMonthChange]);
43
+ const handlePrev = useCallback(() => goToMonth(subMonths(month, 1)), [goToMonth, month]);
44
+ const handleNext = useCallback(() => goToMonth(addMonths(month, 1)), [goToMonth, month]);
45
+ const handleToday = useCallback(() => goToMonth(startOfMonth(today ?? new Date())), [goToMonth, today]);
46
+ // The visible month padded to whole weeks (leading/trailing adjacent days),
47
+ // chunked into rows of seven so the grid can wrap each week in a `row`.
48
+ const weeks = useMemo(() => {
49
+ const gridStart = startOfWeek(startOfMonth(month), { weekStartsOn });
50
+ const gridEnd = endOfWeek(endOfMonth(month), { weekStartsOn });
51
+ const days = eachDayOfInterval({ start: gridStart, end: gridEnd });
52
+ const rows = [];
53
+ for (let i = 0; i < days.length; i += 7)
54
+ rows.push(days.slice(i, i + 7));
55
+ return rows;
56
+ }, [month, weekStartsOn]);
57
+ // Weekday header labels, rotated to honour `weekStartsOn`. Derived from the
58
+ // first rendered row so labels always line up with their columns.
59
+ const weekdayLabels = useMemo(() => (weeks[0] ?? []).map((day) => format(day, "EEE")), [weeks]);
60
+ // Bucket events by calendar day for O(1) lookup while rendering cells.
61
+ const eventsByDay = useMemo(() => {
62
+ const map = new Map();
63
+ for (const event of events) {
64
+ const key = dayKey(event.date);
65
+ const bucket = map.get(key);
66
+ if (bucket)
67
+ bucket.push(event);
68
+ else
69
+ map.set(key, [event]);
70
+ }
71
+ return map;
72
+ }, [events]);
73
+ return (_jsxs("div", { ref: ref, "data-slot": "scheduler", className: cn("w-full rounded-xl border border-border bg-surface-base text-fg", className), ...props, children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border p-3", children: [_jsx("h2", { "data-slot": "scheduler-title", className: "text-sm font-semibold text-fg", children: format(month, "MMMM yyyy") }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Button, { type: "button", variant: "outline", size: "icon-sm", "aria-label": "Previous month", onClick: handlePrev, children: _jsx(ChevronLeft, {}) }), _jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: handleToday, children: "Today" }), _jsx(Button, { type: "button", variant: "outline", size: "icon-sm", "aria-label": "Next month", onClick: handleNext, children: _jsx(ChevronRight, {}) })] })] }), _jsxs("table", { "data-slot": "scheduler-grid", "aria-label": ariaLabel, className: "w-full table-fixed", children: [_jsx("thead", { "data-slot": "scheduler-weekdays", children: _jsx("tr", { children: weekdayLabels.map((label) => (_jsx("th", { scope: "col", className: "border-b border-border px-2 py-1.5 text-center text-xs font-normal text-fg-tertiary", children: label }, label))) }) }), _jsx("tbody", { children: weeks.map((week) => (_jsx("tr", { children: week.map((day) => {
74
+ const inMonth = isSameMonth(day, month);
75
+ const isToday = today != null && isSameDay(day, today);
76
+ const dayEvents = eventsByDay.get(dayKey(day)) ?? [];
77
+ const visibleEvents = dayEvents.slice(0, MAX_VISIBLE_EVENTS);
78
+ const overflowCount = dayEvents.length - visibleEvents.length;
79
+ return (_jsxs("td", { "aria-label": format(day, "EEEE, MMMM d, yyyy"), "aria-current": isToday ? "date" : undefined, onClick: () => onDayClick?.(day), onKeyDown: (e) => {
80
+ // Only the cell itself (not a focused chip) toggles the day.
81
+ if (e.target === e.currentTarget && (e.key === "Enter" || e.key === " ")) {
82
+ e.preventDefault();
83
+ onDayClick?.(day);
84
+ }
85
+ }, className: cn("h-24 min-w-0 cursor-pointer border-r border-b border-border p-1.5 align-top outline-none transition-colors last:border-r-0", "hover:bg-surface-overlay focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", inMonth ? "text-fg" : "text-fg-tertiary"), children: [_jsx("span", { className: cn("inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-medium", isToday && "bg-primary text-white", !inMonth && "text-fg-tertiary"), children: format(day, "d") }), _jsxs("span", { className: "mt-1 flex flex-col gap-0.5", children: [visibleEvents.map((event) => (_jsx("button", { type: "button", "data-slot": "scheduler-event", title: event.title, onClick: (e) => {
86
+ // Don't also trigger the day cell behind the chip.
87
+ e.stopPropagation();
88
+ onEventClick?.(event);
89
+ }, className: cn("truncate rounded px-1.5 py-0.5 text-left text-xs font-medium outline-none transition-opacity hover:opacity-90 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", EVENT_CHIP_CLASSES[event.color ?? "primary"]), children: event.title }, event.id))), overflowCount > 0 && (_jsxs("span", { "data-slot": "scheduler-event-overflow", className: "px-1.5 text-xs font-medium text-fg-tertiary", children: ["+", overflowCount, " more"] }))] })] }, day.toISOString()));
90
+ }) }, week[0]?.toISOString()))) })] })] }));
91
+ });
92
+ Scheduler.displayName = "Scheduler";
93
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1,39 @@
1
+ import { type HTMLAttributes, type Ref } from "react";
2
+ export type ScrambleTextMotionPreference = "respect" | "always" | "never";
3
+ export interface ScrambleTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
4
+ ref?: Ref<HTMLSpanElement>;
5
+ /** The phrase to resolve to. */
6
+ children: string;
7
+ /**
8
+ * Milliseconds between scramble ticks.
9
+ * @default 40
10
+ */
11
+ speed?: number;
12
+ /**
13
+ * How many ticks each glyph stays scrambled before locking.
14
+ * @default 4
15
+ */
16
+ ticksPerGlyph?: number;
17
+ /**
18
+ * Glyphs used while scrambling. Defaults to a Latin + digit set.
19
+ */
20
+ charset?: string;
21
+ /**
22
+ * How `prefers-reduced-motion` is honoured. Defaults to `"respect"` (show
23
+ * the resolved phrase immediately).
24
+ * @default "respect"
25
+ */
26
+ reducedMotion?: ScrambleTextMotionPreference;
27
+ }
28
+ /**
29
+ * Resolves a phrase by cycling random glyphs from the start of the string, until the real
30
+ * string locks in — the "decryption" beat on a hero or terminal. Assistive
31
+ * tech is given the resolved string immediately via an `sr-only` copy; the
32
+ * scrambling glyphs are `aria-hidden`. Reduced-motion visitors skip the
33
+ * scramble entirely.
34
+ */
35
+ export declare function ScrambleText({ ref, className, children, speed, ticksPerGlyph, charset, reducedMotion, ...props }: ScrambleTextProps): import("react").JSX.Element;
36
+ export declare namespace ScrambleText {
37
+ var displayName: string;
38
+ }
39
+ //# sourceMappingURL=scramble-text.d.ts.map
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useMemo, useState } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ const DEFAULT_CHARSET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
6
+ const graphemeSegmenter = typeof Intl !== "undefined" && "Segmenter" in Intl
7
+ ? new Intl.Segmenter(undefined, { granularity: "grapheme" })
8
+ : null;
9
+ function segmentGraphemes(value) {
10
+ if (graphemeSegmenter) {
11
+ return Array.from(graphemeSegmenter.segment(value), (segment) => segment.segment);
12
+ }
13
+ return Array.from(value);
14
+ }
15
+ function finiteOr(value, fallback) {
16
+ return Number.isFinite(value) ? value : fallback;
17
+ }
18
+ function prefersReducedMotion() {
19
+ return (typeof window !== "undefined" &&
20
+ typeof window.matchMedia === "function" &&
21
+ window.matchMedia("(prefers-reduced-motion: reduce)").matches);
22
+ }
23
+ /**
24
+ * Resolves a phrase by cycling random glyphs from the start of the string, until the real
25
+ * string locks in — the "decryption" beat on a hero or terminal. Assistive
26
+ * tech is given the resolved string immediately via an `sr-only` copy; the
27
+ * scrambling glyphs are `aria-hidden`. Reduced-motion visitors skip the
28
+ * scramble entirely.
29
+ */
30
+ export function ScrambleText({ ref, className, children, speed = 40, ticksPerGlyph = 4, charset = DEFAULT_CHARSET, reducedMotion = "respect", ...props }) {
31
+ const glyphs = useMemo(() => segmentGraphemes(children), [children]);
32
+ const pool = charset.length > 0 ? charset : DEFAULT_CHARSET;
33
+ const [locked, setLocked] = useState(() => (reducedMotion === "never" ? glyphs.length : 0));
34
+ const [tick, setTick] = useState(0);
35
+ const [staticMode, setStaticMode] = useState(reducedMotion === "never");
36
+ useEffect(() => {
37
+ const reduce = reducedMotion === "never"
38
+ ? true
39
+ : reducedMotion === "always"
40
+ ? false
41
+ : prefersReducedMotion();
42
+ setStaticMode(reduce);
43
+ setLocked(reduce ? glyphs.length : 0);
44
+ setTick(0);
45
+ }, [glyphs.length, reducedMotion]);
46
+ useEffect(() => {
47
+ if (staticMode || glyphs.length === 0)
48
+ return;
49
+ const ms = Math.max(12, finiteOr(speed, 40));
50
+ const per = Math.max(1, Math.round(finiteOr(ticksPerGlyph, 4)));
51
+ let lockedCount = 0;
52
+ let tickCount = 0;
53
+ let timeout = 0;
54
+ const step = () => {
55
+ if (lockedCount >= glyphs.length)
56
+ return;
57
+ tickCount += 1;
58
+ if (tickCount % per === 0) {
59
+ lockedCount = Math.min(glyphs.length, lockedCount + 1);
60
+ setLocked(lockedCount);
61
+ }
62
+ setTick(tickCount);
63
+ timeout = window.setTimeout(step, ms);
64
+ };
65
+ timeout = window.setTimeout(step, ms);
66
+ return () => window.clearTimeout(timeout);
67
+ }, [glyphs.length, speed, staticMode, ticksPerGlyph]);
68
+ const display = glyphs
69
+ .map((glyph, index) => {
70
+ if (index < locked || /^\s+$/.test(glyph))
71
+ return glyph;
72
+ return pool[(index * 17 + tick * 31) % pool.length] ?? glyph;
73
+ })
74
+ .join("");
75
+ return (_jsxs("span", { ref: ref, "data-slot": "scramble-text", className: cn("inline font-mono", className), ...props, children: [_jsx("span", { className: "sr-only", children: children }), _jsx("span", { "aria-hidden": "true", children: staticMode ? children : display })] }));
76
+ }
77
+ ScrambleText.displayName = "ScrambleText";
78
+ //# sourceMappingURL=scramble-text.js.map
@@ -0,0 +1,13 @@
1
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2
+ import { type ComponentPropsWithoutRef } from "react";
3
+ export interface ScrollAreaProps extends ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {
4
+ /**
5
+ * Accessible name for the scrollable viewport. Supply this when the content
6
+ * warrants a distinct name (e.g. "Release notes"); the viewport is always
7
+ * keyboard-focusable so it can be scrolled with the arrow keys regardless.
8
+ */
9
+ "aria-label"?: string;
10
+ }
11
+ export declare const ScrollArea: import("react").ForwardRefExoticComponent<ScrollAreaProps & import("react").RefAttributes<HTMLDivElement>>;
12
+ export declare const ScrollBar: import("react").ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
13
+ //# sourceMappingURL=scroll-area.d.ts.map
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
4
+ import { forwardRef } from "react";
5
+ import { cn } from "../lib/cn.js";
6
+ export const ScrollArea = forwardRef(({ className, children, "aria-label": ariaLabel, ...props }, ref) => {
7
+ return (_jsxs(ScrollAreaPrimitive.Root, { ref: ref, "data-slot": "scroll-area", className: cn("relative overflow-hidden", className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { role: ariaLabel ? "region" : undefined, "aria-label": ariaLabel, tabIndex: 0, className: "size-full rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] }));
8
+ });
9
+ ScrollArea.displayName = "ScrollArea";
10
+ export const ScrollBar = forwardRef(({ className, orientation = "vertical", ...props }, ref) => {
11
+ return (_jsx(ScrollAreaPrimitive.ScrollAreaScrollbar, { ref: ref, "data-slot": "scroll-bar", orientation: orientation, className: cn("flex touch-none select-none transition-colors", orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-px", orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-px", className), ...props, children: _jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" }) }));
12
+ });
13
+ ScrollBar.displayName = "ScrollBar";
14
+ //# sourceMappingURL=scroll-area.js.map
@@ -0,0 +1,19 @@
1
+ import { type HTMLAttributes, type RefObject } from "react";
2
+ type ScrollProgressVariant = "bar" | "circle";
3
+ type ScrollProgressPosition = "top" | "bottom";
4
+ export interface ScrollProgressProps extends HTMLAttributes<HTMLDivElement> {
5
+ /** Render a thin horizontal bar or a circular ring. */
6
+ variant?: ScrollProgressVariant;
7
+ /**
8
+ * The scroll container to track. When omitted, the window / document scrolling
9
+ * element is tracked instead.
10
+ */
11
+ target?: RefObject<HTMLElement | null>;
12
+ /** Where to pin the bar variant (ignored for the circle). */
13
+ position?: ScrollProgressPosition;
14
+ /** Diameter of the ring in px (circle variant only). */
15
+ size?: number;
16
+ }
17
+ export declare const ScrollProgress: import("react").ForwardRefExoticComponent<ScrollProgressProps & import("react").RefAttributes<HTMLDivElement>>;
18
+ export {};
19
+ //# sourceMappingURL=scroll-progress.d.ts.map
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef, useEffect, useState } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ /**
6
+ * Clamp a raw scroll ratio to 0–1. A scroll container with no overflow
7
+ * (`scrollHeight === clientHeight`) has nothing to scroll, so it reports 0.
8
+ */
9
+ function ratioFor(scrollTop, scrollHeight, clientHeight) {
10
+ const scrollable = scrollHeight - clientHeight;
11
+ if (scrollable <= 0) {
12
+ return 0;
13
+ }
14
+ return Math.min(1, Math.max(0, scrollTop / scrollable));
15
+ }
16
+ export const ScrollProgress = forwardRef(({ className, variant = "bar", target, position = "top", size = 40, "aria-label": ariaLabel = "Scroll progress", ...props }, ref) => {
17
+ const [progress, setProgress] = useState(0);
18
+ useEffect(() => {
19
+ const element = target?.current ?? null;
20
+ // Track the supplied element, or the document scrolling element for the
21
+ // window-level case (scroll events still come from `window`).
22
+ const scrollSource = element ?? window;
23
+ const measure = () => {
24
+ if (element) {
25
+ setProgress(ratioFor(element.scrollTop, element.scrollHeight, element.clientHeight));
26
+ return;
27
+ }
28
+ const doc = document.documentElement;
29
+ setProgress(ratioFor(doc.scrollTop, doc.scrollHeight, doc.clientHeight));
30
+ };
31
+ // Measure on every scroll/resize. `setProgress` already bails out when the
32
+ // ratio is unchanged, so bursty events stay cheap without deferring the
33
+ // update off the event (which would race a synchronous read of the value).
34
+ const onScroll = () => measure();
35
+ measure();
36
+ scrollSource.addEventListener("scroll", onScroll, { passive: true });
37
+ window.addEventListener("resize", onScroll, { passive: true });
38
+ return () => {
39
+ scrollSource.removeEventListener("scroll", onScroll);
40
+ window.removeEventListener("resize", onScroll);
41
+ };
42
+ }, [target]);
43
+ const percent = Math.round(progress * 100);
44
+ const ariaProps = {
45
+ role: "progressbar",
46
+ "aria-valuemin": 0,
47
+ "aria-valuemax": 100,
48
+ "aria-valuenow": percent,
49
+ "aria-label": ariaLabel,
50
+ };
51
+ if (variant === "circle") {
52
+ // Inset the ring by half the stroke so it isn't clipped by the viewBox.
53
+ const strokeWidth = Math.max(2, Math.round(size * 0.1));
54
+ const radius = size / 2 - strokeWidth / 2;
55
+ const circumference = 2 * Math.PI * radius;
56
+ const dashOffset = circumference * (1 - progress);
57
+ return (_jsxs("div", { ref: ref, "data-slot": "scroll-progress", "data-variant": "circle", ...ariaProps, className: cn("relative inline-flex items-center justify-center", className), style: { width: size, height: size }, ...props, children: [_jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, fill: "none",
58
+ // Rotate so the ring fills clockwise from 12 o'clock.
59
+ className: "-rotate-90", "aria-hidden": "true", children: [_jsx("circle", { cx: size / 2, cy: size / 2, r: radius, strokeWidth: strokeWidth, className: "stroke-border" }), _jsx("circle", { "data-slot": "scroll-progress-ring", cx: size / 2, cy: size / 2, r: radius, strokeWidth: strokeWidth, strokeLinecap: "round", strokeDasharray: circumference, strokeDashoffset: dashOffset, className: "stroke-primary" })] }), _jsxs("span", { "data-slot": "scroll-progress-value", className: "absolute inset-0 flex items-center justify-center text-xs font-medium tabular-nums text-fg", children: [percent, "%"] })] }));
60
+ }
61
+ return (_jsx("div", { ref: ref, "data-slot": "scroll-progress", "data-variant": "bar", ...ariaProps, className: cn("h-1 w-full overflow-hidden bg-surface-inset",
62
+ // Pin to the viewport edge for the window-level case; consumers can
63
+ // override via className.
64
+ !target && "sticky inset-x-0 z-50", !target && (position === "bottom" ? "bottom-0" : "top-0"), className), ...props, children: _jsx("div", { "data-slot": "scroll-progress-fill", className: "h-full bg-primary", style: { width: `${progress * 100}%` } }) }));
65
+ });
66
+ ScrollProgress.displayName = "ScrollProgress";
67
+ //# sourceMappingURL=scroll-progress.js.map
@@ -0,0 +1,48 @@
1
+ import { type Transition } from "motion/react";
2
+ import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from "react";
3
+ type SegmentedControlSize = "sm" | "md";
4
+ export interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
5
+ /** Controlled selected value. When provided the component is fully controlled. */
6
+ value?: string;
7
+ /** Initial selected value for the uncontrolled case. */
8
+ defaultValue?: string;
9
+ /** Called whenever the selection should change (controlled or not). */
10
+ onValueChange?: (value: string) => void;
11
+ /** Density of the items. Defaults to `"md"`. */
12
+ size?: SegmentedControlSize;
13
+ /** Override the thumb spring (advanced — defaults to the Cronus thumb spring). */
14
+ transition?: Transition;
15
+ /**
16
+ * How `prefers-reduced-motion` is honoured. Defaults to `"user"` (snap the
17
+ * thumb for users who opt out). Pass `"never"` to always slide it — e.g. a
18
+ * showcase that must demonstrate it — or `"always"` to force the snap.
19
+ */
20
+ reducedMotion?: "user" | "always" | "never";
21
+ children?: ReactNode;
22
+ }
23
+ /**
24
+ * Root of the segmented control — a horizontal, single-select toggle with a
25
+ * sliding "thumb" behind the active option. Owns the selection (controlled or
26
+ * uncontrolled), provides the shared `layoutId` group id + roving-focus
27
+ * machinery through context, and renders the track container as a
28
+ * `role="radiogroup"`. Compose with {@link SegmentedControlItem}.
29
+ */
30
+ export declare const SegmentedControl: import("react").ForwardRefExoticComponent<SegmentedControlProps & import("react").RefAttributes<HTMLDivElement>>;
31
+ export interface SegmentedControlItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "value" | "onChange"> {
32
+ /** The value this option selects. Required and unique within a group. */
33
+ value: string;
34
+ /** Visible label (text and/or icon). */
35
+ children?: ReactNode;
36
+ /** Disable selection + skip in keyboard navigation. */
37
+ disabled?: boolean;
38
+ }
39
+ /**
40
+ * A single option in a {@link SegmentedControl}. Renders a `role="radio"`
41
+ * button; when active it hosts the shared `motion.div` thumb (an `absolute
42
+ * inset-0` raised pill) that slides between options via `layoutId`. The label
43
+ * is layered above the thumb with `relative z-10`. Roving focus + radiogroup
44
+ * keyboard semantics are handled by the root.
45
+ */
46
+ export declare const SegmentedControlItem: import("react").ForwardRefExoticComponent<SegmentedControlItemProps & import("react").RefAttributes<HTMLButtonElement>>;
47
+ export {};
48
+ //# sourceMappingURL=segmented-control.d.ts.map