@neynar/ui 0.1.1

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 (364) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +195 -0
  3. package/dist/components/ui/accordion.d.ts +229 -0
  4. package/dist/components/ui/accordion.d.ts.map +1 -0
  5. package/dist/components/ui/alert-dialog.d.ts +247 -0
  6. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  7. package/dist/components/ui/alert.d.ts +187 -0
  8. package/dist/components/ui/alert.d.ts.map +1 -0
  9. package/dist/components/ui/aspect-ratio.d.ts +94 -0
  10. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  11. package/dist/components/ui/avatar.d.ts +244 -0
  12. package/dist/components/ui/avatar.d.ts.map +1 -0
  13. package/dist/components/ui/badge.d.ts +163 -0
  14. package/dist/components/ui/badge.d.ts.map +1 -0
  15. package/dist/components/ui/breadcrumb.d.ts +281 -0
  16. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  17. package/dist/components/ui/button.d.ts +129 -0
  18. package/dist/components/ui/button.d.ts.map +1 -0
  19. package/dist/components/ui/calendar.d.ts +169 -0
  20. package/dist/components/ui/calendar.d.ts.map +1 -0
  21. package/dist/components/ui/card.d.ts +365 -0
  22. package/dist/components/ui/card.d.ts.map +1 -0
  23. package/dist/components/ui/carousel.d.ts +369 -0
  24. package/dist/components/ui/carousel.d.ts.map +1 -0
  25. package/dist/components/ui/chart.d.ts +442 -0
  26. package/dist/components/ui/chart.d.ts.map +1 -0
  27. package/dist/components/ui/checkbox.d.ts +88 -0
  28. package/dist/components/ui/checkbox.d.ts.map +1 -0
  29. package/dist/components/ui/collapsible.d.ts +182 -0
  30. package/dist/components/ui/collapsible.d.ts.map +1 -0
  31. package/dist/components/ui/combobox.d.ts +270 -0
  32. package/dist/components/ui/combobox.d.ts.map +1 -0
  33. package/dist/components/ui/command.d.ts +355 -0
  34. package/dist/components/ui/command.d.ts.map +1 -0
  35. package/dist/components/ui/container.d.ts +102 -0
  36. package/dist/components/ui/container.d.ts.map +1 -0
  37. package/dist/components/ui/context-menu.d.ts +339 -0
  38. package/dist/components/ui/context-menu.d.ts.map +1 -0
  39. package/dist/components/ui/date-picker.d.ts +145 -0
  40. package/dist/components/ui/date-picker.d.ts.map +1 -0
  41. package/dist/components/ui/dialog.d.ts +322 -0
  42. package/dist/components/ui/dialog.d.ts.map +1 -0
  43. package/dist/components/ui/drawer.d.ts +154 -0
  44. package/dist/components/ui/drawer.d.ts.map +1 -0
  45. package/dist/components/ui/dropdown-menu.d.ts +349 -0
  46. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  47. package/dist/components/ui/empty-state.d.ts +133 -0
  48. package/dist/components/ui/empty-state.d.ts.map +1 -0
  49. package/dist/components/ui/hover-card.d.ts +109 -0
  50. package/dist/components/ui/hover-card.d.ts.map +1 -0
  51. package/dist/components/ui/input.d.ts +89 -0
  52. package/dist/components/ui/input.d.ts.map +1 -0
  53. package/dist/components/ui/label.d.ts +93 -0
  54. package/dist/components/ui/label.d.ts.map +1 -0
  55. package/dist/components/ui/menubar.d.ts +306 -0
  56. package/dist/components/ui/menubar.d.ts.map +1 -0
  57. package/dist/components/ui/navigation-menu.d.ts +318 -0
  58. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  59. package/dist/components/ui/pagination.d.ts +343 -0
  60. package/dist/components/ui/pagination.d.ts.map +1 -0
  61. package/dist/components/ui/popover.d.ts +178 -0
  62. package/dist/components/ui/popover.d.ts.map +1 -0
  63. package/dist/components/ui/progress.d.ts +64 -0
  64. package/dist/components/ui/progress.d.ts.map +1 -0
  65. package/dist/components/ui/radio-group.d.ts +144 -0
  66. package/dist/components/ui/radio-group.d.ts.map +1 -0
  67. package/dist/components/ui/resizable.d.ts +164 -0
  68. package/dist/components/ui/resizable.d.ts.map +1 -0
  69. package/dist/components/ui/scroll-area.d.ts +82 -0
  70. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  71. package/dist/components/ui/select.d.ts +316 -0
  72. package/dist/components/ui/select.d.ts.map +1 -0
  73. package/dist/components/ui/separator.d.ts +80 -0
  74. package/dist/components/ui/separator.d.ts.map +1 -0
  75. package/dist/components/ui/sheet.d.ts +346 -0
  76. package/dist/components/ui/sheet.d.ts.map +1 -0
  77. package/dist/components/ui/sidebar.d.ts +1561 -0
  78. package/dist/components/ui/sidebar.d.ts.map +1 -0
  79. package/dist/components/ui/skeleton.d.ts +66 -0
  80. package/dist/components/ui/skeleton.d.ts.map +1 -0
  81. package/dist/components/ui/slider.d.ts +95 -0
  82. package/dist/components/ui/slider.d.ts.map +1 -0
  83. package/dist/components/ui/sonner.d.ts +101 -0
  84. package/dist/components/ui/sonner.d.ts.map +1 -0
  85. package/dist/components/ui/stack.d.ts +192 -0
  86. package/dist/components/ui/stack.d.ts.map +1 -0
  87. package/dist/components/ui/stories/accordion.stories.d.ts +71 -0
  88. package/dist/components/ui/stories/accordion.stories.d.ts.map +1 -0
  89. package/dist/components/ui/stories/alert-dialog.stories.d.ts +39 -0
  90. package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +1 -0
  91. package/dist/components/ui/stories/alert.stories.d.ts +48 -0
  92. package/dist/components/ui/stories/alert.stories.d.ts.map +1 -0
  93. package/dist/components/ui/stories/aspect-ratio.stories.d.ts +53 -0
  94. package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -0
  95. package/dist/components/ui/stories/avatar.stories.d.ts +49 -0
  96. package/dist/components/ui/stories/avatar.stories.d.ts.map +1 -0
  97. package/dist/components/ui/stories/badge.stories.d.ts +64 -0
  98. package/dist/components/ui/stories/badge.stories.d.ts.map +1 -0
  99. package/dist/components/ui/stories/breadcrumb.stories.d.ts +27 -0
  100. package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +1 -0
  101. package/dist/components/ui/stories/button.stories.d.ts +92 -0
  102. package/dist/components/ui/stories/button.stories.d.ts.map +1 -0
  103. package/dist/components/ui/stories/calendar.stories.d.ts +94 -0
  104. package/dist/components/ui/stories/calendar.stories.d.ts.map +1 -0
  105. package/dist/components/ui/stories/card.stories.d.ts +29 -0
  106. package/dist/components/ui/stories/card.stories.d.ts.map +1 -0
  107. package/dist/components/ui/stories/carousel.stories.d.ts +42 -0
  108. package/dist/components/ui/stories/carousel.stories.d.ts.map +1 -0
  109. package/dist/components/ui/stories/chart.stories.d.ts +51 -0
  110. package/dist/components/ui/stories/chart.stories.d.ts.map +1 -0
  111. package/dist/components/ui/stories/checkbox.stories.d.ts +72 -0
  112. package/dist/components/ui/stories/checkbox.stories.d.ts.map +1 -0
  113. package/dist/components/ui/stories/cn.stories.d.ts +19 -0
  114. package/dist/components/ui/stories/cn.stories.d.ts.map +1 -0
  115. package/dist/components/ui/stories/collapsible.stories.d.ts +51 -0
  116. package/dist/components/ui/stories/collapsible.stories.d.ts.map +1 -0
  117. package/dist/components/ui/stories/colors.stories.d.ts +31 -0
  118. package/dist/components/ui/stories/colors.stories.d.ts.map +1 -0
  119. package/dist/components/ui/stories/combobox.stories.d.ts +89 -0
  120. package/dist/components/ui/stories/combobox.stories.d.ts.map +1 -0
  121. package/dist/components/ui/stories/command.stories.d.ts +69 -0
  122. package/dist/components/ui/stories/command.stories.d.ts.map +1 -0
  123. package/dist/components/ui/stories/container.stories.d.ts +42 -0
  124. package/dist/components/ui/stories/container.stories.d.ts.map +1 -0
  125. package/dist/components/ui/stories/context-menu.stories.d.ts +32 -0
  126. package/dist/components/ui/stories/context-menu.stories.d.ts.map +1 -0
  127. package/dist/components/ui/stories/date-picker.stories.d.ts +67 -0
  128. package/dist/components/ui/stories/date-picker.stories.d.ts.map +1 -0
  129. package/dist/components/ui/stories/dialog.stories.d.ts +48 -0
  130. package/dist/components/ui/stories/dialog.stories.d.ts.map +1 -0
  131. package/dist/components/ui/stories/drawer.stories.d.ts +33 -0
  132. package/dist/components/ui/stories/drawer.stories.d.ts.map +1 -0
  133. package/dist/components/ui/stories/dropdown-menu.stories.d.ts +31 -0
  134. package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +1 -0
  135. package/dist/components/ui/stories/empty-state.stories.d.ts +74 -0
  136. package/dist/components/ui/stories/empty-state.stories.d.ts.map +1 -0
  137. package/dist/components/ui/stories/hover-card.stories.d.ts +35 -0
  138. package/dist/components/ui/stories/hover-card.stories.d.ts.map +1 -0
  139. package/dist/components/ui/stories/input.stories.d.ts +69 -0
  140. package/dist/components/ui/stories/input.stories.d.ts.map +1 -0
  141. package/dist/components/ui/stories/label.stories.d.ts +47 -0
  142. package/dist/components/ui/stories/label.stories.d.ts.map +1 -0
  143. package/dist/components/ui/stories/menubar.stories.d.ts +39 -0
  144. package/dist/components/ui/stories/menubar.stories.d.ts.map +1 -0
  145. package/dist/components/ui/stories/navigation-menu.stories.d.ts +44 -0
  146. package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +1 -0
  147. package/dist/components/ui/stories/pagination.stories.d.ts +33 -0
  148. package/dist/components/ui/stories/pagination.stories.d.ts.map +1 -0
  149. package/dist/components/ui/stories/popover.stories.d.ts +36 -0
  150. package/dist/components/ui/stories/popover.stories.d.ts.map +1 -0
  151. package/dist/components/ui/stories/progress.stories.d.ts +38 -0
  152. package/dist/components/ui/stories/progress.stories.d.ts.map +1 -0
  153. package/dist/components/ui/stories/radio-group.stories.d.ts +76 -0
  154. package/dist/components/ui/stories/radio-group.stories.d.ts.map +1 -0
  155. package/dist/components/ui/stories/resizable.stories.d.ts +49 -0
  156. package/dist/components/ui/stories/resizable.stories.d.ts.map +1 -0
  157. package/dist/components/ui/stories/scroll-area.stories.d.ts +35 -0
  158. package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -0
  159. package/dist/components/ui/stories/select.stories.d.ts +51 -0
  160. package/dist/components/ui/stories/select.stories.d.ts.map +1 -0
  161. package/dist/components/ui/stories/separator.stories.d.ts +58 -0
  162. package/dist/components/ui/stories/separator.stories.d.ts.map +1 -0
  163. package/dist/components/ui/stories/sheet.stories.d.ts +43 -0
  164. package/dist/components/ui/stories/sheet.stories.d.ts.map +1 -0
  165. package/dist/components/ui/stories/sidebar.stories.d.ts +60 -0
  166. package/dist/components/ui/stories/sidebar.stories.d.ts.map +1 -0
  167. package/dist/components/ui/stories/skeleton.stories.d.ts +42 -0
  168. package/dist/components/ui/stories/skeleton.stories.d.ts.map +1 -0
  169. package/dist/components/ui/stories/slider.stories.d.ts +99 -0
  170. package/dist/components/ui/stories/slider.stories.d.ts.map +1 -0
  171. package/dist/components/ui/stories/sonner.stories.d.ts +9 -0
  172. package/dist/components/ui/stories/sonner.stories.d.ts.map +1 -0
  173. package/dist/components/ui/stories/stack.stories.d.ts +39 -0
  174. package/dist/components/ui/stories/stack.stories.d.ts.map +1 -0
  175. package/dist/components/ui/stories/switch.stories.d.ts +71 -0
  176. package/dist/components/ui/stories/switch.stories.d.ts.map +1 -0
  177. package/dist/components/ui/stories/table.stories.d.ts +40 -0
  178. package/dist/components/ui/stories/table.stories.d.ts.map +1 -0
  179. package/dist/components/ui/stories/tabs.stories.d.ts +62 -0
  180. package/dist/components/ui/stories/tabs.stories.d.ts.map +1 -0
  181. package/dist/components/ui/stories/text-field.stories.d.ts +78 -0
  182. package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -0
  183. package/dist/components/ui/stories/textarea.stories.d.ts +57 -0
  184. package/dist/components/ui/stories/textarea.stories.d.ts.map +1 -0
  185. package/dist/components/ui/stories/theme-toggle.stories.d.ts +71 -0
  186. package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +1 -0
  187. package/dist/components/ui/stories/theme.stories.d.ts +51 -0
  188. package/dist/components/ui/stories/theme.stories.d.ts.map +1 -0
  189. package/dist/components/ui/stories/toggle-group.stories.d.ts +71 -0
  190. package/dist/components/ui/stories/toggle-group.stories.d.ts.map +1 -0
  191. package/dist/components/ui/stories/toggle.stories.d.ts +78 -0
  192. package/dist/components/ui/stories/toggle.stories.d.ts.map +1 -0
  193. package/dist/components/ui/stories/tooltip.stories.d.ts +37 -0
  194. package/dist/components/ui/stories/tooltip.stories.d.ts.map +1 -0
  195. package/dist/components/ui/stories/typography.stories.d.ts +137 -0
  196. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -0
  197. package/dist/components/ui/stories/use-mobile.stories.d.ts +20 -0
  198. package/dist/components/ui/stories/use-mobile.stories.d.ts.map +1 -0
  199. package/dist/components/ui/stories/use-theme.stories.d.ts +23 -0
  200. package/dist/components/ui/stories/use-theme.stories.d.ts.map +1 -0
  201. package/dist/components/ui/switch.d.ts +84 -0
  202. package/dist/components/ui/switch.d.ts.map +1 -0
  203. package/dist/components/ui/table.d.ts +321 -0
  204. package/dist/components/ui/table.d.ts.map +1 -0
  205. package/dist/components/ui/tabs.d.ts +260 -0
  206. package/dist/components/ui/tabs.d.ts.map +1 -0
  207. package/dist/components/ui/text-field.d.ts +157 -0
  208. package/dist/components/ui/text-field.d.ts.map +1 -0
  209. package/dist/components/ui/textarea.d.ts +84 -0
  210. package/dist/components/ui/textarea.d.ts.map +1 -0
  211. package/dist/components/ui/theme-toggle.d.ts +105 -0
  212. package/dist/components/ui/theme-toggle.d.ts.map +1 -0
  213. package/dist/components/ui/theme.d.ts +110 -0
  214. package/dist/components/ui/theme.d.ts.map +1 -0
  215. package/dist/components/ui/toggle-group.d.ts +133 -0
  216. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  217. package/dist/components/ui/toggle.d.ts +84 -0
  218. package/dist/components/ui/toggle.d.ts.map +1 -0
  219. package/dist/components/ui/tooltip.d.ts +202 -0
  220. package/dist/components/ui/tooltip.d.ts.map +1 -0
  221. package/dist/components/ui/typography.d.ts +287 -0
  222. package/dist/components/ui/typography.d.ts.map +1 -0
  223. package/dist/hooks/use-mobile.d.ts +74 -0
  224. package/dist/hooks/use-mobile.d.ts.map +1 -0
  225. package/dist/hooks/use-theme.d.ts +142 -0
  226. package/dist/hooks/use-theme.d.ts.map +1 -0
  227. package/dist/index.d.ts +57 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +27498 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/lib/utils.d.ts +43 -0
  232. package/dist/lib/utils.d.ts.map +1 -0
  233. package/dist/tsconfig.tsbuildinfo +1 -0
  234. package/docs/llm/colors.md +273 -0
  235. package/docs/llm/components/buttons.md +68 -0
  236. package/docs/llm/components/cards.md +53 -0
  237. package/docs/llm/components/display.md +134 -0
  238. package/docs/llm/components/feedback.md +96 -0
  239. package/docs/llm/components/forms.md +90 -0
  240. package/docs/llm/components/layout.md +59 -0
  241. package/docs/llm/components/menus.md +70 -0
  242. package/docs/llm/components/navigation.md +80 -0
  243. package/docs/llm/components/overlays.md +83 -0
  244. package/docs/llm/components/tables.md +73 -0
  245. package/docs/llm/components/typography.md +199 -0
  246. package/docs/llm/components/utilities.md +114 -0
  247. package/docs/llm/guide.md +165 -0
  248. package/llms.txt +122 -0
  249. package/package.json +104 -0
  250. package/src/components/ui/accordion.tsx +285 -0
  251. package/src/components/ui/alert-dialog.tsx +387 -0
  252. package/src/components/ui/alert.tsx +243 -0
  253. package/src/components/ui/aspect-ratio.tsx +99 -0
  254. package/src/components/ui/avatar.tsx +288 -0
  255. package/src/components/ui/badge.tsx +205 -0
  256. package/src/components/ui/breadcrumb.tsx +378 -0
  257. package/src/components/ui/button.tsx +195 -0
  258. package/src/components/ui/calendar.tsx +371 -0
  259. package/src/components/ui/card.tsx +447 -0
  260. package/src/components/ui/carousel.tsx +624 -0
  261. package/src/components/ui/chart.tsx +802 -0
  262. package/src/components/ui/checkbox.tsx +113 -0
  263. package/src/components/ui/collapsible.tsx +207 -0
  264. package/src/components/ui/combobox.tsx +373 -0
  265. package/src/components/ui/command.tsx +518 -0
  266. package/src/components/ui/container.tsx +114 -0
  267. package/src/components/ui/context-menu.tsx +563 -0
  268. package/src/components/ui/date-picker.tsx +213 -0
  269. package/src/components/ui/dialog.tsx +447 -0
  270. package/src/components/ui/drawer.tsx +273 -0
  271. package/src/components/ui/dropdown-menu.tsx +578 -0
  272. package/src/components/ui/empty-state.tsx +145 -0
  273. package/src/components/ui/hover-card.tsx +144 -0
  274. package/src/components/ui/input.tsx +106 -0
  275. package/src/components/ui/label.tsx +110 -0
  276. package/src/components/ui/menubar.tsx +553 -0
  277. package/src/components/ui/navigation-menu.tsx +471 -0
  278. package/src/components/ui/pagination.tsx +456 -0
  279. package/src/components/ui/popover.tsx +216 -0
  280. package/src/components/ui/progress.tsx +88 -0
  281. package/src/components/ui/radio-group.tsx +183 -0
  282. package/src/components/ui/resizable.tsx +209 -0
  283. package/src/components/ui/scroll-area.tsx +132 -0
  284. package/src/components/ui/select.tsx +485 -0
  285. package/src/components/ui/separator.tsx +101 -0
  286. package/src/components/ui/sheet.tsx +495 -0
  287. package/src/components/ui/sidebar.tsx +2211 -0
  288. package/src/components/ui/skeleton.tsx +76 -0
  289. package/src/components/ui/slider.tsx +147 -0
  290. package/src/components/ui/sonner.tsx +120 -0
  291. package/src/components/ui/stack.tsx +180 -0
  292. package/src/components/ui/stories/accordion.stories.tsx +429 -0
  293. package/src/components/ui/stories/alert-dialog.stories.tsx +519 -0
  294. package/src/components/ui/stories/alert.stories.tsx +228 -0
  295. package/src/components/ui/stories/aspect-ratio.stories.tsx +200 -0
  296. package/src/components/ui/stories/avatar.stories.tsx +317 -0
  297. package/src/components/ui/stories/badge.stories.tsx +260 -0
  298. package/src/components/ui/stories/breadcrumb.stories.tsx +482 -0
  299. package/src/components/ui/stories/button.stories.tsx +266 -0
  300. package/src/components/ui/stories/calendar.stories.tsx +375 -0
  301. package/src/components/ui/stories/card.stories.tsx +308 -0
  302. package/src/components/ui/stories/carousel.stories.tsx +328 -0
  303. package/src/components/ui/stories/chart.stories.tsx +430 -0
  304. package/src/components/ui/stories/checkbox.stories.tsx +297 -0
  305. package/src/components/ui/stories/cn.stories.tsx +433 -0
  306. package/src/components/ui/stories/collapsible.stories.tsx +256 -0
  307. package/src/components/ui/stories/colors.stories.tsx +502 -0
  308. package/src/components/ui/stories/combobox.stories.tsx +301 -0
  309. package/src/components/ui/stories/command.stories.tsx +632 -0
  310. package/src/components/ui/stories/container.stories.tsx +250 -0
  311. package/src/components/ui/stories/context-menu.stories.tsx +446 -0
  312. package/src/components/ui/stories/date-picker.stories.tsx +378 -0
  313. package/src/components/ui/stories/dialog.stories.tsx +535 -0
  314. package/src/components/ui/stories/drawer.stories.tsx +364 -0
  315. package/src/components/ui/stories/dropdown-menu.stories.tsx +374 -0
  316. package/src/components/ui/stories/empty-state.stories.tsx +244 -0
  317. package/src/components/ui/stories/hover-card.stories.tsx +355 -0
  318. package/src/components/ui/stories/input.stories.tsx +289 -0
  319. package/src/components/ui/stories/label.stories.tsx +294 -0
  320. package/src/components/ui/stories/menubar.stories.tsx +764 -0
  321. package/src/components/ui/stories/navigation-menu.stories.tsx +539 -0
  322. package/src/components/ui/stories/pagination.stories.tsx +604 -0
  323. package/src/components/ui/stories/popover.stories.tsx +392 -0
  324. package/src/components/ui/stories/progress.stories.tsx +218 -0
  325. package/src/components/ui/stories/radio-group.stories.tsx +400 -0
  326. package/src/components/ui/stories/resizable.stories.tsx +417 -0
  327. package/src/components/ui/stories/scroll-area.stories.tsx +180 -0
  328. package/src/components/ui/stories/select.stories.tsx +389 -0
  329. package/src/components/ui/stories/separator.stories.tsx +192 -0
  330. package/src/components/ui/stories/sheet.stories.tsx +468 -0
  331. package/src/components/ui/stories/sidebar.stories.tsx +731 -0
  332. package/src/components/ui/stories/skeleton.stories.tsx +216 -0
  333. package/src/components/ui/stories/slider.stories.tsx +321 -0
  334. package/src/components/ui/stories/sonner.stories.tsx +373 -0
  335. package/src/components/ui/stories/stack.stories.tsx +222 -0
  336. package/src/components/ui/stories/switch.stories.tsx +202 -0
  337. package/src/components/ui/stories/table.stories.tsx +541 -0
  338. package/src/components/ui/stories/tabs.stories.tsx +544 -0
  339. package/src/components/ui/stories/text-field.stories.tsx +280 -0
  340. package/src/components/ui/stories/textarea.stories.tsx +245 -0
  341. package/src/components/ui/stories/theme-toggle.stories.tsx +275 -0
  342. package/src/components/ui/stories/theme.stories.tsx +412 -0
  343. package/src/components/ui/stories/toggle-group.stories.tsx +337 -0
  344. package/src/components/ui/stories/toggle.stories.tsx +325 -0
  345. package/src/components/ui/stories/tooltip.stories.tsx +444 -0
  346. package/src/components/ui/stories/typography.stories.tsx +1586 -0
  347. package/src/components/ui/stories/use-mobile.stories.tsx +420 -0
  348. package/src/components/ui/stories/use-theme.stories.tsx +531 -0
  349. package/src/components/ui/switch.tsx +106 -0
  350. package/src/components/ui/table.tsx +424 -0
  351. package/src/components/ui/tabs.tsx +316 -0
  352. package/src/components/ui/text-field.tsx +206 -0
  353. package/src/components/ui/textarea.tsx +98 -0
  354. package/src/components/ui/theme-toggle.tsx +185 -0
  355. package/src/components/ui/theme.tsx +148 -0
  356. package/src/components/ui/toggle-group.tsx +196 -0
  357. package/src/components/ui/toggle.tsx +115 -0
  358. package/src/components/ui/tooltip.tsx +253 -0
  359. package/src/components/ui/typography.tsx +468 -0
  360. package/src/hooks/use-mobile.ts +91 -0
  361. package/src/hooks/use-theme.ts +319 -0
  362. package/src/index.ts +77 -0
  363. package/src/lib/utils.ts +57 -0
  364. package/src/styles/globals.css +160 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/ui/breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8GG;AACH,iBAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAE5D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAW1E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAQ1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,iBAAS,cAAc,CAAC,EACtB,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,2CAUA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAW5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,mBAAmB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAY5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAa9B;AAED,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,CAAC"}
@@ -0,0 +1,129 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ /**
4
+ * Button variant configuration using class-variance-authority
5
+ *
6
+ * Defines all possible visual variants and sizes for the Button component.
7
+ * Uses Tailwind CSS 4 with custom CSS properties for theming.
8
+ *
9
+ * @see {@link https://cva.style/docs} - CVA documentation
10
+ * @since 1.0.0
11
+ */
12
+ declare const buttonVariants: (props?: ({
13
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
14
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ /**
17
+ * Button - A versatile button component with multiple style variants and sizes
18
+ *
19
+ * The Button component is a fundamental UI element used to trigger actions or navigate
20
+ * through the application. Built on Radix UI's Slot primitive, it supports multiple
21
+ * visual variants, sizes, and can be composed with other components using the asChild
22
+ * prop for maximum flexibility. Icons placed within the button are automatically
23
+ * styled with proper spacing and sizing.
24
+ *
25
+ * @component
26
+ * @example
27
+ * ```tsx
28
+ * // Basic usage
29
+ * <Button>Click me</Button>
30
+ * ```
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * // With variants and sizes
35
+ * <Button variant="outline" size="lg">Large Outline Button</Button>
36
+ * <Button variant="destructive" size="sm">Delete</Button>
37
+ * <Button variant="ghost">Ghost Button</Button>
38
+ * ```
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * // With icons (automatically styled)
43
+ * import { Download, ArrowRight, Plus } from "lucide-react";
44
+ *
45
+ * <Button>
46
+ * <Download /> Download File
47
+ * </Button>
48
+ *
49
+ * <Button>
50
+ * Continue <ArrowRight />
51
+ * </Button>
52
+ *
53
+ * // Icon-only button
54
+ * <Button size="icon" aria-label="Add item">
55
+ * <Plus />
56
+ * </Button>
57
+ * ```
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * // As other elements using asChild (composition pattern)
62
+ * import Link from "next/link";
63
+ *
64
+ * <Button asChild>
65
+ * <Link href="/dashboard">Go to Dashboard</Link>
66
+ * </Button>
67
+ *
68
+ * <Button asChild variant="outline">
69
+ * <a href="https://example.com" target="_blank" rel="noopener">
70
+ * External Link
71
+ * </a>
72
+ * </Button>
73
+ * ```
74
+ *
75
+ * @example
76
+ * ```tsx
77
+ * // Form integration and states
78
+ * <Button disabled>Loading...</Button>
79
+ * <Button type="submit">Submit Form</Button>
80
+ * <Button aria-invalid={hasError}>Validate</Button>
81
+ *
82
+ * // Loading state with spinner
83
+ * <Button disabled>
84
+ * <LoadingSpinner className="size-4" />
85
+ * Processing...
86
+ * </Button>
87
+ * ```
88
+ *
89
+ * @accessibility
90
+ * - Supports keyboard navigation (Enter/Space to activate)
91
+ * - Properly handles disabled state with pointer-events-none and opacity
92
+ * - Focus visible ring (3px ring-ring/50) for keyboard navigation
93
+ * - Supports aria-invalid for form validation states with destructive ring
94
+ * - Icons are automatically marked as non-interactive (pointer-events-none)
95
+ * - Screen reader friendly with proper semantic button element
96
+ * - When used with asChild, preserves accessibility of child element
97
+ * - Icon-only buttons should include aria-label for screen readers
98
+ *
99
+ * @see {@link buttonVariants} - For all available style variants and sizes
100
+ * @see {@link https://ui.shadcn.com/docs/components/button} - shadcn/ui button documentation
101
+ * @since 1.0.0
102
+ */
103
+ /**
104
+ * Button component props type
105
+ *
106
+ * Extends all standard HTML button attributes with additional variant and composition props.
107
+ */
108
+ type ButtonProps = React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
109
+ /**
110
+ * If true, the button will render its child element instead of a button element.
111
+ * This enables composition patterns like turning links into buttons.
112
+ *
113
+ * @example
114
+ * ```tsx
115
+ * <Button asChild>
116
+ * <Link href="/dashboard">Dashboard</Link>
117
+ * </Button>
118
+ * ```
119
+ *
120
+ * @default false
121
+ */
122
+ asChild?: boolean;
123
+ };
124
+ declare function Button({ className, variant, size, asChild, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
125
+ declare namespace Button {
126
+ var displayName: string;
127
+ }
128
+ export { Button, buttonVariants, type ButtonProps };
129
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;;;;GAQG;AACH,QAAA,MAAM,cAAc;;;8EA+CnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH;;;;GAIG;AACH,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAC/C,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,GAAG,KAAK,EACT,EAAE,WAAW,2CAUb;kBAhBQ,MAAM;;;AAoBf,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,CAAC"}
@@ -0,0 +1,169 @@
1
+ import * as React from "react";
2
+ import { DayButton, DayPicker } from "react-day-picker";
3
+ import { Button } from "@/components/ui/button";
4
+ /**
5
+ * Calendar - A comprehensive date selection calendar component
6
+ *
7
+ * A fully-featured calendar component built on react-day-picker that provides intuitive
8
+ * date selection with extensive customization options. Supports single dates, date ranges,
9
+ * multiple dates, and custom validation rules with built-in accessibility features.
10
+ *
11
+ * @component
12
+ *
13
+ * @example Basic single date selection
14
+ * ```tsx
15
+ * const [date, setDate] = useState<Date | undefined>()
16
+ *
17
+ * <Calendar
18
+ * mode="single"
19
+ * selected={date}
20
+ * onSelect={setDate}
21
+ * className="rounded-md border"
22
+ * />
23
+ * ```
24
+ *
25
+ * @example Date range selection with two months
26
+ * ```tsx
27
+ * const [dateRange, setDateRange] = useState<DateRange | undefined>()
28
+ *
29
+ * <Calendar
30
+ * mode="range"
31
+ * selected={dateRange}
32
+ * onSelect={setDateRange}
33
+ * numberOfMonths={2}
34
+ * className="rounded-md border"
35
+ * />
36
+ * ```
37
+ *
38
+ * @example Multiple date selection
39
+ * ```tsx
40
+ * const [dates, setDates] = useState<Date[] | undefined>()
41
+ *
42
+ * <Calendar
43
+ * mode="multiple"
44
+ * selected={dates}
45
+ * onSelect={setDates}
46
+ * className="rounded-md border"
47
+ * />
48
+ * ```
49
+ *
50
+ * @example Calendar with disabled dates and custom validation
51
+ * ```tsx
52
+ * <Calendar
53
+ * mode="single"
54
+ * selected={date}
55
+ * onSelect={setDate}
56
+ * disabled={[
57
+ * { before: new Date() }, // Disable past dates
58
+ * { dayOfWeek: [0, 6] }, // Disable weekends
59
+ * { from: new Date(2024, 0, 15), to: new Date(2024, 0, 20) } // Disable range
60
+ * ]}
61
+ * className="rounded-md border"
62
+ * />
63
+ * ```
64
+ *
65
+ * @example Calendar with month/year dropdowns
66
+ * ```tsx
67
+ * <Calendar
68
+ * mode="single"
69
+ * captionLayout="dropdown"
70
+ * selected={date}
71
+ * onSelect={setDate}
72
+ * fromYear={2020}
73
+ * toYear={2030}
74
+ * className="rounded-md border"
75
+ * />
76
+ * ```
77
+ *
78
+ * @features
79
+ * - **Selection modes**: Single date, date ranges, multiple dates
80
+ * - **Navigation**: Month/year navigation with keyboard support
81
+ * - **Validation**: Flexible date disabling and validation rules
82
+ * - **Customization**: Multiple caption layouts, button variants, styling
83
+ * - **Internationalization**: Built-in locale support via react-day-picker
84
+ * - **Accessibility**: Full WCAG compliance with keyboard navigation
85
+ *
86
+ * @accessibility
87
+ * - **Keyboard Navigation**: Arrow keys for date navigation, Page Up/Down for months
88
+ * - **Screen Reader Support**: Comprehensive ARIA labels and announcements
89
+ * - **Focus Management**: Proper focus handling and restoration
90
+ * - **Standards Compliance**: WCAG 2.1 AA compliant
91
+ * - **RTL Support**: Right-to-left language support
92
+ *
93
+ * @performance
94
+ * The component is optimized for performance with minimal re-renders and efficient
95
+ * DOM updates. Large date ranges and multiple months are handled efficiently.
96
+ *
97
+ * @styling
98
+ * Fully customizable with Tailwind CSS classes. Supports CSS custom properties
99
+ * for cell sizing (`--cell-size`) and integrates with the design system theme.
100
+ *
101
+ * @see {@link CalendarDayButton} Individual day button component
102
+ * @see [react-day-picker docs](https://react-day-picker.js.org/) for advanced configuration
103
+ * @see {@link https://ui.shadcn.com/docs/components/calendar} - shadcn/ui Calendar documentation
104
+ * @since 1.0.0
105
+ */
106
+ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
107
+ /**
108
+ * Button variant for navigation arrows and interactive elements
109
+ *
110
+ * Controls the visual style of the previous/next month navigation buttons.
111
+ * Choose from shadcn/ui button variants to match your design system.
112
+ *
113
+ * @default "ghost"
114
+ * @example
115
+ * ```tsx
116
+ * // Outline style navigation buttons
117
+ * <Calendar buttonVariant="outline" />
118
+ *
119
+ * // Secondary style for subtle navigation
120
+ * <Calendar buttonVariant="secondary" />
121
+ * ```
122
+ */
123
+ buttonVariant?: React.ComponentProps<typeof Button>["variant"];
124
+ }): import("react/jsx-runtime").JSX.Element;
125
+ /**
126
+ * CalendarDayButton - Individual day button component for calendar dates
127
+ *
128
+ * Renders a single interactive day button with appropriate styling for different states
129
+ * including selected, today, disabled, and range selection indicators. This component
130
+ * is used internally by the Calendar component but can be customized if needed.
131
+ *
132
+ * @component
133
+ * @example
134
+ * ```tsx
135
+ * // Used internally by Calendar component
136
+ * <CalendarDayButton
137
+ * day={dayObject}
138
+ * modifiers={{
139
+ * selected: true,
140
+ * today: false,
141
+ * disabled: false,
142
+ * range_start: false,
143
+ * range_end: false,
144
+ * range_middle: false
145
+ * }}
146
+ * />
147
+ * ```
148
+ *
149
+ * @param day - The day object containing date information from react-day-picker
150
+ * @param modifiers - State modifiers object controlling appearance and behavior
151
+ * @param modifiers.selected - Whether this day is currently selected
152
+ * @param modifiers.today - Whether this day represents today's date
153
+ * @param modifiers.disabled - Whether this day is disabled for selection
154
+ * @param modifiers.range_start - Whether this day is the start of a date range
155
+ * @param modifiers.range_end - Whether this day is the end of a date range
156
+ * @param modifiers.range_middle - Whether this day is in the middle of a date range
157
+ * @param modifiers.focused - Whether this day currently has keyboard focus
158
+ *
159
+ * @accessibility
160
+ * - **Keyboard Navigation**: Fully keyboard accessible with arrow key support
161
+ * - **Screen Reader Support**: Announces date and selection state to assistive technology
162
+ * - **Focus Management**: Proper focus indicators and focus restoration
163
+ * - **State Announcement**: Clear visual and auditory feedback for selection states
164
+ *
165
+ * @since 1.0.0
166
+ */
167
+ declare function CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>): import("react/jsx-runtime").JSX.Element;
168
+ export { Calendar, CalendarDayButton };
169
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqGG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,aAAuB,EACvB,aAAuB,EACvB,UAAU,EACV,UAAU,EACV,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,GAAG;IAC1C;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;CAChE,2CAoJA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,2CA+BxC;AAED,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,365 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Card - A flexible container component for grouping related content
4
+ *
5
+ * Cards are surfaces that display content and actions on a single topic.
6
+ * They should be easy to scan for relevant and actionable information.
7
+ * Cards support composition through multiple sub-components and can be
8
+ * customized with various layouts and styling patterns.
9
+ *
10
+ * Based on the shadcn/ui Card component, this implementation provides:
11
+ * - Flexible composition through sub-components
12
+ * - Semantic HTML structure for accessibility
13
+ * - Consistent spacing and visual hierarchy
14
+ * - Support for interactive elements and actions
15
+ *
16
+ * @component
17
+ * @example
18
+ * ```tsx
19
+ * // Basic card with header and content
20
+ * <Card>
21
+ * <CardHeader>
22
+ * <CardTitle>Card Title</CardTitle>
23
+ * <CardDescription>Card description goes here</CardDescription>
24
+ * </CardHeader>
25
+ * <CardContent>
26
+ * <p>Card content goes here</p>
27
+ * </CardContent>
28
+ * </Card>
29
+ * ```
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * // Card with action button in header
34
+ * <Card>
35
+ * <CardHeader>
36
+ * <CardTitle>Settings</CardTitle>
37
+ * <CardAction>
38
+ * <Button variant="ghost" size="icon">
39
+ * <Settings />
40
+ * </Button>
41
+ * </CardAction>
42
+ * </CardHeader>
43
+ * <CardContent>
44
+ * <p>Manage your settings</p>
45
+ * </CardContent>
46
+ * <CardFooter>
47
+ * <Button>Save Changes</Button>
48
+ * </CardFooter>
49
+ * </Card>
50
+ * ```
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * // Minimal card with only content
55
+ * <Card>
56
+ * <CardContent>
57
+ * <p>Simple card content without header or footer</p>
58
+ * </CardContent>
59
+ * </Card>
60
+ * ```
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * // Product card with custom styling
65
+ * <Card className="w-80 hover:shadow-lg transition-shadow">
66
+ * <CardHeader>
67
+ * <div className="aspect-video bg-muted rounded-lg mb-4" />
68
+ * <CardTitle>Product Name</CardTitle>
69
+ * <CardDescription>Product description</CardDescription>
70
+ * <CardAction>
71
+ * <Badge variant="secondary">New</Badge>
72
+ * </CardAction>
73
+ * </CardHeader>
74
+ * <CardContent>
75
+ * <div className="flex items-center justify-between">
76
+ * <span className="text-2xl font-bold">$299</span>
77
+ * <span className="text-sm text-muted-foreground line-through">$399</span>
78
+ * </div>
79
+ * </CardContent>
80
+ * <CardFooter className="gap-2">
81
+ * <Button className="flex-1">Add to Cart</Button>
82
+ * <Button size="icon" variant="outline">
83
+ * <Heart className="size-4" />
84
+ * </Button>
85
+ * </CardFooter>
86
+ * </Card>
87
+ * ```
88
+ *
89
+ * @accessibility
90
+ * - Uses semantic HTML structure with proper div elements
91
+ * - Supports keyboard navigation for interactive elements within
92
+ * - Proper heading hierarchy when using CardTitle
93
+ * - Screen reader friendly with clear content structure
94
+ * - Focus management handled by interactive child components
95
+ *
96
+ * @param {string} [className] - Additional CSS classes to apply to the card
97
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Standard HTML div attributes
98
+ *
99
+ * @see {@link CardHeader} - Card header container with grid layout support
100
+ * @see {@link CardTitle} - Card title component for main headings
101
+ * @see {@link CardDescription} - Card description component for supplementary text
102
+ * @see {@link CardAction} - Card action container for header buttons/controls
103
+ * @see {@link CardContent} - Card content container for main body content
104
+ * @see {@link CardFooter} - Card footer container for actions and supplementary info
105
+ * @see {@link https://ui.shadcn.com/docs/components/card} - shadcn/ui Card documentation
106
+ * @since 1.0.0
107
+ */
108
+ declare function Card({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
109
+ /**
110
+ * CardHeader - Container for card header content
111
+ *
112
+ * Groups the card title, description, and optional action button.
113
+ * Automatically handles grid layout when CardAction is present, positioning
114
+ * the action to the right while allowing title and description to span
115
+ * the remaining space.
116
+ *
117
+ * Uses CSS Grid with container queries for responsive behavior:
118
+ * - Default: Single column layout for title and description
119
+ * - With CardAction: Two-column grid with action positioned top-right
120
+ * - Auto-adjusts spacing with gap utilities
121
+ *
122
+ * @component
123
+ * @example
124
+ * ```tsx
125
+ * // Basic header with title and description
126
+ * <CardHeader>
127
+ * <CardTitle>Dashboard Overview</CardTitle>
128
+ * <CardDescription>View your analytics and metrics</CardDescription>
129
+ * </CardHeader>
130
+ * ```
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * // Header with action button
135
+ * <CardHeader>
136
+ * <CardTitle>Settings</CardTitle>
137
+ * <CardDescription>Manage your preferences</CardDescription>
138
+ * <CardAction>
139
+ * <Button variant="ghost" size="icon">
140
+ * <MoreHorizontal className="size-4" />
141
+ * </Button>
142
+ * </CardAction>
143
+ * </CardHeader>
144
+ * ```
145
+ *
146
+ * @accessibility
147
+ * - Maintains proper heading structure with CardTitle
148
+ * - Supports responsive layout with container queries
149
+ * - Grid layout preserves reading order for screen readers
150
+ * - Action buttons maintain focus order
151
+ *
152
+ * @param {string} [className] - Additional CSS classes to apply
153
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Standard HTML div attributes
154
+ * @since 1.0.0
155
+ */
156
+ declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
157
+ /**
158
+ * CardTitle - The main title of a card
159
+ *
160
+ * Renders the primary heading for a card. Should be used within CardHeader
161
+ * to maintain proper semantic structure and visual hierarchy. Uses semibold
162
+ * font weight and leading-none for compact appearance.
163
+ *
164
+ * @component
165
+ * @example
166
+ * ```tsx
167
+ * <CardTitle>Dashboard Overview</CardTitle>
168
+ * ```
169
+ *
170
+ * @example
171
+ * ```tsx
172
+ * // With custom styling
173
+ * <CardTitle className="text-lg text-primary">
174
+ * Featured Product
175
+ * </CardTitle>
176
+ * ```
177
+ *
178
+ * @accessibility
179
+ * - Acts as the primary heading for the card content
180
+ * - Should maintain logical heading hierarchy in the document
181
+ * - Screen readers will identify this as the card's main topic
182
+ *
183
+ * @param {string} [className] - Additional CSS classes to apply
184
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Standard HTML div attributes
185
+ * @since 1.0.0
186
+ */
187
+ declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
188
+ /**
189
+ * CardDescription - Supplementary description text for a card
190
+ *
191
+ * Provides additional context or details about the card content.
192
+ * Styled with muted foreground color and smaller text size to create
193
+ * visual hierarchy below the CardTitle.
194
+ *
195
+ * @component
196
+ * @example
197
+ * ```tsx
198
+ * <CardDescription>
199
+ * View and manage your dashboard settings
200
+ * </CardDescription>
201
+ * ```
202
+ *
203
+ * @example
204
+ * ```tsx
205
+ * // Multi-line description
206
+ * <CardDescription>
207
+ * This card contains important information about your account.
208
+ * Review the details and take action if needed.
209
+ * </CardDescription>
210
+ * ```
211
+ *
212
+ * @accessibility
213
+ * - Provides context for screen readers
214
+ * - Uses muted color that maintains sufficient contrast
215
+ * - Should be descriptive and concise
216
+ *
217
+ * @param {string} [className] - Additional CSS classes to apply
218
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Standard HTML div attributes
219
+ * @since 1.0.0
220
+ */
221
+ declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
222
+ /**
223
+ * CardAction - Container for card header actions
224
+ *
225
+ * Positioned to the right of the card header using CSS Grid positioning.
226
+ * Typically contains icon buttons, badges, or dropdown menus for card-specific
227
+ * actions. Automatically positioned when used within CardHeader.
228
+ *
229
+ * Grid positioning:
230
+ * - `col-start-2`: Places in second column
231
+ * - `row-span-2`: Spans both title and description rows
232
+ * - `row-start-1`: Starts from first row
233
+ * - `self-start justify-self-end`: Aligns to top-right
234
+ *
235
+ * @component
236
+ * @example
237
+ * ```tsx
238
+ * <CardAction>
239
+ * <Button variant="ghost" size="icon">
240
+ * <MoreHorizontal className="size-4" />
241
+ * </Button>
242
+ * </CardAction>
243
+ * ```
244
+ *
245
+ * @example
246
+ * ```tsx
247
+ * // With badge
248
+ * <CardAction>
249
+ * <Badge variant="secondary">New</Badge>
250
+ * </CardAction>
251
+ * ```
252
+ *
253
+ * @example
254
+ * ```tsx
255
+ * // With dropdown menu
256
+ * <CardAction>
257
+ * <DropdownMenu>
258
+ * <DropdownMenuTrigger asChild>
259
+ * <Button variant="ghost" size="icon">
260
+ * <MoreHorizontal className="size-4" />
261
+ * </Button>
262
+ * </DropdownMenuTrigger>
263
+ * <DropdownMenuContent>
264
+ * <DropdownMenuItem>Edit</DropdownMenuItem>
265
+ * <DropdownMenuItem>Delete</DropdownMenuItem>
266
+ * </DropdownMenuContent>
267
+ * </DropdownMenu>
268
+ * </CardAction>
269
+ * ```
270
+ *
271
+ * @accessibility
272
+ * - Interactive elements should have appropriate labels
273
+ * - Maintains logical tab order
274
+ * - Icon-only buttons should include aria-label
275
+ *
276
+ * @param {string} [className] - Additional CSS classes to apply
277
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Standard HTML div attributes
278
+ * @since 1.0.0
279
+ */
280
+ declare function CardAction({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
281
+ /**
282
+ * CardContent - Main content area of a card
283
+ *
284
+ * Contains the primary content for the card. Automatically applies
285
+ * horizontal padding to maintain consistent spacing with other card sections.
286
+ * Can contain any type of content including text, images, forms, or other
287
+ * components.
288
+ *
289
+ * @component
290
+ * @example
291
+ * ```tsx
292
+ * <CardContent>
293
+ * <p>Your main content goes here.</p>
294
+ * </CardContent>
295
+ * ```
296
+ *
297
+ * @example
298
+ * ```tsx
299
+ * // With custom spacing
300
+ * <CardContent className="py-4">
301
+ * <div className="space-y-4">
302
+ * <p>Multiple content elements</p>
303
+ * <Button>Action button</Button>
304
+ * </div>
305
+ * </CardContent>
306
+ * ```
307
+ *
308
+ * @accessibility
309
+ * - Contains the main content that screen readers will focus on
310
+ * - Should maintain logical content structure
311
+ * - Interactive elements should have proper focus management
312
+ *
313
+ * @param {string} [className] - Additional CSS classes to apply
314
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Standard HTML div attributes
315
+ * @since 1.0.0
316
+ */
317
+ declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
318
+ /**
319
+ * CardFooter - Footer area of a card, typically for actions
320
+ *
321
+ * Positioned at the bottom of the card and commonly used for action buttons,
322
+ * supplementary information, or navigation elements. Uses flexbox layout
323
+ * with automatic alignment of items. Can be styled with border-top when
324
+ * visual separation from content is needed.
325
+ *
326
+ * @component
327
+ * @example
328
+ * ```tsx
329
+ * // Basic footer with actions
330
+ * <CardFooter>
331
+ * <Button variant="outline">Cancel</Button>
332
+ * <Button>Save</Button>
333
+ * </CardFooter>
334
+ * ```
335
+ *
336
+ * @example
337
+ * ```tsx
338
+ * // Footer with gap for better spacing
339
+ * <CardFooter className="gap-2">
340
+ * <Button variant="outline" className="flex-1">Cancel</Button>
341
+ * <Button className="flex-1">Confirm</Button>
342
+ * </CardFooter>
343
+ * ```
344
+ *
345
+ * @example
346
+ * ```tsx
347
+ * // Footer with supplementary info
348
+ * <CardFooter className="justify-between">
349
+ * <span className="text-sm text-muted-foreground">Last updated 2 days ago</span>
350
+ * <Button size="sm">Edit</Button>
351
+ * </CardFooter>
352
+ * ```
353
+ *
354
+ * @accessibility
355
+ * - Action buttons should have descriptive labels
356
+ * - Maintains logical tab order for interactive elements
357
+ * - Consider aria-label for icon-only buttons
358
+ *
359
+ * @param {string} [className] - Additional CSS classes to apply
360
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Standard HTML div attributes
361
+ * @since 1.0.0
362
+ */
363
+ declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
364
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
365
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AACH,iBAAS,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQtE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQ5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQvE;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAC"}