@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,318 @@
1
+ import * as React from "react";
2
+ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
3
+ /**
4
+ * NavigationMenu - A collection of links for navigating websites
5
+ *
6
+ * A horizontal navigation component built on Radix UI primitives that provides
7
+ * flexible navigation patterns with dropdown content support. Features full
8
+ * keyboard navigation, accessibility compliance, and responsive design.
9
+ *
10
+ * @component
11
+ * @example
12
+ * ```tsx
13
+ * // Basic navigation with dropdown
14
+ * <NavigationMenu>
15
+ * <NavigationMenuList>
16
+ * <NavigationMenuItem>
17
+ * <NavigationMenuTrigger>Products</NavigationMenuTrigger>
18
+ * <NavigationMenuContent>
19
+ * <NavigationMenuLink href="/products">All Products</NavigationMenuLink>
20
+ * </NavigationMenuContent>
21
+ * </NavigationMenuItem>
22
+ * </NavigationMenuList>
23
+ * </NavigationMenu>
24
+ * ```
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * // Simple navigation links
29
+ * <NavigationMenu>
30
+ * <NavigationMenuList>
31
+ * <NavigationMenuItem>
32
+ * <NavigationMenuLink href="/about">About</NavigationMenuLink>
33
+ * </NavigationMenuItem>
34
+ * <NavigationMenuItem>
35
+ * <NavigationMenuLink href="/contact">Contact</NavigationMenuLink>
36
+ * </NavigationMenuItem>
37
+ * </NavigationMenuList>
38
+ * </NavigationMenu>
39
+ * ```
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * // With Next.js Link using asChild
44
+ * <NavigationMenu>
45
+ * <NavigationMenuList>
46
+ * <NavigationMenuItem>
47
+ * <NavigationMenuLink asChild>
48
+ * <Link href="/dashboard">Dashboard</Link>
49
+ * </NavigationMenuLink>
50
+ * </NavigationMenuItem>
51
+ * </NavigationMenuList>
52
+ * </NavigationMenu>
53
+ * ```
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * // Without viewport for simpler styling
58
+ * <NavigationMenu viewport={false}>
59
+ * <NavigationMenuList>
60
+ * <NavigationMenuItem>
61
+ * <NavigationMenuTrigger>Features</NavigationMenuTrigger>
62
+ * <NavigationMenuContent>
63
+ * <div className="p-4 w-[300px]">
64
+ * <NavigationMenuLink href="/analytics">Analytics</NavigationMenuLink>
65
+ * </div>
66
+ * </NavigationMenuContent>
67
+ * </NavigationMenuItem>
68
+ * </NavigationMenuList>
69
+ * </NavigationMenu>
70
+ * ```
71
+ *
72
+ * @accessibility
73
+ * - Full keyboard navigation with arrow keys for menu traversal
74
+ * - Tab key moves between focusable menu items
75
+ * - Escape key closes open dropdown menus
76
+ * - Enter/Space activates triggers and links
77
+ * - ARIA attributes for proper screen reader support
78
+ * - Focus management with automatic focus trapping in dropdowns
79
+ * - Semantic HTML structure for navigation landmarks
80
+ *
81
+ * @see {@link https://ui.shadcn.com/docs/components/navigation-menu} shadcn/ui Navigation Menu
82
+ * @see {@link https://www.radix-ui.com/primitives/docs/components/navigation-menu} Radix UI Navigation Menu
83
+ * @since 1.0.0
84
+ */
85
+ /**
86
+ * Main NavigationMenu component props
87
+ *
88
+ * @param viewport - Whether to render the navigation viewport container. Defaults to true.
89
+ * Set to false for simpler dropdown styling without viewport positioning.
90
+ * @param className - Additional CSS classes to apply to the navigation menu root
91
+ * @param children - NavigationMenuList and NavigationMenuViewport components
92
+ */
93
+ declare function NavigationMenu({ className, children, viewport, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
94
+ /** Whether to render the navigation viewport container for dropdown positioning */
95
+ viewport?: boolean;
96
+ }): import("react/jsx-runtime").JSX.Element;
97
+ /**
98
+ * NavigationMenuList - Container for navigation menu items
99
+ *
100
+ * A horizontal list container that groups NavigationMenuItem components.
101
+ * Provides the foundational layout structure for the navigation menu.
102
+ *
103
+ * @component
104
+ * @example
105
+ * ```tsx
106
+ * <NavigationMenuList>
107
+ * <NavigationMenuItem>
108
+ * <NavigationMenuLink href="/home">Home</NavigationMenuLink>
109
+ * </NavigationMenuItem>
110
+ * <NavigationMenuItem>
111
+ * <NavigationMenuLink href="/about">About</NavigationMenuLink>
112
+ * </NavigationMenuItem>
113
+ * </NavigationMenuList>
114
+ * ```
115
+ *
116
+ * @param className - Additional CSS classes for styling
117
+ * @since 1.0.0
118
+ */
119
+ declare function NavigationMenuList({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.List>): import("react/jsx-runtime").JSX.Element;
120
+ /**
121
+ * NavigationMenuItem - Individual navigation menu item container
122
+ *
123
+ * Wraps a single navigation item, which can contain either:
124
+ * - A NavigationMenuTrigger with NavigationMenuContent for dropdowns
125
+ * - A NavigationMenuLink for direct navigation
126
+ *
127
+ * @component
128
+ * @example
129
+ * ```tsx
130
+ * // With dropdown content
131
+ * <NavigationMenuItem>
132
+ * <NavigationMenuTrigger>Products</NavigationMenuTrigger>
133
+ * <NavigationMenuContent>
134
+ * <NavigationMenuLink href="/products/all">All Products</NavigationMenuLink>
135
+ * </NavigationMenuContent>
136
+ * </NavigationMenuItem>
137
+ * ```
138
+ *
139
+ * @example
140
+ * ```tsx
141
+ * // Simple link
142
+ * <NavigationMenuItem>
143
+ * <NavigationMenuLink href="/contact">Contact</NavigationMenuLink>
144
+ * </NavigationMenuItem>
145
+ * ```
146
+ *
147
+ * @param className - Additional CSS classes for styling
148
+ * @since 1.0.0
149
+ */
150
+ declare function NavigationMenuItem({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
151
+ declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
152
+ /**
153
+ * NavigationMenuTrigger - Button that opens dropdown navigation content
154
+ *
155
+ * An interactive trigger button that displays NavigationMenuContent when activated.
156
+ * Features automatic chevron icon rotation and hover/focus states. Supports the
157
+ * asChild prop for custom button styling.
158
+ *
159
+ * @component
160
+ * @example
161
+ * ```tsx
162
+ * <NavigationMenuTrigger>Features</NavigationMenuTrigger>
163
+ * ```
164
+ *
165
+ * @example
166
+ * ```tsx
167
+ * // With custom button styling using asChild
168
+ * <NavigationMenuTrigger asChild>
169
+ * <Button variant="outline">Custom Trigger</Button>
170
+ * </NavigationMenuTrigger>
171
+ * ```
172
+ *
173
+ * @accessibility
174
+ * - Automatic ARIA expanded state management
175
+ * - Keyboard activation with Enter/Space keys
176
+ * - Focus visible indicator for keyboard navigation
177
+ * - Screen reader accessible button semantics
178
+ *
179
+ * @param className - Additional CSS classes for styling
180
+ * @param children - Button content (text, icons, etc.)
181
+ * @since 1.0.0
182
+ */
183
+ declare function NavigationMenuTrigger({ className, children, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
184
+ /**
185
+ * NavigationMenuContent - Dropdown content panel for navigation menu
186
+ *
187
+ * The content container that appears when a NavigationMenuTrigger is activated.
188
+ * Supports enter/exit animations, responsive positioning, and flexible layouts.
189
+ * Can be styled differently based on the viewport prop setting.
190
+ *
191
+ * @component
192
+ * @example
193
+ * ```tsx
194
+ * <NavigationMenuContent>
195
+ * <div className="grid gap-3 p-6 w-[400px]">
196
+ * <NavigationMenuLink href="/feature1">Feature 1</NavigationMenuLink>
197
+ * <NavigationMenuLink href="/feature2">Feature 2</NavigationMenuLink>
198
+ * </div>
199
+ * </NavigationMenuContent>
200
+ * ```
201
+ *
202
+ * @example
203
+ * ```tsx
204
+ * // Complex layout with sections
205
+ * <NavigationMenuContent>
206
+ * <div className="grid gap-6 p-6 w-[600px] grid-cols-3">
207
+ * <div>
208
+ * <h4>Analytics</h4>
209
+ * <NavigationMenuLink href="/dashboard">Dashboard</NavigationMenuLink>
210
+ * </div>
211
+ * </div>
212
+ * </NavigationMenuContent>
213
+ * ```
214
+ *
215
+ * @accessibility
216
+ * - Automatic focus management when opened
217
+ * - Escape key support for closing
218
+ * - Proper ARIA labeling and relationships
219
+ *
220
+ * @param className - Additional CSS classes for styling
221
+ * @param children - Content to display in the dropdown (links, layouts, etc.)
222
+ * @since 1.0.0
223
+ */
224
+ declare function NavigationMenuContent({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
225
+ /**
226
+ * NavigationMenuViewport - Viewport container for dropdown content positioning
227
+ *
228
+ * Manages the positioning, sizing, and animation of NavigationMenuContent panels.
229
+ * Automatically adjusts dimensions based on content size and provides smooth
230
+ * enter/exit animations. Only rendered when viewport prop is true on NavigationMenu.
231
+ *
232
+ * @component
233
+ * @internal This component is typically not used directly by consumers
234
+ *
235
+ * @accessibility
236
+ * - Handles focus containment for dropdown content
237
+ * - Manages viewport announcements for screen readers
238
+ *
239
+ * @param className - Additional CSS classes for styling
240
+ * @since 1.0.0
241
+ */
242
+ declare function NavigationMenuViewport({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>): import("react/jsx-runtime").JSX.Element;
243
+ /**
244
+ * NavigationMenuLink - Styled link component for navigation menus
245
+ *
246
+ * A link component designed specifically for navigation menus. Supports active
247
+ * states, hover effects, and the asChild pattern for framework integration.
248
+ * Can be used both within dropdown content and as direct navigation items.
249
+ *
250
+ * @component
251
+ * @example
252
+ * ```tsx
253
+ * // Direct navigation link
254
+ * <NavigationMenuLink href="/about">About Us</NavigationMenuLink>
255
+ * ```
256
+ *
257
+ * @example
258
+ * ```tsx
259
+ * // With Next.js Link using asChild
260
+ * <NavigationMenuLink asChild>
261
+ * <Link href="/products">Products</Link>
262
+ * </NavigationMenuLink>
263
+ * ```
264
+ *
265
+ * @example
266
+ * ```tsx
267
+ * // In dropdown content with description
268
+ * <NavigationMenuLink href="/analytics">
269
+ * <div className="text-sm font-medium">Analytics</div>
270
+ * <p className="text-sm text-muted-foreground">View your data insights</p>
271
+ * </NavigationMenuLink>
272
+ * ```
273
+ *
274
+ * @example
275
+ * ```tsx
276
+ * // With trigger styling for direct navigation
277
+ * <NavigationMenuLink href="/docs" className={navigationMenuTriggerStyle()}>
278
+ * Documentation
279
+ * </NavigationMenuLink>
280
+ * ```
281
+ *
282
+ * @accessibility
283
+ * - Focus visible ring for keyboard navigation
284
+ * - Active state styling for current page indication
285
+ * - Proper link semantics and ARIA attributes
286
+ * - Keyboard activation support (Enter key)
287
+ * - Screen reader compatible text content
288
+ *
289
+ * @param className - Additional CSS classes for styling
290
+ * @param children - Link content (text, elements, descriptions)
291
+ * @since 1.0.0
292
+ */
293
+ declare function NavigationMenuLink({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>): import("react/jsx-runtime").JSX.Element;
294
+ /**
295
+ * NavigationMenuIndicator - Visual indicator for active menu item
296
+ *
297
+ * Displays an animated arrow indicator that points to the currently active
298
+ * or hovered navigation menu item. Automatically transitions between positions
299
+ * as users navigate through menu items, providing visual feedback.
300
+ *
301
+ * @component
302
+ * @example
303
+ * ```tsx
304
+ * // Typically used automatically, but can be customized
305
+ * <NavigationMenuIndicator className="custom-indicator-styles" />
306
+ * ```
307
+ *
308
+ * @accessibility
309
+ * - Purely decorative visual element
310
+ * - Does not interfere with screen reader navigation
311
+ * - Hidden from assistive technologies (aria-hidden)
312
+ *
313
+ * @param className - Additional CSS classes for custom indicator styling
314
+ * @since 1.0.0
315
+ */
316
+ declare function NavigationMenuIndicator({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>): import("react/jsx-runtime").JSX.Element;
317
+ export { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, NavigationMenuIndicator, NavigationMenuViewport, navigationMenuTriggerStyle, };
318
+ //# sourceMappingURL=navigation-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/navigation-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAM3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AACH;;;;;;;GAOG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,QAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG;IAC7D,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAeA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAW3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAQ3D;AAED,QAAA,MAAM,0BAA0B,oFAE/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,OAAO,CAAC,2CAc9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,OAAO,CAAC,2CAY9D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,QAAQ,CAAC,2CAiB/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAW3D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,uBAAuB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,SAAS,CAAC,2CAahE;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,CAAC"}
@@ -0,0 +1,343 @@
1
+ import * as React from "react";
2
+ import { Button } from "@/components/ui/button";
3
+ /**
4
+ * Pagination navigation component for large datasets
5
+ *
6
+ * A comprehensive pagination component built on shadcn/ui standards that provides
7
+ * intuitive navigation through pages of content. Features responsive design,
8
+ * accessibility compliance, and flexible composition patterns for different use cases.
9
+ *
10
+ * Ideal for data tables, search results, product listings, and any paginated content.
11
+ * Integrates seamlessly with React frameworks like Next.js through customizable link components.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * // Basic pagination with numbered pages
16
+ * <Pagination>
17
+ * <PaginationContent>
18
+ * <PaginationItem>
19
+ * <PaginationPrevious href="/page/1" />
20
+ * </PaginationItem>
21
+ * <PaginationItem>
22
+ * <PaginationLink href="/page/1">1</PaginationLink>
23
+ * </PaginationItem>
24
+ * <PaginationItem>
25
+ * <PaginationLink href="/page/2" isActive>2</PaginationLink>
26
+ * </PaginationItem>
27
+ * <PaginationItem>
28
+ * <PaginationLink href="/page/3">3</PaginationLink>
29
+ * </PaginationItem>
30
+ * <PaginationItem>
31
+ * <PaginationNext href="/page/3" />
32
+ * </PaginationItem>
33
+ * </PaginationContent>
34
+ * </Pagination>
35
+ * ```
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * // With ellipsis for large page ranges
40
+ * <Pagination>
41
+ * <PaginationContent>
42
+ * <PaginationItem>
43
+ * <PaginationPrevious href="/page/4" />
44
+ * </PaginationItem>
45
+ * <PaginationItem>
46
+ * <PaginationLink href="/page/1">1</PaginationLink>
47
+ * </PaginationItem>
48
+ * <PaginationItem>
49
+ * <PaginationEllipsis />
50
+ * </PaginationItem>
51
+ * <PaginationItem>
52
+ * <PaginationLink href="/page/5" isActive>5</PaginationLink>
53
+ * </PaginationItem>
54
+ * <PaginationItem>
55
+ * <PaginationEllipsis />
56
+ * </PaginationItem>
57
+ * <PaginationItem>
58
+ * <PaginationLink href="/page/50">50</PaginationLink>
59
+ * </PaginationItem>
60
+ * <PaginationItem>
61
+ * <PaginationNext href="/page/6" />
62
+ * </PaginationItem>
63
+ * </PaginationContent>
64
+ * </Pagination>
65
+ * ```
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * // With Next.js Link integration
70
+ * <Pagination>
71
+ * <PaginationContent>
72
+ * <PaginationItem>
73
+ * <PaginationLink asChild>
74
+ * <Link href="/products?page=1">1</Link>
75
+ * </PaginationLink>
76
+ * </PaginationItem>
77
+ * </PaginationContent>
78
+ * </Pagination>
79
+ * ```
80
+ *
81
+ * @accessibility
82
+ * - Semantic nav element with role="navigation" and aria-label="pagination"
83
+ * - aria-current="page" automatically applied to active page links
84
+ * - Descriptive aria-labels on Previous/Next buttons for screen readers
85
+ * - Full keyboard navigation support with Tab and Enter keys
86
+ * - High contrast focus indicators and proper color contrast ratios
87
+ * - Screen reader friendly ellipsis with "More pages" hidden text
88
+ *
89
+ * @see {@link https://ui.shadcn.com/docs/components/pagination} shadcn/ui Pagination
90
+ * @see {@link PaginationContent} Container for pagination items
91
+ * @see {@link PaginationLink} Individual page number links
92
+ * @see {@link PaginationPrevious} Previous page navigation button
93
+ * @see {@link PaginationNext} Next page navigation button
94
+ * @see {@link PaginationEllipsis} Ellipsis indicator for omitted pages
95
+ * @since 1.0.0
96
+ */
97
+ declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
98
+ /**
99
+ * Container for pagination navigation items
100
+ *
101
+ * A semantic unordered list that houses all pagination controls in a
102
+ * responsive horizontal layout. Provides proper spacing and alignment
103
+ * for pagination items while maintaining accessibility standards.
104
+ *
105
+ * @example
106
+ * ```tsx
107
+ * <PaginationContent>
108
+ * <PaginationItem>
109
+ * <PaginationPrevious href="/prev" />
110
+ * </PaginationItem>
111
+ * <PaginationItem>
112
+ * <PaginationLink href="/page/1">1</PaginationLink>
113
+ * </PaginationItem>
114
+ * </PaginationContent>
115
+ * ```
116
+ *
117
+ * @accessibility
118
+ * - Semantic ul element for proper list structure
119
+ * - Flexible gap spacing for touch-friendly interaction
120
+ * - Horizontal scrolling support on narrow viewports
121
+ */
122
+ declare function PaginationContent({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
123
+ /**
124
+ * Individual list item wrapper for pagination controls
125
+ *
126
+ * A semantic list item that wraps pagination links, buttons, or ellipsis elements.
127
+ * Provides consistent structure and enables proper keyboard navigation between
128
+ * pagination controls.
129
+ *
130
+ * @example
131
+ * ```tsx
132
+ * <PaginationItem>
133
+ * <PaginationLink href="/page/1">1</PaginationLink>
134
+ * </PaginationItem>
135
+ *
136
+ * <PaginationItem>
137
+ * <PaginationEllipsis />
138
+ * </PaginationItem>
139
+ * ```
140
+ */
141
+ declare function PaginationItem({ ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
142
+ /**
143
+ * Props for pagination link components
144
+ */
145
+ type PaginationLinkProps = {
146
+ /**
147
+ * Whether this link represents the currently active page
148
+ *
149
+ * When true, applies active styling and adds aria-current="page"
150
+ * for screen reader accessibility.
151
+ *
152
+ * @default false
153
+ */
154
+ isActive?: boolean;
155
+ } & Pick<React.ComponentProps<typeof Button>, "size"> & React.ComponentProps<"a">;
156
+ /**
157
+ * Clickable link for individual page numbers
158
+ *
159
+ * Interactive link component that navigates to specific pages within
160
+ * paginated content. Features automatic active state styling and
161
+ * accessibility attributes. Can be used with framework routers like
162
+ * Next.js Link or React Router through the asChild pattern.
163
+ *
164
+ * @example
165
+ * ```tsx
166
+ * // Basic page links
167
+ * <PaginationLink href="/products?page=1">1</PaginationLink>
168
+ * <PaginationLink href="/products?page=2" isActive>2</PaginationLink>
169
+ * <PaginationLink href="/products?page=3">3</PaginationLink>
170
+ * ```
171
+ *
172
+ * @example
173
+ * ```tsx
174
+ * // With Next.js Link
175
+ * <PaginationLink asChild>
176
+ * <Link href="/search?q=react&page=1">1</Link>
177
+ * </PaginationLink>
178
+ * ```
179
+ *
180
+ * @example
181
+ * ```tsx
182
+ * // With onClick handlers for client-side pagination
183
+ * <PaginationLink
184
+ * href="#"
185
+ * onClick={(e) => {
186
+ * e.preventDefault();
187
+ * onPageChange(1);
188
+ * }}
189
+ * >
190
+ * 1
191
+ * </PaginationLink>
192
+ * ```
193
+ *
194
+ * @accessibility
195
+ * - Automatically applies aria-current="page" when isActive is true
196
+ * - Button-style focus indicators for keyboard navigation
197
+ * - Sufficient color contrast for active/inactive states
198
+ * - Touch-friendly minimum 44px target size
199
+ */
200
+ declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): import("react/jsx-runtime").JSX.Element;
201
+ /**
202
+ * Previous page navigation button
203
+ *
204
+ * Navigates to the previous page in the pagination sequence. Features
205
+ * responsive design that shows only an icon on mobile devices and
206
+ * icon with text on larger screens for optimal user experience.
207
+ *
208
+ * @example
209
+ * ```tsx
210
+ * // Basic previous button
211
+ * <PaginationPrevious href="/products?page=1" />
212
+ * ```
213
+ *
214
+ * @example
215
+ * ```tsx
216
+ * // With disabled state (typically for first page)
217
+ * <PaginationPrevious
218
+ * href="#"
219
+ * className="pointer-events-none opacity-50"
220
+ * aria-disabled="true"
221
+ * />
222
+ * ```
223
+ *
224
+ * @example
225
+ * ```tsx
226
+ * // With click handler for client-side navigation
227
+ * <PaginationPrevious
228
+ * href="#"
229
+ * onClick={(e) => {
230
+ * e.preventDefault();
231
+ * if (currentPage > 1) {
232
+ * onPageChange(currentPage - 1);
233
+ * }
234
+ * }}
235
+ * />
236
+ * ```
237
+ *
238
+ * @accessibility
239
+ * - Built-in aria-label="Go to previous page" for screen readers
240
+ * - Chevron icon provides visual direction context
241
+ * - Responsive text label appears on larger screens
242
+ * - Keyboard accessible through Tab navigation
243
+ * - Should be disabled on first page to prevent confusion
244
+ */
245
+ declare function PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
246
+ /**
247
+ * Next page navigation button
248
+ *
249
+ * Navigates to the next page in the pagination sequence. Features
250
+ * responsive design that shows only an icon on mobile devices and
251
+ * text with icon on larger screens for optimal user experience.
252
+ *
253
+ * @example
254
+ * ```tsx
255
+ * // Basic next button
256
+ * <PaginationNext href="/products?page=3" />
257
+ * ```
258
+ *
259
+ * @example
260
+ * ```tsx
261
+ * // With disabled state (typically for last page)
262
+ * <PaginationNext
263
+ * href="#"
264
+ * className="pointer-events-none opacity-50"
265
+ * aria-disabled="true"
266
+ * />
267
+ * ```
268
+ *
269
+ * @example
270
+ * ```tsx
271
+ * // With click handler for client-side navigation
272
+ * <PaginationNext
273
+ * href="#"
274
+ * onClick={(e) => {
275
+ * e.preventDefault();
276
+ * if (currentPage < totalPages) {
277
+ * onPageChange(currentPage + 1);
278
+ * }
279
+ * }}
280
+ * />
281
+ * ```
282
+ *
283
+ * @accessibility
284
+ * - Built-in aria-label="Go to next page" for screen readers
285
+ * - Chevron icon provides visual direction context
286
+ * - Responsive text label appears on larger screens
287
+ * - Keyboard accessible through Tab navigation
288
+ * - Should be disabled on last page to prevent confusion
289
+ */
290
+ declare function PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
291
+ /**
292
+ * Visual indicator for omitted page numbers
293
+ *
294
+ * Displays a horizontal ellipsis (three dots) to indicate that
295
+ * page numbers have been omitted from the pagination display.
296
+ * Used to maintain clean UI when dealing with large page ranges.
297
+ *
298
+ * @example
299
+ * ```tsx
300
+ * // Between page ranges
301
+ * <PaginationItem>
302
+ * <PaginationLink href="/page/1">1</PaginationLink>
303
+ * </PaginationItem>
304
+ * <PaginationItem>
305
+ * <PaginationEllipsis />
306
+ * </PaginationItem>
307
+ * <PaginationItem>
308
+ * <PaginationLink href="/page/25" isActive>25</PaginationLink>
309
+ * </PaginationItem>
310
+ * ```
311
+ *
312
+ * @example
313
+ * ```tsx
314
+ * // Common pagination pattern with ellipsis
315
+ * // 1 ... 23 24 [25] 26 27 ... 100
316
+ * <PaginationContent>
317
+ * <PaginationItem>
318
+ * <PaginationLink href="/page/1">1</PaginationLink>
319
+ * </PaginationItem>
320
+ * <PaginationItem>
321
+ * <PaginationEllipsis />
322
+ * </PaginationItem>
323
+ * <PaginationItem>
324
+ * <PaginationLink href="/page/25" isActive>25</PaginationLink>
325
+ * </PaginationItem>
326
+ * <PaginationItem>
327
+ * <PaginationEllipsis />
328
+ * </PaginationItem>
329
+ * <PaginationItem>
330
+ * <PaginationLink href="/page/100">100</PaginationLink>
331
+ * </PaginationItem>
332
+ * </PaginationContent>
333
+ * ```
334
+ *
335
+ * @accessibility
336
+ * - Visual element is aria-hidden from screen readers
337
+ * - Hidden "More pages" text provides context for assistive technology
338
+ * - Non-interactive, purely decorative indicator
339
+ * - Consistent sizing with pagination links for visual harmony
340
+ */
341
+ declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
342
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
343
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/components/ui/pagination.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAUvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAQ5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAE/D;AAED;;GAEG;AACH,KAAK,mBAAmB,GAAG;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GACnD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,IAAa,EACb,GAAG,KAAK,EACT,EAAE,mBAAmB,2CAgBrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,2CAY7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,2CAY7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAY9B;AAED,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,CAAC"}