@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,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ export const Skeleton = forwardRef(({ className, ...props }, ref) => {
5
+ return (_jsx("div", { ref: ref, "data-slot": "skeleton", "aria-hidden": true, className: cn("animate-pulse rounded-md bg-surface-overlay", className), ...props }));
6
+ });
7
+ Skeleton.displayName = "Skeleton";
8
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1,10 @@
1
+ import * as SliderPrimitive from "@radix-ui/react-slider";
2
+ /**
3
+ * A single- or multi-thumb range slider. Each focusable thumb is the actual
4
+ * `role="slider"` input, so pass `aria-label`/`aria-labelledby` describing what
5
+ * the slider controls (e.g. "Volume") to give every thumb an accessible name
6
+ * and satisfy `aria-input-field-name` (WCAG 4.1.2). Multi-thumb (range) sliders
7
+ * derive a unique per-thumb name by suffixing the label with its 1-based index.
8
+ */
9
+ export declare const Slider: import("react").ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & import("react").RefAttributes<HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
10
+ //# sourceMappingURL=slider.d.ts.map
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as SliderPrimitive from "@radix-ui/react-slider";
4
+ import { forwardRef } from "react";
5
+ import { cn } from "../lib/cn.js";
6
+ /**
7
+ * A single- or multi-thumb range slider. Each focusable thumb is the actual
8
+ * `role="slider"` input, so pass `aria-label`/`aria-labelledby` describing what
9
+ * the slider controls (e.g. "Volume") to give every thumb an accessible name
10
+ * and satisfy `aria-input-field-name` (WCAG 4.1.2). Multi-thumb (range) sliders
11
+ * derive a unique per-thumb name by suffixing the label with its 1-based index.
12
+ */
13
+ export const Slider = forwardRef(({ className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ...props }, ref) => {
14
+ const provided = props.value ?? props.defaultValue;
15
+ const values = provided?.length ? provided : [props.min ?? 0];
16
+ // The thumb is the actual `role="slider"` input, so we name it explicitly to
17
+ // satisfy `aria-input-field-name` (WCAG 4.1.2). The label props are pulled OUT
18
+ // of the spread: Radix's Root renders a role-less <span>, where `aria-label`
19
+ // would trip axe `aria-prohibited-attr` (serious, WCAG 4.1.2). For multi-thumb
20
+ // sliders each thumb gets an index suffix so the names stay unique.
21
+ const multipleThumbs = values.length > 1;
22
+ return (_jsxs(SliderPrimitive.Root, { ref: ref, "data-slot": "slider", className: cn("relative flex w-full touch-none select-none items-center data-[disabled]:opacity-50", className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-surface-overlay", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), values.map((_, index) => (_jsx(SliderPrimitive.Thumb
23
+ // biome-ignore lint/suspicious/noArrayIndexKey: thumb count is positional and stable
24
+ , { "aria-label": ariaLabel ? (multipleThumbs ? `${ariaLabel} (${index + 1})` : ariaLabel) : undefined, "aria-labelledby": ariaLabel ? undefined : ariaLabelledby, className: "block size-4 rounded-full border border-primary bg-surface-base shadow-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base disabled:pointer-events-none" }, index)))] }));
25
+ });
26
+ Slider.displayName = "Slider";
27
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1,9 @@
1
+ import { Toaster as Sonner, toast } from "sonner";
2
+ export interface ToasterProps extends React.ComponentProps<typeof Sonner> {
3
+ }
4
+ export declare const Toaster: {
5
+ ({ theme, ...props }: ToasterProps): import("react").JSX.Element;
6
+ displayName: string;
7
+ };
8
+ export { toast };
9
+ //# sourceMappingURL=sonner.d.ts.map
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useOptionalThemeMode } from "@cronus-ui/theme";
4
+ import { Toaster as Sonner, toast } from "sonner";
5
+ export const Toaster = ({ theme, ...props }) => {
6
+ const mode = useOptionalThemeMode();
7
+ const resolved = theme ?? (mode === "light" ? "light" : "dark");
8
+ return (_jsx("div", { "data-slot": "toaster", children: _jsx(Sonner, { theme: resolved, className: "toaster group", style: {
9
+ "--normal-bg": "var(--cronus-surface-floating)",
10
+ "--normal-text": "var(--cronus-fg)",
11
+ "--normal-border": "var(--cronus-border)",
12
+ "--border-radius": "var(--cronus-radius)",
13
+ }, ...props }) }));
14
+ };
15
+ Toaster.displayName = "Toaster";
16
+ export { toast };
17
+ //# sourceMappingURL=sonner.js.map
@@ -0,0 +1,19 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ export interface SparklesTextProps extends HTMLAttributes<HTMLSpanElement> {
3
+ ref?: Ref<HTMLSpanElement>;
4
+ /**
5
+ * Number of sparkles around the text. Clamped to `2–12`.
6
+ * @default 4
7
+ */
8
+ count?: number;
9
+ }
10
+ /**
11
+ * Twinkling sparkles around a phrase. The text itself is unchanged and
12
+ * selectable; sparkles are decorative (`aria-hidden`) and suppressed under
13
+ * reduced motion.
14
+ */
15
+ export declare function SparklesText({ ref, className, children, count, ...props }: SparklesTextProps): import("react").JSX.Element;
16
+ export declare namespace SparklesText {
17
+ var displayName: string;
18
+ }
19
+ //# sourceMappingURL=sparkles-text.d.ts.map
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../lib/cn.js";
3
+ const SPARKLE_KEYFRAMES = "@keyframes cronus-sparkle{0%,100%{transform:scale(0);opacity:0}40%{transform:scale(1);opacity:1}70%{transform:scale(0.6);opacity:0.6}}";
4
+ function finiteOr(value, fallback) {
5
+ return Number.isFinite(value) ? value : fallback;
6
+ }
7
+ const SLOTS = [
8
+ { top: "0%", start: "8%" },
9
+ { top: "10%", start: "88%" },
10
+ { top: "85%", start: "18%" },
11
+ { top: "78%", start: "78%" },
12
+ { top: "-8%", start: "48%" },
13
+ { top: "50%", start: "-6%" },
14
+ { top: "52%", start: "96%" },
15
+ { top: "100%", start: "52%" },
16
+ ];
17
+ /**
18
+ * Twinkling sparkles around a phrase. The text itself is unchanged and
19
+ * selectable; sparkles are decorative (`aria-hidden`) and suppressed under
20
+ * reduced motion.
21
+ */
22
+ export function SparklesText({ ref, className, children, count = 4, ...props }) {
23
+ const sparkleCount = Math.min(8, Math.max(2, Math.round(finiteOr(count, 4))));
24
+ return (_jsxs("span", { ref: ref, "data-slot": "sparkles-text", className: cn("relative inline-block", className), ...props, children: [_jsx("style", { children: SPARKLE_KEYFRAMES }), _jsx("span", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 overflow-visible motion-reduce:hidden", children: Array.from({ length: sparkleCount }, (_, index) => {
25
+ const slot = SLOTS[index % SLOTS.length] ?? SLOTS[0];
26
+ const sparkleStyle = {
27
+ top: slot?.top,
28
+ insetInlineStart: slot?.start,
29
+ "--sparkle-delay": `${(index * 0.35) % 1.6}s`,
30
+ "--sparkle-duration": `${1.4 + (index % 3) * 0.25}s`,
31
+ };
32
+ return (_jsx("span", { className: "absolute size-2 text-primary [animation-delay:var(--sparkle-delay)] [animation-duration:var(--sparkle-duration)] [animation-iteration-count:infinite] [animation-name:cronus-sparkle]", style: sparkleStyle, children: _jsx("svg", { viewBox: "0 0 16 16", className: "size-full fill-current", "aria-hidden": "true", children: _jsx("path", { d: "M8 0 L9.2 6.8 L16 8 L9.2 9.2 L8 16 L6.8 9.2 L0 8 L6.8 6.8 Z" }) }) }, index));
33
+ }) }), _jsx("span", { className: "relative", children: children })] }));
34
+ }
35
+ SparklesText.displayName = "SparklesText";
36
+ //# sourceMappingURL=sparkles-text.js.map
@@ -0,0 +1,22 @@
1
+ import { type SVGAttributes } from "react";
2
+ type SparklineTone = "primary" | "success" | "warning" | "error" | "info" | "fg";
3
+ type SparklineType = "line" | "bar";
4
+ export interface SparklineProps extends Omit<SVGAttributes<SVGSVGElement>, "type"> {
5
+ /** The series to plot. Order is preserved; values map left→right. */
6
+ data: number[];
7
+ /** Intrinsic width of the SVG in px. */
8
+ width?: number;
9
+ /** Intrinsic height of the SVG in px. */
10
+ height?: number;
11
+ /** Render a connected line or evenly spaced bars. */
12
+ type?: SparklineType;
13
+ /** Color, mapped to a token via `currentColor`. */
14
+ tone?: SparklineTone;
15
+ /** For `type="line"`, fill a soft token-tinted gradient under the line. */
16
+ area?: boolean;
17
+ /** Stroke width of the line (line type only). */
18
+ strokeWidth?: number;
19
+ }
20
+ export declare const Sparkline: import("react").ForwardRefExoticComponent<SparklineProps & import("react").RefAttributes<SVGSVGElement>>;
21
+ export {};
22
+ //# sourceMappingURL=sparkline.d.ts.map
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { forwardRef, useId } from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ // Token-driven tone classes. Each sets `currentColor` via a Tailwind `text-*`
5
+ // utility (mapped to a `--cronus-*` var), so the SVG strokes/fills inherit the
6
+ // themed color through `stroke="currentColor"` / `fill="currentColor"`.
7
+ const toneStyles = {
8
+ primary: "text-primary",
9
+ success: "text-success",
10
+ warning: "text-warning",
11
+ error: "text-error",
12
+ info: "text-info",
13
+ fg: "text-fg",
14
+ };
15
+ /**
16
+ * Keep only finite numbers so a `NaN`/`Infinity` in the series cannot produce
17
+ * `NaN` SVG coordinates (which silently break the whole path).
18
+ */
19
+ function sanitize(data) {
20
+ return data.filter((value) => Number.isFinite(value));
21
+ }
22
+ /**
23
+ * Scale a value to a Y coordinate inside the box. SVG Y grows downward, so the
24
+ * max sits at `pad` (top) and the min at `height - pad` (bottom). When every
25
+ * value is equal (`min === max`) the line collapses to a flat midline instead
26
+ * of dividing by zero.
27
+ */
28
+ function scaleY(value, min, max, height, pad) {
29
+ const span = max - min;
30
+ const usable = height - pad * 2;
31
+ if (span === 0) {
32
+ return height / 2;
33
+ }
34
+ return pad + (1 - (value - min) / span) * usable;
35
+ }
36
+ export const Sparkline = forwardRef(({ className, data, width = 96, height = 28, type = "line", tone = "primary", area = false, strokeWidth = 1.5, "aria-label": ariaLabel, ...props }, ref) => {
37
+ const points = sanitize(data);
38
+ const count = points.length;
39
+ const gradientId = useId();
40
+ // Default summary keeps assistive tech informed without exposing the raw
41
+ // series; callers can override with a richer `aria-label`.
42
+ const label = ariaLabel ?? `Trend, ${count} ${count === 1 ? "point" : "points"}`;
43
+ // Inset the geometry so a thick stroke / rounded bar cap is not clipped at
44
+ // the box edge.
45
+ const pad = Math.max(strokeWidth, 1);
46
+ const min = count > 0 ? Math.min(...points) : 0;
47
+ const max = count > 0 ? Math.max(...points) : 0;
48
+ const rootProps = {
49
+ ref,
50
+ "data-slot": "sparkline",
51
+ "data-tone": tone,
52
+ role: "img",
53
+ "aria-label": label,
54
+ width,
55
+ height,
56
+ viewBox: `0 0 ${width} ${height}`,
57
+ preserveAspectRatio: "none",
58
+ fill: "none",
59
+ className: cn("inline-block overflow-visible align-middle", toneStyles[tone], className),
60
+ ...props,
61
+ };
62
+ if (type === "bar") {
63
+ // Evenly spaced bars with a small gap; each bar height is scaled to the
64
+ // box. A flat series renders thin baseline ticks so the slot stays legible.
65
+ const span = max - min;
66
+ const slot = count > 0 ? width / count : width;
67
+ const gap = Math.min(slot * 0.3, 4);
68
+ const barWidth = Math.max(slot - gap, 0.5);
69
+ const radius = Math.min(barWidth / 2, 2);
70
+ const usable = height - pad * 2;
71
+ return (_jsxs("svg", { ...rootProps, children: [_jsx("title", { children: label }), _jsx("g", { fill: "currentColor", children: points.map((value, index) => {
72
+ const ratio = span === 0 ? 0 : (value - min) / span;
73
+ // Floor at 1px so even the smallest value stays visible.
74
+ const barHeight = Math.max(ratio * usable, 1);
75
+ const x = index * slot + gap / 2;
76
+ const y = height - pad - barHeight;
77
+ return (_jsx("rect", { "data-slot": "sparkline-bar", x: x, y: y, width: barWidth, height: barHeight, rx: radius }, index));
78
+ }) })] }));
79
+ }
80
+ // Line: map each value to a point. A single point renders a flat midline
81
+ // segment so the component never collapses to nothing.
82
+ const step = count > 1 ? (width - pad * 2) / (count - 1) : 0;
83
+ const coords = points.map((value, index) => {
84
+ const x = count > 1 ? pad + index * step : width / 2;
85
+ const y = scaleY(value, min, max, height, pad);
86
+ return [x, y];
87
+ });
88
+ const linePath = coords.length === 1
89
+ ? // Draw a short horizontal stub centered on the lone point.
90
+ `M ${pad} ${coords[0]?.[1]} L ${width - pad} ${coords[0]?.[1]}`
91
+ : coords.map(([x, y], index) => `${index === 0 ? "M" : "L"} ${x} ${y}`).join(" ");
92
+ // Close the path down to the baseline and back for the area fill.
93
+ const baseline = height - pad;
94
+ const areaPath = coords.length === 1
95
+ ? `M ${pad} ${coords[0]?.[1]} L ${width - pad} ${coords[0]?.[1]} L ${width - pad} ${baseline} L ${pad} ${baseline} Z`
96
+ : `${linePath} L ${coords.at(-1)?.[0]} ${baseline} L ${coords[0]?.[0]} ${baseline} Z`;
97
+ return (_jsxs("svg", { ...rootProps, children: [_jsx("title", { children: label }), _jsxs("g", { children: [count > 0 && area && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: "0%", stopColor: "color-mix(in oklch, currentColor 18%, transparent)" }), _jsx("stop", { offset: "100%", stopColor: "color-mix(in oklch, currentColor 0%, transparent)" })] }) }), _jsx("path", { "data-slot": "sparkline-area", d: areaPath, fill: `url(#${gradientId})` })] })), count > 0 && (_jsx("path", { "data-slot": "sparkline-line", d: linePath, fill: "none", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }))] })] }));
98
+ });
99
+ Sparkline.displayName = "Sparkline";
100
+ //# sourceMappingURL=sparkline.js.map
@@ -0,0 +1,10 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type SVGAttributes } from "react";
3
+ declare const spinnerVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface SpinnerProps extends SVGAttributes<SVGSVGElement>, VariantProps<typeof spinnerVariants> {
7
+ }
8
+ export declare const Spinner: import("react").ForwardRefExoticComponent<SpinnerProps & import("react").RefAttributes<SVGSVGElement>>;
9
+ export { spinnerVariants };
10
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { forwardRef } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ const spinnerVariants = cva("animate-spin text-current", {
6
+ variants: {
7
+ size: {
8
+ sm: "size-4",
9
+ md: "size-5",
10
+ lg: "size-6",
11
+ },
12
+ },
13
+ defaultVariants: { size: "md" },
14
+ });
15
+ export const Spinner = forwardRef(({ className, size, "aria-label": ariaLabel = "Loading", ...props }, ref) => {
16
+ return (_jsxs("svg", { ref: ref, "data-slot": "spinner", role: "status", "aria-label": ariaLabel, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: cn(spinnerVariants({ size }), className), ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", className: "opacity-25" }), _jsx("path", { d: "M12 2a10 10 0 0 1 10 10", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", className: "opacity-90" })] }));
17
+ });
18
+ Spinner.displayName = "Spinner";
19
+ export { spinnerVariants };
20
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1,29 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ export interface SpinningTextProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
3
+ ref?: Ref<HTMLDivElement>;
4
+ /** The phrase laid out around the circle. */
5
+ children: string;
6
+ /**
7
+ * Radius of the circle, in pixels.
8
+ * @default 48
9
+ */
10
+ radius?: number;
11
+ /**
12
+ * Seconds for one full revolution.
13
+ * @default 16
14
+ */
15
+ duration?: number;
16
+ /** Spin counter-clockwise. @default false */
17
+ reverse?: boolean;
18
+ }
19
+ /**
20
+ * Lays a phrase around a circle and slowly rotates it. Assistive tech reads
21
+ * the original string once (`sr-only`); the orbiting letters are
22
+ * `aria-hidden`. Reduced-motion visitors still see the circle, it just does
23
+ * not spin.
24
+ */
25
+ export declare function SpinningText({ ref, className, children, radius, duration, reverse, style, ...props }: SpinningTextProps): import("react").JSX.Element;
26
+ export declare namespace SpinningText {
27
+ var displayName: string;
28
+ }
29
+ //# sourceMappingURL=spinning-text.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../lib/cn.js";
3
+ const SPIN_KEYFRAMES = "@keyframes cronus-spinning-text{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}";
4
+ const graphemeSegmenter = typeof Intl !== "undefined" && "Segmenter" in Intl
5
+ ? new Intl.Segmenter(undefined, { granularity: "grapheme" })
6
+ : null;
7
+ function segmentGraphemes(text) {
8
+ if (graphemeSegmenter) {
9
+ return Array.from(graphemeSegmenter.segment(text), (segment) => segment.segment);
10
+ }
11
+ return Array.from(text);
12
+ }
13
+ function finiteOr(value, fallback) {
14
+ return Number.isFinite(value) ? value : fallback;
15
+ }
16
+ /**
17
+ * Lays a phrase around a circle and slowly rotates it. Assistive tech reads
18
+ * the original string once (`sr-only`); the orbiting letters are
19
+ * `aria-hidden`. Reduced-motion visitors still see the circle, it just does
20
+ * not spin.
21
+ */
22
+ export function SpinningText({ ref, className, children, radius = 48, duration = 16, reverse = false, style, ...props }) {
23
+ const glyphs = segmentGraphemes(children);
24
+ const r = Math.max(12, finiteOr(radius, 48));
25
+ const cycle = Math.max(2, finiteOr(duration, 16));
26
+ const spinStyle = {
27
+ "--spin-duration": `${cycle}s`,
28
+ "--spin-radius": `${r}px`,
29
+ width: r * 2,
30
+ height: r * 2,
31
+ };
32
+ return (_jsxs("div", { ref: ref, "data-slot": "spinning-text", className: cn("relative inline-grid place-items-center", className), style: { ...spinStyle, ...style }, ...props, children: [_jsx("span", { className: "sr-only", children: children }), _jsx("style", { children: SPIN_KEYFRAMES }), _jsx("div", { "aria-hidden": "true", className: cn("absolute inset-0 [animation-duration:var(--spin-duration)] [animation-iteration-count:infinite] [animation-name:cronus-spinning-text] [animation-timing-function:linear] motion-reduce:[animation-name:none]", reverse && "[animation-direction:reverse]"), children: glyphs.map((glyph, index) => {
33
+ const angle = glyphs.length === 0 ? 0 : (index / glyphs.length) * 360;
34
+ return (_jsx("span", { className: "absolute start-1/2 top-1/2 origin-[0_0] text-xs font-medium uppercase tracking-widest text-fg-secondary", style: {
35
+ transform: `rotate(${angle}deg) translateY(calc(var(--spin-radius) * -1))`,
36
+ }, children: glyph === " " ? "\u00a0" : glyph }, `${glyph}-${index}`));
37
+ }) })] }));
38
+ }
39
+ SpinningText.displayName = "SpinningText";
40
+ //# sourceMappingURL=spinning-text.js.map
@@ -0,0 +1,71 @@
1
+ import type { VariantProps } from "class-variance-authority";
2
+ import { type HTMLAttributes, type MouseEventHandler, type ReactNode } from "react";
3
+ import { type buttonVariants } from "./button.js";
4
+ /** A single secondary action rendered inside the split button's dropdown menu. */
5
+ export interface SplitButtonItem {
6
+ /** Stable identity for the row; falls back to the array index when omitted. */
7
+ id?: string;
8
+ /** Visible menu label. */
9
+ label: ReactNode;
10
+ /** Optional leading icon (a `lucide-react` element is auto-sized to 16px). */
11
+ icon?: ReactNode;
12
+ /** Invoked when the row is chosen (click, Enter, or Space). */
13
+ onSelect?: () => void;
14
+ /** Paints the row in the destructive/error tone (e.g. Delete). */
15
+ destructive?: boolean;
16
+ /** Disables the row — it becomes unfocusable and dimmed. */
17
+ disabled?: boolean;
18
+ }
19
+ type SplitButtonVariant = NonNullable<VariantProps<typeof buttonVariants>["variant"]>;
20
+ type SplitButtonSize = "sm" | "md" | "lg";
21
+ export interface SplitButtonProps extends Omit<HTMLAttributes<HTMLDivElement>, "onClick"> {
22
+ /** The primary action's label. */
23
+ children: ReactNode;
24
+ /** Fires when the primary (left) segment is clicked. */
25
+ onClick?: MouseEventHandler<HTMLButtonElement>;
26
+ /** Optional leading icon for the primary segment (replaced by a spinner while `loading`). */
27
+ icon?: ReactNode;
28
+ /** Declarative secondary actions. Ignored when a custom `menu` slot is supplied. */
29
+ items?: SplitButtonItem[];
30
+ /**
31
+ * Escape hatch for fully custom menu content (compose `DropdownMenuItem`,
32
+ * `DropdownMenuSeparator`, `DropdownMenuLabel`, …). Takes precedence over `items`.
33
+ */
34
+ menu?: ReactNode;
35
+ /** Visual style, shared by both segments — mirrors `Button`'s variants. */
36
+ variant?: SplitButtonVariant;
37
+ /** Control height/density, shared by both segments. */
38
+ size?: SplitButtonSize;
39
+ /** Disables both segments. */
40
+ disabled?: boolean;
41
+ /** Shows a spinner in the primary segment and disables the control. */
42
+ loading?: boolean;
43
+ /** Accessible name for the icon-only menu trigger. */
44
+ menuLabel?: string;
45
+ /** Horizontal alignment of the menu relative to the trigger. */
46
+ align?: "start" | "center" | "end";
47
+ /** Gap in px between the trigger and the opened menu. */
48
+ sideOffset?: number;
49
+ /** Class applied to the dropdown menu surface. */
50
+ contentClassName?: string;
51
+ /** Uncontrolled initial open state of the menu. */
52
+ defaultOpen?: boolean;
53
+ /** Controlled open state of the menu. */
54
+ open?: boolean;
55
+ /** Notified whenever the menu opens or closes. */
56
+ onOpenChange?: (open: boolean) => void;
57
+ }
58
+ /**
59
+ * A split button: a primary action fused to a smaller menu trigger inside one
60
+ * seamless segmented control. The menu is a Radix dropdown (proper roving-tabindex
61
+ * keyboard nav, type-ahead, focus return, and portal), so the whole control is
62
+ * keyboard-operable — Tab reaches each segment, Enter/Space fire the primary, and
63
+ * ArrowDown/Enter open the menu. The two segments share `Button`'s variants/sizes;
64
+ * inner corners and borders are collapsed and a single hairline seam is drawn with
65
+ * `currentColor`, so the fusion reads cleanly across every variant. The chevron's
66
+ * flip is CSS-only and is disabled under `prefers-reduced-motion: reduce`; there
67
+ * are no timers or animation frames to clean up.
68
+ */
69
+ export declare const SplitButton: import("react").ForwardRefExoticComponent<SplitButtonProps & import("react").RefAttributes<HTMLDivElement>>;
70
+ export {};
71
+ //# sourceMappingURL=split-button.d.ts.map
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChevronDown } from "lucide-react";
3
+ import { forwardRef } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ import { Button } from "./button.js";
6
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "./dropdown-menu.js";
7
+ import { Spinner } from "./spinner.js";
8
+ /**
9
+ * A split button: a primary action fused to a smaller menu trigger inside one
10
+ * seamless segmented control. The menu is a Radix dropdown (proper roving-tabindex
11
+ * keyboard nav, type-ahead, focus return, and portal), so the whole control is
12
+ * keyboard-operable — Tab reaches each segment, Enter/Space fire the primary, and
13
+ * ArrowDown/Enter open the menu. The two segments share `Button`'s variants/sizes;
14
+ * inner corners and borders are collapsed and a single hairline seam is drawn with
15
+ * `currentColor`, so the fusion reads cleanly across every variant. The chevron's
16
+ * flip is CSS-only and is disabled under `prefers-reduced-motion: reduce`; there
17
+ * are no timers or animation frames to clean up.
18
+ */
19
+ export const SplitButton = forwardRef(({ className, children, onClick, icon, items, menu, variant = "primary", size = "md", disabled = false, loading = false, menuLabel = "More actions", align = "end", sideOffset = 6, contentClassName, defaultOpen, open, onOpenChange, ...props }, ref) => {
20
+ const isDisabled = disabled || loading;
21
+ return (_jsxs("div", { ref: ref, role: "group", "data-slot": "split-button", "data-variant": variant, className: cn("isolate inline-flex items-stretch", className), ...props, children: [_jsxs(Button, { type: "button", variant: variant, size: size, disabled: isDisabled, onClick: onClick, className: "relative rounded-r-none border-r-0 focus-visible:z-10", children: [loading ? _jsx(Spinner, { size: "sm", "aria-hidden": true }) : icon, children] }), _jsxs(DropdownMenu, { defaultOpen: defaultOpen, open: open, onOpenChange: onOpenChange, modal: false, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { type: "button", variant: variant, size: size, disabled: isDisabled, "aria-label": menuLabel, className: cn("relative aspect-square rounded-l-none border-l-0 px-0 focus-visible:z-10",
22
+ // hairline seam between the two segments (currentColor, tint-agnostic)
23
+ "before:pointer-events-none before:absolute before:inset-y-2 before:left-0 before:w-px before:bg-current/15 before:content-['']",
24
+ // chevron flips open; motion-reduce keeps it static
25
+ "[&>svg]:transition-transform [&>svg]:duration-200 [&>svg]:ease-[var(--ease-out-quart)] data-[state=open]:[&>svg]:rotate-180 motion-reduce:[&>svg]:transition-none"), children: _jsx(ChevronDown, { "aria-hidden": true }) }) }), _jsx(DropdownMenuContent, { align: align, sideOffset: sideOffset, className: cn("min-w-[10rem]", contentClassName), children: menu ??
26
+ items?.map((item, index) => (_jsxs(DropdownMenuItem, { disabled: item.disabled, onSelect: item.onSelect, "data-destructive": item.destructive ? "" : undefined, className: cn(item.destructive &&
27
+ "text-error-strong focus:bg-error/10 focus:text-error-strong [&_svg]:text-error-strong"), children: [item.icon, item.label] }, item.id ?? index))) })] })] }));
28
+ });
29
+ SplitButton.displayName = "SplitButton";
30
+ //# sourceMappingURL=split-button.js.map
@@ -0,0 +1,11 @@
1
+ import { type HTMLAttributes } from "react";
2
+ /**
3
+ * A card with a pointer-following radial spotlight. The spotlight position is
4
+ * written straight to the DOM via CSS custom properties (`--spot-x` / `--spot-y`)
5
+ * inside a `requestAnimationFrame`, so moving the pointer never triggers a React
6
+ * re-render — the gradient is recomputed by the compositor, not by React. Hover
7
+ * opacity is toggled with a `data-` attribute (also CSS-driven). The whole effect
8
+ * is suppressed under `prefers-reduced-motion: reduce`.
9
+ */
10
+ export declare const SpotlightCard: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
11
+ //# sourceMappingURL=spotlight-card.d.ts.map
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef, useCallback, useRef } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ /**
6
+ * A card with a pointer-following radial spotlight. The spotlight position is
7
+ * written straight to the DOM via CSS custom properties (`--spot-x` / `--spot-y`)
8
+ * inside a `requestAnimationFrame`, so moving the pointer never triggers a React
9
+ * re-render — the gradient is recomputed by the compositor, not by React. Hover
10
+ * opacity is toggled with a `data-` attribute (also CSS-driven). The whole effect
11
+ * is suppressed under `prefers-reduced-motion: reduce`.
12
+ */
13
+ export const SpotlightCard = forwardRef(({ className, children, onMouseMove, onMouseEnter, onMouseLeave, ...props }, ref) => {
14
+ const localRef = useRef(null);
15
+ const frameRef = useRef(null);
16
+ const setRef = useCallback((node) => {
17
+ localRef.current = node;
18
+ if (typeof ref === "function") {
19
+ ref(node);
20
+ }
21
+ else if (ref) {
22
+ ref.current = node;
23
+ }
24
+ }, [ref]);
25
+ const handleMouseMove = useCallback((event) => {
26
+ const node = localRef.current;
27
+ if (node) {
28
+ const clientX = event.clientX;
29
+ const clientY = event.clientY;
30
+ if (frameRef.current !== null) {
31
+ cancelAnimationFrame(frameRef.current);
32
+ }
33
+ frameRef.current = requestAnimationFrame(() => {
34
+ frameRef.current = null;
35
+ const current = localRef.current;
36
+ if (!current) {
37
+ return;
38
+ }
39
+ const rect = current.getBoundingClientRect();
40
+ current.style.setProperty("--spot-x", `${clientX - rect.left}px`);
41
+ current.style.setProperty("--spot-y", `${clientY - rect.top}px`);
42
+ });
43
+ }
44
+ onMouseMove?.(event);
45
+ }, [onMouseMove]);
46
+ const handleMouseEnter = useCallback((event) => {
47
+ localRef.current?.setAttribute("data-spotlight-hovered", "true");
48
+ onMouseEnter?.(event);
49
+ }, [onMouseEnter]);
50
+ const handleMouseLeave = useCallback((event) => {
51
+ if (frameRef.current !== null) {
52
+ cancelAnimationFrame(frameRef.current);
53
+ frameRef.current = null;
54
+ }
55
+ localRef.current?.removeAttribute("data-spotlight-hovered");
56
+ onMouseLeave?.(event);
57
+ }, [onMouseLeave]);
58
+ return (_jsxs("div", { ref: setRef, "data-slot": "spotlight-card", className: cn("group relative overflow-hidden rounded-2xl border border-border bg-surface-raised p-6 text-fg", className), onMouseMove: handleMouseMove, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, ...props, children: [_jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute -inset-px opacity-0 transition-opacity duration-300 group-data-[spotlight-hovered]:opacity-100 motion-reduce:hidden motion-reduce:transition-none", style: {
59
+ background: "radial-gradient(320px circle at var(--spot-x, 50%) var(--spot-y, 50%), color-mix(in oklch, var(--cronus-primary) 14%, transparent), transparent 72%)",
60
+ } }), _jsx("div", { className: "relative", children: children })] }));
61
+ });
62
+ SpotlightCard.displayName = "SpotlightCard";
63
+ //# sourceMappingURL=spotlight-card.js.map
@@ -0,0 +1,19 @@
1
+ import type { HTMLAttributes, Ref } from "react";
2
+ export interface StarBorderProps extends HTMLAttributes<HTMLDivElement> {
3
+ ref?: Ref<HTMLDivElement>;
4
+ /**
5
+ * Seconds for one sparkle lap around the perimeter.
6
+ * @default 6
7
+ */
8
+ duration?: number;
9
+ }
10
+ /**
11
+ * Two sparkle heads that chase each other around a card's border. Distinct
12
+ * from `BorderBeam` (a comet trail): these are discrete twinkles, not a
13
+ * continuous beam. Decorative and hidden under reduced motion.
14
+ */
15
+ export declare function StarBorder({ ref, className, children, duration, style, ...props }: StarBorderProps): import("react").JSX.Element;
16
+ export declare namespace StarBorder {
17
+ var displayName: string;
18
+ }
19
+ //# sourceMappingURL=star-border.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../lib/cn.js";
3
+ const STAR_KEYFRAMES = "@keyframes cronus-star-border{from{offset-distance:0%}to{offset-distance:100%}}";
4
+ function finiteOr(value, fallback) {
5
+ return Number.isFinite(value) ? value : fallback;
6
+ }
7
+ /**
8
+ * Two sparkle heads that chase each other around a card's border. Distinct
9
+ * from `BorderBeam` (a comet trail): these are discrete twinkles, not a
10
+ * continuous beam. Decorative and hidden under reduced motion.
11
+ */
12
+ export function StarBorder({ ref, className, children, duration = 6, style, ...props }) {
13
+ const cycle = Math.max(2, finiteOr(duration, 6));
14
+ const starStyle = { "--star-duration": `${cycle}s` };
15
+ return (_jsxs("div", { ref: ref, "data-slot": "star-border", className: cn("relative rounded-2xl", className), style: { ...starStyle, ...style }, ...props, children: [_jsxs("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 overflow-hidden rounded-[inherit] motion-reduce:hidden", children: [_jsx("style", { children: STAR_KEYFRAMES }), [0, 50].map((phase) => (_jsx("span", { className: "absolute size-1.5 rounded-full bg-primary [animation-duration:var(--star-duration)] [animation-iteration-count:infinite] [animation-name:cronus-star-border] [animation-timing-function:linear] [offset-path:rect(0_auto_auto_0_round_12px)]", style: { animationDelay: `-${(phase / 100) * cycle}s` } }, phase)))] }), _jsx("div", { className: "relative", children: children })] }));
16
+ }
17
+ StarBorder.displayName = "StarBorder";
18
+ //# sourceMappingURL=star-border.js.map