@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,519 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-vite";
2
+ import {
3
+ AlertTriangle,
4
+ Trash2,
5
+ LogOut,
6
+ Download,
7
+ Settings,
8
+ FileText,
9
+ } from "lucide-react";
10
+ import {
11
+ AlertDialog,
12
+ AlertDialogAction,
13
+ AlertDialogCancel,
14
+ AlertDialogContent,
15
+ AlertDialogDescription,
16
+ AlertDialogFooter,
17
+ AlertDialogHeader,
18
+ AlertDialogTitle,
19
+ AlertDialogTrigger,
20
+ } from "../alert-dialog";
21
+ import { Button } from "../button";
22
+
23
+ const meta = {
24
+ title: "Overlays/AlertDialog",
25
+ component: AlertDialog,
26
+ parameters: {
27
+ layout: "centered",
28
+ docs: {
29
+ description: {
30
+ component:
31
+ "A specialized modal dialog for critical confirmations and destructive actions. Unlike regular dialogs, alert dialogs cannot be dismissed by clicking outside and focus the action button by default. Built with Radix UI Alert Dialog primitives and styled with Tailwind CSS.",
32
+ },
33
+ },
34
+ },
35
+ tags: ["autodocs"],
36
+ } satisfies Meta<typeof AlertDialog>;
37
+
38
+ export default meta;
39
+ type Story = StoryObj<typeof meta>;
40
+
41
+ /**
42
+ * Interactive playground for testing all AlertDialog features
43
+ *
44
+ * This story provides controls for testing different configurations and
45
+ * interaction patterns with the AlertDialog component.
46
+ */
47
+ export const Interactive: Story = {
48
+ render: () => (
49
+ <div className="flex gap-4 flex-wrap">
50
+ {/* Basic confirmation */}
51
+ <AlertDialog>
52
+ <AlertDialogTrigger asChild>
53
+ <Button variant="outline">Basic Dialog</Button>
54
+ </AlertDialogTrigger>
55
+ <AlertDialogContent>
56
+ <AlertDialogHeader>
57
+ <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
58
+ <AlertDialogDescription>
59
+ This action cannot be undone. This will permanently delete your
60
+ account and remove your data from our servers.
61
+ </AlertDialogDescription>
62
+ </AlertDialogHeader>
63
+ <AlertDialogFooter>
64
+ <AlertDialogCancel onClick={() => console.log("Dialog cancelled")}>
65
+ Cancel
66
+ </AlertDialogCancel>
67
+ <AlertDialogAction onClick={() => console.log("Dialog confirmed")}>
68
+ Continue
69
+ </AlertDialogAction>
70
+ </AlertDialogFooter>
71
+ </AlertDialogContent>
72
+ </AlertDialog>
73
+
74
+ {/* Destructive action */}
75
+ <AlertDialog>
76
+ <AlertDialogTrigger asChild>
77
+ <Button variant="destructive">
78
+ <Trash2 className="size-4" />
79
+ Delete
80
+ </Button>
81
+ </AlertDialogTrigger>
82
+ <AlertDialogContent>
83
+ <AlertDialogHeader>
84
+ <AlertDialogTitle className="flex items-center gap-2">
85
+ <AlertTriangle className="size-5 text-red-500" />
86
+ Delete Account
87
+ </AlertDialogTitle>
88
+ <AlertDialogDescription>
89
+ This action cannot be undone. This will permanently delete your
90
+ account, remove your data from our servers, and cancel any active
91
+ subscriptions.
92
+ </AlertDialogDescription>
93
+ </AlertDialogHeader>
94
+ <AlertDialogFooter>
95
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
96
+ <AlertDialogAction className="bg-red-600 hover:bg-red-700 focus:ring-red-600">
97
+ Delete Account
98
+ </AlertDialogAction>
99
+ </AlertDialogFooter>
100
+ </AlertDialogContent>
101
+ </AlertDialog>
102
+
103
+ {/* Simple confirmation */}
104
+ <AlertDialog>
105
+ <AlertDialogTrigger asChild>
106
+ <Button variant="outline">
107
+ <LogOut className="size-4" />
108
+ Sign Out
109
+ </Button>
110
+ </AlertDialogTrigger>
111
+ <AlertDialogContent>
112
+ <AlertDialogHeader>
113
+ <AlertDialogTitle>Sign Out</AlertDialogTitle>
114
+ <AlertDialogDescription>
115
+ Are you sure you want to sign out of your account?
116
+ </AlertDialogDescription>
117
+ </AlertDialogHeader>
118
+ <AlertDialogFooter>
119
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
120
+ <AlertDialogAction>Sign Out</AlertDialogAction>
121
+ </AlertDialogFooter>
122
+ </AlertDialogContent>
123
+ </AlertDialog>
124
+ </div>
125
+ ),
126
+ parameters: {
127
+ docs: {
128
+ description: {
129
+ story:
130
+ "Interactive examples showing common AlertDialog patterns. Check the Actions panel to see onClick events for the basic dialog.",
131
+ },
132
+ },
133
+ },
134
+ };
135
+
136
+ /**
137
+ * Showcase of different AlertDialog variants and styling options
138
+ *
139
+ * Demonstrates various visual treatments and content patterns for different
140
+ * use cases including destructive actions, confirmations, and custom styling.
141
+ */
142
+ export const Variants: Story = {
143
+ render: () => (
144
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
145
+ {/* Standard confirmation */}
146
+ <div className="space-y-2">
147
+ <h3 className="text-sm font-medium">Standard Confirmation</h3>
148
+ <AlertDialog>
149
+ <AlertDialogTrigger asChild>
150
+ <Button variant="outline" className="w-full">
151
+ Show Dialog
152
+ </Button>
153
+ </AlertDialogTrigger>
154
+ <AlertDialogContent>
155
+ <AlertDialogHeader>
156
+ <AlertDialogTitle>Confirm Action</AlertDialogTitle>
157
+ <AlertDialogDescription>
158
+ Are you sure you want to proceed with this action?
159
+ </AlertDialogDescription>
160
+ </AlertDialogHeader>
161
+ <AlertDialogFooter>
162
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
163
+ <AlertDialogAction>Continue</AlertDialogAction>
164
+ </AlertDialogFooter>
165
+ </AlertDialogContent>
166
+ </AlertDialog>
167
+ </div>
168
+
169
+ {/* Destructive action */}
170
+ <div className="space-y-2">
171
+ <h3 className="text-sm font-medium">Destructive Action</h3>
172
+ <AlertDialog>
173
+ <AlertDialogTrigger asChild>
174
+ <Button variant="destructive" className="w-full">
175
+ <Trash2 className="size-4" />
176
+ Delete
177
+ </Button>
178
+ </AlertDialogTrigger>
179
+ <AlertDialogContent>
180
+ <AlertDialogHeader>
181
+ <AlertDialogTitle className="flex items-center gap-2">
182
+ <AlertTriangle className="size-5 text-red-500" />
183
+ Delete Item
184
+ </AlertDialogTitle>
185
+ <AlertDialogDescription>
186
+ This action cannot be undone. The item will be permanently
187
+ removed.
188
+ </AlertDialogDescription>
189
+ </AlertDialogHeader>
190
+ <AlertDialogFooter>
191
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
192
+ <AlertDialogAction className="bg-red-600 hover:bg-red-700">
193
+ Delete
194
+ </AlertDialogAction>
195
+ </AlertDialogFooter>
196
+ </AlertDialogContent>
197
+ </AlertDialog>
198
+ </div>
199
+
200
+ {/* Without description */}
201
+ <div className="space-y-2">
202
+ <h3 className="text-sm font-medium">Title Only</h3>
203
+ <AlertDialog>
204
+ <AlertDialogTrigger asChild>
205
+ <Button variant="outline" className="w-full">
206
+ Quick Confirm
207
+ </Button>
208
+ </AlertDialogTrigger>
209
+ <AlertDialogContent>
210
+ <AlertDialogHeader>
211
+ <AlertDialogTitle>Quick Confirmation</AlertDialogTitle>
212
+ </AlertDialogHeader>
213
+ <AlertDialogFooter>
214
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
215
+ <AlertDialogAction>Confirm</AlertDialogAction>
216
+ </AlertDialogFooter>
217
+ </AlertDialogContent>
218
+ </AlertDialog>
219
+ </div>
220
+
221
+ {/* Custom button styling */}
222
+ <div className="space-y-2">
223
+ <h3 className="text-sm font-medium">Custom Styling</h3>
224
+ <AlertDialog>
225
+ <AlertDialogTrigger asChild>
226
+ <Button variant="outline" className="w-full">
227
+ Save Changes
228
+ </Button>
229
+ </AlertDialogTrigger>
230
+ <AlertDialogContent>
231
+ <AlertDialogHeader>
232
+ <AlertDialogTitle>Save Changes?</AlertDialogTitle>
233
+ <AlertDialogDescription>
234
+ You have unsaved changes. Save before leaving?
235
+ </AlertDialogDescription>
236
+ </AlertDialogHeader>
237
+ <AlertDialogFooter>
238
+ <AlertDialogCancel>Don&apos;t Save</AlertDialogCancel>
239
+ <AlertDialogAction className="bg-blue-600 hover:bg-blue-700">
240
+ Save Changes
241
+ </AlertDialogAction>
242
+ </AlertDialogFooter>
243
+ </AlertDialogContent>
244
+ </AlertDialog>
245
+ </div>
246
+
247
+ {/* Long content */}
248
+ <div className="space-y-2">
249
+ <h3 className="text-sm font-medium">Detailed Explanation</h3>
250
+ <AlertDialog>
251
+ <AlertDialogTrigger asChild>
252
+ <Button variant="outline" className="w-full">
253
+ <Settings className="size-4" />
254
+ Reset Settings
255
+ </Button>
256
+ </AlertDialogTrigger>
257
+ <AlertDialogContent>
258
+ <AlertDialogHeader>
259
+ <AlertDialogTitle>Reset All Settings</AlertDialogTitle>
260
+ <AlertDialogDescription>
261
+ This will reset all application settings to defaults including:
262
+ • Theme preferences • Notification settings • Privacy
263
+ preferences • Display options Your data will not be affected.
264
+ </AlertDialogDescription>
265
+ </AlertDialogHeader>
266
+ <AlertDialogFooter>
267
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
268
+ <AlertDialogAction>Reset Settings</AlertDialogAction>
269
+ </AlertDialogFooter>
270
+ </AlertDialogContent>
271
+ </AlertDialog>
272
+ </div>
273
+
274
+ {/* Information/Download */}
275
+ <div className="space-y-2">
276
+ <h3 className="text-sm font-medium">Information Action</h3>
277
+ <AlertDialog>
278
+ <AlertDialogTrigger asChild>
279
+ <Button className="w-full">
280
+ <Download className="size-4" />
281
+ Download
282
+ </Button>
283
+ </AlertDialogTrigger>
284
+ <AlertDialogContent>
285
+ <AlertDialogHeader>
286
+ <AlertDialogTitle>Download Your Data</AlertDialogTitle>
287
+ <AlertDialogDescription>
288
+ This will prepare a ZIP file with all your data. You&apos;ll
289
+ receive an email when it&apos;s ready.
290
+ </AlertDialogDescription>
291
+ </AlertDialogHeader>
292
+ <AlertDialogFooter>
293
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
294
+ <AlertDialogAction>Start Download</AlertDialogAction>
295
+ </AlertDialogFooter>
296
+ </AlertDialogContent>
297
+ </AlertDialog>
298
+ </div>
299
+ </div>
300
+ ),
301
+ parameters: {
302
+ docs: {
303
+ description: {
304
+ story:
305
+ "Collection of AlertDialog variants showing different styling patterns, content lengths, and use cases for various scenarios.",
306
+ },
307
+ },
308
+ },
309
+ };
310
+
311
+ /**
312
+ * Real-world usage example in a realistic application context
313
+ *
314
+ * Shows how AlertDialog integrates within a typical application interface
315
+ * with realistic content and multiple interaction points.
316
+ */
317
+ export const InContext: Story = {
318
+ render: () => (
319
+ <div className="max-w-2xl mx-auto p-6 space-y-6">
320
+ {/* Simulated application header */}
321
+ <div className="border-b pb-4">
322
+ <h1 className="text-2xl font-bold">Account Settings</h1>
323
+ <p className="text-muted-foreground">
324
+ Manage your account preferences and data
325
+ </p>
326
+ </div>
327
+
328
+ {/* Simulated settings sections */}
329
+ <div className="space-y-6">
330
+ {/* Profile section */}
331
+ <div className="border rounded-lg p-4">
332
+ <h2 className="text-lg font-semibold mb-3">Profile Information</h2>
333
+ <div className="space-y-3">
334
+ <div className="flex items-center justify-between">
335
+ <div>
336
+ <p className="font-medium">Export Account Data</p>
337
+ <p className="text-sm text-muted-foreground">
338
+ Download all your account information
339
+ </p>
340
+ </div>
341
+ <AlertDialog>
342
+ <AlertDialogTrigger asChild>
343
+ <Button variant="outline">
344
+ <Download className="size-4" />
345
+ Export Data
346
+ </Button>
347
+ </AlertDialogTrigger>
348
+ <AlertDialogContent>
349
+ <AlertDialogHeader>
350
+ <AlertDialogTitle>Export Account Data</AlertDialogTitle>
351
+ <AlertDialogDescription>
352
+ We&apos;ll prepare a comprehensive export of your account
353
+ data including profile information, preferences, and
354
+ activity history. This may take a few minutes to process.
355
+ You&apos;ll receive an email notification when your export
356
+ is ready for download.
357
+ </AlertDialogDescription>
358
+ </AlertDialogHeader>
359
+ <AlertDialogFooter>
360
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
361
+ <AlertDialogAction>Start Export</AlertDialogAction>
362
+ </AlertDialogFooter>
363
+ </AlertDialogContent>
364
+ </AlertDialog>
365
+ </div>
366
+ </div>
367
+ </div>
368
+
369
+ {/* Danger zone */}
370
+ <div className="bg-card text-card-foreground border border-destructive/20 rounded-lg p-4">
371
+ <h2 className="text-lg font-semibold mb-3 text-destructive">
372
+ Danger Zone
373
+ </h2>
374
+ <div className="space-y-4">
375
+ <div className="flex items-center justify-between">
376
+ <div>
377
+ <p className="font-medium text-destructive">
378
+ Reset All Settings
379
+ </p>
380
+ <p className="text-sm text-muted-foreground">
381
+ Return all preferences to default values
382
+ </p>
383
+ </div>
384
+ <AlertDialog>
385
+ <AlertDialogTrigger asChild>
386
+ <Button
387
+ variant="outline"
388
+ className="border-destructive/30 text-destructive hover:bg-destructive/10"
389
+ >
390
+ <Settings className="size-4" />
391
+ Reset Settings
392
+ </Button>
393
+ </AlertDialogTrigger>
394
+ <AlertDialogContent>
395
+ <AlertDialogHeader>
396
+ <AlertDialogTitle>Reset All Settings</AlertDialogTitle>
397
+ <AlertDialogDescription>
398
+ This will reset all your application settings to their
399
+ default values, including: • Theme and display preferences
400
+ • Notification settings • Privacy and security preferences
401
+ • Language and region settings Your account data, saved
402
+ content, and personal information will not be affected.
403
+ You can reconfigure these settings at any time.
404
+ </AlertDialogDescription>
405
+ </AlertDialogHeader>
406
+ <AlertDialogFooter>
407
+ <AlertDialogCancel>Keep Current Settings</AlertDialogCancel>
408
+ <AlertDialogAction className="bg-orange-600 hover:bg-orange-700">
409
+ Reset All Settings
410
+ </AlertDialogAction>
411
+ </AlertDialogFooter>
412
+ </AlertDialogContent>
413
+ </AlertDialog>
414
+ </div>
415
+
416
+ <div className="flex items-center justify-between pt-4 border-t border-border">
417
+ <div>
418
+ <p className="font-medium text-destructive">Delete Account</p>
419
+ <p className="text-sm text-muted-foreground">
420
+ Permanently delete your account and all data
421
+ </p>
422
+ </div>
423
+ <AlertDialog>
424
+ <AlertDialogTrigger asChild>
425
+ <Button variant="destructive">
426
+ <Trash2 className="size-4" />
427
+ Delete Account
428
+ </Button>
429
+ </AlertDialogTrigger>
430
+ <AlertDialogContent>
431
+ <AlertDialogHeader>
432
+ <AlertDialogTitle className="flex items-center gap-2">
433
+ <AlertTriangle className="size-5 text-red-500" />
434
+ Delete Account Permanently
435
+ </AlertDialogTitle>
436
+ <AlertDialogDescription>
437
+ This action cannot be undone. This will permanently delete
438
+ your account, remove all your data from our servers, and
439
+ cancel any active subscriptions. All of your projects,
440
+ files, and account information will be permanently lost.
441
+ If you&apos;re sure you want to proceed, type
442
+ &quot;DELETE&quot; in the confirmation field that will
443
+ appear.
444
+ </AlertDialogDescription>
445
+ </AlertDialogHeader>
446
+ <AlertDialogFooter>
447
+ <AlertDialogCancel>Keep My Account</AlertDialogCancel>
448
+ <AlertDialogAction className="bg-red-600 hover:bg-red-700 focus:ring-red-600">
449
+ Yes, Delete My Account
450
+ </AlertDialogAction>
451
+ </AlertDialogFooter>
452
+ </AlertDialogContent>
453
+ </AlertDialog>
454
+ </div>
455
+ </div>
456
+ </div>
457
+
458
+ {/* Quick actions */}
459
+ <div className="border rounded-lg p-4">
460
+ <h2 className="text-lg font-semibold mb-3">Quick Actions</h2>
461
+ <div className="flex gap-3 flex-wrap">
462
+ <AlertDialog>
463
+ <AlertDialogTrigger asChild>
464
+ <Button variant="outline">
465
+ <LogOut className="size-4" />
466
+ Sign Out
467
+ </Button>
468
+ </AlertDialogTrigger>
469
+ <AlertDialogContent>
470
+ <AlertDialogHeader>
471
+ <AlertDialogTitle>Sign Out</AlertDialogTitle>
472
+ <AlertDialogDescription>
473
+ Are you sure you want to sign out of your account?
474
+ You&apos;ll need to sign in again to access your data.
475
+ </AlertDialogDescription>
476
+ </AlertDialogHeader>
477
+ <AlertDialogFooter>
478
+ <AlertDialogCancel>Stay Signed In</AlertDialogCancel>
479
+ <AlertDialogAction>Sign Out</AlertDialogAction>
480
+ </AlertDialogFooter>
481
+ </AlertDialogContent>
482
+ </AlertDialog>
483
+
484
+ <AlertDialog>
485
+ <AlertDialogTrigger asChild>
486
+ <Button variant="outline">
487
+ <FileText className="size-4" />
488
+ Clear Cache
489
+ </Button>
490
+ </AlertDialogTrigger>
491
+ <AlertDialogContent>
492
+ <AlertDialogHeader>
493
+ <AlertDialogTitle>Clear Application Cache</AlertDialogTitle>
494
+ <AlertDialogDescription>
495
+ This will clear all cached data and temporary files. You may
496
+ need to reload some content, but this can help resolve
497
+ performance issues.
498
+ </AlertDialogDescription>
499
+ </AlertDialogHeader>
500
+ <AlertDialogFooter>
501
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
502
+ <AlertDialogAction>Clear Cache</AlertDialogAction>
503
+ </AlertDialogFooter>
504
+ </AlertDialogContent>
505
+ </AlertDialog>
506
+ </div>
507
+ </div>
508
+ </div>
509
+ </div>
510
+ ),
511
+ parameters: {
512
+ docs: {
513
+ description: {
514
+ story:
515
+ "Realistic application context showing AlertDialog integration within a settings page. Demonstrates proper usage patterns for different types of confirmations including data exports, settings resets, account deletion, and quick actions.",
516
+ },
517
+ },
518
+ },
519
+ };