@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
@@ -1,108 +0,0 @@
1
- # Code
2
-
3
- **Type**: component
4
-
5
- Code - Inline code component for technical content Semantic code element for inline code snippets, variable names, and technical references. Uses monospace font and "code" variant for clear distinction from regular text.
6
-
7
- ## JSX Usage
8
-
9
- ```jsx
10
- import { Code } from '@neynar/ui';
11
-
12
- <Code
13
- color={value}
14
- align={value}
15
- transform={value}
16
- weight={value}
17
- htmlFor="value"
18
- asChild={true}
19
- italic={true}
20
- underline={true}
21
- strikethrough={true}
22
- truncate={true}
23
- srOnly={true}
24
- className="value"
25
- >
26
- {/* Your content here */}
27
- </Code>
28
- ```
29
-
30
- ## Component Props
31
-
32
- ### color
33
- - **Type**: `| "default"
34
- | "muted"
35
- | "accent"
36
- | "destructive"
37
- | "success"
38
- | "warning"`
39
- - **Required**: No
40
- - **Description**: No description available
41
-
42
- ### align
43
- - **Type**: `"left" | "center" | "right" | "justify"`
44
- - **Required**: No
45
- - **Description**: No description available
46
-
47
- ### transform
48
- - **Type**: `"uppercase" | "lowercase" | "capitalize"`
49
- - **Required**: No
50
- - **Description**: No description available
51
-
52
- ### weight
53
- - **Type**: `"normal" | "medium" | "semibold" | "bold"`
54
- - **Required**: No
55
- - **Description**: No description available
56
-
57
- ### htmlFor
58
- - **Type**: `string`
59
- - **Required**: No
60
- - **Description**: No description available
61
-
62
- ### asChild
63
- - **Type**: `boolean`
64
- - **Required**: No
65
- - **Description**: No description available
66
-
67
- ### italic
68
- - **Type**: `boolean`
69
- - **Required**: No
70
- - **Description**: No description available
71
-
72
- ### underline
73
- - **Type**: `boolean`
74
- - **Required**: No
75
- - **Description**: No description available
76
-
77
- ### strikethrough
78
- - **Type**: `boolean`
79
- - **Required**: No
80
- - **Description**: No description available
81
-
82
- ### truncate
83
- - **Type**: `boolean`
84
- - **Required**: No
85
- - **Description**: No description available
86
-
87
- ### srOnly
88
- - **Type**: `boolean`
89
- - **Required**: No
90
- - **Description**: No description available
91
-
92
- ### className
93
- - **Type**: `string`
94
- - **Required**: No
95
- - **Description**: No description available
96
-
97
- ### children
98
- - **Type**: `React.ReactNode`
99
- - **Required**: No
100
- - **Description**: No description available
101
-
102
- ## Examples
103
-
104
- ```tsx
105
- // Inline code snippet
106
- <Code>const message = "Hello, world!";</Code>
107
- // Terminal command
108
- <Code color="muted">npm install
@@ -1,109 +0,0 @@
1
- # CollapsibleContent
2
-
3
- **Type**: component
4
-
5
- Content container that can be expanded or collapsed The panel containing content that is shown or hidden based on the collapsible state. Built on Radix UI CollapsibleContent primitive with automatic height animations, accessibility attributes, and smooth transitions when toggling between expanded and collapsed states. **Key Features:** - Automatic height animations using CSS variables - Proper accessibility tree management (hidden when collapsed) - CSS data attributes for custom styling and animations - Support for forceMount to keep content in DOM when collapsed - Seamless composition via asChild pattern
6
-
7
- ## JSX Usage
8
-
9
- ```jsx
10
- import { CollapsibleContent } from '@neynar/ui';
11
-
12
- <CollapsibleContent
13
- asChild={true}
14
- forceMount={true}
15
- />
16
- ```
17
-
18
- ## Component Props
19
-
20
- ### asChild
21
- - **Type**: `boolean`
22
- - **Required**: No
23
- - **Description**: When true, merges props onto immediate child instead of rendering div
24
-
25
- ### forceMount
26
- - **Type**: `boolean`
27
- - **Required**: No
28
- - **Description**: When true, forces content to stay in DOM even when collapsed
29
-
30
- ## Examples
31
-
32
- ### Example 1
33
- ```tsx
34
- // Basic content panel with simple styling
35
- <CollapsibleContent className="pt-2">
36
- <div className="rounded-md border px-4 py-2 text-sm bg-muted/50">
37
- Yes. Free to use for personal and commercial projects.
38
- No attribution required.
39
- </div>
40
- </CollapsibleContent>
41
- ```
42
- ### Example 2
43
- ```tsx
44
- // Content with multiple elements and spacing
45
- <CollapsibleContent className="space-y-2 pt-2">
46
- <div className="rounded-md border px-4 py-3 font-mono text-sm shadow-sm">
47
- ### Example 3
48
- ```tsx
49
- // Content with custom animations using CSS variables
50
- <CollapsibleContent className="overflow-hidden text-sm transition-all data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down">
51
- <div className="pb-4 pt-0 px-1">
52
- Content with smooth height animations. The CSS variables
53
- --radix-collapsible-content-height and --radix-collapsible-content-width
54
- are available for custom animation implementations.
55
- </div>
56
- </CollapsibleContent>
57
- ```
58
- ### Example 4
59
- ```tsx
60
- // Force mounted content (stays in DOM when collapsed)
61
- <CollapsibleContent forceMount className="data-[state=closed]:hidden">
62
- <div className="p-4 text-sm">
63
- This content remains in the DOM even when collapsed,
64
- useful for maintaining form state or for SSR consistency.
65
- </div>
66
- </CollapsibleContent>
67
- ```
68
- ### Example 5
69
- ```tsx
70
- // Content with asChild composition
71
- <CollapsibleContent asChild>
72
- <motion.div
73
- initial={{ height: 0 }}
74
- animate={{ height: "auto" }}
75
- exit={{ height: 0 }}
76
- className="overflow-hidden"
77
- >
78
- <div className="p-4">
79
- Content with custom Framer Motion animations
80
- </div>
81
- </motion.div>
82
- </CollapsibleContent>
83
- ```
84
- ### Example 6
85
- ```tsx
86
- // Content with complex nested structure
87
- <CollapsibleContent className="overflow-hidden">
88
- <div className="border-t pt-4 mt-2">
89
- <div className="grid grid-cols-2 gap-4">
90
- <div className="space-y-2">
91
- <h4 className="font-medium">Documentation</h4>
92
- <ul className="text-sm space-y-1 text-muted-foreground">
93
- <li>Getting Started</li>
94
- <li>Installation</li>
95
- <li>Configuration</li>
96
- </ul>
97
- </div>
98
- <div className="space-y-2">
99
- <h4 className="font-medium">Examples</h4>
100
- <ul className="text-sm space-y-1 text-muted-foreground">
101
- <li>Basic Usage</li>
102
- <li>Advanced Patterns</li>
103
- <li>Custom Styling</li>
104
- </ul>
105
- </div>
106
- </div>
107
- </div>
108
- </CollapsibleContent>
109
- ```
@@ -1,75 +0,0 @@
1
- # CollapsibleTrigger
2
-
3
- **Type**: component
4
-
5
- Interactive trigger element that toggles collapsible content visibility The clickable element that controls the expanded/collapsed state of the associated CollapsibleContent. Built on Radix UI CollapsibleTrigger primitive with automatic ARIA management and keyboard support. Supports the asChild prop for composition with custom button components or other interactive elements. **Key Features:** - Automatic `aria-expanded` state management - Built-in keyboard navigation (Space/Enter) - Flexible composition via `asChild` pattern - Seamless integration with any interactive element
6
-
7
- ## JSX Usage
8
-
9
- ```jsx
10
- import { CollapsibleTrigger } from '@neynar/ui';
11
-
12
- <CollapsibleTrigger
13
- asChild={true}
14
- />
15
- ```
16
-
17
- ## Component Props
18
-
19
- ### asChild
20
- - **Type**: `boolean`
21
- - **Required**: No
22
- - **Description**: When true, merges props onto immediate child instead of rendering button
23
-
24
- ## Examples
25
-
26
- ### Example 1
27
- ```tsx
28
- // Simple text trigger with default button styling
29
- <CollapsibleTrigger className="font-medium hover:underline">
30
- Can I use this in my project?
31
- </CollapsibleTrigger>
32
- ```
33
- ### Example 2
34
- ```tsx
35
- // Composed with Button component for consistent styling
36
- <CollapsibleTrigger asChild>
37
- <Button variant="outline" className="w-full justify-between">
38
- Advanced Settings
39
- <ChevronDown className="h-4 w-4 transition-transform duration-200 group-data-[state=open]:rotate-180" />
40
- </Button>
41
- </CollapsibleTrigger>
42
- ```
43
- ### Example 3
44
- ```tsx
45
- // Custom styled trigger with icon animation
46
- <CollapsibleTrigger className="flex w-full items-center justify-between py-4 text-left text-sm font-medium transition-all hover:underline focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
47
- How does it work?
48
- <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200 data-[state=open]:rotate-180" />
49
- </CollapsibleTrigger>
50
- ```
51
- ### Example 4
52
- ```tsx
53
- // Trigger composed with icon button
54
- <CollapsibleTrigger asChild>
55
- <Button variant="ghost" size="sm" className="h-8 w-8 p-0">
56
- <MoreHorizontal className="h-4 w-4" />
57
- <span className="sr-only">Toggle options</span>
58
- </Button>
59
- </CollapsibleTrigger>
60
- ```
61
- ### Example 5
62
- ```tsx
63
- // Trigger with custom element using asChild
64
- <CollapsibleTrigger asChild>
65
- <div
66
- role="button"
67
- tabIndex={0}
68
- className="flex items-center gap-2 p-2 rounded cursor-pointer hover:bg-accent"
69
- >
70
- <FolderIcon className="h-4 w-4" />
71
- <span>Project Files</span>
72
- <ChevronRight className="h-3 w-3 transition-transform data-[state=open]:rotate-90" />
73
- </div>
74
- </CollapsibleTrigger>
75
- ```
@@ -1,109 +0,0 @@
1
- # Collapsible
2
-
3
- **Type**: component
4
-
5
- An interactive component which expands/collapses a panel A flexible container component built on Radix UI Collapsible primitives that allows users to toggle the visibility of content sections. Unlike Accordion, Collapsible provides more flexibility without enforcing specific visual structures or mutual exclusivity. Perfect for FAQ sections, expandable details, settings panels, sidebar navigation, and any content that should be conditionally visible. Built on `@radix-ui/react-collapsible` with enhanced TypeScript support and comprehensive prop documentation.
6
-
7
- ## JSX Usage
8
-
9
- ```jsx
10
- import { Collapsible } from '@neynar/ui';
11
-
12
- <Collapsible
13
- asChild={true}
14
- defaultOpen={true}
15
- open={true}
16
- onOpenChange={handleOpenChange}
17
- disabled={true}
18
- />
19
- ```
20
-
21
- ## Component Props
22
-
23
- ### asChild
24
- - **Type**: `boolean`
25
- - **Required**: No
26
- - **Description**: No description available
27
-
28
- ### defaultOpen
29
- - **Type**: `boolean`
30
- - **Required**: No
31
- - **Description**: No description available
32
-
33
- ### open
34
- - **Type**: `boolean`
35
- - **Required**: No
36
- - **Description**: No description available
37
-
38
- ### onOpenChange
39
- - **Type**: `(open: boolean) => void`
40
- - **Required**: No
41
- - **Description**: No description available
42
-
43
- ### disabled
44
- - **Type**: `boolean`
45
- - **Required**: No
46
- - **Description**: No description available
47
-
48
- ## Examples
49
-
50
- ### Example 1
51
- ```tsx
52
- // Basic controlled collapsible with state management
53
- const [isOpen, setIsOpen] = React.useState(false)
54
- <Collapsible open={isOpen} onOpenChange={setIsOpen}>
55
- <CollapsibleTrigger asChild>
56
- <Button variant="outline" className="w-full justify-between">
57
- Can I use this in my project?
58
- <ChevronDown className={cn(
59
- "h-4 w-4 transition-transform duration-200",
60
- isOpen && "rotate-180"
61
- )} />
62
- </Button>
63
- </CollapsibleTrigger>
64
- <CollapsibleContent className="overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down">
65
- <div className="p-4 border rounded-md bg-muted/50 mt-2">
66
- Yes. Free to use for personal and commercial projects.
67
- No attribution required.
68
- </div>
69
- </CollapsibleContent>
70
- </Collapsible>
71
- ```
72
- ### Example 2
73
- ```tsx
74
- // Uncontrolled collapsible with default state
75
- <Collapsible defaultOpen={true} className="w-full space-y-2">
76
- <div className="flex items-center justify-between">
77
- <h4 className="text-sm font-semibold">
78
- ### Example 3
79
- ```tsx
80
- // FAQ-style implementation with custom animations
81
- <Collapsible className="group" data-orientation="vertical">
82
- <CollapsibleTrigger className="flex w-full items-center justify-between py-4 text-sm font-medium transition-all hover:underline focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
83
- How do I get started?
84
- <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200 group-data-[state=open]:rotate-180" />
85
- </CollapsibleTrigger>
86
- <CollapsibleContent className="overflow-hidden text-sm transition-all data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down">
87
- <div className="pb-4 pt-0">
88
- Getting started is easy! Simply follow our quick setup guide,
89
- install the required dependencies, and begin building your application.
90
- Check out our documentation for detailed instructions.
91
- </div>
92
- </CollapsibleContent>
93
- </Collapsible>
94
- ```
95
- ### Example 4
96
- ```tsx
97
- // Disabled collapsible state
98
- <Collapsible disabled className="opacity-50 cursor-not-allowed">
99
- <CollapsibleTrigger className="flex w-full items-center justify-between py-4 text-sm font-medium">
100
- This section is temporarily unavailable
101
- <ChevronDown className="h-4 w-4" />
102
- </CollapsibleTrigger>
103
- <CollapsibleContent>
104
- <div className="pb-4 pt-0 text-sm text-muted-foreground">
105
- This content is currently disabled and cannot be accessed.
106
- </div>
107
- </CollapsibleContent>
108
- </Collapsible>
109
- ```
@@ -1,53 +0,0 @@
1
- # ComboboxOption
2
-
3
- **Type**: type
4
-
5
- Option structure for combobox items Defines the shape of each option that can be displayed and selected in the combobox dropdown list.
6
-
7
- ## Type Definition
8
-
9
- ```typescript
10
- import { ComboboxOption } from '@neynar/ui';
11
-
12
- type ComboboxOption = {
13
- /**
14
- * Unique identifier for this option
15
- *
16
- * Used for selection tracking and should be unique within the options array.
17
- */
18
- value: string;
19
-
20
- /**
21
- * Display text shown to users in the dropdown
22
- *
23
- * Should be descriptive and help users understand what this option represents.
24
- */
25
- label: string;
26
-
27
- /**
28
- * Whether this option is disabled and cannot be selected
29
- *
30
- * Disabled options remain visible but are not selectable and appear dimmed.
31
- *
32
- * @default false
33
- */
34
- disabled?: boolean;
35
- }
36
- ```
37
-
38
- ## Type Properties
39
-
40
- ### value
41
- - **Type**: `string`
42
- - **Required**: Yes
43
- - **Description**: No description available
44
-
45
- ### label
46
- - **Type**: `string`
47
- - **Required**: Yes
48
- - **Description**: No description available
49
-
50
- ### disabled
51
- - **Type**: `boolean`
52
- - **Required**: No
53
- - **Description**: No description available
@@ -1,208 +0,0 @@
1
- # Combobox
2
-
3
- **Type**: component
4
-
5
- Searchable dropdown selection component with typeahead functionality A versatile combobox that combines a button trigger with a searchable dropdown list. Ideal for selecting from moderate to large lists of options where search functionality improves user experience. Built on Radix UI Popover primitives for accessibility and CMDK for powerful command menu functionality with real-time filtering. **Technical Architecture:** - **Popover Container**: Radix UI Popover.Root provides modal/non-modal behavior, focus management, and positioning - **Trigger Button**: Uses Button component with proper ARIA attributes and visual states - **Command Menu**: CMDK provides keyboard navigation, filtering, and accessibility features - **State Management**: Controlled/uncontrolled modes with proper React patterns **Use Cases:** - Selecting from 10+ options that benefit from real-time filtering - User interfaces requiring quick option discovery through search - Forms needing better UX than basic select dropdowns - Applications with dynamic or large option sets **When Not to Use:** - Simple selection from few options (use Select component instead) - Multi-select scenarios (use Checkbox group or specialized multi-select) - Tree or hierarchical data (use TreeSelect or nested menus)
6
-
7
- ## JSX Usage
8
-
9
- ```jsx
10
- import { Combobox } from '@neynar/ui';
11
-
12
- <Combobox
13
- options={[]}
14
- value="value"
15
- onValueChange={handleValueChange}
16
- placeholder="value"
17
- emptyText="value"
18
- searchPlaceholder="value"
19
- className="value"
20
- disabled={true}
21
- buttonClassName="value"
22
- popoverClassName="value"
23
- />
24
- ```
25
-
26
- ## Component Props
27
-
28
- ### options
29
- - **Type**: `ComboboxOption[]`
30
- - **Required**: Yes
31
- - **Description**: No description available
32
-
33
- ### value
34
- - **Type**: `string`
35
- - **Required**: No
36
- - **Description**: No description available
37
-
38
- ### onValueChange
39
- - **Type**: `(value: string) => void`
40
- - **Required**: No
41
- - **Description**: No description available
42
-
43
- ### placeholder
44
- - **Type**: `string`
45
- - **Required**: No
46
- - **Description**: No description available
47
-
48
- ### emptyText
49
- - **Type**: `string`
50
- - **Required**: No
51
- - **Description**: No description available
52
-
53
- ### searchPlaceholder
54
- - **Type**: `string`
55
- - **Required**: No
56
- - **Description**: No description available
57
-
58
- ### className
59
- - **Type**: `string`
60
- - **Required**: No
61
- - **Description**: No description available
62
-
63
- ### disabled
64
- - **Type**: `boolean`
65
- - **Required**: No
66
- - **Description**: No description available
67
-
68
- ### buttonClassName
69
- - **Type**: `string`
70
- - **Required**: No
71
- - **Description**: No description available
72
-
73
- ### popoverClassName
74
- - **Type**: `string`
75
- - **Required**: No
76
- - **Description**: No description available
77
-
78
- ## Examples
79
-
80
- ### Example 1
81
- Basic controlled combobox with framework selection
82
- ```tsx
83
- const [framework, setFramework] = useState("")
84
- const frameworks = [
85
- { value: "nextjs", label: "Next.js" },
86
- { value: "remix", label: "Remix" },
87
- { value: "sveltekit", label: "SvelteKit" },
88
- { value: "nuxt", label: "Nuxt.js" },
89
- ]
90
- <Combobox
91
- options={frameworks}
92
- value={framework}
93
- onValueChange={setFramework}
94
- placeholder="Select framework..."
95
- searchPlaceholder="Search frameworks..."
96
- buttonClassName="w-[300px]"
97
- popoverClassName="w-[300px]"
98
- />
99
- ```
100
- ### Example 2
101
- Advanced combobox with disabled options and custom styling
102
- ```tsx
103
- const statusOptions = [
104
- { value: "active", label: "Active" },
105
- { value: "pending", label: "Pending" },
106
- { value: "archived", label: "Archived (Read Only)", disabled: true },
107
- { value: "deleted", label: "Deleted (Unavailable)", disabled: true },
108
- ]
109
- <Combobox
110
- options={statusOptions}
111
- value={status}
112
- onValueChange={(value) => {
113
- setStatus(value)
114
- // Track selection analytics
115
- analytics.track('status_selected', { value })
116
- }}
117
- placeholder="Select status..."
118
- emptyText="No matching status found."
119
- searchPlaceholder="Filter statuses..."
120
- buttonClassName="w-[250px] border-primary/50"
121
- popoverClassName="w-[250px]"
122
- disabled={isLoading}
123
- />
124
- ```
125
- ### Example 3
126
- Form integration with validation and error handling
127
- ```tsx
128
- import { Label } from "@/components/ui/label"
129
- import { useFormContext } from "react-hook-form"
130
- function CountryField() {
131
- const { register, setValue, watch, formState: { errors } } = useFormContext()
132
- const selectedCountry = watch("country")
133
- return (
134
- <div className="space-y-2">
135
- <Label htmlFor="country" className={errors.country ? "text-destructive" : ""}>
136
- Country {errors.country && "*"}
137
- </Label>
138
- <Combobox
139
- options={countries}
140
- value={selectedCountry}
141
- onValueChange={(value) => setValue("country", value, { shouldValidate: true })}
142
- placeholder="Choose your country..."
143
- searchPlaceholder="Type to search countries..."
144
- emptyText="Country not found. Try a different search."
145
- buttonClassName={cn(
146
- "w-full",
147
- errors.country && "border-destructive focus-visible:ring-destructive"
148
- )}
149
- popoverClassName="w-full"
150
- disabled={isSubmitting}
151
- />
152
- {errors.country && (
153
- <p className="text-sm text-destructive" role="alert">
154
- {errors.country.message}
155
- </p>
156
- )}
157
- </div>
158
- )
159
- }
160
- ```
161
- ### Example 4
162
- Responsive design with mobile optimization
163
- ```tsx
164
- <Combobox
165
- options={teamMembers}
166
- value={assignedTo}
167
- onValueChange={setAssignedTo}
168
- placeholder="Assign to team member..."
169
- searchPlaceholder="Search team members..."
170
- emptyText="No team members found."
171
- buttonClassName="w-full sm:w-[280px] md:w-[320px]"
172
- popoverClassName="w-full sm:w-[280px] md:w-[320px]"
173
- // Mobile: full width, Desktop: fixed width for consistent layout
174
- />
175
- ```
176
- ### Example 5
177
- Async data loading with loading states
178
- ```tsx
179
- function AsyncCombobox() {
180
- const [options, setOptions] = useState([])
181
- const [loading, setLoading] = useState(false)
182
- const [searchTerm, setSearchTerm] = useState("")
183
- // Debounced search effect
184
- useEffect(() => {
185
- if (!searchTerm) return
186
- const timeoutId = setTimeout(async () => {
187
- setLoading(true)
188
- try {
189
- const results = await searchAPI(searchTerm)
190
- setOptions(results)
191
- } finally {
192
- setLoading(false)
193
- }
194
- }, 300)
195
- return () => clearTimeout(timeoutId)
196
- }, [searchTerm])
197
- return (
198
- <Combobox
199
- options={options}
200
- value={selectedValue}
201
- onValueChange={setSelectedValue}
202
- placeholder={loading ? "Searching..." : "Search items..."}
203
- emptyText={loading ? "Loading..." : "No results found."}
204
- disabled={loading}
205
- />
206
- )
207
- }
208
- ```