@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,80 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { X } from "lucide-react";
5
+ import { AnimatePresence, motion, useReducedMotion } from "motion/react";
6
+ import { forwardRef, useCallback, useState } from "react";
7
+ import { cn } from "../lib/cn.js";
8
+ import { Button } from "./button.js";
9
+ /**
10
+ * Dismissible announcement / promo bar — a full-width horizontal strip pinned
11
+ * to the top of a page or section (the "Top Banner" of a billing SDK). Renders
12
+ * an optional leading icon, the message (a `title` + optional `description`, or
13
+ * free-form `children`), an optional right-aligned `action` (a CTA Button or
14
+ * link), and — when `dismissible` — a trailing close button.
15
+ *
16
+ * Colour strategy mirrors {@link Alert}: semantic variants tint the surface
17
+ * wash + border + icon while the body text stays on `fg`/`fg-secondary` (which
18
+ * meet AA against every surface), so contrast is safe across themes/modes
19
+ * without low-chroma coloured body text. The `brand` variant is the exception:
20
+ * it's a solid `bg-primary` promo fill carrying `primary-foreground` text, and
21
+ * everything inside (icon, action, close) inherits that foreground.
22
+ */
23
+ const bannerVariants = cva("flex w-full items-center gap-x-3 gap-y-1 border-b px-4 py-2.5 text-sm [&>svg]:size-5 [&>svg]:shrink-0", {
24
+ variants: {
25
+ variant: {
26
+ default: "bg-surface-overlay text-fg border-border [&>svg]:text-fg-secondary",
27
+ // Solid primary promo fill; icon/action/close inherit the foreground.
28
+ brand: "bg-primary text-primary-foreground border-transparent [&>svg]:text-primary-foreground",
29
+ info: "bg-info/10 text-fg border-info/30 [&>svg]:text-info",
30
+ success: "bg-success/10 text-fg border-success/30 [&>svg]:text-success",
31
+ warning: "bg-warning/10 text-fg border-warning/30 [&>svg]:text-warning",
32
+ error: "bg-error/10 text-fg border-error/30 [&>svg]:text-error",
33
+ },
34
+ align: {
35
+ start: "text-left",
36
+ // Centre the message block; the action + close are still pinned to the
37
+ // far right via `ml-auto`, so "centre" balances the message in the gap.
38
+ center: "text-center",
39
+ },
40
+ },
41
+ defaultVariants: { variant: "default", align: "center" },
42
+ });
43
+ /**
44
+ * Collapse + fade used on dismiss. Honours `prefers-reduced-motion`: opted-out
45
+ * users get an instant unmount (the variant resolves to a no-op below).
46
+ */
47
+ const COLLAPSE = {
48
+ initial: { opacity: 0, height: 0 },
49
+ animate: { opacity: 1, height: "auto" },
50
+ exit: { opacity: 0, height: 0 },
51
+ };
52
+ export const Banner = forwardRef(({ className, variant, align, title, description, icon, action, dismissible = true, onDismiss, open: openProp, defaultOpen = true, label = "Announcement", children, ...props }, ref) => {
53
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
54
+ const isControlled = openProp !== undefined;
55
+ const isOpen = isControlled ? openProp : uncontrolledOpen;
56
+ const prefersReducedMotion = useReducedMotion();
57
+ const handleDismiss = useCallback(() => {
58
+ if (!isControlled) {
59
+ setUncontrolledOpen(false);
60
+ }
61
+ onDismiss?.();
62
+ }, [isControlled, onDismiss]);
63
+ // Brand fill wants action/close on the primary foreground; tinted variants
64
+ // keep the muted-foreground treatment from the shared Button styles.
65
+ const onBrand = variant === "brand";
66
+ return (_jsx(AnimatePresence, { initial: false, children: isOpen ? (_jsx(motion.div
67
+ // The collapse wrapper owns overflow so the height tween clips cleanly;
68
+ // the visual bar (border/padding/colour) lives on the inner element.
69
+ , {
70
+ // The collapse wrapper owns overflow so the height tween clips cleanly;
71
+ // the visual bar (border/padding/colour) lives on the inner element.
72
+ initial: prefersReducedMotion ? false : COLLAPSE.initial, animate: prefersReducedMotion ? undefined : COLLAPSE.animate, exit: prefersReducedMotion ? undefined : COLLAPSE.exit, transition: { duration: 0.2, ease: [0.16, 1, 0.3, 1] }, className: "overflow-hidden", children: _jsxs("section", { ref: ref, "aria-label": label, "data-slot": "banner", className: cn(bannerVariants({ variant, align }), className), ...props, children: [icon, _jsxs("div", { "data-slot": "banner-content", className: cn("flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-0.5", align === "center" && "justify-center"), children: [title ? (_jsx("span", { "data-slot": "banner-title", className: "font-medium", children: title })) : null, description ? (_jsx("span", { "data-slot": "banner-description", className: cn(onBrand ? "text-primary-foreground/85" : "text-fg-secondary"), children: description })) : null, children] }), action ? (_jsx("div", { "data-slot": "banner-action", className: "ml-auto flex shrink-0 items-center gap-2", children: action })) : null, dismissible ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", "aria-label": "Dismiss", "data-slot": "banner-dismiss", onClick: handleDismiss, className: cn("shrink-0",
73
+ // Without an `action`, the close button absorbs the auto margin
74
+ // so it still sits flush right.
75
+ !action && "ml-auto", onBrand &&
76
+ "text-primary-foreground hover:bg-primary-foreground/15 hover:text-primary-foreground"), children: _jsx(X, { "aria-hidden": "true" }) })) : null] }) })) : null }));
77
+ });
78
+ Banner.displayName = "Banner";
79
+ export { bannerVariants };
80
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1,11 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import { type ChartSeries } from "./chart.js";
3
+ export interface BarChartProps extends HTMLAttributes<HTMLDivElement> {
4
+ data: Record<string, unknown>[];
5
+ xKey?: string;
6
+ series: ChartSeries[];
7
+ stacked?: boolean;
8
+ formatValue?: (value: number, name: string) => string;
9
+ }
10
+ export declare function BarChart({ data, xKey, series, stacked, formatValue, className, ...props }: BarChartProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=bar-chart.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Bar, CartesianGrid, BarChart as RechartsBarChart, XAxis } from "recharts";
3
+ import { cn } from "../lib/cn.js";
4
+ import { ChartContainer, ChartCursor, ChartTooltip, ChartTooltipContent, chartSeriesConfig, } from "./chart.js";
5
+ export function BarChart({ data, xKey = "month", series, stacked = false, formatValue, className, ...props }) {
6
+ const config = chartSeriesConfig(series);
7
+ return (_jsx("div", { "data-slot": "bar-chart", className: cn("h-64 w-full", className), ...props, children: _jsx(ChartContainer, { config: config, className: "h-full w-full", children: _jsxs(RechartsBarChart, { accessibilityLayer: true, data: data, margin: { left: 8, right: 8, top: 8 }, children: [_jsx(CartesianGrid, { vertical: false, strokeDasharray: "4 4" }), _jsx(XAxis, { dataKey: xKey, tickLine: false, axisLine: false, tickMargin: 12 }), _jsx(ChartTooltip, { cursor: _jsx(ChartCursor, { labelKey: xKey }), content: _jsx(ChartTooltipContent, { formatValue: formatValue }) }), series.map((item) => (_jsx(Bar, { dataKey: item.key, fill: `var(--color-${item.key})`, radius: 4, stackId: stacked ? "stack" : undefined, animationDuration: 1100 }, item.key)))] }) }) }));
8
+ }
9
+ //# sourceMappingURL=bar-chart.js.map
@@ -0,0 +1,45 @@
1
+ import { type HTMLAttributes } from "react";
2
+ export interface BorderBeamProps extends HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Length of the luminous head, in pixels. Also sets the corner radius of the
5
+ * travel path so the beam rounds the corners smoothly. Larger values read as a
6
+ * longer comet trail. Defaults to `60`.
7
+ */
8
+ size?: number;
9
+ /** Seconds for one full lap around the perimeter. Defaults to `8` (a calm, premium drift). */
10
+ duration?: number;
11
+ /**
12
+ * Phase offset in seconds — the beam starts as if it had already been running
13
+ * for this long, so two beams on stacked cards can be staggered around the
14
+ * loop instead of moving in lockstep. Defaults to `0`.
15
+ */
16
+ delay?: number;
17
+ /** Colour of the leading edge of the beam. Defaults to `var(--cronus-fg)`. */
18
+ colorFrom?: string;
19
+ /** Colour the trail fades through before it dissolves. Defaults to transparent. */
20
+ colorTo?: string;
21
+ /** Thickness of the border band the beam rides in, in pixels. Defaults to `1` (hairline). */
22
+ borderWidth?: number;
23
+ /** Travel counter-clockwise instead of clockwise. Defaults to `false`. */
24
+ reverse?: boolean;
25
+ }
26
+ /**
27
+ * A single bright light head that continuously orbits the element's border, like
28
+ * a comet tracing the perimeter of a card or CTA. The head rides the border via
29
+ * CSS Motion Path (`offset-path`/`offset-distance`) and is clipped to a thin
30
+ * border band with a two-layer mask, so it reads as a beam *on* the border rather
31
+ * than a dot floating on the edge. This is distinct from the static
32
+ * `GradientBorder`: nothing is painted until the beam sweeps past, giving a live,
33
+ * premium shimmer.
34
+ *
35
+ * **Performance:** the whole effect is one composited CSS animation on
36
+ * `offset-distance` (hinted with `will-change`) — no JS, no timers, no re-renders;
37
+ * every knob (size, duration, delay, colours, thickness) rides a CSS variable.
38
+ *
39
+ * **Accessibility & motion:** the beam layer is purely decorative
40
+ * (`aria-hidden`), sits behind the content, and is fully suppressed under
41
+ * `prefers-reduced-motion: reduce` (`motion-reduce:hidden`) — it carries no
42
+ * information, so reduced-motion visitors simply see the card with no animation.
43
+ */
44
+ export declare const BorderBeam: import("react").ForwardRefExoticComponent<BorderBeamProps & import("react").RefAttributes<HTMLDivElement>>;
45
+ //# sourceMappingURL=border-beam.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ // Two-layer mask: layer 1 (clipped to padding-box) hides, layer 2 (clipped to
5
+ // border-box) shows; `mask-composite: intersect` leaves only the border band, so
6
+ // the comet is visible strictly along the perimeter and never over the content.
7
+ const BEAM_MASK_IMAGE = "linear-gradient(transparent, transparent), linear-gradient(#000, #000)";
8
+ /**
9
+ * A single bright light head that continuously orbits the element's border, like
10
+ * a comet tracing the perimeter of a card or CTA. The head rides the border via
11
+ * CSS Motion Path (`offset-path`/`offset-distance`) and is clipped to a thin
12
+ * border band with a two-layer mask, so it reads as a beam *on* the border rather
13
+ * than a dot floating on the edge. This is distinct from the static
14
+ * `GradientBorder`: nothing is painted until the beam sweeps past, giving a live,
15
+ * premium shimmer.
16
+ *
17
+ * **Performance:** the whole effect is one composited CSS animation on
18
+ * `offset-distance` (hinted with `will-change`) — no JS, no timers, no re-renders;
19
+ * every knob (size, duration, delay, colours, thickness) rides a CSS variable.
20
+ *
21
+ * **Accessibility & motion:** the beam layer is purely decorative
22
+ * (`aria-hidden`), sits behind the content, and is fully suppressed under
23
+ * `prefers-reduced-motion: reduce` (`motion-reduce:hidden`) — it carries no
24
+ * information, so reduced-motion visitors simply see the card with no animation.
25
+ */
26
+ export const BorderBeam = forwardRef(({ className, children, size = 60, duration = 8, delay = 0, colorFrom = "var(--cronus-fg)", colorTo = "transparent", borderWidth = 1, reverse = false, style, ...props }, ref) => {
27
+ const beamStyle = {
28
+ "--beam-size": `${size}px`,
29
+ "--beam-duration": `${duration}s`,
30
+ // Negative delay offsets the phase without an initial pause, so staggered
31
+ // beams are already mid-lap on first paint.
32
+ "--beam-delay": `${-delay}s`,
33
+ "--beam-border-width": `${borderWidth}px`,
34
+ "--beam-color-from": colorFrom,
35
+ "--beam-color-to": colorTo,
36
+ };
37
+ return (_jsxs("div", { ref: ref, "data-slot": "border-beam", className: cn("relative rounded-2xl", className), style: { ...beamStyle, ...style }, ...props, children: [_jsxs("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 rounded-[inherit] motion-reduce:hidden", style: {
38
+ border: "var(--beam-border-width) solid transparent",
39
+ maskClip: "padding-box, border-box",
40
+ maskComposite: "intersect",
41
+ maskImage: BEAM_MASK_IMAGE,
42
+ WebkitMaskImage: BEAM_MASK_IMAGE,
43
+ }, children: [_jsx("style", { children: "@keyframes cronus-border-beam{from{offset-distance:0%}to{offset-distance:100%}}" }), _jsx("div", { className: cn("absolute aspect-square w-[var(--beam-size)]", "[offset-path:rect(0_auto_auto_0_round_var(--beam-size))]", "[animation-name:cronus-border-beam] [animation-duration:var(--beam-duration)]", "[animation-timing-function:linear] [animation-iteration-count:infinite]", "[animation-delay:var(--beam-delay)] [will-change:offset-distance]", reverse && "[animation-direction:reverse]"), style: {
44
+ background: "linear-gradient(to left, var(--beam-color-from), var(--beam-color-to), transparent)",
45
+ } })] }), _jsx("div", { className: "relative", children: children })] }));
46
+ });
47
+ BorderBeam.displayName = "BorderBeam";
48
+ //# sourceMappingURL=border-beam.js.map
@@ -0,0 +1,12 @@
1
+ import { type AnchorHTMLAttributes, type HTMLAttributes, type LiHTMLAttributes, type OlHTMLAttributes } from "react";
2
+ export declare const Breadcrumb: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement>>;
3
+ export declare const BreadcrumbList: import("react").ForwardRefExoticComponent<OlHTMLAttributes<HTMLOListElement> & import("react").RefAttributes<HTMLOListElement>>;
4
+ export declare const BreadcrumbItem: import("react").ForwardRefExoticComponent<LiHTMLAttributes<HTMLLIElement> & import("react").RefAttributes<HTMLLIElement>>;
5
+ export interface BreadcrumbLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
6
+ asChild?: boolean;
7
+ }
8
+ export declare const BreadcrumbLink: import("react").ForwardRefExoticComponent<BreadcrumbLinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
9
+ export declare const BreadcrumbPage: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & import("react").RefAttributes<HTMLSpanElement>>;
10
+ export declare const BreadcrumbSeparator: import("react").ForwardRefExoticComponent<LiHTMLAttributes<HTMLLIElement> & import("react").RefAttributes<HTMLLIElement>>;
11
+ export declare const BreadcrumbEllipsis: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & import("react").RefAttributes<HTMLSpanElement>>;
12
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { ChevronRight, MoreHorizontal } from "lucide-react";
4
+ import { forwardRef, } from "react";
5
+ import { cn } from "../lib/cn.js";
6
+ export const Breadcrumb = forwardRef(({ ...props }, ref) => {
7
+ return _jsx("nav", { ref: ref, "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
8
+ });
9
+ Breadcrumb.displayName = "Breadcrumb";
10
+ export const BreadcrumbList = forwardRef(({ className, ...props }, ref) => {
11
+ return (_jsx("ol", { ref: ref, "data-slot": "breadcrumb-list", className: cn("flex flex-wrap items-center gap-1.5 text-sm text-fg-tertiary", className), ...props }));
12
+ });
13
+ BreadcrumbList.displayName = "BreadcrumbList";
14
+ export const BreadcrumbItem = forwardRef(({ className, ...props }, ref) => {
15
+ return (_jsx("li", { ref: ref, "data-slot": "breadcrumb-item", className: cn("inline-flex items-center gap-1.5", className), ...props }));
16
+ });
17
+ BreadcrumbItem.displayName = "BreadcrumbItem";
18
+ export const BreadcrumbLink = forwardRef(({ className, asChild = false, ...props }, ref) => {
19
+ const Comp = asChild ? Slot : "a";
20
+ return (_jsx(Comp, { ref: ref, "data-slot": "breadcrumb-link", className: cn("transition-colors hover:text-fg", className), ...props }));
21
+ });
22
+ BreadcrumbLink.displayName = "BreadcrumbLink";
23
+ export const BreadcrumbPage = forwardRef(({ className, ...props }, ref) => {
24
+ return (_jsx("span", { ref: ref, "aria-current": "page", "data-slot": "breadcrumb-page", className: cn("font-normal text-fg", className), ...props }));
25
+ });
26
+ BreadcrumbPage.displayName = "BreadcrumbPage";
27
+ export const BreadcrumbSeparator = forwardRef(({ className, children, ...props }, ref) => {
28
+ return (_jsx("li", { ref: ref, role: "presentation", "aria-hidden": "true", "data-slot": "breadcrumb-separator", className: cn("[&_svg]:size-3.5", className), ...props, children: children ?? _jsx(ChevronRight, {}) }));
29
+ });
30
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
31
+ export const BreadcrumbEllipsis = forwardRef(({ className, ...props }, ref) => {
32
+ return (_jsxs("span", { ref: ref, role: "presentation", "aria-hidden": "true", "data-slot": "breadcrumb-ellipsis", className: cn("flex items-center justify-center", className), ...props, children: [_jsx(MoreHorizontal, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "More" })] }));
33
+ });
34
+ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
35
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1,7 @@
1
+ import { type HTMLAttributes } from "react";
2
+ export interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
3
+ /** Layout direction of the grouped buttons. */
4
+ orientation?: "horizontal" | "vertical";
5
+ }
6
+ export declare const ButtonGroup: import("react").ForwardRefExoticComponent<ButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>;
7
+ //# sourceMappingURL=button-group.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ export const ButtonGroup = forwardRef(({ className, orientation = "horizontal", ...props }, ref) => {
5
+ return (_jsx("div", { ref: ref, role: "group", "data-slot": "button-group", "data-orientation": orientation, className: cn("inline-flex", orientation === "horizontal"
6
+ ? "flex-row [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none [&>*:not(:first-child)]:-ml-px"
7
+ : "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none [&>*:not(:first-child)]:-mt-px", "[&>*:focus-visible]:relative [&>*:focus-visible]:z-10", className), ...props }));
8
+ });
9
+ ButtonGroup.displayName = "ButtonGroup";
10
+ //# sourceMappingURL=button-group.js.map
@@ -0,0 +1,12 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type ButtonHTMLAttributes } from "react";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "destructive" | "primary" | "secondary" | "outline" | "ghost" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | "icon" | "icon-sm" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ }
10
+ export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
11
+ export { buttonVariants };
12
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { cva } from "class-variance-authority";
4
+ import { forwardRef } from "react";
5
+ import { cn } from "../lib/cn.js";
6
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-[background,border-color,box-shadow,transform,opacity] duration-150 ease-[var(--ease-out-quart)] outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base disabled:opacity-50 disabled:pointer-events-none active:scale-[0.98] [&_svg]:shrink-0 [&_svg]:pointer-events-none", {
7
+ variants: {
8
+ variant: {
9
+ primary: "bg-primary text-primary-foreground shadow-xs hover:opacity-90",
10
+ secondary: "bg-surface-overlay text-fg border border-border hover:border-border-strong",
11
+ outline: "border border-border bg-transparent text-fg shadow-xs hover:bg-surface-overlay",
12
+ ghost: "text-fg-secondary hover:bg-surface-overlay hover:text-fg",
13
+ // `text-white` on the raw `error` token fails AA (≥4.5:1) in every dark
14
+ // theme (error is a light rose ~3.7:1). Darkening the surface toward
15
+ // black lifts every theme/mode above 4.5:1 (min 6.63:1) while staying
16
+ // theme-relative.
17
+ destructive: "bg-[color-mix(in_oklch,var(--cronus-error),black_30%)] text-white hover:opacity-90 shadow-xs",
18
+ // `text-primary-strong` (not `text-primary`): a link is small body text,
19
+ // and the raw brand primary reads <4.5:1 on surface-base in the bright
20
+ // light themes; the -strong variant is the AA-tuned same-hue text color.
21
+ link: "text-primary-strong underline-offset-4 hover:underline",
22
+ },
23
+ size: {
24
+ sm: "h-8 gap-1.5 px-3 text-xs [&_svg]:size-3.5",
25
+ md: "h-10 px-4 [&_svg]:size-4",
26
+ lg: "h-11 px-6 text-base [&_svg]:size-4",
27
+ icon: "size-9 [&_svg]:size-4",
28
+ "icon-sm": "size-8 [&_svg]:size-3.5",
29
+ },
30
+ },
31
+ defaultVariants: { variant: "primary", size: "md" },
32
+ });
33
+ export const Button = forwardRef(({ className, variant, size, asChild = false, type, ...props }, ref) => {
34
+ const Comp = asChild ? Slot : "button";
35
+ return (_jsx(Comp, { ref: ref, "data-slot": "button", "data-variant": variant ?? "primary", type: asChild ? undefined : (type ?? "button"), className: cn(buttonVariants({ variant, size }), className), ...props }));
36
+ });
37
+ Button.displayName = "Button";
38
+ export { buttonVariants };
39
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1,7 @@
1
+ import { DayPicker } from "react-day-picker";
2
+ export type CalendarProps = React.ComponentProps<typeof DayPicker>;
3
+ export declare function Calendar({ className, classNames, components, showOutsideDays, ...props }: CalendarProps): import("react").JSX.Element;
4
+ export declare namespace Calendar {
5
+ var displayName: string;
6
+ }
7
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { ChevronDown, ChevronLeft, ChevronRight, ChevronUp } from "lucide-react";
4
+ import { DayButton, DayPicker } from "react-day-picker";
5
+ import { cn } from "../lib/cn.js";
6
+ import { buttonVariants } from "./button.js";
7
+ /** Navigation (and dropdown) chevron, sized to match the v8 icons. */
8
+ function CalendarChevron({ orientation = "left" }) {
9
+ const Icon = {
10
+ up: ChevronUp,
11
+ down: ChevronDown,
12
+ left: ChevronLeft,
13
+ right: ChevronRight,
14
+ }[orientation];
15
+ return _jsx(Icon, { className: "size-4" });
16
+ }
17
+ /**
18
+ * react-day-picker v9+ hangs the selection/flag modifiers on the grid cell
19
+ * (`td`) instead of the day button, while our ghost-variant button paints its
20
+ * own text colour on top. To keep the established look (rounded primary chip
21
+ * for selected days, muted outside/disabled days) the modifier styling is
22
+ * re-applied on the button itself, where `cn` resolves conflicts
23
+ * deterministically.
24
+ */
25
+ function CalendarDayButton({ className, ...props }) {
26
+ const { modifiers } = props;
27
+ return (_jsx(DayButton, { ...props, className: cn(className, modifiers.today && "bg-surface-overlay text-fg", modifiers.outside && "day-outside text-fg-muted", modifiers.disabled && "text-fg-muted opacity-60",
28
+ // Range middles stay transparent so the cell's overlay strip shows.
29
+ modifiers.range_middle && "bg-transparent text-fg opacity-100 hover:bg-transparent", modifiers.selected &&
30
+ !modifiers.range_middle &&
31
+ "bg-primary text-primary-foreground opacity-100 hover:bg-primary") }));
32
+ }
33
+ export function Calendar({ className, classNames, components, showOutsideDays = true, ...props }) {
34
+ return (_jsx(DayPicker
35
+ // react-day-picker DayPickerProps does not extend HTMLAttributes, so the
36
+ // data-slot marker rides on the "calendar" class rather than a typed attribute.
37
+ , {
38
+ // react-day-picker DayPickerProps does not extend HTMLAttributes, so the
39
+ // data-slot marker rides on the "calendar" class rather than a typed attribute.
40
+ showOutsideDays: showOutsideDays, className: cn("calendar p-3", className), classNames: {
41
+ months: "relative flex flex-col sm:flex-row gap-4",
42
+ month: "flex flex-col gap-4",
43
+ month_caption: "flex justify-center pt-1 relative items-center",
44
+ caption_label: "text-sm font-medium text-fg",
45
+ // v9+ wraps both buttons in a single <nav>; it overlays the caption row
46
+ // (out of flow) so the buttons keep their absolute logical offsets.
47
+ nav: "absolute inset-x-0 top-0 flex items-center gap-1",
48
+ // Logical (start/end) utilities so nav buttons and range rounding
49
+ // follow the writing direction under dir="rtl".
50
+ button_previous: cn(buttonVariants({ variant: "outline" }), "size-7 p-0 opacity-60 hover:opacity-100 absolute start-1 top-0"),
51
+ button_next: cn(buttonVariants({ variant: "outline" }), "size-7 p-0 opacity-60 hover:opacity-100 absolute end-1 top-0"),
52
+ month_grid: "w-full border-collapse space-y-1",
53
+ weekdays: "flex",
54
+ weekday: "text-fg-tertiary rounded-md w-9 font-normal text-xs",
55
+ week: "flex w-full mt-2",
56
+ // The cell itself now carries `aria-selected`/`data-*` state (the v8
57
+ // :has() hooks are gone), so the range strip + rounding read those.
58
+ day: "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 aria-selected:bg-surface-overlay data-outside:aria-selected:bg-surface-overlay/50 first:aria-selected:rounded-s-md last:aria-selected:rounded-e-md",
59
+ day_button: cn(buttonVariants({ variant: "ghost" }), "size-9 p-0 font-normal"),
60
+ range_start: "day-range-start",
61
+ range_end: "day-range-end rounded-e-md",
62
+ hidden: "invisible",
63
+ ...classNames,
64
+ }, components: {
65
+ Chevron: CalendarChevron,
66
+ DayButton: CalendarDayButton,
67
+ ...components,
68
+ }, ...props }));
69
+ }
70
+ Calendar.displayName = "Calendar";
71
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1,13 @@
1
+ import type { HTMLAttributes } from "react";
2
+ export interface CandlestickPoint {
3
+ date: string;
4
+ open: number;
5
+ high: number;
6
+ low: number;
7
+ close: number;
8
+ }
9
+ export interface CandlestickChartProps extends HTMLAttributes<HTMLDivElement> {
10
+ data: CandlestickPoint[];
11
+ }
12
+ export declare function CandlestickChart({ data, className, ...props }: CandlestickChartProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=candlestick-chart.d.ts.map
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { CartesianGrid, ComposedChart, Scatter, usePlotArea, useXAxisScale, useYAxisScale, XAxis, YAxis, } from "recharts";
4
+ import { cn } from "../lib/cn.js";
5
+ import { ChartContainer, ChartCursor, ChartTooltip, ChartTooltipContent } from "./chart.js";
6
+ function ohlcDomain(data) {
7
+ const first = data[0];
8
+ if (!first)
9
+ return [0, 1];
10
+ let min = first.low;
11
+ let max = first.high;
12
+ for (const point of data) {
13
+ if (point.low < min)
14
+ min = point.low;
15
+ if (point.high > max)
16
+ max = point.high;
17
+ }
18
+ const pad = Math.max(2, (max - min) * 0.08);
19
+ return [min - pad, max + pad];
20
+ }
21
+ /** Recharts 3 calls Scatter `shape` as a function, so this cannot use hooks. */
22
+ function CandleHit({ cx, cy }) {
23
+ if (cx == null || cy == null)
24
+ return null;
25
+ return _jsx("rect", { x: cx - 8, y: cy - 24, width: 16, height: 48, fill: "transparent" });
26
+ }
27
+ function CloseTooltip(props) {
28
+ return (_jsx(ChartTooltipContent, { ...props, payload: props.payload?.filter((item) => String(item.dataKey) === "close") }));
29
+ }
30
+ function CandleMarks({ data }) {
31
+ const xScale = useXAxisScale();
32
+ const yScale = useYAxisScale();
33
+ const plot = usePlotArea();
34
+ if (!xScale || !yScale || data.length === 0)
35
+ return null;
36
+ const step = plot && data.length > 0 ? plot.width / data.length : 16;
37
+ const bodyW = Math.max(4, Math.min(12, step * 0.5));
38
+ return (_jsx("g", { "data-slot": "candlestick-marks", children: data.map((point) => {
39
+ const cx = xScale(point.date, { position: "middle" });
40
+ const yHigh = yScale(point.high);
41
+ const yLow = yScale(point.low);
42
+ const yOpen = yScale(point.open);
43
+ const yClose = yScale(point.close);
44
+ if (cx == null ||
45
+ yHigh == null ||
46
+ yLow == null ||
47
+ yOpen == null ||
48
+ yClose == null ||
49
+ !Number.isFinite(cx) ||
50
+ !Number.isFinite(yHigh) ||
51
+ !Number.isFinite(yLow) ||
52
+ !Number.isFinite(yOpen) ||
53
+ !Number.isFinite(yClose)) {
54
+ return null;
55
+ }
56
+ const up = point.close >= point.open;
57
+ const color = up ? "var(--cronus-success)" : "var(--cronus-error)";
58
+ const bodyTop = Math.min(yOpen, yClose);
59
+ const bodyH = Math.max(2, Math.abs(yClose - yOpen));
60
+ return (_jsxs("g", { children: [_jsx("line", { x1: cx, x2: cx, y1: yHigh, y2: yLow, stroke: color, strokeWidth: 1 }), _jsx("rect", { x: cx - bodyW / 2, y: bodyTop, width: bodyW, height: bodyH, fill: color, rx: 1 })] }, point.date));
61
+ }) }));
62
+ }
63
+ export function CandlestickChart({ data, className, ...props }) {
64
+ return (_jsx("div", { "data-slot": "candlestick-chart", className: cn("h-64 w-full", className), ...props, children: _jsx(ChartContainer, { config: { close: { label: "Close", color: "var(--cronus-chart-1)" } }, className: "h-full w-full", children: _jsxs(ComposedChart, { data: data, margin: { left: 8, right: 8, top: 8 }, children: [_jsx(CartesianGrid, { vertical: false, strokeDasharray: "4 4" }), _jsx(XAxis, { dataKey: "date", tickLine: false, axisLine: false, tickMargin: 12, minTickGap: 24 }), _jsx(YAxis, { hide: true, domain: ohlcDomain(data) }), _jsx(ChartTooltip, { cursor: _jsx(ChartCursor, { labelKey: "date", showAxisLabel: false }), content: _jsx(CloseTooltip, {}) }), _jsx(Scatter, { dataKey: "close", shape: CandleHit, legendType: "none", isAnimationActive: false }), _jsx(CandleMarks, { data: data })] }) }) }));
65
+ }
66
+ //# sourceMappingURL=candlestick-chart.js.map
@@ -0,0 +1,28 @@
1
+ import { type HTMLAttributes, type ReactNode, type Ref } from "react";
2
+ export interface CardStackItem {
3
+ /** Stable identity used as the React key and the accessible name fallback. */
4
+ id: string;
5
+ /** Visible card body. */
6
+ content: ReactNode;
7
+ }
8
+ export interface CardStackProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
9
+ ref?: Ref<HTMLElement>;
10
+ items: CardStackItem[];
11
+ /**
12
+ * Accessible name for the stack. Defaults to `"Card stack"`.
13
+ */
14
+ labels?: {
15
+ region?: string;
16
+ next?: string;
17
+ };
18
+ }
19
+ /**
20
+ * A fanned stack of cards. Click or press ArrowRight / Space on the front
21
+ * card to cycle it to the back. Reduced-motion visitors keep the same
22
+ * stacking, without the slide.
23
+ */
24
+ export declare function CardStack({ ref, className, items, labels, ...props }: CardStackProps): import("react").JSX.Element;
25
+ export declare namespace CardStack {
26
+ var displayName: string;
27
+ }
28
+ //# sourceMappingURL=card-stack.d.ts.map
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { motion, useReducedMotion } from "motion/react";
4
+ import { useCallback, useId, useState, } from "react";
5
+ import { cn } from "../lib/cn.js";
6
+ /**
7
+ * A fanned stack of cards. Click or press ArrowRight / Space on the front
8
+ * card to cycle it to the back. Reduced-motion visitors keep the same
9
+ * stacking, without the slide.
10
+ */
11
+ export function CardStack({ ref, className, items, labels, ...props }) {
12
+ const reduce = !!useReducedMotion();
13
+ const labelId = useId();
14
+ const [order, setOrder] = useState(() => items.map((item) => item.id));
15
+ const regionLabel = labels?.region ?? "Card stack";
16
+ const nextLabel = labels?.next ?? "Show next card";
17
+ const cycle = useCallback(() => {
18
+ setOrder((current) => {
19
+ if (current.length < 2)
20
+ return current;
21
+ const [first, ...rest] = current;
22
+ return first === undefined ? current : [...rest, first];
23
+ });
24
+ }, []);
25
+ const onKeyDown = useCallback((event) => {
26
+ if (event.key === "Enter" || event.key === " " || event.key === "ArrowRight") {
27
+ event.preventDefault();
28
+ cycle();
29
+ }
30
+ }, [cycle]);
31
+ const lookup = new Map(items.map((item) => [item.id, item]));
32
+ const visible = order
33
+ .map((id) => lookup.get(id))
34
+ .filter((item) => item !== undefined);
35
+ return (_jsxs("section", { ref: ref, "data-slot": "card-stack", "aria-labelledby": labelId, className: cn("relative isolate h-56 w-full max-w-sm", className), ...props, children: [_jsx("span", { id: labelId, className: "sr-only", children: regionLabel }), visible.map((item, index) => {
36
+ const isFront = index === 0;
37
+ const depth = Math.min(index, 3);
38
+ return (_jsx(motion.div, { "data-slot": "card-stack-item", layout: !reduce, role: isFront ? "button" : undefined, tabIndex: isFront ? 0 : -1, "aria-label": isFront ? nextLabel : undefined, "aria-hidden": isFront ? undefined : true, className: cn("absolute inset-0 rounded-2xl border border-border bg-surface-raised p-5 shadow-sm outline-none", isFront &&
39
+ "z-10 cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base"), style: {
40
+ translate: `${depth * 10}px ${depth * 10}px`,
41
+ zIndex: visible.length - index,
42
+ transformOrigin: "top center",
43
+ }, animate: reduce ? undefined : { scale: 1 - depth * 0.04, rotate: isFront ? 0 : depth * -1.5 }, transition: { type: "spring", stiffness: 260, damping: 26 }, onClick: isFront ? cycle : undefined, onKeyDown: isFront ? onKeyDown : undefined, children: item.content }, item.id));
44
+ })] }));
45
+ }
46
+ CardStack.displayName = "CardStack";
47
+ //# sourceMappingURL=card-stack.js.map
@@ -0,0 +1,9 @@
1
+ import { type HTMLAttributes } from "react";
2
+ export declare const Card: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
3
+ export declare const CardHeader: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
4
+ export declare const CardTitle: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
5
+ export declare const CardDescription: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
6
+ export declare const CardAction: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
7
+ export declare const CardContent: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
8
+ export declare const CardFooter: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
9
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ export const Card = forwardRef(({ className, ...props }, ref) => {
5
+ return (_jsx("div", { ref: ref, "data-slot": "card", className: cn("flex w-full min-w-0 flex-col gap-6 rounded-xl border border-border bg-surface-raised py-6 text-fg shadow-sm", className), ...props }));
6
+ });
7
+ Card.displayName = "Card";
8
+ export const CardHeader = forwardRef(({ className, ...props }, ref) => {
9
+ return (_jsx("div", { ref: ref, "data-slot": "card-header", className: cn("grid min-w-0 auto-rows-min grid-cols-[minmax(0,1fr)_auto] items-start gap-1.5 px-4 sm:px-6", className), ...props }));
10
+ });
11
+ CardHeader.displayName = "CardHeader";
12
+ export const CardTitle = forwardRef(({ className, ...props }, ref) => {
13
+ return (_jsx("div", { ref: ref, "data-slot": "card-title", className: cn("min-w-0 break-words font-display font-semibold leading-none text-fg", className), ...props }));
14
+ });
15
+ CardTitle.displayName = "CardTitle";
16
+ export const CardDescription = forwardRef(({ className, ...props }, ref) => {
17
+ return (_jsx("div", { ref: ref, "data-slot": "card-description", className: cn("col-span-full text-sm text-fg-secondary", className), ...props }));
18
+ });
19
+ CardDescription.displayName = "CardDescription";
20
+ export const CardAction = forwardRef(({ className, ...props }, ref) => {
21
+ return (_jsx("div", { ref: ref, "data-slot": "card-action", className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className), ...props }));
22
+ });
23
+ CardAction.displayName = "CardAction";
24
+ export const CardContent = forwardRef(({ className, ...props }, ref) => {
25
+ return (_jsx("div", { ref: ref, "data-slot": "card-content", className: cn("min-w-0 px-4 text-fg-secondary sm:px-6", className), ...props }));
26
+ });
27
+ CardContent.displayName = "CardContent";
28
+ export const CardFooter = forwardRef(({ className, ...props }, ref) => {
29
+ return (_jsx("div", { ref: ref, "data-slot": "card-footer", className: cn("flex min-w-0 items-center gap-3 px-4 sm:px-6", className), ...props }));
30
+ });
31
+ CardFooter.displayName = "CardFooter";
32
+ //# sourceMappingURL=card.js.map