@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,55 @@
1
+ # Blockquote
2
+
3
+ **Type**: component
4
+
5
+ Blockquote - Quoted text component Semantic blockquote element for extended quotations and excerpts. Features italic styling and left border for visual distinction. Defaults to blockquote element.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Blockquote } from '@neynar/ui';
11
+
12
+ <Blockquote
13
+ as={value}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </Blockquote>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### as
23
+ - **Type**: `React.ElementType`
24
+ - **Required**: No
25
+ - **Description**: HTML element to render
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: Additional Tailwind classes
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: Content to render
36
+
37
+ ## Examples
38
+
39
+ ```tsx
40
+ // Simple quote
41
+ <Blockquote>
42
+ "The best way to predict the future is to invent it."
43
+ </Blockquote>
44
+ // With attribution
45
+ <div>
46
+ <Blockquote>
47
+ "Building great products requires deep understanding of user needs."
48
+ </Blockquote>
49
+ <Caption className="mt-2">— Product Team</Caption>
50
+ </div>
51
+ // Custom styling
52
+ <Blockquote className="bg-muted/50 p-4 rounded-lg">
53
+ Customer testimonial or feedback.
54
+ </Blockquote>
55
+ ```
@@ -0,0 +1,49 @@
1
+ # BodyTextLarge
2
+
3
+ **Type**: component
4
+
5
+ BodyTextLarge - Emphasized body text component Larger body text for lead paragraphs and emphasized content. Uses text-lg (18px) with relaxed line height. Defaults to p element.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BodyTextLarge } from '@neynar/ui';
11
+
12
+ <BodyTextLarge
13
+ as={value}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </BodyTextLarge>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### as
23
+ - **Type**: `React.ElementType`
24
+ - **Required**: No
25
+ - **Description**: HTML element to render
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: Additional Tailwind classes
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: Content to render
36
+
37
+ ## Examples
38
+
39
+ ```tsx
40
+ // Lead paragraph
41
+ <BodyTextLarge>
42
+ This is a lead paragraph that introduces the main content.
43
+ </BodyTextLarge>
44
+ // Emphasized content
45
+ <BodyTextLarge className="font-medium text-accent">
46
+ Important announcement text.
47
+ </BodyTextLarge>
48
+ ```
49
+ /
@@ -0,0 +1,49 @@
1
+ # BodyTextSmall
2
+
3
+ **Type**: component
4
+
5
+ BodyTextSmall - De-emphasized body text component Smaller body text for less prominent content. Uses text-sm (14px) with normal line height. Defaults to p element.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BodyTextSmall } from '@neynar/ui';
11
+
12
+ <BodyTextSmall
13
+ as={value}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </BodyTextSmall>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### as
23
+ - **Type**: `React.ElementType`
24
+ - **Required**: No
25
+ - **Description**: HTML element to render
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: Additional Tailwind classes
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: Content to render
36
+
37
+ ## Examples
38
+
39
+ ```tsx
40
+ // Small body text
41
+ <BodyTextSmall>
42
+ This is smaller, less prominent body text.
43
+ </BodyTextSmall>
44
+ // Helper text
45
+ <BodyTextSmall className="text-muted-foreground">
46
+ Additional context or helper information.
47
+ </BodyTextSmall>
48
+ ```
49
+ /
@@ -0,0 +1,52 @@
1
+ # BodyText
2
+
3
+ **Type**: component
4
+
5
+ BodyText - Primary paragraph text component Standard paragraph element for readable body text. Uses text-base (16px) with relaxed line height for optimal readability. Defaults to p element.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BodyText } from '@neynar/ui';
11
+
12
+ <BodyText
13
+ as={value}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </BodyText>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### as
23
+ - **Type**: `React.ElementType`
24
+ - **Required**: No
25
+ - **Description**: HTML element to render
26
+
27
+ ### className
28
+ - **Type**: `string`
29
+ - **Required**: No
30
+ - **Description**: Additional Tailwind classes
31
+
32
+ ### children
33
+ - **Type**: `React.ReactNode`
34
+ - **Required**: No
35
+ - **Description**: Content to render
36
+
37
+ ## Examples
38
+
39
+ ```tsx
40
+ // Default usage
41
+ <BodyText>
42
+ This is standard body text that provides information to the user.
43
+ </BodyText>
44
+ // With custom styling
45
+ <BodyText className="text-muted-foreground">
46
+ Secondary information with reduced visual prominence.
47
+ </BodyText>
48
+ // As different element
49
+ <BodyText as="div">
50
+ Body text in a div container.
51
+ </BodyText>
52
+ ```
@@ -0,0 +1,73 @@
1
+ # BreadcrumbEllipsis
2
+
3
+ **Type**: component
4
+
5
+ Ellipsis indicator for collapsed breadcrumb items Shows a horizontal ellipsis icon (MoreHorizontal) to indicate hidden or collapsed middle items in a long breadcrumb trail. Essential for deep navigation hierarchies where space is limited or mobile responsive design. Commonly used in combination with dropdown menus, popovers, or expandable sections to reveal the collapsed breadcrumb items on user interaction. The component provides a consistent 36px (9 × 4px) clickable area for better touch interaction when used as a trigger for dropdown menus. Includes hidden screen reader text to provide context about the collapsed content.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BreadcrumbEllipsis } from '@neynar/ui';
11
+
12
+ <BreadcrumbEllipsis
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </BreadcrumbEllipsis>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: Additional CSS classes to apply to the ellipsis container
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: Custom content to display instead of the default MoreHorizontal icon (rarely needed)
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Simple static ellipsis
36
+ <BreadcrumbEllipsis />
37
+ ```
38
+ ### Example 2
39
+ ```tsx
40
+ // Interactive ellipsis with dropdown menu
41
+ <BreadcrumbItem>
42
+ <DropdownMenu>
43
+ <DropdownMenuTrigger asChild>
44
+ <BreadcrumbEllipsis className="hover:bg-muted cursor-pointer" />
45
+ </DropdownMenuTrigger>
46
+ <DropdownMenuContent>
47
+ <DropdownMenuItem>
48
+ <BreadcrumbLink href="/level1">Level 1</BreadcrumbLink>
49
+ </DropdownMenuItem>
50
+ <DropdownMenuItem>
51
+ <BreadcrumbLink href="/level1/level2">Level 2</BreadcrumbLink>
52
+ </DropdownMenuItem>
53
+ </DropdownMenuContent>
54
+ </DropdownMenu>
55
+ </BreadcrumbItem>
56
+ ```
57
+ ### Example 3
58
+ ```tsx
59
+ // With popover for collapsed items
60
+ <BreadcrumbItem>
61
+ <Popover>
62
+ <PopoverTrigger asChild>
63
+ <BreadcrumbEllipsis className="hover:bg-accent" />
64
+ </PopoverTrigger>
65
+ <PopoverContent>
66
+ <div className="space-y-2">
67
+ <BreadcrumbLink href="/hidden1">Hidden Item 1</BreadcrumbLink>
68
+ <BreadcrumbLink href="/hidden2">Hidden Item 2</BreadcrumbLink>
69
+ </div>
70
+ </PopoverContent>
71
+ </Popover>
72
+ </BreadcrumbItem>
73
+ ```
@@ -0,0 +1,53 @@
1
+ # BreadcrumbItem
2
+
3
+ **Type**: component
4
+
5
+ Individual breadcrumb list item container Wraps breadcrumb content (links, pages, separators) in a semantic list item. Provides consistent alignment and spacing for breadcrumb elements with inline flex layout for proper icon and text alignment.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BreadcrumbItem } from '@neynar/ui';
11
+
12
+ <BreadcrumbItem
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </BreadcrumbItem>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: Additional CSS classes to apply to the list item element
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: Content to display within the item (links, pages, separators, ellipsis)
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // With link
36
+ <BreadcrumbItem>
37
+ <BreadcrumbLink href="/products">Products</BreadcrumbLink>
38
+ </BreadcrumbItem>
39
+ ```
40
+ ### Example 2
41
+ ```tsx
42
+ // With current page
43
+ <BreadcrumbItem>
44
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
45
+ </BreadcrumbItem>
46
+ ```
47
+ ### Example 3
48
+ ```tsx
49
+ // With separator
50
+ <BreadcrumbItem>
51
+ <BreadcrumbSeparator />
52
+ </BreadcrumbItem>
53
+ ```
@@ -0,0 +1,84 @@
1
+ # BreadcrumbLink
2
+
3
+ **Type**: component
4
+
5
+ Navigable link within breadcrumb trail Represents a clickable parent page in the breadcrumb hierarchy with smooth hover effects and transition animations. Supports composition via the `asChild` prop for seamless integration with routing libraries like Next.js Link, React Router, or Reach Router using the Radix UI Slot primitive for prop merging. Built on Radix UI Slot primitive which enables the asChild pattern - when asChild is true, the component merges its props with the immediate child element instead of rendering its own anchor tag. This allows for flexible composition while maintaining consistent styling and behavior.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BreadcrumbLink } from '@neynar/ui';
11
+
12
+ <BreadcrumbLink
13
+ asChild={true}
14
+ className="value"
15
+ href="value"
16
+ onClick={handleClick}
17
+ >
18
+ {/* Your content here */}
19
+ </BreadcrumbLink>
20
+ ```
21
+
22
+ ## Component Props
23
+
24
+ ### asChild
25
+ - **Type**: `boolean`
26
+ - **Required**: No
27
+ - **Description**: When true, merges props with child element instead of rendering anchor. Enables composition with routing components
28
+
29
+ ### className
30
+ - **Type**: `string`
31
+ - **Required**: No
32
+ - **Description**: Additional CSS classes to apply to the link element
33
+
34
+ ### href
35
+ - **Type**: `string`
36
+ - **Required**: No
37
+ - **Description**: Link destination URL (when asChild is false)
38
+
39
+ ### children
40
+ - **Type**: `React.ReactNode`
41
+ - **Required**: No
42
+ - **Description**: Link content to display (text, icons, etc.)
43
+
44
+ ### onClick
45
+ - **Type**: `(event: React.MouseEvent<HTMLAnchorElement>) => void`
46
+ - **Required**: No
47
+ - **Description**: Click handler for the link interaction
48
+
49
+ ## Examples
50
+
51
+ ### Example 1
52
+ ```tsx
53
+ // Standard anchor link
54
+ <BreadcrumbLink href="/products">Products</BreadcrumbLink>
55
+ ```
56
+ ### Example 2
57
+ ```tsx
58
+ // With Next.js Link using asChild
59
+ import { Link } from "next/link"
60
+ <BreadcrumbLink asChild>
61
+ <Link href="/products">Products</Link>
62
+ </BreadcrumbLink>
63
+ ```
64
+ ### Example 3
65
+ ```tsx
66
+ // With React Router Link
67
+ import { Link } from "react-router-dom"
68
+ <BreadcrumbLink asChild>
69
+ <Link to="/products">Products</Link>
70
+ </BreadcrumbLink>
71
+ ```
72
+ ### Example 4
73
+ ```tsx
74
+ // With click handler
75
+ <BreadcrumbLink
76
+ href="/products"
77
+ onClick={(e) => {
78
+ e.preventDefault();
79
+ navigate('/products');
80
+ }}
81
+ >
82
+ Products
83
+ </BreadcrumbLink>
84
+ ```
@@ -0,0 +1,54 @@
1
+ # BreadcrumbList
2
+
3
+ **Type**: component
4
+
5
+ Ordered list container for breadcrumb items Provides the structured list layout for breadcrumb navigation items with responsive spacing and text overflow handling. Uses semantic `ol` element for proper accessibility and screen reader navigation. Contains flexible layout with word breaking and responsive gap adjustments.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BreadcrumbList } from '@neynar/ui';
11
+
12
+ <BreadcrumbList
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </BreadcrumbList>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: Additional CSS classes to apply to the ordered list element
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: Child breadcrumb items (BreadcrumbItem elements)
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Basic list with multiple items
36
+ <BreadcrumbList>
37
+ <BreadcrumbItem>
38
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
39
+ </BreadcrumbItem>
40
+ <BreadcrumbSeparator />
41
+ <BreadcrumbItem>
42
+ <BreadcrumbPage>Current</BreadcrumbPage>
43
+ </BreadcrumbItem>
44
+ </BreadcrumbList>
45
+ ```
46
+ ### Example 2
47
+ ```tsx
48
+ // With custom styling
49
+ <BreadcrumbList className="gap-4 text-base">
50
+ <BreadcrumbItem>
51
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
52
+ </BreadcrumbItem>
53
+ </BreadcrumbList>
54
+ ```
@@ -0,0 +1,52 @@
1
+ # BreadcrumbPage
2
+
3
+ **Type**: component
4
+
5
+ Current page indicator in breadcrumb trail Represents the current page (non-clickable) at the end of the breadcrumb trail. Styled with prominent text color and marked with comprehensive accessibility attributes including `aria-current="page"` for precise screen reader identification of the user's current location within the site hierarchy. This component uses specific ARIA attributes to indicate it represents a link-like element that is disabled, providing semantic meaning while maintaining the visual breadcrumb structure. The `aria-current="page"` attribute is the standard way to identify the current page in navigation components.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BreadcrumbPage } from '@neynar/ui';
11
+
12
+ <BreadcrumbPage
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </BreadcrumbPage>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: Additional CSS classes to apply to the span element
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: Current page name or content to display
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Simple page name
36
+ <BreadcrumbPage>Current Page Name</BreadcrumbPage>
37
+ ```
38
+ ### Example 2
39
+ ```tsx
40
+ // With icon and text
41
+ <BreadcrumbPage>
42
+ <FileIcon className="mr-1" />
43
+ Document.pdf
44
+ </BreadcrumbPage>
45
+ ```
46
+ ### Example 3
47
+ ```tsx
48
+ // With custom styling
49
+ <BreadcrumbPage className="font-semibold text-primary">
50
+ Important Page
51
+ </BreadcrumbPage>
52
+ ```
@@ -0,0 +1,60 @@
1
+ # BreadcrumbSeparator
2
+
3
+ **Type**: component
4
+
5
+ Visual separator between breadcrumb items Displays a separator icon (default: ChevronRight) between breadcrumb items to provide visual hierarchy and direction in the breadcrumb trail. Supports complete customization with any icon or content. Properly hidden from assistive technologies with accessibility attributes for clean screen reader navigation experience. The component uses CSS sizing constraints to ensure consistent icon sizing across different separator types and maintains visual alignment within the breadcrumb flow.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { BreadcrumbSeparator } from '@neynar/ui';
11
+
12
+ <BreadcrumbSeparator
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </BreadcrumbSeparator>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### children
22
+ - **Type**: `React.ReactNode`
23
+ - **Required**: No
24
+ - **Description**: Custom separator icon or content to display instead of default ChevronRight. Typically Lucide icons like Slash, ArrowRight, etc.
25
+
26
+ ### className
27
+ - **Type**: `string`
28
+ - **Required**: No
29
+ - **Description**: Additional CSS classes to apply to the list item container
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Default ChevronRight separator
36
+ <BreadcrumbSeparator />
37
+ ```
38
+ ### Example 2
39
+ ```tsx
40
+ // Custom Slash separator
41
+ import { Slash } from "lucide-react"
42
+ <BreadcrumbSeparator>
43
+ <Slash />
44
+ </BreadcrumbSeparator>
45
+ ```
46
+ ### Example 3
47
+ ```tsx
48
+ // Arrow right separator
49
+ import { ArrowRight } from "lucide-react"
50
+ <BreadcrumbSeparator>
51
+ <ArrowRight />
52
+ </BreadcrumbSeparator>
53
+ ```
54
+ ### Example 4
55
+ ```tsx
56
+ // Text separator
57
+ <BreadcrumbSeparator>
58
+ <span className="text-muted-foreground">/</span>
59
+ </BreadcrumbSeparator>
60
+ ```
@@ -0,0 +1,110 @@
1
+ # Breadcrumb
2
+
3
+ **Type**: component
4
+
5
+ Breadcrumb navigation component that displays hierarchical page location A breadcrumb navigation component built on semantic HTML that shows the current page location within a navigational hierarchy. Provides users with contextual awareness of their position in the site structure and enables easy navigation to parent pages. Based on the shadcn/ui Breadcrumb component with accessibility features and support for composition patterns including custom separators, ellipsis for long paths, dropdown menus, and custom link components via the asChild prop.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Breadcrumb } from '@neynar/ui';
11
+
12
+ <Breadcrumb
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </Breadcrumb>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: Additional CSS classes to apply to the navigation element
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: Child breadcrumb elements (typically BreadcrumbList)
30
+
31
+ ## Examples
32
+
33
+ ### Example 1
34
+ ```tsx
35
+ // Basic breadcrumb navigation
36
+ <Breadcrumb>
37
+ <BreadcrumbList>
38
+ <BreadcrumbItem>
39
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
40
+ </BreadcrumbItem>
41
+ <BreadcrumbSeparator />
42
+ <BreadcrumbItem>
43
+ <BreadcrumbLink href="/products">Products</BreadcrumbLink>
44
+ </BreadcrumbItem>
45
+ <BreadcrumbSeparator />
46
+ <BreadcrumbItem>
47
+ <BreadcrumbPage>Laptop</BreadcrumbPage>
48
+ </BreadcrumbItem>
49
+ </BreadcrumbList>
50
+ </Breadcrumb>
51
+ ```
52
+ ### Example 2
53
+ ```tsx
54
+ // With ellipsis for long paths
55
+ <Breadcrumb>
56
+ <BreadcrumbList>
57
+ <BreadcrumbItem>
58
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
59
+ </BreadcrumbItem>
60
+ <BreadcrumbSeparator />
61
+ <BreadcrumbItem>
62
+ <BreadcrumbEllipsis />
63
+ </BreadcrumbItem>
64
+ <BreadcrumbSeparator />
65
+ <BreadcrumbItem>
66
+ <BreadcrumbLink href="/products/laptops">Laptops</BreadcrumbLink>
67
+ </BreadcrumbItem>
68
+ <BreadcrumbSeparator />
69
+ <BreadcrumbItem>
70
+ <BreadcrumbPage>Gaming Laptop</BreadcrumbPage>
71
+ </BreadcrumbItem>
72
+ </BreadcrumbList>
73
+ </Breadcrumb>
74
+ ```
75
+ ### Example 3
76
+ ```tsx
77
+ // With Next.js Link integration using asChild
78
+ import { Link } from "next/link"
79
+ <Breadcrumb>
80
+ <BreadcrumbList>
81
+ <BreadcrumbItem>
82
+ <BreadcrumbLink asChild>
83
+ <Link href="/">Home</Link>
84
+ </BreadcrumbLink>
85
+ </BreadcrumbItem>
86
+ <BreadcrumbSeparator />
87
+ <BreadcrumbItem>
88
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
89
+ </BreadcrumbItem>
90
+ </BreadcrumbList>
91
+ </Breadcrumb>
92
+ ```
93
+ ### Example 4
94
+ ```tsx
95
+ // With custom separator
96
+ import { Slash } from "lucide-react"
97
+ <Breadcrumb>
98
+ <BreadcrumbList>
99
+ <BreadcrumbItem>
100
+ <BreadcrumbLink href="/">Home</BreadcrumbLink>
101
+ </BreadcrumbItem>
102
+ <BreadcrumbSeparator>
103
+ <Slash />
104
+ </BreadcrumbSeparator>
105
+ <BreadcrumbItem>
106
+ <BreadcrumbPage>Current Page</BreadcrumbPage>
107
+ </BreadcrumbItem>
108
+ </BreadcrumbList>
109
+ </Breadcrumb>
110
+ ```