@work-rjkashyap/unified-ui 0.3.3 → 0.3.5

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 (456) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/LICENSE +21 -0
  3. package/dist/components/accordion.cjs +225 -0
  4. package/dist/components/accordion.d.cts +157 -0
  5. package/dist/components/accordion.d.ts +157 -0
  6. package/dist/components/accordion.mjs +199 -0
  7. package/dist/components/alert-dialog.cjs +246 -0
  8. package/dist/components/alert-dialog.d.cts +61 -0
  9. package/dist/components/alert-dialog.d.ts +61 -0
  10. package/dist/components/alert-dialog.mjs +218 -0
  11. package/dist/components/alert.cjs +401 -0
  12. package/dist/components/alert.d.cts +217 -0
  13. package/dist/components/alert.d.ts +217 -0
  14. package/dist/components/alert.mjs +374 -0
  15. package/dist/components/aspect-ratio.cjs +45 -0
  16. package/dist/components/aspect-ratio.d.cts +10 -0
  17. package/dist/components/aspect-ratio.d.ts +10 -0
  18. package/dist/components/aspect-ratio.mjs +23 -0
  19. package/dist/components/avatar.cjs +348 -0
  20. package/dist/components/avatar.d.cts +198 -0
  21. package/dist/components/avatar.d.ts +198 -0
  22. package/dist/components/avatar.mjs +329 -0
  23. package/dist/components/badge.cjs +325 -0
  24. package/dist/components/badge.d.cts +259 -0
  25. package/dist/components/badge.d.ts +259 -0
  26. package/dist/components/badge.mjs +298 -0
  27. package/dist/components/banner.cjs +147 -0
  28. package/dist/components/banner.d.cts +31 -0
  29. package/dist/components/banner.d.ts +31 -0
  30. package/dist/components/banner.mjs +122 -0
  31. package/dist/components/breadcrumb.cjs +266 -0
  32. package/dist/components/breadcrumb.d.cts +159 -0
  33. package/dist/components/breadcrumb.d.ts +159 -0
  34. package/dist/components/breadcrumb.mjs +235 -0
  35. package/dist/components/button.cjs +254 -0
  36. package/dist/components/button.d.cts +126 -0
  37. package/dist/components/button.d.ts +126 -0
  38. package/dist/components/button.mjs +229 -0
  39. package/dist/components/calendar.cjs +511 -0
  40. package/dist/components/calendar.d.cts +94 -0
  41. package/dist/components/calendar.d.ts +94 -0
  42. package/dist/components/calendar.mjs +492 -0
  43. package/dist/components/card.cjs +234 -0
  44. package/dist/components/card.d.cts +190 -0
  45. package/dist/components/card.d.ts +190 -0
  46. package/dist/components/card.mjs +210 -0
  47. package/dist/components/carousel.cjs +234 -0
  48. package/dist/components/carousel.d.cts +30 -0
  49. package/dist/components/carousel.d.ts +30 -0
  50. package/dist/components/carousel.mjs +217 -0
  51. package/dist/components/chart.cjs +122 -0
  52. package/dist/components/chart.d.cts +103 -0
  53. package/dist/components/chart.d.ts +103 -0
  54. package/dist/components/chart.mjs +96 -0
  55. package/dist/components/checkbox.cjs +318 -0
  56. package/dist/components/checkbox.d.cts +182 -0
  57. package/dist/components/checkbox.d.ts +182 -0
  58. package/dist/components/checkbox.mjs +296 -0
  59. package/dist/components/code-highlight.cjs +335 -0
  60. package/dist/components/code-highlight.d.cts +18 -0
  61. package/dist/components/code-highlight.d.ts +18 -0
  62. package/dist/components/code-highlight.mjs +308 -0
  63. package/dist/components/code.cjs +265 -0
  64. package/dist/components/code.d.cts +40 -0
  65. package/dist/components/code.d.ts +40 -0
  66. package/dist/components/code.mjs +243 -0
  67. package/dist/components/collapsible.cjs +143 -0
  68. package/dist/components/collapsible.d.cts +159 -0
  69. package/dist/components/collapsible.d.ts +159 -0
  70. package/dist/components/collapsible.mjs +123 -0
  71. package/dist/components/color-picker.cjs +348 -0
  72. package/dist/components/color-picker.d.cts +35 -0
  73. package/dist/components/color-picker.d.ts +35 -0
  74. package/dist/components/color-picker.mjs +331 -0
  75. package/dist/components/combobox.cjs +584 -0
  76. package/dist/components/combobox.d.cts +183 -0
  77. package/dist/components/combobox.d.ts +183 -0
  78. package/dist/components/combobox.mjs +571 -0
  79. package/dist/components/command.cjs +329 -0
  80. package/dist/components/command.d.cts +97 -0
  81. package/dist/components/command.d.ts +97 -0
  82. package/dist/components/command.mjs +311 -0
  83. package/dist/components/confirm-dialog.cjs +100 -0
  84. package/dist/components/confirm-dialog.d.cts +25 -0
  85. package/dist/components/confirm-dialog.d.ts +25 -0
  86. package/dist/components/confirm-dialog.mjs +86 -0
  87. package/dist/components/context-menu.cjs +325 -0
  88. package/dist/components/context-menu.d.cts +259 -0
  89. package/dist/components/context-menu.d.ts +259 -0
  90. package/dist/components/context-menu.mjs +290 -0
  91. package/dist/components/copy-button.cjs +203 -0
  92. package/dist/components/copy-button.d.cts +22 -0
  93. package/dist/components/copy-button.d.ts +22 -0
  94. package/dist/components/copy-button.mjs +178 -0
  95. package/dist/components/data-list.cjs +140 -0
  96. package/dist/components/data-list.d.cts +36 -0
  97. package/dist/components/data-list.d.ts +36 -0
  98. package/dist/components/data-list.mjs +113 -0
  99. package/dist/components/data-table-toolbar.cjs +338 -0
  100. package/dist/components/data-table-toolbar.d.cts +84 -0
  101. package/dist/components/data-table-toolbar.d.ts +84 -0
  102. package/dist/components/data-table-toolbar.mjs +320 -0
  103. package/dist/components/data-table.cjs +1324 -0
  104. package/dist/components/data-table.d.cts +349 -0
  105. package/dist/components/data-table.d.ts +349 -0
  106. package/dist/components/data-table.mjs +1323 -0
  107. package/dist/components/date-picker.cjs +282 -0
  108. package/dist/components/date-picker.d.cts +97 -0
  109. package/dist/components/date-picker.d.ts +97 -0
  110. package/dist/components/date-picker.mjs +258 -0
  111. package/dist/components/dialog.cjs +319 -0
  112. package/dist/components/dialog.d.cts +74 -0
  113. package/dist/components/dialog.d.ts +74 -0
  114. package/dist/components/dialog.mjs +292 -0
  115. package/dist/components/drawer.cjs +262 -0
  116. package/dist/components/drawer.d.cts +113 -0
  117. package/dist/components/drawer.d.ts +113 -0
  118. package/dist/components/drawer.mjs +230 -0
  119. package/dist/components/dropdown-menu.cjs +328 -0
  120. package/dist/components/dropdown-menu.d.cts +95 -0
  121. package/dist/components/dropdown-menu.d.ts +95 -0
  122. package/dist/components/dropdown-menu.mjs +293 -0
  123. package/dist/components/empty-state.cjs +123 -0
  124. package/dist/components/empty-state.d.cts +15 -0
  125. package/dist/components/empty-state.d.ts +15 -0
  126. package/dist/components/empty-state.mjs +99 -0
  127. package/dist/components/file-upload.cjs +442 -0
  128. package/dist/components/file-upload.d.cts +35 -0
  129. package/dist/components/file-upload.d.ts +35 -0
  130. package/dist/components/file-upload.mjs +423 -0
  131. package/dist/components/form-field.cjs +191 -0
  132. package/dist/components/form-field.d.cts +163 -0
  133. package/dist/components/form-field.d.ts +163 -0
  134. package/dist/components/form-field.mjs +167 -0
  135. package/dist/components/hover-card.cjs +99 -0
  136. package/dist/components/hover-card.d.cts +28 -0
  137. package/dist/components/hover-card.d.ts +28 -0
  138. package/dist/components/hover-card.mjs +75 -0
  139. package/dist/components/image-gallery.cjs +359 -0
  140. package/dist/components/image-gallery.d.cts +46 -0
  141. package/dist/components/image-gallery.d.ts +46 -0
  142. package/dist/components/image-gallery.mjs +340 -0
  143. package/dist/components/index.cjs +719 -0
  144. package/dist/components/index.d.cts +84 -0
  145. package/dist/components/index.d.ts +84 -0
  146. package/dist/components/index.mjs +771 -0
  147. package/dist/components/infinite-scroll.cjs +95 -0
  148. package/dist/components/infinite-scroll.d.cts +54 -0
  149. package/dist/components/infinite-scroll.d.ts +54 -0
  150. package/dist/components/infinite-scroll.mjs +71 -0
  151. package/dist/components/input-group.cjs +202 -0
  152. package/dist/components/input-group.d.cts +22 -0
  153. package/dist/components/input-group.d.ts +22 -0
  154. package/dist/components/input-group.mjs +178 -0
  155. package/dist/components/input.cjs +318 -0
  156. package/dist/components/input.d.cts +99 -0
  157. package/dist/components/input.d.ts +99 -0
  158. package/dist/components/input.mjs +296 -0
  159. package/dist/components/kbd.cjs +69 -0
  160. package/dist/components/kbd.d.cts +25 -0
  161. package/dist/components/kbd.d.ts +25 -0
  162. package/dist/components/kbd.mjs +44 -0
  163. package/dist/components/label.cjs +138 -0
  164. package/dist/components/label.d.cts +91 -0
  165. package/dist/components/label.d.ts +91 -0
  166. package/dist/components/label.mjs +113 -0
  167. package/dist/components/markdown.cjs +179 -0
  168. package/dist/components/markdown.d.cts +41 -0
  169. package/dist/components/markdown.d.ts +41 -0
  170. package/dist/components/markdown.mjs +155 -0
  171. package/dist/components/menubar.cjs +365 -0
  172. package/dist/components/menubar.d.cts +88 -0
  173. package/dist/components/menubar.d.ts +88 -0
  174. package/dist/components/menubar.mjs +329 -0
  175. package/dist/components/navigation-menu.cjs +280 -0
  176. package/dist/components/navigation-menu.d.cts +123 -0
  177. package/dist/components/navigation-menu.d.ts +123 -0
  178. package/dist/components/navigation-menu.mjs +250 -0
  179. package/dist/components/number-input.cjs +419 -0
  180. package/dist/components/number-input.d.cts +111 -0
  181. package/dist/components/number-input.d.ts +111 -0
  182. package/dist/components/number-input.mjs +400 -0
  183. package/dist/components/pagination.cjs +322 -0
  184. package/dist/components/pagination.d.cts +119 -0
  185. package/dist/components/pagination.d.ts +119 -0
  186. package/dist/components/pagination.mjs +297 -0
  187. package/dist/components/pin-input.cjs +321 -0
  188. package/dist/components/pin-input.d.cts +112 -0
  189. package/dist/components/pin-input.d.ts +112 -0
  190. package/dist/components/pin-input.mjs +303 -0
  191. package/dist/components/popover.cjs +194 -0
  192. package/dist/components/popover.d.cts +108 -0
  193. package/dist/components/popover.d.ts +108 -0
  194. package/dist/components/popover.mjs +168 -0
  195. package/dist/components/progress.cjs +237 -0
  196. package/dist/components/progress.d.cts +137 -0
  197. package/dist/components/progress.d.ts +137 -0
  198. package/dist/components/progress.mjs +211 -0
  199. package/dist/components/radio.cjs +344 -0
  200. package/dist/components/radio.d.cts +145 -0
  201. package/dist/components/radio.d.ts +145 -0
  202. package/dist/components/radio.mjs +320 -0
  203. package/dist/components/resizable.cjs +121 -0
  204. package/dist/components/resizable.d.cts +23 -0
  205. package/dist/components/resizable.d.ts +23 -0
  206. package/dist/components/resizable.mjs +99 -0
  207. package/dist/components/scroll-area.cjs +168 -0
  208. package/dist/components/scroll-area.d.cts +131 -0
  209. package/dist/components/scroll-area.d.ts +131 -0
  210. package/dist/components/scroll-area.mjs +143 -0
  211. package/dist/components/search-input.cjs +261 -0
  212. package/dist/components/search-input.d.cts +26 -0
  213. package/dist/components/search-input.d.ts +26 -0
  214. package/dist/components/search-input.mjs +243 -0
  215. package/dist/components/select.cjs +320 -0
  216. package/dist/components/select.d.cts +55 -0
  217. package/dist/components/select.d.ts +55 -0
  218. package/dist/components/select.mjs +288 -0
  219. package/dist/components/separator.cjs +193 -0
  220. package/dist/components/separator.d.cts +92 -0
  221. package/dist/components/separator.d.ts +92 -0
  222. package/dist/components/separator.mjs +170 -0
  223. package/dist/components/sheet.cjs +399 -0
  224. package/dist/components/sheet.d.cts +219 -0
  225. package/dist/components/sheet.d.ts +219 -0
  226. package/dist/components/sheet.mjs +379 -0
  227. package/dist/components/sidebar.cjs +1077 -0
  228. package/dist/components/sidebar.d.cts +733 -0
  229. package/dist/components/sidebar.d.ts +733 -0
  230. package/dist/components/sidebar.mjs +1033 -0
  231. package/dist/components/skeleton.cjs +210 -0
  232. package/dist/components/skeleton.d.cts +202 -0
  233. package/dist/components/skeleton.d.ts +202 -0
  234. package/dist/components/skeleton.mjs +182 -0
  235. package/dist/components/slider.cjs +319 -0
  236. package/dist/components/slider.d.cts +82 -0
  237. package/dist/components/slider.d.ts +82 -0
  238. package/dist/components/slider.mjs +296 -0
  239. package/dist/components/sonner.cjs +119 -0
  240. package/dist/components/sonner.d.cts +60 -0
  241. package/dist/components/sonner.d.ts +60 -0
  242. package/dist/components/sonner.mjs +94 -0
  243. package/dist/components/spinner.cjs +238 -0
  244. package/dist/components/spinner.d.cts +101 -0
  245. package/dist/components/spinner.d.ts +101 -0
  246. package/dist/components/spinner.mjs +213 -0
  247. package/dist/components/stat.cjs +180 -0
  248. package/dist/components/stat.d.cts +21 -0
  249. package/dist/components/stat.d.ts +21 -0
  250. package/dist/components/stat.mjs +161 -0
  251. package/dist/components/steps.cjs +228 -0
  252. package/dist/components/steps.d.cts +76 -0
  253. package/dist/components/steps.d.ts +76 -0
  254. package/dist/components/steps.mjs +207 -0
  255. package/dist/components/switch.cjs +243 -0
  256. package/dist/components/switch.d.cts +90 -0
  257. package/dist/components/switch.d.ts +90 -0
  258. package/dist/components/switch.mjs +228 -0
  259. package/dist/components/table.cjs +381 -0
  260. package/dist/components/table.d.cts +181 -0
  261. package/dist/components/table.d.ts +181 -0
  262. package/dist/components/table.mjs +349 -0
  263. package/dist/components/tabs.cjs +326 -0
  264. package/dist/components/tabs.d.cts +154 -0
  265. package/dist/components/tabs.d.ts +154 -0
  266. package/dist/components/tabs.mjs +304 -0
  267. package/dist/components/textarea.cjs +258 -0
  268. package/dist/components/textarea.d.cts +112 -0
  269. package/dist/components/textarea.d.ts +112 -0
  270. package/dist/components/textarea.mjs +233 -0
  271. package/dist/components/theme-toggle.cjs +282 -0
  272. package/dist/components/theme-toggle.d.cts +58 -0
  273. package/dist/components/theme-toggle.d.ts +58 -0
  274. package/dist/components/theme-toggle.mjs +258 -0
  275. package/dist/components/timeline.cjs +178 -0
  276. package/dist/components/timeline.d.cts +41 -0
  277. package/dist/components/timeline.d.ts +41 -0
  278. package/dist/components/timeline.mjs +157 -0
  279. package/dist/components/toast.cjs +546 -0
  280. package/dist/components/toast.d.cts +169 -0
  281. package/dist/components/toast.d.ts +169 -0
  282. package/dist/components/toast.mjs +528 -0
  283. package/dist/components/toggle-group.cjs +204 -0
  284. package/dist/components/toggle-group.d.cts +215 -0
  285. package/dist/components/toggle-group.d.ts +215 -0
  286. package/dist/components/toggle-group.mjs +180 -0
  287. package/dist/components/toggle.cjs +155 -0
  288. package/dist/components/toggle.d.cts +100 -0
  289. package/dist/components/toggle.d.ts +100 -0
  290. package/dist/components/toggle.mjs +130 -0
  291. package/dist/components/tooltip.cjs +155 -0
  292. package/dist/components/tooltip.d.cts +129 -0
  293. package/dist/components/tooltip.d.ts +129 -0
  294. package/dist/components/tooltip.mjs +132 -0
  295. package/dist/components/tree-view.cjs +450 -0
  296. package/dist/components/tree-view.d.cts +67 -0
  297. package/dist/components/tree-view.d.ts +67 -0
  298. package/dist/components/tree-view.mjs +433 -0
  299. package/dist/components/video-player.cjs +344 -0
  300. package/dist/components/video-player.d.cts +34 -0
  301. package/dist/components/video-player.d.ts +34 -0
  302. package/dist/components/video-player.mjs +320 -0
  303. package/dist/components/virtual-list.cjs +153 -0
  304. package/dist/components/virtual-list.d.cts +53 -0
  305. package/dist/components/virtual-list.d.ts +53 -0
  306. package/dist/components/virtual-list.mjs +136 -0
  307. package/dist/components/visually-hidden.cjs +43 -0
  308. package/dist/components/visually-hidden.d.cts +9 -0
  309. package/dist/components/visually-hidden.d.ts +9 -0
  310. package/dist/components/visually-hidden.mjs +21 -0
  311. package/dist/index.cjs +1081 -1933
  312. package/dist/index.d.cts +99 -11
  313. package/dist/index.d.ts +99 -11
  314. package/dist/index.mjs +1138 -16
  315. package/dist/motion/hooks.cjs +98 -0
  316. package/dist/motion/hooks.d.cts +32 -0
  317. package/dist/motion/hooks.d.ts +32 -0
  318. package/dist/motion/hooks.mjs +70 -0
  319. package/dist/motion/index.cjs +157 -0
  320. package/dist/motion/index.d.cts +5 -0
  321. package/dist/motion/index.d.ts +5 -0
  322. package/dist/motion/index.mjs +137 -0
  323. package/dist/motion/presets.cjs +609 -0
  324. package/dist/{motion.d.ts → motion/presets.d.cts} +1 -30
  325. package/dist/{motion.d.cts → motion/presets.d.ts} +1 -30
  326. package/dist/{chunk-PLRSH37T.mjs → motion/presets.mjs} +119 -126
  327. package/dist/primitives/container.cjs +88 -0
  328. package/dist/primitives/container.d.cts +82 -0
  329. package/dist/primitives/container.d.ts +82 -0
  330. package/dist/primitives/container.mjs +64 -0
  331. package/dist/primitives/divider.cjs +74 -0
  332. package/dist/primitives/divider.d.cts +30 -0
  333. package/dist/primitives/divider.d.ts +30 -0
  334. package/dist/primitives/divider.mjs +50 -0
  335. package/dist/primitives/index.cjs +54 -0
  336. package/dist/primitives/index.d.cts +6 -0
  337. package/dist/primitives/index.d.ts +6 -0
  338. package/dist/primitives/index.mjs +33 -0
  339. package/dist/primitives/stack.cjs +167 -0
  340. package/dist/primitives/stack.d.cts +132 -0
  341. package/dist/primitives/stack.d.ts +132 -0
  342. package/dist/primitives/stack.mjs +142 -0
  343. package/dist/primitives/typography.cjs +260 -0
  344. package/dist/primitives/typography.d.cts +157 -0
  345. package/dist/primitives/typography.d.ts +157 -0
  346. package/dist/primitives/typography.mjs +229 -0
  347. package/dist/theme/contract.cjs +246 -0
  348. package/dist/theme/contract.d.cts +76 -0
  349. package/dist/theme/contract.d.ts +76 -0
  350. package/dist/theme/contract.mjs +221 -0
  351. package/dist/theme/customizer-store.cjs +266 -0
  352. package/dist/theme/customizer-store.d.cts +76 -0
  353. package/dist/theme/customizer-store.d.ts +76 -0
  354. package/dist/theme/customizer-store.mjs +261 -0
  355. package/dist/theme/customizer.cjs +812 -0
  356. package/dist/theme/customizer.d.cts +13 -0
  357. package/dist/theme/customizer.d.ts +13 -0
  358. package/dist/theme/customizer.mjs +803 -0
  359. package/dist/theme/index.cjs +105 -0
  360. package/dist/theme/index.d.cts +13 -0
  361. package/dist/theme/index.d.ts +13 -0
  362. package/dist/theme/index.mjs +87 -0
  363. package/dist/theme/presets.cjs +1205 -0
  364. package/dist/theme/presets.d.cts +232 -0
  365. package/dist/theme/presets.d.ts +232 -0
  366. package/dist/theme/presets.mjs +1175 -0
  367. package/dist/theme/provider.cjs +122 -0
  368. package/dist/theme/provider.d.cts +57 -0
  369. package/dist/theme/provider.d.ts +57 -0
  370. package/dist/theme/provider.mjs +104 -0
  371. package/dist/{chunk-IVZAB7BV.mjs → tokens/colors.cjs} +212 -86
  372. package/dist/{z-index-Dd8IllRx.d.cts → tokens/colors.d.cts} +235 -72
  373. package/dist/{z-index-Dd8IllRx.d.ts → tokens/colors.d.ts} +235 -72
  374. package/dist/{chunk-ZBGR7MUW.cjs → tokens/colors.mjs} +165 -104
  375. package/dist/tokens/index.cjs +96 -0
  376. package/dist/tokens/index.d.cts +7 -0
  377. package/dist/tokens/index.d.ts +7 -0
  378. package/dist/tokens/index.mjs +71 -0
  379. package/dist/{chunk-XCKK6P46.cjs → tokens/motion.cjs} +46 -18
  380. package/dist/{motion-D9wQbcKL.d.cts → tokens/motion.d.cts} +1 -1
  381. package/dist/{motion-D9wQbcKL.d.ts → tokens/motion.d.ts} +1 -1
  382. package/dist/{chunk-EZ2L3XPS.mjs → tokens/motion.mjs} +16 -10
  383. package/dist/tokens/radius.cjs +41 -0
  384. package/dist/tokens/radius.d.cts +18 -0
  385. package/dist/tokens/radius.d.ts +18 -0
  386. package/dist/tokens/radius.mjs +17 -0
  387. package/dist/tokens/shadows.cjs +57 -0
  388. package/dist/tokens/shadows.d.cts +32 -0
  389. package/dist/tokens/shadows.d.ts +32 -0
  390. package/dist/tokens/shadows.mjs +32 -0
  391. package/dist/tokens/spacing.cjs +51 -0
  392. package/dist/tokens/spacing.d.cts +26 -0
  393. package/dist/tokens/spacing.d.ts +26 -0
  394. package/dist/{chunk-NMPHV6ZD.mjs → tokens/spacing.mjs} +4 -4
  395. package/dist/{chunk-ECIGDEAH.cjs → tokens/typography.cjs} +43 -16
  396. package/dist/{typography-DlvVjEdE.d.ts → tokens/typography.d.cts} +1 -1
  397. package/dist/{typography-DlvVjEdE.d.cts → tokens/typography.d.ts} +1 -1
  398. package/dist/{chunk-ITBG42M5.mjs → tokens/typography.mjs} +14 -9
  399. package/dist/tokens/z-index.cjs +47 -0
  400. package/dist/tokens/z-index.d.cts +24 -0
  401. package/dist/tokens/z-index.d.ts +24 -0
  402. package/dist/tokens/z-index.mjs +23 -0
  403. package/dist/utils/cn.cjs +102 -0
  404. package/dist/utils/cn.d.cts +84 -0
  405. package/dist/utils/cn.d.ts +84 -0
  406. package/dist/{chunk-ZT3PCXDF.mjs → utils/cn.mjs} +14 -7
  407. package/dist/{chunk-33QEKXRQ.cjs → utils/contrast.cjs} +68 -38
  408. package/dist/utils/contrast.d.cts +209 -0
  409. package/dist/utils/contrast.d.ts +209 -0
  410. package/dist/{chunk-5NZDQWRV.mjs → utils/contrast.mjs} +27 -18
  411. package/dist/utils/focus-ring.cjs +81 -0
  412. package/dist/utils/focus-ring.d.cts +80 -0
  413. package/dist/utils/focus-ring.d.ts +80 -0
  414. package/dist/utils/focus-ring.mjs +47 -0
  415. package/dist/utils/index.cjs +107 -0
  416. package/dist/utils/index.d.cts +6 -0
  417. package/dist/utils/index.d.ts +6 -0
  418. package/dist/utils/index.mjs +88 -0
  419. package/dist/utils/types.cjs +38 -0
  420. package/dist/utils/types.d.cts +187 -0
  421. package/dist/utils/types.d.ts +187 -0
  422. package/dist/utils/types.mjs +13 -0
  423. package/package.json +191 -191
  424. package/dist/chunk-2JFREULQ.cjs +0 -29
  425. package/dist/chunk-3EHT6IOA.cjs +0 -49
  426. package/dist/chunk-4ON3M3OM.cjs +0 -73
  427. package/dist/chunk-5TP7J7T4.cjs +0 -1766
  428. package/dist/chunk-A2DGHQL2.cjs +0 -21808
  429. package/dist/chunk-EQWESXRH.mjs +0 -1735
  430. package/dist/chunk-F4JJFWWU.cjs +0 -604
  431. package/dist/chunk-FUWXGHWQ.cjs +0 -468
  432. package/dist/chunk-MBYCK2JJ.mjs +0 -37
  433. package/dist/chunk-OHEH57BV.mjs +0 -455
  434. package/dist/chunk-XAIUX2YS.mjs +0 -21477
  435. package/dist/components.cjs +0 -1247
  436. package/dist/components.d.cts +0 -7881
  437. package/dist/components.d.ts +0 -7881
  438. package/dist/components.mjs +0 -6
  439. package/dist/motion.cjs +0 -264
  440. package/dist/motion.mjs +0 -3
  441. package/dist/primitives.cjs +0 -57
  442. package/dist/primitives.d.cts +0 -390
  443. package/dist/primitives.d.ts +0 -390
  444. package/dist/primitives.mjs +0 -4
  445. package/dist/theme.cjs +0 -131
  446. package/dist/theme.d.cts +0 -414
  447. package/dist/theme.d.ts +0 -414
  448. package/dist/theme.mjs +0 -6
  449. package/dist/tokens.cjs +0 -137
  450. package/dist/tokens.d.cts +0 -30
  451. package/dist/tokens.d.ts +0 -30
  452. package/dist/tokens.mjs +0 -4
  453. package/dist/utils.cjs +0 -164
  454. package/dist/utils.d.cts +0 -525
  455. package/dist/utils.d.ts +0 -525
  456. package/dist/utils.mjs +0 -3
@@ -0,0 +1,217 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../utils/cn";
4
+ import { focusRingClasses } from "../utils/focus-ring";
5
+ import { AnimatePresence, motion, useReducedMotion } from "framer-motion";
6
+ import {
7
+ createContext,
8
+ forwardRef,
9
+ useCallback,
10
+ useContext,
11
+ useEffect,
12
+ useRef,
13
+ useState
14
+ } from "react";
15
+ const CarouselContext = createContext({
16
+ current: 0,
17
+ total: 0,
18
+ prev: () => {
19
+ },
20
+ next: () => {
21
+ },
22
+ goTo: () => {
23
+ },
24
+ direction: "right",
25
+ orientation: "horizontal"
26
+ });
27
+ function useCarouselContext() {
28
+ return useContext(CarouselContext);
29
+ }
30
+ function ChevronLeftIcon({ className }) {
31
+ return /* @__PURE__ */ jsx(
32
+ "svg",
33
+ {
34
+ className,
35
+ xmlns: "http://www.w3.org/2000/svg",
36
+ viewBox: "0 0 24 24",
37
+ fill: "none",
38
+ stroke: "currentColor",
39
+ strokeWidth: "2",
40
+ strokeLinecap: "round",
41
+ strokeLinejoin: "round",
42
+ "aria-hidden": "true",
43
+ children: /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" })
44
+ }
45
+ );
46
+ }
47
+ function ChevronRightIcon({ className }) {
48
+ return /* @__PURE__ */ jsx(
49
+ "svg",
50
+ {
51
+ className,
52
+ xmlns: "http://www.w3.org/2000/svg",
53
+ viewBox: "0 0 24 24",
54
+ fill: "none",
55
+ stroke: "currentColor",
56
+ strokeWidth: "2",
57
+ strokeLinecap: "round",
58
+ strokeLinejoin: "round",
59
+ "aria-hidden": "true",
60
+ children: /* @__PURE__ */ jsx("path", { d: "m9 18 6-6-6-6" })
61
+ }
62
+ );
63
+ }
64
+ const Carousel = forwardRef(
65
+ function Carousel2({
66
+ items,
67
+ defaultIndex = 0,
68
+ index: controlledIndex,
69
+ onIndexChange,
70
+ orientation = "horizontal",
71
+ autoplay = false,
72
+ autoplayInterval = 3e3,
73
+ loop = true,
74
+ showArrows = true,
75
+ showDots = true,
76
+ className,
77
+ itemClassName
78
+ }, ref) {
79
+ const shouldReduce = useReducedMotion();
80
+ const [internalIndex, setInternalIndex] = useState(defaultIndex);
81
+ const [direction, setDirection] = useState("right");
82
+ const autoplayRef = useRef(null);
83
+ const current = controlledIndex !== void 0 ? controlledIndex : internalIndex;
84
+ const total = items.length;
85
+ const goTo = useCallback(
86
+ (i, dir) => {
87
+ const next2 = loop ? (i % total + total) % total : Math.max(0, Math.min(total - 1, i));
88
+ const resolvedDir = dir ?? (next2 > current ? "right" : "left");
89
+ setDirection(resolvedDir);
90
+ if (controlledIndex === void 0) setInternalIndex(next2);
91
+ onIndexChange?.(next2);
92
+ },
93
+ [current, total, loop, controlledIndex, onIndexChange]
94
+ );
95
+ const prev = useCallback(() => goTo(current - 1, "left"), [current, goTo]);
96
+ const next = useCallback(() => goTo(current + 1, "right"), [current, goTo]);
97
+ useEffect(() => {
98
+ if (!autoplay) return;
99
+ autoplayRef.current = setInterval(next, autoplayInterval);
100
+ return () => {
101
+ if (autoplayRef.current) clearInterval(autoplayRef.current);
102
+ };
103
+ }, [autoplay, autoplayInterval, next]);
104
+ const isHorizontal = orientation === "horizontal";
105
+ const slideVariants = {
106
+ initial: shouldReduce ? { opacity: 0 } : {
107
+ opacity: 0,
108
+ x: isHorizontal ? direction === "right" ? "100%" : "-100%" : 0,
109
+ y: !isHorizontal ? direction === "right" ? "100%" : "-100%" : 0
110
+ },
111
+ animate: { opacity: 1, x: 0, y: 0 },
112
+ exit: shouldReduce ? { opacity: 0 } : {
113
+ opacity: 0,
114
+ x: isHorizontal ? direction === "right" ? "-100%" : "100%" : 0,
115
+ y: !isHorizontal ? direction === "right" ? "-100%" : "100%" : 0
116
+ }
117
+ };
118
+ return /* @__PURE__ */ jsx(
119
+ CarouselContext.Provider,
120
+ {
121
+ value: { current, total, prev, next, goTo, direction, orientation },
122
+ children: /* @__PURE__ */ jsxs(
123
+ "div",
124
+ {
125
+ ref,
126
+ className: cn("relative overflow-hidden rounded-lg", className),
127
+ "data-ds": "",
128
+ "data-ds-component": "carousel",
129
+ "data-ds-orientation": orientation,
130
+ role: "region",
131
+ "aria-roledescription": "carousel",
132
+ "aria-label": "Content carousel",
133
+ children: [
134
+ /* @__PURE__ */ jsx("div", { className: "relative overflow-hidden", children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", initial: false, custom: direction, children: /* @__PURE__ */ jsx(
135
+ motion.div,
136
+ {
137
+ className: cn("w-full", itemClassName),
138
+ variants: slideVariants,
139
+ initial: "initial",
140
+ animate: "animate",
141
+ exit: "exit",
142
+ transition: { duration: 0.35, ease: [0.4, 0, 0.2, 1] },
143
+ "aria-roledescription": "slide",
144
+ "aria-label": `Slide ${current + 1} of ${total}`,
145
+ "data-ds-animated": "",
146
+ children: items[current]
147
+ },
148
+ current
149
+ ) }) }),
150
+ showArrows && total > 1 && /* @__PURE__ */ jsxs(Fragment, { children: [
151
+ /* @__PURE__ */ jsx(
152
+ "button",
153
+ {
154
+ type: "button",
155
+ onClick: prev,
156
+ disabled: !loop && current === 0,
157
+ className: cn(
158
+ "absolute left-3 top-1/2 -translate-y-1/2 z-10",
159
+ "inline-flex items-center justify-center size-9 rounded-full",
160
+ "bg-background/90 border border-border shadow-sm",
161
+ "text-foreground hover:bg-background",
162
+ "transition-colors duration-fast",
163
+ "disabled:opacity-30 disabled:pointer-events-none",
164
+ focusRingClasses
165
+ ),
166
+ "aria-label": "Previous slide",
167
+ children: /* @__PURE__ */ jsx(ChevronLeftIcon, { className: "size-4" })
168
+ }
169
+ ),
170
+ /* @__PURE__ */ jsx(
171
+ "button",
172
+ {
173
+ type: "button",
174
+ onClick: next,
175
+ disabled: !loop && current === total - 1,
176
+ className: cn(
177
+ "absolute right-3 top-1/2 -translate-y-1/2 z-10",
178
+ "inline-flex items-center justify-center size-9 rounded-full",
179
+ "bg-background/90 border border-border shadow-sm",
180
+ "text-foreground hover:bg-background",
181
+ "transition-colors duration-fast",
182
+ "disabled:opacity-30 disabled:pointer-events-none",
183
+ focusRingClasses
184
+ ),
185
+ "aria-label": "Next slide",
186
+ children: /* @__PURE__ */ jsx(ChevronRightIcon, { className: "size-4" })
187
+ }
188
+ )
189
+ ] }),
190
+ showDots && total > 1 && /* @__PURE__ */ jsx("div", { className: "absolute bottom-3 left-0 right-0 flex justify-center gap-1.5 z-10", children: Array.from({ length: total }, (_, i) => /* @__PURE__ */ jsx(
191
+ "button",
192
+ {
193
+ type: "button",
194
+ onClick: () => goTo(i),
195
+ "aria-label": `Go to slide ${i + 1}`,
196
+ "aria-current": i === current ? "true" : void 0,
197
+ className: cn(
198
+ "rounded-full transition-all duration-fast",
199
+ "bg-background/80 hover:bg-background",
200
+ i === current ? "w-4 h-2" : "size-2 opacity-60 hover:opacity-100",
201
+ focusRingClasses
202
+ )
203
+ },
204
+ `slide-${i}`
205
+ )) })
206
+ ]
207
+ }
208
+ )
209
+ }
210
+ );
211
+ }
212
+ );
213
+ Carousel.displayName = "Carousel";
214
+ export {
215
+ Carousel,
216
+ useCarouselContext
217
+ };
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var chart_exports = {};
21
+ __export(chart_exports, {
22
+ ChartContainer: () => ChartContainer,
23
+ ChartTooltipContent: () => ChartTooltipContent,
24
+ chartColors: () => chartColors
25
+ });
26
+ module.exports = __toCommonJS(chart_exports);
27
+ var import_jsx_runtime = require("react/jsx-runtime");
28
+ var import_cn = require("../utils/cn");
29
+ var import_react = require("react");
30
+ const chartColors = [
31
+ "var(--primary)",
32
+ "var(--info)",
33
+ "var(--success)",
34
+ "var(--warning)",
35
+ "var(--danger)",
36
+ "var(--secondary)",
37
+ "var(--muted-foreground)",
38
+ "oklch(0.65 0.15 250)",
39
+ // sky
40
+ "oklch(0.65 0.15 160)",
41
+ // emerald
42
+ "oklch(0.65 0.15 30)"
43
+ // amber
44
+ ];
45
+ const ChartContainer = (0, import_react.forwardRef)(
46
+ function ChartContainer2({
47
+ title,
48
+ description,
49
+ height = 350,
50
+ children,
51
+ footer,
52
+ loading = false,
53
+ loadingIndicator,
54
+ emptyContent,
55
+ className
56
+ }, ref) {
57
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
58
+ "div",
59
+ {
60
+ ref,
61
+ className: (0, import_cn.cn)(
62
+ "rounded-lg border border-border bg-background p-4",
63
+ className
64
+ ),
65
+ "data-ds": "",
66
+ "data-ds-component": "chart",
67
+ children: [
68
+ (title || description) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mb-4 space-y-1", children: [
69
+ title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-base font-semibold text-foreground", children: title }),
70
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-muted-foreground", children: description })
71
+ ] }),
72
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative", style: { height }, children: loading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: loadingIndicator ?? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "size-6 animate-spin rounded-full border-2 border-border border-t-primary" }) }) : emptyContent ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute inset-0 flex items-center justify-center text-sm text-muted-foreground", children: emptyContent }) : children }),
73
+ footer && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-4 border-t border-border pt-3 text-sm text-muted-foreground", children: footer })
74
+ ]
75
+ }
76
+ );
77
+ }
78
+ );
79
+ ChartContainer.displayName = "ChartContainer";
80
+ function ChartTooltipContent({
81
+ label,
82
+ payload,
83
+ active,
84
+ formatter,
85
+ className
86
+ }) {
87
+ if (!active || !payload?.length) return null;
88
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
89
+ "div",
90
+ {
91
+ className: (0, import_cn.cn)(
92
+ "rounded-lg border border-border bg-background px-3 py-2 shadow-lg",
93
+ "text-sm",
94
+ className
95
+ ),
96
+ children: [
97
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "font-medium text-foreground mb-1", children: label }),
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-0.5", children: payload.map((entry) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
99
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
100
+ "div",
101
+ {
102
+ className: "size-2.5 rounded-full shrink-0",
103
+ style: { backgroundColor: entry.color ?? entry.fill }
104
+ }
105
+ ),
106
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "text-muted-foreground", children: [
107
+ entry.name,
108
+ ":"
109
+ ] }),
110
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-medium text-foreground ml-auto tabular-nums", children: formatter ? formatter(entry.value, entry.name) : entry.value })
111
+ ] }, entry.name)) })
112
+ ]
113
+ }
114
+ );
115
+ }
116
+ ChartTooltipContent.displayName = "ChartTooltipContent";
117
+ // Annotate the CommonJS export names for ESM import in node:
118
+ 0 && (module.exports = {
119
+ ChartContainer,
120
+ ChartTooltipContent,
121
+ chartColors
122
+ });
@@ -0,0 +1,103 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { ReactNode } from 'react';
4
+
5
+ interface ChartContainerProps {
6
+ /** Chart title. */
7
+ title?: string;
8
+ /** Chart description/subtitle. */
9
+ description?: string;
10
+ /** Chart height in pixels. @default 350 */
11
+ height?: number;
12
+ /** The Recharts chart component(s) to render. */
13
+ children: ReactNode;
14
+ /** Footer content (e.g., legend, notes). */
15
+ footer?: ReactNode;
16
+ /** Whether data is loading. @default false */
17
+ loading?: boolean;
18
+ /** Custom loading indicator. */
19
+ loadingIndicator?: ReactNode;
20
+ /** Content to show when chart has no data. */
21
+ emptyContent?: ReactNode;
22
+ /** Additional CSS classes. */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * Design system chart colors. Use these as `fill` or `stroke` values
27
+ * in Recharts components for consistent theming.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <Bar dataKey="revenue" fill={chartColors[0]} />
32
+ * <Bar dataKey="expenses" fill={chartColors[1]} />
33
+ * ```
34
+ */
35
+ declare const chartColors: readonly ["var(--primary)", "var(--info)", "var(--success)", "var(--warning)", "var(--danger)", "var(--secondary)", "var(--muted-foreground)", "oklch(0.65 0.15 250)", "oklch(0.65 0.15 160)", "oklch(0.65 0.15 30)"];
36
+ /**
37
+ * `ChartContainer` — a card wrapper for Recharts charts with DS styling.
38
+ *
39
+ * Place your Recharts `<BarChart>`, `<LineChart>`, `<PieChart>`, etc.
40
+ * as children. The container provides a responsive wrapper, title, and
41
+ * optional footer.
42
+ *
43
+ * **Important**: This component does NOT bundle Recharts. You must install
44
+ * `recharts` separately as a peer dependency.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * import { ChartContainer, chartColors } from "@work-rjkashyap/unified-ui/components";
49
+ * import { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, Tooltip } from "recharts";
50
+ *
51
+ * <ChartContainer title="Monthly Revenue" description="Last 6 months">
52
+ * <ResponsiveContainer width="100%" height="100%">
53
+ * <BarChart data={data}>
54
+ * <XAxis dataKey="month" stroke="var(--muted-foreground)" fontSize={12} />
55
+ * <YAxis stroke="var(--muted-foreground)" fontSize={12} />
56
+ * <Tooltip
57
+ * contentStyle={{
58
+ * background: "var(--background)",
59
+ * border: "1px solid var(--border)",
60
+ * borderRadius: "var(--radius-md)",
61
+ * fontSize: 13,
62
+ * }}
63
+ * />
64
+ * <Bar dataKey="revenue" fill={chartColors[0]} radius={[4, 4, 0, 0]} />
65
+ * </BarChart>
66
+ * </ResponsiveContainer>
67
+ * </ChartContainer>
68
+ * ```
69
+ */
70
+ declare const ChartContainer: react.ForwardRefExoticComponent<ChartContainerProps & react.RefAttributes<HTMLDivElement>>;
71
+ interface ChartTooltipContentProps {
72
+ /** Label for the tooltip header. */
73
+ label?: string;
74
+ /** Payload from Recharts tooltip. */
75
+ payload?: Array<{
76
+ name: string;
77
+ value: number | string;
78
+ color?: string;
79
+ fill?: string;
80
+ }>;
81
+ /** Whether the tooltip is active. */
82
+ active?: boolean;
83
+ /** Custom formatter for values. */
84
+ formatter?: (value: number | string, name: string) => string;
85
+ /** Additional class names. */
86
+ className?: string;
87
+ }
88
+ /**
89
+ * `ChartTooltipContent` — a pre-styled tooltip content component for Recharts.
90
+ *
91
+ * Use as the `content` prop of Recharts' `<Tooltip>`:
92
+ *
93
+ * @example
94
+ * ```tsx
95
+ * <Tooltip content={<ChartTooltipContent />} />
96
+ * ```
97
+ */
98
+ declare function ChartTooltipContent({ label, payload, active, formatter, className, }: ChartTooltipContentProps): react_jsx_runtime.JSX.Element | null;
99
+ declare namespace ChartTooltipContent {
100
+ var displayName: string;
101
+ }
102
+
103
+ export { ChartContainer, type ChartContainerProps, ChartTooltipContent, type ChartTooltipContentProps, chartColors };
@@ -0,0 +1,103 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { ReactNode } from 'react';
4
+
5
+ interface ChartContainerProps {
6
+ /** Chart title. */
7
+ title?: string;
8
+ /** Chart description/subtitle. */
9
+ description?: string;
10
+ /** Chart height in pixels. @default 350 */
11
+ height?: number;
12
+ /** The Recharts chart component(s) to render. */
13
+ children: ReactNode;
14
+ /** Footer content (e.g., legend, notes). */
15
+ footer?: ReactNode;
16
+ /** Whether data is loading. @default false */
17
+ loading?: boolean;
18
+ /** Custom loading indicator. */
19
+ loadingIndicator?: ReactNode;
20
+ /** Content to show when chart has no data. */
21
+ emptyContent?: ReactNode;
22
+ /** Additional CSS classes. */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * Design system chart colors. Use these as `fill` or `stroke` values
27
+ * in Recharts components for consistent theming.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <Bar dataKey="revenue" fill={chartColors[0]} />
32
+ * <Bar dataKey="expenses" fill={chartColors[1]} />
33
+ * ```
34
+ */
35
+ declare const chartColors: readonly ["var(--primary)", "var(--info)", "var(--success)", "var(--warning)", "var(--danger)", "var(--secondary)", "var(--muted-foreground)", "oklch(0.65 0.15 250)", "oklch(0.65 0.15 160)", "oklch(0.65 0.15 30)"];
36
+ /**
37
+ * `ChartContainer` — a card wrapper for Recharts charts with DS styling.
38
+ *
39
+ * Place your Recharts `<BarChart>`, `<LineChart>`, `<PieChart>`, etc.
40
+ * as children. The container provides a responsive wrapper, title, and
41
+ * optional footer.
42
+ *
43
+ * **Important**: This component does NOT bundle Recharts. You must install
44
+ * `recharts` separately as a peer dependency.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * import { ChartContainer, chartColors } from "@work-rjkashyap/unified-ui/components";
49
+ * import { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, Tooltip } from "recharts";
50
+ *
51
+ * <ChartContainer title="Monthly Revenue" description="Last 6 months">
52
+ * <ResponsiveContainer width="100%" height="100%">
53
+ * <BarChart data={data}>
54
+ * <XAxis dataKey="month" stroke="var(--muted-foreground)" fontSize={12} />
55
+ * <YAxis stroke="var(--muted-foreground)" fontSize={12} />
56
+ * <Tooltip
57
+ * contentStyle={{
58
+ * background: "var(--background)",
59
+ * border: "1px solid var(--border)",
60
+ * borderRadius: "var(--radius-md)",
61
+ * fontSize: 13,
62
+ * }}
63
+ * />
64
+ * <Bar dataKey="revenue" fill={chartColors[0]} radius={[4, 4, 0, 0]} />
65
+ * </BarChart>
66
+ * </ResponsiveContainer>
67
+ * </ChartContainer>
68
+ * ```
69
+ */
70
+ declare const ChartContainer: react.ForwardRefExoticComponent<ChartContainerProps & react.RefAttributes<HTMLDivElement>>;
71
+ interface ChartTooltipContentProps {
72
+ /** Label for the tooltip header. */
73
+ label?: string;
74
+ /** Payload from Recharts tooltip. */
75
+ payload?: Array<{
76
+ name: string;
77
+ value: number | string;
78
+ color?: string;
79
+ fill?: string;
80
+ }>;
81
+ /** Whether the tooltip is active. */
82
+ active?: boolean;
83
+ /** Custom formatter for values. */
84
+ formatter?: (value: number | string, name: string) => string;
85
+ /** Additional class names. */
86
+ className?: string;
87
+ }
88
+ /**
89
+ * `ChartTooltipContent` — a pre-styled tooltip content component for Recharts.
90
+ *
91
+ * Use as the `content` prop of Recharts' `<Tooltip>`:
92
+ *
93
+ * @example
94
+ * ```tsx
95
+ * <Tooltip content={<ChartTooltipContent />} />
96
+ * ```
97
+ */
98
+ declare function ChartTooltipContent({ label, payload, active, formatter, className, }: ChartTooltipContentProps): react_jsx_runtime.JSX.Element | null;
99
+ declare namespace ChartTooltipContent {
100
+ var displayName: string;
101
+ }
102
+
103
+ export { ChartContainer, type ChartContainerProps, ChartTooltipContent, type ChartTooltipContentProps, chartColors };
@@ -0,0 +1,96 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../utils/cn";
4
+ import { forwardRef } from "react";
5
+ const chartColors = [
6
+ "var(--primary)",
7
+ "var(--info)",
8
+ "var(--success)",
9
+ "var(--warning)",
10
+ "var(--danger)",
11
+ "var(--secondary)",
12
+ "var(--muted-foreground)",
13
+ "oklch(0.65 0.15 250)",
14
+ // sky
15
+ "oklch(0.65 0.15 160)",
16
+ // emerald
17
+ "oklch(0.65 0.15 30)"
18
+ // amber
19
+ ];
20
+ const ChartContainer = forwardRef(
21
+ function ChartContainer2({
22
+ title,
23
+ description,
24
+ height = 350,
25
+ children,
26
+ footer,
27
+ loading = false,
28
+ loadingIndicator,
29
+ emptyContent,
30
+ className
31
+ }, ref) {
32
+ return /* @__PURE__ */ jsxs(
33
+ "div",
34
+ {
35
+ ref,
36
+ className: cn(
37
+ "rounded-lg border border-border bg-background p-4",
38
+ className
39
+ ),
40
+ "data-ds": "",
41
+ "data-ds-component": "chart",
42
+ children: [
43
+ (title || description) && /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-1", children: [
44
+ title && /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-foreground", children: title }),
45
+ description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
46
+ ] }),
47
+ /* @__PURE__ */ jsx("div", { className: "relative", style: { height }, children: loading ? /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: loadingIndicator ?? /* @__PURE__ */ jsx("div", { className: "size-6 animate-spin rounded-full border-2 border-border border-t-primary" }) }) : emptyContent ? /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center text-sm text-muted-foreground", children: emptyContent }) : children }),
48
+ footer && /* @__PURE__ */ jsx("div", { className: "mt-4 border-t border-border pt-3 text-sm text-muted-foreground", children: footer })
49
+ ]
50
+ }
51
+ );
52
+ }
53
+ );
54
+ ChartContainer.displayName = "ChartContainer";
55
+ function ChartTooltipContent({
56
+ label,
57
+ payload,
58
+ active,
59
+ formatter,
60
+ className
61
+ }) {
62
+ if (!active || !payload?.length) return null;
63
+ return /* @__PURE__ */ jsxs(
64
+ "div",
65
+ {
66
+ className: cn(
67
+ "rounded-lg border border-border bg-background px-3 py-2 shadow-lg",
68
+ "text-sm",
69
+ className
70
+ ),
71
+ children: [
72
+ label && /* @__PURE__ */ jsx("p", { className: "font-medium text-foreground mb-1", children: label }),
73
+ /* @__PURE__ */ jsx("div", { className: "space-y-0.5", children: payload.map((entry) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
74
+ /* @__PURE__ */ jsx(
75
+ "div",
76
+ {
77
+ className: "size-2.5 rounded-full shrink-0",
78
+ style: { backgroundColor: entry.color ?? entry.fill }
79
+ }
80
+ ),
81
+ /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
82
+ entry.name,
83
+ ":"
84
+ ] }),
85
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground ml-auto tabular-nums", children: formatter ? formatter(entry.value, entry.name) : entry.value })
86
+ ] }, entry.name)) })
87
+ ]
88
+ }
89
+ );
90
+ }
91
+ ChartTooltipContent.displayName = "ChartTooltipContent";
92
+ export {
93
+ ChartContainer,
94
+ ChartTooltipContent,
95
+ chartColors
96
+ };