@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,113 @@
1
+ # Dialog
2
+
3
+ **Type**: component
4
+
5
+ Dialog - A modal dialog component for important content or actions A modal window overlay component built on Radix UI Dialog primitives that interrupts the user's workflow to capture their attention for important interactions. Dialogs render content in a layer above the main application with proper focus management and accessibility. Use dialogs for critical interactions, confirmations, forms, or detailed information that requires user focus and prevents interaction with the background content.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Dialog } from '@neynar/ui';
11
+
12
+ <Dialog
13
+ open={true}
14
+ defaultOpen={true}
15
+ onOpenChange={handleOpenChange}
16
+ modal={true}
17
+ >
18
+ {/* Your content here */}
19
+ </Dialog>
20
+ ```
21
+
22
+ ## Component Props
23
+
24
+ ### open
25
+ - **Type**: `boolean`
26
+ - **Required**: No
27
+ - **Description**: No description available
28
+
29
+ ### defaultOpen
30
+ - **Type**: `boolean`
31
+ - **Required**: No
32
+ - **Description**: No description available
33
+
34
+ ### onOpenChange
35
+ - **Type**: `(open: boolean) => void`
36
+ - **Required**: No
37
+ - **Description**: No description available
38
+
39
+ ### modal
40
+ - **Type**: `boolean`
41
+ - **Required**: No
42
+ - **Description**: No description available
43
+
44
+ ### children
45
+ - **Type**: `React.ReactNode`
46
+ - **Required**: No
47
+ - **Description**: No description available
48
+
49
+ ## Examples
50
+
51
+ ### Example 1
52
+ ```tsx
53
+ // Basic confirmation dialog
54
+ <Dialog>
55
+ <DialogTrigger asChild>
56
+ <Button>Open Dialog</Button>
57
+ </DialogTrigger>
58
+ <DialogContent>
59
+ <DialogHeader>
60
+ <DialogTitle>Are you sure?</DialogTitle>
61
+ <DialogDescription>
62
+ This action cannot be undone.
63
+ </DialogDescription>
64
+ </DialogHeader>
65
+ <DialogFooter>
66
+ <Button variant="outline">Cancel</Button>
67
+ <Button>Continue</Button>
68
+ </DialogFooter>
69
+ </DialogContent>
70
+ </Dialog>
71
+ ```
72
+ ### Example 2
73
+ ```tsx
74
+ // Controlled dialog with form handling
75
+ const [open, setOpen] = useState(false);
76
+ <Dialog open={open} onOpenChange={setOpen}>
77
+ <DialogTrigger asChild>
78
+ <Button>Edit Profile</Button>
79
+ </DialogTrigger>
80
+ <DialogContent className="sm:max-w-[425px]">
81
+ <DialogHeader>
82
+ <DialogTitle>Edit profile</DialogTitle>
83
+ <DialogDescription>
84
+ Make changes to your profile here. Click save when you're done.
85
+ </DialogDescription>
86
+ </DialogHeader>
87
+ <form onSubmit={handleSubmit}>
88
+ <div className="grid gap-4 py-4">
89
+ <Input label="Name" defaultValue="John Doe" />
90
+ <Input label="Username" defaultValue="
91
+ ### Example 3
92
+ ```tsx
93
+ // Custom close behavior
94
+ <Dialog>
95
+ <DialogTrigger asChild>
96
+ <Button>Share Link</Button>
97
+ </DialogTrigger>
98
+ <DialogContent showCloseButton={false}>
99
+ <DialogHeader>
100
+ <DialogTitle>Share this link</DialogTitle>
101
+ </DialogHeader>
102
+ <div className="flex items-center space-x-2">
103
+ <Input value="https://example.com" readOnly />
104
+ <Button size="sm"><Copy className="h-4 w-4" /></Button>
105
+ </div>
106
+ <DialogFooter>
107
+ <DialogClose asChild>
108
+ <Button variant="secondary">Done</Button>
109
+ </DialogClose>
110
+ </DialogFooter>
111
+ </DialogContent>
112
+ </Dialog>
113
+ ```
@@ -0,0 +1,53 @@
1
+ # DrawerClose
2
+
3
+ **Type**: component
4
+
5
+ DrawerClose - Interactive element that closes the drawer Trigger element that closes the drawer when activated. Can be placed anywhere within the drawer content. By default renders as a button but can be composed with other elements using asChild. Multiple close triggers can exist within a single drawer.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerClose } from '@neynar/ui';
11
+
12
+ <DrawerClose
13
+ asChild={true}
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerClose>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### asChild
22
+ - **Type**: `boolean`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Default close button
36
+ <DrawerClose>Close</DrawerClose>
37
+ ```
38
+ ### Example 2
39
+ ```tsx
40
+ // Composed with custom button
41
+ <DrawerClose asChild>
42
+ <Button variant="ghost">Cancel</Button>
43
+ </DrawerClose>
44
+ ```
45
+ ### Example 3
46
+ ```tsx
47
+ // Icon-only close button
48
+ <DrawerClose asChild>
49
+ <Button size="icon" variant="ghost">
50
+ <X className="h-4 w-4" />
51
+ </Button>
52
+ </DrawerClose>
53
+ ```
@@ -0,0 +1,58 @@
1
+ # DrawerContent
2
+
3
+ **Type**: component
4
+
5
+ DrawerContent - Main container for drawer content with responsive positioning The primary content container that holds all drawer elements. Automatically handles portal rendering, overlay display, and responsive positioning based on the drawer direction. Includes a drag handle for bottom drawers and responsive styling for all four directions. Supports flexible layouts with proper spacing for headers, content areas, and footers. Automatically constrains height/width based on direction and viewport size.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerContent } from '@neynar/ui';
11
+
12
+ <DrawerContent
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerContent>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Basic content structure
36
+ <DrawerContent>
37
+ <DrawerHeader>
38
+ <DrawerTitle>Title</DrawerTitle>
39
+ <DrawerDescription>Description</DrawerDescription>
40
+ </DrawerHeader>
41
+ <div className="p-4">
42
+ Main content area
43
+ </div>
44
+ <DrawerFooter>
45
+ <Button>Action</Button>
46
+ </DrawerFooter>
47
+ </DrawerContent>
48
+ ```
49
+ ### Example 2
50
+ ```tsx
51
+ // Custom styled content
52
+ <DrawerContent className="max-w-md mx-auto">
53
+ <div className="flex-1 overflow-y-auto p-6">
54
+ <h2>Custom Layout</h2>
55
+ <p>Scrollable content area</p>
56
+ </div>
57
+ </DrawerContent>
58
+ ```
@@ -0,0 +1,54 @@
1
+ # DrawerDescription
2
+
3
+ **Type**: component
4
+
5
+ DrawerDescription - Optional description providing additional context Supplementary text element that provides additional information about the drawer's content, purpose, or instructions. Enhances accessibility by giving users more context about what they'll find in the drawer. Styled with muted colors and smaller text to maintain visual hierarchy.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerDescription } from '@neynar/ui';
11
+
12
+ <DrawerDescription
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerDescription>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Basic description
36
+ <DrawerDescription>
37
+ Manage your account preferences and privacy settings
38
+ </DrawerDescription>
39
+ ```
40
+ ### Example 2
41
+ ```tsx
42
+ // Description with instructions
43
+ <DrawerDescription>
44
+ Select the options below to customize your experience.
45
+ Changes will be saved automatically.
46
+ </DrawerDescription>
47
+ ```
48
+ ### Example 3
49
+ ```tsx
50
+ // Custom styled description
51
+ <DrawerDescription className="text-xs text-orange-600">
52
+ Warning: These changes cannot be undone
53
+ </DrawerDescription>
54
+ ```
@@ -0,0 +1,67 @@
1
+ # DrawerFooter
2
+
3
+ **Type**: component
4
+
5
+ DrawerFooter - Footer section for action buttons and controls Standardized footer area positioned at the bottom of the drawer with automatic top margin to push content down. Typically contains primary actions, secondary actions, and DrawerClose triggers. Uses flexbox column layout with consistent spacing between elements.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerFooter } from '@neynar/ui';
11
+
12
+ <DrawerFooter
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerFooter>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Standard footer with primary and secondary actions
36
+ <DrawerFooter>
37
+ <Button>Save Changes</Button>
38
+ <DrawerClose asChild>
39
+ <Button variant="outline">Cancel</Button>
40
+ </DrawerClose>
41
+ </DrawerFooter>
42
+ ```
43
+ ### Example 2
44
+ ```tsx
45
+ // Footer with multiple action groups
46
+ <DrawerFooter>
47
+ <div className="flex gap-2">
48
+ <Button className="flex-1">Save</Button>
49
+ <Button variant="outline" className="flex-1">Save as Draft</Button>
50
+ </div>
51
+ <DrawerClose asChild>
52
+ <Button variant="ghost" size="sm">Cancel</Button>
53
+ </DrawerClose>
54
+ </DrawerFooter>
55
+ ```
56
+ ### Example 3
57
+ ```tsx
58
+ // Footer with text and actions
59
+ <DrawerFooter>
60
+ <p className="text-sm text-muted-foreground text-center">
61
+ Changes will be saved automatically
62
+ </p>
63
+ <DrawerClose asChild>
64
+ <Button>Done</Button>
65
+ </DrawerClose>
66
+ </DrawerFooter>
67
+ ```
@@ -0,0 +1,60 @@
1
+ # DrawerHeader
2
+
3
+ **Type**: component
4
+
5
+ DrawerHeader - Header section containing title and description Standardized header area for drawer content with proper spacing and responsive text alignment. Centers text for bottom/top drawers on mobile and left-aligns on larger screens. Should contain DrawerTitle and optionally DrawerDescription for accessibility compliance.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerHeader } from '@neynar/ui';
11
+
12
+ <DrawerHeader
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerHeader>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Standard header with title and description
36
+ <DrawerHeader>
37
+ <DrawerTitle>Settings</DrawerTitle>
38
+ <DrawerDescription>
39
+ Manage your account preferences and settings
40
+ </DrawerDescription>
41
+ </DrawerHeader>
42
+ ```
43
+ ### Example 2
44
+ ```tsx
45
+ // Title-only header
46
+ <DrawerHeader>
47
+ <DrawerTitle>Notifications</DrawerTitle>
48
+ </DrawerHeader>
49
+ ```
50
+ ### Example 3
51
+ ```tsx
52
+ // Custom header with additional content
53
+ <DrawerHeader className="border-b">
54
+ <DrawerTitle>Profile</DrawerTitle>
55
+ <DrawerDescription>Update your profile information</DrawerDescription>
56
+ <div className="mt-2">
57
+ <Badge variant="outline">Pro User</Badge>
58
+ </div>
59
+ </DrawerHeader>
60
+ ```
@@ -0,0 +1,40 @@
1
+ # DrawerOverlay
2
+
3
+ **Type**: component
4
+
5
+ DrawerOverlay - Semi-transparent backdrop behind the drawer Creates a semi-transparent overlay that covers the entire viewport behind the drawer content. Provides visual separation and can be clicked to close the drawer (when dismissible is true). Automatically fades in/out with smooth animations.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerOverlay } from '@neynar/ui';
11
+
12
+ <DrawerOverlay
13
+ className="value"
14
+ />
15
+ ```
16
+
17
+ ## Component Props
18
+
19
+ ### className
20
+ - **Type**: `string`
21
+ - **Required**: No
22
+ - **Description**: No description available
23
+
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Default overlay with standard opacity
29
+ <DrawerOverlay />
30
+ ```
31
+ ### Example 2
32
+ ```tsx
33
+ // Custom overlay with different opacity
34
+ <DrawerOverlay className="bg-black/30" />
35
+ ```
36
+ ### Example 3
37
+ ```tsx
38
+ // Overlay with blur effect
39
+ <DrawerOverlay className="bg-black/20 backdrop-blur-sm" />
40
+ ```
@@ -0,0 +1,42 @@
1
+ # DrawerPortal
2
+
3
+ **Type**: component
4
+
5
+ DrawerPortal - Portal component for rendering drawer outside DOM hierarchy Renders the drawer content into a different part of the DOM tree, typically document.body, to ensure proper stacking context and avoid z-index issues. Automatically used by DrawerContent but can be used manually for custom layouts.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerPortal } from '@neynar/ui';
11
+
12
+ <DrawerPortal
13
+ container={value}
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerPortal>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### container
22
+ - **Type**: `HTMLElement`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ```tsx
34
+ // Custom portal container
35
+ const portalContainer = document.getElementById('drawer-root')
36
+ <DrawerPortal container={portalContainer}>
37
+ <DrawerOverlay />
38
+ <DrawerContent>
39
+ Drawer content
40
+ </DrawerContent>
41
+ </DrawerPortal>
42
+ ```
@@ -0,0 +1,51 @@
1
+ # DrawerTitle
2
+
3
+ **Type**: component
4
+
5
+ DrawerTitle - Accessible title element for the drawer Required accessibility element that announces the drawer's purpose to screen readers and provides a clear heading for the content. Should be included in every drawer for proper accessibility compliance. Automatically styled with appropriate font weight and color.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerTitle } from '@neynar/ui';
11
+
12
+ <DrawerTitle
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerTitle>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Standard drawer title
36
+ <DrawerTitle>Account Settings</DrawerTitle>
37
+ ```
38
+ ### Example 2
39
+ ```tsx
40
+ // Custom styled title
41
+ <DrawerTitle className="text-lg font-bold text-primary">
42
+ Welcome Back!
43
+ </DrawerTitle>
44
+ ```
45
+ ### Example 3
46
+ ```tsx
47
+ // Title with dynamic content
48
+ <DrawerTitle>
49
+ {isEditing ? "Edit Profile" : "View Profile"}
50
+ </DrawerTitle>
51
+ ```
@@ -0,0 +1,44 @@
1
+ # DrawerTrigger
2
+
3
+ **Type**: component
4
+
5
+ DrawerTrigger - Interactive element that opens the drawer The trigger element that users interact with to open the drawer. By default renders as a button, but can be composed with other elements using asChild. Supports all standard button attributes and event handlers.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DrawerTrigger } from '@neynar/ui';
11
+
12
+ <DrawerTrigger
13
+ asChild={true}
14
+ >
15
+ {/* Your content here */}
16
+ </DrawerTrigger>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### asChild
22
+ - **Type**: `boolean`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Default button trigger
36
+ <DrawerTrigger>Open Drawer</DrawerTrigger>
37
+ ```
38
+ ### Example 2
39
+ ```tsx
40
+ // Composed with custom button component
41
+ <DrawerTrigger asChild>
42
+ <Button variant="outline">Open Settings</Button>
43
+ </DrawerTrigger>
44
+ ```