@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,184 @@
1
+ # ChartTooltip
2
+
3
+ **Type**: component
4
+
5
+ Tooltip component for charts Re-export of Recharts Tooltip component with support for custom content. Use with ChartTooltipContent for consistent styling and theming integration.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { ChartTooltip } from '@neynar/ui';
11
+
12
+ <ChartTooltip
13
+ content={value}
14
+ active={true}
15
+ payload={[]}
16
+ label={value}
17
+ formatter={() => {}}
18
+ labelFormatter={[]}
19
+ cursor={value}
20
+ position={value}
21
+ offset={0}
22
+ shared={true}
23
+ portal={value}
24
+ wrapperStyle={value}
25
+ wrapperClassName="value"
26
+ animationDuration={0}
27
+ animationEasing="value"
28
+ allowEscapeViewBox={value}
29
+ separator="value"
30
+ useTranslate3d={true}
31
+ coordinate={value}
32
+ filterNull={true}
33
+ itemSorter={() => {}}
34
+ itemStyle={value}
35
+ labelStyle={value}
36
+ contentStyle={value}
37
+ />
38
+ ```
39
+
40
+ ## Component Props
41
+
42
+ ### content
43
+ - **Type**: `React.ComponentType<any> | React.ReactElement`
44
+ - **Required**: No
45
+ - **Description**: No description available
46
+
47
+ ### active
48
+ - **Type**: `boolean`
49
+ - **Required**: No
50
+ - **Description**: No description available
51
+
52
+ ### payload
53
+ - **Type**: `any[]`
54
+ - **Required**: No
55
+ - **Description**: No description available
56
+
57
+ ### label
58
+ - **Type**: `string | number`
59
+ - **Required**: No
60
+ - **Description**: No description available
61
+
62
+ ### formatter
63
+ - **Type**: `(
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
+ value: any,
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ name: any,
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ props: any,
70
+ ) => [React.ReactNode, React.ReactNode] | React.ReactNode`
71
+ - **Required**: No
72
+ - **Description**: No description available
73
+
74
+ ### labelFormatter
75
+ - **Type**: `(label: any, payload: any[]) => React.ReactNode`
76
+ - **Required**: No
77
+ - **Description**: No description available
78
+
79
+ ### cursor
80
+ - **Type**: `boolean | React.ComponentType<any> | React.ReactElement | object`
81
+ - **Required**: No
82
+ - **Description**: No description available
83
+
84
+ ### position
85
+ - **Type**: `{ x?: number; y?: number }`
86
+ - **Required**: No
87
+ - **Description**: No description available
88
+
89
+ ### offset
90
+ - **Type**: `number`
91
+ - **Required**: No
92
+ - **Description**: No description available
93
+
94
+ ### shared
95
+ - **Type**: `boolean`
96
+ - **Required**: No
97
+ - **Description**: No description available
98
+
99
+ ### portal
100
+ - **Type**: `HTMLElement`
101
+ - **Required**: No
102
+ - **Description**: No description available
103
+
104
+ ### wrapperStyle
105
+ - **Type**: `React.CSSProperties`
106
+ - **Required**: No
107
+ - **Description**: No description available
108
+
109
+ ### wrapperClassName
110
+ - **Type**: `string`
111
+ - **Required**: No
112
+ - **Description**: No description available
113
+
114
+ ### animationDuration
115
+ - **Type**: `number`
116
+ - **Required**: No
117
+ - **Description**: No description available
118
+
119
+ ### animationEasing
120
+ - **Type**: `string`
121
+ - **Required**: No
122
+ - **Description**: No description available
123
+
124
+ ### allowEscapeViewBox
125
+ - **Type**: `{ x?: boolean; y?: boolean }`
126
+ - **Required**: No
127
+ - **Description**: No description available
128
+
129
+ ### separator
130
+ - **Type**: `string`
131
+ - **Required**: No
132
+ - **Description**: No description available
133
+
134
+ ### useTranslate3d
135
+ - **Type**: `boolean`
136
+ - **Required**: No
137
+ - **Description**: No description available
138
+
139
+ ### coordinate
140
+ - **Type**: `{ x?: number; y?: number }`
141
+ - **Required**: No
142
+ - **Description**: No description available
143
+
144
+ ### filterNull
145
+ - **Type**: `boolean`
146
+ - **Required**: No
147
+ - **Description**: No description available
148
+
149
+ ### itemSorter
150
+ - **Type**: `(item: any) => number`
151
+ - **Required**: No
152
+ - **Description**: No description available
153
+
154
+ ### itemStyle
155
+ - **Type**: `React.CSSProperties`
156
+ - **Required**: No
157
+ - **Description**: No description available
158
+
159
+ ### labelStyle
160
+ - **Type**: `React.CSSProperties`
161
+ - **Required**: No
162
+ - **Description**: No description available
163
+
164
+ ### contentStyle
165
+ - **Type**: `React.CSSProperties`
166
+ - **Required**: No
167
+ - **Description**: No description available
168
+
169
+ ## Examples
170
+
171
+ ### Example 1
172
+ ```tsx
173
+ // Basic tooltip
174
+ <ChartTooltip content={<ChartTooltipContent />} />
175
+ ```
176
+ ### Example 2
177
+ ```tsx
178
+ // Tooltip with custom positioning
179
+ <ChartTooltip
180
+ content={<ChartTooltipContent />}
181
+ cursor={false}
182
+ position={{ x: 10, y: 10 }}
183
+ />
184
+ ```
@@ -0,0 +1,100 @@
1
+ # Checkbox
2
+
3
+ **Type**: component
4
+
5
+ A versatile checkbox component for binary and multi-selection interfaces Built on Radix UI Checkbox primitive, this component provides a fully accessible checkbox with support for controlled/uncontrolled states, indeterminate state, and comprehensive form integration. Features consistent styling with the design system and proper keyboard navigation. The component automatically renders a hidden input element when used within a form to ensure proper form submission and native validation support. Supports three states: checked (true), unchecked (false), and indeterminate for partial selections.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Checkbox } from '@neynar/ui';
11
+
12
+ <Checkbox
13
+ className="value"
14
+ asChild={true}
15
+ checked={value}
16
+ defaultChecked={value}
17
+ onCheckedChange={handleCheckedChange}
18
+ disabled={true}
19
+ required={true}
20
+ name="value"
21
+ value="value"
22
+ id="value"
23
+ "aria-label"="value"
24
+ "aria-labelledby"="value"
25
+ "aria-describedby"="value"
26
+ "aria-invalid"={value}
27
+ />
28
+ ```
29
+
30
+ ## Component Props
31
+
32
+ ### className
33
+ - **Type**: `string`
34
+ - **Required**: No
35
+ - **Description**: No description available
36
+
37
+ ### asChild
38
+ - **Type**: `boolean`
39
+ - **Required**: No
40
+ - **Description**: No description available
41
+
42
+ ### checked
43
+ - **Type**: `boolean | "indeterminate"`
44
+ - **Required**: No
45
+ - **Description**: No description available
46
+
47
+ ### defaultChecked
48
+ - **Type**: `boolean | "indeterminate"`
49
+ - **Required**: No
50
+ - **Description**: No description available
51
+
52
+ ### onCheckedChange
53
+ - **Type**: `(checked: boolean | "indeterminate") => void`
54
+ - **Required**: No
55
+ - **Description**: No description available
56
+
57
+ ### disabled
58
+ - **Type**: `boolean`
59
+ - **Required**: No
60
+ - **Description**: No description available
61
+
62
+ ### required
63
+ - **Type**: `boolean`
64
+ - **Required**: No
65
+ - **Description**: No description available
66
+
67
+ ### name
68
+ - **Type**: `string`
69
+ - **Required**: No
70
+ - **Description**: No description available
71
+
72
+ ### value
73
+ - **Type**: `string`
74
+ - **Required**: No
75
+ - **Description**: No description available
76
+
77
+ ### id
78
+ - **Type**: `string`
79
+ - **Required**: No
80
+ - **Description**: No description available
81
+
82
+ ### "aria-label"
83
+ - **Type**: `string`
84
+ - **Required**: No
85
+ - **Description**: No description available
86
+
87
+ ### "aria-labelledby"
88
+ - **Type**: `string`
89
+ - **Required**: No
90
+ - **Description**: No description available
91
+
92
+ ### "aria-describedby"
93
+ - **Type**: `string`
94
+ - **Required**: No
95
+ - **Description**: No description available
96
+
97
+ ### "aria-invalid"
98
+ - **Type**: `boolean | "false" | "true" | "grammar" | "spelling"`
99
+ - **Required**: No
100
+ - **Description**: No description available
package/.llm/cn.llm.md ADDED
@@ -0,0 +1,46 @@
1
+ # cn
2
+
3
+ **Type**: function
4
+
5
+ cn - Combines class names with Tailwind CSS conflict resolution This utility function combines multiple class names into a single string, automatically resolving Tailwind CSS class conflicts. It uses clsx for conditional class handling and tailwind-merge to ensure later classes override earlier ones when they conflict.
6
+
7
+ ## API Surface
8
+
9
+ ```typescript
10
+ import { cn } from '@neynar/ui';
11
+
12
+ export function cn(inputs: ClassValue[]): void { ... }
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ ### inputs
18
+ - **Type**: `ClassValue[]`
19
+ - **Required**: Yes
20
+ - **Description**: Class names to combine. Can be strings, objects, arrays,
21
+ ## Returns
22
+
23
+ - **Description**: A single string of combined and merged class names
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Basic usage
29
+ cn("px-2 py-1", "bg-blue-500", "text-white")
30
+ // Returns: "px-2 py-1 bg-blue-500 text-white"
31
+ ```
32
+ ### Example 2
33
+ ```tsx
34
+ // With conditional classes
35
+ cn(
36
+ "base-class",
37
+ isActive && "active-class",
38
+ isDisabled && "disabled-class"
39
+ )
40
+ ```
41
+ ### Example 3
42
+ ```tsx
43
+ // Overriding Tailwind classes
44
+ cn("px-4", "px-2") // Returns: "px-2" (later class wins)
45
+ cn("text-red-500", "text-blue-500") // Returns: "text-blue-500"
46
+ ```
@@ -0,0 +1,45 @@
1
+ # Code
2
+
3
+ **Type**: component
4
+
5
+ Code - Inline code component Monospace text for inline code snippets and technical references. Uses text-sm with monospace font and subtle background. Defaults to code element.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Code } from '@neynar/ui';
11
+
12
+ <Code
13
+ as={value}
14
+ className="value"
15
+ >
16
+ {/* Your content here */}
17
+ </Code>
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
+ // Inline code
41
+ <Code>const message = "Hello, world!";</Code>
42
+ // Variable reference
43
+ <p>Set the <Code>API_KEY</Code> environment variable.</p>
44
+ // Terminal command
45
+ <Code className="bg-accent">npm install
@@ -0,0 +1,109 @@
1
+ # CollapsibleContent
2
+
3
+ **Type**: component
4
+
5
+ Content container that can be expanded or collapsed The panel containing content that is shown or hidden based on the collapsible state. Built on Radix UI CollapsibleContent primitive with automatic height animations, accessibility attributes, and smooth transitions when toggling between expanded and collapsed states. **Key Features:** - Automatic height animations using CSS variables - Proper accessibility tree management (hidden when collapsed) - CSS data attributes for custom styling and animations - Support for forceMount to keep content in DOM when collapsed - Seamless composition via asChild pattern
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { CollapsibleContent } from '@neynar/ui';
11
+
12
+ <CollapsibleContent
13
+ asChild={true}
14
+ forceMount={true}
15
+ />
16
+ ```
17
+
18
+ ## Component Props
19
+
20
+ ### asChild
21
+ - **Type**: `boolean`
22
+ - **Required**: No
23
+ - **Description**: When true, merges props onto immediate child instead of rendering div
24
+
25
+ ### forceMount
26
+ - **Type**: `boolean`
27
+ - **Required**: No
28
+ - **Description**: When true, forces content to stay in DOM even when collapsed
29
+
30
+ ## Examples
31
+
32
+ ### Example 1
33
+ ```tsx
34
+ // Basic content panel with simple styling
35
+ <CollapsibleContent className="pt-2">
36
+ <div className="rounded-md border px-4 py-2 text-sm bg-muted/50">
37
+ Yes. Free to use for personal and commercial projects.
38
+ No attribution required.
39
+ </div>
40
+ </CollapsibleContent>
41
+ ```
42
+ ### Example 2
43
+ ```tsx
44
+ // Content with multiple elements and spacing
45
+ <CollapsibleContent className="space-y-2 pt-2">
46
+ <div className="rounded-md border px-4 py-3 font-mono text-sm shadow-sm">
47
+ ### Example 3
48
+ ```tsx
49
+ // Content with custom animations using CSS variables
50
+ <CollapsibleContent className="overflow-hidden text-sm transition-all data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down">
51
+ <div className="pb-4 pt-0 px-1">
52
+ Content with smooth height animations. The CSS variables
53
+ --radix-collapsible-content-height and --radix-collapsible-content-width
54
+ are available for custom animation implementations.
55
+ </div>
56
+ </CollapsibleContent>
57
+ ```
58
+ ### Example 4
59
+ ```tsx
60
+ // Force mounted content (stays in DOM when collapsed)
61
+ <CollapsibleContent forceMount className="data-[state=closed]:hidden">
62
+ <div className="p-4 text-sm">
63
+ This content remains in the DOM even when collapsed,
64
+ useful for maintaining form state or for SSR consistency.
65
+ </div>
66
+ </CollapsibleContent>
67
+ ```
68
+ ### Example 5
69
+ ```tsx
70
+ // Content with asChild composition
71
+ <CollapsibleContent asChild>
72
+ <motion.div
73
+ initial={{ height: 0 }}
74
+ animate={{ height: "auto" }}
75
+ exit={{ height: 0 }}
76
+ className="overflow-hidden"
77
+ >
78
+ <div className="p-4">
79
+ Content with custom Framer Motion animations
80
+ </div>
81
+ </motion.div>
82
+ </CollapsibleContent>
83
+ ```
84
+ ### Example 6
85
+ ```tsx
86
+ // Content with complex nested structure
87
+ <CollapsibleContent className="overflow-hidden">
88
+ <div className="border-t pt-4 mt-2">
89
+ <div className="grid grid-cols-2 gap-4">
90
+ <div className="space-y-2">
91
+ <h4 className="font-medium">Documentation</h4>
92
+ <ul className="text-sm space-y-1 text-muted-foreground">
93
+ <li>Getting Started</li>
94
+ <li>Installation</li>
95
+ <li>Configuration</li>
96
+ </ul>
97
+ </div>
98
+ <div className="space-y-2">
99
+ <h4 className="font-medium">Examples</h4>
100
+ <ul className="text-sm space-y-1 text-muted-foreground">
101
+ <li>Basic Usage</li>
102
+ <li>Advanced Patterns</li>
103
+ <li>Custom Styling</li>
104
+ </ul>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </CollapsibleContent>
109
+ ```
@@ -0,0 +1,75 @@
1
+ # CollapsibleTrigger
2
+
3
+ **Type**: component
4
+
5
+ Interactive trigger element that toggles collapsible content visibility The clickable element that controls the expanded/collapsed state of the associated CollapsibleContent. Built on Radix UI CollapsibleTrigger primitive with automatic ARIA management and keyboard support. Supports the asChild prop for composition with custom button components or other interactive elements. **Key Features:** - Automatic `aria-expanded` state management - Built-in keyboard navigation (Space/Enter) - Flexible composition via `asChild` pattern - Seamless integration with any interactive element
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { CollapsibleTrigger } from '@neynar/ui';
11
+
12
+ <CollapsibleTrigger
13
+ asChild={true}
14
+ />
15
+ ```
16
+
17
+ ## Component Props
18
+
19
+ ### asChild
20
+ - **Type**: `boolean`
21
+ - **Required**: No
22
+ - **Description**: When true, merges props onto immediate child instead of rendering button
23
+
24
+ ## Examples
25
+
26
+ ### Example 1
27
+ ```tsx
28
+ // Simple text trigger with default button styling
29
+ <CollapsibleTrigger className="font-medium hover:underline">
30
+ Can I use this in my project?
31
+ </CollapsibleTrigger>
32
+ ```
33
+ ### Example 2
34
+ ```tsx
35
+ // Composed with Button component for consistent styling
36
+ <CollapsibleTrigger asChild>
37
+ <Button variant="outline" className="w-full justify-between">
38
+ Advanced Settings
39
+ <ChevronDown className="h-4 w-4 transition-transform duration-200 group-data-[state=open]:rotate-180" />
40
+ </Button>
41
+ </CollapsibleTrigger>
42
+ ```
43
+ ### Example 3
44
+ ```tsx
45
+ // Custom styled trigger with icon animation
46
+ <CollapsibleTrigger className="flex w-full items-center justify-between py-4 text-left text-sm font-medium transition-all hover:underline focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
47
+ How does it work?
48
+ <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200 data-[state=open]:rotate-180" />
49
+ </CollapsibleTrigger>
50
+ ```
51
+ ### Example 4
52
+ ```tsx
53
+ // Trigger composed with icon button
54
+ <CollapsibleTrigger asChild>
55
+ <Button variant="ghost" size="sm" className="h-8 w-8 p-0">
56
+ <MoreHorizontal className="h-4 w-4" />
57
+ <span className="sr-only">Toggle options</span>
58
+ </Button>
59
+ </CollapsibleTrigger>
60
+ ```
61
+ ### Example 5
62
+ ```tsx
63
+ // Trigger with custom element using asChild
64
+ <CollapsibleTrigger asChild>
65
+ <div
66
+ role="button"
67
+ tabIndex={0}
68
+ className="flex items-center gap-2 p-2 rounded cursor-pointer hover:bg-accent"
69
+ >
70
+ <FolderIcon className="h-4 w-4" />
71
+ <span>Project Files</span>
72
+ <ChevronRight className="h-3 w-3 transition-transform data-[state=open]:rotate-90" />
73
+ </div>
74
+ </CollapsibleTrigger>
75
+ ```
@@ -0,0 +1,109 @@
1
+ # Collapsible
2
+
3
+ **Type**: component
4
+
5
+ An interactive component which expands/collapses a panel A flexible container component built on Radix UI Collapsible primitives that allows users to toggle the visibility of content sections. Unlike Accordion, Collapsible provides more flexibility without enforcing specific visual structures or mutual exclusivity. Perfect for FAQ sections, expandable details, settings panels, sidebar navigation, and any content that should be conditionally visible. Built on `@radix-ui/react-collapsible` with enhanced TypeScript support and comprehensive prop documentation.
6
+
7
+ ## JSX Usage
8
+
9
+ ```jsx
10
+ import { Collapsible } from '@neynar/ui';
11
+
12
+ <Collapsible
13
+ asChild={true}
14
+ defaultOpen={true}
15
+ open={true}
16
+ onOpenChange={handleOpenChange}
17
+ disabled={true}
18
+ />
19
+ ```
20
+
21
+ ## Component Props
22
+
23
+ ### asChild
24
+ - **Type**: `boolean`
25
+ - **Required**: No
26
+ - **Description**: No description available
27
+
28
+ ### defaultOpen
29
+ - **Type**: `boolean`
30
+ - **Required**: No
31
+ - **Description**: No description available
32
+
33
+ ### open
34
+ - **Type**: `boolean`
35
+ - **Required**: No
36
+ - **Description**: No description available
37
+
38
+ ### onOpenChange
39
+ - **Type**: `(open: 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
+ ## Examples
49
+
50
+ ### Example 1
51
+ ```tsx
52
+ // Basic controlled collapsible with state management
53
+ const [isOpen, setIsOpen] = React.useState(false)
54
+ <Collapsible open={isOpen} onOpenChange={setIsOpen}>
55
+ <CollapsibleTrigger asChild>
56
+ <Button variant="outline" className="w-full justify-between">
57
+ Can I use this in my project?
58
+ <ChevronDown className={cn(
59
+ "h-4 w-4 transition-transform duration-200",
60
+ isOpen && "rotate-180"
61
+ )} />
62
+ </Button>
63
+ </CollapsibleTrigger>
64
+ <CollapsibleContent className="overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down">
65
+ <div className="p-4 border rounded-md bg-muted/50 mt-2">
66
+ Yes. Free to use for personal and commercial projects.
67
+ No attribution required.
68
+ </div>
69
+ </CollapsibleContent>
70
+ </Collapsible>
71
+ ```
72
+ ### Example 2
73
+ ```tsx
74
+ // Uncontrolled collapsible with default state
75
+ <Collapsible defaultOpen={true} className="w-full space-y-2">
76
+ <div className="flex items-center justify-between">
77
+ <h4 className="text-sm font-semibold">
78
+ ### Example 3
79
+ ```tsx
80
+ // FAQ-style implementation with custom animations
81
+ <Collapsible className="group" data-orientation="vertical">
82
+ <CollapsibleTrigger className="flex w-full items-center justify-between py-4 text-sm font-medium transition-all hover:underline focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
83
+ How do I get started?
84
+ <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200 group-data-[state=open]:rotate-180" />
85
+ </CollapsibleTrigger>
86
+ <CollapsibleContent className="overflow-hidden text-sm transition-all data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down">
87
+ <div className="pb-4 pt-0">
88
+ Getting started is easy! Simply follow our quick setup guide,
89
+ install the required dependencies, and begin building your application.
90
+ Check out our documentation for detailed instructions.
91
+ </div>
92
+ </CollapsibleContent>
93
+ </Collapsible>
94
+ ```
95
+ ### Example 4
96
+ ```tsx
97
+ // Disabled collapsible state
98
+ <Collapsible disabled className="opacity-50 cursor-not-allowed">
99
+ <CollapsibleTrigger className="flex w-full items-center justify-between py-4 text-sm font-medium">
100
+ This section is temporarily unavailable
101
+ <ChevronDown className="h-4 w-4" />
102
+ </CollapsibleTrigger>
103
+ <CollapsibleContent>
104
+ <div className="pb-4 pt-0 text-sm text-muted-foreground">
105
+ This content is currently disabled and cannot be accessed.
106
+ </div>
107
+ </CollapsibleContent>
108
+ </Collapsible>
109
+ ```