@neynar/ui 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/.llm/a.llm.md +131 -0
  2. package/.llm/accordion-content.llm.md +67 -0
  3. package/.llm/accordion-item.llm.md +61 -0
  4. package/.llm/accordion-trigger.llm.md +69 -0
  5. package/.llm/accordion.llm.md +88 -0
  6. package/.llm/alert-description.llm.md +78 -0
  7. package/.llm/alert-dialog-action.llm.md +51 -0
  8. package/.llm/alert-dialog-cancel.llm.md +48 -0
  9. package/.llm/alert-dialog-content.llm.md +88 -0
  10. package/.llm/alert-dialog-description.llm.md +53 -0
  11. package/.llm/alert-dialog-footer.llm.md +41 -0
  12. package/.llm/alert-dialog-header.llm.md +39 -0
  13. package/.llm/alert-dialog-overlay.llm.md +44 -0
  14. package/.llm/alert-dialog-portal.llm.md +41 -0
  15. package/.llm/alert-dialog-title.llm.md +46 -0
  16. package/.llm/alert-dialog-trigger.llm.md +40 -0
  17. package/.llm/alert-dialog.llm.md +80 -0
  18. package/.llm/alert-title.llm.md +48 -0
  19. package/.llm/alert.llm.md +92 -0
  20. package/.llm/aspect-ratio.llm.md +41 -0
  21. package/.llm/avatar-fallback.llm.md +41 -0
  22. package/.llm/avatar-image.llm.md +48 -0
  23. package/.llm/avatar.llm.md +35 -0
  24. package/.llm/badge.llm.md +117 -0
  25. package/.llm/blockquote.llm.md +117 -0
  26. package/.llm/breadcrumb-ellipsis.llm.md +73 -0
  27. package/.llm/breadcrumb-item.llm.md +53 -0
  28. package/.llm/breadcrumb-link.llm.md +84 -0
  29. package/.llm/breadcrumb-list.llm.md +54 -0
  30. package/.llm/breadcrumb-page.llm.md +52 -0
  31. package/.llm/breadcrumb-separator.llm.md +60 -0
  32. package/.llm/breadcrumb.llm.md +110 -0
  33. package/.llm/button-group-separator.llm.md +53 -0
  34. package/.llm/button-group-text.llm.md +56 -0
  35. package/.llm/button-group.llm.md +81 -0
  36. package/.llm/button.llm.md +281 -0
  37. package/.llm/calendar-day-button.llm.md +57 -0
  38. package/.llm/calendar.llm.md +340 -0
  39. package/.llm/card-action.llm.md +64 -0
  40. package/.llm/card-content.llm.md +48 -0
  41. package/.llm/card-description.llm.md +46 -0
  42. package/.llm/card-footer.llm.md +56 -0
  43. package/.llm/card-header.llm.md +53 -0
  44. package/.llm/card-title.llm.md +43 -0
  45. package/.llm/card.llm.md +100 -0
  46. package/.llm/carousel-content.llm.md +77 -0
  47. package/.llm/carousel-item.llm.md +96 -0
  48. package/.llm/carousel-next.llm.md +95 -0
  49. package/.llm/carousel-previous.llm.md +95 -0
  50. package/.llm/carousel.llm.md +211 -0
  51. package/.llm/chart-config.llm.md +71 -0
  52. package/.llm/chart-container.llm.md +148 -0
  53. package/.llm/chart-legend-content.llm.md +85 -0
  54. package/.llm/chart-legend.llm.md +144 -0
  55. package/.llm/chart-style.llm.md +28 -0
  56. package/.llm/chart-tooltip-content.llm.md +149 -0
  57. package/.llm/chart-tooltip.llm.md +184 -0
  58. package/.llm/checkbox.llm.md +100 -0
  59. package/.llm/cn.llm.md +46 -0
  60. package/.llm/code.llm.md +103 -0
  61. package/.llm/collapsible-content.llm.md +109 -0
  62. package/.llm/collapsible-trigger.llm.md +75 -0
  63. package/.llm/collapsible.llm.md +109 -0
  64. package/.llm/combobox-option.llm.md +53 -0
  65. package/.llm/combobox.llm.md +208 -0
  66. package/.llm/command-dialog.llm.md +112 -0
  67. package/.llm/command-empty.llm.md +63 -0
  68. package/.llm/command-group.llm.md +83 -0
  69. package/.llm/command-input.llm.md +82 -0
  70. package/.llm/command-item.llm.md +97 -0
  71. package/.llm/command-list.llm.md +53 -0
  72. package/.llm/command-loading.llm.md +48 -0
  73. package/.llm/command-separator.llm.md +44 -0
  74. package/.llm/command-shortcut.llm.md +63 -0
  75. package/.llm/command.llm.md +147 -0
  76. package/.llm/container.llm.md +236 -0
  77. package/.llm/context-menu-checkbox-item.llm.md +97 -0
  78. package/.llm/context-menu-content.llm.md +91 -0
  79. package/.llm/context-menu-group.llm.md +61 -0
  80. package/.llm/context-menu-item.llm.md +94 -0
  81. package/.llm/context-menu-label.llm.md +60 -0
  82. package/.llm/context-menu-portal.llm.md +49 -0
  83. package/.llm/context-menu-radio-group.llm.md +66 -0
  84. package/.llm/context-menu-radio-item.llm.md +76 -0
  85. package/.llm/context-menu-separator.llm.md +51 -0
  86. package/.llm/context-menu-shortcut.llm.md +57 -0
  87. package/.llm/context-menu-sub-content.llm.md +90 -0
  88. package/.llm/context-menu-sub-trigger.llm.md +73 -0
  89. package/.llm/context-menu-sub.llm.md +61 -0
  90. package/.llm/context-menu-trigger.llm.md +53 -0
  91. package/.llm/context-menu.llm.md +103 -0
  92. package/.llm/date-picker.llm.md +90 -0
  93. package/.llm/dialog-close.llm.md +61 -0
  94. package/.llm/dialog-content.llm.md +128 -0
  95. package/.llm/dialog-description.llm.md +44 -0
  96. package/.llm/dialog-footer.llm.md +38 -0
  97. package/.llm/dialog-header.llm.md +40 -0
  98. package/.llm/dialog-overlay.llm.md +57 -0
  99. package/.llm/dialog-portal.llm.md +47 -0
  100. package/.llm/dialog-title.llm.md +41 -0
  101. package/.llm/dialog-trigger.llm.md +51 -0
  102. package/.llm/dialog.llm.md +113 -0
  103. package/.llm/drawer-close.llm.md +53 -0
  104. package/.llm/drawer-content.llm.md +58 -0
  105. package/.llm/drawer-description.llm.md +54 -0
  106. package/.llm/drawer-footer.llm.md +67 -0
  107. package/.llm/drawer-header.llm.md +60 -0
  108. package/.llm/drawer-overlay.llm.md +40 -0
  109. package/.llm/drawer-portal.llm.md +42 -0
  110. package/.llm/drawer-title.llm.md +51 -0
  111. package/.llm/drawer-trigger.llm.md +44 -0
  112. package/.llm/drawer.llm.md +194 -0
  113. package/.llm/dropdown-menu-checkbox-item.llm.md +111 -0
  114. package/.llm/dropdown-menu-content.llm.md +109 -0
  115. package/.llm/dropdown-menu-group.llm.md +38 -0
  116. package/.llm/dropdown-menu-item.llm.md +94 -0
  117. package/.llm/dropdown-menu-label.llm.md +66 -0
  118. package/.llm/dropdown-menu-portal.llm.md +32 -0
  119. package/.llm/dropdown-menu-radio-group.llm.md +73 -0
  120. package/.llm/dropdown-menu-radio-item.llm.md +92 -0
  121. package/.llm/dropdown-menu-separator.llm.md +55 -0
  122. package/.llm/dropdown-menu-shortcut.llm.md +74 -0
  123. package/.llm/dropdown-menu-sub-content.llm.md +80 -0
  124. package/.llm/dropdown-menu-sub-trigger.llm.md +84 -0
  125. package/.llm/dropdown-menu-sub.llm.md +74 -0
  126. package/.llm/dropdown-menu-trigger.llm.md +48 -0
  127. package/.llm/dropdown-menu.llm.md +120 -0
  128. package/.llm/empty-content.llm.md +103 -0
  129. package/.llm/empty-description.llm.md +70 -0
  130. package/.llm/empty-header.llm.md +64 -0
  131. package/.llm/empty-media.llm.md +81 -0
  132. package/.llm/empty-state.llm.md +174 -0
  133. package/.llm/empty-title.llm.md +54 -0
  134. package/.llm/empty.llm.md +158 -0
  135. package/.llm/field-content.llm.md +28 -0
  136. package/.llm/field-description.llm.md +28 -0
  137. package/.llm/field-error.llm.md +41 -0
  138. package/.llm/field-group.llm.md +84 -0
  139. package/.llm/field-label.llm.md +28 -0
  140. package/.llm/field-legend.llm.md +77 -0
  141. package/.llm/field-separator.llm.md +35 -0
  142. package/.llm/field-set.llm.md +80 -0
  143. package/.llm/field-title.llm.md +28 -0
  144. package/.llm/field.llm.md +35 -0
  145. package/.llm/h1.llm.md +108 -0
  146. package/.llm/h2.llm.md +108 -0
  147. package/.llm/h3.llm.md +106 -0
  148. package/.llm/h4.llm.md +104 -0
  149. package/.llm/h5.llm.md +105 -0
  150. package/.llm/h6.llm.md +105 -0
  151. package/.llm/hover-card-content.llm.md +167 -0
  152. package/.llm/hover-card-trigger.llm.md +65 -0
  153. package/.llm/hover-card.llm.md +121 -0
  154. package/.llm/input-group-addon.llm.md +91 -0
  155. package/.llm/input-group-button.llm.md +120 -0
  156. package/.llm/input-group-input.llm.md +145 -0
  157. package/.llm/input-group-text.llm.md +75 -0
  158. package/.llm/input-group-textarea.llm.md +157 -0
  159. package/.llm/input-group.llm.md +108 -0
  160. package/.llm/input.llm.md +319 -0
  161. package/.llm/item-actions.llm.md +77 -0
  162. package/.llm/item-content.llm.md +73 -0
  163. package/.llm/item-description.llm.md +61 -0
  164. package/.llm/item-footer.llm.md +68 -0
  165. package/.llm/item-group.llm.md +73 -0
  166. package/.llm/item-header.llm.md +66 -0
  167. package/.llm/item-media.llm.md +75 -0
  168. package/.llm/item-separator.llm.md +80 -0
  169. package/.llm/item-title.llm.md +59 -0
  170. package/.llm/item.llm.md +115 -0
  171. package/.llm/kbd-group.llm.md +71 -0
  172. package/.llm/kbd.llm.md +71 -0
  173. package/.llm/label.llm.md +145 -0
  174. package/.llm/lead.llm.md +114 -0
  175. package/.llm/menubar-checkbox-item.llm.md +66 -0
  176. package/.llm/menubar-content.llm.md +128 -0
  177. package/.llm/menubar-group.llm.md +40 -0
  178. package/.llm/menubar-item.llm.md +62 -0
  179. package/.llm/menubar-label.llm.md +40 -0
  180. package/.llm/menubar-menu.llm.md +32 -0
  181. package/.llm/menubar-portal.llm.md +38 -0
  182. package/.llm/menubar-radio-group.llm.md +39 -0
  183. package/.llm/menubar-radio-item.llm.md +59 -0
  184. package/.llm/menubar-separator.llm.md +35 -0
  185. package/.llm/menubar-shortcut.llm.md +37 -0
  186. package/.llm/menubar-sub-content.llm.md +127 -0
  187. package/.llm/menubar-sub-trigger.llm.md +51 -0
  188. package/.llm/menubar-sub.llm.md +53 -0
  189. package/.llm/menubar-trigger.llm.md +37 -0
  190. package/.llm/menubar.llm.md +115 -0
  191. package/.llm/navigation-menu-content.llm.md +116 -0
  192. package/.llm/navigation-menu-indicator.llm.md +68 -0
  193. package/.llm/navigation-menu-item.llm.md +62 -0
  194. package/.llm/navigation-menu-link.llm.md +109 -0
  195. package/.llm/navigation-menu-list.llm.md +52 -0
  196. package/.llm/navigation-menu-trigger-style.llm.md +22 -0
  197. package/.llm/navigation-menu-trigger.llm.md +57 -0
  198. package/.llm/navigation-menu-viewport.llm.md +51 -0
  199. package/.llm/navigation-menu.llm.md +184 -0
  200. package/.llm/p.llm.md +110 -0
  201. package/.llm/pagination-content.llm.md +60 -0
  202. package/.llm/pagination-ellipsis.llm.md +107 -0
  203. package/.llm/pagination-item.llm.md +59 -0
  204. package/.llm/pagination-link.llm.md +150 -0
  205. package/.llm/pagination-next.llm.md +115 -0
  206. package/.llm/pagination-previous.llm.md +115 -0
  207. package/.llm/pagination.llm.md +190 -0
  208. package/.llm/popover-anchor.llm.md +53 -0
  209. package/.llm/popover-content.llm.md +109 -0
  210. package/.llm/popover-trigger.llm.md +54 -0
  211. package/.llm/popover.llm.md +116 -0
  212. package/.llm/progress.llm.md +76 -0
  213. package/.llm/radio-group-indicator.llm.md +28 -0
  214. package/.llm/radio-group-item.llm.md +40 -0
  215. package/.llm/radio-group.llm.md +76 -0
  216. package/.llm/resizable-handle.llm.md +156 -0
  217. package/.llm/resizable-panel-group.llm.md +149 -0
  218. package/.llm/resizable-panel.llm.md +157 -0
  219. package/.llm/scroll-area-corner.llm.md +41 -0
  220. package/.llm/scroll-area-thumb.llm.md +39 -0
  221. package/.llm/scroll-area-viewport.llm.md +60 -0
  222. package/.llm/scroll-area.llm.md +125 -0
  223. package/.llm/scroll-bar.llm.md +78 -0
  224. package/.llm/sdk-items-registry.json +3022 -0
  225. package/.llm/select-content.llm.md +139 -0
  226. package/.llm/select-group.llm.md +60 -0
  227. package/.llm/select-item.llm.md +75 -0
  228. package/.llm/select-label.llm.md +62 -0
  229. package/.llm/select-scroll-down-button.llm.md +45 -0
  230. package/.llm/select-scroll-up-button.llm.md +45 -0
  231. package/.llm/select-separator.llm.md +59 -0
  232. package/.llm/select-trigger.llm.md +66 -0
  233. package/.llm/select-value.llm.md +67 -0
  234. package/.llm/select.llm.md +159 -0
  235. package/.llm/separator.llm.md +129 -0
  236. package/.llm/sheet-close.llm.md +49 -0
  237. package/.llm/sheet-content.llm.md +115 -0
  238. package/.llm/sheet-description.llm.md +62 -0
  239. package/.llm/sheet-footer.llm.md +64 -0
  240. package/.llm/sheet-header.llm.md +52 -0
  241. package/.llm/sheet-title.llm.md +53 -0
  242. package/.llm/sheet-trigger.llm.md +46 -0
  243. package/.llm/sheet.llm.md +126 -0
  244. package/.llm/sidebar-content.llm.md +63 -0
  245. package/.llm/sidebar-footer.llm.md +50 -0
  246. package/.llm/sidebar-group-action.llm.md +60 -0
  247. package/.llm/sidebar-group-content.llm.md +64 -0
  248. package/.llm/sidebar-group-label.llm.md +53 -0
  249. package/.llm/sidebar-group.llm.md +56 -0
  250. package/.llm/sidebar-header.llm.md +67 -0
  251. package/.llm/sidebar-input.llm.md +50 -0
  252. package/.llm/sidebar-inset.llm.md +52 -0
  253. package/.llm/sidebar-menu-action.llm.md +84 -0
  254. package/.llm/sidebar-menu-badge.llm.md +60 -0
  255. package/.llm/sidebar-menu-button.llm.md +103 -0
  256. package/.llm/sidebar-menu-item.llm.md +75 -0
  257. package/.llm/sidebar-menu-skeleton.llm.md +76 -0
  258. package/.llm/sidebar-menu-sub-button.llm.md +85 -0
  259. package/.llm/sidebar-menu-sub-item.llm.md +54 -0
  260. package/.llm/sidebar-menu-sub.llm.md +74 -0
  261. package/.llm/sidebar-menu.llm.md +65 -0
  262. package/.llm/sidebar-provider.llm.md +79 -0
  263. package/.llm/sidebar-rail.llm.md +34 -0
  264. package/.llm/sidebar-separator.llm.md +57 -0
  265. package/.llm/sidebar-trigger.llm.md +49 -0
  266. package/.llm/sidebar.llm.md +129 -0
  267. package/.llm/skeleton.llm.md +134 -0
  268. package/.llm/slider.llm.md +173 -0
  269. package/.llm/small.llm.md +110 -0
  270. package/.llm/span.llm.md +118 -0
  271. package/.llm/spinner.llm.md +182 -0
  272. package/.llm/stack.llm.md +28 -0
  273. package/.llm/strong.llm.md +110 -0
  274. package/.llm/switch.llm.md +76 -0
  275. package/.llm/table-body.llm.md +36 -0
  276. package/.llm/table-caption.llm.md +48 -0
  277. package/.llm/table-cell.llm.md +53 -0
  278. package/.llm/table-footer.llm.md +41 -0
  279. package/.llm/table-head.llm.md +69 -0
  280. package/.llm/table-header.llm.md +41 -0
  281. package/.llm/table-row.llm.md +42 -0
  282. package/.llm/table.llm.md +123 -0
  283. package/.llm/tabs-content.llm.md +47 -0
  284. package/.llm/tabs-list.llm.md +41 -0
  285. package/.llm/tabs-trigger.llm.md +47 -0
  286. package/.llm/tabs.llm.md +71 -0
  287. package/.llm/text-field.llm.md +327 -0
  288. package/.llm/textarea.llm.md +311 -0
  289. package/.llm/theme-preference.llm.md +25 -0
  290. package/.llm/theme-toggle.llm.md +57 -0
  291. package/.llm/theme.llm.md +14 -0
  292. package/.llm/toast.llm.md +32 -0
  293. package/.llm/toaster.llm.md +193 -0
  294. package/.llm/toggle-group-item.llm.md +59 -0
  295. package/.llm/toggle-group.llm.md +101 -0
  296. package/.llm/toggle.llm.md +40 -0
  297. package/.llm/tooltip-content.llm.md +185 -0
  298. package/.llm/tooltip-provider.llm.md +68 -0
  299. package/.llm/tooltip-trigger.llm.md +70 -0
  300. package/.llm/tooltip.llm.md +129 -0
  301. package/.llm/typography.llm.md +161 -0
  302. package/.llm/use-carousel.llm.md +55 -0
  303. package/.llm/use-command-state.llm.md +32 -0
  304. package/.llm/use-is-mobile.llm.md +73 -0
  305. package/.llm/use-sidebar.llm.md +61 -0
  306. package/dist/components/ui/scroll-area.d.ts +5 -5
  307. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  308. package/dist/components/ui/stack.d.ts.map +1 -1
  309. package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -1
  310. package/dist/components/ui/theme-toggle.d.ts +0 -3
  311. package/dist/components/ui/theme-toggle.d.ts.map +1 -1
  312. package/dist/components/ui/theme.d.ts.map +1 -1
  313. package/dist/index.js +4972 -9636
  314. package/dist/index.js.map +1 -1
  315. package/dist/tsconfig.tsbuildinfo +1 -1
  316. package/package.json +2 -2
  317. package/src/components/ui/stack.tsx +3 -1
  318. package/src/components/ui/theme-toggle.tsx +1 -3
  319. package/src/components/ui/theme.tsx +6 -1
  320. package/src/styles/globals.css +57 -85
@@ -0,0 +1,139 @@
1
+ # SelectContent
2
+
3
+ **Type**: component
4
+
5
+ SelectContent - Container for the dropdown content The dropdown panel that contains all selectable items, groups, and labels. Built on Radix UI Select.Content with Portal rendering for proper layering. Automatically handles scrolling for long lists, collision detection, and positioning relative to the trigger with smooth animations. **Positioning Strategy:** - `popper`: Uses Floating UI for precise positioning with collision detection - `item-aligned`: Aligns content with the selected item for natural feel
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectContent } from '@neynar/ui';
11
+
12
+ <SelectContent
13
+ asChild={true}
14
+ position={value}
15
+ side={value}
16
+ sideOffset={0}
17
+ align={value}
18
+ alignOffset={0}
19
+ avoidCollisions={true}
20
+ collisionBoundary={value}
21
+ collisionPadding={value}
22
+ arrowPadding={0}
23
+ sticky={value}
24
+ hideWhenDetached={true}
25
+ >
26
+ {/* Your content here */}
27
+ </SelectContent>
28
+ ```
29
+
30
+ ## Component Props
31
+
32
+ ### asChild
33
+ - **Type**: `boolean`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ### position
38
+ - **Type**: `"item-aligned" | "popper"`
39
+ - **Required**: No
40
+ - **Description**: No description available
41
+
42
+ ### side
43
+ - **Type**: `"top" | "right" | "bottom" | "left"`
44
+ - **Required**: No
45
+ - **Description**: No description available
46
+
47
+ ### sideOffset
48
+ - **Type**: `number`
49
+ - **Required**: No
50
+ - **Description**: No description available
51
+
52
+ ### align
53
+ - **Type**: `"start" | "center" | "end"`
54
+ - **Required**: No
55
+ - **Description**: No description available
56
+
57
+ ### alignOffset
58
+ - **Type**: `number`
59
+ - **Required**: No
60
+ - **Description**: No description available
61
+
62
+ ### avoidCollisions
63
+ - **Type**: `boolean`
64
+ - **Required**: No
65
+ - **Description**: No description available
66
+
67
+ ### collisionBoundary
68
+ - **Type**: `Element | null | Array<Element | null>`
69
+ - **Required**: No
70
+ - **Description**: No description available
71
+
72
+ ### collisionPadding
73
+ - **Type**: `| number
74
+ | Partial<Record<"top" | "right" | "bottom" | "left", number>>`
75
+ - **Required**: No
76
+ - **Description**: No description available
77
+
78
+ ### arrowPadding
79
+ - **Type**: `number`
80
+ - **Required**: No
81
+ - **Description**: No description available
82
+
83
+ ### sticky
84
+ - **Type**: `"partial" | "always"`
85
+ - **Required**: No
86
+ - **Description**: No description available
87
+
88
+ ### hideWhenDetached
89
+ - **Type**: `boolean`
90
+ - **Required**: No
91
+ - **Description**: No description available
92
+
93
+ ## Examples
94
+
95
+ ### Example 1
96
+ ```tsx
97
+ // Basic content with multiple items
98
+ <SelectContent>
99
+ <SelectItem value="1">Option 1</SelectItem>
100
+ <SelectItem value="2">Option 2</SelectItem>
101
+ <SelectItem value="3">Option 3</SelectItem>
102
+ </SelectContent>
103
+ ```
104
+ ### Example 2
105
+ ```tsx
106
+ // Item-aligned positioning (default behavior)
107
+ <SelectContent position="item-aligned">
108
+ <SelectItem value="apple">Apple</SelectItem>
109
+ <SelectItem value="banana">Banana</SelectItem>
110
+ </SelectContent>
111
+ ```
112
+ ### Example 3
113
+ ```tsx
114
+ // Popper positioning with custom placement
115
+ <SelectContent position="popper" side="top" align="end">
116
+ <SelectItem value="1">Option 1</SelectItem>
117
+ <SelectItem value="2">Option 2</SelectItem>
118
+ </SelectContent>
119
+ ```
120
+ ### Example 4
121
+ ```tsx
122
+ // Complex content with groups and scrolling
123
+ <SelectContent>
124
+ <SelectGroup>
125
+ <SelectLabel>Recent Items</SelectLabel>
126
+ <SelectItem value="recent1">Recently Used 1</SelectItem>
127
+ <SelectItem value="recent2">Recently Used 2</SelectItem>
128
+ </SelectGroup>
129
+ <SelectSeparator />
130
+ <SelectGroup>
131
+ <SelectLabel>All Items</SelectLabel>
132
+ {items.map((item) => (
133
+ <SelectItem key={item.id} value={item.id}>
134
+ {item.label}
135
+ </SelectItem>
136
+ ))}
137
+ </SelectGroup>
138
+ </SelectContent>
139
+ ```
@@ -0,0 +1,60 @@
1
+ # SelectGroup
2
+
3
+ **Type**: component
4
+
5
+ SelectGroup - Container for grouping related select items Groups related options together with an optional label for better organization and improved user experience when dealing with many options. Built on Radix UI Select.Group with semantic grouping that enhances screen reader navigation.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectGroup } from '@neynar/ui';
11
+
12
+ <SelectGroup
13
+ asChild={true}
14
+ />
15
+ ```
16
+
17
+ ## Component Props
18
+
19
+ ### asChild
20
+ - **Type**: `boolean`
21
+ - **Required**: No
22
+ - **Description**: No description available
23
+
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Basic group with label
29
+ <SelectGroup>
30
+ <SelectLabel>Fruits</SelectLabel>
31
+ <SelectItem value="apple">Apple</SelectItem>
32
+ <SelectItem value="banana">Banana</SelectItem>
33
+ <SelectItem value="orange">Orange</SelectItem>
34
+ </SelectGroup>
35
+ ```
36
+ ### Example 2
37
+ ```tsx
38
+ // Multiple groups with separators
39
+ <SelectContent>
40
+ <SelectGroup>
41
+ <SelectLabel>Popular Choices</SelectLabel>
42
+ <SelectItem value="most-popular">Most Popular</SelectItem>
43
+ <SelectItem value="trending">Trending</SelectItem>
44
+ </SelectGroup>
45
+ <SelectSeparator />
46
+ <SelectGroup>
47
+ <SelectLabel>All Options</SelectLabel>
48
+ <SelectItem value="option1">Option 1</SelectItem>
49
+ <SelectItem value="option2">Option 2</SelectItem>
50
+ </SelectGroup>
51
+ </SelectContent>
52
+ ```
53
+ ### Example 3
54
+ ```tsx
55
+ // Group without label for simple separation
56
+ <SelectGroup>
57
+ <SelectItem value="item1">Item 1</SelectItem>
58
+ <SelectItem value="item2">Item 2</SelectItem>
59
+ </SelectGroup>
60
+ ```
@@ -0,0 +1,75 @@
1
+ # SelectItem
2
+
3
+ **Type**: component
4
+
5
+ SelectItem - Individual selectable option in the dropdown Represents a single option that users can select. Built on Radix UI Select.Item with enhanced styling including hover states, selection indicators, and proper spacing. Shows a checkmark when selected and supports keyboard navigation with proper focus management.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectItem } from '@neynar/ui';
11
+
12
+ <SelectItem
13
+ asChild={true}
14
+ value="value"
15
+ disabled={true}
16
+ textValue="value"
17
+ >
18
+ {/* Your content here */}
19
+ </SelectItem>
20
+ ```
21
+
22
+ ## Component Props
23
+
24
+ ### asChild
25
+ - **Type**: `boolean`
26
+ - **Required**: No
27
+ - **Description**: No description available
28
+
29
+ ### value
30
+ - **Type**: `string`
31
+ - **Required**: Yes
32
+ - **Description**: No description available
33
+
34
+ ### disabled
35
+ - **Type**: `boolean`
36
+ - **Required**: No
37
+ - **Description**: No description available
38
+
39
+ ### textValue
40
+ - **Type**: `string`
41
+ - **Required**: No
42
+ - **Description**: No description available
43
+
44
+ ## Examples
45
+
46
+ ### Example 1
47
+ ```tsx
48
+ // Basic item
49
+ <SelectItem value="apple">Apple</SelectItem>
50
+ ```
51
+ ### Example 2
52
+ ```tsx
53
+ // Disabled item that cannot be selected
54
+ <SelectItem value="sold-out" disabled>
55
+ Sold Out - Unavailable
56
+ </SelectItem>
57
+ ```
58
+ ### Example 3
59
+ ```tsx
60
+ // Complex item content with custom text value for typeahead
61
+ <SelectItem value="user-123" textValue="John Doe">
62
+ <div className="flex items-center gap-2">
63
+ <Avatar size="sm" />
64
+ <div>
65
+ <div>John Doe</div>
66
+ <div className="text-xs text-muted-foreground">john
67
+ ### Example 4
68
+ ```tsx
69
+ // Using asChild for custom item composition
70
+ <SelectItem value="custom" asChild>
71
+ <div className="custom-item-styles">
72
+ Custom item content
73
+ </div>
74
+ </SelectItem>
75
+ ```
@@ -0,0 +1,62 @@
1
+ # SelectLabel
2
+
3
+ **Type**: component
4
+
5
+ SelectLabel - Label for a group of select items Provides a non-selectable label for categorizing groups of options. Built on Radix UI Select.Label with muted styling and proper typography. Helps users understand the context of the options below and improves navigation for screen reader users.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectLabel } from '@neynar/ui';
11
+
12
+ <SelectLabel
13
+ asChild={true}
14
+ />
15
+ ```
16
+
17
+ ## Component Props
18
+
19
+ ### asChild
20
+ - **Type**: `boolean`
21
+ - **Required**: No
22
+ - **Description**: No description available
23
+
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Basic group label
29
+ <SelectGroup>
30
+ <SelectLabel>Countries</SelectLabel>
31
+ <SelectItem value="us">United States</SelectItem>
32
+ <SelectItem value="uk">United Kingdom</SelectItem>
33
+ <SelectItem value="ca">Canada</SelectItem>
34
+ </SelectGroup>
35
+ ```
36
+ ### Example 2
37
+ ```tsx
38
+ // Multiple labeled groups
39
+ <SelectContent>
40
+ <SelectGroup>
41
+ <SelectLabel>Primary Options</SelectLabel>
42
+ <SelectItem value="primary1">Primary Choice 1</SelectItem>
43
+ <SelectItem value="primary2">Primary Choice 2</SelectItem>
44
+ </SelectGroup>
45
+ <SelectSeparator />
46
+ <SelectGroup>
47
+ <SelectLabel>Advanced Options</SelectLabel>
48
+ <SelectItem value="advanced1">Advanced Choice 1</SelectItem>
49
+ <SelectItem value="advanced2">Advanced Choice 2</SelectItem>
50
+ </SelectGroup>
51
+ </SelectContent>
52
+ ```
53
+ ### Example 3
54
+ ```tsx
55
+ // Custom styling with asChild
56
+ <SelectLabel asChild>
57
+ <div className="flex items-center gap-1 px-2 py-1 font-semibold">
58
+ <Icon className="size-3" />
59
+ <span>Categories</span>
60
+ </div>
61
+ </SelectLabel>
62
+ ```
@@ -0,0 +1,45 @@
1
+ # SelectScrollDownButton
2
+
3
+ **Type**: component
4
+
5
+ SelectScrollDownButton - Scroll button for navigating down in long lists Appears at the bottom of the dropdown when there are more items below the visible area. Built on Radix UI Select.ScrollDownButton with chevron icon and hover states. Automatically shows/hides based on scroll position.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectScrollDownButton } from '@neynar/ui';
11
+
12
+ <SelectScrollDownButton
13
+ asChild={true}
14
+ />
15
+ ```
16
+
17
+ ## Component Props
18
+
19
+ ### asChild
20
+ - **Type**: `boolean`
21
+ - **Required**: No
22
+ - **Description**: No description available
23
+
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Automatically included in SelectContent
29
+ <SelectContent>
30
+ // ScrollUpButton appears here when needed
31
+ <SelectItem value="1">Item 1</SelectItem>
32
+ // ... many items ...
33
+ <SelectItem value="100">Item 100</SelectItem>
34
+ // ScrollDownButton appears here when needed
35
+ </SelectContent>
36
+ ```
37
+ ### Example 2
38
+ ```tsx
39
+ // Custom scroll button using asChild
40
+ <SelectScrollDownButton asChild>
41
+ <button className="custom-scroll-styles">
42
+ <CustomDownIcon />
43
+ </button>
44
+ </SelectScrollDownButton>
45
+ ```
@@ -0,0 +1,45 @@
1
+ # SelectScrollUpButton
2
+
3
+ **Type**: component
4
+
5
+ SelectScrollUpButton - Scroll button for navigating up in long lists Appears at the top of the dropdown when there are more items above the visible area. Built on Radix UI Select.ScrollUpButton with chevron icon and hover states. Automatically shows/hides based on scroll position.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectScrollUpButton } from '@neynar/ui';
11
+
12
+ <SelectScrollUpButton
13
+ asChild={true}
14
+ />
15
+ ```
16
+
17
+ ## Component Props
18
+
19
+ ### asChild
20
+ - **Type**: `boolean`
21
+ - **Required**: No
22
+ - **Description**: No description available
23
+
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Automatically included in SelectContent
29
+ <SelectContent>
30
+ // ScrollUpButton appears here when needed
31
+ <SelectItem value="1">Item 1</SelectItem>
32
+ // ... many items ...
33
+ <SelectItem value="100">Item 100</SelectItem>
34
+ // ScrollDownButton appears here when needed
35
+ </SelectContent>
36
+ ```
37
+ ### Example 2
38
+ ```tsx
39
+ // Custom scroll button using asChild
40
+ <SelectScrollUpButton asChild>
41
+ <button className="custom-scroll-styles">
42
+ <CustomUpIcon />
43
+ </button>
44
+ </SelectScrollUpButton>
45
+ ```
@@ -0,0 +1,59 @@
1
+ # SelectSeparator
2
+
3
+ **Type**: component
4
+
5
+ SelectSeparator - Visual divider between select groups A horizontal line that visually separates groups of options for better organization and clarity. Built on Radix UI Select.Separator with subtle border styling that adapts to the current theme.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectSeparator } from '@neynar/ui';
11
+
12
+ <SelectSeparator
13
+ asChild={true}
14
+ />
15
+ ```
16
+
17
+ ## Component Props
18
+
19
+ ### asChild
20
+ - **Type**: `boolean`
21
+ - **Required**: No
22
+ - **Description**: No description available
23
+
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Basic separation between groups
29
+ <SelectContent>
30
+ <SelectGroup>
31
+ <SelectLabel>Group 1</SelectLabel>
32
+ <SelectItem value="1">Option 1</SelectItem>
33
+ </SelectGroup>
34
+ <SelectSeparator />
35
+ <SelectGroup>
36
+ <SelectLabel>Group 2</SelectLabel>
37
+ <SelectItem value="2">Option 2</SelectItem>
38
+ </SelectGroup>
39
+ </SelectContent>
40
+ ```
41
+ ### Example 2
42
+ ```tsx
43
+ // Multiple separators in complex layouts
44
+ <SelectContent>
45
+ <SelectGroup>
46
+ <SelectItem value="recent">Recent Items</SelectItem>
47
+ </SelectGroup>
48
+ <SelectSeparator />
49
+ <SelectGroup>
50
+ <SelectItem value="favorite">Favorites</SelectItem>
51
+ </SelectGroup>
52
+ <SelectSeparator />
53
+ <SelectGroup>
54
+ <SelectLabel>All Items</SelectLabel>
55
+ <SelectItem value="all1">Item 1</SelectItem>
56
+ <SelectItem value="all2">Item 2</SelectItem>
57
+ </SelectGroup>
58
+ </SelectContent>
59
+ ```
@@ -0,0 +1,66 @@
1
+ # SelectTrigger
2
+
3
+ **Type**: component
4
+
5
+ SelectTrigger - The button that opens the select dropdown A styled button that displays the current value and triggers the dropdown menu. Built on Radix UI Select.Trigger with enhanced styling including focus states, size variants, and proper hover interactions. Includes a chevron icon to indicate dropdown functionality and supports different size variants for various UI contexts. **Size Variants:** - `default`: Standard height (36px) suitable for most forms and interfaces - `sm`: Compact height (32px) ideal for dense layouts and table interfaces
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectTrigger } from '@neynar/ui';
11
+
12
+ <SelectTrigger
13
+ asChild={true}
14
+ size={value}
15
+ >
16
+ {/* Your content here */}
17
+ </SelectTrigger>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### asChild
23
+ - **Type**: `boolean`
24
+ - **Required**: No
25
+ - **Description**: No description available
26
+
27
+ ### size
28
+ - **Type**: `"sm" | "default"`
29
+ - **Required**: No
30
+ - **Description**: No description available
31
+
32
+ ## Examples
33
+
34
+ ### Example 1
35
+ ```tsx
36
+ // Basic trigger with custom width
37
+ <SelectTrigger className="w-[200px]">
38
+ <SelectValue placeholder="Select an option" />
39
+ </SelectTrigger>
40
+ ```
41
+ ### Example 2
42
+ ```tsx
43
+ // Small size variant for compact layouts
44
+ <SelectTrigger size="sm" className="w-[150px]">
45
+ <SelectValue placeholder="Compact select" />
46
+ </SelectTrigger>
47
+ ```
48
+ ### Example 3
49
+ ```tsx
50
+ // Form integration with accessibility attributes
51
+ <label htmlFor="user-role">User Role</label>
52
+ <SelectTrigger id="user-role" aria-describedby="role-help">
53
+ <SelectValue placeholder="Choose role" />
54
+ </SelectTrigger>
55
+ <div id="role-help">Select the appropriate role for this user</div>
56
+ ```
57
+ ### Example 4
58
+ ```tsx
59
+ // Custom composition using asChild
60
+ <SelectTrigger asChild>
61
+ <button className="custom-trigger-styles">
62
+ <SelectValue />
63
+ <CustomChevronIcon />
64
+ </button>
65
+ </SelectTrigger>
66
+ ```
@@ -0,0 +1,67 @@
1
+ # SelectValue
2
+
3
+ **Type**: component
4
+
5
+ SelectValue - Displays the selected value or placeholder Renders the currently selected option's text or a placeholder when no option is selected. Built on Radix UI Select.Value with proper text truncation and styling. Must be used inside SelectTrigger to display the current selection state.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { SelectValue } from '@neynar/ui';
11
+
12
+ <SelectValue
13
+ asChild={true}
14
+ placeholder={value}
15
+ />
16
+ ```
17
+
18
+ ## Component Props
19
+
20
+ ### asChild
21
+ - **Type**: `boolean`
22
+ - **Required**: No
23
+ - **Description**: No description available
24
+
25
+ ### placeholder
26
+ - **Type**: `React.ReactNode`
27
+ - **Required**: No
28
+ - **Description**: No description available
29
+
30
+ ## Examples
31
+
32
+ ### Example 1
33
+ ```tsx
34
+ // Basic usage with placeholder
35
+ <SelectTrigger>
36
+ <SelectValue placeholder="Choose an option" />
37
+ </SelectTrigger>
38
+ ```
39
+ ### Example 2
40
+ ```tsx
41
+ // Custom placeholder styling
42
+ <SelectTrigger>
43
+ <SelectValue
44
+ placeholder={
45
+ <span className="text-muted-foreground italic">
46
+ No selection made
47
+ </span>
48
+ }
49
+ />
50
+ </SelectTrigger>
51
+ ```
52
+ ### Example 3
53
+ ```tsx
54
+ // Using asChild for complete custom rendering
55
+ <SelectValue asChild>
56
+ <div className="flex items-center gap-2">
57
+ {selectedItem ? (
58
+ <>
59
+ <ItemIcon />
60
+ <span>{selectedItem.label}</span>
61
+ </>
62
+ ) : (
63
+ <span className="text-muted-foreground">Select item...</span>
64
+ )}
65
+ </div>
66
+ </SelectValue>
67
+ ```