@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,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ /**
5
+ * Constrains its content to a fixed width-to-height ratio using the native
6
+ * CSS `aspect-ratio` property (no JavaScript measurement, no dependency).
7
+ * The wrapper fills the available width; children should stretch to fill it
8
+ * (e.g. an `<img className="h-full w-full object-cover" />`).
9
+ */
10
+ export const AspectRatio = forwardRef(({ ratio = 16 / 9, className, style, ...props }, ref) => {
11
+ return (_jsx("div", { ref: ref, "data-slot": "aspect-ratio", className: cn("relative w-full", className), style: { aspectRatio: ratio, ...style }, ...props }));
12
+ });
13
+ AspectRatio.displayName = "AspectRatio";
14
+ //# sourceMappingURL=aspect-ratio.js.map
@@ -0,0 +1,3 @@
1
+ import { type HTMLAttributes } from "react";
2
+ export declare const AuroraBackground: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
3
+ //# sourceMappingURL=aurora-background.d.ts.map
@@ -0,0 +1,8 @@
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
+ export const AuroraBackground = forwardRef(({ className, children, ...props }, ref) => {
5
+ return (_jsxs("div", { ref: ref, "data-slot": "aurora-background", className: cn("relative overflow-hidden", className), ...props, children: [_jsxs("div", { "aria-hidden": true, className: "pointer-events-none absolute inset-0 -z-10", children: [_jsx("div", { className: "absolute -top-1/3 left-1/4 size-2/3 rounded-full bg-gradient-aurora opacity-30 blur-3xl animate-aurora" }), _jsx("div", { className: "absolute -bottom-1/3 right-1/4 size-2/3 rounded-full bg-gradient-aurora opacity-30 blur-3xl animate-aurora [animation-delay:-6s]" }), _jsx("div", { className: "absolute top-1/4 left-1/2 size-1/2 -translate-x-1/2 rounded-full bg-gradient-aurora opacity-20 blur-3xl animate-aurora [animation-delay:-12s]" })] }), _jsx("div", { className: "relative", children: children })] }));
6
+ });
7
+ AuroraBackground.displayName = "AuroraBackground";
8
+ //# sourceMappingURL=aurora-background.js.map
@@ -0,0 +1,55 @@
1
+ import { type InputHTMLAttributes } from "react";
2
+ export interface AutocompleteOption {
3
+ /** Stable, unique value used for selection and highlighting. */
4
+ value: string;
5
+ /** Human-readable text rendered in the list. Defaults to `value`. */
6
+ label?: string;
7
+ /** Disable selecting this single suggestion. */
8
+ disabled?: boolean;
9
+ }
10
+ export interface AutocompleteProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "onSelect" | "role"> {
11
+ /**
12
+ * Static suggestions. When omitted, provide `onSearch` to fetch suggestions
13
+ * for the current query asynchronously.
14
+ */
15
+ options?: AutocompleteOption[];
16
+ /**
17
+ * Async resolver invoked (debounced) with the current query. Return the
18
+ * suggestions to render. Use together with `loading` for the busy state, or
19
+ * let the component manage `loading` automatically when `options` is omitted.
20
+ */
21
+ onSearch?: (query: string) => Promise<AutocompleteOption[]>;
22
+ /** Controlled free-text value. Pair with `onValueChange`. */
23
+ value?: string;
24
+ /** Initial value for uncontrolled usage. */
25
+ defaultValue?: string;
26
+ /** Called with the new free-text value on every keystroke or selection. */
27
+ onValueChange?: (value: string) => void;
28
+ /** Called when a suggestion is committed (click / Enter on a highlight). */
29
+ onSelect?: (option: AutocompleteOption) => void;
30
+ /** Placeholder for the text input. */
31
+ placeholder?: string;
32
+ /** Message rendered when there are no suggestions for the query. */
33
+ emptyText?: string;
34
+ /**
35
+ * Forces the busy state (spinner + skeletons). When `onSearch` is provided
36
+ * and this is left undefined, the component tracks pending searches itself.
37
+ */
38
+ loading?: boolean;
39
+ /** Debounce, in ms, before `onSearch` fires or local filtering re-runs. */
40
+ debounceMs?: number;
41
+ /**
42
+ * When true (default), the committed value can be free text that is not in
43
+ * the suggestion list. When false, blurring or Enter with non-matching text
44
+ * reverts to the last valid value.
45
+ */
46
+ allowCustomValue?: boolean;
47
+ /** Disable the whole control. */
48
+ disabled?: boolean;
49
+ /** Extra classes for the popover content. */
50
+ contentClassName?: string;
51
+ /** Number of skeleton rows to show while loading. */
52
+ loadingSkeletonRows?: number;
53
+ }
54
+ export declare const Autocomplete: import("react").ForwardRefExoticComponent<AutocompleteProps & import("react").RefAttributes<HTMLInputElement>>;
55
+ //# sourceMappingURL=autocomplete.d.ts.map
@@ -0,0 +1,279 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Command as CommandPrimitive } from "cmdk";
4
+ import { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef, useState, } from "react";
5
+ import { cn } from "../lib/cn.js";
6
+ import { CommandEmpty, CommandItem, CommandList } from "./command.js";
7
+ import { Popover, PopoverAnchor, PopoverContent } from "./popover.js";
8
+ import { Skeleton } from "./skeleton.js";
9
+ import { Spinner } from "./spinner.js";
10
+ const SKELETON_WIDTHS = ["w-3/4", "w-1/2", "w-5/6", "w-2/3"];
11
+ function optionLabel(option) {
12
+ return option.label ?? option.value;
13
+ }
14
+ // cmdk indexes/filters/highlights by `value`; identical labels would collide, so
15
+ // we feed it a value that is unique per option while still surfacing the label
16
+ // (we own filtering via shouldFilter={false}, so the composite is never matched
17
+ // against the query). The trailing value keeps duplicates distinct.
18
+ function optionCmdkValue(option) {
19
+ return `${optionLabel(option)} ${option.value}`;
20
+ }
21
+ function defaultLocalFilter(options, query) {
22
+ if (query.trim() === "")
23
+ return options;
24
+ const needle = query.toLowerCase();
25
+ return options.filter((option) => optionLabel(option).toLowerCase().includes(needle));
26
+ }
27
+ export const Autocomplete = forwardRef(({ options, onSearch, value: valueProp, defaultValue, onValueChange, onSelect, placeholder = "Type to search…", emptyText = "No results found.", loading: loadingProp, debounceMs = 200, allowCustomValue = true, disabled = false, className, contentClassName, loadingSkeletonRows = 3, onKeyDown, onBlur, onFocus, id: idProp, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ...inputProps }, forwardedRef) => {
28
+ // --- Controlled / uncontrolled free-text value ---------------------------
29
+ const isControlled = valueProp !== undefined;
30
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? "");
31
+ const value = isControlled ? valueProp : uncontrolledValue;
32
+ const [open, setOpen] = useState(false);
33
+ // Highlighted suggestion (drives cmdk + aria-activedescendant).
34
+ const [highlighted, setHighlighted] = useState("");
35
+ // Async results + internally tracked loading state.
36
+ const [asyncOptions, setAsyncOptions] = useState([]);
37
+ const [internalLoading, setInternalLoading] = useState(false);
38
+ // Real ids read back from the cmdk DOM. cmdk overwrites any id we set on the
39
+ // list/items with its own useId, so we must reference its generated ids to
40
+ // keep aria-controls / aria-activedescendant pointing at nodes that exist.
41
+ const [listboxId, setListboxId] = useState();
42
+ const [activeDescendant, setActiveDescendant] = useState();
43
+ const reactId = useId();
44
+ const id = idProp ?? `${reactId}-autocomplete`;
45
+ // Expose the underlying input while keeping a local handle for focus mgmt.
46
+ const inputRef = useRef(null);
47
+ useImperativeHandle(forwardedRef, () => inputRef.current, []);
48
+ // The cmdk root, used to forward navigation keys into its roving listbox.
49
+ const commandRef = useRef(null);
50
+ // Last value that matched a real suggestion, for allowCustomValue=false revert.
51
+ // Seeded with the initial value; kept in sync below so a controlled value that
52
+ // changes after the first render does not leave a stale revert target.
53
+ const lastValidValue = useRef(value);
54
+ // Guards a blur that is the result of clicking an option inside the popover.
55
+ const selectingRef = useRef(false);
56
+ const isAsync = onSearch !== undefined;
57
+ const loading = loadingProp ?? (isAsync ? internalLoading : false);
58
+ const setValue = useCallback((next) => {
59
+ if (!isControlled)
60
+ setUncontrolledValue(next);
61
+ onValueChange?.(next);
62
+ }, [isControlled, onValueChange]);
63
+ // --- Suggestion source ----------------------------------------------------
64
+ // For static options we filter locally; for async we use resolver output.
65
+ const localOptions = useMemo(() => (isAsync ? asyncOptions : defaultLocalFilter(options ?? [], value)), [isAsync, asyncOptions, options, value]);
66
+ // Debounced async search. Stale responses are dropped via a request token.
67
+ const requestToken = useRef(0);
68
+ useEffect(() => {
69
+ if (!isAsync || !open) {
70
+ // Closing (or leaving async mode) invalidates any in-flight request so a
71
+ // late-resolving promise cannot write stale results, and drops the old
72
+ // suggestions/loading so reopening never flashes a previous query.
73
+ requestToken.current++;
74
+ setAsyncOptions([]);
75
+ setInternalLoading(false);
76
+ return;
77
+ }
78
+ const token = ++requestToken.current;
79
+ setInternalLoading(true);
80
+ const handle = setTimeout(() => {
81
+ onSearch(value)
82
+ .then((result) => {
83
+ if (token !== requestToken.current)
84
+ return;
85
+ setAsyncOptions(result);
86
+ })
87
+ .catch(() => {
88
+ if (token !== requestToken.current)
89
+ return;
90
+ setAsyncOptions([]);
91
+ })
92
+ .finally(() => {
93
+ if (token !== requestToken.current)
94
+ return;
95
+ setInternalLoading(false);
96
+ });
97
+ }, debounceMs);
98
+ return () => clearTimeout(handle);
99
+ }, [isAsync, open, value, debounceMs, onSearch]);
100
+ // Track the latest value that maps to a concrete suggestion.
101
+ useEffect(() => {
102
+ if (localOptions.some((option) => optionLabel(option) === value)) {
103
+ lastValidValue.current = value;
104
+ }
105
+ }, [localOptions, value]);
106
+ const commitSelection = useCallback((option) => {
107
+ if (option.disabled)
108
+ return;
109
+ const label = optionLabel(option);
110
+ setValue(label);
111
+ lastValidValue.current = label;
112
+ onSelect?.(option);
113
+ setOpen(false);
114
+ setHighlighted("");
115
+ // Return focus to the text input after committing.
116
+ requestAnimationFrame(() => inputRef.current?.focus());
117
+ }, [setValue, onSelect]);
118
+ const handleInputChange = useCallback((event) => {
119
+ const next = event.target.value;
120
+ setValue(next);
121
+ // Reopen on type-ahead; close only when the field is fully cleared.
122
+ setOpen(next.length > 0);
123
+ }, [setValue]);
124
+ // Forward navigation keys to cmdk so it manages roving focus + highlight.
125
+ const forwardToCommand = useCallback((event) => {
126
+ const node = commandRef.current;
127
+ if (!node)
128
+ return;
129
+ node.dispatchEvent(new KeyboardEvent("keydown", {
130
+ key: event.key,
131
+ code: event.code,
132
+ bubbles: true,
133
+ cancelable: true,
134
+ }));
135
+ }, []);
136
+ const handleKeyDown = useCallback((event) => {
137
+ onKeyDown?.(event);
138
+ if (event.defaultPrevented || disabled)
139
+ return;
140
+ switch (event.key) {
141
+ case "ArrowDown":
142
+ case "ArrowUp": {
143
+ event.preventDefault();
144
+ if (!open) {
145
+ setOpen(true);
146
+ return;
147
+ }
148
+ forwardToCommand(event);
149
+ return;
150
+ }
151
+ case "Home":
152
+ case "End": {
153
+ if (!open)
154
+ return;
155
+ event.preventDefault();
156
+ forwardToCommand(event);
157
+ return;
158
+ }
159
+ case "Enter": {
160
+ if (!open)
161
+ return;
162
+ const active = localOptions.find((option) => optionCmdkValue(option) === highlighted);
163
+ if (active && !active.disabled) {
164
+ event.preventDefault();
165
+ commitSelection(active);
166
+ }
167
+ else if (!allowCustomValue) {
168
+ event.preventDefault();
169
+ setValue(lastValidValue.current);
170
+ setOpen(false);
171
+ }
172
+ else {
173
+ // Free text: accept current input and dismiss suggestions.
174
+ setOpen(false);
175
+ }
176
+ return;
177
+ }
178
+ case "Escape": {
179
+ if (open) {
180
+ event.preventDefault();
181
+ setOpen(false);
182
+ setHighlighted("");
183
+ }
184
+ return;
185
+ }
186
+ default:
187
+ return;
188
+ }
189
+ }, [
190
+ onKeyDown,
191
+ disabled,
192
+ open,
193
+ localOptions,
194
+ highlighted,
195
+ allowCustomValue,
196
+ commitSelection,
197
+ forwardToCommand,
198
+ setValue,
199
+ ]);
200
+ const handleBlur = useCallback((event) => {
201
+ onBlur?.(event);
202
+ // Ignore blur caused by interacting with the suggestion list.
203
+ if (selectingRef.current) {
204
+ selectingRef.current = false;
205
+ return;
206
+ }
207
+ setOpen(false);
208
+ setHighlighted("");
209
+ if (!allowCustomValue && !localOptions.some((o) => optionLabel(o) === value)) {
210
+ setValue(lastValidValue.current);
211
+ }
212
+ }, [onBlur, allowCustomValue, localOptions, value, setValue]);
213
+ const handleFocus = useCallback((event) => {
214
+ onFocus?.(event);
215
+ if (value.length > 0)
216
+ setOpen(true);
217
+ }, [onFocus, value]);
218
+ // Resolve the real cmdk-generated ids from the DOM after each render that can
219
+ // change the list or the highlight. cmdk marks the active item with
220
+ // aria-selected="true" and assigns its own ids, so reading them here keeps
221
+ // aria-controls / aria-activedescendant referencing nodes that truly exist.
222
+ useEffect(() => {
223
+ if (!open) {
224
+ setListboxId(undefined);
225
+ setActiveDescendant(undefined);
226
+ return;
227
+ }
228
+ const root = commandRef.current;
229
+ const list = root?.querySelector("[cmdk-list]");
230
+ setListboxId(list?.id || undefined);
231
+ // While loading we render skeletons (no items) and an empty list has nothing
232
+ // highlightable. `highlighted` is cmdk's roving value — re-resolve whenever
233
+ // it or the rendered list changes so the id reflects the node cmdk marks.
234
+ const active = loading || !highlighted || localOptions.length === 0
235
+ ? null
236
+ : root?.querySelector('[cmdk-item][aria-selected="true"]');
237
+ setActiveDescendant(active?.id || undefined);
238
+ }, [open, highlighted, localOptions, loading]);
239
+ const showEmpty = !loading && localOptions.length === 0;
240
+ return (_jsxs(Popover, { open: open && !disabled, onOpenChange: setOpen, children: [_jsx(PopoverAnchor, { asChild: true, children: _jsxs("div", { "data-slot": "autocomplete", className: "relative w-full", children: [_jsx("input", { ref: inputRef, id: id, type: "text", role: "combobox", autoComplete: "off", autoCorrect: "off", autoCapitalize: "none", spellCheck: false, "aria-autocomplete": "list", "aria-expanded": open && !disabled, "aria-controls": open ? listboxId : undefined, "aria-activedescendant": activeDescendant, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "data-slot": "autocomplete-input", disabled: disabled, placeholder: placeholder, value: value, onChange: handleInputChange, onKeyDown: handleKeyDown, onBlur: handleBlur, onFocus: handleFocus, className: cn("flex h-10 w-full rounded-lg border border-border bg-surface-inset px-3 text-sm text-fg", "placeholder:text-fg-tertiary", "transition-[border-color,box-shadow] 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", "selection:bg-primary selection:text-primary-foreground",
241
+ // Reserve room for the trailing spinner while loading.
242
+ loading && "pr-9", className), ...inputProps }), loading ? (_jsx("span", { "data-slot": "autocomplete-spinner", className: "pointer-events-none absolute inset-y-0 right-3 flex items-center text-fg-tertiary", children: _jsx(Spinner, { size: "sm", "aria-label": "Loading suggestions" }) })) : null] }) }), _jsx(PopoverContent, { align: "start", "data-slot": "autocomplete-content",
243
+ // Keep focus on the text input so type-ahead never breaks.
244
+ onOpenAutoFocus: (event) => event.preventDefault(), onCloseAutoFocus: (event) => event.preventDefault(),
245
+ // A pointerdown inside the list must not blur-commit before onSelect.
246
+ onPointerDownOutside: (event) => {
247
+ if (inputRef.current?.contains(event.target))
248
+ event.preventDefault();
249
+ }, className: cn("w-[var(--radix-popover-trigger-width)] min-w-[8rem] p-0", contentClassName), children: _jsx(CommandPrimitive, { ref: commandRef,
250
+ // We own filtering (local includes-match or async results).
251
+ shouldFilter: false,
252
+ // cmdk owns roving highlight; mirror it for aria-activedescendant.
253
+ value: highlighted, onValueChange: setHighlighted, "data-slot": "autocomplete-command", className: "flex h-full w-full flex-col overflow-hidden rounded-lg bg-surface-floating text-fg", children: _jsxs(CommandList
254
+ // cmdk sets role="listbox" and its own id; the accessible name must
255
+ // go through its `label` prop (it overrides any aria-label we pass).
256
+ , {
257
+ // cmdk sets role="listbox" and its own id; the accessible name must
258
+ // go through its `label` prop (it overrides any aria-label we pass).
259
+ label: ariaLabel ?? "Suggestions",
260
+ // Block the blur-revert when a pointer lands on the list.
261
+ onMouseDown: (event) => {
262
+ selectingRef.current = true;
263
+ event.preventDefault();
264
+ }, children: [loading ? (_jsx("div", { "data-slot": "autocomplete-loading", className: "space-y-1.5 p-2", "aria-hidden": "true", children: Array.from({ length: Math.max(1, loadingSkeletonRows) }).map((_, index) => (_jsx(Skeleton
265
+ // biome-ignore lint/suspicious/noArrayIndexKey: fixed-length placeholder rows
266
+ , { className: cn("h-7", SKELETON_WIDTHS[index % SKELETON_WIDTHS.length]) }, index))) })) : null, showEmpty ? _jsx(CommandEmpty, { children: emptyText }) : null, !loading
267
+ ? localOptions.map((option) => {
268
+ const label = optionLabel(option);
269
+ return (_jsx(CommandItem, {
270
+ // cmdk overwrites any id we set with its own; we read the
271
+ // generated id back from the DOM for aria-activedescendant.
272
+ // Use a value unique per option so duplicate labels do not
273
+ // collide in cmdk's index/highlight.
274
+ value: optionCmdkValue(option), disabled: option.disabled, onSelect: () => commitSelection(option), children: _jsx("span", { className: "truncate", children: label }) }, option.value));
275
+ })
276
+ : null] }) }) })] }));
277
+ });
278
+ Autocomplete.displayName = "Autocomplete";
279
+ //# sourceMappingURL=autocomplete.js.map
@@ -0,0 +1,39 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type HTMLAttributes, type ReactNode } from "react";
3
+ declare const avatarGroupItemVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ declare const avatarGroupOverflowVariants: (props?: ({
7
+ size?: "sm" | "md" | "lg" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ export interface AvatarGroupAvatar {
10
+ /** Image source for the avatar. */
11
+ src?: string;
12
+ /** Alt text for the image; also used as the fallback's accessible context. */
13
+ alt?: string;
14
+ /** Text shown when the image is missing or still loading (e.g. initials). */
15
+ fallback: ReactNode;
16
+ }
17
+ export interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof avatarGroupItemVariants> {
18
+ /**
19
+ * Avatars to stack. Compose `<Avatar>` children, or pass `avatars` for the
20
+ * data-driven shorthand. `avatars` takes precedence when both are provided.
21
+ */
22
+ avatars?: AvatarGroupAvatar[];
23
+ /** Show the first `max` avatars, then a "+N" overflow chip for the rest. */
24
+ max?: number;
25
+ /**
26
+ * Horizontal overlap between avatars as a Tailwind negative-margin class
27
+ * (e.g. `-space-x-2`). Defaults to a tasteful offset.
28
+ */
29
+ spacing?: string;
30
+ }
31
+ /**
32
+ * Overlapping stack of avatars with an optional "+N" overflow chip — for teams
33
+ * or social proof ("loved by 9,000+"). The `size` prop drives both the avatars
34
+ * and the chip, overriding any size set on individual children for a uniform
35
+ * row.
36
+ */
37
+ export declare const AvatarGroup: import("react").ForwardRefExoticComponent<AvatarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
38
+ export { avatarGroupItemVariants, avatarGroupOverflowVariants };
39
+ //# sourceMappingURL=avatar-group.d.ts.map
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { Children, cloneElement, forwardRef, isValidElement, } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
6
+ const avatarGroupItemVariants = cva(
7
+ // A ring in the surface color makes overlapping avatars read as a stack.
8
+ "ring-2 ring-surface-base", {
9
+ variants: {
10
+ size: {
11
+ sm: "size-7",
12
+ md: "size-9",
13
+ lg: "size-11",
14
+ },
15
+ },
16
+ defaultVariants: { size: "md" },
17
+ });
18
+ const avatarGroupOverflowVariants = cva("relative flex shrink-0 items-center justify-center rounded-full bg-surface-overlay font-medium text-fg-secondary ring-2 ring-surface-base", {
19
+ variants: {
20
+ size: {
21
+ sm: "size-7 text-xs",
22
+ md: "size-9 text-sm",
23
+ lg: "size-11 text-base",
24
+ },
25
+ },
26
+ defaultVariants: { size: "md" },
27
+ });
28
+ /**
29
+ * Overlapping stack of avatars with an optional "+N" overflow chip — for teams
30
+ * or social proof ("loved by 9,000+"). The `size` prop drives both the avatars
31
+ * and the chip, overriding any size set on individual children for a uniform
32
+ * row.
33
+ */
34
+ export const AvatarGroup = forwardRef(({ className, children, avatars, max, size, spacing = "-space-x-2", "aria-label": ariaLabel, ...props }, ref) => {
35
+ const items = avatars
36
+ ? avatars.map((avatar, index) => (_jsxs(Avatar, { children: [avatar.src ? _jsx(AvatarImage, { src: avatar.src, alt: avatar.alt }) : null, _jsx(AvatarFallback, { children: avatar.fallback })] }, index)))
37
+ : Children.toArray(children).filter(isValidElement);
38
+ const total = items.length;
39
+ const limit = max != null && max >= 0 && max < total ? max : total;
40
+ const visible = items.slice(0, limit);
41
+ const overflow = total - limit;
42
+ return (_jsxs("div", { ref: ref, "data-slot": "avatar-group", role: "group", "aria-label": ariaLabel ?? "Avatar group", className: cn("flex items-center", spacing, className), ...props, children: [visible.map((child, index) => cloneElement(child, {
43
+ // Overlap order: each avatar sits above the one before it.
44
+ style: { zIndex: index, ...child.props.style },
45
+ className: cn(avatarGroupItemVariants({ size }), child.props.className),
46
+ })), overflow > 0 ? (_jsxs("span", { "data-slot": "avatar-group-overflow", role: "img", "aria-label": `${overflow} more`, style: { zIndex: visible.length }, className: avatarGroupOverflowVariants({ size }), children: ["+", overflow] })) : null] }));
47
+ });
48
+ AvatarGroup.displayName = "AvatarGroup";
49
+ export { avatarGroupItemVariants, avatarGroupOverflowVariants };
50
+ //# sourceMappingURL=avatar-group.js.map
@@ -0,0 +1,5 @@
1
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
2
+ export declare const Avatar: import("react").ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & import("react").RefAttributes<HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
3
+ export declare const AvatarImage: import("react").ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & import("react").RefAttributes<HTMLImageElement>, "ref"> & import("react").RefAttributes<HTMLImageElement>>;
4
+ export declare const AvatarFallback: import("react").ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & import("react").RefAttributes<HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
5
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
3
+ import { forwardRef } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ export const Avatar = forwardRef(({ className, ...props }, ref) => {
6
+ return (_jsx(AvatarPrimitive.Root, { ref: ref, "data-slot": "avatar", className: cn("relative flex size-10 shrink-0 overflow-hidden rounded-full", className), ...props }));
7
+ });
8
+ Avatar.displayName = "Avatar";
9
+ export const AvatarImage = forwardRef(({ className, ...props }, ref) => {
10
+ return (_jsx(AvatarPrimitive.Image, { ref: ref, "data-slot": "avatar-image", className: cn("aspect-square size-full object-cover", className), ...props }));
11
+ });
12
+ AvatarImage.displayName = "AvatarImage";
13
+ export const AvatarFallback = forwardRef(({ className, ...props }, ref) => {
14
+ return (_jsx(AvatarPrimitive.Fallback, { ref: ref, "data-slot": "avatar-fallback", className: cn("flex size-full items-center justify-center rounded-full bg-surface-overlay text-sm font-medium text-fg-secondary", className), ...props }));
15
+ });
16
+ AvatarFallback.displayName = "AvatarFallback";
17
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1,10 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type HTMLAttributes } from "react";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | "primary" | "secondary" | "outline" | "error" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
7
+ }
8
+ export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
9
+ export { badgeVariants };
10
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx } 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 badgeVariants = cva("inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap [&_svg]:size-3", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-surface-overlay text-fg border-border",
9
+ // Solid fill (not a 15% tint) so the label clears WCAG AA on every
10
+ // theme/mode: same-hue text on a pale primary tint reads <4.5:1 in the
11
+ // bright-accent light themes, whereas primary-foreground on solid primary
12
+ // is >=5:1 everywhere.
13
+ primary: "bg-primary text-primary-foreground border-transparent",
14
+ secondary: "bg-surface-overlay text-fg-secondary border-border",
15
+ outline: "text-fg border-border",
16
+ // Same-hue text on a 15% tint reads <4.5:1 in several themes, so the
17
+ // label uses the AA-tuned `*-strong` text variant (the tint stays the raw
18
+ // fill). See @cronus-ui/tokens CONTRACT.md.
19
+ success: "bg-success/15 text-success-strong border-transparent",
20
+ warning: "bg-warning/15 text-warning-strong border-transparent",
21
+ destructive: "bg-error/15 text-error-strong border-transparent",
22
+ // `error` is a deprecated alias of `destructive`; kept for backward
23
+ // compatibility. Prefer `destructive` to match Button/Alert.
24
+ error: "bg-error/15 text-error-strong border-transparent",
25
+ info: "bg-info/15 text-info-strong border-transparent",
26
+ },
27
+ },
28
+ defaultVariants: { variant: "default" },
29
+ });
30
+ export const Badge = forwardRef(({ className, variant, ...props }, ref) => {
31
+ return (_jsx("span", { ref: ref, "data-slot": "badge", "data-variant": variant ?? "default", className: cn(badgeVariants({ variant }), className), ...props }));
32
+ });
33
+ Badge.displayName = "Badge";
34
+ export { badgeVariants };
35
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1,45 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type HTMLAttributes, type ReactNode } from "react";
3
+ /**
4
+ * Dismissible announcement / promo bar — a full-width horizontal strip pinned
5
+ * to the top of a page or section (the "Top Banner" of a billing SDK). Renders
6
+ * an optional leading icon, the message (a `title` + optional `description`, or
7
+ * free-form `children`), an optional right-aligned `action` (a CTA Button or
8
+ * link), and — when `dismissible` — a trailing close button.
9
+ *
10
+ * Colour strategy mirrors {@link Alert}: semantic variants tint the surface
11
+ * wash + border + icon while the body text stays on `fg`/`fg-secondary` (which
12
+ * meet AA against every surface), so contrast is safe across themes/modes
13
+ * without low-chroma coloured body text. The `brand` variant is the exception:
14
+ * it's a solid `bg-primary` promo fill carrying `primary-foreground` text, and
15
+ * everything inside (icon, action, close) inherits that foreground.
16
+ */
17
+ declare const bannerVariants: (props?: ({
18
+ variant?: "default" | "info" | "success" | "warning" | "error" | "brand" | null | undefined;
19
+ align?: "center" | "start" | null | undefined;
20
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
21
+ export interface BannerProps extends Omit<HTMLAttributes<HTMLElement>, "title">, VariantProps<typeof bannerVariants> {
22
+ /** Headline text. Pair with `description`, or omit and pass `children`. */
23
+ title?: ReactNode;
24
+ /** Optional secondary line shown after the title. */
25
+ description?: ReactNode;
26
+ /** Leading glyph rendered before the message (e.g. a lucide icon). */
27
+ icon?: ReactNode;
28
+ /** Right-aligned call to action (a {@link Button}, link, etc.). */
29
+ action?: ReactNode;
30
+ /** Render a trailing close button. Defaults to `true`. */
31
+ dismissible?: boolean;
32
+ /** Fired after the banner is dismissed (controlled or not). */
33
+ onDismiss?: () => void;
34
+ /** Controlled visibility. When provided, the component is fully controlled. */
35
+ open?: boolean;
36
+ /** Initial visibility for the uncontrolled case. Defaults to `true`. */
37
+ defaultOpen?: boolean;
38
+ /** Accessible label for the announcement region. Defaults to "Announcement". */
39
+ label?: string;
40
+ /** Free-form message body, used when `title`/`description` are not supplied. */
41
+ children?: ReactNode;
42
+ }
43
+ export declare const Banner: import("react").ForwardRefExoticComponent<BannerProps & import("react").RefAttributes<HTMLElement>>;
44
+ export { bannerVariants };
45
+ //# sourceMappingURL=banner.d.ts.map