@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,178 @@
1
+ import * as React from "react";
2
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
3
+ /**
4
+ * Popover displays rich content in a portal, triggered by a button
5
+ *
6
+ * A versatile floating panel component built on Radix UI primitives that displays
7
+ * interactive content without navigating away from the current context. Unlike tooltips,
8
+ * popovers support complex layouts, forms, and user interactions while maintaining
9
+ * proper focus management and accessibility standards.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * // Basic popover with information
14
+ * <Popover>
15
+ * <PopoverTrigger asChild>
16
+ * <Button variant="outline">Open popover</Button>
17
+ * </PopoverTrigger>
18
+ * <PopoverContent>
19
+ * <div className="grid gap-4">
20
+ * <h4 className="font-medium leading-none">Dimensions</h4>
21
+ * <p className="text-sm text-muted-foreground">
22
+ * Set the dimensions for the layer.
23
+ * </p>
24
+ * </div>
25
+ * </PopoverContent>
26
+ * </Popover>
27
+ * ```
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * // Controlled popover with form interactions
32
+ * const [open, setOpen] = useState(false);
33
+ *
34
+ * <Popover open={open} onOpenChange={setOpen}>
35
+ * <PopoverTrigger asChild>
36
+ * <Button>Settings</Button>
37
+ * </PopoverTrigger>
38
+ * <PopoverContent className="w-80">
39
+ * <div className="grid gap-4">
40
+ * <div className="space-y-2">
41
+ * <h4 className="font-medium leading-none">Settings</h4>
42
+ * <p className="text-sm text-muted-foreground">
43
+ * Configure your preferences
44
+ * </p>
45
+ * </div>
46
+ * <div className="grid gap-2">
47
+ * <Label htmlFor="width">Width</Label>
48
+ * <Input id="width" defaultValue="100%" />
49
+ * </div>
50
+ * </div>
51
+ * </PopoverContent>
52
+ * </Popover>
53
+ * ```
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * // Positioned popover with custom alignment
58
+ * <Popover>
59
+ * <PopoverTrigger asChild>
60
+ * <Button variant="ghost" size="icon">
61
+ * <HelpCircle className="h-4 w-4" />
62
+ * </Button>
63
+ * </PopoverTrigger>
64
+ * <PopoverContent side="top" align="start" className="w-80">
65
+ * <div className="space-y-2">
66
+ * <h4 className="font-medium">Help Information</h4>
67
+ * <p className="text-sm text-muted-foreground">
68
+ * Additional context and helpful tips for this feature.
69
+ * </p>
70
+ * </div>
71
+ * </PopoverContent>
72
+ * </Popover>
73
+ * ```
74
+ *
75
+ * @accessibility
76
+ * - **Keyboard Navigation**: Tab to focus, Enter/Space to open, Escape to close
77
+ * - **Focus Management**: Focus trapped within popover when open, returns to trigger on close
78
+ * - **Screen Reader Support**: Proper ARIA attributes and announcements
79
+ * - **Auto-positioning**: Automatically repositions to stay within viewport bounds
80
+ * - **Dismissible**: Closes on outside click or focus loss
81
+ *
82
+ * @see {@link https://ui.shadcn.com/docs/components/popover} shadcn/ui Popover
83
+ * @see {@link https://www.radix-ui.com/primitives/docs/components/popover} Radix Popover Primitive
84
+ * @since 1.0.0
85
+ */
86
+ /**
87
+ * Root popover component that manages open/closed state
88
+ *
89
+ * @param open - Controls the open state of the popover
90
+ * @param onOpenChange - Event handler called when the open state changes
91
+ * @param defaultOpen - The initial open state for uncontrolled usage
92
+ * @param modal - Whether the popover should be modal (default: false)
93
+ */
94
+ declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
95
+ /**
96
+ * PopoverTrigger - The element that triggers the popover
97
+ *
98
+ * @param asChild - Changes the default rendered element to the one passed as a child,
99
+ * merging their props and behavior. Recommended for custom triggers.
100
+ *
101
+ * @example
102
+ * ```tsx
103
+ * // Using asChild with custom button
104
+ * <PopoverTrigger asChild>
105
+ * <Button variant="outline">Open Settings</Button>
106
+ * </PopoverTrigger>
107
+ *
108
+ * // Direct usage (renders as button)
109
+ * <PopoverTrigger className="custom-trigger">
110
+ * Click me
111
+ * </PopoverTrigger>
112
+ * ```
113
+ *
114
+ * @since 1.0.0
115
+ */
116
+ declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
117
+ /**
118
+ * PopoverContent - The content container for the popover
119
+ *
120
+ * @param side - The preferred side of the trigger to render against ("top" | "right" | "bottom" | "left")
121
+ * @param align - How to align the popover relative to the trigger ("start" | "center" | "end")
122
+ * @param sideOffset - Distance in pixels from the trigger (default: 4)
123
+ * @param alignOffset - Offset in pixels along the align axis
124
+ * @param avoidCollisions - Whether to automatically avoid collisions with viewport edges (default: true)
125
+ * @param collisionBoundary - Boundary element(s) to consider for collision detection
126
+ * @param sticky - Whether to stick to the boundary edges when colliding ("partial" | "always")
127
+ *
128
+ * @example
129
+ * ```tsx
130
+ * // Basic content with default positioning
131
+ * <PopoverContent>
132
+ * <div className="grid gap-4">
133
+ * <h4 className="font-medium">Title</h4>
134
+ * <p className="text-sm text-muted-foreground">Description</p>
135
+ * </div>
136
+ * </PopoverContent>
137
+ *
138
+ * // Positioned content with custom width
139
+ * <PopoverContent side="top" align="start" className="w-80">
140
+ * <form className="grid gap-4">
141
+ * <Input placeholder="Enter value" />
142
+ * <Button type="submit">Save</Button>
143
+ * </form>
144
+ * </PopoverContent>
145
+ * ```
146
+ *
147
+ * @since 1.0.0
148
+ */
149
+ declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
150
+ /**
151
+ * PopoverAnchor - Optional anchor element for custom positioning
152
+ *
153
+ * Use PopoverAnchor when you need the popover to position relative to an element
154
+ * other than the trigger. This is useful for complex layouts where the visual
155
+ * trigger and positioning reference should be different elements.
156
+ *
157
+ * @example
158
+ * ```tsx
159
+ * <Popover>
160
+ * <PopoverAnchor asChild>
161
+ * <div className="relative">
162
+ * <span>Reference element for positioning</span>
163
+ * </div>
164
+ * </PopoverAnchor>
165
+ * <PopoverTrigger asChild>
166
+ * <Button>Open (positioned relative to anchor)</Button>
167
+ * </PopoverTrigger>
168
+ * <PopoverContent>
169
+ * <p>This popover positions relative to the anchor, not the trigger</p>
170
+ * </PopoverContent>
171
+ * </Popover>
172
+ * ```
173
+ *
174
+ * @since 1.0.0
175
+ */
176
+ declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
177
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };
178
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/components/ui/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH;;;;;;;GAOG;AACH,iBAAS,OAAO,CAAC,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAEpD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAEvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAevD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iBAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAEtD;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,64 @@
1
+ import * as React from "react";
2
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
3
+ /**
4
+ * Progress component displays completion progress of tasks and operations
5
+ *
6
+ * A visual progress indicator built on Radix UI primitives that shows the
7
+ * completion state of tasks, file uploads, multi-step processes, and other
8
+ * operations requiring user feedback about progress status.
9
+ *
10
+ * @example Basic usage
11
+ * ```tsx
12
+ * <Progress value={60} />
13
+ * ```
14
+ *
15
+ * @example With label and percentage
16
+ * ```tsx
17
+ * <div className="space-y-2">
18
+ * <div className="flex justify-between text-sm">
19
+ * <span>Loading data...</span>
20
+ * <span>{progress}%</span>
21
+ * </div>
22
+ * <Progress value={progress} />
23
+ * </div>
24
+ * ```
25
+ *
26
+ * @example File upload progress
27
+ * ```tsx
28
+ * <div className="space-y-2">
29
+ * <Progress value={uploadProgress} />
30
+ * <p className="text-sm text-muted-foreground">
31
+ * {uploadProgress}% of 2.4 MB uploaded
32
+ * </p>
33
+ * </div>
34
+ * ```
35
+ *
36
+ * @example Custom height and colors
37
+ * ```tsx
38
+ * <Progress
39
+ * value={85}
40
+ * className="h-4 [&>div]:bg-green-500"
41
+ * />
42
+ * ```
43
+ *
44
+ * @example Multi-step process
45
+ * ```tsx
46
+ * const stepProgress = (currentStep / totalSteps) * 100;
47
+ * <Progress value={stepProgress} />
48
+ * ```
49
+ *
50
+ * @param value - Progress value from 0 to 100. Undefined shows no progress.
51
+ * @param className - Additional CSS classes for styling customization
52
+ *
53
+ * @accessibility
54
+ * - Built on Radix UI Progress primitive with proper ARIA attributes
55
+ * - Announces progress changes to screen readers
56
+ * - Supports custom aria-label and aria-valuetext for enhanced descriptions
57
+ * - Smooth visual transitions provide clear feedback
58
+ *
59
+ * @see {@link https://ui.shadcn.com/docs/components/progress} for design patterns
60
+ * @since 1.0.0
61
+ */
62
+ declare function Progress({ className, value, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
63
+ export { Progress };
64
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/components/ui/progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,2CAiBrD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,144 @@
1
+ import * as React from "react";
2
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3
+ /**
4
+ * A radio group component for single selection from multiple options
5
+ *
6
+ * RadioGroup allows users to select exactly one option from a set of mutually exclusive choices.
7
+ * Built on Radix UI primitives with custom styling that follows shadcn/ui design patterns.
8
+ * Each radio group should contain RadioGroupItem components paired with Labels for accessibility.
9
+ *
10
+ * @example Basic usage
11
+ * ```tsx
12
+ * <RadioGroup defaultValue="option-one">
13
+ * <div className="flex items-center space-x-2">
14
+ * <RadioGroupItem value="option-one" id="option-one" />
15
+ * <Label htmlFor="option-one">Option One</Label>
16
+ * </div>
17
+ * <div className="flex items-center space-x-2">
18
+ * <RadioGroupItem value="option-two" id="option-two" />
19
+ * <Label htmlFor="option-two">Option Two</Label>
20
+ * </div>
21
+ * </RadioGroup>
22
+ * ```
23
+ *
24
+ * @example Controlled radio group
25
+ * ```tsx
26
+ * function SizeSelector() {
27
+ * const [size, setSize] = useState("medium");
28
+ *
29
+ * return (
30
+ * <RadioGroup value={size} onValueChange={setSize}>
31
+ * <div className="flex items-center space-x-2">
32
+ * <RadioGroupItem value="small" id="size-small" />
33
+ * <Label htmlFor="size-small">Small</Label>
34
+ * </div>
35
+ * <div className="flex items-center space-x-2">
36
+ * <RadioGroupItem value="medium" id="size-medium" />
37
+ * <Label htmlFor="size-medium">Medium</Label>
38
+ * </div>
39
+ * <div className="flex items-center space-x-2">
40
+ * <RadioGroupItem value="large" id="size-large" />
41
+ * <Label htmlFor="size-large">Large</Label>
42
+ * </div>
43
+ * </RadioGroup>
44
+ * );
45
+ * }
46
+ * ```
47
+ *
48
+ * @example Horizontal layout
49
+ * ```tsx
50
+ * <RadioGroup defaultValue="option-one" className="flex gap-4">
51
+ * <div className="flex items-center space-x-2">
52
+ * <RadioGroupItem value="option-one" id="r1" />
53
+ * <Label htmlFor="r1">Option One</Label>
54
+ * </div>
55
+ * <div className="flex items-center space-x-2">
56
+ * <RadioGroupItem value="option-two" id="r2" />
57
+ * <Label htmlFor="r2">Option Two</Label>
58
+ * </div>
59
+ * </RadioGroup>
60
+ * ```
61
+ *
62
+ * @example With descriptions
63
+ * ```tsx
64
+ * <RadioGroup defaultValue="card">
65
+ * <div className="flex items-start space-x-2">
66
+ * <RadioGroupItem value="card" id="card" className="mt-1" />
67
+ * <div className="grid gap-1">
68
+ * <Label htmlFor="card">Credit Card</Label>
69
+ * <p className="text-sm text-muted-foreground">
70
+ * Pay with your credit or debit card
71
+ * </p>
72
+ * </div>
73
+ * </div>
74
+ * </RadioGroup>
75
+ * ```
76
+ *
77
+ * @param defaultValue - The default selected value when uncontrolled
78
+ * @param value - The controlled value of the radio group
79
+ * @param onValueChange - Callback fired when the value changes
80
+ * @param disabled - Whether the entire radio group is disabled
81
+ * @param required - Whether the radio group is required for form validation
82
+ * @param orientation - The orientation of the radio group (defaults to vertical)
83
+ * @param className - Additional CSS classes to apply to the radio group
84
+ * @param children - RadioGroupItem components and their associated labels
85
+ *
86
+ * @see {@link https://ui.shadcn.com/docs/components/radio-group} for design patterns
87
+ * @since 1.0.0
88
+ * @see {@link RadioGroupItem} for individual radio options
89
+ * @see {@link Checkbox} for multiple selection use cases
90
+ * @see {@link Select} for dropdown-style single selection
91
+ */
92
+ declare function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
93
+ /**
94
+ * Individual radio button item for use within RadioGroup
95
+ *
96
+ * RadioGroupItem represents a single selectable option in a radio group.
97
+ * Must be used within a RadioGroup component and paired with a Label for accessibility.
98
+ * The component automatically handles visual states including checked, unchecked, focused, and disabled.
99
+ *
100
+ * @example Basic usage
101
+ * ```tsx
102
+ * <RadioGroupItem value="option-one" id="option-one" />
103
+ * <Label htmlFor="option-one">Option One</Label>
104
+ * ```
105
+ *
106
+ * @example With custom styling
107
+ * ```tsx
108
+ * <RadioGroupItem
109
+ * value="premium"
110
+ * id="premium"
111
+ * className="border-purple-500 text-purple-500"
112
+ * />
113
+ * <Label htmlFor="premium">Premium Plan</Label>
114
+ * ```
115
+ *
116
+ * @example Disabled state
117
+ * ```tsx
118
+ * <RadioGroupItem value="unavailable" id="unavailable" disabled />
119
+ * <Label htmlFor="unavailable" className="opacity-50">
120
+ * Unavailable Option
121
+ * </Label>
122
+ * ```
123
+ *
124
+ * @param value - The unique value for this radio option
125
+ * @param id - The id attribute for accessibility (should match Label's htmlFor)
126
+ * @param disabled - Whether this specific radio option is disabled
127
+ * @param className - Additional CSS classes for custom styling
128
+ * @param ref - React ref forwarded to the underlying input element
129
+ *
130
+ * @accessibility
131
+ * - Automatically receives focus management from parent RadioGroup
132
+ * - Arrow keys navigate between radio options
133
+ * - Space key toggles selection
134
+ * - Screen readers announce checked/unchecked state
135
+ * - Focus visible indicator for keyboard navigation
136
+ * - Proper ARIA attributes and roles
137
+ *
138
+ * @see {@link RadioGroup} for the parent container component
139
+ * @see {@link https://ui.shadcn.com/docs/components/radio-group} for usage patterns
140
+ * @since 1.0.0
141
+ */
142
+ declare function RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
143
+ export { RadioGroup, RadioGroupItem };
144
+ //# sourceMappingURL=radio-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../src/components/ui/radio-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAKnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AACH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAQvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAkBvD;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,164 @@
1
+ import * as React from "react";
2
+ import * as ResizablePrimitive from "react-resizable-panels";
3
+ /**
4
+ * Container for creating resizable panel groups with keyboard accessibility
5
+ *
6
+ * ResizablePanelGroup provides a flexible container for organizing multiple resizable panels.
7
+ * Panels can be resized by dragging handles between them, with full keyboard support.
8
+ * Built on top of react-resizable-panels with enhanced styling and accessibility features.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Basic horizontal layout
13
+ * <ResizablePanelGroup direction="horizontal" className="h-full">
14
+ * <ResizablePanel defaultSize={50}>
15
+ * <div className="p-4">Left panel</div>
16
+ * </ResizablePanel>
17
+ * <ResizableHandle />
18
+ * <ResizablePanel defaultSize={50}>
19
+ * <div className="p-4">Right panel</div>
20
+ * </ResizablePanel>
21
+ * </ResizablePanelGroup>
22
+ * ```
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * // Vertical layout with handle
27
+ * <ResizablePanelGroup direction="vertical" className="min-h-[400px]">
28
+ * <ResizablePanel defaultSize={30}>
29
+ * <header>Header content</header>
30
+ * </ResizablePanel>
31
+ * <ResizableHandle withHandle />
32
+ * <ResizablePanel defaultSize={70}>
33
+ * <main>Main content</main>
34
+ * </ResizablePanel>
35
+ * </ResizablePanelGroup>
36
+ * ```
37
+ *
38
+ * @example
39
+ * ```tsx
40
+ * // Complex layout with size constraints
41
+ * <ResizablePanelGroup direction="horizontal">
42
+ * <ResizablePanel defaultSize={25} minSize={20} maxSize={40}>
43
+ * <nav>Sidebar (20-40%)</nav>
44
+ * </ResizablePanel>
45
+ * <ResizableHandle withHandle />
46
+ * <ResizablePanel defaultSize={75} minSize={60}>
47
+ * <main>Content (min 60%)</main>
48
+ * </ResizablePanel>
49
+ * </ResizablePanelGroup>
50
+ * ```
51
+ *
52
+ * @param direction - Layout direction: "horizontal" or "vertical"
53
+ * @param className - Additional CSS classes
54
+ * @param children - ResizablePanel and ResizableHandle components
55
+ *
56
+ * @accessibility
57
+ * - Full keyboard navigation with arrow keys when handles are focused
58
+ * - Screen reader support with proper ARIA labels
59
+ * - Respects prefers-reduced-motion for users with motion sensitivity
60
+ * - Maintains focus management during resize operations
61
+ *
62
+ * @see {@link https://ui.shadcn.com/docs/components/resizable} for design patterns
63
+ * @since 1.0.0
64
+ * @see {@link ResizablePanel} for individual panel configuration
65
+ * @see {@link ResizableHandle} for handle customization options
66
+ */
67
+ declare function ResizablePanelGroup({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>): import("react/jsx-runtime").JSX.Element;
68
+ /**
69
+ * Individual resizable panel within a panel group
70
+ *
71
+ * ResizablePanel represents a single section that can be resized within a ResizablePanelGroup.
72
+ * Supports size constraints, default sizing, and programmatic control. Each panel automatically
73
+ * handles overflow and maintains content accessibility during resize operations.
74
+ *
75
+ * @example
76
+ * ```tsx
77
+ * // Basic panel with default size
78
+ * <ResizablePanel defaultSize={50}>
79
+ * <div className="p-4">Panel content</div>
80
+ * </ResizablePanel>
81
+ * ```
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * // Panel with size constraints
86
+ * <ResizablePanel
87
+ * defaultSize={30}
88
+ * minSize={20}
89
+ * maxSize={60}
90
+ * collapsible
91
+ * >
92
+ * <aside>Collapsible sidebar</aside>
93
+ * </ResizablePanel>
94
+ * ```
95
+ *
96
+ * @param defaultSize - Initial size as percentage (0-100)
97
+ * @param minSize - Minimum size as percentage
98
+ * @param maxSize - Maximum size as percentage
99
+ * @param collapsible - Whether panel can be collapsed to zero size
100
+ * @param order - Display order within the group
101
+ * @param id - Unique identifier for programmatic control
102
+ * @param onCollapse - Callback when panel is collapsed
103
+ * @param onExpand - Callback when panel is expanded
104
+ * @param onResize - Callback when panel size changes
105
+ *
106
+ * @accessibility
107
+ * - Maintains focus within panel during resize
108
+ * - Preserves scroll position when possible
109
+ * - Announces size changes to screen readers when significant
110
+ */
111
+ declare function ResizablePanel({ ...props }: React.ComponentProps<typeof ResizablePrimitive.Panel>): import("react/jsx-runtime").JSX.Element;
112
+ /**
113
+ * Draggable handle for resizing panels with optional visual indicator
114
+ *
115
+ * ResizableHandle provides the interactive area between panels that allows users to
116
+ * resize them via mouse, touch, or keyboard. The handle can display an optional
117
+ * visual grip indicator for improved usability and accessibility.
118
+ *
119
+ * @example
120
+ * ```tsx
121
+ * // Basic invisible handle
122
+ * <ResizableHandle />
123
+ * ```
124
+ *
125
+ * @example
126
+ * ```tsx
127
+ * // Handle with visual grip indicator
128
+ * <ResizableHandle withHandle />
129
+ * ```
130
+ *
131
+ * @example
132
+ * ```tsx
133
+ * // Custom styled handle
134
+ * <ResizableHandle
135
+ * withHandle
136
+ * className="bg-blue-200 hover:bg-blue-300"
137
+ * />
138
+ * ```
139
+ *
140
+ * @param withHandle - Whether to display visual grip indicator
141
+ * @param className - Additional CSS classes for styling
142
+ * @param disabled - Whether the handle is disabled
143
+ * @param hitAreaMargins - Margins around the hit area for easier interaction
144
+ * @param onDragging - Callback during drag operations
145
+ *
146
+ * @accessibility
147
+ * - Keyboard resizable using arrow keys when focused
148
+ * - Proper ARIA roles and labels for screen readers
149
+ * - Focus indicators that meet WCAG contrast requirements
150
+ * - Touch-friendly hit area of at least 44x44px
151
+ * - Announces resize actions and current sizes to assistive technology
152
+ *
153
+ * @see {@link https://ui.shadcn.com/docs/components/resizable} for usage examples
154
+ * @since 1.0.0
155
+ */
156
+ declare function ResizableHandle({ withHandle, className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
157
+ /**
158
+ * Whether to show a visual grip handle
159
+ * @default false
160
+ */
161
+ withHandle?: boolean;
162
+ }): import("react/jsx-runtime").JSX.Element;
163
+ export { ResizablePanelGroup, ResizablePanel, ResizableHandle };
164
+ //# sourceMappingURL=resizable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../src/components/ui/resizable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAC;AAI7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,2CAW5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,iBAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,2CAEvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iBAAS,eAAe,CAAC,EACvB,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG;IACrE;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,2CAiBA;AAED,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,82 @@
1
+ import * as React from "react";
2
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3
+ /**
4
+ * ScrollArea component provides cross-browser custom scrollbar styling
5
+ *
6
+ * Augments native scroll functionality for custom, cross-browser styling with enhanced
7
+ * scrolling experience. Built on Radix UI's ScrollArea primitive for accessibility
8
+ * and keyboard navigation support. Provides consistent scrollbar appearance across
9
+ * different browsers while maintaining native scroll behavior.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * // Basic vertical scrollable area
14
+ * <ScrollArea className="h-72 w-48 rounded-md border">
15
+ * <div className="p-4">
16
+ * {items.map((item) => (
17
+ * <div key={item.id} className="mb-4">
18
+ * {item.content}
19
+ * </div>
20
+ * ))}
21
+ * </div>
22
+ * </ScrollArea>
23
+ * ```
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * // Horizontal scrolling with custom scrollbar
28
+ * <ScrollArea className="w-full whitespace-nowrap rounded-md border">
29
+ * <div className="flex gap-4 p-4">
30
+ * {cards.map((card) => (
31
+ * <div key={card.id} className="w-64 flex-none">
32
+ * {card.content}
33
+ * </div>
34
+ * ))}
35
+ * </div>
36
+ * <ScrollBar orientation="horizontal" />
37
+ * </ScrollArea>
38
+ * ```
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * // Both scrollbars for large content
43
+ * <ScrollArea className="h-96 w-80 rounded-md border">
44
+ * <div className="w-[600px] p-4">
45
+ * // Wide content with vertical overflow
46
+ * </div>
47
+ * <ScrollBar orientation="horizontal" />
48
+ * </ScrollArea>
49
+ * ```
50
+ *
51
+ * @param className - Additional CSS classes for styling
52
+ * @param children - Content to be rendered inside the scrollable area
53
+ *
54
+ * @see {@link https://ui.shadcn.com/docs/components/scroll-area} - shadcn/ui ScrollArea documentation
55
+ * @since 1.0.0
56
+ * @see {@link ScrollBar} - Companion scrollbar component for horizontal scrolling
57
+ */
58
+ declare function ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
59
+ /**
60
+ * ScrollBar component for custom scrollbar styling
61
+ *
62
+ * Companion component to ScrollArea that renders styled scrollbars with
63
+ * support for both vertical and horizontal orientations. Usually used
64
+ * when explicit horizontal scrolling is needed.
65
+ *
66
+ * @param className - Additional CSS classes for scrollbar styling
67
+ * @param orientation - Scrollbar orientation, defaults to "vertical"
68
+ *
69
+ * @example
70
+ * ```tsx
71
+ * // Horizontal scrollbar (vertical is automatic)
72
+ * <ScrollArea className="w-full">
73
+ * <div className="flex gap-4 p-4">
74
+ * // Wide content
75
+ * </div>
76
+ * <ScrollBar orientation="horizontal" />
77
+ * </ScrollArea>
78
+ * ```
79
+ */
80
+ declare function ScrollBar({ className, orientation, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
81
+ export { ScrollArea, ScrollBar };
82
+ //# sourceMappingURL=scroll-area.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/ui/scroll-area.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AAInE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAiBvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,2CAqBtE;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}