@neynar/ui 0.2.0 → 0.3.0

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 (503) hide show
  1. package/dist/components/ui/badge.d.ts +7 -1
  2. package/dist/components/ui/badge.d.ts.map +1 -1
  3. package/dist/components/ui/button-group.d.ts +448 -0
  4. package/dist/components/ui/button-group.d.ts.map +1 -0
  5. package/dist/components/ui/button.d.ts +1 -1
  6. package/dist/components/ui/button.d.ts.map +1 -1
  7. package/dist/components/ui/empty-state.d.ts +1 -0
  8. package/dist/components/ui/empty-state.d.ts.map +1 -1
  9. package/dist/components/ui/empty.d.ts +630 -0
  10. package/dist/components/ui/empty.d.ts.map +1 -0
  11. package/dist/components/ui/field.d.ts +238 -0
  12. package/dist/components/ui/field.d.ts.map +1 -0
  13. package/dist/components/ui/input-group.d.ts +636 -0
  14. package/dist/components/ui/input-group.d.ts.map +1 -0
  15. package/dist/components/ui/item.d.ts +766 -0
  16. package/dist/components/ui/item.d.ts.map +1 -0
  17. package/dist/components/ui/kbd.d.ts +149 -0
  18. package/dist/components/ui/kbd.d.ts.map +1 -0
  19. package/dist/components/ui/spinner.d.ts +194 -0
  20. package/dist/components/ui/spinner.d.ts.map +1 -0
  21. package/dist/components/ui/stories/accordion.stories.d.ts +0 -1
  22. package/dist/components/ui/stories/accordion.stories.d.ts.map +1 -1
  23. package/dist/components/ui/stories/alert-dialog.stories.d.ts +0 -1
  24. package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +1 -1
  25. package/dist/components/ui/stories/alert.stories.d.ts +0 -1
  26. package/dist/components/ui/stories/alert.stories.d.ts.map +1 -1
  27. package/dist/components/ui/stories/aspect-ratio.stories.d.ts +0 -1
  28. package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -1
  29. package/dist/components/ui/stories/avatar.stories.d.ts +0 -1
  30. package/dist/components/ui/stories/avatar.stories.d.ts.map +1 -1
  31. package/dist/components/ui/stories/badge.stories.d.ts +0 -1
  32. package/dist/components/ui/stories/badge.stories.d.ts.map +1 -1
  33. package/dist/components/ui/stories/breadcrumb.stories.d.ts +0 -1
  34. package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +1 -1
  35. package/dist/components/ui/stories/button-group.stories.d.ts +48 -0
  36. package/dist/components/ui/stories/button-group.stories.d.ts.map +1 -0
  37. package/dist/components/ui/stories/button.stories.d.ts +0 -1
  38. package/dist/components/ui/stories/button.stories.d.ts.map +1 -1
  39. package/dist/components/ui/stories/calendar.stories.d.ts +0 -1
  40. package/dist/components/ui/stories/calendar.stories.d.ts.map +1 -1
  41. package/dist/components/ui/stories/card.stories.d.ts +0 -1
  42. package/dist/components/ui/stories/card.stories.d.ts.map +1 -1
  43. package/dist/components/ui/stories/carousel.stories.d.ts +0 -1
  44. package/dist/components/ui/stories/carousel.stories.d.ts.map +1 -1
  45. package/dist/components/ui/stories/chart.stories.d.ts +0 -1
  46. package/dist/components/ui/stories/chart.stories.d.ts.map +1 -1
  47. package/dist/components/ui/stories/checkbox.stories.d.ts +0 -1
  48. package/dist/components/ui/stories/checkbox.stories.d.ts.map +1 -1
  49. package/dist/components/ui/stories/cn.stories.d.ts.map +1 -1
  50. package/dist/components/ui/stories/collapsible.stories.d.ts +0 -1
  51. package/dist/components/ui/stories/collapsible.stories.d.ts.map +1 -1
  52. package/dist/components/ui/stories/colors.stories.d.ts +0 -1
  53. package/dist/components/ui/stories/colors.stories.d.ts.map +1 -1
  54. package/dist/components/ui/stories/combobox.stories.d.ts +0 -1
  55. package/dist/components/ui/stories/combobox.stories.d.ts.map +1 -1
  56. package/dist/components/ui/stories/command.stories.d.ts +0 -1
  57. package/dist/components/ui/stories/command.stories.d.ts.map +1 -1
  58. package/dist/components/ui/stories/container.stories.d.ts +0 -1
  59. package/dist/components/ui/stories/container.stories.d.ts.map +1 -1
  60. package/dist/components/ui/stories/context-menu.stories.d.ts +0 -1
  61. package/dist/components/ui/stories/context-menu.stories.d.ts.map +1 -1
  62. package/dist/components/ui/stories/date-picker.stories.d.ts +0 -1
  63. package/dist/components/ui/stories/date-picker.stories.d.ts.map +1 -1
  64. package/dist/components/ui/stories/dialog.stories.d.ts +0 -1
  65. package/dist/components/ui/stories/dialog.stories.d.ts.map +1 -1
  66. package/dist/components/ui/stories/drawer.stories.d.ts +0 -1
  67. package/dist/components/ui/stories/drawer.stories.d.ts.map +1 -1
  68. package/dist/components/ui/stories/dropdown-menu.stories.d.ts +0 -1
  69. package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +1 -1
  70. package/dist/components/ui/stories/empty-state.stories.d.ts +0 -1
  71. package/dist/components/ui/stories/empty-state.stories.d.ts.map +1 -1
  72. package/dist/components/ui/stories/empty.stories.d.ts +38 -0
  73. package/dist/components/ui/stories/empty.stories.d.ts.map +1 -0
  74. package/dist/components/ui/stories/field.stories.d.ts +48 -0
  75. package/dist/components/ui/stories/field.stories.d.ts.map +1 -0
  76. package/dist/components/ui/stories/hover-card.stories.d.ts +0 -1
  77. package/dist/components/ui/stories/hover-card.stories.d.ts.map +1 -1
  78. package/dist/components/ui/stories/input-group.stories.d.ts +37 -0
  79. package/dist/components/ui/stories/input-group.stories.d.ts.map +1 -0
  80. package/dist/components/ui/stories/input.stories.d.ts +0 -1
  81. package/dist/components/ui/stories/input.stories.d.ts.map +1 -1
  82. package/dist/components/ui/stories/item.stories.d.ts +61 -0
  83. package/dist/components/ui/stories/item.stories.d.ts.map +1 -0
  84. package/dist/components/ui/stories/kbd.stories.d.ts +37 -0
  85. package/dist/components/ui/stories/kbd.stories.d.ts.map +1 -0
  86. package/dist/components/ui/stories/label.stories.d.ts +0 -1
  87. package/dist/components/ui/stories/label.stories.d.ts.map +1 -1
  88. package/dist/components/ui/stories/menubar.stories.d.ts +0 -1
  89. package/dist/components/ui/stories/menubar.stories.d.ts.map +1 -1
  90. package/dist/components/ui/stories/navigation-menu.stories.d.ts +0 -1
  91. package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +1 -1
  92. package/dist/components/ui/stories/pagination.stories.d.ts +0 -1
  93. package/dist/components/ui/stories/pagination.stories.d.ts.map +1 -1
  94. package/dist/components/ui/stories/popover.stories.d.ts +0 -1
  95. package/dist/components/ui/stories/popover.stories.d.ts.map +1 -1
  96. package/dist/components/ui/stories/progress.stories.d.ts +0 -1
  97. package/dist/components/ui/stories/progress.stories.d.ts.map +1 -1
  98. package/dist/components/ui/stories/radio-group.stories.d.ts +0 -1
  99. package/dist/components/ui/stories/radio-group.stories.d.ts.map +1 -1
  100. package/dist/components/ui/stories/resizable.stories.d.ts +0 -1
  101. package/dist/components/ui/stories/resizable.stories.d.ts.map +1 -1
  102. package/dist/components/ui/stories/scroll-area.stories.d.ts +0 -1
  103. package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -1
  104. package/dist/components/ui/stories/select.stories.d.ts +0 -1
  105. package/dist/components/ui/stories/select.stories.d.ts.map +1 -1
  106. package/dist/components/ui/stories/separator.stories.d.ts +0 -1
  107. package/dist/components/ui/stories/separator.stories.d.ts.map +1 -1
  108. package/dist/components/ui/stories/sheet.stories.d.ts +0 -1
  109. package/dist/components/ui/stories/sheet.stories.d.ts.map +1 -1
  110. package/dist/components/ui/stories/sidebar.stories.d.ts +0 -1
  111. package/dist/components/ui/stories/sidebar.stories.d.ts.map +1 -1
  112. package/dist/components/ui/stories/skeleton.stories.d.ts +0 -1
  113. package/dist/components/ui/stories/skeleton.stories.d.ts.map +1 -1
  114. package/dist/components/ui/stories/slider.stories.d.ts +0 -1
  115. package/dist/components/ui/stories/slider.stories.d.ts.map +1 -1
  116. package/dist/components/ui/stories/sonner.stories.d.ts.map +1 -1
  117. package/dist/components/ui/stories/spinner.stories.d.ts +37 -0
  118. package/dist/components/ui/stories/spinner.stories.d.ts.map +1 -0
  119. package/dist/components/ui/stories/stack.stories.d.ts +0 -1
  120. package/dist/components/ui/stories/stack.stories.d.ts.map +1 -1
  121. package/dist/components/ui/stories/switch.stories.d.ts +0 -1
  122. package/dist/components/ui/stories/switch.stories.d.ts.map +1 -1
  123. package/dist/components/ui/stories/table.stories.d.ts +0 -1
  124. package/dist/components/ui/stories/table.stories.d.ts.map +1 -1
  125. package/dist/components/ui/stories/tabs.stories.d.ts +0 -1
  126. package/dist/components/ui/stories/tabs.stories.d.ts.map +1 -1
  127. package/dist/components/ui/stories/text-field.stories.d.ts +0 -1
  128. package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -1
  129. package/dist/components/ui/stories/textarea.stories.d.ts +0 -1
  130. package/dist/components/ui/stories/textarea.stories.d.ts.map +1 -1
  131. package/dist/components/ui/stories/theme-toggle.stories.d.ts +0 -1
  132. package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +1 -1
  133. package/dist/components/ui/stories/theme.stories.d.ts +0 -1
  134. package/dist/components/ui/stories/theme.stories.d.ts.map +1 -1
  135. package/dist/components/ui/stories/toggle-group.stories.d.ts +0 -1
  136. package/dist/components/ui/stories/toggle-group.stories.d.ts.map +1 -1
  137. package/dist/components/ui/stories/toggle.stories.d.ts +0 -1
  138. package/dist/components/ui/stories/toggle.stories.d.ts.map +1 -1
  139. package/dist/components/ui/stories/tooltip.stories.d.ts +0 -1
  140. package/dist/components/ui/stories/tooltip.stories.d.ts.map +1 -1
  141. package/dist/components/ui/stories/typography.stories.d.ts +0 -1
  142. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -1
  143. package/dist/components/ui/stories/use-mobile.stories.d.ts.map +1 -1
  144. package/dist/components/ui/stories/use-theme.stories.d.ts.map +1 -1
  145. package/dist/components/ui/typography.d.ts +12 -11
  146. package/dist/components/ui/typography.d.ts.map +1 -1
  147. package/dist/index.d.ts +7 -0
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +21584 -12837
  150. package/dist/index.js.map +1 -1
  151. package/dist/tsconfig.tsbuildinfo +1 -1
  152. package/docs/llm/components/display.md +125 -0
  153. package/docs/llm/components/feedback.md +0 -14
  154. package/docs/llm/components/forms.md +94 -0
  155. package/docs/llm/components/layout.md +169 -0
  156. package/llms.txt +18 -12
  157. package/package.json +6 -5
  158. package/src/components/ui/badge.tsx +21 -3
  159. package/src/components/ui/button-group.tsx +525 -0
  160. package/src/components/ui/button.tsx +9 -12
  161. package/src/components/ui/empty-state.tsx +1 -0
  162. package/src/components/ui/empty.tsx +793 -0
  163. package/src/components/ui/field.tsx +494 -0
  164. package/src/components/ui/input-group.tsx +801 -0
  165. package/src/components/ui/item.tsx +955 -0
  166. package/src/components/ui/kbd.tsx +175 -0
  167. package/src/components/ui/skeleton.tsx +1 -1
  168. package/src/components/ui/spinner.tsx +211 -0
  169. package/src/components/ui/stories/accordion.stories.tsx +0 -1
  170. package/src/components/ui/stories/alert-dialog.stories.tsx +0 -1
  171. package/src/components/ui/stories/alert.stories.tsx +0 -1
  172. package/src/components/ui/stories/aspect-ratio.stories.tsx +0 -1
  173. package/src/components/ui/stories/avatar.stories.tsx +0 -1
  174. package/src/components/ui/stories/badge.stories.tsx +0 -1
  175. package/src/components/ui/stories/breadcrumb.stories.tsx +0 -1
  176. package/src/components/ui/stories/button-group.stories.tsx +300 -0
  177. package/src/components/ui/stories/button.stories.tsx +0 -1
  178. package/src/components/ui/stories/calendar.stories.tsx +0 -1
  179. package/src/components/ui/stories/card.stories.tsx +0 -1
  180. package/src/components/ui/stories/carousel.stories.tsx +0 -1
  181. package/src/components/ui/stories/chart.stories.tsx +0 -1
  182. package/src/components/ui/stories/checkbox.stories.tsx +0 -1
  183. package/src/components/ui/stories/cn.stories.tsx +0 -1
  184. package/src/components/ui/stories/collapsible.stories.tsx +0 -1
  185. package/src/components/ui/stories/colors.stories.tsx +0 -1
  186. package/src/components/ui/stories/combobox.stories.tsx +0 -1
  187. package/src/components/ui/stories/command.stories.tsx +0 -1
  188. package/src/components/ui/stories/container.stories.tsx +0 -1
  189. package/src/components/ui/stories/context-menu.stories.tsx +0 -1
  190. package/src/components/ui/stories/date-picker.stories.tsx +0 -1
  191. package/src/components/ui/stories/dialog.stories.tsx +0 -1
  192. package/src/components/ui/stories/drawer.stories.tsx +0 -1
  193. package/src/components/ui/stories/dropdown-menu.stories.tsx +0 -1
  194. package/src/components/ui/stories/empty-state.stories.tsx +0 -1
  195. package/src/components/ui/stories/empty.stories.tsx +293 -0
  196. package/src/components/ui/stories/field.stories.tsx +470 -0
  197. package/src/components/ui/stories/hover-card.stories.tsx +0 -1
  198. package/src/components/ui/stories/input-group.stories.tsx +444 -0
  199. package/src/components/ui/stories/input.stories.tsx +0 -1
  200. package/src/components/ui/stories/item.stories.tsx +601 -0
  201. package/src/components/ui/stories/kbd.stories.tsx +462 -0
  202. package/src/components/ui/stories/label.stories.tsx +0 -1
  203. package/src/components/ui/stories/menubar.stories.tsx +0 -1
  204. package/src/components/ui/stories/navigation-menu.stories.tsx +0 -1
  205. package/src/components/ui/stories/pagination.stories.tsx +0 -1
  206. package/src/components/ui/stories/popover.stories.tsx +0 -1
  207. package/src/components/ui/stories/progress.stories.tsx +0 -1
  208. package/src/components/ui/stories/radio-group.stories.tsx +0 -1
  209. package/src/components/ui/stories/resizable.stories.tsx +0 -1
  210. package/src/components/ui/stories/scroll-area.stories.tsx +0 -1
  211. package/src/components/ui/stories/select.stories.tsx +0 -1
  212. package/src/components/ui/stories/separator.stories.tsx +0 -1
  213. package/src/components/ui/stories/sheet.stories.tsx +0 -1
  214. package/src/components/ui/stories/sidebar.stories.tsx +0 -1
  215. package/src/components/ui/stories/skeleton.stories.tsx +0 -1
  216. package/src/components/ui/stories/slider.stories.tsx +0 -1
  217. package/src/components/ui/stories/sonner.stories.tsx +0 -1
  218. package/src/components/ui/stories/spinner.stories.tsx +356 -0
  219. package/src/components/ui/stories/stack.stories.tsx +0 -1
  220. package/src/components/ui/stories/switch.stories.tsx +0 -1
  221. package/src/components/ui/stories/table.stories.tsx +0 -1
  222. package/src/components/ui/stories/tabs.stories.tsx +0 -1
  223. package/src/components/ui/stories/text-field.stories.tsx +0 -1
  224. package/src/components/ui/stories/textarea.stories.tsx +0 -1
  225. package/src/components/ui/stories/theme-toggle.stories.tsx +0 -1
  226. package/src/components/ui/stories/theme.stories.tsx +0 -1
  227. package/src/components/ui/stories/toggle-group.stories.tsx +0 -1
  228. package/src/components/ui/stories/toggle.stories.tsx +0 -1
  229. package/src/components/ui/stories/tooltip.stories.tsx +0 -1
  230. package/src/components/ui/stories/typography.stories.tsx +5 -2
  231. package/src/components/ui/stories/use-mobile.stories.tsx +0 -1
  232. package/src/components/ui/stories/use-theme.stories.tsx +0 -1
  233. package/src/components/ui/tabs.tsx +1 -1
  234. package/src/components/ui/typography.tsx +29 -129
  235. package/src/index.ts +7 -0
  236. package/src/styles/globals.css +45 -25
  237. package/llm-docs/a.llm.md +0 -145
  238. package/llm-docs/accordion-content.llm.md +0 -67
  239. package/llm-docs/accordion-item.llm.md +0 -61
  240. package/llm-docs/accordion-trigger.llm.md +0 -69
  241. package/llm-docs/accordion.llm.md +0 -88
  242. package/llm-docs/alert-description.llm.md +0 -78
  243. package/llm-docs/alert-dialog-action.llm.md +0 -51
  244. package/llm-docs/alert-dialog-cancel.llm.md +0 -48
  245. package/llm-docs/alert-dialog-content.llm.md +0 -88
  246. package/llm-docs/alert-dialog-description.llm.md +0 -53
  247. package/llm-docs/alert-dialog-footer.llm.md +0 -41
  248. package/llm-docs/alert-dialog-header.llm.md +0 -39
  249. package/llm-docs/alert-dialog-overlay.llm.md +0 -44
  250. package/llm-docs/alert-dialog-portal.llm.md +0 -41
  251. package/llm-docs/alert-dialog-title.llm.md +0 -46
  252. package/llm-docs/alert-dialog-trigger.llm.md +0 -40
  253. package/llm-docs/alert-dialog.llm.md +0 -80
  254. package/llm-docs/alert-title.llm.md +0 -48
  255. package/llm-docs/alert.llm.md +0 -92
  256. package/llm-docs/aspect-ratio.llm.md +0 -41
  257. package/llm-docs/avatar-fallback.llm.md +0 -41
  258. package/llm-docs/avatar-image.llm.md +0 -48
  259. package/llm-docs/avatar.llm.md +0 -35
  260. package/llm-docs/badge.llm.md +0 -108
  261. package/llm-docs/blockquote.llm.md +0 -122
  262. package/llm-docs/breadcrumb-ellipsis.llm.md +0 -73
  263. package/llm-docs/breadcrumb-item.llm.md +0 -53
  264. package/llm-docs/breadcrumb-link.llm.md +0 -84
  265. package/llm-docs/breadcrumb-list.llm.md +0 -54
  266. package/llm-docs/breadcrumb-page.llm.md +0 -52
  267. package/llm-docs/breadcrumb-separator.llm.md +0 -60
  268. package/llm-docs/breadcrumb.llm.md +0 -110
  269. package/llm-docs/button.llm.md +0 -281
  270. package/llm-docs/calendar-day-button.llm.md +0 -57
  271. package/llm-docs/calendar.llm.md +0 -340
  272. package/llm-docs/card-action.llm.md +0 -64
  273. package/llm-docs/card-content.llm.md +0 -48
  274. package/llm-docs/card-description.llm.md +0 -46
  275. package/llm-docs/card-footer.llm.md +0 -56
  276. package/llm-docs/card-header.llm.md +0 -53
  277. package/llm-docs/card-title.llm.md +0 -43
  278. package/llm-docs/card.llm.md +0 -100
  279. package/llm-docs/carousel-content.llm.md +0 -77
  280. package/llm-docs/carousel-item.llm.md +0 -96
  281. package/llm-docs/carousel-next.llm.md +0 -95
  282. package/llm-docs/carousel-previous.llm.md +0 -95
  283. package/llm-docs/carousel.llm.md +0 -211
  284. package/llm-docs/chart-config.llm.md +0 -71
  285. package/llm-docs/chart-container.llm.md +0 -148
  286. package/llm-docs/chart-legend-content.llm.md +0 -85
  287. package/llm-docs/chart-legend.llm.md +0 -144
  288. package/llm-docs/chart-style.llm.md +0 -28
  289. package/llm-docs/chart-tooltip-content.llm.md +0 -149
  290. package/llm-docs/chart-tooltip.llm.md +0 -184
  291. package/llm-docs/checkbox.llm.md +0 -100
  292. package/llm-docs/cn.llm.md +0 -46
  293. package/llm-docs/code.llm.md +0 -108
  294. package/llm-docs/collapsible-content.llm.md +0 -109
  295. package/llm-docs/collapsible-trigger.llm.md +0 -75
  296. package/llm-docs/collapsible.llm.md +0 -109
  297. package/llm-docs/combobox-option.llm.md +0 -53
  298. package/llm-docs/combobox.llm.md +0 -208
  299. package/llm-docs/command-dialog.llm.md +0 -112
  300. package/llm-docs/command-empty.llm.md +0 -63
  301. package/llm-docs/command-group.llm.md +0 -83
  302. package/llm-docs/command-input.llm.md +0 -82
  303. package/llm-docs/command-item.llm.md +0 -97
  304. package/llm-docs/command-list.llm.md +0 -53
  305. package/llm-docs/command-loading.llm.md +0 -48
  306. package/llm-docs/command-separator.llm.md +0 -44
  307. package/llm-docs/command-shortcut.llm.md +0 -63
  308. package/llm-docs/command.llm.md +0 -147
  309. package/llm-docs/container.llm.md +0 -236
  310. package/llm-docs/context-menu-checkbox-item.llm.md +0 -97
  311. package/llm-docs/context-menu-content.llm.md +0 -91
  312. package/llm-docs/context-menu-group.llm.md +0 -61
  313. package/llm-docs/context-menu-item.llm.md +0 -94
  314. package/llm-docs/context-menu-label.llm.md +0 -60
  315. package/llm-docs/context-menu-portal.llm.md +0 -49
  316. package/llm-docs/context-menu-radio-group.llm.md +0 -66
  317. package/llm-docs/context-menu-radio-item.llm.md +0 -76
  318. package/llm-docs/context-menu-separator.llm.md +0 -51
  319. package/llm-docs/context-menu-shortcut.llm.md +0 -57
  320. package/llm-docs/context-menu-sub-content.llm.md +0 -90
  321. package/llm-docs/context-menu-sub-trigger.llm.md +0 -73
  322. package/llm-docs/context-menu-sub.llm.md +0 -61
  323. package/llm-docs/context-menu-trigger.llm.md +0 -53
  324. package/llm-docs/context-menu.llm.md +0 -103
  325. package/llm-docs/date-picker.llm.md +0 -90
  326. package/llm-docs/dialog-close.llm.md +0 -61
  327. package/llm-docs/dialog-content.llm.md +0 -128
  328. package/llm-docs/dialog-description.llm.md +0 -44
  329. package/llm-docs/dialog-footer.llm.md +0 -38
  330. package/llm-docs/dialog-header.llm.md +0 -40
  331. package/llm-docs/dialog-overlay.llm.md +0 -57
  332. package/llm-docs/dialog-portal.llm.md +0 -47
  333. package/llm-docs/dialog-title.llm.md +0 -41
  334. package/llm-docs/dialog-trigger.llm.md +0 -51
  335. package/llm-docs/dialog.llm.md +0 -113
  336. package/llm-docs/drawer-close.llm.md +0 -53
  337. package/llm-docs/drawer-content.llm.md +0 -58
  338. package/llm-docs/drawer-description.llm.md +0 -54
  339. package/llm-docs/drawer-footer.llm.md +0 -67
  340. package/llm-docs/drawer-header.llm.md +0 -60
  341. package/llm-docs/drawer-overlay.llm.md +0 -40
  342. package/llm-docs/drawer-portal.llm.md +0 -42
  343. package/llm-docs/drawer-title.llm.md +0 -51
  344. package/llm-docs/drawer-trigger.llm.md +0 -44
  345. package/llm-docs/drawer.llm.md +0 -194
  346. package/llm-docs/dropdown-menu-checkbox-item.llm.md +0 -111
  347. package/llm-docs/dropdown-menu-content.llm.md +0 -109
  348. package/llm-docs/dropdown-menu-group.llm.md +0 -38
  349. package/llm-docs/dropdown-menu-item.llm.md +0 -94
  350. package/llm-docs/dropdown-menu-label.llm.md +0 -66
  351. package/llm-docs/dropdown-menu-portal.llm.md +0 -32
  352. package/llm-docs/dropdown-menu-radio-group.llm.md +0 -73
  353. package/llm-docs/dropdown-menu-radio-item.llm.md +0 -92
  354. package/llm-docs/dropdown-menu-separator.llm.md +0 -55
  355. package/llm-docs/dropdown-menu-shortcut.llm.md +0 -74
  356. package/llm-docs/dropdown-menu-sub-content.llm.md +0 -80
  357. package/llm-docs/dropdown-menu-sub-trigger.llm.md +0 -84
  358. package/llm-docs/dropdown-menu-sub.llm.md +0 -74
  359. package/llm-docs/dropdown-menu-trigger.llm.md +0 -48
  360. package/llm-docs/dropdown-menu.llm.md +0 -120
  361. package/llm-docs/empty-state.llm.md +0 -174
  362. package/llm-docs/h1.llm.md +0 -113
  363. package/llm-docs/h2.llm.md +0 -113
  364. package/llm-docs/h3.llm.md +0 -111
  365. package/llm-docs/h4.llm.md +0 -109
  366. package/llm-docs/h5.llm.md +0 -110
  367. package/llm-docs/h6.llm.md +0 -110
  368. package/llm-docs/hover-card-content.llm.md +0 -167
  369. package/llm-docs/hover-card-trigger.llm.md +0 -65
  370. package/llm-docs/hover-card.llm.md +0 -121
  371. package/llm-docs/input.llm.md +0 -319
  372. package/llm-docs/label.llm.md +0 -145
  373. package/llm-docs/lead.llm.md +0 -119
  374. package/llm-docs/menubar-checkbox-item.llm.md +0 -66
  375. package/llm-docs/menubar-content.llm.md +0 -128
  376. package/llm-docs/menubar-group.llm.md +0 -40
  377. package/llm-docs/menubar-item.llm.md +0 -62
  378. package/llm-docs/menubar-label.llm.md +0 -40
  379. package/llm-docs/menubar-menu.llm.md +0 -32
  380. package/llm-docs/menubar-portal.llm.md +0 -38
  381. package/llm-docs/menubar-radio-group.llm.md +0 -39
  382. package/llm-docs/menubar-radio-item.llm.md +0 -59
  383. package/llm-docs/menubar-separator.llm.md +0 -35
  384. package/llm-docs/menubar-shortcut.llm.md +0 -37
  385. package/llm-docs/menubar-sub-content.llm.md +0 -127
  386. package/llm-docs/menubar-sub-trigger.llm.md +0 -51
  387. package/llm-docs/menubar-sub.llm.md +0 -53
  388. package/llm-docs/menubar-trigger.llm.md +0 -37
  389. package/llm-docs/menubar.llm.md +0 -115
  390. package/llm-docs/navigation-menu-content.llm.md +0 -116
  391. package/llm-docs/navigation-menu-indicator.llm.md +0 -68
  392. package/llm-docs/navigation-menu-item.llm.md +0 -62
  393. package/llm-docs/navigation-menu-link.llm.md +0 -109
  394. package/llm-docs/navigation-menu-list.llm.md +0 -52
  395. package/llm-docs/navigation-menu-trigger-style.llm.md +0 -22
  396. package/llm-docs/navigation-menu-trigger.llm.md +0 -57
  397. package/llm-docs/navigation-menu-viewport.llm.md +0 -51
  398. package/llm-docs/navigation-menu.llm.md +0 -184
  399. package/llm-docs/p.llm.md +0 -115
  400. package/llm-docs/pagination-content.llm.md +0 -60
  401. package/llm-docs/pagination-ellipsis.llm.md +0 -107
  402. package/llm-docs/pagination-item.llm.md +0 -59
  403. package/llm-docs/pagination-link.llm.md +0 -150
  404. package/llm-docs/pagination-next.llm.md +0 -115
  405. package/llm-docs/pagination-previous.llm.md +0 -115
  406. package/llm-docs/pagination.llm.md +0 -190
  407. package/llm-docs/popover-anchor.llm.md +0 -53
  408. package/llm-docs/popover-content.llm.md +0 -109
  409. package/llm-docs/popover-trigger.llm.md +0 -54
  410. package/llm-docs/popover.llm.md +0 -116
  411. package/llm-docs/progress.llm.md +0 -76
  412. package/llm-docs/radio-group-indicator.llm.md +0 -28
  413. package/llm-docs/radio-group-item.llm.md +0 -40
  414. package/llm-docs/radio-group.llm.md +0 -76
  415. package/llm-docs/resizable-handle.llm.md +0 -156
  416. package/llm-docs/resizable-panel-group.llm.md +0 -149
  417. package/llm-docs/resizable-panel.llm.md +0 -157
  418. package/llm-docs/scroll-area-corner.llm.md +0 -41
  419. package/llm-docs/scroll-area-thumb.llm.md +0 -39
  420. package/llm-docs/scroll-area-viewport.llm.md +0 -60
  421. package/llm-docs/scroll-area.llm.md +0 -125
  422. package/llm-docs/scroll-bar.llm.md +0 -78
  423. package/llm-docs/sdk-items-registry.json +0 -2638
  424. package/llm-docs/select-content.llm.md +0 -139
  425. package/llm-docs/select-group.llm.md +0 -60
  426. package/llm-docs/select-item.llm.md +0 -75
  427. package/llm-docs/select-label.llm.md +0 -62
  428. package/llm-docs/select-scroll-down-button.llm.md +0 -45
  429. package/llm-docs/select-scroll-up-button.llm.md +0 -45
  430. package/llm-docs/select-separator.llm.md +0 -59
  431. package/llm-docs/select-trigger.llm.md +0 -66
  432. package/llm-docs/select-value.llm.md +0 -67
  433. package/llm-docs/select.llm.md +0 -159
  434. package/llm-docs/separator.llm.md +0 -129
  435. package/llm-docs/sheet-close.llm.md +0 -49
  436. package/llm-docs/sheet-content.llm.md +0 -115
  437. package/llm-docs/sheet-description.llm.md +0 -62
  438. package/llm-docs/sheet-footer.llm.md +0 -64
  439. package/llm-docs/sheet-header.llm.md +0 -52
  440. package/llm-docs/sheet-title.llm.md +0 -53
  441. package/llm-docs/sheet-trigger.llm.md +0 -46
  442. package/llm-docs/sheet.llm.md +0 -126
  443. package/llm-docs/sidebar-content.llm.md +0 -63
  444. package/llm-docs/sidebar-footer.llm.md +0 -50
  445. package/llm-docs/sidebar-group-action.llm.md +0 -60
  446. package/llm-docs/sidebar-group-content.llm.md +0 -64
  447. package/llm-docs/sidebar-group-label.llm.md +0 -53
  448. package/llm-docs/sidebar-group.llm.md +0 -56
  449. package/llm-docs/sidebar-header.llm.md +0 -67
  450. package/llm-docs/sidebar-input.llm.md +0 -50
  451. package/llm-docs/sidebar-inset.llm.md +0 -52
  452. package/llm-docs/sidebar-menu-action.llm.md +0 -84
  453. package/llm-docs/sidebar-menu-badge.llm.md +0 -60
  454. package/llm-docs/sidebar-menu-button.llm.md +0 -103
  455. package/llm-docs/sidebar-menu-item.llm.md +0 -75
  456. package/llm-docs/sidebar-menu-skeleton.llm.md +0 -76
  457. package/llm-docs/sidebar-menu-sub-button.llm.md +0 -85
  458. package/llm-docs/sidebar-menu-sub-item.llm.md +0 -54
  459. package/llm-docs/sidebar-menu-sub.llm.md +0 -74
  460. package/llm-docs/sidebar-menu.llm.md +0 -65
  461. package/llm-docs/sidebar-provider.llm.md +0 -79
  462. package/llm-docs/sidebar-rail.llm.md +0 -34
  463. package/llm-docs/sidebar-separator.llm.md +0 -57
  464. package/llm-docs/sidebar-trigger.llm.md +0 -49
  465. package/llm-docs/sidebar.llm.md +0 -129
  466. package/llm-docs/skeleton.llm.md +0 -134
  467. package/llm-docs/slider.llm.md +0 -173
  468. package/llm-docs/small.llm.md +0 -115
  469. package/llm-docs/span.llm.md +0 -132
  470. package/llm-docs/stack.llm.md +0 -28
  471. package/llm-docs/strong.llm.md +0 -115
  472. package/llm-docs/switch.llm.md +0 -76
  473. package/llm-docs/table-body.llm.md +0 -36
  474. package/llm-docs/table-caption.llm.md +0 -48
  475. package/llm-docs/table-cell.llm.md +0 -53
  476. package/llm-docs/table-footer.llm.md +0 -41
  477. package/llm-docs/table-head.llm.md +0 -69
  478. package/llm-docs/table-header.llm.md +0 -41
  479. package/llm-docs/table-row.llm.md +0 -42
  480. package/llm-docs/table.llm.md +0 -123
  481. package/llm-docs/tabs-content.llm.md +0 -47
  482. package/llm-docs/tabs-list.llm.md +0 -41
  483. package/llm-docs/tabs-trigger.llm.md +0 -47
  484. package/llm-docs/tabs.llm.md +0 -71
  485. package/llm-docs/text-field.llm.md +0 -327
  486. package/llm-docs/textarea.llm.md +0 -311
  487. package/llm-docs/theme-preference.llm.md +0 -25
  488. package/llm-docs/theme-toggle.llm.md +0 -57
  489. package/llm-docs/theme.llm.md +0 -14
  490. package/llm-docs/toast.llm.md +0 -32
  491. package/llm-docs/toaster.llm.md +0 -193
  492. package/llm-docs/toggle-group-item.llm.md +0 -59
  493. package/llm-docs/toggle-group.llm.md +0 -101
  494. package/llm-docs/toggle.llm.md +0 -40
  495. package/llm-docs/tooltip-content.llm.md +0 -185
  496. package/llm-docs/tooltip-provider.llm.md +0 -68
  497. package/llm-docs/tooltip-trigger.llm.md +0 -70
  498. package/llm-docs/tooltip.llm.md +0 -129
  499. package/llm-docs/typography.llm.md +0 -175
  500. package/llm-docs/use-carousel.llm.md +0 -55
  501. package/llm-docs/use-command-state.llm.md +0 -32
  502. package/llm-docs/use-is-mobile.llm.md +0 -73
  503. package/llm-docs/use-sidebar.llm.md +0 -61
@@ -131,4 +131,129 @@ import { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext
131
131
  <CarouselPrevious />
132
132
  <CarouselNext />
133
133
  </Carousel>
134
+ ```
135
+
136
+ ## Kbd and KbdGroup
137
+
138
+ Display keyboard shortcuts and key combinations with semantic HTML.
139
+
140
+ ```tsx
141
+ import { Kbd, KbdGroup } from "@neynar/ui"
142
+
143
+ // Single key
144
+ <Kbd>Enter</Kbd>
145
+ <Kbd>Esc</Kbd>
146
+ <Kbd>⌘</Kbd>
147
+
148
+ // Key combinations
149
+ <KbdGroup>
150
+ <Kbd>⌘</Kbd>
151
+ <Kbd>K</Kbd>
152
+ </KbdGroup>
153
+
154
+ <KbdGroup>
155
+ <Kbd>⌘</Kbd>
156
+ <Kbd>⇧</Kbd>
157
+ <Kbd>P</Kbd>
158
+ </KbdGroup>
159
+
160
+ // In documentation
161
+ <p>
162
+ Press <KbdGroup><Kbd>⌘</Kbd><Kbd>K</Kbd></KbdGroup> to open the
163
+ command palette.
164
+ </p>
165
+
166
+ // In search interfaces
167
+ <div className="relative">
168
+ <Input placeholder="Search..." />
169
+ <div className="absolute right-3 top-1/2 -translate-y-1/2">
170
+ <KbdGroup>
171
+ <Kbd>⌘</Kbd>
172
+ <Kbd>K</Kbd>
173
+ </KbdGroup>
174
+ </div>
175
+ </div>
176
+
177
+ // In tooltips
178
+ <Tooltip>
179
+ <TooltipTrigger asChild>
180
+ <Button variant="ghost" size="icon">
181
+ <Settings className="h-4 w-4" />
182
+ </Button>
183
+ </TooltipTrigger>
184
+ <TooltipContent>
185
+ Open Settings <KbdGroup><Kbd>⌘</Kbd><Kbd>,</Kbd></KbdGroup>
186
+ </TooltipContent>
187
+ </Tooltip>
188
+ ```
189
+
190
+ ## Empty
191
+
192
+ Empty state placeholder for no data scenarios with optional icon, title, description, and actions.
193
+
194
+ ```tsx
195
+ import { Empty } from "@neynar/ui"
196
+ import { Search, Inbox } from "lucide-react"
197
+
198
+ // Basic empty state
199
+ <Empty
200
+ icon={<Search className="h-8 w-8" />}
201
+ title="No results found"
202
+ description="Try adjusting your search criteria"
203
+ />
204
+
205
+ // With action
206
+ <Empty
207
+ icon={<Inbox className="h-8 w-8" />}
208
+ title="No messages"
209
+ description="You don't have any messages yet"
210
+ action={<Button>Compose Message</Button>}
211
+ />
212
+
213
+ // Multiple actions
214
+ <Empty
215
+ title="No data available"
216
+ description="Get started by uploading your first file"
217
+ actions={
218
+ <div className="flex gap-2">
219
+ <Button>Upload File</Button>
220
+ <Button variant="outline">Learn More</Button>
221
+ </div>
222
+ }
223
+ />
224
+ ```
225
+
226
+ ## Spinner
227
+
228
+ Loading indicator for async operations with GPU-accelerated animation.
229
+
230
+ ```tsx
231
+ import { Spinner } from "@neynar/ui"
232
+
233
+ // Basic spinner
234
+ <Spinner />
235
+
236
+ // Different sizes
237
+ <Spinner className="size-3" /> // Small
238
+ <Spinner className="size-4" /> // Default
239
+ <Spinner className="size-6" /> // Large
240
+ <Spinner className="size-8" /> // Extra large
241
+
242
+ // With color
243
+ <Spinner className="text-primary" />
244
+ <Spinner className="text-destructive" />
245
+
246
+ // In button
247
+ <Button disabled>
248
+ <Spinner className="mr-2 size-4" />
249
+ Loading...
250
+ </Button>
251
+
252
+ // Centered loading state
253
+ <div className="flex items-center justify-center p-8">
254
+ <Spinner className="size-6" />
255
+ </div>
256
+
257
+ // With custom aria-label
258
+ <Spinner aria-label="Loading user profile" />
134
259
  ```
@@ -64,20 +64,6 @@ import { Skeleton } from "@neynar/ui"
64
64
  </div>
65
65
  ```
66
66
 
67
- ## EmptyState
68
-
69
- Handle empty data scenarios with helpful messaging.
70
-
71
- ```tsx
72
- import { EmptyState } from "@neynar/ui"
73
-
74
- <EmptyState
75
- title="No casts found"
76
- description="Try adjusting your search criteria"
77
- action={<Button>Refresh</Button>}
78
- />
79
- ```
80
-
81
67
  ## Sonner (Toast)
82
68
 
83
69
  Non-blocking notifications for actions and events.
@@ -20,6 +20,100 @@ import { Input, Label, Textarea, TextField } from "@neynar/ui"
20
20
  <TextField label="Username" placeholder="Enter username" required />
21
21
  ```
22
22
 
23
+ ## Field
24
+
25
+ Flexible form field composition with label, description, error, and hint support.
26
+
27
+ ```tsx
28
+ import { Field, Input } from "@neynar/ui"
29
+
30
+ // Basic field with label
31
+ <Field label="Email Address">
32
+ <Input type="email" placeholder="you@example.com" />
33
+ </Field>
34
+
35
+ // Field with description
36
+ <Field
37
+ label="Password"
38
+ description="Must be at least 8 characters"
39
+ >
40
+ <Input type="password" />
41
+ </Field>
42
+
43
+ // Field with error
44
+ <Field
45
+ label="Username"
46
+ error="Username is already taken"
47
+ >
48
+ <Input defaultValue="john" />
49
+ </Field>
50
+
51
+ // Field with hint
52
+ <Field
53
+ label="API Key"
54
+ hint="Keep this secret"
55
+ >
56
+ <Input type="password" />
57
+ </Field>
58
+
59
+ // Complete field with all features
60
+ <Field
61
+ label="Full Name"
62
+ description="Enter your legal name"
63
+ error={errors.name}
64
+ hint="This will appear on your profile"
65
+ required
66
+ >
67
+ <Input placeholder="John Doe" />
68
+ </Field>
69
+ ```
70
+
71
+ ## InputGroup
72
+
73
+ Input with left/right addons for icons, text, or buttons.
74
+
75
+ ```tsx
76
+ import { InputGroup, Input } from "@neynar/ui"
77
+ import { Search, DollarSign, Send } from "lucide-react"
78
+
79
+ // Icon addon
80
+ <InputGroup>
81
+ <InputGroup.LeftAddon>
82
+ <Search className="h-4 w-4" />
83
+ </InputGroup.LeftAddon>
84
+ <Input placeholder="Search..." />
85
+ </InputGroup>
86
+
87
+ // Text addon
88
+ <InputGroup>
89
+ <InputGroup.LeftAddon>
90
+ https://
91
+ </InputGroup.LeftAddon>
92
+ <Input placeholder="example.com" />
93
+ </InputGroup>
94
+
95
+ // Currency input
96
+ <InputGroup>
97
+ <InputGroup.LeftAddon>
98
+ <DollarSign className="h-4 w-4" />
99
+ </InputGroup.LeftAddon>
100
+ <Input type="number" placeholder="0.00" />
101
+ <InputGroup.RightAddon>
102
+ USD
103
+ </InputGroup.RightAddon>
104
+ </InputGroup>
105
+
106
+ // With button
107
+ <InputGroup>
108
+ <Input placeholder="Enter email..." />
109
+ <InputGroup.RightAddon>
110
+ <Button size="sm">
111
+ <Send className="h-4 w-4" />
112
+ </Button>
113
+ </InputGroup.RightAddon>
114
+ </InputGroup>
115
+ ```
116
+
23
117
  ## Selection Components
24
118
 
25
119
  ```tsx
@@ -56,4 +56,173 @@ import { AspectRatio } from "@neynar/ui";
56
56
  <AspectRatio ratio={1} className="bg-muted">
57
57
  <div className="flex items-center justify-center">1:1 Square</div>
58
58
  </AspectRatio>
59
+ ```
60
+
61
+ ## ButtonGroup
62
+
63
+ Visual grouping for related buttons with flexible composition.
64
+
65
+ ```tsx
66
+ import { ButtonGroup } from "@neynar/ui"
67
+
68
+ // Basic button group
69
+ <ButtonGroup>
70
+ <Button variant="outline">Left</Button>
71
+ <Button variant="outline">Middle</Button>
72
+ <Button variant="outline">Right</Button>
73
+ </ButtonGroup>
74
+
75
+ // Different orientations
76
+ <ButtonGroup orientation="vertical">
77
+ <Button>Top</Button>
78
+ <Button>Middle</Button>
79
+ <Button>Bottom</Button>
80
+ </ButtonGroup>
81
+
82
+ // Mixed button types
83
+ <ButtonGroup>
84
+ <Button variant="default">Primary</Button>
85
+ <Button variant="secondary">Secondary</Button>
86
+ <Button variant="outline" size="icon">
87
+ <MoreVertical className="h-4 w-4" />
88
+ </Button>
89
+ </ButtonGroup>
90
+
91
+ // Toolbar pattern
92
+ <ButtonGroup>
93
+ <Button variant="ghost" size="icon"><Bold className="h-4 w-4" /></Button>
94
+ <Button variant="ghost" size="icon"><Italic className="h-4 w-4" /></Button>
95
+ <Button variant="ghost" size="icon"><Underline className="h-4 w-4" /></Button>
96
+ </ButtonGroup>
97
+ ```
98
+
99
+ ## Item
100
+
101
+ Flexible list item composition with media, content, and actions following the compound component pattern.
102
+
103
+ ```tsx
104
+ import {
105
+ Item,
106
+ ItemGroup,
107
+ ItemMedia,
108
+ ItemContent,
109
+ ItemTitle,
110
+ ItemDescription,
111
+ ItemHeader,
112
+ ItemFooter,
113
+ ItemActions,
114
+ ItemSeparator
115
+ } from "@neynar/ui"
116
+
117
+ // Basic list item
118
+ <ItemGroup>
119
+ <Item>
120
+ <ItemMedia variant="icon">
121
+ <FileText className="h-4 w-4" />
122
+ </ItemMedia>
123
+ <ItemContent>
124
+ <ItemTitle>Document.pdf</ItemTitle>
125
+ <ItemDescription>Last modified today</ItemDescription>
126
+ </ItemContent>
127
+ </Item>
128
+ </ItemGroup>
129
+
130
+ // File list with actions
131
+ <ItemGroup>
132
+ <Item asChild>
133
+ <a href="/documents/report.pdf">
134
+ <ItemMedia variant="icon">
135
+ <FileText className="h-4 w-4" />
136
+ </ItemMedia>
137
+ <ItemContent>
138
+ <ItemHeader>
139
+ <ItemTitle>Q4 Report.pdf</ItemTitle>
140
+ <Badge variant="secondary">PDF</Badge>
141
+ </ItemHeader>
142
+ <ItemDescription>Last modified today at 2:45 PM</ItemDescription>
143
+ <ItemFooter>
144
+ <span className="text-xs text-muted-foreground">2.4 MB</span>
145
+ </ItemFooter>
146
+ </ItemContent>
147
+ <ItemActions>
148
+ <Button variant="ghost" size="icon">
149
+ <MoreVertical className="h-4 w-4" />
150
+ </Button>
151
+ </ItemActions>
152
+ </a>
153
+ </Item>
154
+ </ItemGroup>
155
+
156
+ // User list with avatars
157
+ <ItemGroup>
158
+ <Item>
159
+ <ItemMedia variant="image">
160
+ <img src="/avatars/alice.jpg" alt="Alice" />
161
+ </ItemMedia>
162
+ <ItemContent>
163
+ <ItemTitle>Alice Johnson</ItemTitle>
164
+ <ItemDescription>Product Manager</ItemDescription>
165
+ </ItemContent>
166
+ <ItemActions>
167
+ <Button variant="outline" size="sm">Message</Button>
168
+ </ItemActions>
169
+ </Item>
170
+ <ItemSeparator />
171
+ <Item>
172
+ <ItemMedia variant="image">
173
+ <img src="/avatars/bob.jpg" alt="Bob" />
174
+ </ItemMedia>
175
+ <ItemContent>
176
+ <ItemTitle>Bob Smith</ItemTitle>
177
+ <ItemDescription>Engineer</ItemDescription>
178
+ </ItemContent>
179
+ <ItemActions>
180
+ <Button variant="outline" size="sm">Message</Button>
181
+ </ItemActions>
182
+ </Item>
183
+ </ItemGroup>
184
+
185
+ // Notification list with variants
186
+ <ItemGroup>
187
+ <Item variant="muted">
188
+ <ItemMedia variant="icon">
189
+ <User className="h-4 w-4" />
190
+ </ItemMedia>
191
+ <ItemContent>
192
+ <ItemHeader>
193
+ <ItemTitle>New follower</ItemTitle>
194
+ <Badge>New</Badge>
195
+ </ItemHeader>
196
+ <ItemDescription>John started following you</ItemDescription>
197
+ <ItemFooter>
198
+ <span className="text-xs text-muted-foreground">5 min ago</span>
199
+ </ItemFooter>
200
+ </ItemContent>
201
+ </Item>
202
+ </ItemGroup>
203
+
204
+ // Compact settings menu
205
+ <ItemGroup>
206
+ <Item asChild size="sm">
207
+ <a href="/settings/profile">
208
+ <ItemContent>
209
+ <ItemTitle>Profile</ItemTitle>
210
+ </ItemContent>
211
+ <ItemActions>
212
+ <ChevronRight className="h-4 w-4 text-muted-foreground" />
213
+ </ItemActions>
214
+ </a>
215
+ </Item>
216
+ <ItemSeparator />
217
+ <Item asChild size="sm">
218
+ <a href="/settings/notifications">
219
+ <ItemContent>
220
+ <ItemTitle>Notifications</ItemTitle>
221
+ </ItemContent>
222
+ <ItemActions>
223
+ <ChevronRight className="h-4 w-4 text-muted-foreground" />
224
+ </ItemActions>
225
+ </a>
226
+ </Item>
227
+ </ItemGroup>
59
228
  ```
package/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # @neynar/ui Component Library
2
2
 
3
- A production-ready React component library with 265+ components, hooks, and utilities. Built on Radix UI primitives with Tailwind CSS v4, ensuring WCAG-compliant accessibility and zero runtime overhead.
3
+ A production-ready React component library with 272+ components, hooks, and utilities. Built on Radix UI primitives with Tailwind CSS v4, ensuring WCAG-compliant accessibility and zero runtime overhead.
4
4
 
5
5
  ## Quick Reference
6
6
 
@@ -11,21 +11,21 @@ import "@neynar/ui/styles"
11
11
 
12
12
  ## 🔍 How to Search Components
13
13
 
14
- **IMPORTANT:** DO NOT load the entire `llm-docs/sdk-items-registry.json` file - it contains 265+ items and will exceed context limits.
14
+ **IMPORTANT:** DO NOT load the entire `.llm/sdk-items-registry.json` file - it contains 265+ items and will exceed context limits.
15
15
 
16
16
  Instead, search efficiently using these methods:
17
17
 
18
18
  ### Method 1: Search by Component Name (Recommended)
19
19
  ```bash
20
20
  # Search for specific component documentation
21
- cat llm-docs/{component-name}.llm.md
22
- # Example: cat llm-docs/button.llm.md
21
+ cat .llm/{component-name}.llm.md
22
+ # Example: cat .llm/button.llm.md
23
23
  ```
24
24
 
25
- ### Method 2: Search Registry by Keywords
25
+ ### Method 2: Search Registry by Keywords
26
26
  ```bash
27
27
  # Use jq to search registry by keywords without loading entire file
28
- jq 'to_entries[] | select(.value.keywords[]? | contains("button")) | {key: .key, description: .value.description}' llm-docs/sdk-items-registry.json
28
+ jq 'to_entries[] | select(.value.keywords[]? | contains("button")) | {key: .key, description: .value.description}' .llm/sdk-items-registry.json
29
29
  ```
30
30
 
31
31
  ### Method 3: List Components by Category
@@ -81,7 +81,7 @@ import { H1, H2, P, Span, Code, Stack, Badge } from "@neynar/ui"
81
81
 
82
82
  ## Registry Structure
83
83
 
84
- The `llm-docs/sdk-items-registry.json` contains metadata for all components:
84
+ The `.llm/sdk-items-registry.json` contains metadata for all components:
85
85
 
86
86
  ```json
87
87
  {
@@ -99,9 +99,9 @@ The `llm-docs/sdk-items-registry.json` contains metadata for all components:
99
99
  For component discovery, use this approach:
100
100
 
101
101
  1. **Know what you need?** → Use Method 1 (direct file access)
102
- 2. **Searching by functionality?** → Use Method 2 (keyword search)
102
+ 2. **Searching by functionality?** → Use Method 2 (keyword search)
103
103
  3. **Browsing categories?** → Use Method 3 (category patterns)
104
- 4. **Need complete list?** → Use `jq 'keys' llm-docs/sdk-items-registry.json`
104
+ 4. **Need complete list?** → Use `jq 'keys' .llm/sdk-items-registry.json`
105
105
 
106
106
  **Performance Tip:** Each .llm.md file contains complete documentation including props, examples, and TypeScript definitions. Only load what you need.
107
107
 
@@ -109,7 +109,9 @@ For component discovery, use this approach:
109
109
 
110
110
  ### Layout Components → [docs/llm/components/layout.md](docs/llm/components/layout.md)
111
111
  - **Container** - Responsive container with max-width constraints
112
- - **Stack** - Flexible vertical and horizontal layout primitive
112
+ - **Stack** - Flexible vertical and horizontal layout primitive
113
+ - **ButtonGroup** - Groups related buttons with consistent spacing
114
+ - **Item** + 9 sub-components - Flexible list item with media, content, and actions
113
115
  - **Separator** - Visual content dividers
114
116
  - **AspectRatio** - Responsive aspect ratio containers
115
117
  - **ResizablePanelGroup**, **ResizablePanel**, **ResizableHandle** - Interactive resizable layouts
@@ -129,6 +131,8 @@ For component discovery, use this approach:
129
131
  - **Input** - Text input fields with validation states
130
132
  - **Textarea** - Multi-line text input with auto-resize
131
133
  - **TextField** - Complete form field with label and validation
134
+ - **Field** - Flexible form field composition with label, description, error, and hint
135
+ - **InputGroup** - Input with left/right addons for icons, text, or buttons
132
136
  - **Label** - Accessible form labels
133
137
  - **Checkbox** - Boolean input with indeterminate state
134
138
  - **RadioGroup**, **RadioGroupItem** - Single-choice selection
@@ -151,7 +155,9 @@ For component discovery, use this approach:
151
155
  - **Progress** - Loading and completion indicators
152
156
  - **Skeleton** - Loading state placeholders
153
157
  - **Chart** + 5 sub-components - Data visualization
154
- - **EmptyState** - No data placeholder with actions
158
+ - **Kbd**, **KbdGroup** - Keyboard shortcuts and key combinations display
159
+ - **Empty** - Empty state placeholder for no data scenarios
160
+ - **Spinner** - Loading indicator for async operations
155
161
 
156
162
  ### Table Components → [docs/llm/components/tables.md](docs/llm/components/tables.md)
157
163
  - **Table** + 7 sub-components - Data tables
@@ -201,7 +207,7 @@ The typography system provides semantic HTML components with consistent styling:
201
207
  #### Available Components
202
208
  - **H1, H2, H3, H4, H5, H6** - Semantic headings with proper hierarchy
203
209
  - **P** - Paragraph text with body variant styling
204
- - **Span** - Inline text with default styling
210
+ - **Span** - Inline text with default styling
205
211
  - **A** - Links with proper hover/focus states
206
212
  - **Code** - Inline code with monospace styling
207
213
  - **Small** - Small text for captions/metadata
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neynar/ui",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "license": "MIT",
5
5
  "author": "Neynar Inc.",
6
6
  "description": "React UI component library built on shadcn/ui and Tailwind CSS",
@@ -50,22 +50,22 @@
50
50
  "@radix-ui/react-dialog": "1.1.14",
51
51
  "@radix-ui/react-dropdown-menu": "2.1.15",
52
52
  "@radix-ui/react-hover-card": "1.1.14",
53
- "@radix-ui/react-label": "2.1.7",
53
+ "@radix-ui/react-label": "^2.1.7",
54
54
  "@radix-ui/react-menubar": "1.1.15",
55
55
  "@radix-ui/react-navigation-menu": "1.2.13",
56
56
  "@radix-ui/react-popover": "1.1.14",
57
57
  "@radix-ui/react-progress": "1.1.7",
58
58
  "@radix-ui/react-radio-group": "1.3.7",
59
59
  "@radix-ui/react-select": "2.2.5",
60
- "@radix-ui/react-separator": "1.1.7",
60
+ "@radix-ui/react-separator": "^1.1.7",
61
61
  "@radix-ui/react-slider": "1.3.5",
62
- "@radix-ui/react-slot": "1.2.3",
62
+ "@radix-ui/react-slot": "^1.2.3",
63
63
  "@radix-ui/react-switch": "1.2.5",
64
64
  "@radix-ui/react-tabs": "1.1.12",
65
65
  "@radix-ui/react-toggle": "1.1.9",
66
66
  "@radix-ui/react-toggle-group": "1.1.10",
67
67
  "@radix-ui/react-tooltip": "1.2.7",
68
- "class-variance-authority": "0.7.1",
68
+ "class-variance-authority": "^0.7.1",
69
69
  "clsx": "2.1.1",
70
70
  "cmdk": "1.1.1",
71
71
  "date-fns": "4.1.0",
@@ -94,6 +94,7 @@
94
94
  "prettier": "3.6.2",
95
95
  "react": "19.1.1",
96
96
  "react-dom": "19.1.1",
97
+ "shadcn": "^3.4.0",
97
98
  "storybook": "9.1.2",
98
99
  "tailwindcss": "4.1.11",
99
100
  "ts-morph": "^26.0.0",
@@ -23,6 +23,9 @@ import { cn } from "@/lib/utils";
23
23
  * @variant default - Primary brand color badge for important status indicators and primary actions
24
24
  * @variant secondary - Muted background badge for supplementary information and low-priority labels
25
25
  * @variant destructive - Error/warning badge for critical states, failures, and urgent attention
26
+ * @variant success - Success badge for positive states, successes, and positive attention
27
+ * @variant warning - Warning badge for warning states, warnings, and negative attention
28
+ * @variant info - Info badge for informational states, information, and neutral attention
26
29
  * @variant outline - Subtle border-only badge for minimal emphasis and subtle labeling
27
30
  *
28
31
  * @param props - Variant configuration object
@@ -43,7 +46,7 @@ import { cn } from "@/lib/utils";
43
46
  * ```
44
47
  */
45
48
  const badgeVariants = cva(
46
- "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
49
+ "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-bold w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
47
50
  {
48
51
  variants: {
49
52
  variant: {
@@ -52,7 +55,12 @@ const badgeVariants = cva(
52
55
  secondary:
53
56
  "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
54
57
  destructive:
55
- "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
58
+ "border-transparent bg-destructive text-destructive-foreground [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
59
+ success:
60
+ "border-transparent bg-success text-success-foreground [a&]:hover:bg-success/90",
61
+ warning:
62
+ "border-transparent bg-warning text-warning-foreground [a&]:hover:bg-warning/90",
63
+ info: "border-transparent bg-info text-info-foreground [a&]:hover:bg-info/90",
56
64
  outline:
57
65
  "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
58
66
  },
@@ -70,7 +78,14 @@ const badgeVariants = cva(
70
78
  // eslint-disable-next-line unused-imports/no-unused-vars
71
79
  type BadgeDocsProps = {
72
80
  /** The visual variant of the badge that determines its color scheme and emphasis level */
73
- variant?: "default" | "secondary" | "destructive" | "outline";
81
+ variant?:
82
+ | "default"
83
+ | "secondary"
84
+ | "destructive"
85
+ | "success"
86
+ | "warning"
87
+ | "info"
88
+ | "outline";
74
89
  /** Additional CSS classes to apply to the badge for custom styling */
75
90
  className?: string;
76
91
  /** Content to display inside the badge (text, icons, or React components) */
@@ -100,6 +115,9 @@ type BadgeDocsProps = {
100
115
  * <Badge>New</Badge>
101
116
  * <Badge variant="secondary">Draft</Badge>
102
117
  * <Badge variant="destructive">Error</Badge>
118
+ * <Badge variant="success">Success</Badge>
119
+ * <Badge variant="warning">Warning</Badge>
120
+ * <Badge variant="info">Info</Badge>
103
121
  * <Badge variant="outline">Pending</Badge>
104
122
  * ```
105
123
  *