@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,482 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import { Home, Slash, ChevronDown } from "lucide-react";
3
+ import {
4
+ Breadcrumb,
5
+ BreadcrumbEllipsis,
6
+ BreadcrumbItem,
7
+ BreadcrumbLink,
8
+ BreadcrumbList,
9
+ BreadcrumbPage,
10
+ BreadcrumbSeparator,
11
+ } from "../breadcrumb";
12
+ import {
13
+ DropdownMenu,
14
+ DropdownMenuContent,
15
+ DropdownMenuItem,
16
+ DropdownMenuTrigger,
17
+ } from "../dropdown-menu";
18
+
19
+ const meta = {
20
+ title: "Navigation & Menus/Breadcrumb",
21
+ component: Breadcrumb,
22
+ parameters: {
23
+ layout: "padded",
24
+ docs: {
25
+ description: {
26
+ component:
27
+ "A breadcrumb navigation component that shows the current page location within a navigational hierarchy. Built with accessibility in mind and supports custom separators, ellipsis for long paths, and composition patterns.",
28
+ },
29
+ },
30
+ },
31
+ tags: ["autodocs"],
32
+ argTypes: {
33
+ // No direct props on Breadcrumb component, but we can show composition options
34
+ children: {
35
+ description: "BreadcrumbList containing breadcrumb items",
36
+ control: false,
37
+ },
38
+ },
39
+ } satisfies Meta<typeof Breadcrumb>;
40
+
41
+ export default meta;
42
+ type Story = StoryObj<typeof meta>;
43
+
44
+ export const Interactive: Story = {
45
+ args: {},
46
+ render: (args) => (
47
+ <div className="space-y-8">
48
+ <div>
49
+ <h3 className="text-lg font-semibold mb-4">Basic Breadcrumb</h3>
50
+ <Breadcrumb {...args}>
51
+ <BreadcrumbList>
52
+ <BreadcrumbItem>
53
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
54
+ </BreadcrumbItem>
55
+ <BreadcrumbSeparator />
56
+ <BreadcrumbItem>
57
+ <BreadcrumbLink href="/components">Components</BreadcrumbLink>
58
+ </BreadcrumbItem>
59
+ <BreadcrumbSeparator />
60
+ <BreadcrumbItem>
61
+ <BreadcrumbPage>Breadcrumb</BreadcrumbPage>
62
+ </BreadcrumbItem>
63
+ </BreadcrumbList>
64
+ </Breadcrumb>
65
+ </div>
66
+
67
+ <div>
68
+ <h3 className="text-lg font-semibold mb-4">With Icons</h3>
69
+ <Breadcrumb {...args}>
70
+ <BreadcrumbList>
71
+ <BreadcrumbItem>
72
+ <BreadcrumbLink href="/">
73
+ <Home className="h-4 w-4" />
74
+ Home
75
+ </BreadcrumbLink>
76
+ </BreadcrumbItem>
77
+ <BreadcrumbSeparator />
78
+ <BreadcrumbItem>
79
+ <BreadcrumbLink href="/documents">Documents</BreadcrumbLink>
80
+ </BreadcrumbItem>
81
+ <BreadcrumbSeparator />
82
+ <BreadcrumbItem>
83
+ <BreadcrumbPage>Design System</BreadcrumbPage>
84
+ </BreadcrumbItem>
85
+ </BreadcrumbList>
86
+ </Breadcrumb>
87
+ </div>
88
+
89
+ <div>
90
+ <h3 className="text-lg font-semibold mb-4">With Custom Separator</h3>
91
+ <Breadcrumb {...args}>
92
+ <BreadcrumbList>
93
+ <BreadcrumbItem>
94
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
95
+ </BreadcrumbItem>
96
+ <BreadcrumbSeparator>
97
+ <Slash className="h-3 w-3" />
98
+ </BreadcrumbSeparator>
99
+ <BreadcrumbItem>
100
+ <BreadcrumbLink href="/products">Products</BreadcrumbLink>
101
+ </BreadcrumbItem>
102
+ <BreadcrumbSeparator>
103
+ <Slash className="h-3 w-3" />
104
+ </BreadcrumbSeparator>
105
+ <BreadcrumbItem>
106
+ <BreadcrumbPage>Shoes</BreadcrumbPage>
107
+ </BreadcrumbItem>
108
+ </BreadcrumbList>
109
+ </Breadcrumb>
110
+ </div>
111
+
112
+ <div>
113
+ <h3 className="text-lg font-semibold mb-4">With Ellipsis</h3>
114
+ <Breadcrumb {...args}>
115
+ <BreadcrumbList>
116
+ <BreadcrumbItem>
117
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
118
+ </BreadcrumbItem>
119
+ <BreadcrumbSeparator />
120
+ <BreadcrumbItem>
121
+ <BreadcrumbEllipsis />
122
+ </BreadcrumbItem>
123
+ <BreadcrumbSeparator />
124
+ <BreadcrumbItem>
125
+ <BreadcrumbLink href="/components">Components</BreadcrumbLink>
126
+ </BreadcrumbItem>
127
+ <BreadcrumbSeparator />
128
+ <BreadcrumbItem>
129
+ <BreadcrumbPage>Breadcrumb</BreadcrumbPage>
130
+ </BreadcrumbItem>
131
+ </BreadcrumbList>
132
+ </Breadcrumb>
133
+ </div>
134
+
135
+ <div>
136
+ <h3 className="text-lg font-semibold mb-4">With Dropdown</h3>
137
+ <Breadcrumb {...args}>
138
+ <BreadcrumbList>
139
+ <BreadcrumbItem>
140
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
141
+ </BreadcrumbItem>
142
+ <BreadcrumbSeparator />
143
+ <BreadcrumbItem>
144
+ <DropdownMenu>
145
+ <DropdownMenuTrigger className="flex items-center gap-1 hover:text-foreground transition-colors">
146
+ <BreadcrumbEllipsis className="h-4 w-4" />
147
+ <ChevronDown className="h-3 w-3" />
148
+ </DropdownMenuTrigger>
149
+ <DropdownMenuContent align="start">
150
+ <DropdownMenuItem>Documentation</DropdownMenuItem>
151
+ <DropdownMenuItem>Components</DropdownMenuItem>
152
+ <DropdownMenuItem>Navigation</DropdownMenuItem>
153
+ </DropdownMenuContent>
154
+ </DropdownMenu>
155
+ </BreadcrumbItem>
156
+ <BreadcrumbSeparator />
157
+ <BreadcrumbItem>
158
+ <BreadcrumbPage>Breadcrumb</BreadcrumbPage>
159
+ </BreadcrumbItem>
160
+ </BreadcrumbList>
161
+ </Breadcrumb>
162
+ </div>
163
+
164
+ <div>
165
+ <h3 className="text-lg font-semibold mb-4">AsChild Pattern</h3>
166
+ <Breadcrumb {...args}>
167
+ <BreadcrumbList>
168
+ <BreadcrumbItem>
169
+ <BreadcrumbLink asChild>
170
+ <a href="/">Home</a>
171
+ </BreadcrumbLink>
172
+ </BreadcrumbItem>
173
+ <BreadcrumbSeparator />
174
+ <BreadcrumbItem>
175
+ <BreadcrumbLink asChild>
176
+ <button
177
+ onClick={() => console.log("Navigate to docs")}
178
+ className="text-left"
179
+ >
180
+ Documentation
181
+ </button>
182
+ </BreadcrumbLink>
183
+ </BreadcrumbItem>
184
+ <BreadcrumbSeparator />
185
+ <BreadcrumbItem>
186
+ <BreadcrumbPage>Getting Started</BreadcrumbPage>
187
+ </BreadcrumbItem>
188
+ </BreadcrumbList>
189
+ </Breadcrumb>
190
+ </div>
191
+ </div>
192
+ ),
193
+ parameters: {
194
+ docs: {
195
+ description: {
196
+ story:
197
+ "Interactive playground showcasing all breadcrumb variations including basic usage, icons, custom separators, ellipsis, dropdown menus, and the asChild composition pattern.",
198
+ },
199
+ },
200
+ },
201
+ };
202
+
203
+ export const Variants: Story = {
204
+ render: () => (
205
+ <div className="space-y-6">
206
+ <div>
207
+ <h4 className="text-sm font-medium text-muted-foreground mb-2">
208
+ Default Separator (ChevronRight)
209
+ </h4>
210
+ <Breadcrumb>
211
+ <BreadcrumbList>
212
+ <BreadcrumbItem>
213
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
214
+ </BreadcrumbItem>
215
+ <BreadcrumbSeparator />
216
+ <BreadcrumbItem>
217
+ <BreadcrumbLink href="/products">Products</BreadcrumbLink>
218
+ </BreadcrumbItem>
219
+ <BreadcrumbSeparator />
220
+ <BreadcrumbItem>
221
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
222
+ </BreadcrumbItem>
223
+ </BreadcrumbList>
224
+ </Breadcrumb>
225
+ </div>
226
+
227
+ <div>
228
+ <h4 className="text-sm font-medium text-muted-foreground mb-2">
229
+ Slash Separator
230
+ </h4>
231
+ <Breadcrumb>
232
+ <BreadcrumbList>
233
+ <BreadcrumbItem>
234
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
235
+ </BreadcrumbItem>
236
+ <BreadcrumbSeparator>
237
+ <Slash className="h-3 w-3" />
238
+ </BreadcrumbSeparator>
239
+ <BreadcrumbItem>
240
+ <BreadcrumbLink href="/products">Products</BreadcrumbLink>
241
+ </BreadcrumbItem>
242
+ <BreadcrumbSeparator>
243
+ <Slash className="h-3 w-3" />
244
+ </BreadcrumbSeparator>
245
+ <BreadcrumbItem>
246
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
247
+ </BreadcrumbItem>
248
+ </BreadcrumbList>
249
+ </Breadcrumb>
250
+ </div>
251
+
252
+ <div>
253
+ <h4 className="text-sm font-medium text-muted-foreground mb-2">
254
+ With Home Icon
255
+ </h4>
256
+ <Breadcrumb>
257
+ <BreadcrumbList>
258
+ <BreadcrumbItem>
259
+ <BreadcrumbLink href="/">
260
+ <Home className="h-4 w-4" />
261
+ Home
262
+ </BreadcrumbLink>
263
+ </BreadcrumbItem>
264
+ <BreadcrumbSeparator />
265
+ <BreadcrumbItem>
266
+ <BreadcrumbLink href="/products">Products</BreadcrumbLink>
267
+ </BreadcrumbItem>
268
+ <BreadcrumbSeparator />
269
+ <BreadcrumbItem>
270
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
271
+ </BreadcrumbItem>
272
+ </BreadcrumbList>
273
+ </Breadcrumb>
274
+ </div>
275
+
276
+ <div>
277
+ <h4 className="text-sm font-medium text-muted-foreground mb-2">
278
+ With Ellipsis (Collapsed Items)
279
+ </h4>
280
+ <Breadcrumb>
281
+ <BreadcrumbList>
282
+ <BreadcrumbItem>
283
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
284
+ </BreadcrumbItem>
285
+ <BreadcrumbSeparator />
286
+ <BreadcrumbItem>
287
+ <BreadcrumbEllipsis />
288
+ </BreadcrumbItem>
289
+ <BreadcrumbSeparator />
290
+ <BreadcrumbItem>
291
+ <BreadcrumbLink href="/category">Category</BreadcrumbLink>
292
+ </BreadcrumbItem>
293
+ <BreadcrumbSeparator />
294
+ <BreadcrumbItem>
295
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
296
+ </BreadcrumbItem>
297
+ </BreadcrumbList>
298
+ </Breadcrumb>
299
+ </div>
300
+
301
+ <div>
302
+ <h4 className="text-sm font-medium text-muted-foreground mb-2">
303
+ Interactive Dropdown
304
+ </h4>
305
+ <Breadcrumb>
306
+ <BreadcrumbList>
307
+ <BreadcrumbItem>
308
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
309
+ </BreadcrumbItem>
310
+ <BreadcrumbSeparator />
311
+ <BreadcrumbItem>
312
+ <DropdownMenu>
313
+ <DropdownMenuTrigger className="flex items-center gap-1 hover:text-foreground transition-colors">
314
+ Categories
315
+ <ChevronDown className="h-3 w-3" />
316
+ </DropdownMenuTrigger>
317
+ <DropdownMenuContent align="start">
318
+ <DropdownMenuItem>Electronics</DropdownMenuItem>
319
+ <DropdownMenuItem>Clothing</DropdownMenuItem>
320
+ <DropdownMenuItem>Books</DropdownMenuItem>
321
+ </DropdownMenuContent>
322
+ </DropdownMenu>
323
+ </BreadcrumbItem>
324
+ <BreadcrumbSeparator />
325
+ <BreadcrumbItem>
326
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
327
+ </BreadcrumbItem>
328
+ </BreadcrumbList>
329
+ </Breadcrumb>
330
+ </div>
331
+ </div>
332
+ ),
333
+ parameters: {
334
+ docs: {
335
+ description: {
336
+ story:
337
+ "Systematic display of all breadcrumb variants including different separators, icons, ellipsis states, and interactive dropdowns.",
338
+ },
339
+ },
340
+ },
341
+ };
342
+
343
+ export const InContext: Story = {
344
+ render: () => (
345
+ <div className="min-h-[400px] bg-background">
346
+ {/* Header */}
347
+ <header className="border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
348
+ <div className="container mx-auto px-4 py-3">
349
+ <div className="flex items-center justify-between">
350
+ <div className="flex items-center space-x-4">
351
+ <h1 className="text-lg font-semibold">E-Commerce Store</h1>
352
+ </div>
353
+ <nav className="flex items-center space-x-4">
354
+ <a
355
+ href="#"
356
+ className="text-sm text-muted-foreground hover:text-foreground"
357
+ >
358
+ Account
359
+ </a>
360
+ <a
361
+ href="#"
362
+ className="text-sm text-muted-foreground hover:text-foreground"
363
+ >
364
+ Cart (0)
365
+ </a>
366
+ </nav>
367
+ </div>
368
+ </div>
369
+ </header>
370
+
371
+ {/* Main Content */}
372
+ <main className="container mx-auto px-4 py-6">
373
+ {/* Breadcrumb Navigation */}
374
+ <div className="mb-6">
375
+ <Breadcrumb>
376
+ <BreadcrumbList>
377
+ <BreadcrumbItem>
378
+ <BreadcrumbLink href="/">
379
+ <Home className="h-4 w-4" />
380
+ Home
381
+ </BreadcrumbLink>
382
+ </BreadcrumbItem>
383
+ <BreadcrumbSeparator />
384
+ <BreadcrumbItem>
385
+ <BreadcrumbLink href="/categories">Categories</BreadcrumbLink>
386
+ </BreadcrumbItem>
387
+ <BreadcrumbSeparator />
388
+ <BreadcrumbItem>
389
+ <DropdownMenu>
390
+ <DropdownMenuTrigger className="flex items-center gap-1 hover:text-foreground transition-colors">
391
+ <BreadcrumbEllipsis className="h-4 w-4" />
392
+ <ChevronDown className="h-3 w-3" />
393
+ </DropdownMenuTrigger>
394
+ <DropdownMenuContent align="start">
395
+ <DropdownMenuItem>Electronics</DropdownMenuItem>
396
+ <DropdownMenuItem>Computers & Tablets</DropdownMenuItem>
397
+ <DropdownMenuItem>Laptops</DropdownMenuItem>
398
+ </DropdownMenuContent>
399
+ </DropdownMenu>
400
+ </BreadcrumbItem>
401
+ <BreadcrumbSeparator />
402
+ <BreadcrumbItem>
403
+ <BreadcrumbLink href="/categories/electronics/laptops/gaming">
404
+ Gaming Laptops
405
+ </BreadcrumbLink>
406
+ </BreadcrumbItem>
407
+ <BreadcrumbSeparator />
408
+ <BreadcrumbItem>
409
+ <BreadcrumbPage>ASUS ROG Strix G15</BreadcrumbPage>
410
+ </BreadcrumbItem>
411
+ </BreadcrumbList>
412
+ </Breadcrumb>
413
+ </div>
414
+
415
+ {/* Page Content */}
416
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-8">
417
+ <div className="space-y-4">
418
+ <div className="aspect-square bg-muted rounded-lg flex items-center justify-center">
419
+ <span className="text-muted-foreground">Product Image</span>
420
+ </div>
421
+ <div className="grid grid-cols-4 gap-2">
422
+ {[1, 2, 3, 4].map((i) => (
423
+ <div
424
+ key={i}
425
+ className="aspect-square bg-muted rounded-md flex items-center justify-center"
426
+ >
427
+ <span className="text-xs text-muted-foreground">{i}</span>
428
+ </div>
429
+ ))}
430
+ </div>
431
+ </div>
432
+
433
+ <div className="space-y-6">
434
+ <div>
435
+ <h1 className="text-3xl font-bold">
436
+ ASUS ROG Strix G15 Gaming Laptop
437
+ </h1>
438
+ <p className="text-xl text-muted-foreground mt-2">$1,299.99</p>
439
+ </div>
440
+
441
+ <div className="space-y-4">
442
+ <p className="text-muted-foreground">
443
+ Experience ultimate gaming performance with the ASUS ROG Strix
444
+ G15. Featuring the latest AMD Ryzen processor and NVIDIA GeForce
445
+ RTX graphics, this laptop delivers exceptional power for gaming
446
+ and content creation.
447
+ </p>
448
+
449
+ <div className="flex space-x-4">
450
+ <button className="px-6 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90">
451
+ Add to Cart
452
+ </button>
453
+ <button className="px-6 py-2 border border-input rounded-md hover:bg-accent">
454
+ Add to Wishlist
455
+ </button>
456
+ </div>
457
+ </div>
458
+
459
+ <div className="border-t pt-6">
460
+ <h3 className="font-semibold mb-2">Product Features</h3>
461
+ <ul className="space-y-1 text-sm text-muted-foreground">
462
+ <li>• AMD Ryzen 7 5800H Processor</li>
463
+ <li>• NVIDIA GeForce RTX 3060 Graphics</li>
464
+ <li>• 16GB DDR4 RAM</li>
465
+ <li>• 512GB NVMe SSD Storage</li>
466
+ <li>• 15.6&quot; Full HD 144Hz Display</li>
467
+ </ul>
468
+ </div>
469
+ </div>
470
+ </div>
471
+ </main>
472
+ </div>
473
+ ),
474
+ parameters: {
475
+ docs: {
476
+ description: {
477
+ story:
478
+ "Real-world example showing breadcrumb navigation in an e-commerce product page context. Demonstrates how breadcrumbs help users understand their location in a deep category hierarchy and provide easy navigation back to parent categories.",
479
+ },
480
+ },
481
+ },
482
+ };