@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,90 @@
1
+ # DatePicker
2
+
3
+ **Type**: component
4
+
5
+ DatePicker - A comprehensive date selection component with popover calendar interface A polished date selection component that combines an accessible trigger button with a full-featured calendar popover. Built on Radix UI Popover and Calendar primitives with shadcn/ui styling, providing intuitive date selection with proper accessibility, keyboard navigation, automatic positioning, and internationalization support. The component handles both controlled and uncontrolled usage patterns, integrates seamlessly with forms and validation systems, and provides consistent date formatting using date-fns. The popover automatically positions itself to stay within viewport bounds and includes smooth animations for a polished user experience.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DatePicker } from '@neynar/ui';
11
+
12
+ <DatePicker
13
+ date={value}
14
+ onDateChange={handleDateChange}
15
+ placeholder="value"
16
+ disabled={true}
17
+ className="value"
18
+ />
19
+ ```
20
+
21
+ ## Component Props
22
+
23
+ ### date
24
+ - **Type**: `Date`
25
+ - **Required**: No
26
+ - **Description**: No description available
27
+
28
+ ### onDateChange
29
+ - **Type**: `(date: Date | undefined) => void`
30
+ - **Required**: No
31
+ - **Description**: No description available
32
+
33
+ ### placeholder
34
+ - **Type**: `string`
35
+ - **Required**: No
36
+ - **Description**: No description available
37
+
38
+ ### disabled
39
+ - **Type**: `boolean`
40
+ - **Required**: No
41
+ - **Description**: No description available
42
+
43
+ ### className
44
+ - **Type**: `string`
45
+ - **Required**: No
46
+ - **Description**: No description available
47
+
48
+ ## Examples
49
+
50
+ ### Example 1
51
+ ```tsx
52
+ // Basic controlled date picker
53
+ const [date, setDate] = useState<Date>();
54
+ <DatePicker
55
+ date={date}
56
+ onDateChange={setDate}
57
+ placeholder="Select date"
58
+ />
59
+ ```
60
+ ### Example 2
61
+ ```tsx
62
+ // Date picker for forms with validation
63
+ const [birthDate, setBirthDate] = useState<Date>();
64
+ <DatePicker
65
+ date={birthDate}
66
+ onDateChange={setBirthDate}
67
+ placeholder="Select birth date"
68
+ className="w-[280px]"
69
+ disabled={isSubmitting}
70
+ />
71
+ ```
72
+ ### Example 3
73
+ ```tsx
74
+ // Date range start/end picker
75
+ <div className="flex gap-2 items-center">
76
+ <DatePicker
77
+ date={startDate}
78
+ onDateChange={setStartDate}
79
+ placeholder="Start date"
80
+ className="w-[180px]"
81
+ />
82
+ <span>to</span>
83
+ <DatePicker
84
+ date={endDate}
85
+ onDateChange={setEndDate}
86
+ placeholder="End date"
87
+ className="w-[180px]"
88
+ />
89
+ </div>
90
+ ```
@@ -0,0 +1,61 @@
1
+ # DialogClose
2
+
3
+ **Type**: component
4
+
5
+ DialogClose - A close button that dismisses the dialog Can be placed anywhere within DialogContent to provide a close action. Typically used for custom close buttons in addition to the default X button. Automatically closes the dialog when activated and returns focus to the trigger.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogClose } from '@neynar/ui';
11
+
12
+ <DialogClose
13
+ asChild={true}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </DialogClose>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### asChild
23
+ - **Type**: `boolean`
24
+ - **Required**: No
25
+ - **Description**: No description available
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: No description available
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ## Examples
38
+
39
+ ### Example 1
40
+ ```tsx
41
+ <DialogClose asChild>
42
+ <Button variant="outline">Cancel</Button>
43
+ </DialogClose>
44
+ ```
45
+ ### Example 2
46
+ ```tsx
47
+ // Direct button without asChild
48
+ <DialogClose className="close-button">
49
+ Close Dialog
50
+ </DialogClose>
51
+ ```
52
+ ### Example 3
53
+ ```tsx
54
+ // In footer with multiple actions
55
+ <DialogFooter>
56
+ <DialogClose asChild>
57
+ <Button variant="outline">Cancel</Button>
58
+ </DialogClose>
59
+ <Button type="submit">Save</Button>
60
+ </DialogFooter>
61
+ ```
@@ -0,0 +1,128 @@
1
+ # DialogContent
2
+
3
+ **Type**: component
4
+
5
+ DialogContent - The main content container for the dialog The primary container for dialog content that automatically includes the overlay and portal. Provides the visual dialog box with animations, positioning, and focus management. Includes a close button (X) by default which can be hidden using the showCloseButton prop.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogContent } from '@neynar/ui';
11
+
12
+ <DialogContent
13
+ asChild={true}
14
+ forceMount={true}
15
+ onOpenAutoFocus={handleOpenAutoFocus}
16
+ onCloseAutoFocus={handleCloseAutoFocus}
17
+ onEscapeKeyDown={handleEscapeKeyDown}
18
+ onPointerDownOutside={handlePointerDownOutside}
19
+ onInteractOutside={handleInteractOutside}
20
+ showCloseButton={true}
21
+ className="value"
22
+ >
23
+ {/* Your content here */}
24
+ </DialogContent>
25
+ ```
26
+
27
+ ## Component Props
28
+
29
+ ### asChild
30
+ - **Type**: `boolean`
31
+ - **Required**: No
32
+ - **Description**: No description available
33
+
34
+ ### forceMount
35
+ - **Type**: `boolean`
36
+ - **Required**: No
37
+ - **Description**: No description available
38
+
39
+ ### onOpenAutoFocus
40
+ - **Type**: `(event: Event) => void`
41
+ - **Required**: No
42
+ - **Description**: No description available
43
+
44
+ ### onCloseAutoFocus
45
+ - **Type**: `(event: Event) => void`
46
+ - **Required**: No
47
+ - **Description**: No description available
48
+
49
+ ### onEscapeKeyDown
50
+ - **Type**: `(event: KeyboardEvent) => void`
51
+ - **Required**: No
52
+ - **Description**: No description available
53
+
54
+ ### onPointerDownOutside
55
+ - **Type**: `(event: PointerEvent) => void`
56
+ - **Required**: No
57
+ - **Description**: No description available
58
+
59
+ ### onInteractOutside
60
+ - **Type**: `(
61
+ event: React.FocusEvent | MouseEvent | TouchEvent,
62
+ ) => void`
63
+ - **Required**: No
64
+ - **Description**: No description available
65
+
66
+ ### showCloseButton
67
+ - **Type**: `boolean`
68
+ - **Required**: No
69
+ - **Description**: Whether to show the X close button in top-right corner (default: true)
70
+
71
+ ### className
72
+ - **Type**: `string`
73
+ - **Required**: No
74
+ - **Description**: Additional CSS classes to apply to the content container
75
+
76
+ ### children
77
+ - **Type**: `React.ReactNode`
78
+ - **Required**: No
79
+ - **Description**: Dialog content including header, body, and footer elements
80
+
81
+ ## Examples
82
+
83
+ ### Example 1
84
+ ```tsx
85
+ // Standard content with header and footer
86
+ <DialogContent>
87
+ <DialogHeader>
88
+ <DialogTitle>Dialog Title</DialogTitle>
89
+ <DialogDescription>
90
+ Detailed description of the dialog's purpose
91
+ </DialogDescription>
92
+ </DialogHeader>
93
+ <div className="py-4">
94
+ Main dialog content goes here
95
+ </div>
96
+ <DialogFooter>
97
+ <Button variant="outline">Cancel</Button>
98
+ <Button>Confirm</Button>
99
+ </DialogFooter>
100
+ </DialogContent>
101
+ ```
102
+ ### Example 2
103
+ ```tsx
104
+ // Custom sizing and scrollable content
105
+ <DialogContent className="sm:max-w-[425px] max-h-[80vh] overflow-y-auto">
106
+ <DialogHeader>
107
+ <DialogTitle>Long Content</DialogTitle>
108
+ </DialogHeader>
109
+ <div className="space-y-4">
110
+ // Long scrollable content
111
+ </div>
112
+ </DialogContent>
113
+ ```
114
+ ### Example 3
115
+ ```tsx
116
+ // Without default close button
117
+ <DialogContent showCloseButton={false}>
118
+ <DialogHeader>
119
+ <DialogTitle>Custom Close</DialogTitle>
120
+ </DialogHeader>
121
+ <div>Content without X button</div>
122
+ <DialogFooter>
123
+ <DialogClose asChild>
124
+ <Button>Close</Button>
125
+ </DialogClose>
126
+ </DialogFooter>
127
+ </DialogContent>
128
+ ```
@@ -0,0 +1,44 @@
1
+ # DialogDescription
2
+
3
+ **Type**: component
4
+
5
+ DialogDescription - Supplementary description for the dialog Provides additional context or instructions for the dialog content. Helps users understand what action they're about to take.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogDescription } from '@neynar/ui';
11
+
12
+ <DialogDescription
13
+ asChild={true}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </DialogDescription>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### asChild
23
+ - **Type**: `boolean`
24
+ - **Required**: No
25
+ - **Description**: No description available
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: No description available
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ## Examples
38
+
39
+ ```tsx
40
+ <DialogDescription>
41
+ This action cannot be undone. This will permanently delete your
42
+ account and remove your data from our servers.
43
+ </DialogDescription>
44
+ ```
@@ -0,0 +1,38 @@
1
+ # DialogFooter
2
+
3
+ **Type**: component
4
+
5
+ DialogFooter - Container for dialog action buttons Typically contains action buttons like Save, Cancel, or Submit. Automatically handles responsive layout with proper button alignment.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogFooter } from '@neynar/ui';
11
+
12
+ <DialogFooter
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </DialogFooter>
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
+ ```tsx
34
+ <DialogFooter>
35
+ <Button variant="outline">Cancel</Button>
36
+ <Button type="submit">Save changes</Button>
37
+ </DialogFooter>
38
+ ```
@@ -0,0 +1,40 @@
1
+ # DialogHeader
2
+
3
+ **Type**: component
4
+
5
+ DialogHeader - Container for dialog title and description Groups the dialog's title and description at the top of the dialog content. Provides consistent spacing and alignment for header elements.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogHeader } from '@neynar/ui';
11
+
12
+ <DialogHeader
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </DialogHeader>
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
+ ```tsx
34
+ <DialogHeader>
35
+ <DialogTitle>Edit profile</DialogTitle>
36
+ <DialogDescription>
37
+ Make changes to your profile here. Click save when you're done.
38
+ </DialogDescription>
39
+ </DialogHeader>
40
+ ```
@@ -0,0 +1,57 @@
1
+ # DialogOverlay
2
+
3
+ **Type**: component
4
+
5
+ DialogOverlay - The backdrop overlay behind the dialog Provides a semi-transparent background that covers the main content. Clicking the overlay will close the dialog by default. Features smooth fade animations using Tailwind CSS and proper z-index stacking.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogOverlay } from '@neynar/ui';
11
+
12
+ <DialogOverlay
13
+ asChild={true}
14
+ forceMount={true}
15
+ className="value"
16
+ >
17
+ {/* Your content here */}
18
+ </DialogOverlay>
19
+ ```
20
+
21
+ ## Component Props
22
+
23
+ ### asChild
24
+ - **Type**: `boolean`
25
+ - **Required**: No
26
+ - **Description**: No description available
27
+
28
+ ### forceMount
29
+ - **Type**: `boolean`
30
+ - **Required**: No
31
+ - **Description**: No description available
32
+
33
+ ### className
34
+ - **Type**: `string`
35
+ - **Required**: No
36
+ - **Description**: No description available
37
+
38
+ ### children
39
+ - **Type**: `React.ReactNode`
40
+ - **Required**: No
41
+ - **Description**: No description available
42
+
43
+ ## Examples
44
+
45
+ ### Example 1
46
+ ```tsx
47
+ // Custom overlay styling
48
+ <DialogOverlay className="bg-red-500/20 backdrop-blur-sm" />
49
+ ```
50
+ ### Example 2
51
+ ```tsx
52
+ // Typically used automatically within DialogContent
53
+ <DialogContent>
54
+ // DialogOverlay is included automatically
55
+ <DialogTitle>Dialog content</DialogTitle>
56
+ </DialogContent>
57
+ ```
@@ -0,0 +1,47 @@
1
+ # DialogPortal
2
+
3
+ **Type**: component
4
+
5
+ DialogPortal - Portal container for dialog content Renders dialog content in a React portal at the end of the document body. This ensures proper stacking context and prevents z-index issues. Rarely used directly - typically included automatically by DialogContent.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogPortal } from '@neynar/ui';
11
+
12
+ <DialogPortal
13
+ forceMount={true}
14
+ container={value}
15
+ >
16
+ {/* Your content here */}
17
+ </DialogPortal>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### forceMount
23
+ - **Type**: `boolean`
24
+ - **Required**: No
25
+ - **Description**: No description available
26
+
27
+ ### container
28
+ - **Type**: `HTMLElement`
29
+ - **Required**: No
30
+ - **Description**: No description available
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ## Examples
38
+
39
+ ```tsx
40
+ // Custom portal container
41
+ const [container, setContainer] = useState(null);
42
+ <DialogPortal container={container}>
43
+ <DialogOverlay />
44
+ <DialogContent>Portal content</DialogContent>
45
+ </DialogPortal>
46
+ <div ref={setContainer} />
47
+ ```
@@ -0,0 +1,41 @@
1
+ # DialogTitle
2
+
3
+ **Type**: component
4
+
5
+ DialogTitle - The main heading of the dialog Provides the accessible name for the dialog. Should clearly describe the dialog's purpose or the action being performed.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogTitle } from '@neynar/ui';
11
+
12
+ <DialogTitle
13
+ asChild={true}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </DialogTitle>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### asChild
23
+ - **Type**: `boolean`
24
+ - **Required**: No
25
+ - **Description**: No description available
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: No description available
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ## Examples
38
+
39
+ ```tsx
40
+ <DialogTitle>Delete Account</DialogTitle>
41
+ ```
@@ -0,0 +1,51 @@
1
+ # DialogTrigger
2
+
3
+ **Type**: component
4
+
5
+ DialogTrigger - The element that opens the dialog when clicked Typically wraps a button or other interactive element. Use asChild prop to render as the child element instead of a button. The trigger automatically receives focus management and ARIA attributes.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { DialogTrigger } from '@neynar/ui';
11
+
12
+ <DialogTrigger
13
+ asChild={true}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </DialogTrigger>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### asChild
23
+ - **Type**: `boolean`
24
+ - **Required**: No
25
+ - **Description**: No description available
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: No description available
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ## Examples
38
+
39
+ ### Example 1
40
+ ```tsx
41
+ <DialogTrigger asChild>
42
+ <Button>Open Dialog</Button>
43
+ </DialogTrigger>
44
+ ```
45
+ ### Example 2
46
+ ```tsx
47
+ // Direct button without asChild
48
+ <DialogTrigger className="custom-trigger-style">
49
+ Click to open
50
+ </DialogTrigger>
51
+ ```