@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,321 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Table - A responsive data table component for displaying structured information
4
+ *
5
+ * Built on semantic HTML table elements with responsive scrolling and proper accessibility.
6
+ * Follows shadcn/ui patterns for data presentation and can be enhanced with TanStack Table
7
+ * for sorting, filtering, and pagination. Perfect for dashboards, data management, and
8
+ * structured content display.
9
+ *
10
+ * @component
11
+ * @example
12
+ * ```tsx
13
+ * // Basic table with Farcaster user data
14
+ * <Table>
15
+ * <TableCaption>Recent casts from your network</TableCaption>
16
+ * <TableHeader>
17
+ * <TableRow>
18
+ * <TableHead>User</TableHead>
19
+ * <TableHead>Channel</TableHead>
20
+ * <TableHead>Content</TableHead>
21
+ * <TableHead className="text-right">Reactions</TableHead>
22
+ * </TableRow>
23
+ * </TableHeader>
24
+ * <TableBody>
25
+ * <TableRow>
26
+ * <TableCell className="font-medium">@dwr.eth</TableCell>
27
+ * <TableCell>/farcaster</TableCell>
28
+ * <TableCell>Announcing Farcaster v2...</TableCell>
29
+ * <TableCell className="text-right">1,234</TableCell>
30
+ * </TableRow>
31
+ * </TableBody>
32
+ * </Table>
33
+ * ```
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * // Table with selection and actions
38
+ * <Table>
39
+ * <TableHeader>
40
+ * <TableRow>
41
+ * <TableHead className="w-[50px]">
42
+ * <Checkbox />
43
+ * </TableHead>
44
+ * <TableHead>User</TableHead>
45
+ * <TableHead>FID</TableHead>
46
+ * <TableHead className="text-right">Actions</TableHead>
47
+ * </TableRow>
48
+ * </TableHeader>
49
+ * <TableBody>
50
+ * <TableRow data-state="selected">
51
+ * <TableCell><Checkbox checked /></TableCell>
52
+ * <TableCell>@vitalik.eth</TableCell>
53
+ * <TableCell>5650</TableCell>
54
+ * <TableCell className="text-right">
55
+ * <Button variant="ghost" size="sm">Edit</Button>
56
+ * </TableCell>
57
+ * </TableRow>
58
+ * </TableBody>
59
+ * </Table>
60
+ * ```
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * // Table with footer totals
65
+ * <Table>
66
+ * <TableBody>
67
+ * <TableRow>
68
+ * <TableCell>/farcaster</TableCell>
69
+ * <TableCell className="text-right">5,234</TableCell>
70
+ * </TableRow>
71
+ * </TableBody>
72
+ * <TableFooter>
73
+ * <TableRow>
74
+ * <TableCell>Total</TableCell>
75
+ * <TableCell className="text-right">15,767</TableCell>
76
+ * </TableRow>
77
+ * </TableFooter>
78
+ * </Table>
79
+ * ```
80
+ *
81
+ * @accessibility
82
+ * - Semantic HTML table structure with thead, tbody, tfoot elements
83
+ * - Screen reader navigation with proper table headers and data relationships
84
+ * - Responsive horizontal scrolling container for mobile devices
85
+ * - Caption support for table descriptions and context
86
+ * - Selection states communicated via data-state attributes
87
+ * - Keyboard navigation support for interactive elements
88
+ *
89
+ * @see {@link https://ui.shadcn.com/docs/components/table} shadcn/ui Table documentation
90
+ * @see {@link https://ui.shadcn.com/docs/components/data-table} TanStack Table integration
91
+ * @see {@link TableHeader} Table header container component
92
+ * @see {@link TableBody} Table body container component
93
+ * @see {@link TableRow} Table row component with hover and selection states
94
+ * @see {@link TableCell} Table data cell component
95
+ * @see {@link TableHead} Table header cell component
96
+ * @since 1.0.0
97
+ */
98
+ declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
99
+ /**
100
+ * TableHeader - Container for table header rows
101
+ *
102
+ * Groups header rows and applies consistent styling with bottom borders.
103
+ * Contains TableRow components with TableHead cells for column definitions.
104
+ * Essential for accessibility and proper table structure.
105
+ *
106
+ * @component
107
+ * @example
108
+ * ```tsx
109
+ * <TableHeader>
110
+ * <TableRow>
111
+ * <TableHead>Username</TableHead>
112
+ * <TableHead>FID</TableHead>
113
+ * <TableHead className="text-right">Actions</TableHead>
114
+ * </TableRow>
115
+ * </TableHeader>
116
+ * ```
117
+ *
118
+ * @accessibility
119
+ * - Semantic thead element for proper table structure
120
+ * - Screen readers identify this as the table header section
121
+ * - Provides context for data columns below
122
+ * @since 1.0.0
123
+ */
124
+ declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): import("react/jsx-runtime").JSX.Element;
125
+ /**
126
+ * TableBody - Container for table data rows
127
+ *
128
+ * Main content area of the table containing all data rows.
129
+ * Applies border styling where the last row has no bottom border.
130
+ * Contains TableRow components with TableCell elements.
131
+ *
132
+ * @component
133
+ * @example
134
+ * ```tsx
135
+ * <TableBody>
136
+ * <TableRow>
137
+ * <TableCell>@dwr.eth</TableCell>
138
+ * <TableCell>3</TableCell>
139
+ * <TableCell>45.2k followers</TableCell>
140
+ * </TableRow>
141
+ * <TableRow>
142
+ * <TableCell>@vitalik.eth</TableCell>
143
+ * <TableCell>5650</TableCell>
144
+ * <TableCell>112.3k followers</TableCell>
145
+ * </TableRow>
146
+ * </TableBody>
147
+ * ```
148
+ *
149
+ * @accessibility
150
+ * - Semantic tbody element for data rows
151
+ * - Supports keyboard navigation through rows
152
+ * - Screen readers navigate row by row through content
153
+ * @since 1.0.0
154
+ */
155
+ declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): import("react/jsx-runtime").JSX.Element;
156
+ /**
157
+ * TableFooter - Container for table footer rows
158
+ *
159
+ * Used for summary rows, totals, or additional table information.
160
+ * Styled with a muted background and top border to distinguish from data rows.
161
+ * Typically contains aggregated data or table-wide information.
162
+ *
163
+ * @component
164
+ * @example
165
+ * ```tsx
166
+ * <TableFooter>
167
+ * <TableRow>
168
+ * <TableCell>Total Users</TableCell>
169
+ * <TableCell>15,767</TableCell>
170
+ * <TableCell className="text-right">+9.25%</TableCell>
171
+ * </TableRow>
172
+ * </TableFooter>
173
+ * ```
174
+ *
175
+ * @accessibility
176
+ * - Semantic tfoot element for summary data
177
+ * - Screen readers announce as table footer section
178
+ * - Distinguished visually and semantically from body content
179
+ * @since 1.0.0
180
+ */
181
+ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): import("react/jsx-runtime").JSX.Element;
182
+ /**
183
+ * TableRow - A table row component with interactive states
184
+ *
185
+ * Represents a single row in the table with hover effects and selection support.
186
+ * Supports data-state attributes for visual feedback and proper border styling.
187
+ * Essential building block for all table content areas.
188
+ *
189
+ * @component
190
+ * @example
191
+ * ```tsx
192
+ * // Basic row
193
+ * <TableRow>
194
+ * <TableCell>@dwr.eth</TableCell>
195
+ * <TableCell>/farcaster</TableCell>
196
+ * </TableRow>
197
+ *
198
+ * // Selected row
199
+ * <TableRow data-state="selected">
200
+ * <TableCell>@vitalik.eth</TableCell>
201
+ * <TableCell>/ethereum</TableCell>
202
+ * </TableRow>
203
+ * ```
204
+ *
205
+ * @accessibility
206
+ * - Supports data-state="selected" for selection indication
207
+ * - Hover state enhances interactivity and focus
208
+ * - Semantic tr element maintains table structure
209
+ * - Visual feedback for user interactions
210
+ * @since 1.0.0
211
+ */
212
+ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react/jsx-runtime").JSX.Element;
213
+ /**
214
+ * TableHead - Table header cell component for column definitions
215
+ *
216
+ * Used for column headers with medium font weight and proper text alignment.
217
+ * Includes special styling for checkbox columns and interactive elements.
218
+ * Essential for screen reader navigation and table accessibility.
219
+ *
220
+ * @component
221
+ * @example
222
+ * ```tsx
223
+ * // Text headers
224
+ * <TableHead>Username</TableHead>
225
+ * <TableHead className="text-right">Followers</TableHead>
226
+ *
227
+ * // Checkbox header
228
+ * <TableHead className="w-[50px]">
229
+ * <Checkbox />
230
+ * </TableHead>
231
+ *
232
+ * // Sortable header
233
+ * <TableHead>
234
+ * <Button variant="ghost">FID ↕</Button>
235
+ * </TableHead>
236
+ * ```
237
+ *
238
+ * @accessibility
239
+ * - Semantic th element for column headers
240
+ * - Screen readers announce as column headers for navigation
241
+ * - Supports scope attribute for complex table relationships
242
+ * - Special checkbox styling maintains proper alignment
243
+ * @since 1.0.0
244
+ */
245
+ declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react/jsx-runtime").JSX.Element;
246
+ /**
247
+ * TableCell - Table data cell component for content display
248
+ *
249
+ * Used for data cells within table rows with consistent padding and alignment.
250
+ * Supports custom styling, truncation, and special handling for interactive elements
251
+ * like checkboxes and buttons.
252
+ *
253
+ * @component
254
+ * @example
255
+ * ```tsx
256
+ * // Basic data cells
257
+ * <TableCell>@dwr.eth</TableCell>
258
+ * <TableCell className="text-right">1,234</TableCell>
259
+ * <TableCell className="font-medium">Active</TableCell>
260
+ *
261
+ * // Cell with checkbox
262
+ * <TableCell>
263
+ * <Checkbox checked />
264
+ * </TableCell>
265
+ *
266
+ * // Cell with truncated content
267
+ * <TableCell className="max-w-[200px] truncate">
268
+ * This is a very long piece of content...
269
+ * </TableCell>
270
+ *
271
+ * // Cell spanning multiple columns
272
+ * <TableCell colSpan={3} className="text-center">
273
+ * No data available
274
+ * </TableCell>
275
+ * ```
276
+ *
277
+ * @accessibility
278
+ * - Semantic td element for data cells
279
+ * - Supports checkbox cells with proper alignment adjustments
280
+ * - Screen readers navigate cell by cell for data comprehension
281
+ * - ColSpan support for empty states and grouped content
282
+ * @since 1.0.0
283
+ */
284
+ declare function TableCell({ className, ...props }: React.ComponentProps<"td">): import("react/jsx-runtime").JSX.Element;
285
+ /**
286
+ * TableCaption - Table caption for describing table content and context
287
+ *
288
+ * Provides a description, title, or additional context for the table.
289
+ * Displayed with muted styling and proper spacing. Essential for accessibility
290
+ * as screen readers announce the caption to provide table context.
291
+ *
292
+ * @component
293
+ * @example
294
+ * ```tsx
295
+ * <Table>
296
+ * <TableCaption>Recent casts from your network</TableCaption>
297
+ * <TableHeader>...</TableHeader>
298
+ * <TableBody>...</TableBody>
299
+ * </Table>
300
+ *
301
+ * // Caption with additional context
302
+ * <Table>
303
+ * <TableCaption>
304
+ * Channel analytics for the last 30 days.
305
+ * Data updated every hour.
306
+ * </TableCaption>
307
+ * <TableHeader>...</TableHeader>
308
+ * <TableBody>...</TableBody>
309
+ * </Table>
310
+ * ```
311
+ *
312
+ * @accessibility
313
+ * - Semantic caption element positioned according to HTML standards
314
+ * - Screen readers announce caption before table content
315
+ * - Provides essential context for understanding table data
316
+ * - Helps users understand table purpose and scope
317
+ * @since 1.0.0
318
+ */
319
+ declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): import("react/jsx-runtime").JSX.Element;
320
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
321
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/ui/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAapE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQ1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAW1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,2CAQjC;AAED,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAC"}
@@ -0,0 +1,260 @@
1
+ import * as React from "react";
2
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
3
+ /**
4
+ * A tabbed interface component for organizing content into multiple sections.
5
+ *
6
+ * Tabs provide an intuitive way to organize and display content in separate panels,
7
+ * with only one panel visible at a time. Built on Radix UI's robust accessibility
8
+ * foundation with full keyboard navigation, focus management, and screen reader support.
9
+ *
10
+ * The component supports both controlled and uncontrolled usage patterns, allowing
11
+ * for flexible integration in various application contexts. Each tab consists of a
12
+ * trigger (button) that activates its corresponding content panel.
13
+ *
14
+ * @example Basic uncontrolled tabs
15
+ * ```tsx
16
+ * <Tabs defaultValue="account" className="w-[400px]">
17
+ * <TabsList>
18
+ * <TabsTrigger value="account">Account</TabsTrigger>
19
+ * <TabsTrigger value="password">Password</TabsTrigger>
20
+ * </TabsList>
21
+ * <TabsContent value="account">
22
+ * <Card>
23
+ * <CardContent>
24
+ * <p>Manage your account settings here.</p>
25
+ * </CardContent>
26
+ * </Card>
27
+ * </TabsContent>
28
+ * <TabsContent value="password">
29
+ * <Card>
30
+ * <CardContent>
31
+ * <p>Change your password here.</p>
32
+ * </CardContent>
33
+ * </Card>
34
+ * </TabsContent>
35
+ * </Tabs>
36
+ * ```
37
+ *
38
+ * @example Controlled tabs with external state management
39
+ * ```tsx
40
+ * const [activeTab, setActiveTab] = useState("overview");
41
+ *
42
+ * // External controls can change the active tab
43
+ * const handleQuickNav = (tab: string) => {
44
+ * setActiveTab(tab);
45
+ * };
46
+ *
47
+ * <Tabs value={activeTab} onValueChange={setActiveTab}>
48
+ * <TabsList>
49
+ * <TabsTrigger value="overview">Overview</TabsTrigger>
50
+ * <TabsTrigger value="analytics">Analytics</TabsTrigger>
51
+ * <TabsTrigger value="reports">Reports</TabsTrigger>
52
+ * </TabsList>
53
+ * <TabsContent value="overview">
54
+ * <DashboardOverview />
55
+ * </TabsContent>
56
+ * <TabsContent value="analytics">
57
+ * <AnalyticsPanel />
58
+ * </TabsContent>
59
+ * <TabsContent value="reports">
60
+ * <ReportsPanel />
61
+ * </TabsContent>
62
+ * </Tabs>
63
+ * ```
64
+ *
65
+ * @example Vertical orientation
66
+ * ```tsx
67
+ * <Tabs defaultValue="general" orientation="vertical" className="flex gap-4">
68
+ * <TabsList className="flex-col h-auto">
69
+ * <TabsTrigger value="general">General</TabsTrigger>
70
+ * <TabsTrigger value="security">Security</TabsTrigger>
71
+ * <TabsTrigger value="notifications">Notifications</TabsTrigger>
72
+ * </TabsList>
73
+ * <div className="flex-1">
74
+ * <TabsContent value="general">
75
+ * <SettingsGeneral />
76
+ * </TabsContent>
77
+ * <TabsContent value="security">
78
+ * <SettingsSecurity />
79
+ * </TabsContent>
80
+ * <TabsContent value="notifications">
81
+ * <SettingsNotifications />
82
+ * </TabsContent>
83
+ * </div>
84
+ * </Tabs>
85
+ * ```
86
+ *
87
+ * @param defaultValue - The initial active tab (uncontrolled usage)
88
+ * @param value - The currently active tab (controlled usage)
89
+ * @param onValueChange - Callback fired when the active tab changes
90
+ * @param orientation - Layout direction: "horizontal" (default) or "vertical"
91
+ * @param dir - Text direction for RTL support: "ltr" or "rtl"
92
+ * @param activationMode - When tabs activate: "automatic" (on focus) or "manual" (on click/enter)
93
+ * @param className - Additional CSS classes to apply
94
+ * @param children - Tab list, content panels, and other child elements
95
+ *
96
+ * @accessibility
97
+ * - **Keyboard Navigation**: Arrow keys navigate between tabs, Tab/Shift+Tab moves focus into/out of tab list
98
+ * - **Focus Management**: Home/End keys jump to first/last tab, proper focus visible indicators
99
+ * - **Screen Readers**: Proper ARIA roles (tablist, tab, tabpanel), labels, and state announcements
100
+ * - **Touch Support**: Touch-friendly trigger areas with appropriate spacing
101
+ * - **RTL Support**: Respects text direction for proper layout in right-to-left languages
102
+ *
103
+ * @see {@link https://ui.shadcn.com/docs/components/tabs} shadcn/ui tabs documentation
104
+ * @see {@link https://www.radix-ui.com/primitives/docs/components/tabs} Radix UI tabs primitive
105
+ * @see {@link TabsList} - Container component for tab triggers
106
+ * @see {@link TabsTrigger} - Individual clickable tab button
107
+ * @see {@link TabsContent} - Content panel associated with each tab
108
+ * @since 1.0.0
109
+ */
110
+ declare function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
111
+ /**
112
+ * Container component that groups all tab trigger buttons together.
113
+ *
114
+ * Provides consistent styling and layout for tab triggers with a unified
115
+ * background and proper spacing. The list maintains the tab order and
116
+ * handles focus management within the tabbed interface.
117
+ *
118
+ * @example Standard horizontal layout
119
+ * ```tsx
120
+ * <TabsList>
121
+ * <TabsTrigger value="home">Home</TabsTrigger>
122
+ * <TabsTrigger value="about">About</TabsTrigger>
123
+ * <TabsTrigger value="contact">Contact</TabsTrigger>
124
+ * </TabsList>
125
+ * ```
126
+ *
127
+ * @example Grid layout for equal-width tabs
128
+ * ```tsx
129
+ * <TabsList className="grid w-full grid-cols-3">
130
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
131
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
132
+ * <TabsTrigger value="tab3">Tab 3</TabsTrigger>
133
+ * </TabsList>
134
+ * ```
135
+ *
136
+ * @example Vertical orientation
137
+ * ```tsx
138
+ * <TabsList className="flex-col h-auto w-[200px]">
139
+ * <TabsTrigger value="settings" className="w-full justify-start">
140
+ * Settings
141
+ * </TabsTrigger>
142
+ * <TabsTrigger value="profile" className="w-full justify-start">
143
+ * Profile
144
+ * </TabsTrigger>
145
+ * </TabsList>
146
+ * ```
147
+ *
148
+ * @param className - Additional CSS classes for custom styling
149
+ * @param children - TabsTrigger components to be grouped
150
+ *
151
+ * @accessibility
152
+ * - Implements ARIA tablist role for screen readers
153
+ * - Maintains proper tab order and focus management
154
+ * - Supports keyboard navigation between triggers
155
+ *
156
+ * @since 1.0.0
157
+ */
158
+ declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
159
+ /**
160
+ * Individual clickable button that activates its associated tab content.
161
+ *
162
+ * Each trigger is associated with a specific tab panel via the `value` prop.
163
+ * The component automatically handles active states, focus management, and
164
+ * accessibility attributes. Supports icons, text, and custom content.
165
+ *
166
+ * @example Basic text trigger
167
+ * ```tsx
168
+ * <TabsTrigger value="dashboard">Dashboard</TabsTrigger>
169
+ * ```
170
+ *
171
+ * @example Trigger with icon
172
+ * ```tsx
173
+ * <TabsTrigger value="settings">
174
+ * <Settings className="h-4 w-4" />
175
+ * Settings
176
+ * </TabsTrigger>
177
+ * ```
178
+ *
179
+ * @example Disabled trigger
180
+ * ```tsx
181
+ * <TabsTrigger value="premium" disabled>
182
+ * Premium Features
183
+ * </TabsTrigger>
184
+ * ```
185
+ *
186
+ * @param value - Unique identifier that associates this trigger with its content panel
187
+ * @param disabled - When true, prevents interaction and shows disabled styling
188
+ * @param className - Additional CSS classes for custom styling
189
+ * @param children - Content to display within the trigger (text, icons, etc.)
190
+ *
191
+ * @accessibility
192
+ * - Implements ARIA tab role with proper attributes
193
+ * - Announces selected state to screen readers
194
+ * - Supports keyboard activation (Space, Enter)
195
+ * - Shows focus visible indicators for keyboard users
196
+ * - Respects disabled state for assistive technology
197
+ *
198
+ * @since 1.0.0
199
+ */
200
+ declare function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
201
+ /**
202
+ * Content panel that displays when its associated tab trigger is active.
203
+ *
204
+ * Each content panel is linked to a specific trigger via the `value` prop.
205
+ * Only one content panel is visible at a time, creating a clean tabbed
206
+ * interface. The component handles enter/exit animations and proper
207
+ * focus management when tabs change.
208
+ *
209
+ * @example Basic content panel
210
+ * ```tsx
211
+ * <TabsContent value="profile">
212
+ * <Card>
213
+ * <CardHeader>
214
+ * <CardTitle>Profile Settings</CardTitle>
215
+ * </CardHeader>
216
+ * <CardContent>
217
+ * <ProfileForm />
218
+ * </CardContent>
219
+ * </Card>
220
+ * </TabsContent>
221
+ * ```
222
+ *
223
+ * @example Content with loading state
224
+ * ```tsx
225
+ * <TabsContent value="analytics">
226
+ * {isLoading ? (
227
+ * <div className="flex items-center justify-center p-8">
228
+ * <Spinner className="h-6 w-6" />
229
+ * </div>
230
+ * ) : (
231
+ * <AnalyticsCharts data={analyticsData} />
232
+ * )}
233
+ * </TabsContent>
234
+ * ```
235
+ *
236
+ * @example Lazy-loaded content
237
+ * ```tsx
238
+ * <TabsContent value="reports" className="space-y-4">
239
+ * <Suspense fallback={<ReportsSkeleton />}>
240
+ * <ReportsPanel />
241
+ * </Suspense>
242
+ * </TabsContent>
243
+ * ```
244
+ *
245
+ * @param value - Unique identifier that associates this content with its trigger
246
+ * @param forceMount - When true, content stays mounted even when inactive (useful for preserving state)
247
+ * @param className - Additional CSS classes for custom styling
248
+ * @param children - The content to display when this tab is active
249
+ *
250
+ * @accessibility
251
+ * - Implements ARIA tabpanel role with proper labeling
252
+ * - Hidden from screen readers when inactive
253
+ * - Receives focus when tab is activated via keyboard
254
+ * - Maintains focus within panel content
255
+ *
256
+ * @since 1.0.0
257
+ */
258
+ declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
259
+ export { Tabs, TabsList, TabsTrigger, TabsContent };
260
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAItD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AACH,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAQjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAWjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAWpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAQpD;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}