@neynar/ui 0.1.2 → 0.2.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 (282) hide show
  1. package/dist/components/ui/stack.d.ts +2 -1
  2. package/dist/components/ui/stack.d.ts.map +1 -1
  3. package/dist/components/ui/stories/stack.stories.d.ts +1 -1
  4. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -1
  5. package/dist/components/ui/typography.d.ts +41 -40
  6. package/dist/components/ui/typography.d.ts.map +1 -1
  7. package/dist/index.js +26807 -18714
  8. package/dist/index.js.map +1 -1
  9. package/dist/tsconfig.tsbuildinfo +1 -1
  10. package/docs/llm/components/typography.md +92 -88
  11. package/llm-docs/a.llm.md +145 -0
  12. package/llm-docs/accordion-content.llm.md +67 -0
  13. package/llm-docs/accordion-item.llm.md +61 -0
  14. package/llm-docs/accordion-trigger.llm.md +69 -0
  15. package/llm-docs/accordion.llm.md +88 -0
  16. package/llm-docs/alert-description.llm.md +78 -0
  17. package/llm-docs/alert-dialog-action.llm.md +51 -0
  18. package/llm-docs/alert-dialog-cancel.llm.md +48 -0
  19. package/llm-docs/alert-dialog-content.llm.md +88 -0
  20. package/llm-docs/alert-dialog-description.llm.md +53 -0
  21. package/llm-docs/alert-dialog-footer.llm.md +41 -0
  22. package/llm-docs/alert-dialog-header.llm.md +39 -0
  23. package/llm-docs/alert-dialog-overlay.llm.md +44 -0
  24. package/llm-docs/alert-dialog-portal.llm.md +41 -0
  25. package/llm-docs/alert-dialog-title.llm.md +46 -0
  26. package/llm-docs/alert-dialog-trigger.llm.md +40 -0
  27. package/llm-docs/alert-dialog.llm.md +80 -0
  28. package/llm-docs/alert-title.llm.md +48 -0
  29. package/llm-docs/alert.llm.md +92 -0
  30. package/llm-docs/aspect-ratio.llm.md +41 -0
  31. package/llm-docs/avatar-fallback.llm.md +41 -0
  32. package/llm-docs/avatar-image.llm.md +48 -0
  33. package/llm-docs/avatar.llm.md +35 -0
  34. package/llm-docs/badge.llm.md +108 -0
  35. package/llm-docs/blockquote.llm.md +122 -0
  36. package/llm-docs/breadcrumb-ellipsis.llm.md +73 -0
  37. package/llm-docs/breadcrumb-item.llm.md +53 -0
  38. package/llm-docs/breadcrumb-link.llm.md +84 -0
  39. package/llm-docs/breadcrumb-list.llm.md +54 -0
  40. package/llm-docs/breadcrumb-page.llm.md +52 -0
  41. package/llm-docs/breadcrumb-separator.llm.md +60 -0
  42. package/llm-docs/breadcrumb.llm.md +110 -0
  43. package/llm-docs/button.llm.md +281 -0
  44. package/llm-docs/calendar-day-button.llm.md +57 -0
  45. package/llm-docs/calendar.llm.md +340 -0
  46. package/llm-docs/card-action.llm.md +64 -0
  47. package/llm-docs/card-content.llm.md +48 -0
  48. package/llm-docs/card-description.llm.md +46 -0
  49. package/llm-docs/card-footer.llm.md +56 -0
  50. package/llm-docs/card-header.llm.md +53 -0
  51. package/llm-docs/card-title.llm.md +43 -0
  52. package/llm-docs/card.llm.md +100 -0
  53. package/llm-docs/carousel-content.llm.md +77 -0
  54. package/llm-docs/carousel-item.llm.md +96 -0
  55. package/llm-docs/carousel-next.llm.md +95 -0
  56. package/llm-docs/carousel-previous.llm.md +95 -0
  57. package/llm-docs/carousel.llm.md +211 -0
  58. package/llm-docs/chart-config.llm.md +71 -0
  59. package/llm-docs/chart-container.llm.md +148 -0
  60. package/llm-docs/chart-legend-content.llm.md +85 -0
  61. package/llm-docs/chart-legend.llm.md +144 -0
  62. package/llm-docs/chart-style.llm.md +28 -0
  63. package/llm-docs/chart-tooltip-content.llm.md +149 -0
  64. package/llm-docs/chart-tooltip.llm.md +184 -0
  65. package/llm-docs/checkbox.llm.md +100 -0
  66. package/llm-docs/cn.llm.md +46 -0
  67. package/llm-docs/code.llm.md +108 -0
  68. package/llm-docs/collapsible-content.llm.md +109 -0
  69. package/llm-docs/collapsible-trigger.llm.md +75 -0
  70. package/llm-docs/collapsible.llm.md +109 -0
  71. package/llm-docs/combobox-option.llm.md +53 -0
  72. package/llm-docs/combobox.llm.md +208 -0
  73. package/llm-docs/command-dialog.llm.md +112 -0
  74. package/llm-docs/command-empty.llm.md +63 -0
  75. package/llm-docs/command-group.llm.md +83 -0
  76. package/llm-docs/command-input.llm.md +82 -0
  77. package/llm-docs/command-item.llm.md +97 -0
  78. package/llm-docs/command-list.llm.md +53 -0
  79. package/llm-docs/command-loading.llm.md +48 -0
  80. package/llm-docs/command-separator.llm.md +44 -0
  81. package/llm-docs/command-shortcut.llm.md +63 -0
  82. package/llm-docs/command.llm.md +147 -0
  83. package/llm-docs/container.llm.md +236 -0
  84. package/llm-docs/context-menu-checkbox-item.llm.md +97 -0
  85. package/llm-docs/context-menu-content.llm.md +91 -0
  86. package/llm-docs/context-menu-group.llm.md +61 -0
  87. package/llm-docs/context-menu-item.llm.md +94 -0
  88. package/llm-docs/context-menu-label.llm.md +60 -0
  89. package/llm-docs/context-menu-portal.llm.md +49 -0
  90. package/llm-docs/context-menu-radio-group.llm.md +66 -0
  91. package/llm-docs/context-menu-radio-item.llm.md +76 -0
  92. package/llm-docs/context-menu-separator.llm.md +51 -0
  93. package/llm-docs/context-menu-shortcut.llm.md +57 -0
  94. package/llm-docs/context-menu-sub-content.llm.md +90 -0
  95. package/llm-docs/context-menu-sub-trigger.llm.md +73 -0
  96. package/llm-docs/context-menu-sub.llm.md +61 -0
  97. package/llm-docs/context-menu-trigger.llm.md +53 -0
  98. package/llm-docs/context-menu.llm.md +103 -0
  99. package/llm-docs/date-picker.llm.md +90 -0
  100. package/llm-docs/dialog-close.llm.md +61 -0
  101. package/llm-docs/dialog-content.llm.md +128 -0
  102. package/llm-docs/dialog-description.llm.md +44 -0
  103. package/llm-docs/dialog-footer.llm.md +38 -0
  104. package/llm-docs/dialog-header.llm.md +40 -0
  105. package/llm-docs/dialog-overlay.llm.md +57 -0
  106. package/llm-docs/dialog-portal.llm.md +47 -0
  107. package/llm-docs/dialog-title.llm.md +41 -0
  108. package/llm-docs/dialog-trigger.llm.md +51 -0
  109. package/llm-docs/dialog.llm.md +113 -0
  110. package/llm-docs/drawer-close.llm.md +53 -0
  111. package/llm-docs/drawer-content.llm.md +58 -0
  112. package/llm-docs/drawer-description.llm.md +54 -0
  113. package/llm-docs/drawer-footer.llm.md +67 -0
  114. package/llm-docs/drawer-header.llm.md +60 -0
  115. package/llm-docs/drawer-overlay.llm.md +40 -0
  116. package/llm-docs/drawer-portal.llm.md +42 -0
  117. package/llm-docs/drawer-title.llm.md +51 -0
  118. package/llm-docs/drawer-trigger.llm.md +44 -0
  119. package/llm-docs/drawer.llm.md +194 -0
  120. package/llm-docs/dropdown-menu-checkbox-item.llm.md +111 -0
  121. package/llm-docs/dropdown-menu-content.llm.md +109 -0
  122. package/llm-docs/dropdown-menu-group.llm.md +38 -0
  123. package/llm-docs/dropdown-menu-item.llm.md +94 -0
  124. package/llm-docs/dropdown-menu-label.llm.md +66 -0
  125. package/llm-docs/dropdown-menu-portal.llm.md +32 -0
  126. package/llm-docs/dropdown-menu-radio-group.llm.md +73 -0
  127. package/llm-docs/dropdown-menu-radio-item.llm.md +92 -0
  128. package/llm-docs/dropdown-menu-separator.llm.md +55 -0
  129. package/llm-docs/dropdown-menu-shortcut.llm.md +74 -0
  130. package/llm-docs/dropdown-menu-sub-content.llm.md +80 -0
  131. package/llm-docs/dropdown-menu-sub-trigger.llm.md +84 -0
  132. package/llm-docs/dropdown-menu-sub.llm.md +74 -0
  133. package/llm-docs/dropdown-menu-trigger.llm.md +48 -0
  134. package/llm-docs/dropdown-menu.llm.md +120 -0
  135. package/llm-docs/empty-state.llm.md +174 -0
  136. package/llm-docs/h1.llm.md +113 -0
  137. package/llm-docs/h2.llm.md +113 -0
  138. package/llm-docs/h3.llm.md +111 -0
  139. package/llm-docs/h4.llm.md +109 -0
  140. package/llm-docs/h5.llm.md +110 -0
  141. package/llm-docs/h6.llm.md +110 -0
  142. package/llm-docs/hover-card-content.llm.md +167 -0
  143. package/llm-docs/hover-card-trigger.llm.md +65 -0
  144. package/llm-docs/hover-card.llm.md +121 -0
  145. package/llm-docs/input.llm.md +319 -0
  146. package/llm-docs/label.llm.md +145 -0
  147. package/llm-docs/lead.llm.md +119 -0
  148. package/llm-docs/menubar-checkbox-item.llm.md +66 -0
  149. package/llm-docs/menubar-content.llm.md +128 -0
  150. package/llm-docs/menubar-group.llm.md +40 -0
  151. package/llm-docs/menubar-item.llm.md +62 -0
  152. package/llm-docs/menubar-label.llm.md +40 -0
  153. package/llm-docs/menubar-menu.llm.md +32 -0
  154. package/llm-docs/menubar-portal.llm.md +38 -0
  155. package/llm-docs/menubar-radio-group.llm.md +39 -0
  156. package/llm-docs/menubar-radio-item.llm.md +59 -0
  157. package/llm-docs/menubar-separator.llm.md +35 -0
  158. package/llm-docs/menubar-shortcut.llm.md +37 -0
  159. package/llm-docs/menubar-sub-content.llm.md +127 -0
  160. package/llm-docs/menubar-sub-trigger.llm.md +51 -0
  161. package/llm-docs/menubar-sub.llm.md +53 -0
  162. package/llm-docs/menubar-trigger.llm.md +37 -0
  163. package/llm-docs/menubar.llm.md +115 -0
  164. package/llm-docs/navigation-menu-content.llm.md +116 -0
  165. package/llm-docs/navigation-menu-indicator.llm.md +68 -0
  166. package/llm-docs/navigation-menu-item.llm.md +62 -0
  167. package/llm-docs/navigation-menu-link.llm.md +109 -0
  168. package/llm-docs/navigation-menu-list.llm.md +52 -0
  169. package/llm-docs/navigation-menu-trigger-style.llm.md +22 -0
  170. package/llm-docs/navigation-menu-trigger.llm.md +57 -0
  171. package/llm-docs/navigation-menu-viewport.llm.md +51 -0
  172. package/llm-docs/navigation-menu.llm.md +184 -0
  173. package/llm-docs/p.llm.md +115 -0
  174. package/llm-docs/pagination-content.llm.md +60 -0
  175. package/llm-docs/pagination-ellipsis.llm.md +107 -0
  176. package/llm-docs/pagination-item.llm.md +59 -0
  177. package/llm-docs/pagination-link.llm.md +150 -0
  178. package/llm-docs/pagination-next.llm.md +115 -0
  179. package/llm-docs/pagination-previous.llm.md +115 -0
  180. package/llm-docs/pagination.llm.md +190 -0
  181. package/llm-docs/popover-anchor.llm.md +53 -0
  182. package/llm-docs/popover-content.llm.md +109 -0
  183. package/llm-docs/popover-trigger.llm.md +54 -0
  184. package/llm-docs/popover.llm.md +116 -0
  185. package/llm-docs/progress.llm.md +76 -0
  186. package/llm-docs/radio-group-indicator.llm.md +28 -0
  187. package/llm-docs/radio-group-item.llm.md +40 -0
  188. package/llm-docs/radio-group.llm.md +76 -0
  189. package/llm-docs/resizable-handle.llm.md +156 -0
  190. package/llm-docs/resizable-panel-group.llm.md +149 -0
  191. package/llm-docs/resizable-panel.llm.md +157 -0
  192. package/llm-docs/scroll-area-corner.llm.md +41 -0
  193. package/llm-docs/scroll-area-thumb.llm.md +39 -0
  194. package/llm-docs/scroll-area-viewport.llm.md +60 -0
  195. package/llm-docs/scroll-area.llm.md +125 -0
  196. package/llm-docs/scroll-bar.llm.md +78 -0
  197. package/llm-docs/sdk-items-registry.json +2638 -0
  198. package/llm-docs/select-content.llm.md +139 -0
  199. package/llm-docs/select-group.llm.md +60 -0
  200. package/llm-docs/select-item.llm.md +75 -0
  201. package/llm-docs/select-label.llm.md +62 -0
  202. package/llm-docs/select-scroll-down-button.llm.md +45 -0
  203. package/llm-docs/select-scroll-up-button.llm.md +45 -0
  204. package/llm-docs/select-separator.llm.md +59 -0
  205. package/llm-docs/select-trigger.llm.md +66 -0
  206. package/llm-docs/select-value.llm.md +67 -0
  207. package/llm-docs/select.llm.md +159 -0
  208. package/llm-docs/separator.llm.md +129 -0
  209. package/llm-docs/sheet-close.llm.md +49 -0
  210. package/llm-docs/sheet-content.llm.md +115 -0
  211. package/llm-docs/sheet-description.llm.md +62 -0
  212. package/llm-docs/sheet-footer.llm.md +64 -0
  213. package/llm-docs/sheet-header.llm.md +52 -0
  214. package/llm-docs/sheet-title.llm.md +53 -0
  215. package/llm-docs/sheet-trigger.llm.md +46 -0
  216. package/llm-docs/sheet.llm.md +126 -0
  217. package/llm-docs/sidebar-content.llm.md +63 -0
  218. package/llm-docs/sidebar-footer.llm.md +50 -0
  219. package/llm-docs/sidebar-group-action.llm.md +60 -0
  220. package/llm-docs/sidebar-group-content.llm.md +64 -0
  221. package/llm-docs/sidebar-group-label.llm.md +53 -0
  222. package/llm-docs/sidebar-group.llm.md +56 -0
  223. package/llm-docs/sidebar-header.llm.md +67 -0
  224. package/llm-docs/sidebar-input.llm.md +50 -0
  225. package/llm-docs/sidebar-inset.llm.md +52 -0
  226. package/llm-docs/sidebar-menu-action.llm.md +84 -0
  227. package/llm-docs/sidebar-menu-badge.llm.md +60 -0
  228. package/llm-docs/sidebar-menu-button.llm.md +103 -0
  229. package/llm-docs/sidebar-menu-item.llm.md +75 -0
  230. package/llm-docs/sidebar-menu-skeleton.llm.md +76 -0
  231. package/llm-docs/sidebar-menu-sub-button.llm.md +85 -0
  232. package/llm-docs/sidebar-menu-sub-item.llm.md +54 -0
  233. package/llm-docs/sidebar-menu-sub.llm.md +74 -0
  234. package/llm-docs/sidebar-menu.llm.md +65 -0
  235. package/llm-docs/sidebar-provider.llm.md +79 -0
  236. package/llm-docs/sidebar-rail.llm.md +34 -0
  237. package/llm-docs/sidebar-separator.llm.md +57 -0
  238. package/llm-docs/sidebar-trigger.llm.md +49 -0
  239. package/llm-docs/sidebar.llm.md +129 -0
  240. package/llm-docs/skeleton.llm.md +134 -0
  241. package/llm-docs/slider.llm.md +173 -0
  242. package/llm-docs/small.llm.md +115 -0
  243. package/llm-docs/span.llm.md +132 -0
  244. package/llm-docs/stack.llm.md +28 -0
  245. package/llm-docs/strong.llm.md +115 -0
  246. package/llm-docs/switch.llm.md +76 -0
  247. package/llm-docs/table-body.llm.md +36 -0
  248. package/llm-docs/table-caption.llm.md +48 -0
  249. package/llm-docs/table-cell.llm.md +53 -0
  250. package/llm-docs/table-footer.llm.md +41 -0
  251. package/llm-docs/table-head.llm.md +69 -0
  252. package/llm-docs/table-header.llm.md +41 -0
  253. package/llm-docs/table-row.llm.md +42 -0
  254. package/llm-docs/table.llm.md +123 -0
  255. package/llm-docs/tabs-content.llm.md +47 -0
  256. package/llm-docs/tabs-list.llm.md +41 -0
  257. package/llm-docs/tabs-trigger.llm.md +47 -0
  258. package/llm-docs/tabs.llm.md +71 -0
  259. package/llm-docs/text-field.llm.md +327 -0
  260. package/llm-docs/textarea.llm.md +311 -0
  261. package/llm-docs/theme-preference.llm.md +25 -0
  262. package/llm-docs/theme-toggle.llm.md +57 -0
  263. package/llm-docs/theme.llm.md +14 -0
  264. package/llm-docs/toast.llm.md +32 -0
  265. package/llm-docs/toaster.llm.md +193 -0
  266. package/llm-docs/toggle-group-item.llm.md +59 -0
  267. package/llm-docs/toggle-group.llm.md +101 -0
  268. package/llm-docs/toggle.llm.md +40 -0
  269. package/llm-docs/tooltip-content.llm.md +185 -0
  270. package/llm-docs/tooltip-provider.llm.md +68 -0
  271. package/llm-docs/tooltip-trigger.llm.md +70 -0
  272. package/llm-docs/tooltip.llm.md +129 -0
  273. package/llm-docs/typography.llm.md +175 -0
  274. package/llm-docs/use-carousel.llm.md +55 -0
  275. package/llm-docs/use-command-state.llm.md +32 -0
  276. package/llm-docs/use-is-mobile.llm.md +73 -0
  277. package/llm-docs/use-sidebar.llm.md +61 -0
  278. package/package.json +3 -2
  279. package/src/components/ui/stack.tsx +5 -1
  280. package/src/components/ui/stories/typography.stories.tsx +248 -205
  281. package/src/components/ui/typography.tsx +90 -79
  282. package/src/styles/globals.css +33 -10
@@ -1,97 +1,26 @@
1
1
  # Typography Components
2
2
 
3
3
  ## Typography
4
- Consistent text styling with semantic variants and accessibility features.
5
-
6
- ```tsx
7
- import { Typography } from "@neynar/ui"
8
-
9
- // Basic usage with semantic variants
10
- <Typography variant="heading" as="h1">
11
- Main Page Title
12
- </Typography>
13
-
14
- <Typography variant="subheading" as="h2">
15
- Section Header
16
- </Typography>
17
-
18
- <Typography variant="body">
19
- Standard paragraph text content with proper line height and spacing.
20
- </Typography>
21
-
22
- <Typography variant="bodyEmphasized">
23
- Emphasized text for important information.
24
- </Typography>
25
-
26
- // Color and styling options
27
- <Typography variant="body" color="muted">
28
- Secondary information in muted color
29
- </Typography>
30
-
31
- <Typography variant="details" color="destructive">
32
- Error or warning text
33
- </Typography>
34
-
35
- // Form field labels
36
- <Typography variant="field" as="label" htmlFor="email">
37
- Email Address
38
- </Typography>
39
4
 
40
- // Code snippets
41
- <Typography variant="code" as="code">
42
- const example = "Hello, world!";
43
- </Typography>
44
-
45
- // Table content
46
- <Typography variant="tableHeader" as="th">
47
- Column Header
48
- </Typography>
49
-
50
- <Typography variant="tableCell" as="td">
51
- Cell content
52
- </Typography>
53
-
54
- // Microcopy for fine print
55
- <Typography variant="microcopy" color="muted">
56
- Terms and conditions apply
57
- </Typography>
58
-
59
- // Advanced styling
60
- <Typography
61
- variant="body"
62
- color="accent"
63
- italic
64
- underline
65
- align="center"
66
- >
67
- Styled text with multiple options
68
- </Typography>
69
-
70
- // Truncated text
71
- <Typography variant="body" truncate className="max-w-xs">
72
- Long text that will be truncated with ellipsis
73
- </Typography>
74
-
75
- // Screen reader only content
76
- <Typography variant="details" srOnly>
77
- Additional context for accessibility
78
- </Typography>
79
- ```
5
+ Consistent text styling with semantic variants and accessibility features.
80
6
 
81
7
  ### Typography Design System
82
8
 
83
9
  The Typography component uses a carefully designed font scale that maps to your design system:
84
10
 
85
- - **heading** (20px) - Main page and section titles
86
- - **subheading** (17px) - Secondary headings for subsections
87
- - **body** (14px) - Standard content text
88
- - **bodyEmphasized** (14px) - Important content with medium weight
89
- - **details** (12px) - Smaller text for descriptions
90
- - **field** (17px) - Form field labels
91
- - **code** (17px) - Monospace text for code
92
- - **microcopy** (10px) - Fine print and captions
93
- - **tableCell** (17px) - Table cell content
94
- - **tableHeader** (17px) - Table headers with emphasis
11
+ - **microcopy** (10px / 1.2)
12
+ - **detail** (13px / 1.2)
13
+ - **body** (15px / 1.1)
14
+ - **bodyBlog** (17px / 1.5)
15
+ - **paragraphLead** (17px 1.2)
16
+ - **eyebrow** (20px / 1.2)
17
+ - **subHeadline** (22px / 1.2)
18
+ - **headline** (36px / 1.2)
19
+ - **sectionTitle** (45px / 1.4)
20
+ - **pageTitle** (56px / 1.4)
21
+ - **displayTitle** (72px / 1.1)
22
+ - **heroTitle** (90px 1.1)
23
+ - **code** (15px / 1.2)
95
24
 
96
25
  ### Accessibility Features
97
26
 
@@ -106,6 +35,7 @@ The Typography component uses a carefully designed font scale that maps to your
106
35
  The Typography system includes semantic HTML components for better accessibility and developer experience:
107
36
 
108
37
  ### H1-H6 (Headings)
38
+
109
39
  ```tsx
110
40
  import { H1, H2, H3, H4, H5, H6 } from "@neynar/ui"
111
41
 
@@ -116,6 +46,7 @@ import { H1, H2, H3, H4, H5, H6 } from "@neynar/ui"
116
46
  ```
117
47
 
118
48
  ### P (Paragraph)
49
+
119
50
  ```tsx
120
51
  import { P } from "@neynar/ui"
121
52
 
@@ -124,6 +55,7 @@ import { P } from "@neynar/ui"
124
55
  ```
125
56
 
126
57
  ### A (Anchor/Link)
58
+
127
59
  ```tsx
128
60
  import { A } from "@neynar/ui"
129
61
 
@@ -142,6 +74,7 @@ import { A } from "@neynar/ui"
142
74
  ```
143
75
 
144
76
  ### Other Semantic Elements
77
+
145
78
  ```tsx
146
79
  import { Span, Code, Small, Strong, Lead, Blockquote } from "@neynar/ui"
147
80
 
@@ -156,6 +89,7 @@ import { Span, Code, Small, Strong, Lead, Blockquote } from "@neynar/ui"
156
89
  ## Framework Integration
157
90
 
158
91
  ### Next.js Link Integration
92
+
159
93
  ```tsx
160
94
  // Create a custom Link component
161
95
  import Link from "next/link";
@@ -170,10 +104,13 @@ function AppLink({ href, children, ...props }) {
170
104
  }
171
105
 
172
106
  // Usage
173
- <AppLink href="/about" variant="subheading">About Us</AppLink>
107
+ <AppLink href="/about" variant="subheading">
108
+ About Us
109
+ </AppLink>;
174
110
  ```
175
111
 
176
112
  ### React Router Integration
113
+
177
114
  ```tsx
178
115
  // Custom Link for React Router
179
116
  import { Link } from "react-router-dom";
@@ -188,7 +125,74 @@ function AppLink({ to, children, ...props }) {
188
125
  }
189
126
 
190
127
  // Usage
191
- <AppLink to="/contact" color="accent">Contact</AppLink>
128
+ <AppLink to="/contact" color="accent">
129
+ Contact
130
+ </AppLink>;
131
+ ```
132
+
133
+ ### Typography Component
134
+
135
+ Only use as a last resort if none of the other components apply
136
+
137
+ ```tsx
138
+ import { Typography } from "@neynar/ui"
139
+
140
+ // Basic usage with semantic variants
141
+ <Typography variant="heroTitle" as="h1">
142
+ Main Page Title
143
+ </Typography>
144
+
145
+ <Typography variant="pageTitle" as="h2">
146
+ Section Header
147
+ </Typography>
148
+
149
+ <Typography variant="body">
150
+ Standard paragraph text content with proper line height and spacing.
151
+ </Typography>
152
+
153
+ <Typography variant="body" weight="bold">
154
+ Emphasized text for important information.
155
+ </Typography>
156
+
157
+ // Color and styling options
158
+ <Typography variant="body" color="muted">
159
+ Secondary information in muted color
160
+ </Typography>
161
+
162
+ <Typography variant="detail" color="destructive">
163
+ Error or warning text
164
+ </Typography>
165
+
166
+ // Form field labels
167
+ <Typography variant="detail" as="label" htmlFor="email">
168
+ Email Address
169
+ </Typography>
170
+
171
+ // Microcopy for fine print
172
+ <Typography variant="microcopy" color="muted">
173
+ Terms and conditions apply
174
+ </Typography>
175
+
176
+ // Advanced styling
177
+ <Typography
178
+ variant="body"
179
+ color="accent"
180
+ italic
181
+ underline
182
+ align="center"
183
+ >
184
+ Styled text with multiple options
185
+ </Typography>
186
+
187
+ // Truncated text
188
+ <Typography variant="body" truncate className="max-w-xs">
189
+ Long text that will be truncated with ellipsis
190
+ </Typography>
191
+
192
+ // Screen reader only content
193
+ <Typography variant="details" srOnly>
194
+ Additional context for accessibility
195
+ </Typography>
192
196
  ```
193
197
 
194
198
  ### Performance Notes
@@ -196,4 +200,4 @@ function AppLink({ to, children, ...props }) {
196
200
  - Uses CSS custom properties for consistent theming
197
201
  - Leverages Tailwind's default font scale for optimal bundle size
198
202
  - Supports tree-shaking when used with selective imports
199
- - Semantic components improve SEO and accessibility
203
+ - Semantic components improve SEO and accessibility
@@ -0,0 +1,145 @@
1
+ # A
2
+
3
+ **Type**: component
4
+
5
+ A - Anchor component for interactive text links Semantic anchor element for links with built-in hover states and accessibility features. Uses "body" variant with underline and smooth color transitions.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { A } from '@neynar/ui';
11
+
12
+ <A
13
+ variant={value}
14
+ color={value}
15
+ align={value}
16
+ transform={value}
17
+ weight={value}
18
+ htmlFor="value"
19
+ asChild={true}
20
+ italic={true}
21
+ underline={true}
22
+ strikethrough={true}
23
+ truncate={true}
24
+ srOnly={true}
25
+ href="value"
26
+ className="value"
27
+ >
28
+ {/* Your content here */}
29
+ </A>
30
+ ```
31
+
32
+ ## Component Props
33
+
34
+ ### variant
35
+ - **Type**: `| "heading"
36
+ | "subheading"
37
+ | "body"
38
+ | "bodyEmphasized"
39
+ | "details"
40
+ | "field"
41
+ | "code"
42
+ | "microcopy"
43
+ | "tableCell"
44
+ | "tableHeader"`
45
+ - **Required**: No
46
+ - **Description**: No description available
47
+
48
+ ### color
49
+ - **Type**: `| "default"
50
+ | "muted"
51
+ | "accent"
52
+ | "destructive"
53
+ | "success"
54
+ | "warning"`
55
+ - **Required**: No
56
+ - **Description**: No description available
57
+
58
+ ### align
59
+ - **Type**: `"left" | "center" | "right" | "justify"`
60
+ - **Required**: No
61
+ - **Description**: No description available
62
+
63
+ ### transform
64
+ - **Type**: `"uppercase" | "lowercase" | "capitalize"`
65
+ - **Required**: No
66
+ - **Description**: No description available
67
+
68
+ ### weight
69
+ - **Type**: `"normal" | "medium" | "semibold" | "bold"`
70
+ - **Required**: No
71
+ - **Description**: No description available
72
+
73
+ ### htmlFor
74
+ - **Type**: `string`
75
+ - **Required**: No
76
+ - **Description**: No description available
77
+
78
+ ### asChild
79
+ - **Type**: `boolean`
80
+ - **Required**: No
81
+ - **Description**: No description available
82
+
83
+ ### italic
84
+ - **Type**: `boolean`
85
+ - **Required**: No
86
+ - **Description**: No description available
87
+
88
+ ### underline
89
+ - **Type**: `boolean`
90
+ - **Required**: No
91
+ - **Description**: No description available
92
+
93
+ ### strikethrough
94
+ - **Type**: `boolean`
95
+ - **Required**: No
96
+ - **Description**: No description available
97
+
98
+ ### truncate
99
+ - **Type**: `boolean`
100
+ - **Required**: No
101
+ - **Description**: No description available
102
+
103
+ ### srOnly
104
+ - **Type**: `boolean`
105
+ - **Required**: No
106
+ - **Description**: No description available
107
+
108
+ ### href
109
+ - **Type**: `string`
110
+ - **Required**: No
111
+ - **Description**: No description available
112
+
113
+ ### className
114
+ - **Type**: `string`
115
+ - **Required**: No
116
+ - **Description**: No description available
117
+
118
+ ### children
119
+ - **Type**: `React.ReactNode`
120
+ - **Required**: No
121
+ - **Description**: No description available
122
+
123
+ ## Examples
124
+
125
+ ```tsx
126
+ // External link
127
+ <A href="https://neynar.com" target="_blank" rel="noopener noreferrer">
128
+ Visit Neynar Website
129
+ </A>
130
+ // Internal navigation
131
+ <A href="/dashboard" color="accent">
132
+ Go to Dashboard
133
+ </A>
134
+ // Composition with Next.js Link
135
+ <A asChild>
136
+ <Link href="/about">
137
+ Learn More About Us
138
+ </Link>
139
+ </A>
140
+ // In paragraph text
141
+ <P>
142
+ For more information, <A href="/docs">check our documentation</A> or
143
+ contact support.
144
+ </P>
145
+ ```
@@ -0,0 +1,67 @@
1
+ # AccordionContent
2
+
3
+ **Type**: component
4
+
5
+ AccordionContent - Collapsible content area of an accordion item The expandable content section that is revealed or hidden when the associated AccordionTrigger is activated. Features smooth height-based animations using Tailwind CSS keyframes and supports any React content including complex layouts.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { AccordionContent } from '@neynar/ui';
11
+
12
+ <AccordionContent
13
+ className="value"
14
+ forceMount={value}
15
+ >
16
+ {/* Your content here */}
17
+ </AccordionContent>
18
+ ```
19
+
20
+ ## Component Props
21
+
22
+ ### className
23
+ - **Type**: `string`
24
+ - **Required**: No
25
+ - **Description**: No description available
26
+
27
+ ### children
28
+ - **Type**: `React.ReactNode`
29
+ - **Required**: No
30
+ - **Description**: No description available
31
+
32
+ ### forceMount
33
+ - **Type**: `true`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ## Examples
38
+
39
+ ### Example 1
40
+ ```tsx
41
+ // Simple text content
42
+ <AccordionContent>
43
+ <p>This content is revealed when the accordion is expanded.</p>
44
+ <p>It can contain any React components or HTML elements.</p>
45
+ </AccordionContent>
46
+ ```
47
+ ### Example 2
48
+ ```tsx
49
+ // Rich content with components
50
+ <AccordionContent>
51
+ <div className="space-y-4">
52
+ <Alert>
53
+ <InfoIcon className="h-4 w-4" />
54
+ <AlertTitle>Important Note</AlertTitle>
55
+ <AlertDescription>This is highlighted information.</AlertDescription>
56
+ </Alert>
57
+ <Button variant="outline">Take Action</Button>
58
+ </div>
59
+ </AccordionContent>
60
+ ```
61
+ ### Example 3
62
+ ```tsx
63
+ // Content with custom padding
64
+ <AccordionContent className="pt-6 pb-6">
65
+ Content with extra vertical padding for better spacing.
66
+ </AccordionContent>
67
+ ```
@@ -0,0 +1,61 @@
1
+ # AccordionItem
2
+
3
+ **Type**: component
4
+
5
+ AccordionItem - Individual collapsible panel within an accordion A container component that wraps a single accordion section consisting of a trigger and collapsible content. Each item requires a unique value prop for identification and state management. Provides consistent spacing and border styling.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { AccordionItem } from '@neynar/ui';
11
+
12
+ <AccordionItem
13
+ value="value"
14
+ disabled={true}
15
+ className="value"
16
+ >
17
+ {/* Your content here */}
18
+ </AccordionItem>
19
+ ```
20
+
21
+ ## Component Props
22
+
23
+ ### value
24
+ - **Type**: `string`
25
+ - **Required**: Yes
26
+ - **Description**: No description available
27
+
28
+ ### disabled
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
+ <AccordionItem value="settings">
48
+ <AccordionTrigger>Account Settings</AccordionTrigger>
49
+ <AccordionContent>
50
+ <p>Manage your account preferences and security settings.</p>
51
+ </AccordionContent>
52
+ </AccordionItem>
53
+ ```
54
+ ### Example 2
55
+ ```tsx
56
+ // With custom styling
57
+ <AccordionItem value="custom" className="border-l-4 border-blue-500">
58
+ <AccordionTrigger>Custom Styled Item</AccordionTrigger>
59
+ <AccordionContent>Content with custom left border</AccordionContent>
60
+ </AccordionItem>
61
+ ```
@@ -0,0 +1,69 @@
1
+ # AccordionTrigger
2
+
3
+ **Type**: component
4
+
5
+ AccordionTrigger - Clickable header that toggles accordion content visibility An interactive button element that users click or activate via keyboard to expand or collapse the associated accordion content. Features a rotating chevron icon for visual state indication and supports both text and custom content.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { AccordionTrigger } from '@neynar/ui';
11
+
12
+ <AccordionTrigger
13
+ className="value"
14
+ disabled={true}
15
+ asChild={true}
16
+ >
17
+ {/* Your content here */}
18
+ </AccordionTrigger>
19
+ ```
20
+
21
+ ## Component Props
22
+
23
+ ### className
24
+ - **Type**: `string`
25
+ - **Required**: No
26
+ - **Description**: No description available
27
+
28
+ ### children
29
+ - **Type**: `React.ReactNode`
30
+ - **Required**: No
31
+ - **Description**: No description available
32
+
33
+ ### disabled
34
+ - **Type**: `boolean`
35
+ - **Required**: No
36
+ - **Description**: No description available
37
+
38
+ ### asChild
39
+ - **Type**: `boolean`
40
+ - **Required**: No
41
+ - **Description**: No description available
42
+
43
+ ## Examples
44
+
45
+ ### Example 1
46
+ ```tsx
47
+ // Simple text trigger
48
+ <AccordionTrigger>
49
+ Click to expand this section
50
+ </AccordionTrigger>
51
+ ```
52
+ ### Example 2
53
+ ```tsx
54
+ // With icon and custom styling
55
+ <AccordionTrigger className="text-lg font-semibold">
56
+ <User className="mr-2 h-4 w-4" />
57
+ User Profile Settings
58
+ </AccordionTrigger>
59
+ ```
60
+ ### Example 3
61
+ ```tsx
62
+ // With complex content
63
+ <AccordionTrigger>
64
+ <div className="flex items-center justify-between w-full">
65
+ <span>Section Title</span>
66
+ <Badge variant="secondary">5 items</Badge>
67
+ </div>
68
+ </AccordionTrigger>
69
+ ```
@@ -0,0 +1,88 @@
1
+ # Accordion
2
+
3
+ **Type**: component
4
+
5
+ Accordion - Collapsible content panels for organizing information A vertically stacked set of interactive headings that each reveal a section of content. Built on Radix UI Accordion primitives with optimized animations and accessibility. Supports both single and multiple expanded items simultaneously based on the type prop.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Accordion } from '@neynar/ui';
11
+
12
+ <Accordion
13
+ disabled={true}
14
+ orientation={value}
15
+ dir={value}
16
+ className="value"
17
+ >
18
+ {/* Your content here */}
19
+ </Accordion>
20
+ ```
21
+
22
+ ## Component Props
23
+
24
+ ### disabled
25
+ - **Type**: `boolean`
26
+ - **Required**: No
27
+ - **Description**: No description available
28
+
29
+ ### orientation
30
+ - **Type**: `"horizontal" | "vertical"`
31
+ - **Required**: No
32
+ - **Description**: No description available
33
+
34
+ ### dir
35
+ - **Type**: `"ltr" | "rtl"`
36
+ - **Required**: No
37
+ - **Description**: No description available
38
+
39
+ ### className
40
+ - **Type**: `string`
41
+ - **Required**: No
42
+ - **Description**: No description available
43
+
44
+ ### children
45
+ - **Type**: `React.ReactNode`
46
+ - **Required**: No
47
+ - **Description**: No description available
48
+
49
+ ## Examples
50
+
51
+ ### Example 1
52
+ ```tsx
53
+ // Basic single accordion (only one item can be open)
54
+ <Accordion type="single" collapsible>
55
+ <AccordionItem value="item-1">
56
+ <AccordionTrigger>Is it accessible?</AccordionTrigger>
57
+ <AccordionContent>
58
+ Yes. It adheres to the WAI-ARIA design pattern.
59
+ </AccordionContent>
60
+ </AccordionItem>
61
+ </Accordion>
62
+ ```
63
+ ### Example 2
64
+ ```tsx
65
+ // Multiple accordion (multiple items can be open)
66
+ <Accordion type="multiple">
67
+ <AccordionItem value="item-1">
68
+ <AccordionTrigger>Section 1</AccordionTrigger>
69
+ <AccordionContent>Content for section 1</AccordionContent>
70
+ </AccordionItem>
71
+ <AccordionItem value="item-2">
72
+ <AccordionTrigger>Section 2</AccordionTrigger>
73
+ <AccordionContent>Content for section 2</AccordionContent>
74
+ </AccordionItem>
75
+ </Accordion>
76
+ ```
77
+ ### Example 3
78
+ ```tsx
79
+ // FAQ-style accordion with default open state
80
+ <Accordion type="single" collapsible defaultValue="faq-1">
81
+ <AccordionItem value="faq-1">
82
+ <AccordionTrigger>How do I get started?</AccordionTrigger>
83
+ <AccordionContent>
84
+ Follow our quick start guide to set up your first project.
85
+ </AccordionContent>
86
+ </AccordionItem>
87
+ </Accordion>
88
+ ```