@neynar/ui 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/.llm/accordion-content.llm.md +67 -0
  2. package/.llm/accordion-item.llm.md +61 -0
  3. package/.llm/accordion-trigger.llm.md +69 -0
  4. package/.llm/accordion.llm.md +88 -0
  5. package/.llm/alert-description.llm.md +78 -0
  6. package/.llm/alert-dialog-action.llm.md +51 -0
  7. package/.llm/alert-dialog-cancel.llm.md +48 -0
  8. package/.llm/alert-dialog-content.llm.md +88 -0
  9. package/.llm/alert-dialog-description.llm.md +53 -0
  10. package/.llm/alert-dialog-footer.llm.md +41 -0
  11. package/.llm/alert-dialog-header.llm.md +39 -0
  12. package/.llm/alert-dialog-overlay.llm.md +44 -0
  13. package/.llm/alert-dialog-portal.llm.md +41 -0
  14. package/.llm/alert-dialog-title.llm.md +46 -0
  15. package/.llm/alert-dialog-trigger.llm.md +40 -0
  16. package/.llm/alert-dialog.llm.md +80 -0
  17. package/.llm/alert-title.llm.md +48 -0
  18. package/.llm/alert.llm.md +92 -0
  19. package/.llm/aspect-ratio.llm.md +41 -0
  20. package/.llm/avatar-fallback.llm.md +41 -0
  21. package/.llm/avatar-image.llm.md +48 -0
  22. package/.llm/avatar.llm.md +35 -0
  23. package/.llm/badge.llm.md +117 -0
  24. package/.llm/blockquote.llm.md +55 -0
  25. package/.llm/body-text-large.llm.md +49 -0
  26. package/.llm/body-text-small.llm.md +49 -0
  27. package/.llm/body-text.llm.md +52 -0
  28. package/.llm/breadcrumb-ellipsis.llm.md +73 -0
  29. package/.llm/breadcrumb-item.llm.md +53 -0
  30. package/.llm/breadcrumb-link.llm.md +84 -0
  31. package/.llm/breadcrumb-list.llm.md +54 -0
  32. package/.llm/breadcrumb-page.llm.md +52 -0
  33. package/.llm/breadcrumb-separator.llm.md +60 -0
  34. package/.llm/breadcrumb.llm.md +110 -0
  35. package/.llm/button-group-separator.llm.md +53 -0
  36. package/.llm/button-group-text.llm.md +56 -0
  37. package/.llm/button-group.llm.md +81 -0
  38. package/.llm/button.llm.md +281 -0
  39. package/.llm/calendar-day-button.llm.md +57 -0
  40. package/.llm/calendar.llm.md +340 -0
  41. package/.llm/caption.llm.md +48 -0
  42. package/.llm/card-action.llm.md +64 -0
  43. package/.llm/card-content.llm.md +48 -0
  44. package/.llm/card-description.llm.md +46 -0
  45. package/.llm/card-footer.llm.md +56 -0
  46. package/.llm/card-header.llm.md +53 -0
  47. package/.llm/card-title.llm.md +43 -0
  48. package/.llm/card.llm.md +100 -0
  49. package/.llm/carousel-content.llm.md +77 -0
  50. package/.llm/carousel-item.llm.md +96 -0
  51. package/.llm/carousel-next.llm.md +95 -0
  52. package/.llm/carousel-previous.llm.md +95 -0
  53. package/.llm/carousel.llm.md +211 -0
  54. package/.llm/chart-config.llm.md +71 -0
  55. package/.llm/chart-container.llm.md +148 -0
  56. package/.llm/chart-legend-content.llm.md +85 -0
  57. package/.llm/chart-legend.llm.md +144 -0
  58. package/.llm/chart-style.llm.md +28 -0
  59. package/.llm/chart-tooltip-content.llm.md +149 -0
  60. package/.llm/chart-tooltip.llm.md +184 -0
  61. package/.llm/checkbox.llm.md +100 -0
  62. package/.llm/cn.llm.md +46 -0
  63. package/.llm/code.llm.md +45 -0
  64. package/.llm/collapsible-content.llm.md +109 -0
  65. package/.llm/collapsible-trigger.llm.md +75 -0
  66. package/.llm/collapsible.llm.md +109 -0
  67. package/.llm/combobox-option.llm.md +53 -0
  68. package/.llm/combobox.llm.md +208 -0
  69. package/.llm/command-dialog.llm.md +112 -0
  70. package/.llm/command-empty.llm.md +63 -0
  71. package/.llm/command-group.llm.md +83 -0
  72. package/.llm/command-input.llm.md +82 -0
  73. package/.llm/command-item.llm.md +97 -0
  74. package/.llm/command-list.llm.md +53 -0
  75. package/.llm/command-loading.llm.md +48 -0
  76. package/.llm/command-separator.llm.md +44 -0
  77. package/.llm/command-shortcut.llm.md +63 -0
  78. package/.llm/command.llm.md +147 -0
  79. package/.llm/container.llm.md +236 -0
  80. package/.llm/context-menu-checkbox-item.llm.md +97 -0
  81. package/.llm/context-menu-content.llm.md +91 -0
  82. package/.llm/context-menu-group.llm.md +61 -0
  83. package/.llm/context-menu-item.llm.md +94 -0
  84. package/.llm/context-menu-label.llm.md +60 -0
  85. package/.llm/context-menu-portal.llm.md +49 -0
  86. package/.llm/context-menu-radio-group.llm.md +66 -0
  87. package/.llm/context-menu-radio-item.llm.md +76 -0
  88. package/.llm/context-menu-separator.llm.md +51 -0
  89. package/.llm/context-menu-shortcut.llm.md +57 -0
  90. package/.llm/context-menu-sub-content.llm.md +90 -0
  91. package/.llm/context-menu-sub-trigger.llm.md +73 -0
  92. package/.llm/context-menu-sub.llm.md +61 -0
  93. package/.llm/context-menu-trigger.llm.md +53 -0
  94. package/.llm/context-menu.llm.md +103 -0
  95. package/.llm/date-picker.llm.md +90 -0
  96. package/.llm/dialog-close.llm.md +61 -0
  97. package/.llm/dialog-content.llm.md +128 -0
  98. package/.llm/dialog-description.llm.md +44 -0
  99. package/.llm/dialog-footer.llm.md +38 -0
  100. package/.llm/dialog-header.llm.md +40 -0
  101. package/.llm/dialog-overlay.llm.md +57 -0
  102. package/.llm/dialog-portal.llm.md +47 -0
  103. package/.llm/dialog-title.llm.md +41 -0
  104. package/.llm/dialog-trigger.llm.md +51 -0
  105. package/.llm/dialog.llm.md +113 -0
  106. package/.llm/drawer-close.llm.md +53 -0
  107. package/.llm/drawer-content.llm.md +58 -0
  108. package/.llm/drawer-description.llm.md +54 -0
  109. package/.llm/drawer-footer.llm.md +67 -0
  110. package/.llm/drawer-header.llm.md +60 -0
  111. package/.llm/drawer-overlay.llm.md +40 -0
  112. package/.llm/drawer-portal.llm.md +42 -0
  113. package/.llm/drawer-title.llm.md +51 -0
  114. package/.llm/drawer-trigger.llm.md +44 -0
  115. package/.llm/drawer.llm.md +194 -0
  116. package/.llm/dropdown-menu-checkbox-item.llm.md +111 -0
  117. package/.llm/dropdown-menu-content.llm.md +109 -0
  118. package/.llm/dropdown-menu-group.llm.md +38 -0
  119. package/.llm/dropdown-menu-item.llm.md +94 -0
  120. package/.llm/dropdown-menu-label.llm.md +66 -0
  121. package/.llm/dropdown-menu-portal.llm.md +32 -0
  122. package/.llm/dropdown-menu-radio-group.llm.md +73 -0
  123. package/.llm/dropdown-menu-radio-item.llm.md +92 -0
  124. package/.llm/dropdown-menu-separator.llm.md +55 -0
  125. package/.llm/dropdown-menu-shortcut.llm.md +74 -0
  126. package/.llm/dropdown-menu-sub-content.llm.md +80 -0
  127. package/.llm/dropdown-menu-sub-trigger.llm.md +84 -0
  128. package/.llm/dropdown-menu-sub.llm.md +74 -0
  129. package/.llm/dropdown-menu-trigger.llm.md +48 -0
  130. package/.llm/dropdown-menu.llm.md +120 -0
  131. package/.llm/empty-content.llm.md +103 -0
  132. package/.llm/empty-description.llm.md +70 -0
  133. package/.llm/empty-header.llm.md +64 -0
  134. package/.llm/empty-media.llm.md +81 -0
  135. package/.llm/empty-state.llm.md +174 -0
  136. package/.llm/empty-title.llm.md +54 -0
  137. package/.llm/empty.llm.md +158 -0
  138. package/.llm/field-content.llm.md +28 -0
  139. package/.llm/field-description.llm.md +28 -0
  140. package/.llm/field-error.llm.md +41 -0
  141. package/.llm/field-group.llm.md +84 -0
  142. package/.llm/field-label.llm.md +28 -0
  143. package/.llm/field-legend.llm.md +77 -0
  144. package/.llm/field-separator.llm.md +35 -0
  145. package/.llm/field-set.llm.md +80 -0
  146. package/.llm/field-title.llm.md +28 -0
  147. package/.llm/field.llm.md +35 -0
  148. package/.llm/hover-card-content.llm.md +167 -0
  149. package/.llm/hover-card-trigger.llm.md +65 -0
  150. package/.llm/hover-card.llm.md +121 -0
  151. package/.llm/input-group-addon.llm.md +91 -0
  152. package/.llm/input-group-button.llm.md +120 -0
  153. package/.llm/input-group-input.llm.md +145 -0
  154. package/.llm/input-group-text.llm.md +75 -0
  155. package/.llm/input-group-textarea.llm.md +157 -0
  156. package/.llm/input-group.llm.md +108 -0
  157. package/.llm/input.llm.md +319 -0
  158. package/.llm/item-actions.llm.md +77 -0
  159. package/.llm/item-content.llm.md +73 -0
  160. package/.llm/item-description.llm.md +61 -0
  161. package/.llm/item-footer.llm.md +68 -0
  162. package/.llm/item-group.llm.md +73 -0
  163. package/.llm/item-header.llm.md +66 -0
  164. package/.llm/item-media.llm.md +75 -0
  165. package/.llm/item-separator.llm.md +80 -0
  166. package/.llm/item-title.llm.md +59 -0
  167. package/.llm/item.llm.md +115 -0
  168. package/.llm/kbd-group.llm.md +71 -0
  169. package/.llm/kbd.llm.md +71 -0
  170. package/.llm/label.llm.md +145 -0
  171. package/.llm/menubar-checkbox-item.llm.md +66 -0
  172. package/.llm/menubar-content.llm.md +128 -0
  173. package/.llm/menubar-group.llm.md +40 -0
  174. package/.llm/menubar-item.llm.md +62 -0
  175. package/.llm/menubar-label.llm.md +40 -0
  176. package/.llm/menubar-menu.llm.md +32 -0
  177. package/.llm/menubar-portal.llm.md +38 -0
  178. package/.llm/menubar-radio-group.llm.md +39 -0
  179. package/.llm/menubar-radio-item.llm.md +59 -0
  180. package/.llm/menubar-separator.llm.md +35 -0
  181. package/.llm/menubar-shortcut.llm.md +37 -0
  182. package/.llm/menubar-sub-content.llm.md +127 -0
  183. package/.llm/menubar-sub-trigger.llm.md +51 -0
  184. package/.llm/menubar-sub.llm.md +53 -0
  185. package/.llm/menubar-trigger.llm.md +37 -0
  186. package/.llm/menubar.llm.md +115 -0
  187. package/.llm/navigation-menu-content.llm.md +116 -0
  188. package/.llm/navigation-menu-indicator.llm.md +68 -0
  189. package/.llm/navigation-menu-item.llm.md +62 -0
  190. package/.llm/navigation-menu-link.llm.md +109 -0
  191. package/.llm/navigation-menu-list.llm.md +52 -0
  192. package/.llm/navigation-menu-trigger-style.llm.md +22 -0
  193. package/.llm/navigation-menu-trigger.llm.md +57 -0
  194. package/.llm/navigation-menu-viewport.llm.md +51 -0
  195. package/.llm/navigation-menu.llm.md +184 -0
  196. package/.llm/overline.llm.md +51 -0
  197. package/.llm/page-title.llm.md +52 -0
  198. package/.llm/pagination-content.llm.md +60 -0
  199. package/.llm/pagination-ellipsis.llm.md +107 -0
  200. package/.llm/pagination-item.llm.md +59 -0
  201. package/.llm/pagination-link.llm.md +150 -0
  202. package/.llm/pagination-next.llm.md +115 -0
  203. package/.llm/pagination-previous.llm.md +115 -0
  204. package/.llm/pagination.llm.md +190 -0
  205. package/.llm/popover-anchor.llm.md +53 -0
  206. package/.llm/popover-content.llm.md +109 -0
  207. package/.llm/popover-trigger.llm.md +54 -0
  208. package/.llm/popover.llm.md +116 -0
  209. package/.llm/progress.llm.md +76 -0
  210. package/.llm/radio-group-indicator.llm.md +28 -0
  211. package/.llm/radio-group-item.llm.md +40 -0
  212. package/.llm/radio-group.llm.md +76 -0
  213. package/.llm/resizable-handle.llm.md +156 -0
  214. package/.llm/resizable-panel-group.llm.md +149 -0
  215. package/.llm/resizable-panel.llm.md +157 -0
  216. package/.llm/scroll-area-corner.llm.md +41 -0
  217. package/.llm/scroll-area-thumb.llm.md +39 -0
  218. package/.llm/scroll-area-viewport.llm.md +60 -0
  219. package/.llm/scroll-area.llm.md +125 -0
  220. package/.llm/scroll-bar.llm.md +78 -0
  221. package/.llm/sdk-items-registry.json +2984 -0
  222. package/.llm/section-title.llm.md +48 -0
  223. package/.llm/select-content.llm.md +139 -0
  224. package/.llm/select-group.llm.md +60 -0
  225. package/.llm/select-item.llm.md +75 -0
  226. package/.llm/select-label.llm.md +62 -0
  227. package/.llm/select-scroll-down-button.llm.md +45 -0
  228. package/.llm/select-scroll-up-button.llm.md +45 -0
  229. package/.llm/select-separator.llm.md +59 -0
  230. package/.llm/select-trigger.llm.md +66 -0
  231. package/.llm/select-value.llm.md +67 -0
  232. package/.llm/select.llm.md +159 -0
  233. package/.llm/separator.llm.md +129 -0
  234. package/.llm/sheet-close.llm.md +49 -0
  235. package/.llm/sheet-content.llm.md +115 -0
  236. package/.llm/sheet-description.llm.md +62 -0
  237. package/.llm/sheet-footer.llm.md +64 -0
  238. package/.llm/sheet-header.llm.md +52 -0
  239. package/.llm/sheet-title.llm.md +53 -0
  240. package/.llm/sheet-trigger.llm.md +46 -0
  241. package/.llm/sheet.llm.md +126 -0
  242. package/.llm/sidebar-content.llm.md +63 -0
  243. package/.llm/sidebar-footer.llm.md +50 -0
  244. package/.llm/sidebar-group-action.llm.md +60 -0
  245. package/.llm/sidebar-group-content.llm.md +64 -0
  246. package/.llm/sidebar-group-label.llm.md +53 -0
  247. package/.llm/sidebar-group.llm.md +56 -0
  248. package/.llm/sidebar-header.llm.md +67 -0
  249. package/.llm/sidebar-input.llm.md +50 -0
  250. package/.llm/sidebar-inset.llm.md +52 -0
  251. package/.llm/sidebar-menu-action.llm.md +84 -0
  252. package/.llm/sidebar-menu-badge.llm.md +60 -0
  253. package/.llm/sidebar-menu-button.llm.md +103 -0
  254. package/.llm/sidebar-menu-item.llm.md +75 -0
  255. package/.llm/sidebar-menu-skeleton.llm.md +76 -0
  256. package/.llm/sidebar-menu-sub-button.llm.md +85 -0
  257. package/.llm/sidebar-menu-sub-item.llm.md +54 -0
  258. package/.llm/sidebar-menu-sub.llm.md +74 -0
  259. package/.llm/sidebar-menu.llm.md +65 -0
  260. package/.llm/sidebar-provider.llm.md +79 -0
  261. package/.llm/sidebar-rail.llm.md +34 -0
  262. package/.llm/sidebar-separator.llm.md +57 -0
  263. package/.llm/sidebar-trigger.llm.md +49 -0
  264. package/.llm/sidebar.llm.md +129 -0
  265. package/.llm/skeleton.llm.md +134 -0
  266. package/.llm/slider.llm.md +173 -0
  267. package/.llm/spinner.llm.md +182 -0
  268. package/.llm/stack.llm.md +28 -0
  269. package/.llm/subsection-title.llm.md +46 -0
  270. package/.llm/switch.llm.md +76 -0
  271. package/.llm/table-body.llm.md +36 -0
  272. package/.llm/table-caption.llm.md +48 -0
  273. package/.llm/table-cell.llm.md +53 -0
  274. package/.llm/table-footer.llm.md +41 -0
  275. package/.llm/table-head.llm.md +69 -0
  276. package/.llm/table-header.llm.md +41 -0
  277. package/.llm/table-row.llm.md +42 -0
  278. package/.llm/table.llm.md +123 -0
  279. package/.llm/tabs-content.llm.md +47 -0
  280. package/.llm/tabs-list.llm.md +41 -0
  281. package/.llm/tabs-trigger.llm.md +47 -0
  282. package/.llm/tabs.llm.md +71 -0
  283. package/.llm/text-field.llm.md +327 -0
  284. package/.llm/textarea.llm.md +311 -0
  285. package/.llm/theme-preference.llm.md +25 -0
  286. package/.llm/theme-toggle.llm.md +57 -0
  287. package/.llm/theme.llm.md +14 -0
  288. package/.llm/toaster.llm.md +193 -0
  289. package/.llm/toggle-group-item.llm.md +59 -0
  290. package/.llm/toggle-group.llm.md +101 -0
  291. package/.llm/toggle.llm.md +40 -0
  292. package/.llm/tooltip-content.llm.md +185 -0
  293. package/.llm/tooltip-provider.llm.md +68 -0
  294. package/.llm/tooltip-trigger.llm.md +70 -0
  295. package/.llm/tooltip.llm.md +129 -0
  296. package/.llm/use-carousel.llm.md +55 -0
  297. package/.llm/use-command-state.llm.md +32 -0
  298. package/.llm/use-is-mobile.llm.md +73 -0
  299. package/.llm/use-sidebar.llm.md +61 -0
  300. package/dist/components/ui/scroll-area.d.ts +5 -5
  301. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  302. package/dist/components/ui/stack.d.ts.map +1 -1
  303. package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -1
  304. package/dist/components/ui/stories/typography.stories.d.ts +8 -108
  305. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -1
  306. package/dist/components/ui/theme-toggle.d.ts +0 -3
  307. package/dist/components/ui/theme-toggle.d.ts.map +1 -1
  308. package/dist/components/ui/theme.d.ts.map +1 -1
  309. package/dist/components/ui/typography.d.ts +211 -474
  310. package/dist/components/ui/typography.d.ts.map +1 -1
  311. package/dist/index.js +5160 -9875
  312. package/dist/index.js.map +1 -1
  313. package/dist/tsconfig.tsbuildinfo +1 -1
  314. package/package.json +2 -2
  315. package/src/components/ui/stack.tsx +3 -1
  316. package/src/components/ui/stories/typography.stories.tsx +261 -1512
  317. package/src/components/ui/theme-toggle.tsx +1 -3
  318. package/src/components/ui/theme.tsx +6 -1
  319. package/src/components/ui/typography.tsx +416 -1136
  320. package/src/styles/globals.css +57 -106
@@ -0,0 +1,116 @@
1
+ # NavigationMenuContent
2
+
3
+ **Type**: component
4
+
5
+ NavigationMenuContent - Dropdown content panel for navigation items The collapsible content container that appears when a NavigationMenuTrigger is activated. Supports smooth enter/exit animations, flexible positioning (with or without viewport), and comprehensive interaction handling. The content automatically manages focus and provides multiple ways to dismiss the dropdown (Escape key, outside clicks, etc.).
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { NavigationMenuContent } from '@neynar/ui';
11
+
12
+ <NavigationMenuContent
13
+ asChild={true}
14
+ forceMount={true}
15
+ onEscapeKeyDown={handleEscapeKeyDown}
16
+ onPointerDownOutside={handlePointerDownOutside}
17
+ onFocusOutside={handleFocusOutside}
18
+ onInteractOutside={handleInteractOutside}
19
+ />
20
+ ```
21
+
22
+ ## Component Props
23
+
24
+ ### asChild
25
+ - **Type**: `boolean`
26
+ - **Required**: No
27
+ - **Description**: No description available
28
+
29
+ ### forceMount
30
+ - **Type**: `boolean`
31
+ - **Required**: No
32
+ - **Description**: No description available
33
+
34
+ ### onEscapeKeyDown
35
+ - **Type**: `(event: KeyboardEvent) => void`
36
+ - **Required**: No
37
+ - **Description**: No description available
38
+
39
+ ### onPointerDownOutside
40
+ - **Type**: `(event: PointerEvent) => void`
41
+ - **Required**: No
42
+ - **Description**: No description available
43
+
44
+ ### onFocusOutside
45
+ - **Type**: `(event: FocusEvent) => void`
46
+ - **Required**: No
47
+ - **Description**: No description available
48
+
49
+ ### onInteractOutside
50
+ - **Type**: `(event: PointerEvent | FocusEvent) => void`
51
+ - **Required**: No
52
+ - **Description**: No description available
53
+
54
+ ## Examples
55
+
56
+ ### Example 1
57
+ ```tsx
58
+ // Grid layout with navigation links
59
+ <NavigationMenuContent>
60
+ <div className="grid gap-3 p-6 w-[500px] grid-cols-2">
61
+ <NavigationMenuLink href="/products/analytics">
62
+ <div className="text-sm font-medium">Analytics</div>
63
+ <p className="text-sm text-muted-foreground">Track your performance</p>
64
+ </NavigationMenuLink>
65
+ <NavigationMenuLink href="/products/dashboard">
66
+ <div className="text-sm font-medium">Dashboard</div>
67
+ <p className="text-sm text-muted-foreground">Manage your data</p>
68
+ </NavigationMenuLink>
69
+ </div>
70
+ </NavigationMenuContent>
71
+ ```
72
+ ### Example 2
73
+ ```tsx
74
+ // Complex multi-column layout
75
+ <NavigationMenuContent>
76
+ <div className="grid gap-6 p-8 w-[800px] grid-cols-3">
77
+ <div className="space-y-2">
78
+ <h4 className="text-sm font-medium">Features</h4>
79
+ <NavigationMenuLink href="/features/auth">Authentication</NavigationMenuLink>
80
+ <NavigationMenuLink href="/features/api">API Management</NavigationMenuLink>
81
+ </div>
82
+ <div className="space-y-2">
83
+ <h4 className="text-sm font-medium">Tools</h4>
84
+ <NavigationMenuLink href="/tools/cli">Command Line</NavigationMenuLink>
85
+ <NavigationMenuLink href="/tools/sdk">SDK</NavigationMenuLink>
86
+ </div>
87
+ </div>
88
+ </NavigationMenuContent>
89
+ ```
90
+ ### Example 3
91
+ ```tsx
92
+ // With custom interaction handlers
93
+ <NavigationMenuContent
94
+ onEscapeKeyDown={(e) => {
95
+ console.log('Escape pressed');
96
+ // Don't prevent default to allow normal closing behavior
97
+ }}
98
+ onPointerDownOutside={(e) => {
99
+ console.log('Clicked outside');
100
+ // e.preventDefault() would prevent closing
101
+ }}
102
+ >
103
+ <div className="p-6 w-[300px]">
104
+ <NavigationMenuLink href="/help">Help Center</NavigationMenuLink>
105
+ </div>
106
+ </NavigationMenuContent>
107
+ ```
108
+ ### Example 4
109
+ ```tsx
110
+ // Force mounted for animation control
111
+ <NavigationMenuContent forceMount>
112
+ <div className="p-4 w-[250px] animate-in slide-in-from-top">
113
+ <NavigationMenuLink href="/docs">Documentation</NavigationMenuLink>
114
+ </div>
115
+ </NavigationMenuContent>
116
+ ```
@@ -0,0 +1,68 @@
1
+ # NavigationMenuIndicator
2
+
3
+ **Type**: component
4
+
5
+ NavigationMenuIndicator - Animated visual indicator for active menu items An optional visual indicator that displays an animated arrow pointing to the currently active or focused navigation menu item. Automatically transitions between positions as users navigate through menu items, providing clear visual feedback about the current selection. The indicator appears below the active item and includes smooth fade and position animations.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { NavigationMenuIndicator } from '@neynar/ui';
11
+
12
+ <NavigationMenuIndicator
13
+ asChild={true}
14
+ forceMount={true}
15
+ />
16
+ ```
17
+
18
+ ## Component Props
19
+
20
+ ### asChild
21
+ - **Type**: `boolean`
22
+ - **Required**: No
23
+ - **Description**: No description available
24
+
25
+ ### forceMount
26
+ - **Type**: `boolean`
27
+ - **Required**: No
28
+ - **Description**: No description available
29
+
30
+ ## Examples
31
+
32
+ ### Example 1
33
+ ```tsx
34
+ // Basic usage within NavigationMenuList
35
+ <NavigationMenuList>
36
+ <NavigationMenuItem value="home">
37
+ <NavigationMenuTrigger>Home</NavigationMenuTrigger>
38
+ <NavigationMenuContent>
39
+ <NavigationMenuLink href="/">Homepage</NavigationMenuLink>
40
+ </NavigationMenuContent>
41
+ </NavigationMenuItem>
42
+ <NavigationMenuItem value="about">
43
+ <NavigationMenuTrigger>About</NavigationMenuTrigger>
44
+ <NavigationMenuContent>
45
+ <NavigationMenuLink href="/about">About Us</NavigationMenuLink>
46
+ </NavigationMenuContent>
47
+ </NavigationMenuItem>
48
+ <NavigationMenuIndicator className="data-[state=visible]:bg-primary" />
49
+ </NavigationMenuList>
50
+ ```
51
+ ### Example 2
52
+ ```tsx
53
+ // Custom styled indicator
54
+ <NavigationMenuIndicator className="
55
+ data-[state=visible]:animate-pulse
56
+ data-[state=visible]:bg-gradient-to-r
57
+ data-[state=visible]:from-blue-500
58
+ data-[state=visible]:to-purple-500
59
+ " />
60
+ ```
61
+ ### Example 3
62
+ ```tsx
63
+ // Force mounted indicator for custom animations
64
+ <NavigationMenuIndicator
65
+ forceMount
66
+ className="custom-indicator-animation"
67
+ />
68
+ ```
@@ -0,0 +1,62 @@
1
+ # NavigationMenuItem
2
+
3
+ **Type**: component
4
+
5
+ NavigationMenuItem - Individual navigation menu item container A list item container that wraps a single navigation element within a NavigationMenuList. Each item can contain either a NavigationMenuTrigger with NavigationMenuContent for dropdown functionality, or a NavigationMenuLink for direct navigation. The value prop is used for controlled state management and active item tracking.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { NavigationMenuItem } from '@neynar/ui';
11
+
12
+ <NavigationMenuItem
13
+ value="value"
14
+ asChild={true}
15
+ />
16
+ ```
17
+
18
+ ## Component Props
19
+
20
+ ### value
21
+ - **Type**: `string`
22
+ - **Required**: No
23
+ - **Description**: No description available
24
+
25
+ ### asChild
26
+ - **Type**: `boolean`
27
+ - **Required**: No
28
+ - **Description**: No description available
29
+
30
+ ## Examples
31
+
32
+ ### Example 1
33
+ ```tsx
34
+ // Dropdown navigation item with controlled value
35
+ <NavigationMenuItem value="products">
36
+ <NavigationMenuTrigger>Products</NavigationMenuTrigger>
37
+ <NavigationMenuContent>
38
+ <div className="grid gap-3 p-6 w-[400px] grid-cols-2">
39
+ <NavigationMenuLink href="/products/analytics">Analytics</NavigationMenuLink>
40
+ <NavigationMenuLink href="/products/dashboard">Dashboard</NavigationMenuLink>
41
+ </div>
42
+ </NavigationMenuContent>
43
+ </NavigationMenuItem>
44
+ ```
45
+ ### Example 2
46
+ ```tsx
47
+ // Simple navigation link item
48
+ <NavigationMenuItem>
49
+ <NavigationMenuLink href="/contact" className={navigationMenuTriggerStyle()}>
50
+ Contact Us
51
+ </NavigationMenuLink>
52
+ </NavigationMenuItem>
53
+ ```
54
+ ### Example 3
55
+ ```tsx
56
+ // With custom container element using asChild
57
+ <NavigationMenuItem asChild>
58
+ <div className="custom-menu-item">
59
+ <NavigationMenuLink href="/about">About</NavigationMenuLink>
60
+ </div>
61
+ </NavigationMenuItem>
62
+ ```
@@ -0,0 +1,109 @@
1
+ # NavigationMenuLink
2
+
3
+ **Type**: component
4
+
5
+ NavigationMenuLink - Styled link component for navigation menus A versatile link component designed specifically for navigation menus with comprehensive styling and state management. Supports active states, hover/focus effects, and seamless framework integration through the asChild pattern. Can be used both within dropdown content and as direct navigation items. Features proper keyboard navigation and accessibility support.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { NavigationMenuLink } from '@neynar/ui';
11
+
12
+ <NavigationMenuLink
13
+ asChild={true}
14
+ active={true}
15
+ onSelect={handleSelect}
16
+ />
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### asChild
22
+ - **Type**: `boolean`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### active
27
+ - **Type**: `boolean`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ### onSelect
32
+ - **Type**: `(event: Event) => void`
33
+ - **Required**: No
34
+ - **Description**: No description available
35
+
36
+ ## Examples
37
+
38
+ ### Example 1
39
+ ```tsx
40
+ // Basic navigation link
41
+ <NavigationMenuLink href="/about">About Us</NavigationMenuLink>
42
+ ```
43
+ ### Example 2
44
+ ```tsx
45
+ // Active link with current page styling
46
+ <NavigationMenuLink href="/dashboard" active>
47
+ Dashboard
48
+ </NavigationMenuLink>
49
+ ```
50
+ ### Example 3
51
+ ```tsx
52
+ // Rich content link in dropdown with description
53
+ <NavigationMenuLink href="/features/analytics">
54
+ <div className="text-sm font-medium leading-none">Analytics</div>
55
+ <p className="text-sm text-muted-foreground mt-1">
56
+ View detailed insights and performance metrics
57
+ </p>
58
+ </NavigationMenuLink>
59
+ ```
60
+ ### Example 4
61
+ ```tsx
62
+ // With Next.js Link using asChild pattern
63
+ <NavigationMenuLink asChild>
64
+ <Link href="/products" prefetch={false}>
65
+ Products
66
+ </Link>
67
+ </NavigationMenuLink>
68
+ ```
69
+ ### Example 5
70
+ ```tsx
71
+ // With Remix Link using asChild pattern
72
+ <NavigationMenuLink asChild>
73
+ <RemixLink to="/docs" prefetch="intent">
74
+ Documentation
75
+ </RemixLink>
76
+ </NavigationMenuLink>
77
+ ```
78
+ ### Example 6
79
+ ```tsx
80
+ // Direct navigation with trigger button styling
81
+ <NavigationMenuLink
82
+ href="/contact"
83
+ className={navigationMenuTriggerStyle()}
84
+ >
85
+ Contact Us
86
+ </NavigationMenuLink>
87
+ ```
88
+ ### Example 7
89
+ ```tsx
90
+ // With custom selection handler
91
+ <NavigationMenuLink
92
+ href="/logout"
93
+ onSelect={(event) => {
94
+ event.preventDefault();
95
+ handleLogout();
96
+ }}
97
+ >
98
+ Sign Out
99
+ </NavigationMenuLink>
100
+ ```
101
+ ### Example 8
102
+ ```tsx
103
+ // External link with icon
104
+ <NavigationMenuLink href="https://github.com" target="_blank" rel="noopener">
105
+ <GitHubIcon className="size-4" />
106
+ GitHub
107
+ <ExternalLinkIcon className="size-3 ml-auto" />
108
+ </NavigationMenuLink>
109
+ ```
@@ -0,0 +1,52 @@
1
+ # NavigationMenuList
2
+
3
+ **Type**: component
4
+
5
+ NavigationMenuList - Container for navigation menu items The list container that groups NavigationMenuItem components within a NavigationMenu. Renders as an unordered list (ul) by default and provides the foundational layout structure for the navigation menu. Supports both horizontal and vertical orientations based on the parent NavigationMenu orientation prop.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { NavigationMenuList } from '@neynar/ui';
11
+
12
+ <NavigationMenuList
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
+ <NavigationMenuList>
29
+ <NavigationMenuItem value="products">
30
+ <NavigationMenuTrigger>Products</NavigationMenuTrigger>
31
+ <NavigationMenuContent>
32
+ <NavigationMenuLink href="/products">All Products</NavigationMenuLink>
33
+ </NavigationMenuContent>
34
+ </NavigationMenuItem>
35
+ <NavigationMenuItem>
36
+ <NavigationMenuLink href="/about" className={navigationMenuTriggerStyle()}>
37
+ About
38
+ </NavigationMenuLink>
39
+ </NavigationMenuItem>
40
+ </NavigationMenuList>
41
+ ```
42
+ ### Example 2
43
+ ```tsx
44
+ // Custom list element using asChild
45
+ <NavigationMenuList asChild>
46
+ <div className="custom-nav-container">
47
+ <NavigationMenuItem>
48
+ <NavigationMenuLink href="/home">Home</NavigationMenuLink>
49
+ </NavigationMenuItem>
50
+ </div>
51
+ </NavigationMenuList>
52
+ ```
@@ -0,0 +1,22 @@
1
+ # navigationMenuTriggerStyle
2
+
3
+ **Type**: function
4
+
5
+ Navigation menu trigger styling configuration using CVA (Class Variance Authority) Provides consistent button styling for navigation triggers with interactive states. Can be applied to NavigationMenuLink components for uniform trigger-style appearance.
6
+
7
+ ## API Surface
8
+
9
+ ```typescript
10
+ import { navigationMenuTriggerStyle } from '@neynar/ui';
11
+
12
+ export const navigationMenuTriggerStyle
13
+ ```
14
+
15
+ ## Examples
16
+
17
+ ```tsx
18
+ // Apply to NavigationMenuLink for consistent button styling
19
+ <NavigationMenuLink href="/docs" className={navigationMenuTriggerStyle()}>
20
+ Documentation
21
+ </NavigationMenuLink>
22
+ ```
@@ -0,0 +1,57 @@
1
+ # NavigationMenuTrigger
2
+
3
+ **Type**: component
4
+
5
+ NavigationMenuTrigger - Interactive button that opens dropdown navigation content A button component that toggles NavigationMenuContent visibility when activated. Automatically includes a chevron down icon that rotates when the dropdown is open. Features comprehensive keyboard and mouse interaction support with proper ARIA state management. The asChild prop allows composition with custom button components.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { NavigationMenuTrigger } from '@neynar/ui';
11
+
12
+ <NavigationMenuTrigger
13
+ asChild={true}
14
+ >
15
+ {/* Your content here */}
16
+ </NavigationMenuTrigger>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### asChild
22
+ - **Type**: `boolean`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ## Examples
27
+
28
+ ### Example 1
29
+ ```tsx
30
+ // Basic trigger with dropdown content
31
+ <NavigationMenuItem value="products">
32
+ <NavigationMenuTrigger>Products</NavigationMenuTrigger>
33
+ <NavigationMenuContent>
34
+ <div className="p-6 w-[400px]">
35
+ <NavigationMenuLink href="/products/analytics">Analytics</NavigationMenuLink>
36
+ <NavigationMenuLink href="/products/dashboard">Dashboard</NavigationMenuLink>
37
+ </div>
38
+ </NavigationMenuContent>
39
+ </NavigationMenuItem>
40
+ ```
41
+ ### Example 2
42
+ ```tsx
43
+ // Custom trigger styling with asChild
44
+ <NavigationMenuTrigger asChild>
45
+ <Button variant="outline" size="lg">
46
+ Custom Features Button
47
+ </Button>
48
+ </NavigationMenuTrigger>
49
+ ```
50
+ ### Example 3
51
+ ```tsx
52
+ // Trigger with additional icons
53
+ <NavigationMenuTrigger className="gap-2">
54
+ <StarIcon className="size-4" />
55
+ Featured Items
56
+ </NavigationMenuTrigger>
57
+ ```
@@ -0,0 +1,51 @@
1
+ # NavigationMenuViewport
2
+
3
+ **Type**: component
4
+
5
+ NavigationMenuViewport - Positioned container for dropdown content The viewport container that manages positioning, sizing, and animation of NavigationMenuContent panels. It automatically calculates dimensions based on content size and provides smooth enter/exit animations. The viewport uses CSS custom properties for dynamic sizing and positioning. Only rendered when the viewport prop is true (default) on NavigationMenu.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { NavigationMenuViewport } from '@neynar/ui';
11
+
12
+ <NavigationMenuViewport
13
+ asChild={true}
14
+ forceMount={true}
15
+ />
16
+ ```
17
+
18
+ ## Component Props
19
+
20
+ ### asChild
21
+ - **Type**: `boolean`
22
+ - **Required**: No
23
+ - **Description**: No description available
24
+
25
+ ### forceMount
26
+ - **Type**: `boolean`
27
+ - **Required**: No
28
+ - **Description**: No description available
29
+
30
+ ## Examples
31
+
32
+ ### Example 1
33
+ ```tsx
34
+ // Typically used automatically by NavigationMenu
35
+ <NavigationMenu>
36
+ <NavigationMenuList>
37
+ // menu items
38
+ </NavigationMenuList>
39
+ // NavigationMenuViewport is rendered automatically
40
+ </NavigationMenu>
41
+ ```
42
+ ### Example 2
43
+ ```tsx
44
+ // Custom viewport styling
45
+ <NavigationMenuViewport className="border-2 border-primary shadow-xl" />
46
+ ```
47
+ ### Example 3
48
+ ```tsx
49
+ // Force mounted viewport for animation control
50
+ <NavigationMenuViewport forceMount className="custom-animation" />
51
+ ```