@neynar/ui 0.1.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 (364) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +195 -0
  3. package/dist/components/ui/accordion.d.ts +229 -0
  4. package/dist/components/ui/accordion.d.ts.map +1 -0
  5. package/dist/components/ui/alert-dialog.d.ts +247 -0
  6. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  7. package/dist/components/ui/alert.d.ts +187 -0
  8. package/dist/components/ui/alert.d.ts.map +1 -0
  9. package/dist/components/ui/aspect-ratio.d.ts +94 -0
  10. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  11. package/dist/components/ui/avatar.d.ts +244 -0
  12. package/dist/components/ui/avatar.d.ts.map +1 -0
  13. package/dist/components/ui/badge.d.ts +163 -0
  14. package/dist/components/ui/badge.d.ts.map +1 -0
  15. package/dist/components/ui/breadcrumb.d.ts +281 -0
  16. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  17. package/dist/components/ui/button.d.ts +129 -0
  18. package/dist/components/ui/button.d.ts.map +1 -0
  19. package/dist/components/ui/calendar.d.ts +169 -0
  20. package/dist/components/ui/calendar.d.ts.map +1 -0
  21. package/dist/components/ui/card.d.ts +365 -0
  22. package/dist/components/ui/card.d.ts.map +1 -0
  23. package/dist/components/ui/carousel.d.ts +369 -0
  24. package/dist/components/ui/carousel.d.ts.map +1 -0
  25. package/dist/components/ui/chart.d.ts +442 -0
  26. package/dist/components/ui/chart.d.ts.map +1 -0
  27. package/dist/components/ui/checkbox.d.ts +88 -0
  28. package/dist/components/ui/checkbox.d.ts.map +1 -0
  29. package/dist/components/ui/collapsible.d.ts +182 -0
  30. package/dist/components/ui/collapsible.d.ts.map +1 -0
  31. package/dist/components/ui/combobox.d.ts +270 -0
  32. package/dist/components/ui/combobox.d.ts.map +1 -0
  33. package/dist/components/ui/command.d.ts +355 -0
  34. package/dist/components/ui/command.d.ts.map +1 -0
  35. package/dist/components/ui/container.d.ts +102 -0
  36. package/dist/components/ui/container.d.ts.map +1 -0
  37. package/dist/components/ui/context-menu.d.ts +339 -0
  38. package/dist/components/ui/context-menu.d.ts.map +1 -0
  39. package/dist/components/ui/date-picker.d.ts +145 -0
  40. package/dist/components/ui/date-picker.d.ts.map +1 -0
  41. package/dist/components/ui/dialog.d.ts +322 -0
  42. package/dist/components/ui/dialog.d.ts.map +1 -0
  43. package/dist/components/ui/drawer.d.ts +154 -0
  44. package/dist/components/ui/drawer.d.ts.map +1 -0
  45. package/dist/components/ui/dropdown-menu.d.ts +349 -0
  46. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  47. package/dist/components/ui/empty-state.d.ts +133 -0
  48. package/dist/components/ui/empty-state.d.ts.map +1 -0
  49. package/dist/components/ui/hover-card.d.ts +109 -0
  50. package/dist/components/ui/hover-card.d.ts.map +1 -0
  51. package/dist/components/ui/input.d.ts +89 -0
  52. package/dist/components/ui/input.d.ts.map +1 -0
  53. package/dist/components/ui/label.d.ts +93 -0
  54. package/dist/components/ui/label.d.ts.map +1 -0
  55. package/dist/components/ui/menubar.d.ts +306 -0
  56. package/dist/components/ui/menubar.d.ts.map +1 -0
  57. package/dist/components/ui/navigation-menu.d.ts +318 -0
  58. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  59. package/dist/components/ui/pagination.d.ts +343 -0
  60. package/dist/components/ui/pagination.d.ts.map +1 -0
  61. package/dist/components/ui/popover.d.ts +178 -0
  62. package/dist/components/ui/popover.d.ts.map +1 -0
  63. package/dist/components/ui/progress.d.ts +64 -0
  64. package/dist/components/ui/progress.d.ts.map +1 -0
  65. package/dist/components/ui/radio-group.d.ts +144 -0
  66. package/dist/components/ui/radio-group.d.ts.map +1 -0
  67. package/dist/components/ui/resizable.d.ts +164 -0
  68. package/dist/components/ui/resizable.d.ts.map +1 -0
  69. package/dist/components/ui/scroll-area.d.ts +82 -0
  70. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  71. package/dist/components/ui/select.d.ts +316 -0
  72. package/dist/components/ui/select.d.ts.map +1 -0
  73. package/dist/components/ui/separator.d.ts +80 -0
  74. package/dist/components/ui/separator.d.ts.map +1 -0
  75. package/dist/components/ui/sheet.d.ts +346 -0
  76. package/dist/components/ui/sheet.d.ts.map +1 -0
  77. package/dist/components/ui/sidebar.d.ts +1561 -0
  78. package/dist/components/ui/sidebar.d.ts.map +1 -0
  79. package/dist/components/ui/skeleton.d.ts +66 -0
  80. package/dist/components/ui/skeleton.d.ts.map +1 -0
  81. package/dist/components/ui/slider.d.ts +95 -0
  82. package/dist/components/ui/slider.d.ts.map +1 -0
  83. package/dist/components/ui/sonner.d.ts +101 -0
  84. package/dist/components/ui/sonner.d.ts.map +1 -0
  85. package/dist/components/ui/stack.d.ts +192 -0
  86. package/dist/components/ui/stack.d.ts.map +1 -0
  87. package/dist/components/ui/stories/accordion.stories.d.ts +71 -0
  88. package/dist/components/ui/stories/accordion.stories.d.ts.map +1 -0
  89. package/dist/components/ui/stories/alert-dialog.stories.d.ts +39 -0
  90. package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +1 -0
  91. package/dist/components/ui/stories/alert.stories.d.ts +48 -0
  92. package/dist/components/ui/stories/alert.stories.d.ts.map +1 -0
  93. package/dist/components/ui/stories/aspect-ratio.stories.d.ts +53 -0
  94. package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -0
  95. package/dist/components/ui/stories/avatar.stories.d.ts +49 -0
  96. package/dist/components/ui/stories/avatar.stories.d.ts.map +1 -0
  97. package/dist/components/ui/stories/badge.stories.d.ts +64 -0
  98. package/dist/components/ui/stories/badge.stories.d.ts.map +1 -0
  99. package/dist/components/ui/stories/breadcrumb.stories.d.ts +27 -0
  100. package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +1 -0
  101. package/dist/components/ui/stories/button.stories.d.ts +92 -0
  102. package/dist/components/ui/stories/button.stories.d.ts.map +1 -0
  103. package/dist/components/ui/stories/calendar.stories.d.ts +94 -0
  104. package/dist/components/ui/stories/calendar.stories.d.ts.map +1 -0
  105. package/dist/components/ui/stories/card.stories.d.ts +29 -0
  106. package/dist/components/ui/stories/card.stories.d.ts.map +1 -0
  107. package/dist/components/ui/stories/carousel.stories.d.ts +42 -0
  108. package/dist/components/ui/stories/carousel.stories.d.ts.map +1 -0
  109. package/dist/components/ui/stories/chart.stories.d.ts +51 -0
  110. package/dist/components/ui/stories/chart.stories.d.ts.map +1 -0
  111. package/dist/components/ui/stories/checkbox.stories.d.ts +72 -0
  112. package/dist/components/ui/stories/checkbox.stories.d.ts.map +1 -0
  113. package/dist/components/ui/stories/cn.stories.d.ts +19 -0
  114. package/dist/components/ui/stories/cn.stories.d.ts.map +1 -0
  115. package/dist/components/ui/stories/collapsible.stories.d.ts +51 -0
  116. package/dist/components/ui/stories/collapsible.stories.d.ts.map +1 -0
  117. package/dist/components/ui/stories/colors.stories.d.ts +31 -0
  118. package/dist/components/ui/stories/colors.stories.d.ts.map +1 -0
  119. package/dist/components/ui/stories/combobox.stories.d.ts +89 -0
  120. package/dist/components/ui/stories/combobox.stories.d.ts.map +1 -0
  121. package/dist/components/ui/stories/command.stories.d.ts +69 -0
  122. package/dist/components/ui/stories/command.stories.d.ts.map +1 -0
  123. package/dist/components/ui/stories/container.stories.d.ts +42 -0
  124. package/dist/components/ui/stories/container.stories.d.ts.map +1 -0
  125. package/dist/components/ui/stories/context-menu.stories.d.ts +32 -0
  126. package/dist/components/ui/stories/context-menu.stories.d.ts.map +1 -0
  127. package/dist/components/ui/stories/date-picker.stories.d.ts +67 -0
  128. package/dist/components/ui/stories/date-picker.stories.d.ts.map +1 -0
  129. package/dist/components/ui/stories/dialog.stories.d.ts +48 -0
  130. package/dist/components/ui/stories/dialog.stories.d.ts.map +1 -0
  131. package/dist/components/ui/stories/drawer.stories.d.ts +33 -0
  132. package/dist/components/ui/stories/drawer.stories.d.ts.map +1 -0
  133. package/dist/components/ui/stories/dropdown-menu.stories.d.ts +31 -0
  134. package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +1 -0
  135. package/dist/components/ui/stories/empty-state.stories.d.ts +74 -0
  136. package/dist/components/ui/stories/empty-state.stories.d.ts.map +1 -0
  137. package/dist/components/ui/stories/hover-card.stories.d.ts +35 -0
  138. package/dist/components/ui/stories/hover-card.stories.d.ts.map +1 -0
  139. package/dist/components/ui/stories/input.stories.d.ts +69 -0
  140. package/dist/components/ui/stories/input.stories.d.ts.map +1 -0
  141. package/dist/components/ui/stories/label.stories.d.ts +47 -0
  142. package/dist/components/ui/stories/label.stories.d.ts.map +1 -0
  143. package/dist/components/ui/stories/menubar.stories.d.ts +39 -0
  144. package/dist/components/ui/stories/menubar.stories.d.ts.map +1 -0
  145. package/dist/components/ui/stories/navigation-menu.stories.d.ts +44 -0
  146. package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +1 -0
  147. package/dist/components/ui/stories/pagination.stories.d.ts +33 -0
  148. package/dist/components/ui/stories/pagination.stories.d.ts.map +1 -0
  149. package/dist/components/ui/stories/popover.stories.d.ts +36 -0
  150. package/dist/components/ui/stories/popover.stories.d.ts.map +1 -0
  151. package/dist/components/ui/stories/progress.stories.d.ts +38 -0
  152. package/dist/components/ui/stories/progress.stories.d.ts.map +1 -0
  153. package/dist/components/ui/stories/radio-group.stories.d.ts +76 -0
  154. package/dist/components/ui/stories/radio-group.stories.d.ts.map +1 -0
  155. package/dist/components/ui/stories/resizable.stories.d.ts +49 -0
  156. package/dist/components/ui/stories/resizable.stories.d.ts.map +1 -0
  157. package/dist/components/ui/stories/scroll-area.stories.d.ts +35 -0
  158. package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -0
  159. package/dist/components/ui/stories/select.stories.d.ts +51 -0
  160. package/dist/components/ui/stories/select.stories.d.ts.map +1 -0
  161. package/dist/components/ui/stories/separator.stories.d.ts +58 -0
  162. package/dist/components/ui/stories/separator.stories.d.ts.map +1 -0
  163. package/dist/components/ui/stories/sheet.stories.d.ts +43 -0
  164. package/dist/components/ui/stories/sheet.stories.d.ts.map +1 -0
  165. package/dist/components/ui/stories/sidebar.stories.d.ts +60 -0
  166. package/dist/components/ui/stories/sidebar.stories.d.ts.map +1 -0
  167. package/dist/components/ui/stories/skeleton.stories.d.ts +42 -0
  168. package/dist/components/ui/stories/skeleton.stories.d.ts.map +1 -0
  169. package/dist/components/ui/stories/slider.stories.d.ts +99 -0
  170. package/dist/components/ui/stories/slider.stories.d.ts.map +1 -0
  171. package/dist/components/ui/stories/sonner.stories.d.ts +9 -0
  172. package/dist/components/ui/stories/sonner.stories.d.ts.map +1 -0
  173. package/dist/components/ui/stories/stack.stories.d.ts +39 -0
  174. package/dist/components/ui/stories/stack.stories.d.ts.map +1 -0
  175. package/dist/components/ui/stories/switch.stories.d.ts +71 -0
  176. package/dist/components/ui/stories/switch.stories.d.ts.map +1 -0
  177. package/dist/components/ui/stories/table.stories.d.ts +40 -0
  178. package/dist/components/ui/stories/table.stories.d.ts.map +1 -0
  179. package/dist/components/ui/stories/tabs.stories.d.ts +62 -0
  180. package/dist/components/ui/stories/tabs.stories.d.ts.map +1 -0
  181. package/dist/components/ui/stories/text-field.stories.d.ts +78 -0
  182. package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -0
  183. package/dist/components/ui/stories/textarea.stories.d.ts +57 -0
  184. package/dist/components/ui/stories/textarea.stories.d.ts.map +1 -0
  185. package/dist/components/ui/stories/theme-toggle.stories.d.ts +71 -0
  186. package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +1 -0
  187. package/dist/components/ui/stories/theme.stories.d.ts +51 -0
  188. package/dist/components/ui/stories/theme.stories.d.ts.map +1 -0
  189. package/dist/components/ui/stories/toggle-group.stories.d.ts +71 -0
  190. package/dist/components/ui/stories/toggle-group.stories.d.ts.map +1 -0
  191. package/dist/components/ui/stories/toggle.stories.d.ts +78 -0
  192. package/dist/components/ui/stories/toggle.stories.d.ts.map +1 -0
  193. package/dist/components/ui/stories/tooltip.stories.d.ts +37 -0
  194. package/dist/components/ui/stories/tooltip.stories.d.ts.map +1 -0
  195. package/dist/components/ui/stories/typography.stories.d.ts +137 -0
  196. package/dist/components/ui/stories/typography.stories.d.ts.map +1 -0
  197. package/dist/components/ui/stories/use-mobile.stories.d.ts +20 -0
  198. package/dist/components/ui/stories/use-mobile.stories.d.ts.map +1 -0
  199. package/dist/components/ui/stories/use-theme.stories.d.ts +23 -0
  200. package/dist/components/ui/stories/use-theme.stories.d.ts.map +1 -0
  201. package/dist/components/ui/switch.d.ts +84 -0
  202. package/dist/components/ui/switch.d.ts.map +1 -0
  203. package/dist/components/ui/table.d.ts +321 -0
  204. package/dist/components/ui/table.d.ts.map +1 -0
  205. package/dist/components/ui/tabs.d.ts +260 -0
  206. package/dist/components/ui/tabs.d.ts.map +1 -0
  207. package/dist/components/ui/text-field.d.ts +157 -0
  208. package/dist/components/ui/text-field.d.ts.map +1 -0
  209. package/dist/components/ui/textarea.d.ts +84 -0
  210. package/dist/components/ui/textarea.d.ts.map +1 -0
  211. package/dist/components/ui/theme-toggle.d.ts +105 -0
  212. package/dist/components/ui/theme-toggle.d.ts.map +1 -0
  213. package/dist/components/ui/theme.d.ts +110 -0
  214. package/dist/components/ui/theme.d.ts.map +1 -0
  215. package/dist/components/ui/toggle-group.d.ts +133 -0
  216. package/dist/components/ui/toggle-group.d.ts.map +1 -0
  217. package/dist/components/ui/toggle.d.ts +84 -0
  218. package/dist/components/ui/toggle.d.ts.map +1 -0
  219. package/dist/components/ui/tooltip.d.ts +202 -0
  220. package/dist/components/ui/tooltip.d.ts.map +1 -0
  221. package/dist/components/ui/typography.d.ts +287 -0
  222. package/dist/components/ui/typography.d.ts.map +1 -0
  223. package/dist/hooks/use-mobile.d.ts +74 -0
  224. package/dist/hooks/use-mobile.d.ts.map +1 -0
  225. package/dist/hooks/use-theme.d.ts +142 -0
  226. package/dist/hooks/use-theme.d.ts.map +1 -0
  227. package/dist/index.d.ts +57 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +27498 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/lib/utils.d.ts +43 -0
  232. package/dist/lib/utils.d.ts.map +1 -0
  233. package/dist/tsconfig.tsbuildinfo +1 -0
  234. package/docs/llm/colors.md +273 -0
  235. package/docs/llm/components/buttons.md +68 -0
  236. package/docs/llm/components/cards.md +53 -0
  237. package/docs/llm/components/display.md +134 -0
  238. package/docs/llm/components/feedback.md +96 -0
  239. package/docs/llm/components/forms.md +90 -0
  240. package/docs/llm/components/layout.md +59 -0
  241. package/docs/llm/components/menus.md +70 -0
  242. package/docs/llm/components/navigation.md +80 -0
  243. package/docs/llm/components/overlays.md +83 -0
  244. package/docs/llm/components/tables.md +73 -0
  245. package/docs/llm/components/typography.md +199 -0
  246. package/docs/llm/components/utilities.md +114 -0
  247. package/docs/llm/guide.md +165 -0
  248. package/llms.txt +122 -0
  249. package/package.json +104 -0
  250. package/src/components/ui/accordion.tsx +285 -0
  251. package/src/components/ui/alert-dialog.tsx +387 -0
  252. package/src/components/ui/alert.tsx +243 -0
  253. package/src/components/ui/aspect-ratio.tsx +99 -0
  254. package/src/components/ui/avatar.tsx +288 -0
  255. package/src/components/ui/badge.tsx +205 -0
  256. package/src/components/ui/breadcrumb.tsx +378 -0
  257. package/src/components/ui/button.tsx +195 -0
  258. package/src/components/ui/calendar.tsx +371 -0
  259. package/src/components/ui/card.tsx +447 -0
  260. package/src/components/ui/carousel.tsx +624 -0
  261. package/src/components/ui/chart.tsx +802 -0
  262. package/src/components/ui/checkbox.tsx +113 -0
  263. package/src/components/ui/collapsible.tsx +207 -0
  264. package/src/components/ui/combobox.tsx +373 -0
  265. package/src/components/ui/command.tsx +518 -0
  266. package/src/components/ui/container.tsx +114 -0
  267. package/src/components/ui/context-menu.tsx +563 -0
  268. package/src/components/ui/date-picker.tsx +213 -0
  269. package/src/components/ui/dialog.tsx +447 -0
  270. package/src/components/ui/drawer.tsx +273 -0
  271. package/src/components/ui/dropdown-menu.tsx +578 -0
  272. package/src/components/ui/empty-state.tsx +145 -0
  273. package/src/components/ui/hover-card.tsx +144 -0
  274. package/src/components/ui/input.tsx +106 -0
  275. package/src/components/ui/label.tsx +110 -0
  276. package/src/components/ui/menubar.tsx +553 -0
  277. package/src/components/ui/navigation-menu.tsx +471 -0
  278. package/src/components/ui/pagination.tsx +456 -0
  279. package/src/components/ui/popover.tsx +216 -0
  280. package/src/components/ui/progress.tsx +88 -0
  281. package/src/components/ui/radio-group.tsx +183 -0
  282. package/src/components/ui/resizable.tsx +209 -0
  283. package/src/components/ui/scroll-area.tsx +132 -0
  284. package/src/components/ui/select.tsx +485 -0
  285. package/src/components/ui/separator.tsx +101 -0
  286. package/src/components/ui/sheet.tsx +495 -0
  287. package/src/components/ui/sidebar.tsx +2211 -0
  288. package/src/components/ui/skeleton.tsx +76 -0
  289. package/src/components/ui/slider.tsx +147 -0
  290. package/src/components/ui/sonner.tsx +120 -0
  291. package/src/components/ui/stack.tsx +180 -0
  292. package/src/components/ui/stories/accordion.stories.tsx +429 -0
  293. package/src/components/ui/stories/alert-dialog.stories.tsx +519 -0
  294. package/src/components/ui/stories/alert.stories.tsx +228 -0
  295. package/src/components/ui/stories/aspect-ratio.stories.tsx +200 -0
  296. package/src/components/ui/stories/avatar.stories.tsx +317 -0
  297. package/src/components/ui/stories/badge.stories.tsx +260 -0
  298. package/src/components/ui/stories/breadcrumb.stories.tsx +482 -0
  299. package/src/components/ui/stories/button.stories.tsx +266 -0
  300. package/src/components/ui/stories/calendar.stories.tsx +375 -0
  301. package/src/components/ui/stories/card.stories.tsx +308 -0
  302. package/src/components/ui/stories/carousel.stories.tsx +328 -0
  303. package/src/components/ui/stories/chart.stories.tsx +430 -0
  304. package/src/components/ui/stories/checkbox.stories.tsx +297 -0
  305. package/src/components/ui/stories/cn.stories.tsx +433 -0
  306. package/src/components/ui/stories/collapsible.stories.tsx +256 -0
  307. package/src/components/ui/stories/colors.stories.tsx +502 -0
  308. package/src/components/ui/stories/combobox.stories.tsx +301 -0
  309. package/src/components/ui/stories/command.stories.tsx +632 -0
  310. package/src/components/ui/stories/container.stories.tsx +250 -0
  311. package/src/components/ui/stories/context-menu.stories.tsx +446 -0
  312. package/src/components/ui/stories/date-picker.stories.tsx +378 -0
  313. package/src/components/ui/stories/dialog.stories.tsx +535 -0
  314. package/src/components/ui/stories/drawer.stories.tsx +364 -0
  315. package/src/components/ui/stories/dropdown-menu.stories.tsx +374 -0
  316. package/src/components/ui/stories/empty-state.stories.tsx +244 -0
  317. package/src/components/ui/stories/hover-card.stories.tsx +355 -0
  318. package/src/components/ui/stories/input.stories.tsx +289 -0
  319. package/src/components/ui/stories/label.stories.tsx +294 -0
  320. package/src/components/ui/stories/menubar.stories.tsx +764 -0
  321. package/src/components/ui/stories/navigation-menu.stories.tsx +539 -0
  322. package/src/components/ui/stories/pagination.stories.tsx +604 -0
  323. package/src/components/ui/stories/popover.stories.tsx +392 -0
  324. package/src/components/ui/stories/progress.stories.tsx +218 -0
  325. package/src/components/ui/stories/radio-group.stories.tsx +400 -0
  326. package/src/components/ui/stories/resizable.stories.tsx +417 -0
  327. package/src/components/ui/stories/scroll-area.stories.tsx +180 -0
  328. package/src/components/ui/stories/select.stories.tsx +389 -0
  329. package/src/components/ui/stories/separator.stories.tsx +192 -0
  330. package/src/components/ui/stories/sheet.stories.tsx +468 -0
  331. package/src/components/ui/stories/sidebar.stories.tsx +731 -0
  332. package/src/components/ui/stories/skeleton.stories.tsx +216 -0
  333. package/src/components/ui/stories/slider.stories.tsx +321 -0
  334. package/src/components/ui/stories/sonner.stories.tsx +373 -0
  335. package/src/components/ui/stories/stack.stories.tsx +222 -0
  336. package/src/components/ui/stories/switch.stories.tsx +202 -0
  337. package/src/components/ui/stories/table.stories.tsx +541 -0
  338. package/src/components/ui/stories/tabs.stories.tsx +544 -0
  339. package/src/components/ui/stories/text-field.stories.tsx +280 -0
  340. package/src/components/ui/stories/textarea.stories.tsx +245 -0
  341. package/src/components/ui/stories/theme-toggle.stories.tsx +275 -0
  342. package/src/components/ui/stories/theme.stories.tsx +412 -0
  343. package/src/components/ui/stories/toggle-group.stories.tsx +337 -0
  344. package/src/components/ui/stories/toggle.stories.tsx +325 -0
  345. package/src/components/ui/stories/tooltip.stories.tsx +444 -0
  346. package/src/components/ui/stories/typography.stories.tsx +1586 -0
  347. package/src/components/ui/stories/use-mobile.stories.tsx +420 -0
  348. package/src/components/ui/stories/use-theme.stories.tsx +531 -0
  349. package/src/components/ui/switch.tsx +106 -0
  350. package/src/components/ui/table.tsx +424 -0
  351. package/src/components/ui/tabs.tsx +316 -0
  352. package/src/components/ui/text-field.tsx +206 -0
  353. package/src/components/ui/textarea.tsx +98 -0
  354. package/src/components/ui/theme-toggle.tsx +185 -0
  355. package/src/components/ui/theme.tsx +148 -0
  356. package/src/components/ui/toggle-group.tsx +196 -0
  357. package/src/components/ui/toggle.tsx +115 -0
  358. package/src/components/ui/tooltip.tsx +253 -0
  359. package/src/components/ui/typography.tsx +468 -0
  360. package/src/hooks/use-mobile.ts +91 -0
  361. package/src/hooks/use-theme.ts +319 -0
  362. package/src/index.ts +77 -0
  363. package/src/lib/utils.ts +57 -0
  364. package/src/styles/globals.css +160 -0
@@ -0,0 +1,1561 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ import { Button } from "@/components/ui/button";
4
+ import { Input } from "@/components/ui/input";
5
+ import { Separator } from "@/components/ui/separator";
6
+ import { TooltipContent } from "@/components/ui/tooltip";
7
+ type SidebarContextProps = {
8
+ state: "expanded" | "collapsed";
9
+ open: boolean;
10
+ setOpen: (open: boolean) => void;
11
+ openMobile: boolean;
12
+ setOpenMobile: (open: boolean) => void;
13
+ isMobile: boolean;
14
+ toggleSidebar: () => void;
15
+ };
16
+ /**
17
+ * Hook to access sidebar state and control functions
18
+ *
19
+ * Provides access to the sidebar's state management including expanded/collapsed states,
20
+ * mobile-specific behavior, and toggle functions. This hook must be used within a
21
+ * SidebarProvider component tree to function properly.
22
+ *
23
+ * @returns {SidebarContextProps} Object containing sidebar state and control functions:
24
+ * - `state`: "expanded" | "collapsed" - Current sidebar state
25
+ * - `open`: boolean - Whether sidebar is open (desktop)
26
+ * - `setOpen`: (open: boolean) => void - Function to control sidebar open state
27
+ * - `openMobile`: boolean - Whether sidebar is open on mobile
28
+ * - `setOpenMobile`: (open: boolean) => void - Function to control mobile sidebar state
29
+ * - `isMobile`: boolean - Whether current viewport is considered mobile
30
+ * - `toggleSidebar`: () => void - Function to toggle sidebar state
31
+ *
32
+ * @throws {Error} When used outside of SidebarProvider context
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * // Basic usage for toggle button
37
+ * function ToggleButton() {
38
+ * const { state, toggleSidebar } = useSidebar()
39
+ * return (
40
+ * <button onClick={toggleSidebar}>
41
+ * {state === "expanded" ? "Collapse" : "Expand"}
42
+ * </button>
43
+ * )
44
+ * }
45
+ * ```
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * // Conditional rendering based on state
50
+ * function ConditionalContent() {
51
+ * const { state, isMobile } = useSidebar()
52
+ * if (isMobile) return <MobileOnlyContent />
53
+ * return state === "expanded" ? <FullContent /> : <CompactContent />
54
+ * }
55
+ * ```
56
+ *
57
+ * @see {@link SidebarProvider} - Required context provider
58
+ * @since 1.0.0
59
+ */
60
+ declare function useSidebar(): SidebarContextProps;
61
+ /**
62
+ * Context provider for comprehensive sidebar state management
63
+ *
64
+ * The SidebarProvider is the foundational component that manages all sidebar behavior
65
+ * including state persistence, responsive design, keyboard shortcuts, and mobile handling.
66
+ * It provides context to all sidebar-related components and should wrap your entire
67
+ * application or the section containing the sidebar.
68
+ *
69
+ * @component
70
+ *
71
+ * @param {boolean} [defaultOpen=true] - Initial open state when uncontrolled
72
+ * @param {boolean} [open] - Controlled open state (makes component controlled)
73
+ * @param {(open: boolean) => void} [onOpenChange] - Callback for open state changes
74
+ * @param {string} [className] - Additional CSS classes for wrapper
75
+ * @param {React.CSSProperties} [style] - Inline styles including CSS variables
76
+ * @param {React.ReactNode} children - Child components
77
+ *
78
+ * @example
79
+ * ```tsx
80
+ * // Basic uncontrolled usage
81
+ * <SidebarProvider>
82
+ * <Sidebar />
83
+ * <SidebarInset>
84
+ * <main>Your content</main>
85
+ * </SidebarInset>
86
+ * </SidebarProvider>
87
+ * ```
88
+ *
89
+ * @example
90
+ * ```tsx
91
+ * // Controlled usage with custom state
92
+ * function App() {
93
+ * const [sidebarOpen, setSidebarOpen] = useState(false)
94
+ * return (
95
+ * <SidebarProvider open={sidebarOpen} onOpenChange={setSidebarOpen}>
96
+ * <Sidebar />
97
+ * <SidebarInset>Content</SidebarInset>
98
+ * </SidebarProvider>
99
+ * )
100
+ * }
101
+ * ```
102
+ *
103
+ * @example
104
+ * ```tsx
105
+ * // Custom width with CSS variables
106
+ * <SidebarProvider
107
+ * style={{
108
+ * "--sidebar-width": "20rem",
109
+ * "--sidebar-width-mobile": "18rem"
110
+ * }}
111
+ * >
112
+ * <Sidebar />
113
+ * </SidebarProvider>
114
+ * ```
115
+ *
116
+ * @features
117
+ * - State persistence via cookies
118
+ * - Keyboard shortcut (Cmd/Ctrl+B) support
119
+ * - Responsive mobile behavior
120
+ * - CSS variable-based theming
121
+ * - Tooltip provider integration
122
+ *
123
+ * @accessibility
124
+ * - Keyboard shortcuts for power users
125
+ * - Mobile-optimized touch interactions
126
+ * - Focus management for modal-like mobile behavior
127
+ *
128
+ * @see {@link useSidebar} - Hook to access provided context
129
+ * @see {@link Sidebar} - Main sidebar component
130
+ * @since 1.0.0
131
+ */
132
+ declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React.ComponentProps<"div"> & {
133
+ defaultOpen?: boolean;
134
+ open?: boolean;
135
+ onOpenChange?: (open: boolean) => void;
136
+ }): import("react/jsx-runtime").JSX.Element;
137
+ /**
138
+ * Flexible and responsive navigation sidebar component
139
+ *
140
+ * The Sidebar component is the main container for navigation content, supporting multiple
141
+ * visual variants, collapsible behaviors, and responsive design patterns. It automatically
142
+ * adapts between desktop layouts and mobile sheet overlays based on viewport size.
143
+ *
144
+ * @component
145
+ *
146
+ * @param {"left" | "right"} [side="left"] - Which side of the screen the sidebar appears on
147
+ * @param {"sidebar" | "floating" | "inset"} [variant="sidebar"] - Visual variant:
148
+ * - `sidebar`: Standard full-height sidebar
149
+ * - `floating`: Sidebar with padding, rounded corners, and shadow
150
+ * - `inset`: Sidebar with margin that affects main content layout
151
+ * @param {"offcanvas" | "icon" | "none"} [collapsible="offcanvas"] - Collapse behavior:
152
+ * - `offcanvas`: Slides completely off-screen when collapsed
153
+ * - `icon`: Collapses to icon-only width, hiding text labels
154
+ * - `none`: Cannot be collapsed, always visible
155
+ * @param {string} [className] - Additional CSS classes
156
+ * @param {React.ReactNode} children - Sidebar content (Header, Content, Footer)
157
+ *
158
+ * @example
159
+ * ```tsx
160
+ * // Standard navigation sidebar
161
+ * <SidebarProvider>
162
+ * <Sidebar>
163
+ * <SidebarHeader>
164
+ * <h2>My Application</h2>
165
+ * </SidebarHeader>
166
+ * <SidebarContent>
167
+ * <SidebarGroup>
168
+ * <SidebarGroupLabel>Main</SidebarGroupLabel>
169
+ * <SidebarGroupContent>
170
+ * <SidebarMenu>
171
+ * <SidebarMenuItem>
172
+ * <SidebarMenuButton asChild>
173
+ * <Link href="/dashboard">
174
+ * <Home />
175
+ * <span>Dashboard</span>
176
+ * </Link>
177
+ * </SidebarMenuButton>
178
+ * </SidebarMenuItem>
179
+ * </SidebarMenu>
180
+ * </SidebarGroupContent>
181
+ * </SidebarGroup>
182
+ * </SidebarContent>
183
+ * <SidebarFooter>
184
+ * <SidebarMenu>
185
+ * <SidebarMenuItem>
186
+ * <SidebarMenuButton>
187
+ * <Settings />
188
+ * <span>Settings</span>
189
+ * </SidebarMenuButton>
190
+ * </SidebarMenuItem>
191
+ * </SidebarMenu>
192
+ * </SidebarFooter>
193
+ * </Sidebar>
194
+ * <SidebarInset>
195
+ * <main>Main content area</main>
196
+ * </SidebarInset>
197
+ * </SidebarProvider>
198
+ * ```
199
+ *
200
+ * @example
201
+ * ```tsx
202
+ * // Icon-collapsible sidebar with tooltips
203
+ * <SidebarProvider>
204
+ * <Sidebar collapsible="icon">
205
+ * <SidebarContent>
206
+ * <SidebarGroup>
207
+ * <SidebarGroupLabel>Navigation</SidebarGroupLabel>
208
+ * <SidebarGroupContent>
209
+ * <SidebarMenu>
210
+ * <SidebarMenuItem>
211
+ * <SidebarMenuButton tooltip="Go to Dashboard">
212
+ * <Home />
213
+ * <span>Dashboard</span>
214
+ * </SidebarMenuButton>
215
+ * </SidebarMenuItem>
216
+ * </SidebarMenu>
217
+ * </SidebarGroupContent>
218
+ * </SidebarGroup>
219
+ * </SidebarContent>
220
+ * </Sidebar>
221
+ * </SidebarProvider>
222
+ * ```
223
+ *
224
+ * @example
225
+ * ```tsx
226
+ * // Floating variant with custom styling
227
+ * <SidebarProvider>
228
+ * <Sidebar variant="floating">
229
+ * <SidebarHeader>
230
+ * <SidebarTrigger />
231
+ * <h2>Floating Sidebar</h2>
232
+ * </SidebarHeader>
233
+ * <SidebarContent>
234
+ * // Navigation content
235
+ * </SidebarContent>
236
+ * </Sidebar>
237
+ * </SidebarProvider>
238
+ * ```
239
+ *
240
+ * @accessibility
241
+ * - Keyboard shortcut: Cmd/Ctrl+B to toggle visibility
242
+ * - Full keyboard navigation support within sidebar
243
+ * - ARIA attributes indicate current state (expanded/collapsed)
244
+ * - Screen reader announcements for state changes
245
+ * - Mobile: Sheet overlay with proper focus management
246
+ * - Desktop: Seamless keyboard navigation between sidebar and main content
247
+ *
248
+ * @responsive
249
+ * - **Desktop**: Fixed-position sidebar with smooth width transitions
250
+ * - **Mobile**: Sheet overlay that slides in from the side
251
+ * - **Tablet**: Responsive breakpoints adapt behavior automatically
252
+ *
253
+ * @see {@link SidebarProvider} - Required context provider
254
+ * @see {@link SidebarHeader} - Header section component
255
+ * @see {@link SidebarContent} - Scrollable content area
256
+ * @see {@link SidebarFooter} - Footer section component
257
+ * @see {@link SidebarTrigger} - Toggle button component
258
+ * @see {@link SidebarRail} - Interactive resize handle
259
+ * @see {@link https://ui.shadcn.com/docs/components/sidebar} - shadcn/ui Sidebar documentation
260
+ * @since 1.0.0
261
+ */
262
+ declare function Sidebar({ side, variant, collapsible, className, children, ...props }: React.ComponentProps<"div"> & {
263
+ side?: "left" | "right";
264
+ variant?: "sidebar" | "floating" | "inset";
265
+ collapsible?: "offcanvas" | "icon" | "none";
266
+ }): import("react/jsx-runtime").JSX.Element;
267
+ /**
268
+ * Interactive button component for toggling sidebar visibility
269
+ *
270
+ * A pre-styled button that toggles the sidebar between expanded and collapsed states
271
+ * on desktop, or opens/closes the mobile sheet overlay on smaller screens. Features
272
+ * a panel icon and proper accessibility attributes.
273
+ *
274
+ * @component
275
+ *
276
+ * @param {string} [className] - Additional CSS classes
277
+ * @param {(event: React.MouseEvent) => void} [onClick] - Additional click handler
278
+ * @param {...React.ComponentProps<typeof Button>} props - All Button component props
279
+ *
280
+ * @example
281
+ * ```tsx
282
+ * // Basic usage in header
283
+ * <header className="flex items-center gap-2 p-4">
284
+ * <SidebarTrigger />
285
+ * <h1>My Application</h1>
286
+ * </header>
287
+ * ```
288
+ *
289
+ * @example
290
+ * ```tsx
291
+ * // With custom click handler
292
+ * <SidebarTrigger
293
+ * onClick={(e) => {
294
+ * console.log('Sidebar toggled')
295
+ * // Additional logic here
296
+ * }}
297
+ * />
298
+ * ```
299
+ *
300
+ * @accessibility
301
+ * - Screen reader label: "Toggle Sidebar"
302
+ * - Keyboard accessible (Enter and Space keys)
303
+ * - Focus visible indicator for keyboard navigation
304
+ * - ARIA attributes for assistive technology
305
+ *
306
+ * @see {@link useSidebar} - Hook for custom toggle implementations
307
+ * @see {@link SidebarProvider} - Required context provider
308
+ * @since 1.0.0
309
+ */
310
+ declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
311
+ /**
312
+ * Interactive rail component for sidebar edge interaction
313
+ *
314
+ * Provides a subtle interactive area along the sidebar edge that users can click
315
+ * to toggle the sidebar state. The rail is positioned at the sidebar boundary and
316
+ * includes hover states for discoverability. Only visible on desktop viewports.
317
+ *
318
+ * @component
319
+ *
320
+ * @param {string} [className] - Additional CSS classes
321
+ * @param {...React.ComponentProps<"button">} props - All button element props
322
+ *
323
+ * @example
324
+ * ```tsx
325
+ * // Basic usage (typically placed at end of Sidebar)
326
+ * <Sidebar>
327
+ * <SidebarHeader>Header content</SidebarHeader>
328
+ * <SidebarContent>Navigation content</SidebarContent>
329
+ * <SidebarFooter>Footer content</SidebarFooter>
330
+ * <SidebarRail />
331
+ * </Sidebar>
332
+ * ```
333
+ *
334
+ * @accessibility
335
+ * - ARIA label: "Toggle Sidebar"
336
+ * - Keyboard accessible but with tabIndex={-1} to avoid tab trap
337
+ * - Hover and focus states for discoverability
338
+ * - Cursor changes based on sidebar state and side
339
+ *
340
+ * @see {@link SidebarTrigger} - Alternative toggle button
341
+ * @since 1.0.0
342
+ */
343
+ declare function SidebarRail({ className, ...props }: React.ComponentProps<"button">): import("react/jsx-runtime").JSX.Element;
344
+ /**
345
+ * Main content container that adapts to sidebar layout
346
+ *
347
+ * The SidebarInset component serves as the primary content area that automatically
348
+ * adjusts its layout and spacing based on the sidebar's state and variant. It provides
349
+ * proper margins, responsive behavior, and styling coordination with the sidebar.
350
+ *
351
+ * @component
352
+ *
353
+ * @param {string} [className] - Additional CSS classes
354
+ * @param {...React.ComponentProps<"main">} props - All main element props
355
+ *
356
+ * @example
357
+ * ```tsx
358
+ * // Standard layout with header and content
359
+ * <SidebarProvider>
360
+ * <Sidebar>Sidebar content</Sidebar>
361
+ * <SidebarInset>
362
+ * <header className="flex h-16 items-center gap-2 px-4">
363
+ * <SidebarTrigger />
364
+ * <h1>Page Title</h1>
365
+ * </header>
366
+ * <main className="flex-1 p-4">
367
+ * <p>Your main content goes here</p>
368
+ * </main>
369
+ * </SidebarInset>
370
+ * </SidebarProvider>
371
+ * ```
372
+ *
373
+ * @example
374
+ * ```tsx
375
+ * // With inset variant coordination
376
+ * <SidebarProvider>
377
+ * <Sidebar variant="inset">Sidebar</Sidebar>
378
+ * <SidebarInset>
379
+ * // Content automatically gets proper spacing
380
+ * <div>Content with proper inset margins</div>
381
+ * </SidebarInset>
382
+ * </SidebarProvider>
383
+ * ```
384
+ *
385
+ * @features
386
+ * - Automatic layout adjustment based on sidebar state
387
+ * - Responsive margin and padding coordination
388
+ * - Proper spacing for different sidebar variants
389
+ * - Smooth transitions when sidebar state changes
390
+ *
391
+ * @see {@link Sidebar} - Main sidebar component
392
+ * @see {@link SidebarProvider} - Required context provider
393
+ * @since 1.0.0
394
+ */
395
+ declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): import("react/jsx-runtime").JSX.Element;
396
+ /**
397
+ * Input component optimized for sidebar usage
398
+ *
399
+ * A pre-styled input field designed to integrate seamlessly within sidebar layouts.
400
+ * Commonly used for search functionality, filters, or other input needs within
401
+ * the sidebar context. Features appropriate sizing and styling for sidebar use.
402
+ *
403
+ * @component
404
+ *
405
+ * @param {string} [className] - Additional CSS classes
406
+ * @param {...React.ComponentProps<typeof Input>} props - All Input component props
407
+ *
408
+ * @example
409
+ * ```tsx
410
+ * // Search input in sidebar header
411
+ * <SidebarHeader>
412
+ * <h2>Navigation</h2>
413
+ * <SidebarInput
414
+ * placeholder="Search..."
415
+ * onChange={(e) => handleSearch(e.target.value)}
416
+ * />
417
+ * </SidebarHeader>
418
+ * ```
419
+ *
420
+ * @example
421
+ * ```tsx
422
+ * // Filter input with icon
423
+ * <SidebarGroup>
424
+ * <SidebarGroupLabel>Filter Options</SidebarGroupLabel>
425
+ * <SidebarGroupContent>
426
+ * <SidebarInput
427
+ * type="search"
428
+ * placeholder="Filter items"
429
+ * className="mb-2"
430
+ * />
431
+ * </SidebarGroupContent>
432
+ * </SidebarGroup>
433
+ * ```
434
+ *
435
+ * @see {@link Input} - Base input component
436
+ * @since 1.0.0
437
+ */
438
+ declare function SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>): import("react/jsx-runtime").JSX.Element;
439
+ /**
440
+ * Header section container for sidebar content
441
+ *
442
+ * A flexible container for sidebar header content such as logos, application titles,
443
+ * user information, or action buttons. The header remains visible even when the sidebar
444
+ * is collapsed to icon mode, making it ideal for persistent branding or key actions.
445
+ *
446
+ * @component
447
+ *
448
+ * @param {string} [className] - Additional CSS classes
449
+ * @param {...React.ComponentProps<"div">} props - All div element props
450
+ *
451
+ * @example
452
+ * ```tsx
453
+ * // Simple header with title
454
+ * <SidebarHeader>
455
+ * <h2 className="text-lg font-semibold">My Application</h2>
456
+ * </SidebarHeader>
457
+ * ```
458
+ *
459
+ * @example
460
+ * ```tsx
461
+ * // Header with trigger and search
462
+ * <SidebarHeader>
463
+ * <div className="flex items-center justify-between">
464
+ * <h2>Navigation</h2>
465
+ * <SidebarTrigger />
466
+ * </div>
467
+ * <SidebarInput placeholder="Search..." className="mt-2" />
468
+ * </SidebarHeader>
469
+ * ```
470
+ *
471
+ * @example
472
+ * ```tsx
473
+ * // Header with user menu
474
+ * <SidebarHeader>
475
+ * <SidebarMenu>
476
+ * <SidebarMenuItem>
477
+ * <DropdownMenu>
478
+ * <DropdownMenuTrigger asChild>
479
+ * <SidebarMenuButton>
480
+ * <Avatar />
481
+ * <span>John Doe</span>
482
+ * <ChevronDown className="ml-auto" />
483
+ * </SidebarMenuButton>
484
+ * </DropdownMenuTrigger>
485
+ * <DropdownMenuContent>
486
+ * <DropdownMenuItem>Profile</DropdownMenuItem>
487
+ * <DropdownMenuItem>Settings</DropdownMenuItem>
488
+ * <DropdownMenuItem>Logout</DropdownMenuItem>
489
+ * </DropdownMenuContent>
490
+ * </DropdownMenu>
491
+ * </SidebarMenuItem>
492
+ * </SidebarMenu>
493
+ * </SidebarHeader>
494
+ * ```
495
+ *
496
+ * @see {@link SidebarFooter} - Footer section component
497
+ * @see {@link SidebarContent} - Main scrollable content area
498
+ * @since 1.0.0
499
+ */
500
+ declare function SidebarHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
501
+ /**
502
+ * Footer section container for sidebar content
503
+ *
504
+ * A container positioned at the bottom of the sidebar for footer content such as
505
+ * user profiles, settings links, logout buttons, or help resources. The footer
506
+ * remains anchored to the bottom regardless of content height.
507
+ *
508
+ * @component
509
+ *
510
+ * @param {string} [className] - Additional CSS classes
511
+ * @param {...React.ComponentProps<"div">} props - All div element props
512
+ *
513
+ * @example
514
+ * ```tsx
515
+ * // Simple footer with settings link
516
+ * <SidebarFooter>
517
+ * <SidebarMenu>
518
+ * <SidebarMenuItem>
519
+ * <SidebarMenuButton>
520
+ * <Settings />
521
+ * <span>Settings</span>
522
+ * </SidebarMenuButton>
523
+ * </SidebarMenuItem>
524
+ * </SidebarMenu>
525
+ * </SidebarFooter>
526
+ * ```
527
+ *
528
+ * @example
529
+ * ```tsx
530
+ * // Footer with user profile and actions
531
+ * <SidebarFooter>
532
+ * <SidebarMenu>
533
+ * <SidebarMenuItem>
534
+ * <SidebarMenuButton>
535
+ * <Avatar className="h-6 w-6" />
536
+ * <div className="flex flex-col text-left">
537
+ * <span className="text-sm">John Doe</span>
538
+ * <span className="text-xs text-muted-foreground">john@example.com</span>
539
+ * </div>
540
+ * </SidebarMenuButton>
541
+ * <SidebarMenuAction>
542
+ * <LogOut />
543
+ * </SidebarMenuAction>
544
+ * </SidebarMenuItem>
545
+ * </SidebarMenu>
546
+ * </SidebarFooter>
547
+ * ```
548
+ *
549
+ * @see {@link SidebarHeader} - Header section component
550
+ * @see {@link SidebarContent} - Main content area
551
+ * @since 1.0.0
552
+ */
553
+ declare function SidebarFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
554
+ /**
555
+ * Visual separator for organizing sidebar sections
556
+ *
557
+ * A horizontal divider component used to visually separate different sections
558
+ * within the sidebar content. Helps organize navigation groups and improve
559
+ * visual hierarchy and readability.
560
+ *
561
+ * @component
562
+ *
563
+ * @param {string} [className] - Additional CSS classes
564
+ * @param {...React.ComponentProps<typeof Separator>} props - All Separator component props
565
+ *
566
+ * @example
567
+ * ```tsx
568
+ * // Separating navigation groups
569
+ * <SidebarContent>
570
+ * <SidebarGroup>
571
+ * <SidebarGroupLabel>Main Navigation</SidebarGroupLabel>
572
+ * <SidebarGroupContent>
573
+ * // Main nav items
574
+ * </SidebarGroupContent>
575
+ * </SidebarGroup>
576
+ *
577
+ * <SidebarSeparator />
578
+ *
579
+ * <SidebarGroup>
580
+ * <SidebarGroupLabel>Settings</SidebarGroupLabel>
581
+ * <SidebarGroupContent>
582
+ * // Settings items
583
+ * </SidebarGroupContent>
584
+ * </SidebarGroup>
585
+ * </SidebarContent>
586
+ * ```
587
+ *
588
+ * @example
589
+ * ```tsx
590
+ * // Between header and content
591
+ * <Sidebar>
592
+ * <SidebarHeader>
593
+ * <h2>Application</h2>
594
+ * </SidebarHeader>
595
+ * <SidebarSeparator />
596
+ * <SidebarContent>
597
+ * // Navigation content
598
+ * </SidebarContent>
599
+ * </Sidebar>
600
+ * ```
601
+ *
602
+ * @see {@link Separator} - Base separator component
603
+ * @since 1.0.0
604
+ */
605
+ declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
606
+ /**
607
+ * Scrollable main content area of the sidebar
608
+ *
609
+ * The primary content container that houses navigation groups, menus, and other
610
+ * sidebar content. Provides automatic scrolling when content exceeds available
611
+ * height and handles overflow behavior when the sidebar is collapsed.
612
+ *
613
+ * @component
614
+ *
615
+ * @param {string} [className] - Additional CSS classes
616
+ * @param {...React.ComponentProps<"div">} props - All div element props
617
+ *
618
+ * @example
619
+ * ```tsx
620
+ * // Basic content with navigation groups
621
+ * <SidebarContent>
622
+ * <SidebarGroup>
623
+ * <SidebarGroupLabel>Main</SidebarGroupLabel>
624
+ * <SidebarGroupContent>
625
+ * <SidebarMenu>
626
+ * <SidebarMenuItem>
627
+ * <SidebarMenuButton>
628
+ * <Home />
629
+ * <span>Dashboard</span>
630
+ * </SidebarMenuButton>
631
+ * </SidebarMenuItem>
632
+ * </SidebarMenu>
633
+ * </SidebarGroupContent>
634
+ * </SidebarGroup>
635
+ * </SidebarContent>
636
+ * ```
637
+ *
638
+ * @example
639
+ * ```tsx
640
+ * // Multiple groups with separators
641
+ * <SidebarContent>
642
+ * <SidebarGroup>
643
+ * <SidebarGroupLabel>Navigation</SidebarGroupLabel>
644
+ * <SidebarGroupContent>
645
+ * // Navigation items
646
+ * </SidebarGroupContent>
647
+ * </SidebarGroup>
648
+ *
649
+ * <SidebarSeparator />
650
+ *
651
+ * <SidebarGroup>
652
+ * <SidebarGroupLabel>Projects</SidebarGroupLabel>
653
+ * <SidebarGroupContent>
654
+ * // Project items
655
+ * </SidebarGroupContent>
656
+ * </SidebarGroup>
657
+ * </SidebarContent>
658
+ * ```
659
+ *
660
+ * @features
661
+ * - Automatic scrolling for overflow content
662
+ * - Responsive to sidebar collapse states
663
+ * - Flexible gap spacing between child elements
664
+ * - Overflow hidden when collapsed to icon mode
665
+ *
666
+ * @see {@link SidebarGroup} - Content organization component
667
+ * @see {@link SidebarMenu} - Menu container component
668
+ * @since 1.0.0
669
+ */
670
+ declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
671
+ /**
672
+ * Container for organizing related sidebar navigation items
673
+ *
674
+ * Groups related navigation items together with optional labels and actions,
675
+ * providing visual organization and hierarchy for complex navigation structures.
676
+ * Groups can include labels, action buttons, and any combination of menu items.
677
+ *
678
+ * @component
679
+ *
680
+ * @param {string} [className] - Additional CSS classes
681
+ * @param {...React.ComponentProps<"div">} props - All div element props
682
+ *
683
+ * @example
684
+ * ```tsx
685
+ * // Basic group with label and menu
686
+ * <SidebarGroup>
687
+ * <SidebarGroupLabel>Navigation</SidebarGroupLabel>
688
+ * <SidebarGroupContent>
689
+ * <SidebarMenu>
690
+ * <SidebarMenuItem>
691
+ * <SidebarMenuButton>
692
+ * <Home />
693
+ * <span>Dashboard</span>
694
+ * </SidebarMenuButton>
695
+ * </SidebarMenuItem>
696
+ * </SidebarMenu>
697
+ * </SidebarGroupContent>
698
+ * </SidebarGroup>
699
+ * ```
700
+ *
701
+ * @example
702
+ * ```tsx
703
+ * // Group with action button
704
+ * <SidebarGroup>
705
+ * <SidebarGroupLabel>Projects</SidebarGroupLabel>
706
+ * <SidebarGroupAction>
707
+ * <Plus className="h-4 w-4" />
708
+ * <span className="sr-only">Add Project</span>
709
+ * </SidebarGroupAction>
710
+ * <SidebarGroupContent>
711
+ * // Project items
712
+ * </SidebarGroupContent>
713
+ * </SidebarGroup>
714
+ * ```
715
+ *
716
+ * @see {@link SidebarGroupLabel} - Group label component
717
+ * @see {@link SidebarGroupAction} - Group action button
718
+ * @see {@link SidebarGroupContent} - Group content container
719
+ * @since 1.0.0
720
+ */
721
+ declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
722
+ /**
723
+ * Label component for sidebar groups
724
+ *
725
+ * Displays a descriptive label for a group of sidebar items, providing clear
726
+ * categorization and hierarchy. The label automatically hides when the sidebar
727
+ * is collapsed to icon mode to maintain clean visual presentation.
728
+ *
729
+ * @component
730
+ *
731
+ * @param {string} [className] - Additional CSS classes
732
+ * @param {boolean} [asChild=false] - Render as child element (using Slot)
733
+ * @param {...React.ComponentProps<"div">} props - All div element props
734
+ *
735
+ * @example
736
+ * ```tsx
737
+ * // Standard text label
738
+ * <SidebarGroup>
739
+ * <SidebarGroupLabel>Main Navigation</SidebarGroupLabel>
740
+ * <SidebarGroupContent>
741
+ * // Menu items
742
+ * </SidebarGroupContent>
743
+ * </SidebarGroup>
744
+ * ```
745
+ *
746
+ * @example
747
+ * ```tsx
748
+ * // Custom element using asChild
749
+ * <SidebarGroup>
750
+ * <SidebarGroupLabel asChild>
751
+ * <h3 className="custom-heading">Projects</h3>
752
+ * </SidebarGroupLabel>
753
+ * <SidebarGroupContent>
754
+ * // Project items
755
+ * </SidebarGroupContent>
756
+ * </SidebarGroup>
757
+ * ```
758
+ *
759
+ * @features
760
+ * - Automatic hide/show based on sidebar collapse state
761
+ * - Smooth opacity and margin transitions
762
+ * - Focus management for keyboard navigation
763
+ * - Support for custom elements via asChild prop
764
+ *
765
+ * @see {@link SidebarGroup} - Parent group container
766
+ * @see {@link SidebarGroupAction} - Associated action button
767
+ * @since 1.0.0
768
+ */
769
+ declare function SidebarGroupLabel({ className, asChild, ...props }: React.ComponentProps<"div"> & {
770
+ asChild?: boolean;
771
+ }): import("react/jsx-runtime").JSX.Element;
772
+ /**
773
+ * Action button positioned within sidebar groups
774
+ *
775
+ * A compact action button positioned at the top-right of a sidebar group,
776
+ * typically used for group-specific actions such as adding new items, editing
777
+ * group settings, or accessing group options. Automatically hidden when collapsed.
778
+ *
779
+ * @component
780
+ *
781
+ * @param {string} [className] - Additional CSS classes
782
+ * @param {boolean} [asChild=false] - Render as child element (using Slot)
783
+ * @param {...React.ComponentProps<"button">} props - All button element props
784
+ *
785
+ * @example
786
+ * ```tsx
787
+ * // Add button for projects group
788
+ * <SidebarGroup>
789
+ * <SidebarGroupLabel>Projects</SidebarGroupLabel>
790
+ * <SidebarGroupAction>
791
+ * <Plus className="h-4 w-4" />
792
+ * <span className="sr-only">Add Project</span>
793
+ * </SidebarGroupAction>
794
+ * <SidebarGroupContent>
795
+ * // Project items
796
+ * </SidebarGroupContent>
797
+ * </SidebarGroup>
798
+ * ```
799
+ *
800
+ * @example
801
+ * ```tsx
802
+ * // Custom action with asChild
803
+ * <SidebarGroup>
804
+ * <SidebarGroupLabel>Settings</SidebarGroupLabel>
805
+ * <SidebarGroupAction asChild>
806
+ * <Button variant="ghost" size="sm">
807
+ * <MoreHorizontal className="h-4 w-4" />
808
+ * </Button>
809
+ * </SidebarGroupAction>
810
+ * <SidebarGroupContent>
811
+ * // Settings items
812
+ * </SidebarGroupContent>
813
+ * </SidebarGroup>
814
+ * ```
815
+ *
816
+ * @accessibility
817
+ * - Increased touch target on mobile devices
818
+ * - Keyboard accessible with focus management
819
+ * - Screen reader support with descriptive labels
820
+ *
821
+ * @see {@link SidebarGroup} - Parent group container
822
+ * @see {@link SidebarGroupLabel} - Associated group label
823
+ * @since 1.0.0
824
+ */
825
+ declare function SidebarGroupAction({ className, asChild, ...props }: React.ComponentProps<"button"> & {
826
+ asChild?: boolean;
827
+ }): import("react/jsx-runtime").JSX.Element;
828
+ /**
829
+ * Content container for sidebar group items
830
+ *
831
+ * Houses the actual navigation items, menus, and content within a sidebar group.
832
+ * Provides consistent spacing and organization for group content while maintaining
833
+ * proper typography and layout coordination.
834
+ *
835
+ * @component
836
+ *
837
+ * @param {string} [className] - Additional CSS classes
838
+ * @param {...React.ComponentProps<"div">} props - All div element props
839
+ *
840
+ * @example
841
+ * ```tsx
842
+ * // Basic content with menu items
843
+ * <SidebarGroup>
844
+ * <SidebarGroupLabel>Navigation</SidebarGroupLabel>
845
+ * <SidebarGroupContent>
846
+ * <SidebarMenu>
847
+ * <SidebarMenuItem>
848
+ * <SidebarMenuButton>
849
+ * <Home />
850
+ * <span>Dashboard</span>
851
+ * </SidebarMenuButton>
852
+ * </SidebarMenuItem>
853
+ * <SidebarMenuItem>
854
+ * <SidebarMenuButton>
855
+ * <Settings />
856
+ * <span>Settings</span>
857
+ * </SidebarMenuButton>
858
+ * </SidebarMenuItem>
859
+ * </SidebarMenu>
860
+ * </SidebarGroupContent>
861
+ * </SidebarGroup>
862
+ * ```
863
+ *
864
+ * @example
865
+ * ```tsx
866
+ * // Multiple menus in group content
867
+ * <SidebarGroup>
868
+ * <SidebarGroupLabel>Projects</SidebarGroupLabel>
869
+ * <SidebarGroupContent>
870
+ * <SidebarMenu>
871
+ * // Recent projects
872
+ * </SidebarMenu>
873
+ * <SidebarSeparator />
874
+ * <SidebarMenu>
875
+ * // Archived projects
876
+ * </SidebarMenu>
877
+ * </SidebarGroupContent>
878
+ * </SidebarGroup>
879
+ * ```
880
+ *
881
+ * @see {@link SidebarGroup} - Parent group container
882
+ * @see {@link SidebarMenu} - Menu container component
883
+ * @since 1.0.0
884
+ */
885
+ declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
886
+ /**
887
+ * Navigation menu container for organizing sidebar items
888
+ *
889
+ * An unordered list container that holds and organizes SidebarMenuItem components.
890
+ * Provides consistent spacing, layout, and semantic structure for navigation items
891
+ * within sidebar groups or sections.
892
+ *
893
+ * @component
894
+ *
895
+ * @param {string} [className] - Additional CSS classes
896
+ * @param {...React.ComponentProps<"ul">} props - All ul element props
897
+ *
898
+ * @example
899
+ * ```tsx
900
+ * // Basic navigation menu
901
+ * <SidebarMenu>
902
+ * <SidebarMenuItem>
903
+ * <SidebarMenuButton>
904
+ * <Home />
905
+ * <span>Dashboard</span>
906
+ * </SidebarMenuButton>
907
+ * </SidebarMenuItem>
908
+ * <SidebarMenuItem>
909
+ * <SidebarMenuButton>
910
+ * <Settings />
911
+ * <span>Settings</span>
912
+ * </SidebarMenuButton>
913
+ * </SidebarMenuItem>
914
+ * </SidebarMenu>
915
+ * ```
916
+ *
917
+ * @example
918
+ * ```tsx
919
+ * // Menu with badges and actions
920
+ * <SidebarMenu>
921
+ * <SidebarMenuItem>
922
+ * <SidebarMenuButton>
923
+ * <Inbox />
924
+ * <span>Messages</span>
925
+ * </SidebarMenuButton>
926
+ * <SidebarMenuBadge>3</SidebarMenuBadge>
927
+ * </SidebarMenuItem>
928
+ * <SidebarMenuItem>
929
+ * <SidebarMenuButton>
930
+ * <Archive />
931
+ * <span>Archive</span>
932
+ * </SidebarMenuButton>
933
+ * <SidebarMenuAction>
934
+ * <MoreHorizontal />
935
+ * </SidebarMenuAction>
936
+ * </SidebarMenuItem>
937
+ * </SidebarMenu>
938
+ * ```
939
+ *
940
+ * @accessibility
941
+ * - Semantic ul/li structure for screen readers
942
+ * - Proper navigation landmarks
943
+ * - Keyboard navigation support
944
+ *
945
+ * @see {@link SidebarMenuItem} - Individual menu item component
946
+ * @see {@link SidebarMenuButton} - Interactive menu button
947
+ * @since 1.0.0
948
+ */
949
+ declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
950
+ /**
951
+ * Individual menu item container for sidebar navigation
952
+ *
953
+ * A list item container that wraps a single navigation item, typically containing
954
+ * a SidebarMenuButton along with optional components like SidebarMenuAction,
955
+ * SidebarMenuBadge, or SidebarMenuSub for hierarchical navigation.
956
+ *
957
+ * @component
958
+ *
959
+ * @param {string} [className] - Additional CSS classes
960
+ * @param {...React.ComponentProps<"li">} props - All li element props
961
+ *
962
+ * @example
963
+ * ```tsx
964
+ * // Simple menu item with button
965
+ * <SidebarMenuItem>
966
+ * <SidebarMenuButton>
967
+ * <Home />
968
+ * <span>Dashboard</span>
969
+ * </SidebarMenuButton>
970
+ * </SidebarMenuItem>
971
+ * ```
972
+ *
973
+ * @example
974
+ * ```tsx
975
+ * // Menu item with badge
976
+ * <SidebarMenuItem>
977
+ * <SidebarMenuButton>
978
+ * <Inbox />
979
+ * <span>Messages</span>
980
+ * </SidebarMenuButton>
981
+ * <SidebarMenuBadge>5</SidebarMenuBadge>
982
+ * </SidebarMenuItem>
983
+ * ```
984
+ *
985
+ * @example
986
+ * ```tsx
987
+ * // Menu item with action button
988
+ * <SidebarMenuItem>
989
+ * <SidebarMenuButton>
990
+ * <Folder />
991
+ * <span>Projects</span>
992
+ * </SidebarMenuButton>
993
+ * <SidebarMenuAction showOnHover>
994
+ * <Plus />
995
+ * </SidebarMenuAction>
996
+ * </SidebarMenuItem>
997
+ * ```
998
+ *
999
+ * @example
1000
+ * ```tsx
1001
+ * // Menu item with submenu
1002
+ * <SidebarMenuItem>
1003
+ * <SidebarMenuButton>
1004
+ * <Folder />
1005
+ * <span>Projects</span>
1006
+ * <ChevronRight className="ml-auto" />
1007
+ * </SidebarMenuButton>
1008
+ * <SidebarMenuSub>
1009
+ * <SidebarMenuSubItem>
1010
+ * <SidebarMenuSubButton>Web App</SidebarMenuSubButton>
1011
+ * </SidebarMenuSubItem>
1012
+ * </SidebarMenuSub>
1013
+ * </SidebarMenuItem>
1014
+ * ```
1015
+ *
1016
+ * @see {@link SidebarMenu} - Parent menu container
1017
+ * @see {@link SidebarMenuButton} - Interactive button component
1018
+ * @see {@link SidebarMenuAction} - Action button component
1019
+ * @see {@link SidebarMenuBadge} - Badge indicator component
1020
+ * @since 1.0.0
1021
+ */
1022
+ declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
1023
+ declare const sidebarMenuButtonVariants: (props?: ({
1024
+ variant?: "default" | "outline" | null | undefined;
1025
+ size?: "default" | "sm" | "lg" | null | undefined;
1026
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
1027
+ /**
1028
+ * Interactive navigation button for sidebar menu items
1029
+ *
1030
+ * The primary interactive element for sidebar navigation, offering a flexible button
1031
+ * component that supports active states, multiple visual variants, tooltip integration
1032
+ * for collapsed modes, and composition patterns through the asChild prop. Automatically
1033
+ * adapts its appearance based on sidebar state and provides smooth hover/focus transitions.
1034
+ *
1035
+ * @component
1036
+ *
1037
+ * @param {boolean} [asChild=false] - Render as child element using Slot composition
1038
+ * @param {boolean} [isActive=false] - Whether this menu item is currently active
1039
+ * @param {"default" | "outline"} [variant="default"] - Visual variant:
1040
+ * - `default`: Standard button appearance with hover states
1041
+ * - `outline`: Button with border and background on hover
1042
+ * @param {"default" | "sm" | "lg"} [size="default"] - Button size variant:
1043
+ * - `default`: Standard height (h-8)
1044
+ * - `sm`: Small height (h-7)
1045
+ * - `lg`: Large height (h-12)
1046
+ * @param {string | React.ComponentProps<typeof TooltipContent>} [tooltip] - Tooltip content shown when sidebar is collapsed
1047
+ * @param {string} [className] - Additional CSS classes
1048
+ * @param {...React.ComponentProps<"button">} props - All button element props
1049
+ *
1050
+ * @example
1051
+ * ```tsx
1052
+ * // Basic navigation button
1053
+ * <SidebarMenuButton>
1054
+ * <Home className="h-4 w-4" />
1055
+ * <span>Dashboard</span>
1056
+ * </SidebarMenuButton>
1057
+ * ```
1058
+ *
1059
+ * @example
1060
+ * ```tsx
1061
+ * // Active state with Link composition
1062
+ * <SidebarMenuButton asChild isActive={pathname === '/dashboard'}>
1063
+ * <Link href="/dashboard">
1064
+ * <Home className="h-4 w-4" />
1065
+ * <span>Dashboard</span>
1066
+ * </Link>
1067
+ * </SidebarMenuButton>
1068
+ * ```
1069
+ *
1070
+ * @example
1071
+ * ```tsx
1072
+ * // With tooltip for collapsed mode
1073
+ * <SidebarMenuButton tooltip="Go to Dashboard">
1074
+ * <Home className="h-4 w-4" />
1075
+ * <span>Dashboard</span>
1076
+ * </SidebarMenuButton>
1077
+ * ```
1078
+ *
1079
+ * @example
1080
+ * ```tsx
1081
+ * // Different variants and sizes
1082
+ * <SidebarMenuButton variant="outline" size="lg">
1083
+ * <Settings className="h-4 w-4" />
1084
+ * <span>Settings</span>
1085
+ * </SidebarMenuButton>
1086
+ * ```
1087
+ *
1088
+ * @example
1089
+ * ```tsx
1090
+ * // Custom tooltip with props
1091
+ * <SidebarMenuButton
1092
+ * tooltip={{
1093
+ * children: "Dashboard Overview",
1094
+ * side: "right",
1095
+ * sideOffset: 10
1096
+ * }}
1097
+ * >
1098
+ * <Home className="h-4 w-4" />
1099
+ * <span>Dashboard</span>
1100
+ * </SidebarMenuButton>
1101
+ * ```
1102
+ *
1103
+ * @accessibility
1104
+ * - Full keyboard navigation support (Enter, Space)
1105
+ * - Focus visible ring for keyboard users
1106
+ * - Active state indication for screen readers
1107
+ * - Tooltip automatically shown/hidden based on sidebar state
1108
+ * - Proper contrast ratios for all states
1109
+ * - Support for screen reader announcements
1110
+ *
1111
+ * @responsive
1112
+ * - Automatically adapts to collapsed sidebar (icon-only mode)
1113
+ * - Tooltip integration for collapsed state
1114
+ * - Touch-friendly sizing on mobile devices
1115
+ * - Smooth transitions between states
1116
+ *
1117
+ * @see {@link SidebarMenuItem} - Parent menu item container
1118
+ * @see {@link SidebarMenuAction} - Secondary action button
1119
+ * @see {@link SidebarMenuBadge} - Badge component for notifications
1120
+ * @see {@link useSidebar} - Hook for sidebar state
1121
+ * @since 1.0.0
1122
+ */
1123
+ declare function SidebarMenuButton({ asChild, isActive, variant, size, tooltip, className, ...props }: React.ComponentProps<"button"> & {
1124
+ asChild?: boolean;
1125
+ isActive?: boolean;
1126
+ tooltip?: string | React.ComponentProps<typeof TooltipContent>;
1127
+ } & VariantProps<typeof sidebarMenuButtonVariants>): import("react/jsx-runtime").JSX.Element;
1128
+ /**
1129
+ * Secondary action button for sidebar menu items
1130
+ *
1131
+ * A compact action button positioned on the right side of menu items, providing
1132
+ * secondary actions like edit, delete, or more options. Can be configured to show
1133
+ * only on hover for cleaner interfaces or remain always visible for important actions.
1134
+ *
1135
+ * @component
1136
+ *
1137
+ * @param {string} [className] - Additional CSS classes
1138
+ * @param {boolean} [asChild=false] - Render as child element using Slot composition
1139
+ * @param {boolean} [showOnHover=false] - Only show button on menu item hover
1140
+ * @param {...React.ComponentProps<"button">} props - All button element props
1141
+ *
1142
+ * @example
1143
+ * ```tsx
1144
+ * // Always visible action button
1145
+ * <SidebarMenuItem>
1146
+ * <SidebarMenuButton>
1147
+ * <Folder />
1148
+ * <span>Projects</span>
1149
+ * </SidebarMenuButton>
1150
+ * <SidebarMenuAction>
1151
+ * <MoreHorizontal className="h-4 w-4" />
1152
+ * </SidebarMenuAction>
1153
+ * </SidebarMenuItem>
1154
+ * ```
1155
+ *
1156
+ * @example
1157
+ * ```tsx
1158
+ * // Show only on hover
1159
+ * <SidebarMenuItem>
1160
+ * <SidebarMenuButton>
1161
+ * <File />
1162
+ * <span>Document</span>
1163
+ * </SidebarMenuButton>
1164
+ * <SidebarMenuAction showOnHover>
1165
+ * <Trash2 className="h-4 w-4" />
1166
+ * </SidebarMenuAction>
1167
+ * </SidebarMenuItem>
1168
+ * ```
1169
+ *
1170
+ * @example
1171
+ * ```tsx
1172
+ * // Custom action with asChild
1173
+ * <SidebarMenuItem>
1174
+ * <SidebarMenuButton>
1175
+ * <Star />
1176
+ * <span>Favorites</span>
1177
+ * </SidebarMenuButton>
1178
+ * <SidebarMenuAction asChild>
1179
+ * <DropdownMenu>
1180
+ * <DropdownMenuTrigger>
1181
+ * <MoreVertical className="h-4 w-4" />
1182
+ * </DropdownMenuTrigger>
1183
+ * <DropdownMenuContent>
1184
+ * <DropdownMenuItem>Edit</DropdownMenuItem>
1185
+ * <DropdownMenuItem>Delete</DropdownMenuItem>
1186
+ * </DropdownMenuContent>
1187
+ * </DropdownMenu>
1188
+ * </SidebarMenuAction>
1189
+ * </SidebarMenuItem>
1190
+ * ```
1191
+ *
1192
+ * @accessibility
1193
+ * - Increased touch target area on mobile devices
1194
+ * - Keyboard accessible with proper focus management
1195
+ * - Hidden from screen readers when showOnHover and not focused
1196
+ * - Proper contrast ratios for visibility
1197
+ *
1198
+ * @see {@link SidebarMenuItem} - Parent menu item
1199
+ * @see {@link SidebarMenuButton} - Primary menu button
1200
+ * @since 1.0.0
1201
+ */
1202
+ declare function SidebarMenuAction({ className, asChild, showOnHover, ...props }: React.ComponentProps<"button"> & {
1203
+ asChild?: boolean;
1204
+ showOnHover?: boolean;
1205
+ }): import("react/jsx-runtime").JSX.Element;
1206
+ /**
1207
+ * Badge indicator component for menu items
1208
+ *
1209
+ * Displays count indicators, status badges, or notification markers on menu items.
1210
+ * Positioned on the right side of menu items and automatically coordinates with
1211
+ * menu button states and sidebar collapse behavior.
1212
+ *
1213
+ * @component
1214
+ *
1215
+ * @param {string} [className] - Additional CSS classes
1216
+ * @param {...React.ComponentProps<"div">} props - All div element props
1217
+ *
1218
+ * @example
1219
+ * ```tsx
1220
+ * // Unread count badge
1221
+ * <SidebarMenuItem>
1222
+ * <SidebarMenuButton>
1223
+ * <Inbox />
1224
+ * <span>Messages</span>
1225
+ * </SidebarMenuButton>
1226
+ * <SidebarMenuBadge>12</SidebarMenuBadge>
1227
+ * </SidebarMenuItem>
1228
+ * ```
1229
+ *
1230
+ * @example
1231
+ * ```tsx
1232
+ * // Status indicator
1233
+ * <SidebarMenuItem>
1234
+ * <SidebarMenuButton>
1235
+ * <Activity />
1236
+ * <span>System Status</span>
1237
+ * </SidebarMenuButton>
1238
+ * <SidebarMenuBadge className="bg-green-500">●</SidebarMenuBadge>
1239
+ * </SidebarMenuItem>
1240
+ * ```
1241
+ *
1242
+ * @example
1243
+ * ```tsx
1244
+ * // Dynamic badge with state
1245
+ * <SidebarMenuItem>
1246
+ * <SidebarMenuButton>
1247
+ * <Bell />
1248
+ * <span>Notifications</span>
1249
+ * </SidebarMenuButton>
1250
+ * {notificationCount > 0 && (
1251
+ * <SidebarMenuBadge>{notificationCount}</SidebarMenuBadge>
1252
+ * )}
1253
+ * </SidebarMenuItem>
1254
+ * ```
1255
+ *
1256
+ * @features
1257
+ * - Automatic positioning relative to menu button size
1258
+ * - Hidden when sidebar is collapsed to icon mode
1259
+ * - Tabular numbers for consistent numeric display
1260
+ * - Pointer events disabled to prevent interference
1261
+ *
1262
+ * @accessibility
1263
+ * - Non-interactive (pointer-events-none)
1264
+ * - Proper color contrast for readability
1265
+ * - Screen reader friendly with appropriate text
1266
+ *
1267
+ * @see {@link SidebarMenuItem} - Parent menu item
1268
+ * @see {@link SidebarMenuButton} - Associated menu button
1269
+ * @since 1.0.0
1270
+ */
1271
+ declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
1272
+ /**
1273
+ * Loading skeleton placeholder for menu items
1274
+ *
1275
+ * Displays an animated loading placeholder while menu items are being fetched
1276
+ * or loaded. Features random width variation to simulate realistic content
1277
+ * and optional icon placeholder for more accurate representation.
1278
+ *
1279
+ * @component
1280
+ *
1281
+ * @param {string} [className] - Additional CSS classes
1282
+ * @param {boolean} [showIcon=false] - Whether to show icon placeholder
1283
+ * @param {...React.ComponentProps<"div">} props - All div element props
1284
+ *
1285
+ * @example
1286
+ * ```tsx
1287
+ * // Basic skeleton without icon
1288
+ * <SidebarMenu>
1289
+ * <SidebarMenuItem>
1290
+ * <SidebarMenuSkeleton />
1291
+ * </SidebarMenuItem>
1292
+ * <SidebarMenuItem>
1293
+ * <SidebarMenuSkeleton />
1294
+ * </SidebarMenuItem>
1295
+ * </SidebarMenu>
1296
+ * ```
1297
+ *
1298
+ * @example
1299
+ * ```tsx
1300
+ * // Skeleton with icon placeholder
1301
+ * <SidebarMenu>
1302
+ * {Array.from({ length: 5 }).map((_, index) => (
1303
+ * <SidebarMenuItem key={index}>
1304
+ * <SidebarMenuSkeleton showIcon />
1305
+ * </SidebarMenuItem>
1306
+ * ))}
1307
+ * </SidebarMenu>
1308
+ * ```
1309
+ *
1310
+ * @example
1311
+ * ```tsx
1312
+ * // Loading state with React Suspense
1313
+ * <SidebarGroup>
1314
+ * <SidebarGroupLabel>Projects</SidebarGroupLabel>
1315
+ * <SidebarGroupContent>
1316
+ * <SidebarMenu>
1317
+ * <React.Suspense
1318
+ * fallback={
1319
+ * <>
1320
+ * <SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
1321
+ * <SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
1322
+ * <SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
1323
+ * </>
1324
+ * }
1325
+ * >
1326
+ * <ProjectsList />
1327
+ * </React.Suspense>
1328
+ * </SidebarMenu>
1329
+ * </SidebarGroupContent>
1330
+ * </SidebarGroup>
1331
+ * ```
1332
+ *
1333
+ * @features
1334
+ * - Random width variation (50-90%) for realistic appearance
1335
+ * - Optional icon skeleton placeholder
1336
+ * - Smooth loading animation
1337
+ * - Proper sizing to match actual menu items
1338
+ *
1339
+ * @see {@link SidebarMenuItem} - Container for skeleton
1340
+ * @see {@link SidebarMenu} - Parent menu container
1341
+ * @see {@link Skeleton} - Base skeleton component
1342
+ * @since 1.0.0
1343
+ */
1344
+ declare function SidebarMenuSkeleton({ className, showIcon, ...props }: React.ComponentProps<"div"> & {
1345
+ showIcon?: boolean;
1346
+ }): import("react/jsx-runtime").JSX.Element;
1347
+ /**
1348
+ * Submenu container for hierarchical navigation
1349
+ *
1350
+ * A specialized container for nested navigation items that provides visual hierarchy
1351
+ * through indentation and connecting border lines. Perfect for organizing complex
1352
+ * navigation structures with parent-child relationships.
1353
+ *
1354
+ * @component
1355
+ *
1356
+ * @param {string} [className] - Additional CSS classes
1357
+ * @param {...React.ComponentProps<"ul">} props - All ul element props
1358
+ *
1359
+ * @example
1360
+ * ```tsx
1361
+ * // Collapsible submenu with parent item
1362
+ * <SidebarMenuItem>
1363
+ * <Collapsible>
1364
+ * <CollapsibleTrigger asChild>
1365
+ * <SidebarMenuButton>
1366
+ * <Folder />
1367
+ * <span>Projects</span>
1368
+ * <ChevronRight className="ml-auto transition-transform group-data-[state=open]:rotate-90" />
1369
+ * </SidebarMenuButton>
1370
+ * </CollapsibleTrigger>
1371
+ * <CollapsibleContent>
1372
+ * <SidebarMenuSub>
1373
+ * <SidebarMenuSubItem>
1374
+ * <SidebarMenuSubButton>Web Application</SidebarMenuSubButton>
1375
+ * </SidebarMenuSubItem>
1376
+ * <SidebarMenuSubItem>
1377
+ * <SidebarMenuSubButton>Mobile App</SidebarMenuSubButton>
1378
+ * </SidebarMenuSubItem>
1379
+ * <SidebarMenuSubItem>
1380
+ * <SidebarMenuSubButton>Documentation</SidebarMenuSubButton>
1381
+ * </SidebarMenuSubItem>
1382
+ * </SidebarMenuSub>
1383
+ * </CollapsibleContent>
1384
+ * </Collapsible>
1385
+ * </SidebarMenuItem>
1386
+ * ```
1387
+ *
1388
+ * @example
1389
+ * ```tsx
1390
+ * // Always expanded submenu
1391
+ * <SidebarMenuItem>
1392
+ * <SidebarMenuButton>
1393
+ * <Settings />
1394
+ * <span>Settings</span>
1395
+ * </SidebarMenuButton>
1396
+ * <SidebarMenuSub>
1397
+ * <SidebarMenuSubItem>
1398
+ * <SidebarMenuSubButton>General</SidebarMenuSubButton>
1399
+ * </SidebarMenuSubItem>
1400
+ * <SidebarMenuSubItem>
1401
+ * <SidebarMenuSubButton>Privacy</SidebarMenuSubButton>
1402
+ * </SidebarMenuSubItem>
1403
+ * <SidebarMenuSubItem>
1404
+ * <SidebarMenuSubButton>Security</SidebarMenuSubButton>
1405
+ * </SidebarMenuSubItem>
1406
+ * </SidebarMenuSub>
1407
+ * </SidebarMenuItem>
1408
+ * ```
1409
+ *
1410
+ * @features
1411
+ * - Visual hierarchy with left border and indentation
1412
+ * - Automatic hiding when sidebar is collapsed
1413
+ * - Proper spacing and alignment with parent items
1414
+ * - Seamless integration with collapsible components
1415
+ *
1416
+ * @accessibility
1417
+ * - Semantic ul/li structure for screen readers
1418
+ * - Proper nesting hierarchy for navigation
1419
+ * - Keyboard navigation support
1420
+ *
1421
+ * @see {@link SidebarMenuSubItem} - Individual submenu item
1422
+ * @see {@link SidebarMenuSubButton} - Submenu button component
1423
+ * @see {@link SidebarMenuItem} - Parent menu item
1424
+ * @since 1.0.0
1425
+ */
1426
+ declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
1427
+ /**
1428
+ * Individual item container within submenu navigation
1429
+ *
1430
+ * A list item container for single nested navigation items within a submenu,
1431
+ * providing the structural foundation for hierarchical navigation elements.
1432
+ *
1433
+ * @component
1434
+ *
1435
+ * @param {string} [className] - Additional CSS classes
1436
+ * @param {...React.ComponentProps<"li">} props - All li element props
1437
+ *
1438
+ * @example
1439
+ * ```tsx
1440
+ * // Basic submenu item
1441
+ * <SidebarMenuSub>
1442
+ * <SidebarMenuSubItem>
1443
+ * <SidebarMenuSubButton asChild>
1444
+ * <Link href="/projects/web-app">
1445
+ * <span>Web Application</span>
1446
+ * </Link>
1447
+ * </SidebarMenuSubButton>
1448
+ * </SidebarMenuSubItem>
1449
+ * </SidebarMenuSub>
1450
+ * ```
1451
+ *
1452
+ * @example
1453
+ * ```tsx
1454
+ * // Submenu item with active state
1455
+ * <SidebarMenuSub>
1456
+ * <SidebarMenuSubItem>
1457
+ * <SidebarMenuSubButton
1458
+ * isActive={pathname === '/settings/general'}
1459
+ * asChild
1460
+ * >
1461
+ * <Link href="/settings/general">
1462
+ * <span>General Settings</span>
1463
+ * </Link>
1464
+ * </SidebarMenuSubButton>
1465
+ * </SidebarMenuSubItem>
1466
+ * </SidebarMenuSub>
1467
+ * ```
1468
+ *
1469
+ * @see {@link SidebarMenuSub} - Parent submenu container
1470
+ * @see {@link SidebarMenuSubButton} - Interactive button component
1471
+ * @since 1.0.0
1472
+ */
1473
+ declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
1474
+ /**
1475
+ * Interactive button component for submenu navigation
1476
+ *
1477
+ * The primary interactive element for nested navigation items within submenus,
1478
+ * featuring support for active states, different sizes, and composition patterns.
1479
+ * Designed specifically for hierarchical navigation with appropriate styling and spacing.
1480
+ *
1481
+ * @component
1482
+ *
1483
+ * @param {boolean} [asChild=false] - Render as child element using Slot composition
1484
+ * @param {"sm" | "md"} [size="md"] - Button size variant:
1485
+ * - `sm`: Small size with text-xs
1486
+ * - `md`: Medium size with text-sm
1487
+ * @param {boolean} [isActive=false] - Whether this submenu item is currently active
1488
+ * @param {string} [className] - Additional CSS classes
1489
+ * @param {...React.ComponentProps<"a">} props - All anchor element props
1490
+ *
1491
+ * @example
1492
+ * ```tsx
1493
+ * // Basic submenu button
1494
+ * <SidebarMenuSubItem>
1495
+ * <SidebarMenuSubButton>
1496
+ * <span>Documentation</span>
1497
+ * </SidebarMenuSubButton>
1498
+ * </SidebarMenuSubItem>
1499
+ * ```
1500
+ *
1501
+ * @example
1502
+ * ```tsx
1503
+ * // Link composition with active state
1504
+ * <SidebarMenuSubItem>
1505
+ * <SidebarMenuSubButton
1506
+ * asChild
1507
+ * isActive={pathname === '/projects/mobile'}
1508
+ * >
1509
+ * <Link href="/projects/mobile">
1510
+ * <span>Mobile Application</span>
1511
+ * </Link>
1512
+ * </SidebarMenuSubButton>
1513
+ * </SidebarMenuSubItem>
1514
+ * ```
1515
+ *
1516
+ * @example
1517
+ * ```tsx
1518
+ * // Small size variant
1519
+ * <SidebarMenuSubItem>
1520
+ * <SidebarMenuSubButton size="sm">
1521
+ * <span>API Reference</span>
1522
+ * </SidebarMenuSubButton>
1523
+ * </SidebarMenuSubItem>
1524
+ * ```
1525
+ *
1526
+ * @example
1527
+ * ```tsx
1528
+ * // With icon and custom styling
1529
+ * <SidebarMenuSubItem>
1530
+ * <SidebarMenuSubButton className="gap-3">
1531
+ * <File className="h-3 w-3" />
1532
+ * <span>README.md</span>
1533
+ * </SidebarMenuSubButton>
1534
+ * </SidebarMenuSubItem>
1535
+ * ```
1536
+ *
1537
+ * @accessibility
1538
+ * - Full keyboard navigation support
1539
+ * - Focus visible indicators
1540
+ * - Active state indication for screen readers
1541
+ * - Proper contrast ratios for all states
1542
+ * - Support for assistive technology navigation
1543
+ *
1544
+ * @features
1545
+ * - Automatic hiding when parent sidebar is collapsed
1546
+ * - Smooth hover and focus transitions
1547
+ * - Consistent spacing with parent menu items
1548
+ * - Overflow text truncation for long labels
1549
+ *
1550
+ * @see {@link SidebarMenuSubItem} - Parent submenu item container
1551
+ * @see {@link SidebarMenuSub} - Submenu container
1552
+ * @see {@link SidebarMenuButton} - Parent menu button
1553
+ * @since 1.0.0
1554
+ */
1555
+ declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...props }: React.ComponentProps<"a"> & {
1556
+ asChild?: boolean;
1557
+ size?: "sm" | "md";
1558
+ isActive?: boolean;
1559
+ }): import("react/jsx-runtime").JSX.Element;
1560
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
1561
+ //# sourceMappingURL=sidebar.d.ts.map