@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,364 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import React from "react";
3
+ import { Menu, Settings, User, Bell } from "lucide-react";
4
+ import {
5
+ Drawer,
6
+ DrawerClose,
7
+ DrawerContent,
8
+ DrawerDescription,
9
+ DrawerFooter,
10
+ DrawerHeader,
11
+ DrawerTitle,
12
+ DrawerTrigger,
13
+ } from "../drawer";
14
+ import { Button } from "../button";
15
+ import { Input } from "../input";
16
+ import { Label } from "../label";
17
+ import { Switch } from "../switch";
18
+
19
+ const meta = {
20
+ title: "Overlays/Drawer",
21
+ component: Drawer,
22
+ parameters: {
23
+ layout: "centered",
24
+ docs: {
25
+ description: {
26
+ component:
27
+ "A mobile-optimized drawer component built on Vaul. Creates sliding panels from screen edges with touch gestures, swipe-to-dismiss, and responsive behavior for mobile-first experiences.",
28
+ },
29
+ },
30
+ },
31
+ tags: ["autodocs"],
32
+ } satisfies Meta<typeof Drawer>;
33
+
34
+ export default meta;
35
+ type Story = StoryObj<typeof meta>;
36
+
37
+ /**
38
+ * Interactive playground for testing all drawer props and variants.
39
+ * Use the controls panel to experiment with different configurations.
40
+ */
41
+ export const Interactive: Story = {
42
+ args: {
43
+ direction: "bottom",
44
+ modal: true,
45
+ },
46
+ argTypes: {
47
+ direction: {
48
+ control: "select",
49
+ options: ["bottom", "top", "left", "right"],
50
+ description: "Direction from which the drawer slides in",
51
+ },
52
+ modal: {
53
+ control: "boolean",
54
+ description: "Whether the drawer should be modal",
55
+ },
56
+ open: {
57
+ control: "boolean",
58
+ description: "Controlled open state",
59
+ },
60
+ },
61
+ render: (args) => (
62
+ <Drawer {...args}>
63
+ <DrawerTrigger asChild>
64
+ <Button variant="outline">Open Interactive Drawer</Button>
65
+ </DrawerTrigger>
66
+ <DrawerContent>
67
+ <DrawerHeader>
68
+ <DrawerTitle>Interactive Drawer</DrawerTitle>
69
+ <DrawerDescription>
70
+ Test different drawer configurations using the controls panel below.
71
+ </DrawerDescription>
72
+ </DrawerHeader>
73
+ <div className="p-4 space-y-4">
74
+ <div className="grid gap-2">
75
+ <Label htmlFor="test-input">Sample Input</Label>
76
+ <Input id="test-input" placeholder="Type something..." />
77
+ </div>
78
+ <div className="flex items-center justify-between">
79
+ <Label htmlFor="test-switch">Sample Toggle</Label>
80
+ <Switch id="test-switch" />
81
+ </div>
82
+ </div>
83
+ <DrawerFooter>
84
+ <Button>Primary Action</Button>
85
+ <DrawerClose asChild>
86
+ <Button variant="outline">Cancel</Button>
87
+ </DrawerClose>
88
+ </DrawerFooter>
89
+ </DrawerContent>
90
+ </Drawer>
91
+ ),
92
+ };
93
+
94
+ /**
95
+ * Systematic display of all drawer directions and configurations.
96
+ * Shows how the drawer behaves from different screen edges.
97
+ */
98
+ export const Variants: Story = {
99
+ render: () => (
100
+ <div className="grid grid-cols-2 gap-4">
101
+ {/* Bottom Drawer */}
102
+ <Drawer direction="bottom">
103
+ <DrawerTrigger asChild>
104
+ <Button variant="outline" className="w-full">
105
+ Bottom Drawer
106
+ </Button>
107
+ </DrawerTrigger>
108
+ <DrawerContent>
109
+ <DrawerHeader>
110
+ <DrawerTitle>Bottom Drawer</DrawerTitle>
111
+ <DrawerDescription>
112
+ Slides up from the bottom (most common mobile pattern)
113
+ </DrawerDescription>
114
+ </DrawerHeader>
115
+ <div className="p-4">
116
+ <p className="text-sm text-muted-foreground">
117
+ This is the most common drawer direction for mobile interfaces.
118
+ </p>
119
+ </div>
120
+ <DrawerFooter>
121
+ <DrawerClose asChild>
122
+ <Button variant="outline">Close</Button>
123
+ </DrawerClose>
124
+ </DrawerFooter>
125
+ </DrawerContent>
126
+ </Drawer>
127
+
128
+ {/* Top Drawer */}
129
+ <Drawer direction="top">
130
+ <DrawerTrigger asChild>
131
+ <Button variant="outline" className="w-full">
132
+ Top Drawer
133
+ </Button>
134
+ </DrawerTrigger>
135
+ <DrawerContent>
136
+ <DrawerHeader>
137
+ <DrawerTitle>Top Drawer</DrawerTitle>
138
+ <DrawerDescription>
139
+ Slides down from the top
140
+ </DrawerDescription>
141
+ </DrawerHeader>
142
+ <div className="p-4">
143
+ <p className="text-sm text-muted-foreground">
144
+ Useful for notifications or contextual actions.
145
+ </p>
146
+ </div>
147
+ <DrawerFooter>
148
+ <DrawerClose asChild>
149
+ <Button variant="outline">Close</Button>
150
+ </DrawerClose>
151
+ </DrawerFooter>
152
+ </DrawerContent>
153
+ </Drawer>
154
+
155
+ {/* Left Drawer */}
156
+ <Drawer direction="left">
157
+ <DrawerTrigger asChild>
158
+ <Button variant="outline" className="w-full">
159
+ Left Drawer
160
+ </Button>
161
+ </DrawerTrigger>
162
+ <DrawerContent>
163
+ <DrawerHeader>
164
+ <DrawerTitle>Left Drawer</DrawerTitle>
165
+ <DrawerDescription>
166
+ Slides in from the left edge
167
+ </DrawerDescription>
168
+ </DrawerHeader>
169
+ <div className="p-4">
170
+ <p className="text-sm text-muted-foreground">
171
+ Common for navigation menus and side panels.
172
+ </p>
173
+ </div>
174
+ <DrawerFooter>
175
+ <DrawerClose asChild>
176
+ <Button variant="outline">Close</Button>
177
+ </DrawerClose>
178
+ </DrawerFooter>
179
+ </DrawerContent>
180
+ </Drawer>
181
+
182
+ {/* Right Drawer */}
183
+ <Drawer direction="right">
184
+ <DrawerTrigger asChild>
185
+ <Button variant="outline" className="w-full">
186
+ Right Drawer
187
+ </Button>
188
+ </DrawerTrigger>
189
+ <DrawerContent>
190
+ <DrawerHeader>
191
+ <DrawerTitle>Right Drawer</DrawerTitle>
192
+ <DrawerDescription>
193
+ Slides in from the right edge
194
+ </DrawerDescription>
195
+ </DrawerHeader>
196
+ <div className="p-4">
197
+ <p className="text-sm text-muted-foreground">
198
+ Good for secondary actions or contextual panels.
199
+ </p>
200
+ </div>
201
+ <DrawerFooter>
202
+ <DrawerClose asChild>
203
+ <Button variant="outline">Close</Button>
204
+ </DrawerClose>
205
+ </DrawerFooter>
206
+ </DrawerContent>
207
+ </Drawer>
208
+ </div>
209
+ ),
210
+ };
211
+
212
+ /**
213
+ * Real-world mobile app scenario showing drawer in context.
214
+ * Demonstrates a typical mobile navigation and user profile pattern.
215
+ */
216
+ export const InContext: Story = {
217
+ render: () => {
218
+ const [notificationsEnabled, setNotificationsEnabled] = React.useState(true);
219
+ const [darkMode, setDarkMode] = React.useState(false);
220
+
221
+ return (
222
+ <div className="w-full max-w-sm mx-auto bg-background border rounded-lg p-4 space-y-4">
223
+ {/* Mock mobile app header */}
224
+ <div className="flex items-center justify-between border-b pb-4">
225
+ <Drawer direction="left">
226
+ <DrawerTrigger asChild>
227
+ <Button variant="ghost" size="icon">
228
+ <Menu className="h-5 w-5" />
229
+ </Button>
230
+ </DrawerTrigger>
231
+ <DrawerContent>
232
+ <DrawerHeader>
233
+ <DrawerTitle>Navigation</DrawerTitle>
234
+ <DrawerDescription>
235
+ Access main app sections
236
+ </DrawerDescription>
237
+ </DrawerHeader>
238
+ <div className="p-4 space-y-2">
239
+ <Button variant="ghost" className="w-full justify-start">
240
+ <User className="mr-2 h-4 w-4" />
241
+ Profile
242
+ </Button>
243
+ <Button variant="ghost" className="w-full justify-start">
244
+ <Settings className="mr-2 h-4 w-4" />
245
+ Settings
246
+ </Button>
247
+ <Button variant="ghost" className="w-full justify-start">
248
+ <Bell className="mr-2 h-4 w-4" />
249
+ Notifications
250
+ </Button>
251
+ </div>
252
+ <DrawerFooter>
253
+ <DrawerClose asChild>
254
+ <Button variant="outline">Close Menu</Button>
255
+ </DrawerClose>
256
+ </DrawerFooter>
257
+ </DrawerContent>
258
+ </Drawer>
259
+
260
+ <h1 className="text-lg font-semibold">My App</h1>
261
+
262
+ <Drawer direction="bottom">
263
+ <DrawerTrigger asChild>
264
+ <Button variant="ghost" size="icon">
265
+ <Settings className="h-5 w-5" />
266
+ </Button>
267
+ </DrawerTrigger>
268
+ <DrawerContent>
269
+ <DrawerHeader>
270
+ <DrawerTitle>Quick Settings</DrawerTitle>
271
+ <DrawerDescription>
272
+ Adjust your app preferences
273
+ </DrawerDescription>
274
+ </DrawerHeader>
275
+ <div className="p-4 space-y-4">
276
+ <div className="flex items-center justify-between">
277
+ <div className="space-y-0.5">
278
+ <Label className="text-base">Notifications</Label>
279
+ <p className="text-sm text-muted-foreground">
280
+ Receive push notifications
281
+ </p>
282
+ </div>
283
+ <Switch
284
+ checked={notificationsEnabled}
285
+ onCheckedChange={setNotificationsEnabled}
286
+ />
287
+ </div>
288
+ <div className="flex items-center justify-between">
289
+ <div className="space-y-0.5">
290
+ <Label className="text-base">Dark Mode</Label>
291
+ <p className="text-sm text-muted-foreground">
292
+ Use dark theme
293
+ </p>
294
+ </div>
295
+ <Switch
296
+ checked={darkMode}
297
+ onCheckedChange={setDarkMode}
298
+ />
299
+ </div>
300
+ </div>
301
+ <DrawerFooter>
302
+ <DrawerClose asChild>
303
+ <Button>Save Preferences</Button>
304
+ </DrawerClose>
305
+ </DrawerFooter>
306
+ </DrawerContent>
307
+ </Drawer>
308
+ </div>
309
+
310
+ {/* Mock app content */}
311
+ <div className="space-y-3">
312
+ <div className="h-20 bg-muted rounded-lg flex items-center justify-center">
313
+ <p className="text-sm text-muted-foreground">App Content Area</p>
314
+ </div>
315
+ <div className="h-16 bg-muted rounded-lg flex items-center justify-center">
316
+ <p className="text-sm text-muted-foreground">More Content</p>
317
+ </div>
318
+ </div>
319
+
320
+ {/* Action button */}
321
+ <Drawer direction="bottom">
322
+ <DrawerTrigger asChild>
323
+ <Button className="w-full">
324
+ Create New Item
325
+ </Button>
326
+ </DrawerTrigger>
327
+ <DrawerContent>
328
+ <DrawerHeader>
329
+ <DrawerTitle>Create New Item</DrawerTitle>
330
+ <DrawerDescription>
331
+ Fill out the form below to create a new item
332
+ </DrawerDescription>
333
+ </DrawerHeader>
334
+ <div className="p-4 space-y-4">
335
+ <div className="grid gap-2">
336
+ <Label htmlFor="item-name">Item Name</Label>
337
+ <Input id="item-name" placeholder="Enter item name..." />
338
+ </div>
339
+ <div className="grid gap-2">
340
+ <Label htmlFor="item-description">Description</Label>
341
+ <Input id="item-description" placeholder="Enter description..." />
342
+ </div>
343
+ </div>
344
+ <DrawerFooter>
345
+ <Button>Create Item</Button>
346
+ <DrawerClose asChild>
347
+ <Button variant="outline">Cancel</Button>
348
+ </DrawerClose>
349
+ </DrawerFooter>
350
+ </DrawerContent>
351
+ </Drawer>
352
+ </div>
353
+ );
354
+ },
355
+ parameters: {
356
+ layout: "padded",
357
+ docs: {
358
+ description: {
359
+ story:
360
+ "A realistic mobile app interface showing how drawers work in context. Features navigation menu (left), settings (bottom), and form creation (bottom) patterns commonly used in mobile applications.",
361
+ },
362
+ },
363
+ },
364
+ };