@neynar/ui 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/.llm/a.llm.md +131 -0
  2. package/.llm/accordion-content.llm.md +67 -0
  3. package/.llm/accordion-item.llm.md +61 -0
  4. package/.llm/accordion-trigger.llm.md +69 -0
  5. package/.llm/accordion.llm.md +88 -0
  6. package/.llm/alert-description.llm.md +78 -0
  7. package/.llm/alert-dialog-action.llm.md +51 -0
  8. package/.llm/alert-dialog-cancel.llm.md +48 -0
  9. package/.llm/alert-dialog-content.llm.md +88 -0
  10. package/.llm/alert-dialog-description.llm.md +53 -0
  11. package/.llm/alert-dialog-footer.llm.md +41 -0
  12. package/.llm/alert-dialog-header.llm.md +39 -0
  13. package/.llm/alert-dialog-overlay.llm.md +44 -0
  14. package/.llm/alert-dialog-portal.llm.md +41 -0
  15. package/.llm/alert-dialog-title.llm.md +46 -0
  16. package/.llm/alert-dialog-trigger.llm.md +40 -0
  17. package/.llm/alert-dialog.llm.md +80 -0
  18. package/.llm/alert-title.llm.md +48 -0
  19. package/.llm/alert.llm.md +92 -0
  20. package/.llm/aspect-ratio.llm.md +41 -0
  21. package/.llm/avatar-fallback.llm.md +41 -0
  22. package/.llm/avatar-image.llm.md +48 -0
  23. package/.llm/avatar.llm.md +35 -0
  24. package/.llm/badge.llm.md +117 -0
  25. package/.llm/blockquote.llm.md +117 -0
  26. package/.llm/breadcrumb-ellipsis.llm.md +73 -0
  27. package/.llm/breadcrumb-item.llm.md +53 -0
  28. package/.llm/breadcrumb-link.llm.md +84 -0
  29. package/.llm/breadcrumb-list.llm.md +54 -0
  30. package/.llm/breadcrumb-page.llm.md +52 -0
  31. package/.llm/breadcrumb-separator.llm.md +60 -0
  32. package/.llm/breadcrumb.llm.md +110 -0
  33. package/.llm/button-group-separator.llm.md +53 -0
  34. package/.llm/button-group-text.llm.md +56 -0
  35. package/.llm/button-group.llm.md +81 -0
  36. package/.llm/button.llm.md +281 -0
  37. package/.llm/calendar-day-button.llm.md +57 -0
  38. package/.llm/calendar.llm.md +340 -0
  39. package/.llm/card-action.llm.md +64 -0
  40. package/.llm/card-content.llm.md +48 -0
  41. package/.llm/card-description.llm.md +46 -0
  42. package/.llm/card-footer.llm.md +56 -0
  43. package/.llm/card-header.llm.md +53 -0
  44. package/.llm/card-title.llm.md +43 -0
  45. package/.llm/card.llm.md +100 -0
  46. package/.llm/carousel-content.llm.md +77 -0
  47. package/.llm/carousel-item.llm.md +96 -0
  48. package/.llm/carousel-next.llm.md +95 -0
  49. package/.llm/carousel-previous.llm.md +95 -0
  50. package/.llm/carousel.llm.md +211 -0
  51. package/.llm/chart-config.llm.md +71 -0
  52. package/.llm/chart-container.llm.md +148 -0
  53. package/.llm/chart-legend-content.llm.md +85 -0
  54. package/.llm/chart-legend.llm.md +144 -0
  55. package/.llm/chart-style.llm.md +28 -0
  56. package/.llm/chart-tooltip-content.llm.md +149 -0
  57. package/.llm/chart-tooltip.llm.md +184 -0
  58. package/.llm/checkbox.llm.md +100 -0
  59. package/.llm/cn.llm.md +46 -0
  60. package/.llm/code.llm.md +103 -0
  61. package/.llm/collapsible-content.llm.md +109 -0
  62. package/.llm/collapsible-trigger.llm.md +75 -0
  63. package/.llm/collapsible.llm.md +109 -0
  64. package/.llm/combobox-option.llm.md +53 -0
  65. package/.llm/combobox.llm.md +208 -0
  66. package/.llm/command-dialog.llm.md +112 -0
  67. package/.llm/command-empty.llm.md +63 -0
  68. package/.llm/command-group.llm.md +83 -0
  69. package/.llm/command-input.llm.md +82 -0
  70. package/.llm/command-item.llm.md +97 -0
  71. package/.llm/command-list.llm.md +53 -0
  72. package/.llm/command-loading.llm.md +48 -0
  73. package/.llm/command-separator.llm.md +44 -0
  74. package/.llm/command-shortcut.llm.md +63 -0
  75. package/.llm/command.llm.md +147 -0
  76. package/.llm/container.llm.md +236 -0
  77. package/.llm/context-menu-checkbox-item.llm.md +97 -0
  78. package/.llm/context-menu-content.llm.md +91 -0
  79. package/.llm/context-menu-group.llm.md +61 -0
  80. package/.llm/context-menu-item.llm.md +94 -0
  81. package/.llm/context-menu-label.llm.md +60 -0
  82. package/.llm/context-menu-portal.llm.md +49 -0
  83. package/.llm/context-menu-radio-group.llm.md +66 -0
  84. package/.llm/context-menu-radio-item.llm.md +76 -0
  85. package/.llm/context-menu-separator.llm.md +51 -0
  86. package/.llm/context-menu-shortcut.llm.md +57 -0
  87. package/.llm/context-menu-sub-content.llm.md +90 -0
  88. package/.llm/context-menu-sub-trigger.llm.md +73 -0
  89. package/.llm/context-menu-sub.llm.md +61 -0
  90. package/.llm/context-menu-trigger.llm.md +53 -0
  91. package/.llm/context-menu.llm.md +103 -0
  92. package/.llm/date-picker.llm.md +90 -0
  93. package/.llm/dialog-close.llm.md +61 -0
  94. package/.llm/dialog-content.llm.md +128 -0
  95. package/.llm/dialog-description.llm.md +44 -0
  96. package/.llm/dialog-footer.llm.md +38 -0
  97. package/.llm/dialog-header.llm.md +40 -0
  98. package/.llm/dialog-overlay.llm.md +57 -0
  99. package/.llm/dialog-portal.llm.md +47 -0
  100. package/.llm/dialog-title.llm.md +41 -0
  101. package/.llm/dialog-trigger.llm.md +51 -0
  102. package/.llm/dialog.llm.md +113 -0
  103. package/.llm/drawer-close.llm.md +53 -0
  104. package/.llm/drawer-content.llm.md +58 -0
  105. package/.llm/drawer-description.llm.md +54 -0
  106. package/.llm/drawer-footer.llm.md +67 -0
  107. package/.llm/drawer-header.llm.md +60 -0
  108. package/.llm/drawer-overlay.llm.md +40 -0
  109. package/.llm/drawer-portal.llm.md +42 -0
  110. package/.llm/drawer-title.llm.md +51 -0
  111. package/.llm/drawer-trigger.llm.md +44 -0
  112. package/.llm/drawer.llm.md +194 -0
  113. package/.llm/dropdown-menu-checkbox-item.llm.md +111 -0
  114. package/.llm/dropdown-menu-content.llm.md +109 -0
  115. package/.llm/dropdown-menu-group.llm.md +38 -0
  116. package/.llm/dropdown-menu-item.llm.md +94 -0
  117. package/.llm/dropdown-menu-label.llm.md +66 -0
  118. package/.llm/dropdown-menu-portal.llm.md +32 -0
  119. package/.llm/dropdown-menu-radio-group.llm.md +73 -0
  120. package/.llm/dropdown-menu-radio-item.llm.md +92 -0
  121. package/.llm/dropdown-menu-separator.llm.md +55 -0
  122. package/.llm/dropdown-menu-shortcut.llm.md +74 -0
  123. package/.llm/dropdown-menu-sub-content.llm.md +80 -0
  124. package/.llm/dropdown-menu-sub-trigger.llm.md +84 -0
  125. package/.llm/dropdown-menu-sub.llm.md +74 -0
  126. package/.llm/dropdown-menu-trigger.llm.md +48 -0
  127. package/.llm/dropdown-menu.llm.md +120 -0
  128. package/.llm/empty-content.llm.md +103 -0
  129. package/.llm/empty-description.llm.md +70 -0
  130. package/.llm/empty-header.llm.md +64 -0
  131. package/.llm/empty-media.llm.md +81 -0
  132. package/.llm/empty-state.llm.md +174 -0
  133. package/.llm/empty-title.llm.md +54 -0
  134. package/.llm/empty.llm.md +158 -0
  135. package/.llm/field-content.llm.md +28 -0
  136. package/.llm/field-description.llm.md +28 -0
  137. package/.llm/field-error.llm.md +41 -0
  138. package/.llm/field-group.llm.md +84 -0
  139. package/.llm/field-label.llm.md +28 -0
  140. package/.llm/field-legend.llm.md +77 -0
  141. package/.llm/field-separator.llm.md +35 -0
  142. package/.llm/field-set.llm.md +80 -0
  143. package/.llm/field-title.llm.md +28 -0
  144. package/.llm/field.llm.md +35 -0
  145. package/.llm/h1.llm.md +108 -0
  146. package/.llm/h2.llm.md +108 -0
  147. package/.llm/h3.llm.md +106 -0
  148. package/.llm/h4.llm.md +104 -0
  149. package/.llm/h5.llm.md +105 -0
  150. package/.llm/h6.llm.md +105 -0
  151. package/.llm/hover-card-content.llm.md +167 -0
  152. package/.llm/hover-card-trigger.llm.md +65 -0
  153. package/.llm/hover-card.llm.md +121 -0
  154. package/.llm/input-group-addon.llm.md +91 -0
  155. package/.llm/input-group-button.llm.md +120 -0
  156. package/.llm/input-group-input.llm.md +145 -0
  157. package/.llm/input-group-text.llm.md +75 -0
  158. package/.llm/input-group-textarea.llm.md +157 -0
  159. package/.llm/input-group.llm.md +108 -0
  160. package/.llm/input.llm.md +319 -0
  161. package/.llm/item-actions.llm.md +77 -0
  162. package/.llm/item-content.llm.md +73 -0
  163. package/.llm/item-description.llm.md +61 -0
  164. package/.llm/item-footer.llm.md +68 -0
  165. package/.llm/item-group.llm.md +73 -0
  166. package/.llm/item-header.llm.md +66 -0
  167. package/.llm/item-media.llm.md +75 -0
  168. package/.llm/item-separator.llm.md +80 -0
  169. package/.llm/item-title.llm.md +59 -0
  170. package/.llm/item.llm.md +115 -0
  171. package/.llm/kbd-group.llm.md +71 -0
  172. package/.llm/kbd.llm.md +71 -0
  173. package/.llm/label.llm.md +145 -0
  174. package/.llm/lead.llm.md +114 -0
  175. package/.llm/menubar-checkbox-item.llm.md +66 -0
  176. package/.llm/menubar-content.llm.md +128 -0
  177. package/.llm/menubar-group.llm.md +40 -0
  178. package/.llm/menubar-item.llm.md +62 -0
  179. package/.llm/menubar-label.llm.md +40 -0
  180. package/.llm/menubar-menu.llm.md +32 -0
  181. package/.llm/menubar-portal.llm.md +38 -0
  182. package/.llm/menubar-radio-group.llm.md +39 -0
  183. package/.llm/menubar-radio-item.llm.md +59 -0
  184. package/.llm/menubar-separator.llm.md +35 -0
  185. package/.llm/menubar-shortcut.llm.md +37 -0
  186. package/.llm/menubar-sub-content.llm.md +127 -0
  187. package/.llm/menubar-sub-trigger.llm.md +51 -0
  188. package/.llm/menubar-sub.llm.md +53 -0
  189. package/.llm/menubar-trigger.llm.md +37 -0
  190. package/.llm/menubar.llm.md +115 -0
  191. package/.llm/navigation-menu-content.llm.md +116 -0
  192. package/.llm/navigation-menu-indicator.llm.md +68 -0
  193. package/.llm/navigation-menu-item.llm.md +62 -0
  194. package/.llm/navigation-menu-link.llm.md +109 -0
  195. package/.llm/navigation-menu-list.llm.md +52 -0
  196. package/.llm/navigation-menu-trigger-style.llm.md +22 -0
  197. package/.llm/navigation-menu-trigger.llm.md +57 -0
  198. package/.llm/navigation-menu-viewport.llm.md +51 -0
  199. package/.llm/navigation-menu.llm.md +184 -0
  200. package/.llm/p.llm.md +110 -0
  201. package/.llm/pagination-content.llm.md +60 -0
  202. package/.llm/pagination-ellipsis.llm.md +107 -0
  203. package/.llm/pagination-item.llm.md +59 -0
  204. package/.llm/pagination-link.llm.md +150 -0
  205. package/.llm/pagination-next.llm.md +115 -0
  206. package/.llm/pagination-previous.llm.md +115 -0
  207. package/.llm/pagination.llm.md +190 -0
  208. package/.llm/popover-anchor.llm.md +53 -0
  209. package/.llm/popover-content.llm.md +109 -0
  210. package/.llm/popover-trigger.llm.md +54 -0
  211. package/.llm/popover.llm.md +116 -0
  212. package/.llm/progress.llm.md +76 -0
  213. package/.llm/radio-group-indicator.llm.md +28 -0
  214. package/.llm/radio-group-item.llm.md +40 -0
  215. package/.llm/radio-group.llm.md +76 -0
  216. package/.llm/resizable-handle.llm.md +156 -0
  217. package/.llm/resizable-panel-group.llm.md +149 -0
  218. package/.llm/resizable-panel.llm.md +157 -0
  219. package/.llm/scroll-area-corner.llm.md +41 -0
  220. package/.llm/scroll-area-thumb.llm.md +39 -0
  221. package/.llm/scroll-area-viewport.llm.md +60 -0
  222. package/.llm/scroll-area.llm.md +125 -0
  223. package/.llm/scroll-bar.llm.md +78 -0
  224. package/.llm/sdk-items-registry.json +3022 -0
  225. package/.llm/select-content.llm.md +139 -0
  226. package/.llm/select-group.llm.md +60 -0
  227. package/.llm/select-item.llm.md +75 -0
  228. package/.llm/select-label.llm.md +62 -0
  229. package/.llm/select-scroll-down-button.llm.md +45 -0
  230. package/.llm/select-scroll-up-button.llm.md +45 -0
  231. package/.llm/select-separator.llm.md +59 -0
  232. package/.llm/select-trigger.llm.md +66 -0
  233. package/.llm/select-value.llm.md +67 -0
  234. package/.llm/select.llm.md +159 -0
  235. package/.llm/separator.llm.md +129 -0
  236. package/.llm/sheet-close.llm.md +49 -0
  237. package/.llm/sheet-content.llm.md +115 -0
  238. package/.llm/sheet-description.llm.md +62 -0
  239. package/.llm/sheet-footer.llm.md +64 -0
  240. package/.llm/sheet-header.llm.md +52 -0
  241. package/.llm/sheet-title.llm.md +53 -0
  242. package/.llm/sheet-trigger.llm.md +46 -0
  243. package/.llm/sheet.llm.md +126 -0
  244. package/.llm/sidebar-content.llm.md +63 -0
  245. package/.llm/sidebar-footer.llm.md +50 -0
  246. package/.llm/sidebar-group-action.llm.md +60 -0
  247. package/.llm/sidebar-group-content.llm.md +64 -0
  248. package/.llm/sidebar-group-label.llm.md +53 -0
  249. package/.llm/sidebar-group.llm.md +56 -0
  250. package/.llm/sidebar-header.llm.md +67 -0
  251. package/.llm/sidebar-input.llm.md +50 -0
  252. package/.llm/sidebar-inset.llm.md +52 -0
  253. package/.llm/sidebar-menu-action.llm.md +84 -0
  254. package/.llm/sidebar-menu-badge.llm.md +60 -0
  255. package/.llm/sidebar-menu-button.llm.md +103 -0
  256. package/.llm/sidebar-menu-item.llm.md +75 -0
  257. package/.llm/sidebar-menu-skeleton.llm.md +76 -0
  258. package/.llm/sidebar-menu-sub-button.llm.md +85 -0
  259. package/.llm/sidebar-menu-sub-item.llm.md +54 -0
  260. package/.llm/sidebar-menu-sub.llm.md +74 -0
  261. package/.llm/sidebar-menu.llm.md +65 -0
  262. package/.llm/sidebar-provider.llm.md +79 -0
  263. package/.llm/sidebar-rail.llm.md +34 -0
  264. package/.llm/sidebar-separator.llm.md +57 -0
  265. package/.llm/sidebar-trigger.llm.md +49 -0
  266. package/.llm/sidebar.llm.md +129 -0
  267. package/.llm/skeleton.llm.md +134 -0
  268. package/.llm/slider.llm.md +173 -0
  269. package/.llm/small.llm.md +110 -0
  270. package/.llm/span.llm.md +118 -0
  271. package/.llm/spinner.llm.md +182 -0
  272. package/.llm/stack.llm.md +28 -0
  273. package/.llm/strong.llm.md +110 -0
  274. package/.llm/switch.llm.md +76 -0
  275. package/.llm/table-body.llm.md +36 -0
  276. package/.llm/table-caption.llm.md +48 -0
  277. package/.llm/table-cell.llm.md +53 -0
  278. package/.llm/table-footer.llm.md +41 -0
  279. package/.llm/table-head.llm.md +69 -0
  280. package/.llm/table-header.llm.md +41 -0
  281. package/.llm/table-row.llm.md +42 -0
  282. package/.llm/table.llm.md +123 -0
  283. package/.llm/tabs-content.llm.md +47 -0
  284. package/.llm/tabs-list.llm.md +41 -0
  285. package/.llm/tabs-trigger.llm.md +47 -0
  286. package/.llm/tabs.llm.md +71 -0
  287. package/.llm/text-field.llm.md +327 -0
  288. package/.llm/textarea.llm.md +311 -0
  289. package/.llm/theme-preference.llm.md +25 -0
  290. package/.llm/theme-toggle.llm.md +57 -0
  291. package/.llm/theme.llm.md +14 -0
  292. package/.llm/toast.llm.md +32 -0
  293. package/.llm/toaster.llm.md +193 -0
  294. package/.llm/toggle-group-item.llm.md +59 -0
  295. package/.llm/toggle-group.llm.md +101 -0
  296. package/.llm/toggle.llm.md +40 -0
  297. package/.llm/tooltip-content.llm.md +185 -0
  298. package/.llm/tooltip-provider.llm.md +68 -0
  299. package/.llm/tooltip-trigger.llm.md +70 -0
  300. package/.llm/tooltip.llm.md +129 -0
  301. package/.llm/typography.llm.md +161 -0
  302. package/.llm/use-carousel.llm.md +55 -0
  303. package/.llm/use-command-state.llm.md +32 -0
  304. package/.llm/use-is-mobile.llm.md +73 -0
  305. package/.llm/use-sidebar.llm.md +61 -0
  306. package/dist/components/ui/scroll-area.d.ts +5 -5
  307. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  308. package/dist/components/ui/stack.d.ts.map +1 -1
  309. package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -1
  310. package/dist/components/ui/theme-toggle.d.ts +0 -3
  311. package/dist/components/ui/theme-toggle.d.ts.map +1 -1
  312. package/dist/components/ui/theme.d.ts.map +1 -1
  313. package/dist/index.js +4972 -9636
  314. package/dist/index.js.map +1 -1
  315. package/dist/tsconfig.tsbuildinfo +1 -1
  316. package/package.json +2 -2
  317. package/src/components/ui/stack.tsx +3 -1
  318. package/src/components/ui/theme-toggle.tsx +1 -3
  319. package/src/components/ui/theme.tsx +6 -1
  320. package/src/styles/globals.css +57 -85
@@ -0,0 +1,110 @@
1
+ # Small
2
+
3
+ **Type**: component
4
+
5
+ Small - Fine print component for supplementary information Semantic small element for fine print, disclaimers, timestamps, and supplementary information. Uses "microcopy" variant for reduced visual prominence while maintaining readability.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Small } from '@neynar/ui';
11
+
12
+ <Small
13
+ color={value}
14
+ align={value}
15
+ transform={value}
16
+ weight={value}
17
+ htmlFor="value"
18
+ asChild={true}
19
+ italic={true}
20
+ underline={true}
21
+ strikethrough={true}
22
+ truncate={true}
23
+ srOnly={true}
24
+ className="value"
25
+ >
26
+ {/* Your content here */}
27
+ </Small>
28
+ ```
29
+
30
+ ## Component Props
31
+
32
+ ### color
33
+ - **Type**: `TypographyColor`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ### align
38
+ - **Type**: `"left" | "center" | "right" | "justify"`
39
+ - **Required**: No
40
+ - **Description**: No description available
41
+
42
+ ### transform
43
+ - **Type**: `"uppercase" | "lowercase" | "capitalize"`
44
+ - **Required**: No
45
+ - **Description**: No description available
46
+
47
+ ### weight
48
+ - **Type**: `"normal" | "medium" | "semibold" | "bold"`
49
+ - **Required**: No
50
+ - **Description**: No description available
51
+
52
+ ### htmlFor
53
+ - **Type**: `string`
54
+ - **Required**: No
55
+ - **Description**: No description available
56
+
57
+ ### asChild
58
+ - **Type**: `boolean`
59
+ - **Required**: No
60
+ - **Description**: No description available
61
+
62
+ ### italic
63
+ - **Type**: `boolean`
64
+ - **Required**: No
65
+ - **Description**: No description available
66
+
67
+ ### underline
68
+ - **Type**: `boolean`
69
+ - **Required**: No
70
+ - **Description**: No description available
71
+
72
+ ### strikethrough
73
+ - **Type**: `boolean`
74
+ - **Required**: No
75
+ - **Description**: No description available
76
+
77
+ ### truncate
78
+ - **Type**: `boolean`
79
+ - **Required**: No
80
+ - **Description**: No description available
81
+
82
+ ### srOnly
83
+ - **Type**: `boolean`
84
+ - **Required**: No
85
+ - **Description**: No description available
86
+
87
+ ### className
88
+ - **Type**: `string`
89
+ - **Required**: No
90
+ - **Description**: No description available
91
+
92
+ ### children
93
+ - **Type**: `React.ReactNode`
94
+ - **Required**: No
95
+ - **Description**: No description available
96
+
97
+ ## Examples
98
+
99
+ ```tsx
100
+ // Legal disclaimer
101
+ <Small>Terms and conditions apply. See details for more information.</Small>
102
+ // Timestamp or metadata
103
+ <Small color="muted">Last updated 2 minutes ago</Small>
104
+ // Copyright notice
105
+ <Small className="text-center">
106
+ © 2024 Neynar. All rights reserved.
107
+ </Small>
108
+ // Form help text
109
+ <Small color="muted">Password must be at least 8 characters long.</Small>
110
+ ```
@@ -0,0 +1,118 @@
1
+ # Span
2
+
3
+ **Type**: component
4
+
5
+ Span - Inline text component for text fragments and styling Generic inline element for styling text fragments within other content. Supports all typography variants while maintaining inline display behavior.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Span } from '@neynar/ui';
11
+
12
+ <Span
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
+ className="value"
26
+ >
27
+ {/* Your content here */}
28
+ </Span>
29
+ ```
30
+
31
+ ## Component Props
32
+
33
+ ### variant
34
+ - **Type**: `TypographyVariant`
35
+ - **Required**: No
36
+ - **Description**: No description available
37
+
38
+ ### color
39
+ - **Type**: `TypographyColor`
40
+ - **Required**: No
41
+ - **Description**: No description available
42
+
43
+ ### align
44
+ - **Type**: `"left" | "center" | "right" | "justify"`
45
+ - **Required**: No
46
+ - **Description**: No description available
47
+
48
+ ### transform
49
+ - **Type**: `"uppercase" | "lowercase" | "capitalize"`
50
+ - **Required**: No
51
+ - **Description**: No description available
52
+
53
+ ### weight
54
+ - **Type**: `"normal" | "medium" | "semibold" | "bold"`
55
+ - **Required**: No
56
+ - **Description**: No description available
57
+
58
+ ### htmlFor
59
+ - **Type**: `string`
60
+ - **Required**: No
61
+ - **Description**: No description available
62
+
63
+ ### asChild
64
+ - **Type**: `boolean`
65
+ - **Required**: No
66
+ - **Description**: No description available
67
+
68
+ ### italic
69
+ - **Type**: `boolean`
70
+ - **Required**: No
71
+ - **Description**: No description available
72
+
73
+ ### underline
74
+ - **Type**: `boolean`
75
+ - **Required**: No
76
+ - **Description**: No description available
77
+
78
+ ### strikethrough
79
+ - **Type**: `boolean`
80
+ - **Required**: No
81
+ - **Description**: No description available
82
+
83
+ ### truncate
84
+ - **Type**: `boolean`
85
+ - **Required**: No
86
+ - **Description**: No description available
87
+
88
+ ### srOnly
89
+ - **Type**: `boolean`
90
+ - **Required**: No
91
+ - **Description**: No description available
92
+
93
+ ### className
94
+ - **Type**: `string`
95
+ - **Required**: No
96
+ - **Description**: No description available
97
+
98
+ ### children
99
+ - **Type**: `React.ReactNode`
100
+ - **Required**: No
101
+ - **Description**: No description available
102
+
103
+ ## Examples
104
+
105
+ ```tsx
106
+ // Inline text styling
107
+ <p>
108
+ Regular text with <Span color="accent" weight="semibold">highlighted</Span> content
109
+ </p>
110
+ // Small inline details
111
+ <Span variant="details" color="muted">
112
+ Updated 5 minutes ago
113
+ </Span>
114
+ // Inline code reference
115
+ <Span variant="code" className="bg-muted px-1 rounded">
116
+ onClick
117
+ </Span>
118
+ ```
@@ -0,0 +1,182 @@
1
+ # Spinner
2
+
3
+ **Type**: component
4
+
5
+ Spinner - Loading indicator with animated rotation A circular loading spinner built on the Lucide React Loader2 icon with smooth rotation animation. Provides visual feedback to users during asynchronous operations such as data fetching, form submissions, or content loading. The spinner is highly customizable through CSS classes and supports all standard SVG props for size, color, and styling.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Spinner } from '@neynar/ui';
11
+
12
+ <Spinner
13
+ className="value"
14
+ color="value"
15
+ size={value}
16
+ strokeWidth={value}
17
+ "aria-label"="value"
18
+ role="value"
19
+ "aria-hidden"={value}
20
+ "aria-describedby"="value"
21
+ "aria-live"={value}
22
+ "aria-busy"={true}
23
+ style={value}
24
+ />
25
+ ```
26
+
27
+ ## Component Props
28
+
29
+ ### className
30
+ - **Type**: `string`
31
+ - **Required**: No
32
+ - **Description**: No description available
33
+
34
+ ### color
35
+ - **Type**: `string`
36
+ - **Required**: No
37
+ - **Description**: No description available
38
+
39
+ ### size
40
+ - **Type**: `number | string`
41
+ - **Required**: No
42
+ - **Description**: No description available
43
+
44
+ ### strokeWidth
45
+ - **Type**: `number | string`
46
+ - **Required**: No
47
+ - **Description**: No description available
48
+
49
+ ### "aria-label"
50
+ - **Type**: `string`
51
+ - **Required**: No
52
+ - **Description**: No description available
53
+
54
+ ### role
55
+ - **Type**: `string`
56
+ - **Required**: No
57
+ - **Description**: No description available
58
+
59
+ ### "aria-hidden"
60
+ - **Type**: `boolean | "false" | "true"`
61
+ - **Required**: No
62
+ - **Description**: No description available
63
+
64
+ ### "aria-describedby"
65
+ - **Type**: `string`
66
+ - **Required**: No
67
+ - **Description**: No description available
68
+
69
+ ### "aria-live"
70
+ - **Type**: `"off" | "polite" | "assertive"`
71
+ - **Required**: No
72
+ - **Description**: No description available
73
+
74
+ ### "aria-busy"
75
+ - **Type**: `boolean`
76
+ - **Required**: No
77
+ - **Description**: No description available
78
+
79
+ ### style
80
+ - **Type**: `React.CSSProperties`
81
+ - **Required**: No
82
+ - **Description**: No description available
83
+
84
+ ## Examples
85
+
86
+ ### Example 1
87
+ ```tsx
88
+ // Basic loading spinner with default size (16px)
89
+ <Spinner />
90
+ // Custom size using Tailwind size utilities
91
+ <Spinner className="size-6" />
92
+ <Spinner className="size-8" />
93
+ <Spinner className="size-12" />
94
+ // Custom color using text color classes
95
+ <Spinner className="text-primary" />
96
+ <Spinner className="text-destructive" />
97
+ <Spinner className="text-muted-foreground" />
98
+ ```
99
+ ### Example 2
100
+ ```tsx
101
+ // In loading buttons
102
+ import { Button } from "./button";
103
+ <Button disabled>
104
+ <Spinner className="mr-2 size-4" />
105
+ Loading...
106
+ </Button>
107
+ <Button variant="outline" disabled>
108
+ <Spinner className="mr-2 size-4" />
109
+ Processing
110
+ </Button>
111
+ // Icon-only loading button
112
+ <Button size="icon" disabled aria-label="Loading">
113
+ <Spinner className="size-4" />
114
+ </Button>
115
+ ```
116
+ ### Example 3
117
+ ```tsx
118
+ // Full-page loading state
119
+ <div className="flex min-h-screen items-center justify-center">
120
+ <div className="text-center space-y-4">
121
+ <Spinner className="size-12 mx-auto" />
122
+ <p className="text-muted-foreground">Loading your dashboard...</p>
123
+ </div>
124
+ </div>
125
+ // Card loading state
126
+ <div className="border rounded-lg p-8 flex flex-col items-center gap-3">
127
+ <Spinner className="size-8" />
128
+ <p className="text-sm text-muted-foreground">Fetching data...</p>
129
+ </div>
130
+ // Inline loading with text
131
+ <p className="flex items-center gap-2 text-sm">
132
+ <Spinner className="size-4" />
133
+ Syncing your data...
134
+ </p>
135
+ ```
136
+ ### Example 4
137
+ ```tsx
138
+ // Custom animation speed
139
+ // Slow rotation
140
+ <Spinner className="animate-[spin_2s_linear_infinite]" />
141
+ // Fast rotation
142
+ <Spinner className="animate-[spin_0.5s_linear_infinite]" />
143
+ // Custom size and color combination
144
+ <Spinner
145
+ className="size-6 text-blue-500"
146
+ strokeWidth={3}
147
+ />
148
+ // With background overlay
149
+ <div className="relative">
150
+ <div className="absolute inset-0 bg-background/50 backdrop-blur-sm flex items-center justify-center rounded-lg">
151
+ <Spinner className="size-8" />
152
+ </div>
153
+ <div>Your content here</div>
154
+ </div>
155
+ ```
156
+ ### Example 5
157
+ ```tsx
158
+ // Conditional rendering with loading state
159
+ function DataDisplay() {
160
+ const [isLoading, setIsLoading] = React.useState(true);
161
+ return (
162
+ <div className="space-y-4">
163
+ {isLoading ? (
164
+ <div className="flex justify-center p-8">
165
+ <Spinner className="size-6" />
166
+ </div>
167
+ ) : (
168
+ <div>Loaded content here</div>
169
+ )}
170
+ </div>
171
+ );
172
+ }
173
+ // With aria-live region for screen reader announcements
174
+ <div aria-live="polite" aria-atomic="true">
175
+ {isLoading && (
176
+ <div className="flex items-center gap-2">
177
+ <Spinner className="size-4" />
178
+ <span>Loading content, please wait...</span>
179
+ </div>
180
+ )}
181
+ </div>
182
+ ```
@@ -0,0 +1,28 @@
1
+ # Stack
2
+
3
+ **Type**: component
4
+
5
+ Stack - A flexible layout component for consistent spacing between elements Stack is a fundamental layout primitive that arranges child elements in either vertical or horizontal direction with consistent spacing. Built on flexbox principles, it provides a clean, declarative API for common layout patterns without requiring custom CSS or complex flex configurations. **Core Features:** - Consistent spacing using Tailwind's design system - Flexible direction control (vertical/horizontal) - Zero-config flexbox layouts with predictable behavior - Composable with other UI components and layout utilities - Full accessibility support with semantic HTML structure - TypeScript-first with comprehensive prop validation **Common Use Cases:** - Form layouts with consistent field spacing - Button groups and action bars - Content sections with uniform gaps - Navigation lists and menu structures - Card layouts and dashboard grids - Page sections and content hierarchy - Responsive component layouts **Design System Integration:** Stack integrates seamlessly with design systems by providing consistent spacing that aligns with Tailwind's spacing scale. This ensures visual harmony across your application and reduces the need for custom spacing utilities in most common layout scenarios.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Stack } from '@neynar/ui';
11
+
12
+ <Stack
13
+ spacing={value}
14
+ direction={value}
15
+ />
16
+ ```
17
+
18
+ ## Component Props
19
+
20
+ ### spacing
21
+ - **Type**: `StackSpacing`
22
+ - **Required**: No
23
+ - **Description**: No description available
24
+
25
+ ### direction
26
+ - **Type**: `StackDirection`
27
+ - **Required**: No
28
+ - **Description**: No description available
@@ -0,0 +1,110 @@
1
+ # Strong
2
+
3
+ **Type**: component
4
+
5
+ Strong - Emphasized text component for important content Semantic strong element for text that needs strong emphasis or importance. Uses "bodyEmphasized" variant with strong semantic meaning.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Strong } from '@neynar/ui';
11
+
12
+ <Strong
13
+ color={value}
14
+ align={value}
15
+ transform={value}
16
+ weight={value}
17
+ htmlFor="value"
18
+ asChild={true}
19
+ italic={true}
20
+ underline={true}
21
+ strikethrough={true}
22
+ truncate={true}
23
+ srOnly={true}
24
+ className="value"
25
+ >
26
+ {/* Your content here */}
27
+ </Strong>
28
+ ```
29
+
30
+ ## Component Props
31
+
32
+ ### color
33
+ - **Type**: `TypographyColor`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ### align
38
+ - **Type**: `"left" | "center" | "right" | "justify"`
39
+ - **Required**: No
40
+ - **Description**: No description available
41
+
42
+ ### transform
43
+ - **Type**: `"uppercase" | "lowercase" | "capitalize"`
44
+ - **Required**: No
45
+ - **Description**: No description available
46
+
47
+ ### weight
48
+ - **Type**: `"normal" | "medium" | "semibold" | "bold"`
49
+ - **Required**: No
50
+ - **Description**: No description available
51
+
52
+ ### htmlFor
53
+ - **Type**: `string`
54
+ - **Required**: No
55
+ - **Description**: No description available
56
+
57
+ ### asChild
58
+ - **Type**: `boolean`
59
+ - **Required**: No
60
+ - **Description**: No description available
61
+
62
+ ### italic
63
+ - **Type**: `boolean`
64
+ - **Required**: No
65
+ - **Description**: No description available
66
+
67
+ ### underline
68
+ - **Type**: `boolean`
69
+ - **Required**: No
70
+ - **Description**: No description available
71
+
72
+ ### strikethrough
73
+ - **Type**: `boolean`
74
+ - **Required**: No
75
+ - **Description**: No description available
76
+
77
+ ### truncate
78
+ - **Type**: `boolean`
79
+ - **Required**: No
80
+ - **Description**: No description available
81
+
82
+ ### srOnly
83
+ - **Type**: `boolean`
84
+ - **Required**: No
85
+ - **Description**: No description available
86
+
87
+ ### className
88
+ - **Type**: `string`
89
+ - **Required**: No
90
+ - **Description**: No description available
91
+
92
+ ### children
93
+ - **Type**: `React.ReactNode`
94
+ - **Required**: No
95
+ - **Description**: No description available
96
+
97
+ ## Examples
98
+
99
+ ```tsx
100
+ // Important information
101
+ <Strong>Important: This action cannot be undone.</Strong>
102
+ // Critical warning
103
+ <Strong color="destructive">Error: Invalid credentials provided.</Strong>
104
+ // In body text
105
+ <p>
106
+ Make sure to <Strong>save your changes</Strong> before leaving the page.
107
+ </p>
108
+ // Success message
109
+ <Strong color="success">Account created successfully!</Strong>
110
+ ```
@@ -0,0 +1,76 @@
1
+ # Switch
2
+
3
+ **Type**: component
4
+
5
+ Switch - Binary toggle control for on/off states A versatile toggle switch component built on Radix UI Switch primitive that provides an accessible way to toggle between on/off states. Commonly used for settings, preferences, and feature toggles that have immediate effects. Built with Radix UI Switch primitive and styled with Tailwind CSS to ensure consistent visual appearance across light and dark themes. The component automatically handles state management, accessibility, keyboard navigation, and form integration.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Switch } from '@neynar/ui';
11
+
12
+ <Switch
13
+ checked={true}
14
+ defaultChecked={true}
15
+ onCheckedChange={handleCheckedChange}
16
+ disabled={true}
17
+ required={true}
18
+ name="value"
19
+ value="value"
20
+ id="value"
21
+ asChild={true}
22
+ className="value"
23
+ />
24
+ ```
25
+
26
+ ## Component Props
27
+
28
+ ### checked
29
+ - **Type**: `boolean`
30
+ - **Required**: No
31
+ - **Description**: No description available
32
+
33
+ ### defaultChecked
34
+ - **Type**: `boolean`
35
+ - **Required**: No
36
+ - **Description**: No description available
37
+
38
+ ### onCheckedChange
39
+ - **Type**: `(checked: boolean) => void`
40
+ - **Required**: No
41
+ - **Description**: No description available
42
+
43
+ ### disabled
44
+ - **Type**: `boolean`
45
+ - **Required**: No
46
+ - **Description**: No description available
47
+
48
+ ### required
49
+ - **Type**: `boolean`
50
+ - **Required**: No
51
+ - **Description**: No description available
52
+
53
+ ### name
54
+ - **Type**: `string`
55
+ - **Required**: No
56
+ - **Description**: No description available
57
+
58
+ ### value
59
+ - **Type**: `string`
60
+ - **Required**: No
61
+ - **Description**: No description available
62
+
63
+ ### id
64
+ - **Type**: `string`
65
+ - **Required**: No
66
+ - **Description**: No description available
67
+
68
+ ### asChild
69
+ - **Type**: `boolean`
70
+ - **Required**: No
71
+ - **Description**: No description available
72
+
73
+ ### className
74
+ - **Type**: `string`
75
+ - **Required**: No
76
+ - **Description**: No description available
@@ -0,0 +1,36 @@
1
+ # TableBody
2
+
3
+ **Type**: component
4
+
5
+ TableBody - Container for table data rows Main content area of the table containing all data rows. Applies border styling where the last row has no bottom border. Contains TableRow components with TableCell elements.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { TableBody } from '@neynar/ui';
11
+
12
+ <TableBody
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </TableBody>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ```tsx
34
+ <TableBody>
35
+ <TableRow>
36
+ <TableCell>
@@ -0,0 +1,48 @@
1
+ # TableCaption
2
+
3
+ **Type**: component
4
+
5
+ TableCaption - Table caption for describing table content and context Provides a description, title, or additional context for the table. Displayed with muted styling and proper spacing. Essential for accessibility as screen readers announce the caption to provide table context.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { TableCaption } from '@neynar/ui';
11
+
12
+ <TableCaption
13
+ className="value"
14
+ >
15
+ {/* Your content here */}
16
+ </TableCaption>
17
+ ```
18
+
19
+ ## Component Props
20
+
21
+ ### className
22
+ - **Type**: `string`
23
+ - **Required**: No
24
+ - **Description**: No description available
25
+
26
+ ### children
27
+ - **Type**: `React.ReactNode`
28
+ - **Required**: No
29
+ - **Description**: No description available
30
+
31
+ ## Examples
32
+
33
+ ```tsx
34
+ <Table>
35
+ <TableCaption>Recent casts from your network</TableCaption>
36
+ <TableHeader>...</TableHeader>
37
+ <TableBody>...</TableBody>
38
+ </Table>
39
+ // Caption with additional context
40
+ <Table>
41
+ <TableCaption>
42
+ Channel analytics for the last 30 days.
43
+ Data updated every hour.
44
+ </TableCaption>
45
+ <TableHeader>...</TableHeader>
46
+ <TableBody>...</TableBody>
47
+ </Table>
48
+ ```