@primereact/mcp 11.0.0-rc.2

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 (546) hide show
  1. package/LICENSE.md +45 -0
  2. package/README.md +94 -0
  3. package/data/llms/headless/add-ons/introduction.md +16 -0
  4. package/data/llms/headless/components/accordion/api.json +252 -0
  5. package/data/llms/headless/components/accordion.md +196 -0
  6. package/data/llms/headless/components/animateonscroll/api.json +88 -0
  7. package/data/llms/headless/components/animateonscroll.md +141 -0
  8. package/data/llms/headless/components/autocomplete/api.json +787 -0
  9. package/data/llms/headless/components/autocomplete.md +249 -0
  10. package/data/llms/headless/components/avatar/api.json +154 -0
  11. package/data/llms/headless/components/avatar.md +149 -0
  12. package/data/llms/headless/components/badge/api.json +68 -0
  13. package/data/llms/headless/components/badge.md +150 -0
  14. package/data/llms/headless/components/breadcrumb/api.json +142 -0
  15. package/data/llms/headless/components/breadcrumb.md +149 -0
  16. package/data/llms/headless/components/button/api.json +62 -0
  17. package/data/llms/headless/components/button.md +73 -0
  18. package/data/llms/headless/components/card/api.json +36 -0
  19. package/data/llms/headless/components/card.md +96 -0
  20. package/data/llms/headless/components/carousel/api.json +793 -0
  21. package/data/llms/headless/components/carousel.md +196 -0
  22. package/data/llms/headless/components/checkbox/api.json +593 -0
  23. package/data/llms/headless/components/checkbox.md +184 -0
  24. package/data/llms/headless/components/chip/api.json +107 -0
  25. package/data/llms/headless/components/chip.md +141 -0
  26. package/data/llms/headless/components/collapsible/api.json +301 -0
  27. package/data/llms/headless/components/collapsible.md +136 -0
  28. package/data/llms/headless/components/compare/api.json +533 -0
  29. package/data/llms/headless/components/compare.md +142 -0
  30. package/data/llms/headless/components/contextmenu/api.json +495 -0
  31. package/data/llms/headless/components/contextmenu.md +282 -0
  32. package/data/llms/headless/components/datatable/api.json +1680 -0
  33. package/data/llms/headless/components/datatable.md +258 -0
  34. package/data/llms/headless/components/dataview/api.json +199 -0
  35. package/data/llms/headless/components/dataview.md +147 -0
  36. package/data/llms/headless/components/datepicker/api.json +2796 -0
  37. package/data/llms/headless/components/datepicker.md +456 -0
  38. package/data/llms/headless/components/dialog/api.json +626 -0
  39. package/data/llms/headless/components/dialog.md +280 -0
  40. package/data/llms/headless/components/divider/api.json +130 -0
  41. package/data/llms/headless/components/divider.md +92 -0
  42. package/data/llms/headless/components/drawer/api.json +425 -0
  43. package/data/llms/headless/components/drawer.md +220 -0
  44. package/data/llms/headless/components/fieldset/api.json +195 -0
  45. package/data/llms/headless/components/fieldset.md +154 -0
  46. package/data/llms/headless/components/fileupload/api.json +905 -0
  47. package/data/llms/headless/components/fileupload.md +323 -0
  48. package/data/llms/headless/components/floatlabel/api.json +36 -0
  49. package/data/llms/headless/components/floatlabel.md +19 -0
  50. package/data/llms/headless/components/fluid/api.json +36 -0
  51. package/data/llms/headless/components/fluid.md +19 -0
  52. package/data/llms/headless/components/focustrap/api.json +135 -0
  53. package/data/llms/headless/components/focustrap.md +125 -0
  54. package/data/llms/headless/components/gallery/api.json +1349 -0
  55. package/data/llms/headless/components/gallery.md +355 -0
  56. package/data/llms/headless/components/iconfield/api.json +62 -0
  57. package/data/llms/headless/components/iconfield.md +19 -0
  58. package/data/llms/headless/components/iftalabel/api.json +62 -0
  59. package/data/llms/headless/components/iftalabel.md +19 -0
  60. package/data/llms/headless/components/inplace/api.json +340 -0
  61. package/data/llms/headless/components/inplace.md +153 -0
  62. package/data/llms/headless/components/inputcolor/api.json +469 -0
  63. package/data/llms/headless/components/inputcolor.md +253 -0
  64. package/data/llms/headless/components/inputgroup/api.json +62 -0
  65. package/data/llms/headless/components/inputgroup.md +19 -0
  66. package/data/llms/headless/components/inputnumber/api.json +554 -0
  67. package/data/llms/headless/components/inputnumber.md +167 -0
  68. package/data/llms/headless/components/inputotp/api.json +276 -0
  69. package/data/llms/headless/components/inputotp.md +130 -0
  70. package/data/llms/headless/components/inputpassword/api.json +180 -0
  71. package/data/llms/headless/components/inputpassword.md +117 -0
  72. package/data/llms/headless/components/inputtags/api.json +497 -0
  73. package/data/llms/headless/components/inputtags.md +298 -0
  74. package/data/llms/headless/components/inputtext/api.json +81 -0
  75. package/data/llms/headless/components/inputtext.md +109 -0
  76. package/data/llms/headless/components/knob/api.json +429 -0
  77. package/data/llms/headless/components/knob.md +151 -0
  78. package/data/llms/headless/components/label/api.json +62 -0
  79. package/data/llms/headless/components/label.md +19 -0
  80. package/data/llms/headless/components/listbox/api.json +814 -0
  81. package/data/llms/headless/components/listbox.md +194 -0
  82. package/data/llms/headless/components/menu/api.json +1247 -0
  83. package/data/llms/headless/components/menu.md +283 -0
  84. package/data/llms/headless/components/message/api.json +131 -0
  85. package/data/llms/headless/components/message.md +143 -0
  86. package/data/llms/headless/components/metergroup/api.json +266 -0
  87. package/data/llms/headless/components/metergroup.md +129 -0
  88. package/data/llms/headless/components/motion/api.json +237 -0
  89. package/data/llms/headless/components/motion.md +160 -0
  90. package/data/llms/headless/components/navigationmenu/api.json +220 -0
  91. package/data/llms/headless/components/navigationmenu.md +166 -0
  92. package/data/llms/headless/components/orderlist/api.json +196 -0
  93. package/data/llms/headless/components/orderlist.md +221 -0
  94. package/data/llms/headless/components/organizationchart/api.json +372 -0
  95. package/data/llms/headless/components/organizationchart.md +254 -0
  96. package/data/llms/headless/components/paginator/api.json +311 -0
  97. package/data/llms/headless/components/paginator.md +187 -0
  98. package/data/llms/headless/components/panel/api.json +195 -0
  99. package/data/llms/headless/components/panel.md +150 -0
  100. package/data/llms/headless/components/picklist/api.json +293 -0
  101. package/data/llms/headless/components/picklist.md +270 -0
  102. package/data/llms/headless/components/popover/api.json +405 -0
  103. package/data/llms/headless/components/popover.md +301 -0
  104. package/data/llms/headless/components/portal/api.json +56 -0
  105. package/data/llms/headless/components/portal.md +102 -0
  106. package/data/llms/headless/components/positioner/api.json +165 -0
  107. package/data/llms/headless/components/positioner.md +181 -0
  108. package/data/llms/headless/components/progressbar/api.json +87 -0
  109. package/data/llms/headless/components/progressbar.md +122 -0
  110. package/data/llms/headless/components/progressspinner/api.json +337 -0
  111. package/data/llms/headless/components/progressspinner.md +128 -0
  112. package/data/llms/headless/components/radiobutton/api.json +569 -0
  113. package/data/llms/headless/components/radiobutton.md +195 -0
  114. package/data/llms/headless/components/rating/api.json +347 -0
  115. package/data/llms/headless/components/rating.md +181 -0
  116. package/data/llms/headless/components/scrollarea/api.json +730 -0
  117. package/data/llms/headless/components/scrollarea.md +232 -0
  118. package/data/llms/headless/components/select/api.json +829 -0
  119. package/data/llms/headless/components/select.md +262 -0
  120. package/data/llms/headless/components/sidebar/api.json +433 -0
  121. package/data/llms/headless/components/sidebar.md +266 -0
  122. package/data/llms/headless/components/skeleton/api.json +68 -0
  123. package/data/llms/headless/components/skeleton.md +95 -0
  124. package/data/llms/headless/components/slider/api.json +559 -0
  125. package/data/llms/headless/components/slider.md +158 -0
  126. package/data/llms/headless/components/speeddial/api.json +459 -0
  127. package/data/llms/headless/components/speeddial.md +181 -0
  128. package/data/llms/headless/components/splitter/api.json +582 -0
  129. package/data/llms/headless/components/splitter.md +159 -0
  130. package/data/llms/headless/components/stepper/api.json +385 -0
  131. package/data/llms/headless/components/stepper.md +183 -0
  132. package/data/llms/headless/components/styleclass/api.json +134 -0
  133. package/data/llms/headless/components/styleclass.md +129 -0
  134. package/data/llms/headless/components/tabs/api.json +336 -0
  135. package/data/llms/headless/components/tabs.md +158 -0
  136. package/data/llms/headless/components/tag/api.json +62 -0
  137. package/data/llms/headless/components/tag.md +121 -0
  138. package/data/llms/headless/components/terminal/api.json +117 -0
  139. package/data/llms/headless/components/terminal.md +183 -0
  140. package/data/llms/headless/components/textarea/api.json +81 -0
  141. package/data/llms/headless/components/textarea.md +110 -0
  142. package/data/llms/headless/components/timeline/api.json +270 -0
  143. package/data/llms/headless/components/timeline.md +117 -0
  144. package/data/llms/headless/components/toast/api.json +455 -0
  145. package/data/llms/headless/components/toast.md +277 -0
  146. package/data/llms/headless/components/togglebutton/api.json +357 -0
  147. package/data/llms/headless/components/togglebutton.md +183 -0
  148. package/data/llms/headless/components/toggleswitch/api.json +326 -0
  149. package/data/llms/headless/components/toggleswitch.md +164 -0
  150. package/data/llms/headless/components/toolbar/api.json +68 -0
  151. package/data/llms/headless/components/toolbar.md +96 -0
  152. package/data/llms/headless/components/tooltip/api.json +478 -0
  153. package/data/llms/headless/components/tooltip.md +233 -0
  154. package/data/llms/headless/components/tree/api.json +1297 -0
  155. package/data/llms/headless/components/tree.md +297 -0
  156. package/data/llms/headless/components/treetable/api.json +1680 -0
  157. package/data/llms/headless/components/treetable.md +177 -0
  158. package/data/llms/headless/guides/ai/llms.md +25 -0
  159. package/data/llms/headless/guides/installation.md +126 -0
  160. package/data/llms/headless/guides/introduction.md +20 -0
  161. package/data/llms/headless/guides/misc/accessibility.md +228 -0
  162. package/data/llms/headless/llms.md +25 -0
  163. package/data/llms/headless/resources/introduction.md +15 -0
  164. package/data/llms/hooks/gettingstarted/introduction.md +34 -0
  165. package/data/llms/hooks/gettingstarted/setup.md +54 -0
  166. package/data/llms/hooks/use-attr-selector.md +25 -0
  167. package/data/llms/hooks/use-controlled-state.md +31 -0
  168. package/data/llms/hooks/use-event-listener.md +37 -0
  169. package/data/llms/hooks/use-filter.md +312 -0
  170. package/data/llms/hooks/use-hot-key.md +40 -0
  171. package/data/llms/hooks/use-id.md +24 -0
  172. package/data/llms/hooks/use-intersection-observer.md +42 -0
  173. package/data/llms/hooks/use-is-mobile.md +24 -0
  174. package/data/llms/hooks/use-key-filter.md +139 -0
  175. package/data/llms/hooks/use-local-storage.md +28 -0
  176. package/data/llms/hooks/use-mask.md +53 -0
  177. package/data/llms/hooks/use-match-media.md +28 -0
  178. package/data/llms/hooks/use-mount-effect.md +25 -0
  179. package/data/llms/hooks/use-mounted.md +36 -0
  180. package/data/llms/hooks/use-number-formatter.md +48 -0
  181. package/data/llms/hooks/use-presence.md +44 -0
  182. package/data/llms/hooks/use-previous.md +28 -0
  183. package/data/llms/hooks/use-props.md +37 -0
  184. package/data/llms/hooks/use-queue-task.md +29 -0
  185. package/data/llms/hooks/use-scrolltop.md +87 -0
  186. package/data/llms/hooks/use-sortable-list.md +226 -0
  187. package/data/llms/hooks/use-tree-filter.md +216 -0
  188. package/data/llms/hooks/use-unmount-effect.md +23 -0
  189. package/data/llms/hooks/use-update-effect.md +27 -0
  190. package/data/llms/hooks/use-view-transition.md +31 -0
  191. package/data/llms/hooks/use-visibility-change.md +30 -0
  192. package/data/llms/llms-full.txt +125291 -0
  193. package/data/llms/llms.txt +379 -0
  194. package/data/llms/manifest.json +12409 -0
  195. package/data/llms/mcp-data.json +14481 -0
  196. package/data/llms/primitive/add-ons/introduction.md +16 -0
  197. package/data/llms/primitive/components/accordion/api.json +1411 -0
  198. package/data/llms/primitive/components/accordion.md +231 -0
  199. package/data/llms/primitive/components/animateonscroll/api.json +193 -0
  200. package/data/llms/primitive/components/animateonscroll.md +91 -0
  201. package/data/llms/primitive/components/autocomplete/api.json +3167 -0
  202. package/data/llms/primitive/components/autocomplete.md +344 -0
  203. package/data/llms/primitive/components/avatar/api.json +703 -0
  204. package/data/llms/primitive/components/avatar.md +134 -0
  205. package/data/llms/primitive/components/badge/api.json +363 -0
  206. package/data/llms/primitive/components/badge.md +118 -0
  207. package/data/llms/primitive/components/breadcrumb/api.json +1162 -0
  208. package/data/llms/primitive/components/breadcrumb.md +196 -0
  209. package/data/llms/primitive/components/button/api.json +246 -0
  210. package/data/llms/primitive/components/button.md +114 -0
  211. package/data/llms/primitive/components/buttongroup/api.json +168 -0
  212. package/data/llms/primitive/components/buttongroup.md +43 -0
  213. package/data/llms/primitive/components/card/api.json +1252 -0
  214. package/data/llms/primitive/components/card.md +159 -0
  215. package/data/llms/primitive/components/carousel/api.json +1374 -0
  216. package/data/llms/primitive/components/carousel.md +220 -0
  217. package/data/llms/primitive/components/checkbox/api.json +697 -0
  218. package/data/llms/primitive/components/checkbox.md +160 -0
  219. package/data/llms/primitive/components/checkboxgroup/api.json +252 -0
  220. package/data/llms/primitive/components/checkboxgroup.md +58 -0
  221. package/data/llms/primitive/components/chip/api.json +853 -0
  222. package/data/llms/primitive/components/chip.md +135 -0
  223. package/data/llms/primitive/components/collapsible/api.json +581 -0
  224. package/data/llms/primitive/components/collapsible.md +133 -0
  225. package/data/llms/primitive/components/compare/api.json +909 -0
  226. package/data/llms/primitive/components/compare.md +156 -0
  227. package/data/llms/primitive/components/contextmenu/api.json +3454 -0
  228. package/data/llms/primitive/components/contextmenu.md +483 -0
  229. package/data/llms/primitive/components/datatable/api.json +7832 -0
  230. package/data/llms/primitive/components/datatable.md +561 -0
  231. package/data/llms/primitive/components/dataview/api.json +819 -0
  232. package/data/llms/primitive/components/dataview.md +163 -0
  233. package/data/llms/primitive/components/datepicker/api.json +9055 -0
  234. package/data/llms/primitive/components/datepicker.md +760 -0
  235. package/data/llms/primitive/components/dialog/api.json +2491 -0
  236. package/data/llms/primitive/components/dialog.md +276 -0
  237. package/data/llms/primitive/components/divider/api.json +214 -0
  238. package/data/llms/primitive/components/divider.md +96 -0
  239. package/data/llms/primitive/components/drawer/api.json +1879 -0
  240. package/data/llms/primitive/components/drawer.md +220 -0
  241. package/data/llms/primitive/components/fieldset/api.json +1116 -0
  242. package/data/llms/primitive/components/fieldset.md +183 -0
  243. package/data/llms/primitive/components/fileupload/api.json +2445 -0
  244. package/data/llms/primitive/components/fileupload.md +282 -0
  245. package/data/llms/primitive/components/floatlabel/api.json +176 -0
  246. package/data/llms/primitive/components/floatlabel.md +47 -0
  247. package/data/llms/primitive/components/focustrap/api.json +241 -0
  248. package/data/llms/primitive/components/focustrap.md +93 -0
  249. package/data/llms/primitive/components/gallery/api.json +3622 -0
  250. package/data/llms/primitive/components/gallery.md +387 -0
  251. package/data/llms/primitive/components/iconfield/api.json +322 -0
  252. package/data/llms/primitive/components/iconfield.md +53 -0
  253. package/data/llms/primitive/components/iftalabel/api.json +177 -0
  254. package/data/llms/primitive/components/iftalabel.md +47 -0
  255. package/data/llms/primitive/components/inplace/api.json +783 -0
  256. package/data/llms/primitive/components/inplace.md +141 -0
  257. package/data/llms/primitive/components/inputcolor/api.json +2211 -0
  258. package/data/llms/primitive/components/inputcolor.md +295 -0
  259. package/data/llms/primitive/components/inputnumber/api.json +469 -0
  260. package/data/llms/primitive/components/inputnumber.md +99 -0
  261. package/data/llms/primitive/components/inputotp/api.json +469 -0
  262. package/data/llms/primitive/components/inputotp.md +121 -0
  263. package/data/llms/primitive/components/inputpassword/api.json +278 -0
  264. package/data/llms/primitive/components/inputpassword.md +84 -0
  265. package/data/llms/primitive/components/inputtags/api.json +407 -0
  266. package/data/llms/primitive/components/inputtags.md +243 -0
  267. package/data/llms/primitive/components/inputtext/api.json +207 -0
  268. package/data/llms/primitive/components/inputtext.md +81 -0
  269. package/data/llms/primitive/components/knob/api.json +841 -0
  270. package/data/llms/primitive/components/knob.md +148 -0
  271. package/data/llms/primitive/components/label/api.json +177 -0
  272. package/data/llms/primitive/components/label.md +44 -0
  273. package/data/llms/primitive/components/listbox/api.json +1741 -0
  274. package/data/llms/primitive/components/listbox.md +206 -0
  275. package/data/llms/primitive/components/menu/api.json +3836 -0
  276. package/data/llms/primitive/components/menu.md +479 -0
  277. package/data/llms/primitive/components/message/api.json +863 -0
  278. package/data/llms/primitive/components/message.md +151 -0
  279. package/data/llms/primitive/components/metergroup/api.json +1222 -0
  280. package/data/llms/primitive/components/metergroup.md +209 -0
  281. package/data/llms/primitive/components/motion.md +112 -0
  282. package/data/llms/primitive/components/navigationmenu/api.json +298 -0
  283. package/data/llms/primitive/components/navigationmenu.md +184 -0
  284. package/data/llms/primitive/components/organizationchart.md +133 -0
  285. package/data/llms/primitive/components/paginator/api.json +1637 -0
  286. package/data/llms/primitive/components/paginator.md +223 -0
  287. package/data/llms/primitive/components/panel/api.json +1270 -0
  288. package/data/llms/primitive/components/panel.md +186 -0
  289. package/data/llms/primitive/components/popover/api.json +2281 -0
  290. package/data/llms/primitive/components/popover.md +277 -0
  291. package/data/llms/primitive/components/portal/api.json +176 -0
  292. package/data/llms/primitive/components/portal.md +79 -0
  293. package/data/llms/primitive/components/progressbar/api.json +857 -0
  294. package/data/llms/primitive/components/progressbar.md +153 -0
  295. package/data/llms/primitive/components/progressspinner/api.json +725 -0
  296. package/data/llms/primitive/components/progressspinner.md +133 -0
  297. package/data/llms/primitive/components/radiobutton/api.json +929 -0
  298. package/data/llms/primitive/components/radiobutton.md +201 -0
  299. package/data/llms/primitive/components/rating/api.json +878 -0
  300. package/data/llms/primitive/components/rating.md +160 -0
  301. package/data/llms/primitive/components/scrollarea/api.json +1187 -0
  302. package/data/llms/primitive/components/scrollarea.md +255 -0
  303. package/data/llms/primitive/components/select/api.json +3167 -0
  304. package/data/llms/primitive/components/select.md +351 -0
  305. package/data/llms/primitive/components/sidebar/api.json +3699 -0
  306. package/data/llms/primitive/components/sidebar.md +444 -0
  307. package/data/llms/primitive/components/skeleton/api.json +213 -0
  308. package/data/llms/primitive/components/skeleton.md +80 -0
  309. package/data/llms/primitive/components/slider/api.json +1066 -0
  310. package/data/llms/primitive/components/slider.md +161 -0
  311. package/data/llms/primitive/components/speeddial/api.json +1002 -0
  312. package/data/llms/primitive/components/speeddial.md +197 -0
  313. package/data/llms/primitive/components/splitter/api.json +901 -0
  314. package/data/llms/primitive/components/splitter.md +137 -0
  315. package/data/llms/primitive/components/stepper/api.json +2102 -0
  316. package/data/llms/primitive/components/stepper.md +253 -0
  317. package/data/llms/primitive/components/styleclass.md +399 -0
  318. package/data/llms/primitive/components/tabs/api.json +1705 -0
  319. package/data/llms/primitive/components/tabs.md +200 -0
  320. package/data/llms/primitive/components/tag/api.json +189 -0
  321. package/data/llms/primitive/components/tag.md +100 -0
  322. package/data/llms/primitive/components/terminal/api.json +1709 -0
  323. package/data/llms/primitive/components/terminal.md +227 -0
  324. package/data/llms/primitive/components/textarea/api.json +213 -0
  325. package/data/llms/primitive/components/textarea.md +83 -0
  326. package/data/llms/primitive/components/timeline/api.json +1180 -0
  327. package/data/llms/primitive/components/timeline.md +185 -0
  328. package/data/llms/primitive/components/toast/api.json +2102 -0
  329. package/data/llms/primitive/components/toast.md +291 -0
  330. package/data/llms/primitive/components/togglebutton/api.json +433 -0
  331. package/data/llms/primitive/components/togglebutton.md +161 -0
  332. package/data/llms/primitive/components/togglebuttongroup/api.json +276 -0
  333. package/data/llms/primitive/components/togglebuttongroup.md +61 -0
  334. package/data/llms/primitive/components/toggleswitch/api.json +681 -0
  335. package/data/llms/primitive/components/toggleswitch.md +149 -0
  336. package/data/llms/primitive/components/toolbar/api.json +646 -0
  337. package/data/llms/primitive/components/toolbar.md +126 -0
  338. package/data/llms/primitive/components/tooltip/api.json +1534 -0
  339. package/data/llms/primitive/components/tooltip.md +202 -0
  340. package/data/llms/primitive/components/tree/api.json +2952 -0
  341. package/data/llms/primitive/components/tree.md +292 -0
  342. package/data/llms/primitive/components/treetable.md +187 -0
  343. package/data/llms/primitive/components/visuallyhidden/api.json +186 -0
  344. package/data/llms/primitive/components/visuallyhidden.md +87 -0
  345. package/data/llms/primitive/guides/ai/llms.md +25 -0
  346. package/data/llms/primitive/guides/icons/customicons.md +47 -0
  347. package/data/llms/primitive/guides/icons/primeicons.md +112 -0
  348. package/data/llms/primitive/guides/installation.md +115 -0
  349. package/data/llms/primitive/guides/introduction.md +20 -0
  350. package/data/llms/primitive/guides/misc/accessibility.md +215 -0
  351. package/data/llms/primitive/guides/misc/passthrough.md +95 -0
  352. package/data/llms/primitive/guides/misc/rtl.md +27 -0
  353. package/data/llms/primitive/llms.md +25 -0
  354. package/data/llms/primitive/resources/introduction.md +15 -0
  355. package/data/llms/styled/add-ons/introduction.md +16 -0
  356. package/data/llms/styled/components/accordion.md +735 -0
  357. package/data/llms/styled/components/animateonscroll.md +264 -0
  358. package/data/llms/styled/components/autocomplete.md +1597 -0
  359. package/data/llms/styled/components/avatar.md +313 -0
  360. package/data/llms/styled/components/badge.md +213 -0
  361. package/data/llms/styled/components/breadcrumb.md +461 -0
  362. package/data/llms/styled/components/button/api.json +246 -0
  363. package/data/llms/styled/components/button.md +641 -0
  364. package/data/llms/styled/components/buttongroup.md +614 -0
  365. package/data/llms/styled/components/card.md +228 -0
  366. package/data/llms/styled/components/carousel.md +388 -0
  367. package/data/llms/styled/components/checkbox.md +329 -0
  368. package/data/llms/styled/components/checkboxgroup.md +619 -0
  369. package/data/llms/styled/components/chip.md +300 -0
  370. package/data/llms/styled/components/compare.md +271 -0
  371. package/data/llms/styled/components/contextmenu.md +550 -0
  372. package/data/llms/styled/components/datatable.md +8259 -0
  373. package/data/llms/styled/components/dataview.md +907 -0
  374. package/data/llms/styled/components/datepicker.md +2807 -0
  375. package/data/llms/styled/components/dialog.md +1047 -0
  376. package/data/llms/styled/components/divider.md +207 -0
  377. package/data/llms/styled/components/drawer.md +470 -0
  378. package/data/llms/styled/components/fieldset.md +334 -0
  379. package/data/llms/styled/components/fileupload.md +747 -0
  380. package/data/llms/styled/components/floatlabel/api.json +210 -0
  381. package/data/llms/styled/components/floatlabel.md +231 -0
  382. package/data/llms/styled/components/fluid/api.json +204 -0
  383. package/data/llms/styled/components/fluid.md +177 -0
  384. package/data/llms/styled/components/focustrap.md +203 -0
  385. package/data/llms/styled/components/gallery.md +553 -0
  386. package/data/llms/styled/components/iconfield/api.json +382 -0
  387. package/data/llms/styled/components/iconfield.md +385 -0
  388. package/data/llms/styled/components/iftalabel/api.json +237 -0
  389. package/data/llms/styled/components/iftalabel.md +158 -0
  390. package/data/llms/styled/components/inplace.md +312 -0
  391. package/data/llms/styled/components/inputcolor.md +674 -0
  392. package/data/llms/styled/components/inputgroup/api.json +399 -0
  393. package/data/llms/styled/components/inputgroup.md +604 -0
  394. package/data/llms/styled/components/inputmask.md +282 -0
  395. package/data/llms/styled/components/inputnumber.md +563 -0
  396. package/data/llms/styled/components/inputotp.md +335 -0
  397. package/data/llms/styled/components/inputpassword.md +630 -0
  398. package/data/llms/styled/components/inputtags.md +727 -0
  399. package/data/llms/styled/components/inputtext.md +190 -0
  400. package/data/llms/styled/components/keyfilter.md +289 -0
  401. package/data/llms/styled/components/knob.md +305 -0
  402. package/data/llms/styled/components/label/api.json +237 -0
  403. package/data/llms/styled/components/label.md +224 -0
  404. package/data/llms/styled/components/listbox.md +807 -0
  405. package/data/llms/styled/components/menu.md +1175 -0
  406. package/data/llms/styled/components/message.md +570 -0
  407. package/data/llms/styled/components/metergroup.md +449 -0
  408. package/data/llms/styled/components/navigationmenu.md +926 -0
  409. package/data/llms/styled/components/orderlist.md +519 -0
  410. package/data/llms/styled/components/organizationchart/api.json +1457 -0
  411. package/data/llms/styled/components/organizationchart.md +791 -0
  412. package/data/llms/styled/components/overlaymanager.md +519 -0
  413. package/data/llms/styled/components/paginator.md +506 -0
  414. package/data/llms/styled/components/panel.md +394 -0
  415. package/data/llms/styled/components/picklist.md +1004 -0
  416. package/data/llms/styled/components/popover.md +372 -0
  417. package/data/llms/styled/components/progressbar.md +438 -0
  418. package/data/llms/styled/components/progressspinner.md +128 -0
  419. package/data/llms/styled/components/radiobutton.md +488 -0
  420. package/data/llms/styled/components/rating/api.json +766 -0
  421. package/data/llms/styled/components/rating.md +518 -0
  422. package/data/llms/styled/components/scrollarea.md +627 -0
  423. package/data/llms/styled/components/select.md +2122 -0
  424. package/data/llms/styled/components/sidebar.md +1587 -0
  425. package/data/llms/styled/components/skeleton.md +226 -0
  426. package/data/llms/styled/components/slider.md +453 -0
  427. package/data/llms/styled/components/speeddial.md +723 -0
  428. package/data/llms/styled/components/splitter.md +536 -0
  429. package/data/llms/styled/components/stepper.md +614 -0
  430. package/data/llms/styled/components/tabs.md +543 -0
  431. package/data/llms/styled/components/tag.md +263 -0
  432. package/data/llms/styled/components/terminal.md +543 -0
  433. package/data/llms/styled/components/textarea.md +257 -0
  434. package/data/llms/styled/components/timeline.md +620 -0
  435. package/data/llms/styled/components/toast.md +1013 -0
  436. package/data/llms/styled/components/togglebutton.md +287 -0
  437. package/data/llms/styled/components/togglebuttongroup.md +328 -0
  438. package/data/llms/styled/components/toggleswitch.md +262 -0
  439. package/data/llms/styled/components/toolbar.md +187 -0
  440. package/data/llms/styled/components/tooltip.md +430 -0
  441. package/data/llms/styled/components/tree.md +1386 -0
  442. package/data/llms/styled/components/treetable.md +6842 -0
  443. package/data/llms/styled/guides/ai/llms.md +25 -0
  444. package/data/llms/styled/guides/configuration.md +151 -0
  445. package/data/llms/styled/guides/icons/customicons.md +47 -0
  446. package/data/llms/styled/guides/icons/primeicons.md +112 -0
  447. package/data/llms/styled/guides/installation/astro.md +97 -0
  448. package/data/llms/styled/guides/installation/manual.md +3 -0
  449. package/data/llms/styled/guides/installation/nextjs.md +129 -0
  450. package/data/llms/styled/guides/installation/react-router.md +88 -0
  451. package/data/llms/styled/guides/installation/tanstack.md +92 -0
  452. package/data/llms/styled/guides/installation/vite.md +91 -0
  453. package/data/llms/styled/guides/installation.md +42 -0
  454. package/data/llms/styled/guides/introduction.md +20 -0
  455. package/data/llms/styled/guides/misc/accessibility.md +211 -0
  456. package/data/llms/styled/guides/misc/animations.md +389 -0
  457. package/data/llms/styled/guides/misc/passthrough.md +95 -0
  458. package/data/llms/styled/guides/misc/rtl.md +27 -0
  459. package/data/llms/styled/guides/theming/styled.md +779 -0
  460. package/data/llms/styled/guides/theming/tailwind.md +473 -0
  461. package/data/llms/styled/guides/theming/unstyled.md +115 -0
  462. package/data/llms/styled/resources/introduction.md +15 -0
  463. package/data/llms/tailwind/add-ons/introduction.md +16 -0
  464. package/data/llms/tailwind/components/accordion.md +383 -0
  465. package/data/llms/tailwind/components/autocomplete.md +1346 -0
  466. package/data/llms/tailwind/components/avatar.md +305 -0
  467. package/data/llms/tailwind/components/badge.md +207 -0
  468. package/data/llms/tailwind/components/breadcrumb.md +387 -0
  469. package/data/llms/tailwind/components/button/api.json +246 -0
  470. package/data/llms/tailwind/components/button.md +617 -0
  471. package/data/llms/tailwind/components/buttongroup.md +599 -0
  472. package/data/llms/tailwind/components/card.md +224 -0
  473. package/data/llms/tailwind/components/carousel.md +329 -0
  474. package/data/llms/tailwind/components/checkbox.md +179 -0
  475. package/data/llms/tailwind/components/checkboxgroup.md +279 -0
  476. package/data/llms/tailwind/components/chip.md +304 -0
  477. package/data/llms/tailwind/components/compare.md +295 -0
  478. package/data/llms/tailwind/components/contextmenu.md +415 -0
  479. package/data/llms/tailwind/components/datatable.md +4062 -0
  480. package/data/llms/tailwind/components/dataview.md +864 -0
  481. package/data/llms/tailwind/components/datepicker.md +823 -0
  482. package/data/llms/tailwind/components/dialog.md +1216 -0
  483. package/data/llms/tailwind/components/divider.md +205 -0
  484. package/data/llms/tailwind/components/drawer.md +500 -0
  485. package/data/llms/tailwind/components/fieldset.md +326 -0
  486. package/data/llms/tailwind/components/fluid.md +117 -0
  487. package/data/llms/tailwind/components/iconfield.md +197 -0
  488. package/data/llms/tailwind/components/inplace.md +324 -0
  489. package/data/llms/tailwind/components/inputcolor.md +493 -0
  490. package/data/llms/tailwind/components/inputgroup.md +375 -0
  491. package/data/llms/tailwind/components/inputnumber.md +463 -0
  492. package/data/llms/tailwind/components/inputotp.md +255 -0
  493. package/data/llms/tailwind/components/inputpassword.md +543 -0
  494. package/data/llms/tailwind/components/inputtext.md +141 -0
  495. package/data/llms/tailwind/components/label.md +100 -0
  496. package/data/llms/tailwind/components/listbox.md +886 -0
  497. package/data/llms/tailwind/components/menu.md +1049 -0
  498. package/data/llms/tailwind/components/message.md +575 -0
  499. package/data/llms/tailwind/components/metergroup.md +510 -0
  500. package/data/llms/tailwind/components/navigationmenu.md +528 -0
  501. package/data/llms/tailwind/components/overlaymanager.md +567 -0
  502. package/data/llms/tailwind/components/paginator.md +306 -0
  503. package/data/llms/tailwind/components/panel.md +395 -0
  504. package/data/llms/tailwind/components/popover.md +424 -0
  505. package/data/llms/tailwind/components/progressbar.md +313 -0
  506. package/data/llms/tailwind/components/radiobutton.md +366 -0
  507. package/data/llms/tailwind/components/rating.md +300 -0
  508. package/data/llms/tailwind/components/scrollarea.md +638 -0
  509. package/data/llms/tailwind/components/select.md +1220 -0
  510. package/data/llms/tailwind/components/sidebar.md +1511 -0
  511. package/data/llms/tailwind/components/skeleton.md +236 -0
  512. package/data/llms/tailwind/components/slider.md +291 -0
  513. package/data/llms/tailwind/components/splitter.md +546 -0
  514. package/data/llms/tailwind/components/tabs.md +462 -0
  515. package/data/llms/tailwind/components/tag.md +255 -0
  516. package/data/llms/tailwind/components/textarea.md +170 -0
  517. package/data/llms/tailwind/components/timeline.md +656 -0
  518. package/data/llms/tailwind/components/toast.md +246 -0
  519. package/data/llms/tailwind/components/togglebutton.md +264 -0
  520. package/data/llms/tailwind/components/togglebuttongroup.md +262 -0
  521. package/data/llms/tailwind/components/toggleswitch.md +203 -0
  522. package/data/llms/tailwind/components/toolbar.md +192 -0
  523. package/data/llms/tailwind/components/tooltip.md +449 -0
  524. package/data/llms/tailwind/guides/ai/llms.md +25 -0
  525. package/data/llms/tailwind/guides/icons/customicons.md +47 -0
  526. package/data/llms/tailwind/guides/icons/primeicons.md +112 -0
  527. package/data/llms/tailwind/guides/installation/astro.md +165 -0
  528. package/data/llms/tailwind/guides/installation/manual.md +3 -0
  529. package/data/llms/tailwind/guides/installation/nextjs.md +169 -0
  530. package/data/llms/tailwind/guides/installation/react-router.md +157 -0
  531. package/data/llms/tailwind/guides/installation/tanstack.md +161 -0
  532. package/data/llms/tailwind/guides/installation/vite.md +160 -0
  533. package/data/llms/tailwind/guides/installation.md +42 -0
  534. package/data/llms/tailwind/guides/introduction.md +20 -0
  535. package/data/llms/tailwind/guides/misc/accessibility.md +205 -0
  536. package/data/llms/tailwind/guides/misc/passthrough.md +95 -0
  537. package/data/llms/tailwind/guides/misc/rtl.md +27 -0
  538. package/data/llms/tailwind/guides/theming/guide.md +179 -0
  539. package/data/llms/tailwind/guides/theming.md +191 -0
  540. package/data/llms/tailwind/llms.md +25 -0
  541. package/data/llms/tailwind/resources/introduction.md +15 -0
  542. package/data/manifest.json +12409 -0
  543. package/data/mcp-data.json +14481 -0
  544. package/dist/index.d.ts +9 -0
  545. package/dist/index.js +2 -0
  546. package/package.json +61 -0
@@ -0,0 +1,336 @@
1
+ [
2
+ {
3
+ "name": "useTabs",
4
+ "source": "apps/showcase/assets/apidoc/usetabs.json",
5
+ "data": {
6
+ "description": "The useTabs manages the state and functionality of a tabs component.",
7
+ "interfaces": {
8
+ "UseTabsChangeEvent": {
9
+ "description": "Event fired when the tabs's checked state changes.",
10
+ "relatedProp": "",
11
+ "props": [
12
+ {
13
+ "name": "value",
14
+ "type": "string | number",
15
+ "default": "",
16
+ "description": "The value of the tabs."
17
+ }
18
+ ],
19
+ "methods": []
20
+ },
21
+ "UseTabsProps": {
22
+ "description": "Defines valid properties in useTabs.",
23
+ "relatedProp": "",
24
+ "props": [
25
+ {
26
+ "name": "value",
27
+ "type": "string | number",
28
+ "default": "undefined",
29
+ "description": "Value of the active tab. Use for controlled mode."
30
+ },
31
+ {
32
+ "name": "defaultValue",
33
+ "type": "string | number",
34
+ "default": "undefined",
35
+ "description": "Default value of the active tab. Use for uncontrolled mode."
36
+ },
37
+ {
38
+ "name": "selectOnFocus",
39
+ "type": "boolean",
40
+ "default": "false",
41
+ "description": "When enabled, the focused tab is activated."
42
+ },
43
+ {
44
+ "name": "scrollStrategy",
45
+ "type": "false | \"center\" | \"nearest\" | ((content: HTMLElement, tab: HTMLElement) => void)",
46
+ "default": "'nearest'",
47
+ "description": "Defines how the active tab is scrolled into view when it changes.\n- `'nearest'` : scrolls only if the tab is clipped or too close to an edge, with padding.\n- `'center'` : always centers the active tab in the viewport.\n- `false` : disables auto-scrolling.\n- `function` : a custom scroll function receiving the content element and active tab element."
48
+ },
49
+ {
50
+ "name": "tabIndex",
51
+ "type": "number",
52
+ "default": "0",
53
+ "description": "The tabIndex of the active tab."
54
+ },
55
+ {
56
+ "name": "onValueChange",
57
+ "type": "(event: UseTabsChangeEvent) => void",
58
+ "default": "",
59
+ "description": "Callback fired when the tabs's value changes."
60
+ }
61
+ ],
62
+ "methods": []
63
+ },
64
+ "UseTabsState": {
65
+ "description": "Defines valid state in useTabs.",
66
+ "relatedProp": "",
67
+ "props": [
68
+ {
69
+ "name": "activeTab",
70
+ "type": "string | number",
71
+ "default": "",
72
+ "description": "Value of the active tab or an array of values in multiple mode."
73
+ },
74
+ {
75
+ "name": "canScrollPrev",
76
+ "type": "boolean",
77
+ "default": "",
78
+ "description": "Whether the previous scroll button should be enabled."
79
+ },
80
+ {
81
+ "name": "canScrollNext",
82
+ "type": "boolean",
83
+ "default": "",
84
+ "description": "Whether the next scroll button should be enabled."
85
+ }
86
+ ],
87
+ "methods": []
88
+ },
89
+ "UseTabsTabProps": {
90
+ "description": "Props returned by getTabProps for a tab element.",
91
+ "relatedProp": "",
92
+ "props": [
93
+ {
94
+ "name": "role",
95
+ "type": "\"tab\"",
96
+ "default": "",
97
+ "description": "The role of the tab element."
98
+ },
99
+ {
100
+ "name": "tabIndex",
101
+ "type": "number",
102
+ "default": "",
103
+ "description": "The tabIndex of the tab element."
104
+ },
105
+ {
106
+ "name": "ref",
107
+ "type": "RefObject<HTMLButtonElement>",
108
+ "default": "",
109
+ "description": "Ref for the active tab element."
110
+ },
111
+ {
112
+ "name": "disabled",
113
+ "type": "boolean",
114
+ "default": "",
115
+ "description": "Whether the tab is disabled."
116
+ },
117
+ {
118
+ "name": "aria-selected",
119
+ "type": "boolean",
120
+ "default": "",
121
+ "description": "Whether the tab is selected."
122
+ },
123
+ {
124
+ "name": "aria-disabled",
125
+ "type": "boolean",
126
+ "default": "",
127
+ "description": "Whether the tab is disabled (aria)."
128
+ },
129
+ {
130
+ "name": "aria-controls",
131
+ "type": "string",
132
+ "default": "",
133
+ "description": "The id of the tabpanel controlled by this tab."
134
+ },
135
+ {
136
+ "name": "data-active",
137
+ "type": "\"\"",
138
+ "default": "",
139
+ "description": "Present when the tab is active."
140
+ },
141
+ {
142
+ "name": "data-disabled",
143
+ "type": "\"\"",
144
+ "default": "",
145
+ "description": "Present when the tab is disabled."
146
+ },
147
+ {
148
+ "name": "data-can-scroll-prev",
149
+ "type": "\"\"",
150
+ "default": "",
151
+ "description": "Present when the tab list can scroll to the previous page."
152
+ },
153
+ {
154
+ "name": "data-can-scroll-next",
155
+ "type": "\"\"",
156
+ "default": "",
157
+ "description": "Present when the tab list can scroll to the next page."
158
+ },
159
+ {
160
+ "name": "onClick",
161
+ "type": "(event: MouseEvent<HTMLButtonElement>) => void",
162
+ "default": "",
163
+ "description": "Click event handler for the tab."
164
+ },
165
+ {
166
+ "name": "onFocus",
167
+ "type": "(event: FocusEvent<HTMLButtonElement>) => void",
168
+ "default": "",
169
+ "description": "Focus event handler for the tab."
170
+ },
171
+ {
172
+ "name": "onKeyDown",
173
+ "type": "(event: KeyboardEvent<HTMLButtonElement>) => void",
174
+ "default": "",
175
+ "description": "Keyboard event handler for the tab."
176
+ }
177
+ ],
178
+ "methods": []
179
+ },
180
+ "UseTabsIndicatorProps": {
181
+ "description": "Props returned by getIndicatorProps for the active tab indicator element.",
182
+ "relatedProp": "",
183
+ "props": [
184
+ {
185
+ "name": "ref",
186
+ "type": "RefObject<HTMLSpanElement>",
187
+ "default": "",
188
+ "description": "Ref for the active bar element."
189
+ },
190
+ {
191
+ "name": "style",
192
+ "type": "CSSProperties",
193
+ "default": "",
194
+ "description": "CSS custom properties for positioning the indicator."
195
+ }
196
+ ],
197
+ "methods": []
198
+ },
199
+ "UseTabsExposes": {
200
+ "description": "Defines the methods and properties exposed by useTabs.",
201
+ "relatedProp": "",
202
+ "props": [
203
+ {
204
+ "name": "updateValue",
205
+ "type": "(value: string | number) => void",
206
+ "default": "",
207
+ "description": "The method to update the value of the active tab."
208
+ },
209
+ {
210
+ "name": "isItemActive",
211
+ "type": "(key: string | number) => boolean",
212
+ "default": "",
213
+ "description": "The method to check if the tab is active."
214
+ },
215
+ {
216
+ "name": "focusTab",
217
+ "type": "(tabElement: HTMLElement, direction: \"next\" | \"previous\" | \"first\" | \"last\") => void",
218
+ "default": "",
219
+ "description": "Moves focus to a tab in the given direction."
220
+ },
221
+ {
222
+ "name": "onTabKeyDown",
223
+ "type": "(event: KeyboardEvent<HTMLButtonElement>, value: string | number) => void",
224
+ "default": "",
225
+ "description": "Keyboard event handler for tabs."
226
+ },
227
+ {
228
+ "name": "onTabClick",
229
+ "type": "(event: MouseEvent<HTMLButtonElement>, value: string | number) => void",
230
+ "default": "",
231
+ "description": "Click event handler for tabs."
232
+ },
233
+ {
234
+ "name": "onTabFocus",
235
+ "type": "(event: FocusEvent<HTMLButtonElement>, value: string | number) => void",
236
+ "default": "",
237
+ "description": "Focus event handler for tabs."
238
+ },
239
+ {
240
+ "name": "scrollPrev",
241
+ "type": "() => void",
242
+ "default": "",
243
+ "description": "Scrolls the tab list to the previous page."
244
+ },
245
+ {
246
+ "name": "scrollNext",
247
+ "type": "() => void",
248
+ "default": "",
249
+ "description": "Scrolls the tab list to the next page."
250
+ },
251
+ {
252
+ "name": "updateScrollState",
253
+ "type": "() => void",
254
+ "default": "",
255
+ "description": "Updates the scroll button visibility state."
256
+ },
257
+ {
258
+ "name": "onContentScroll",
259
+ "type": "() => void",
260
+ "default": "",
261
+ "description": "Scroll event handler for the content container."
262
+ },
263
+ {
264
+ "name": "contentRef",
265
+ "type": "RefObject<HTMLDivElement>",
266
+ "default": "",
267
+ "description": "Ref for the scroll content container."
268
+ },
269
+ {
270
+ "name": "prevButtonRef",
271
+ "type": "RefObject<HTMLButtonElement>",
272
+ "default": "",
273
+ "description": "Ref for the previous scroll button."
274
+ },
275
+ {
276
+ "name": "nextButtonRef",
277
+ "type": "RefObject<HTMLButtonElement>",
278
+ "default": "",
279
+ "description": "Ref for the next scroll button."
280
+ },
281
+ {
282
+ "name": "activeBarRef",
283
+ "type": "RefObject<HTMLElement>",
284
+ "default": "",
285
+ "description": "Ref for the active bar element."
286
+ },
287
+ {
288
+ "name": "activeTabRef",
289
+ "type": "RefObject<HTMLElement>",
290
+ "default": "",
291
+ "description": "Ref for the active tab element."
292
+ },
293
+ {
294
+ "name": "updateActiveBar",
295
+ "type": "() => void",
296
+ "default": "",
297
+ "description": "Updates the active bar position and size based on the active tab."
298
+ },
299
+ {
300
+ "name": "scrollStateAttrs",
301
+ "type": "Record<string, \"\">",
302
+ "default": "",
303
+ "description": "Pre-built data attributes reflecting scroll state (data-can-scroll-prev, data-can-scroll-next)."
304
+ },
305
+ {
306
+ "name": "contentProps",
307
+ "type": "{ onScroll: () => void; data-can-scroll-prev?: \"\"; data-can-scroll-next?: \"\" }",
308
+ "default": "",
309
+ "description": "Pre-built props for the scroll content container, includes onScroll handler and scroll state attributes."
310
+ },
311
+ {
312
+ "name": "getTabProps",
313
+ "type": "(value: string | number, disabled?: boolean) => UseTabsTabProps",
314
+ "default": "",
315
+ "description": "Returns accessibility and interaction props for a tab element."
316
+ },
317
+ {
318
+ "name": "getIndicatorProps",
319
+ "type": "() => UseTabsIndicatorProps",
320
+ "default": "",
321
+ "description": "Returns props for the active tab indicator element."
322
+ }
323
+ ],
324
+ "methods": []
325
+ }
326
+ },
327
+ "types": {
328
+ "UseTabsInstance": {
329
+ "description": "Instance of useTabs headless.",
330
+ "values": "HeadlessInstance<UseTabsProps, UseTabsState, UseTabsExposes>"
331
+ }
332
+ },
333
+ "variables": {}
334
+ }
335
+ }
336
+ ]
@@ -0,0 +1,158 @@
1
+ # useTabs
2
+
3
+ Hook that manages tab selection state, keyboard navigation, and scrollable overflow.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { useTabs } from '@primereact/headless/tabs';
8
+
9
+ export default function BasicDemo() {
10
+ const { getTabProps, getIndicatorProps, isItemActive } = useTabs({ defaultValue: 'tab1' });
11
+
12
+ return (
13
+ <div>
14
+ <div className="relative flex border-b border-surface-200 dark:border-surface-700">
15
+ {items.map((item) => {
16
+ const active = isItemActive(item.value);
17
+
18
+ return (
19
+ <button
20
+ key={item.value}
21
+ {...getTabProps(item.value)}
22
+ className={`px-4 py-3 text-sm font-semibold cursor-pointer transition-colors select-none focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-primary ${active ? 'text-primary' : 'text-surface-500 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-200'}`}
23
+ >
24
+ {item.title}
25
+ </button>
26
+ );
27
+ })}
28
+ <span
29
+ {...getIndicatorProps()}
30
+ className="absolute block -bottom-px left-[var(--px-active-bar-left)] h-0.5 w-[var(--px-active-bar-width)] bg-primary transition-all duration-200 ease-out"
31
+ />
32
+ </div>
33
+ <div className="p-4 text-surface-700 dark:text-surface-200">
34
+ {items.map((item) => {
35
+ const active = isItemActive(item.value);
36
+
37
+ return (
38
+ <div key={item.value} role="tabpanel" style={{ display: active ? 'block' : 'none' }}>
39
+ <h2 className="text-lg font-bold">{item.title}</h2>
40
+ <p className="mt-1 text-surface-500 dark:text-surface-400">{item.content}</p>
41
+ </div>
42
+ );
43
+ })}
44
+ </div>
45
+ </div>
46
+ );
47
+ }
48
+
49
+ const items = [
50
+ { value: 'tab1', title: 'Account Info', content: 'Update your personal information such as name, email address, and profile picture.' },
51
+ { value: 'tab2', title: 'Payment', content: 'Manage your subscription plan, view invoices, and update your payment method.' },
52
+ { value: 'tab3', title: 'Preferences', content: 'Customize how the application looks and behaves to match your personal preferences.' }
53
+ ];
54
+ ```
55
+
56
+ ## Usage
57
+
58
+ ```tsx
59
+ import { useTabs } from '@primereact/headless/tabs';
60
+ ```
61
+
62
+ ```tsx
63
+ const { getTabProps, getIndicatorProps, isItemActive, state, contentRef, contentProps } = useTabs({ defaultValue: 'tab1' });
64
+
65
+ <div role="tablist" ref={contentRef} {...contentProps}>
66
+ <button {...getTabProps('tab1')}>Tab 1</button>
67
+ <button {...getTabProps('tab2')}>Tab 2</button>
68
+ <button {...getTabProps('tab3', true)}>Tab 3 (disabled)</button>
69
+ <span {...getIndicatorProps()} />
70
+ </div>;
71
+ ```
72
+
73
+ `useTabs` manages active tab state, keyboard focus cycling, scroll navigation, and active indicator positioning, see [Primitive](/docs/primitive/components/tabs) for a component-based API.
74
+
75
+ ## Features
76
+
77
+ - **Per-tab prop getter**, `getTabProps(value, disabled?)` returns ARIA roles, keyboard handlers, and focus bookkeeping for any tab you render
78
+ - **Animated active indicator**, `getIndicatorProps()` wires a ref and CSS variables that track the active tab's size and position
79
+ - **Scrollable tab lists**, `scrollPrev`/`scrollNext` plus `canScrollPrev`/`canScrollNext` flags power overflow buttons with zero measurement code
80
+ - **Configurable scroll strategy**, pick `'nearest'`, `'center'`, disable, or plug in a custom function to scroll the active tab into view
81
+ - **Controlled or uncontrolled**, manage the active value externally or let the hook track it internally
82
+ - **Imperative selection**, `updateValue()` changes tabs programmatically and `isItemActive()` queries the current selection
83
+
84
+ ## Working with callbacks
85
+
86
+ ### Controlled active tab
87
+
88
+ Drive the active tab from parent state by pairing `value` with `onValueChange`.
89
+
90
+ ```tsx
91
+ const [activeTab, setActiveTab] = React.useState('tab1');
92
+
93
+ const tabs = useTabs({
94
+ value: activeTab,
95
+ onValueChange: (e) => setActiveTab(e.value)
96
+ });
97
+ ```
98
+
99
+ ### Activate on focus
100
+
101
+ Set `selectOnFocus` so arrow-key navigation activates tabs instantly rather than waiting for Enter or Space, the pattern used by automatic tablists.
102
+
103
+ ```tsx
104
+ const tabs = useTabs({ defaultValue: 'tab1', selectOnFocus: true });
105
+ ```
106
+
107
+ ### Scrollable overflow with prev/next buttons
108
+
109
+ Wire `contentRef`, `prevButtonRef`, and `nextButtonRef` into your layout, then use the scroll helpers to drive visibility and clicks.
110
+
111
+ ```tsx
112
+ const tabs = useTabs({ defaultValue: '0' });
113
+ ```
114
+
115
+ ### Animated active indicator
116
+
117
+ Spread `getIndicatorProps()` on a bar element, the hook sets a ref plus CSS custom properties so you can animate position and size entirely in CSS.
118
+
119
+ | Variable | Description |
120
+ | --------------------- | ------------------------------------- |
121
+ | `--active-bar-width` | Width of the active tab element |
122
+ | `--active-bar-height` | Height of the active tab element |
123
+ | `--active-bar-left` | Left offset of the active tab element |
124
+ | `--active-bar-top` | Top offset of the active tab element |
125
+
126
+ ```tsx
127
+ <span
128
+ {...getIndicatorProps()}
129
+ style={{
130
+ width: 'var(--px-active-bar-width)',
131
+ left: 'var(--px-active-bar-left)',
132
+ transition: 'all 200ms ease'
133
+ }}
134
+ />
135
+ ```
136
+
137
+ ## Styling with data attributes
138
+
139
+ The `scrollStateAttrs` bundle spreads `data-can-scroll-prev` and `data-can-scroll-next` onto any element so scroll button visibility can be controlled in CSS.
140
+
141
+ ```css
142
+ [data-can-scroll-prev] .scroll-prev {
143
+ display: flex;
144
+ }
145
+ [data-can-scroll-next] .scroll-next {
146
+ display: flex;
147
+ }
148
+ ```
149
+
150
+ ## API
151
+
152
+ ### useTabs
153
+
154
+ <DocTable name="useTabs" category="api" />
155
+
156
+ ## Accessibility
157
+
158
+ Arrow keys move between tabs, Home/End jump to first/last, and Enter activates the focused tab. See [Primitive](/docs/primitive/components/tabs#accessibility) for full WAI-ARIA compliance details.
@@ -0,0 +1,62 @@
1
+ [
2
+ {
3
+ "name": "useTag",
4
+ "source": "apps/showcase/assets/apidoc/usetag.json",
5
+ "data": {
6
+ "description": "The useTag manages the state and functionality of a tag component.",
7
+ "interfaces": {
8
+ "UseTagProps": {
9
+ "description": "Defines valid properties in useTag.",
10
+ "relatedProp": "",
11
+ "props": [],
12
+ "methods": []
13
+ },
14
+ "UseTagState": {
15
+ "description": "Defines valid state in useTag.",
16
+ "relatedProp": "",
17
+ "props": [],
18
+ "methods": []
19
+ },
20
+ "UseTagRootProps": {
21
+ "description": "Data attribute props for the Tag root element.",
22
+ "relatedProp": "",
23
+ "props": [
24
+ {
25
+ "name": "data-scope",
26
+ "type": "string",
27
+ "default": "",
28
+ "description": "Component scope identifier."
29
+ },
30
+ {
31
+ "name": "data-part",
32
+ "type": "string",
33
+ "default": "",
34
+ "description": "Component part identifier."
35
+ }
36
+ ],
37
+ "methods": []
38
+ },
39
+ "UseTagExposes": {
40
+ "description": "Defines the methods and properties exposed by useTag.",
41
+ "relatedProp": "",
42
+ "props": [
43
+ {
44
+ "name": "rootProps",
45
+ "type": "UseTagRootProps",
46
+ "default": "",
47
+ "description": "Pre-built data attribute props for the root element."
48
+ }
49
+ ],
50
+ "methods": []
51
+ }
52
+ },
53
+ "types": {
54
+ "UseTagInstance": {
55
+ "description": "Instance of useTag headless.",
56
+ "values": "HeadlessInstance<UseTagProps, UseTagState, UseTagExposes>"
57
+ }
58
+ },
59
+ "variables": {}
60
+ }
61
+ }
62
+ ]
@@ -0,0 +1,121 @@
1
+ # useTag
2
+
3
+ Hook that provides data attributes for building custom categorization labels.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { Check } from '@primeicons/react/check';
8
+ import { ExclamationTriangle } from '@primeicons/react/exclamation-triangle';
9
+ import { InfoCircle } from '@primeicons/react/info-circle';
10
+ import { useTag } from '@primereact/headless/tag';
11
+
12
+ const tags = [
13
+ { label: 'Active', icon: Check, bg: 'bg-green-100 text-green-700' },
14
+ { label: 'Info', icon: InfoCircle, bg: 'bg-blue-100 text-blue-700' },
15
+ { label: 'Warning', icon: ExclamationTriangle, bg: 'bg-amber-100 text-amber-700' }
16
+ ];
17
+
18
+ export default function BasicDemo() {
19
+ return (
20
+ <div className="flex items-center justify-center flex-wrap gap-2">
21
+ {tags.map((tag) => {
22
+ const { rootProps } = useTag();
23
+ const Icon = tag.icon;
24
+
25
+ return (
26
+ <span
27
+ key={tag.label}
28
+ {...rootProps}
29
+ className={`inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-semibold ${tag.bg}`}
30
+ >
31
+ <Icon className="w-3 h-3" />
32
+ {tag.label}
33
+ </span>
34
+ );
35
+ })}
36
+ </div>
37
+ );
38
+ }
39
+ ```
40
+
41
+ ## Usage
42
+
43
+ ```tsx
44
+ import { useTag } from '@primereact/headless/tag';
45
+ ```
46
+
47
+ ```tsx
48
+ const { rootProps } = useTag();
49
+
50
+ return <span {...rootProps} className="tag"></span>;
51
+ ```
52
+
53
+ `useTag` returns spread-ready `rootProps` with scoped data attributes, color, shape, icons, and interactivity are handled with your own markup and CSS. See [Primitive](/docs/primitive/components/tag) for a component-based API.
54
+
55
+ ## Features
56
+
57
+ - **Spread-ready root props**, a single object you can drop onto any element
58
+ - **Zero-state**, no internal state or effects, suitable for purely visual labels
59
+ - **Styling hooks**, `data-scope="tag"` and `data-part="root"` selectors for targeted styling
60
+ - **Markup-agnostic**, render as a `span`, `a`, `button`, or any component that forwards standard props
61
+
62
+ ## Working with callbacks
63
+
64
+ ### Compose with icons
65
+
66
+ Place icon components alongside the label inside the tag element.
67
+
68
+ ```tsx
69
+ const { rootProps } = useTag();
70
+
71
+ <span {...rootProps} className="tag">
72
+ <CheckIcon />
73
+ Active
74
+ </span>;
75
+ ```
76
+
77
+ ### Pill shape
78
+
79
+ Apply border-radius via inline styles or classes to create pill-shaped tags.
80
+
81
+ ```tsx
82
+ <span {...rootProps} style={{ borderRadius: '9999px' }}>
83
+ Pill
84
+ </span>
85
+ ```
86
+
87
+ ### Interactive tags
88
+
89
+ Render the tag as a `<button>` when it should be clickable, `rootProps` spreads onto any valid element.
90
+
91
+ ```tsx
92
+ <button {...rootProps} onClick={handleClick}>
93
+ Clickable
94
+ </button>
95
+ ```
96
+
97
+ ## Styling with data attributes
98
+
99
+ The root prop object includes `data-scope="tag"` and `data-part="root"` for targeted styling.
100
+
101
+ ```css
102
+ [data-scope='tag'][data-part='root'] {
103
+ display: inline-flex;
104
+ align-items: center;
105
+ gap: 0.25rem;
106
+ padding: 0.25rem 0.75rem;
107
+ font-size: 0.75rem;
108
+ font-weight: 600;
109
+ border-radius: 0.375rem;
110
+ }
111
+ ```
112
+
113
+ ## API
114
+
115
+ ### useTag
116
+
117
+ <DocTable name="useTag" category="api" />
118
+
119
+ ## Accessibility
120
+
121
+ Static label, Tab skips it unless a close button is present, which activates on Enter or Space. See [Primitive](/docs/primitive/components/tag#accessibility) for full WAI-ARIA compliance details.