@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,197 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ChevronRight } from "lucide-react";
4
+ import { createContext, forwardRef, useCallback, useContext, useMemo, useRef, useState, } from "react";
5
+ import { cn } from "../lib/cn.js";
6
+ const TreeViewContext = createContext(null);
7
+ function useTreeView() {
8
+ const context = useContext(TreeViewContext);
9
+ if (context === null) {
10
+ throw new Error("<TreeViewItem> must be used within <TreeView>.");
11
+ }
12
+ return context;
13
+ }
14
+ /* ------------------------------------------------------------------ *
15
+ * Helpers
16
+ * ------------------------------------------------------------------ */
17
+ function isBranchNode(node) {
18
+ return node.children !== undefined;
19
+ }
20
+ /**
21
+ * Depth-first flatten of the visible nodes (a branch's children are included
22
+ * only when the branch is expanded). Pure + synchronous so it is SSR-safe and
23
+ * drives both rendering order and roving keyboard navigation from one source.
24
+ */
25
+ function flattenVisible(data, expandedIds, level = 1, parentId = undefined, out = []) {
26
+ for (const node of data) {
27
+ const isBranch = isBranchNode(node);
28
+ out.push({ node, level, parentId, isBranch });
29
+ if (isBranch && expandedIds.has(node.id) && node.children) {
30
+ flattenVisible(node.children, expandedIds, level + 1, node.id, out);
31
+ }
32
+ }
33
+ return out;
34
+ }
35
+ /* ------------------------------------------------------------------ *
36
+ * Root
37
+ * ------------------------------------------------------------------ */
38
+ /**
39
+ * A hierarchical, accessible tree (file-tree style). Data-driven via the
40
+ * `data` prop, with controllable selection (`value`) and expansion
41
+ * (`expandedIds`). Implements the WAI-ARIA tree pattern: `role="tree"` root,
42
+ * `role="treeitem"` nodes with `aria-expanded`/`aria-selected`/`aria-level`,
43
+ * `role="group"` child lists, a single roving tab stop, and full keyboard
44
+ * navigation. SSR-safe (no DOM reads during render).
45
+ */
46
+ export const TreeView = forwardRef(({ data, value: valueProp, defaultValue, onValueChange, expandedIds: expandedProp, defaultExpandedIds, onExpandedChange, className, "aria-label": ariaLabel = "Tree", ...props }, ref) => {
47
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
48
+ const isSelectionControlled = valueProp !== undefined;
49
+ const selectedId = isSelectionControlled ? valueProp : uncontrolledValue;
50
+ const [uncontrolledExpanded, setUncontrolledExpanded] = useState(() => new Set(defaultExpandedIds));
51
+ const isExpansionControlled = expandedProp !== undefined;
52
+ const expandedIds = useMemo(() => (isExpansionControlled ? new Set(expandedProp) : uncontrolledExpanded), [isExpansionControlled, expandedProp, uncontrolledExpanded]);
53
+ // Registry of mounted treeitem nodes, used to move DOM focus on arrow keys.
54
+ const itemsRef = useRef(new Map());
55
+ const register = useCallback((id, node) => {
56
+ if (node === null) {
57
+ itemsRef.current.delete(id);
58
+ }
59
+ else {
60
+ itemsRef.current.set(id, node);
61
+ }
62
+ }, []);
63
+ const select = useCallback((id) => {
64
+ if (!isSelectionControlled) {
65
+ setUncontrolledValue(id);
66
+ }
67
+ onValueChange?.(id);
68
+ }, [isSelectionControlled, onValueChange]);
69
+ const toggleExpanded = useCallback((id, force) => {
70
+ const next = new Set(expandedIds);
71
+ const shouldOpen = force ?? !next.has(id);
72
+ if (shouldOpen) {
73
+ next.add(id);
74
+ }
75
+ else {
76
+ next.delete(id);
77
+ }
78
+ // No-op guard: avoid spurious change callbacks (e.g. ArrowRight on an
79
+ // already-open branch, ArrowLeft on an already-closed leaf).
80
+ if (next.size === expandedIds.size && shouldOpen === expandedIds.has(id)) {
81
+ return;
82
+ }
83
+ if (!isExpansionControlled) {
84
+ setUncontrolledExpanded(next);
85
+ }
86
+ onExpandedChange?.(Array.from(next));
87
+ }, [expandedIds, isExpansionControlled, onExpandedChange]);
88
+ // Flattened visible list — the single source of truth for nav + roving.
89
+ const flat = useMemo(() => flattenVisible(data, expandedIds), [data, expandedIds]);
90
+ // Roving tab stop: the first enabled visible node, derived synchronously so
91
+ // the tree is keyboard-reachable on first Tab without touching the DOM.
92
+ const rovingId = useMemo(() => flat.find((item) => !item.node.disabled)?.node.id, [flat]);
93
+ const focusId = useCallback((id) => {
94
+ if (id === undefined)
95
+ return;
96
+ itemsRef.current.get(id)?.focus();
97
+ }, []);
98
+ const onItemKeyDown = useCallback((event, item) => {
99
+ const currentFlat = flattenVisible(data, expandedIds);
100
+ const enabled = currentFlat.filter((entry) => !entry.node.disabled);
101
+ const index = enabled.findIndex((entry) => entry.node.id === item.node.id);
102
+ switch (event.key) {
103
+ case "ArrowDown": {
104
+ event.preventDefault();
105
+ focusId(enabled[Math.min(index + 1, enabled.length - 1)]?.node.id);
106
+ break;
107
+ }
108
+ case "ArrowUp": {
109
+ event.preventDefault();
110
+ focusId(enabled[Math.max(index - 1, 0)]?.node.id);
111
+ break;
112
+ }
113
+ case "ArrowRight": {
114
+ event.preventDefault();
115
+ if (item.isBranch && !expandedIds.has(item.node.id)) {
116
+ // Collapsed branch → expand it.
117
+ toggleExpanded(item.node.id, true);
118
+ }
119
+ else if (item.isBranch) {
120
+ // Open branch → move to its first (enabled) child.
121
+ const childIndex = currentFlat.findIndex((entry) => entry.parentId === item.node.id && !entry.node.disabled);
122
+ focusId(currentFlat[childIndex]?.node.id);
123
+ }
124
+ break;
125
+ }
126
+ case "ArrowLeft": {
127
+ event.preventDefault();
128
+ if (item.isBranch && expandedIds.has(item.node.id)) {
129
+ // Open branch → collapse it.
130
+ toggleExpanded(item.node.id, false);
131
+ }
132
+ else if (item.parentId !== undefined) {
133
+ // Leaf or closed branch → move to parent.
134
+ focusId(item.parentId);
135
+ }
136
+ break;
137
+ }
138
+ case "Home": {
139
+ event.preventDefault();
140
+ focusId(enabled[0]?.node.id);
141
+ break;
142
+ }
143
+ case "End": {
144
+ event.preventDefault();
145
+ focusId(enabled[enabled.length - 1]?.node.id);
146
+ break;
147
+ }
148
+ case "Enter":
149
+ case " ": {
150
+ event.preventDefault();
151
+ select(item.node.id);
152
+ break;
153
+ }
154
+ default:
155
+ break;
156
+ }
157
+ }, [data, expandedIds, focusId, toggleExpanded, select]);
158
+ const contextValue = useMemo(() => ({
159
+ selectedId,
160
+ expandedIds,
161
+ rovingId,
162
+ select,
163
+ toggleExpanded,
164
+ onItemKeyDown,
165
+ register,
166
+ }), [selectedId, expandedIds, rovingId, select, toggleExpanded, onItemKeyDown, register]);
167
+ return (_jsx(TreeViewContext.Provider, { value: contextValue, children: _jsx("div", { ref: ref, role: "tree", "aria-label": ariaLabel, "data-slot": "tree-view", className: cn("flex w-full min-w-0 flex-col text-sm text-fg select-none", className), ...props, children: data.map((node) => (_jsx(TreeViewItem, { node: node, level: 1, parentId: undefined }, node.id))) }) }));
168
+ });
169
+ TreeView.displayName = "TreeView";
170
+ function TreeViewItem({ node, level, parentId }) {
171
+ const { selectedId, expandedIds, rovingId, select, toggleExpanded, onItemKeyDown, register } = useTreeView();
172
+ const isBranch = isBranchNode(node);
173
+ const isExpanded = isBranch && expandedIds.has(node.id);
174
+ const isSelected = selectedId === node.id;
175
+ const isDisabled = node.disabled === true;
176
+ const flatSelf = { node, level, parentId, isBranch };
177
+ const setRef = useCallback((el) => register(node.id, el), [register, node.id]);
178
+ return (_jsxs("div", { "data-slot": "tree-view-item", className: "min-w-0", children: [_jsxs("div", { ref: setRef, role: "treeitem", "aria-level": level, "aria-selected": isSelected, "aria-expanded": isBranch ? isExpanded : undefined, "aria-disabled": isDisabled || undefined, "data-slot": "tree-view-item-trigger", "data-state": isExpanded ? "open" : "closed", "data-selected": isSelected || undefined,
179
+ // Roving tabindex: exactly one node (the first enabled one) owns the tab
180
+ // stop; arrow keys move focus and shift the tab stop with it.
181
+ tabIndex: !isDisabled && node.id === rovingId ? 0 : -1,
182
+ // Indent by depth. Inline padding keeps the focus ring spanning the full
183
+ // row width while the content still reads as nested.
184
+ style: { paddingInlineStart: `${(level - 1) * 1 + 0.5}rem` }, className: cn("flex h-8 cursor-pointer items-center gap-1.5 rounded-md pr-2", "transition-[background,color] duration-150 ease-[var(--ease-out-quart)] motion-reduce:transition-none", "text-fg-secondary hover:bg-surface-overlay hover:text-fg", "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", isSelected && "bg-surface-overlay font-medium text-fg", isDisabled && "pointer-events-none opacity-50"), onClick: () => {
185
+ if (isDisabled)
186
+ return;
187
+ if (isBranch) {
188
+ toggleExpanded(node.id);
189
+ }
190
+ select(node.id);
191
+ }, onKeyDown: (event) => {
192
+ if (isDisabled)
193
+ return;
194
+ onItemKeyDown(event, flatSelf);
195
+ }, children: [isBranch ? (_jsx(ChevronRight, { "aria-hidden": "true", "data-slot": "tree-view-chevron", className: cn("size-4 shrink-0 text-fg-tertiary transition-transform duration-200 ease-[var(--ease-out-quart)] motion-reduce:transition-none", isExpanded && "rotate-90") })) : (_jsx("span", { "aria-hidden": "true", className: "size-4 shrink-0" })), node.icon ? (_jsx("span", { "aria-hidden": "true", "data-slot": "tree-view-icon", className: "flex size-4 shrink-0 items-center justify-center text-fg-tertiary [&_svg]:size-4", children: node.icon })) : null, _jsx("span", { className: "min-w-0 flex-1 truncate", children: node.label })] }), isBranch && isExpanded && node.children ? (_jsx("div", { role: "group", "data-slot": "tree-view-group", className: "flex flex-col", children: node.children.map((child) => (_jsx(TreeViewItem, { node: child, level: level + 1, parentId: node.id }, child.id))) })) : null] }));
196
+ }
197
+ //# sourceMappingURL=tree-view.js.map
@@ -0,0 +1,49 @@
1
+ import { type HTMLAttributes, type Ref } from "react";
2
+ export type TypingTextMotionPreference = "respect" | "always" | "never";
3
+ export interface TypingTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
4
+ ref?: Ref<HTMLSpanElement>;
5
+ /**
6
+ * Phrases to type. A single string is treated as one phrase. When more than
7
+ * one is provided the component types, pauses, deletes, and moves on.
8
+ */
9
+ text: string | string[];
10
+ /**
11
+ * Milliseconds per typed character.
12
+ * @default 50
13
+ */
14
+ typingSpeed?: number;
15
+ /**
16
+ * Milliseconds per deleted character.
17
+ * @default 30
18
+ */
19
+ deletingSpeed?: number;
20
+ /**
21
+ * Milliseconds to rest on a finished phrase before deleting.
22
+ * @default 1400
23
+ */
24
+ pause?: number;
25
+ /**
26
+ * Loop back to the first phrase after the last. Defaults to `true` when
27
+ * more than one phrase is provided.
28
+ */
29
+ loop?: boolean;
30
+ /**
31
+ * How `prefers-reduced-motion` is honoured. Defaults to `"respect"` (show
32
+ * the current phrase in full). `"always"` forces the typewriter;
33
+ * `"never"` always shows the first phrase statically.
34
+ * @default "respect"
35
+ */
36
+ reducedMotion?: TypingTextMotionPreference;
37
+ }
38
+ /**
39
+ * A typewriter that types one or more phrases with a blinking caret. The
40
+ * accessible name is the current phrase (or the joined list, announced as a
41
+ * status region only when it settles — we keep the live string on the
42
+ * wrapper so AT reads the visible text). Reduced-motion visitors see the
43
+ * first phrase in full with no caret blink.
44
+ */
45
+ export declare function TypingText({ ref, className, text, typingSpeed, deletingSpeed, pause, loop, reducedMotion, ...props }: TypingTextProps): import("react").JSX.Element;
46
+ export declare namespace TypingText {
47
+ var displayName: string;
48
+ }
49
+ //# sourceMappingURL=typing-text.d.ts.map
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ const graphemeSegmenter = typeof Intl !== "undefined" && "Segmenter" in Intl
6
+ ? new Intl.Segmenter(undefined, { granularity: "grapheme" })
7
+ : null;
8
+ function segmentGraphemes(value) {
9
+ if (graphemeSegmenter) {
10
+ return Array.from(graphemeSegmenter.segment(value), (segment) => segment.segment);
11
+ }
12
+ return Array.from(value);
13
+ }
14
+ function finiteOr(value, fallback) {
15
+ return Number.isFinite(value) ? value : fallback;
16
+ }
17
+ function prefersReducedMotion() {
18
+ return (typeof window !== "undefined" &&
19
+ typeof window.matchMedia === "function" &&
20
+ window.matchMedia("(prefers-reduced-motion: reduce)").matches);
21
+ }
22
+ /**
23
+ * A typewriter that types one or more phrases with a blinking caret. The
24
+ * accessible name is the current phrase (or the joined list, announced as a
25
+ * status region only when it settles — we keep the live string on the
26
+ * wrapper so AT reads the visible text). Reduced-motion visitors see the
27
+ * first phrase in full with no caret blink.
28
+ */
29
+ export function TypingText({ ref, className, text, typingSpeed = 50, deletingSpeed = 30, pause = 1400, loop, reducedMotion = "respect", ...props }) {
30
+ const phrases = (Array.isArray(text) ? text : [text]).filter((phrase) => phrase.length > 0);
31
+ const shouldLoop = loop ?? phrases.length > 1;
32
+ const firstPhrase = phrases[0] ?? "";
33
+ const [phraseIndex, setPhraseIndex] = useState(0);
34
+ const [glyphCount, setGlyphCount] = useState(() => reducedMotion === "never" ? segmentGraphemes(firstPhrase).length : 0);
35
+ const [deleting, setDeleting] = useState(false);
36
+ const [staticMode, setStaticMode] = useState(reducedMotion === "never");
37
+ const phrase = phrases[phraseIndex] ?? firstPhrase;
38
+ const glyphs = segmentGraphemes(phrase);
39
+ useEffect(() => {
40
+ const reduce = reducedMotion === "never"
41
+ ? true
42
+ : reducedMotion === "always"
43
+ ? false
44
+ : prefersReducedMotion();
45
+ setStaticMode(reduce);
46
+ if (reduce) {
47
+ setGlyphCount(segmentGraphemes(firstPhrase).length);
48
+ setPhraseIndex(0);
49
+ setDeleting(false);
50
+ }
51
+ }, [firstPhrase, reducedMotion]);
52
+ useEffect(() => {
53
+ if (staticMode || phrases.length === 0)
54
+ return;
55
+ const typeMs = Math.max(8, finiteOr(typingSpeed, 50));
56
+ const deleteMs = Math.max(8, finiteOr(deletingSpeed, 30));
57
+ const pauseMs = Math.max(0, finiteOr(pause, 1400));
58
+ if (!deleting && glyphCount === glyphs.length) {
59
+ if (!shouldLoop && phraseIndex === phrases.length - 1)
60
+ return;
61
+ const timeout = window.setTimeout(() => setDeleting(true), pauseMs);
62
+ return () => window.clearTimeout(timeout);
63
+ }
64
+ if (deleting && glyphCount === 0) {
65
+ const next = (phraseIndex + 1) % phrases.length;
66
+ const timeout = window.setTimeout(() => {
67
+ setPhraseIndex(next);
68
+ setDeleting(false);
69
+ }, 80);
70
+ return () => window.clearTimeout(timeout);
71
+ }
72
+ const timeout = window.setTimeout(() => setGlyphCount((count) => count + (deleting ? -1 : 1)), deleting ? deleteMs : typeMs);
73
+ return () => window.clearTimeout(timeout);
74
+ }, [
75
+ deleting,
76
+ deletingSpeed,
77
+ glyphCount,
78
+ glyphs.length,
79
+ pause,
80
+ phraseIndex,
81
+ phrases.length,
82
+ shouldLoop,
83
+ staticMode,
84
+ typingSpeed,
85
+ ]);
86
+ const visible = glyphs.slice(0, glyphCount).join("");
87
+ return (_jsxs("span", { ref: ref, "data-slot": "typing-text", className: cn("inline whitespace-pre-wrap", className), ...props, children: [visible, staticMode ? null : (_jsx("span", { "aria-hidden": "true", className: "ms-px inline-block h-[1em] w-px translate-y-[0.1em] animate-pulse bg-fg align-baseline" }))] }));
88
+ }
89
+ TypingText.displayName = "TypingText";
90
+ //# sourceMappingURL=typing-text.js.map
@@ -0,0 +1,30 @@
1
+ import { type HTMLAttributes, type ReactNode } from "react";
2
+ type UsageMeterTone = "auto" | "primary" | "success" | "warning" | "error";
3
+ type UsageMeterVariant = "linear" | "circular";
4
+ export interface UsageMeterProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
5
+ /** Current usage. */
6
+ value: number;
7
+ /** The quota / limit the usage is measured against. */
8
+ max: number;
9
+ /** Optional label shown beside (linear) or below (circular) the meter. */
10
+ label?: ReactNode;
11
+ /** Unit suffix appended to the value readout, e.g. "tokens". */
12
+ unit?: string;
13
+ /** Layout: a horizontal bar or an SVG ring. */
14
+ variant?: UsageMeterVariant;
15
+ /** Color. `auto` derives severity from the usage ratio; others are explicit. */
16
+ tone?: UsageMeterTone;
17
+ /** Override the `value / max` readout. */
18
+ formatValue?: (value: number, max: number) => string;
19
+ /** Whether to render the textual value/percentage readout. */
20
+ showValue?: boolean;
21
+ /** Diameter of the ring in px (circular variant only). */
22
+ size?: number;
23
+ }
24
+ export declare const UsageMeter: import("react").ForwardRefExoticComponent<UsageMeterProps & import("react").RefAttributes<HTMLDivElement>>;
25
+ /** Thin wrapper that always renders the linear variant. */
26
+ export declare const UsageMeterLinear: import("react").ForwardRefExoticComponent<Omit<UsageMeterProps, "variant"> & import("react").RefAttributes<HTMLDivElement>>;
27
+ /** Thin wrapper that always renders the circular variant. */
28
+ export declare const UsageMeterCircular: import("react").ForwardRefExoticComponent<Omit<UsageMeterProps, "variant"> & import("react").RefAttributes<HTMLDivElement>>;
29
+ export {};
30
+ //# sourceMappingURL=usage-meter.d.ts.map
@@ -0,0 +1,90 @@
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
+ // Token-driven tone classes. Linear uses a `bg-*` fill; circular strokes via
5
+ // `currentColor`, so it pairs a matching `text-*` class (mirrors Spinner).
6
+ const toneStyles = {
7
+ primary: { fill: "bg-primary", stroke: "text-primary" },
8
+ success: { fill: "bg-success", stroke: "text-success" },
9
+ warning: { fill: "bg-warning", stroke: "text-warning" },
10
+ error: { fill: "bg-error", stroke: "text-error" },
11
+ };
12
+ /**
13
+ * Resolve the ratio (0–1) defensively: a non-finite `value`/`max` or a
14
+ * `max <= 0` collapses to 0 so the meter renders an empty track instead of
15
+ * `NaN`/`Infinity` widths. The ratio is clamped to 0–1 so values over `max`
16
+ * cap the bar at 100%.
17
+ */
18
+ function resolveRatio(value, max) {
19
+ if (!Number.isFinite(value) || !Number.isFinite(max) || max <= 0) {
20
+ return 0;
21
+ }
22
+ return Math.min(1, Math.max(0, value / max));
23
+ }
24
+ // `tone: "auto"` maps the usage ratio to a severity color:
25
+ // ≤75% primary, 75–90% warning, >90% error.
26
+ function toneForRatio(ratio) {
27
+ if (ratio > 0.9) {
28
+ return "error";
29
+ }
30
+ if (ratio > 0.75) {
31
+ return "warning";
32
+ }
33
+ return "primary";
34
+ }
35
+ // Pinned to en-US on purpose. A bare `toLocaleString()` reads the ambient
36
+ // locale, which differs between the server (Node) and the browser (the
37
+ // visitor's), so the same meter renders two different strings and React
38
+ // reports a hydration mismatch. A published component must be deterministic;
39
+ // apps that want localized digits pass `formatValue`.
40
+ const VALUE_FORMATTER = new Intl.NumberFormat("en-US");
41
+ function defaultFormatValue(value, max) {
42
+ const safeValue = Number.isFinite(value) ? value : 0;
43
+ const safeMax = Number.isFinite(max) ? max : 0;
44
+ return `${VALUE_FORMATTER.format(safeValue)} / ${VALUE_FORMATTER.format(safeMax)}`;
45
+ }
46
+ export const UsageMeter = forwardRef(({ className, value, max, label, unit, variant = "linear", tone = "auto", formatValue, showValue = true, size = 96, "aria-label": ariaLabel, ...props }, ref) => {
47
+ const ratio = resolveRatio(value, max);
48
+ const percent = Math.round(ratio * 100);
49
+ const resolvedTone = tone === "auto" ? toneForRatio(ratio) : tone;
50
+ const styles = toneStyles[resolvedTone];
51
+ const readout = (formatValue ?? defaultFormatValue)(value, max);
52
+ const valueText = unit ? `${readout} ${unit}` : readout;
53
+ // Prefer an explicit aria-label, then the label, then the value readout so
54
+ // assistive tech always announces something meaningful.
55
+ const accessibleLabel = ariaLabel ?? (typeof label === "string" ? label : undefined) ?? valueText;
56
+ const safeMax = Number.isFinite(max) && max > 0 ? max : 0;
57
+ const safeValue = Number.isFinite(value) ? Math.min(Math.max(value, 0), safeMax) : 0;
58
+ const meterAria = {
59
+ role: "meter",
60
+ "aria-valuenow": safeValue,
61
+ "aria-valuemin": 0,
62
+ "aria-valuemax": safeMax,
63
+ "aria-valuetext": `${percent}%`,
64
+ "aria-label": accessibleLabel,
65
+ };
66
+ if (variant === "circular") {
67
+ return (_jsx(UsageMeterCircularImpl, { ref: ref, className: className, label: label, percent: percent, valueText: showValue ? valueText : undefined, showValue: showValue, stroke: styles.stroke, ratio: ratio, size: size, meterAria: meterAria, ...props }));
68
+ }
69
+ return (_jsxs("div", { ref: ref, "data-slot": "usage-meter", className: cn("flex flex-col gap-2", className), ...props, children: [(label != null || showValue) && (_jsxs("div", { className: "flex items-baseline justify-between gap-2 text-sm", children: [label != null ? (_jsx("span", { "data-slot": "usage-meter-label", className: "font-medium text-fg", children: label })) : (_jsx("span", {})), showValue && (_jsxs("span", { "data-slot": "usage-meter-value", className: "flex items-baseline gap-2 tabular-nums text-fg-secondary", children: [_jsx("span", { children: valueText }), _jsxs("span", { className: "text-fg-tertiary", children: [percent, "%"] })] }))] })), _jsx("div", { "data-slot": "usage-meter-track", ...meterAria, className: "relative h-2 w-full overflow-hidden rounded-full bg-surface-overlay", children: _jsx("div", { "data-slot": "usage-meter-fill", className: cn("h-full rounded-full transition-[width] duration-500 ease-[var(--ease-out-quart)]", styles.fill), style: { width: `${ratio * 100}%` } }) })] }));
70
+ });
71
+ UsageMeter.displayName = "UsageMeter";
72
+ const UsageMeterCircularImpl = forwardRef(({ className, label, percent, valueText, showValue, stroke, ratio, size, meterAria, ...props }, ref) => {
73
+ // Geometry: a 12.5%-of-size stroke reads well at the ~96px default. The
74
+ // radius leaves room for the stroke so it isn't clipped by the viewBox.
75
+ const strokeWidth = Math.max(2, Math.round(size * 0.1));
76
+ const radius = size / 2 - strokeWidth / 2;
77
+ const circumference = 2 * Math.PI * radius;
78
+ const dashOffset = circumference * (1 - ratio);
79
+ return (_jsxs("div", { ref: ref, "data-slot": "usage-meter", className: cn("inline-flex flex-col items-center gap-2", className), ...props, children: [_jsxs("div", { "data-slot": "usage-meter-ring", ...meterAria, className: "relative inline-flex items-center justify-center", style: { width: size, height: size }, children: [_jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, fill: "none",
80
+ // Rotate so the ring fills clockwise from 12 o'clock.
81
+ className: cn("-rotate-90", stroke), "aria-hidden": "true", children: [_jsx("circle", { cx: size / 2, cy: size / 2, r: radius, stroke: "currentColor", strokeWidth: strokeWidth, className: "text-surface-overlay" }), _jsx("circle", { "data-slot": "usage-meter-ring-progress", cx: size / 2, cy: size / 2, r: radius, stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round", strokeDasharray: circumference, strokeDashoffset: dashOffset, className: "transition-[stroke-dashoffset] duration-500 ease-[var(--ease-out-quart)]" })] }), showValue && (_jsxs("span", { "data-slot": "usage-meter-value", className: "absolute inset-0 flex items-center justify-center font-display text-lg font-semibold tabular-nums text-fg", children: [percent, "%"] }))] }), label != null && (_jsx("div", { "data-slot": "usage-meter-label", className: "text-center text-sm font-medium text-fg", children: label })), showValue && valueText && (_jsx("div", { className: "text-center text-xs tabular-nums text-fg-secondary", children: valueText }))] }));
82
+ });
83
+ UsageMeterCircularImpl.displayName = "UsageMeterCircularImpl";
84
+ /** Thin wrapper that always renders the linear variant. */
85
+ export const UsageMeterLinear = forwardRef((props, ref) => _jsx(UsageMeter, { ref: ref, variant: "linear", ...props }));
86
+ UsageMeterLinear.displayName = "UsageMeterLinear";
87
+ /** Thin wrapper that always renders the circular variant. */
88
+ export const UsageMeterCircular = forwardRef((props, ref) => _jsx(UsageMeter, { ref: ref, variant: "circular", ...props }));
89
+ UsageMeterCircular.displayName = "UsageMeterCircular";
90
+ //# sourceMappingURL=usage-meter.js.map
@@ -0,0 +1,48 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type HTMLAttributes, type ReactNode, type Ref } from "react";
3
+ declare const videoPlayerVariants: (props?: ({
4
+ aspect?: "video" | "square" | "wide" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface VideoPlayerLabels {
7
+ /** Accessible name for the play buttons (center overlay + control bar). */
8
+ play: string;
9
+ /** Accessible name for the pause button. */
10
+ pause: string;
11
+ /** Accessible name for the mute button while audio is audible. */
12
+ mute: string;
13
+ /** Accessible name for the unmute button while audio is muted. */
14
+ unmute: string;
15
+ /** Accessible name for the seek slider. */
16
+ seek: string;
17
+ /** Accessible name for the volume slider. */
18
+ volume: string;
19
+ /** Accessible name for the playback-rate cycle button. */
20
+ settings: string;
21
+ /** Accessible name for the fullscreen button while windowed. */
22
+ fullscreen: string;
23
+ /** Accessible name for the fullscreen button while fullscreen. */
24
+ exitFullscreen: string;
25
+ }
26
+ export interface VideoPlayerProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof videoPlayerVariants> {
27
+ /** Video source URL. */
28
+ src: string;
29
+ /** Preview image shown before the first frame is available. */
30
+ poster?: string;
31
+ /** Starts playback automatically once the media can play. @default false */
32
+ autoPlay?: boolean;
33
+ /** Restarts playback from the beginning when the video ends. @default false */
34
+ loop?: boolean;
35
+ /** Starts with the audio muted. @default false */
36
+ muted?: boolean;
37
+ /** Frame aspect ratio: 16:9 (`"video"`), 1:1 (`"square"`) or 21:9 (`"wide"`). @default "video" */
38
+ aspect?: "video" | "square" | "wide";
39
+ /** Control-label overrides for i18n. Every label defaults to English. */
40
+ labels?: Partial<VideoPlayerLabels>;
41
+ /** Ref to the underlying `<video>` element, for imperative control. */
42
+ videoRef?: Ref<HTMLVideoElement>;
43
+ /** Extra media children, e.g. a captions `<track>` or additional `<source>` elements. */
44
+ children?: ReactNode;
45
+ }
46
+ export declare const VideoPlayer: import("react").ForwardRefExoticComponent<VideoPlayerProps & import("react").RefAttributes<HTMLDivElement>>;
47
+ export { videoPlayerVariants };
48
+ //# sourceMappingURL=video-player.d.ts.map