@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,177 @@
1
+ # useTreeTable
2
+
3
+ Hierarchical data table built on useDataTable with treeMode enabled, sort, filter, paginate, select, expand, and edit tree-shaped data.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { NodeService, type TreeTableNode } from '@/shared/services/node.service';
8
+ import { useDataTable, useDataTableRow } from '@primereact/headless/datatable';
9
+ import type { UseDataTableExpansionEvent } from '@primereact/types/headless/datatable';
10
+ import * as React from 'react';
11
+
12
+ interface RowProps {
13
+ item: Record<string, unknown>;
14
+ index: number;
15
+ context: ReturnType<typeof useDataTable>;
16
+ }
17
+
18
+ function Row({ item, index, context }: RowProps) {
19
+ const { rowProps } = useDataTableRow({ item, index, context });
20
+ const treeLevel = (item._treeLevel as number | undefined) ?? 0;
21
+ const hasChildren = (item._treeHasChildren as boolean | undefined) ?? false;
22
+ const rowKey = String(item.key);
23
+ const isExpanded = context.expansion.isExpanded(rowKey);
24
+
25
+ const toggle = (e: React.MouseEvent) => {
26
+ if (hasChildren) context.expansion.toggleExpansion(e, rowKey);
27
+ };
28
+
29
+ return (
30
+ <tr {...rowProps} style={{ borderBottom: '1px solid var(--p-content-border-color)' }}>
31
+ <td style={{ padding: '0.5rem 0.75rem', paddingInlineStart: `calc(0.75rem + ${treeLevel}rem)` }}>
32
+ {hasChildren ? (
33
+ <button onClick={toggle} aria-label={isExpanded ? 'Collapse' : 'Expand'} style={{ marginRight: 8, cursor: 'pointer' }}>
34
+ {isExpanded ? '▼' : '▶'}
35
+ </button>
36
+ ) : (
37
+ <span style={{ display: 'inline-block', width: '1.5rem' }} />
38
+ )}
39
+ {String(item.name)}
40
+ </td>
41
+ <td style={{ padding: '0.5rem 0.75rem' }}>{String(item.size)}</td>
42
+ <td style={{ padding: '0.5rem 0.75rem' }}>{String(item.type)}</td>
43
+ </tr>
44
+ );
45
+ }
46
+
47
+ export default function BasicDemo() {
48
+ const [nodes, setNodes] = React.useState<TreeTableNode[]>([]);
49
+ const [expandedKeys, setExpandedKeys] = React.useState<Record<string, boolean>>({ '0': true });
50
+
51
+ React.useEffect(() => {
52
+ setNodes(NodeService.getTreeTableNodesData().slice(0, 5));
53
+ }, []);
54
+
55
+ const tree = useDataTable({
56
+ data: nodes as unknown as Record<string, unknown>[],
57
+ dataKey: 'key',
58
+ treeMode: true,
59
+ expandedKeys,
60
+ onExpandedChange: (e: UseDataTableExpansionEvent) => setExpandedKeys(e.value)
61
+ });
62
+ const rows = tree.state.processedData ?? [];
63
+ const headStyle: React.CSSProperties = {
64
+ padding: '0.5rem 0.75rem',
65
+ textAlign: 'left',
66
+ fontWeight: 600,
67
+ borderBottom: '1px solid var(--p-content-border-color)'
68
+ };
69
+
70
+ return (
71
+ <div {...tree.rootProps} style={{ width: '100%' }}>
72
+ <div {...tree.tableContainerProps}>
73
+ <table {...tree.tableProps} style={{ width: '100%', borderCollapse: 'collapse' }}>
74
+ <thead>
75
+ <tr>
76
+ <th style={headStyle}>Name</th>
77
+ <th style={headStyle}>Size</th>
78
+ <th style={headStyle}>Type</th>
79
+ </tr>
80
+ </thead>
81
+ <tbody>
82
+ {rows.map((item, index) => (
83
+ <Row key={tree.getRowKey(item, index)} item={item} index={index} context={tree} />
84
+ ))}
85
+ </tbody>
86
+ </table>
87
+ </div>
88
+ </div>
89
+ );
90
+ }
91
+ ```
92
+
93
+ ## Usage
94
+
95
+ TreeTable is not a separate hook, it is `useDataTable` with `treeMode: true`. The hook flattens the visible part of the tree (respecting `expandedKeys`), so every other feature (sort, filter, pagination, selection, editing, reorder, export) works the same way as on flat data.
96
+
97
+ ```tsx
98
+ import { useDataTable } from '@primereact/headless/datatable';
99
+ ```
100
+
101
+ ```tsx
102
+ const tree = useDataTable({
103
+ data: nodes,
104
+ dataKey: 'key',
105
+ treeMode: true,
106
+ expandedKeys,
107
+ onExpandedChange: (e) => setExpandedKeys(e.value)
108
+ });
109
+ ```
110
+
111
+ Nodes are objects of the shape `{ key, data, children? }`. Flat rows produced by the hook are stamped with helpers used by the renderer:
112
+
113
+ | Field | Type | Meaning |
114
+ | ------------------ | --------- | --------------------------------------------------------------------- |
115
+ | `_treeLevel` | `number` | Zero-based depth in the tree (used for indentation and `aria-level`). |
116
+ | `_treeHasChildren` | `boolean` | Whether the row has children (drives the expander vs. spacer). |
117
+ | `_treePosInSet` | `number` | One-based position among siblings (`aria-posinset`). |
118
+ | `_treeSetSize` | `number` | Total siblings at this depth (`aria-setsize`). |
119
+
120
+ ## Features
121
+
122
+ All [useDataTable](/docs/headless/components/datatable) features work the same way; the table role becomes `treegrid` and rows pick up tree-aware ARIA attributes. A few things behave differently in tree mode:
123
+
124
+ - **Filter**, column filters and the global filter keep ancestor nodes when any descendant matches, so the result stays connected to its roots
125
+ - **Selection**, checkbox selection cascades to descendants; partially-selected parents are reported through `selection.isPartiallySelected(key)`
126
+ - **Pagination**, the paginator slices root-level nodes only; expanded children stay inside the same page
127
+
128
+ ## Working with callbacks
129
+
130
+ ### Controlled expansion
131
+
132
+ ```tsx
133
+ const [expandedKeys, setExpandedKeys] = React.useState<Record<string, boolean>>({ '0': true });
134
+
135
+ const tree = useDataTable({
136
+ data: nodes,
137
+ dataKey: 'key',
138
+ treeMode: true,
139
+ expandedKeys,
140
+ onExpandedChange: (e) => setExpandedKeys(e.value)
141
+ });
142
+ ```
143
+
144
+ ### Filter + sort + pagination
145
+
146
+ Pass the same `filters` / `sortField` / `paginator` props as on a flat DataTable; the hook re-runs them against the tree.
147
+
148
+ ```tsx
149
+ const tree = useDataTable({
150
+ data: nodes,
151
+ treeMode: true,
152
+ paginator: true,
153
+ rows: 10,
154
+ filters,
155
+ onFilter: (e) => setFilters(e.filters),
156
+ sortField,
157
+ sortOrder,
158
+ onSortChange: (e) => {
159
+ setSortField(e.field);
160
+ setSortOrder(e.order);
161
+ }
162
+ });
163
+ ```
164
+
165
+ ## API
166
+
167
+ ### useDataTable
168
+
169
+ <DocTable name="useDataTable" category="api" />
170
+
171
+ ### useDataTableRow
172
+
173
+ <DocTable name="useDataTableRow" category="api" />
174
+
175
+ ## Accessibility
176
+
177
+ `role="treegrid"` is applied to the table; rows expose `aria-level`, `aria-expanded`, `aria-posinset`, `aria-setsize`. Expander buttons emit `aria-expanded` and a descriptive `aria-label`. See [Primitive](/docs/primitive/components/treetable#accessibility) for full WAI-ARIA compliance details.
@@ -0,0 +1,25 @@
1
+ # LLMs.txt
2
+
3
+ LLMs.txt is a file that contains the LLMs for the PrimeReact documentation.
4
+
5
+ ## /llms.txt
6
+
7
+ The [llms.txt](https://llmstxt.org/) file is an industry standard that helps AI models better understand and navigate the PrimeReact documentation. It lists key pages in a structured format, making it easier for LLMs to retrieve relevant information.
8
+
9
+ <Button as="a" href="/llms.txt" target="_blank">Open llms.txt</Button>
10
+
11
+ &nbsp;
12
+
13
+ ## /llms-full.txt
14
+
15
+ The `llms-full.txt` file is a complete list of all the pages in the PrimeReact documentation. It is used to help AI models understand the entire documentation set.
16
+
17
+ <Button as="a" href="/llms-full.txt" target="_blank">Open llms-full.txt</Button>
18
+
19
+ &nbsp;
20
+
21
+ ## .md extension
22
+
23
+ Add a `.md` to a page’s URL to display a Markdown version of that page.
24
+
25
+ <Button as="a" href="/docs/overview/llms.md" target="_blank">Open /docs/overview/llms.md</Button>
@@ -0,0 +1,126 @@
1
+ # Installation
2
+
3
+ Install PrimeReact's headless hooks and build fully custom components in your React project.
4
+
5
+ <DocMessage>
6
+ Start from our <a href="https://github.com/primefaces/primereact-examples/tree/main/nextjs-headless-quickstart" target="_blank" rel="noopener noreferrer">Next.js template</a>, pre-configured with PrimeReact.
7
+ </DocMessage>
8
+
9
+ Headless hooks give you the behavior — state, keyboard navigation, focus and accessibility — while you own the markup and styles. They work in any React setup; the steps below show a Next.js example you can adapt to your own framework.
10
+
11
+ <DocStepper>
12
+ <DocStep>
13
+
14
+ ### Install Packages
15
+
16
+ Install the headless package using your favorite package manager:
17
+
18
+ ```bash
19
+ npm install @primereact/headless@11.0.0-rc.2
20
+ ```
21
+
22
+ </DocStep>
23
+ <DocStep>
24
+
25
+ ### PrimeReactProvider
26
+
27
+ Wrap your app with `PrimeReactProvider` so the hooks' shared context is available everywhere. No theme or preset is needed — you style everything yourself:
28
+
29
+ ```tsx showLineNumbers title="components/prime-provider.tsx"
30
+ 'use client';
31
+ import { PrimeReactProvider } from '@primereact/core';
32
+
33
+ export function PrimeProvider({ children }: { children: React.ReactNode }) {
34
+ return <PrimeReactProvider>{children}</PrimeReactProvider>;
35
+ }
36
+ ```
37
+
38
+ Then wrap your app with it in `app/layout.tsx`:
39
+
40
+ ```tsx showLineNumbers title="app/layout.tsx" {1,6}
41
+ import { PrimeProvider } from '@/components/prime-provider';
42
+
43
+ export default function RootLayout({ children }: { children: React.ReactNode }) {
44
+ return (
45
+ <html lang="en">
46
+ <body>
47
+ <PrimeProvider>{children}</PrimeProvider>
48
+ </body>
49
+ </html>
50
+ );
51
+ }
52
+ ```
53
+
54
+ </DocStep>
55
+ <DocStep>
56
+
57
+ ### Add a `cn` Helper (optional)
58
+
59
+ If you style with Tailwind, a `cn` helper makes merging class names easier. Install `tailwind-merge` and create `lib/utils.ts`:
60
+
61
+ ```bash
62
+ npm install tailwind-merge
63
+ ```
64
+
65
+ ```ts showLineNumbers title="lib/utils.ts"
66
+ import { cn as _cn } from '@primeuix/utils';
67
+ import { twMerge } from 'tailwind-merge';
68
+
69
+ export function cn(...inputs: unknown[]) {
70
+ return twMerge(_cn(...inputs));
71
+ }
72
+ ```
73
+
74
+ </DocStep>
75
+ <DocStep>
76
+
77
+ ### Verify
78
+
79
+ Build a component with a hook and style it yourself — the hook wires up state, keyboard, focus and accessibility:
80
+
81
+ ```tsx
82
+ 'use client';
83
+ import { useButton } from '@primereact/headless/button';
84
+ import { cn } from '@primeuix/utils';
85
+
86
+ export default function VerifyDemo() {
87
+ const { rootProps } = useButton();
88
+
89
+ return (
90
+ <div className="flex justify-center">
91
+ <button
92
+ {...rootProps}
93
+ className={cn(
94
+ 'inline-flex items-center justify-center rounded-md bg-neutral-900 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-neutral-800'
95
+ )}
96
+ >
97
+ Verify
98
+ </button>
99
+ </div>
100
+ );
101
+ }
102
+ ```
103
+
104
+ ```tsx showLineNumbers {2,6}
105
+ 'use client';
106
+ import { useButton } from '@primereact/headless/button';
107
+ import { cn } from '@/lib/utils';
108
+
109
+ export default function VerifyInstallation() {
110
+ const { rootProps } = useButton();
111
+
112
+ return (
113
+ <button {...rootProps} className={cn('inline-flex items-center justify-center rounded-md bg-neutral-900 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-neutral-800')}>
114
+ Verify
115
+ </button>
116
+ );
117
+ }
118
+ ```
119
+
120
+ </DocStep>
121
+
122
+ </DocStepper>
123
+
124
+ ## Next Steps
125
+
126
+ [Browse the hooks](/docs/headless/components/autocomplete) and compose the behavior you need into your own markup and styles.
@@ -0,0 +1,20 @@
1
+ # Headless
2
+
3
+ React hooks that handle logic and accessibility. You bring your own markup and styles.
4
+
5
+ ## Overview
6
+
7
+ Headless mode exposes each component as a hook, like `useDialog`, `useSelect`, or `useAutoComplete`. Hooks return props you spread onto your own elements. You get state management, keyboard interactions, focus handling, and ARIA wiring. You write the JSX and CSS.
8
+
9
+ Use headless mode when you want maximum control over markup and styling, or when you're building a custom component library on top of our logic.
10
+
11
+ ## What you get
12
+
13
+ - 70+ hooks covering every interaction pattern
14
+ - Zero opinion on markup or styling
15
+ - Full TypeScript inference on returned props
16
+ - The foundation for our Styled, Tailwind, and Primitive layers
17
+
18
+ ## Next steps
19
+
20
+ Browse the hooks in the sidebar or check [Getting Started](/docs/overview/gettingstarted/introduction) for setup.
@@ -0,0 +1,228 @@
1
+ # Accessibility
2
+
3
+ PrimeReact has WCAG level compliance, refer to the accessibility documentation of each component for detailed information.
4
+
5
+ import { CheckCircle } from '@primeicons/react/check-circle'
6
+ import { TimesCircle } from '@primeicons/react/times-circle'
7
+
8
+ ## Introduction
9
+
10
+ According to the World Health Organization, 15% of the world population has a disability to some degree. As a result, accessibility features in any context such as a ramp for wheelchair users or a multimedia with captions are crucial to ensure content can be consumed by anyone.
11
+
12
+ Types of disabilities are diverse so you need to know your audience well and how they interact with the content created. There four main categories;
13
+
14
+ ### Visual Impairments
15
+
16
+ Blindness, low-level vision or color blindness are the common types of visual impairments. Screen magnifiers and the color blind mode are usually built-in features of the browsers whereas for people who rely on screen readers, page developers are required to make sure content is readable by the readers. Popular readers are NVDA , JAWS and ChromeVox .
17
+
18
+ ### Hearing Impairments
19
+
20
+ Deafness or hearing loss refers to the inability to hear sounds totally or partially. People with hearing impairments use assistive devices however it may not be enough when interacting with a web page. Common implementation is providing textual alternatives, transcripts and captions for content with audio.
21
+
22
+ ### Mobility Impairments
23
+
24
+ People with mobility impairments have disabilities related to movement due to loss of a limb, paralysis or other varying reasons. Assistive technologies like a head pointer is a device to interact with a screen whereas keyboard or a trackpad remain as solutions for people who are not able to utilize a mouse.
25
+
26
+ ### Cognitive Impairments
27
+
28
+ Cognitive impairments have a wider range that includes people with learning disabilities, depression and dyslexia. A well designed content also leads to better user experience for people without disabilities so designing for cognitive impairments result in better design for any user.
29
+
30
+ ## WCAG
31
+
32
+ Correct page structure with the aid of assistive technologies are the core ingridients for an accessible web content. HTML is based on an accessible foundation, form controls can be used by keyboard by default and semantic HTML is easier to be processed by a screen reader.
33
+
34
+ [WCAG](https://www.w3.org/WAI/standards-guidelines/wcag/) refers to **Web Content Accessibility Guideline**, a standard managed by the WAI (Web Accessibility Initiative) of W3C (World Wide Web Consortium). WCAG consists of recommendations for making the web content more accessible. PrimeReact components aim high level of WCAG compliancy in the near future.
35
+
36
+ Various countries around the globe have governmental policies regarding web accessibility as well. Most well known of these are Section 508 in the US and [Web Accessibility Directive](https://digital-strategy.ec.europa.eu/en/policies/web-accessibility) of the European Union.
37
+
38
+ ## Form Controls
39
+
40
+ Native form elements should be preferred instead of elements that are meant for other purposes like presentation. As an example, button below is rendered as a form control by the browser, can receive focus via tabbing and can be used with space key as well to trigger.
41
+
42
+ ```tsx
43
+ <button onClick={(event) => onButtonClick(event)}>Click</button>
44
+ ```
45
+
46
+ On the other hand, a fancy css based button using a div has no keyboard or screen reader support.
47
+
48
+ ```tsx
49
+ <div className="fancy-button" onClick={(event) => onButtonClick(event)}>
50
+ Click
51
+ </div>
52
+ ```
53
+
54
+ `tabIndex` is required to make a div element accessible in addition to use a keydown to bring the keyboard support back. To avoid the overload and implementing functionality that is already provided by the browser, native form controls should be preferred.
55
+
56
+ ```tsx
57
+ <div className="fancy-button" onClick={(event) => onClick(event)} onKeyDown={(event) => onKeyDown(event)} tabIndex="0">
58
+ Click
59
+ </div>
60
+ ```
61
+
62
+ Form components must be related to another element that describes what the form element is used for. This is usually achieved with the `label` element.
63
+
64
+ ```tsx
65
+ <label htmlFor="myinput">Username:</label>
66
+ <input id="myinput" type="text" name="username" />
67
+ ```
68
+
69
+ ## Semantic HTML
70
+
71
+ HTML offers various element to organize content on a web page that screen readers are aware of. Preferring Semantic HTML for good semantics provide out of the box support for reader which is not possible when regular `div` elements with classes are used. Consider the following example that do not mean too much for readers.
72
+
73
+ ```tsx
74
+ <div className="header">
75
+ <div className="header-text">Header</div>
76
+ </div>
77
+
78
+ <div className="nav"></div>
79
+
80
+ <div className="main">
81
+ <div className="content">
82
+ </div>
83
+
84
+ <div className="sidebar">
85
+ </div>
86
+ </div>
87
+
88
+ <div className="footer"></div>
89
+ ```
90
+
91
+ Same layout can be achieved using the semantic elements with screen reader support built-in.
92
+
93
+ ```tsx
94
+ <header>
95
+ <h1>Header</h1>
96
+ </header>
97
+
98
+ <nav></nav>
99
+
100
+ <main>
101
+ <article></article>
102
+
103
+ <aside></aside>
104
+
105
+ </main>
106
+
107
+ <footer></footer>
108
+ ```
109
+
110
+ ## WAI ARIA
111
+
112
+ ARIA refers to "Accessible Rich Internet Applications" is a suite to fill the gap where semantic HTML is inadequate. These cases are mainly related to rich UI components/widgets. Although browser support for rich UI components such as a datepicker or inputcolor has been improved over the past years many web developers still utilize UI components derived from standard HTML elements created by them or by other projects like PrimeReact. These types of components must provide keyboard and screen reader support, the latter case is where the WAI-ARIA is utilized.
113
+
114
+ ARIA consists of roles, properties and attributes. **Roles** define what the element is mainly used for e.g. `checkbox`, `dialog`, `tablist` whereas **States** and **Properties** define the metadata of the element like `aria-checked`, `aria-disabled`.
115
+
116
+ Consider the following case of a native checkbox. It has built-in keyboard and screen reader support.
117
+
118
+ ```tsx
119
+ <input type="checkbox" value="Prime" name="ui" checked />
120
+ ```
121
+
122
+ A fancy checkbox with css animations might look more appealing but accessibility might be lacking. Checkbox below may display a checked font icon with animations however it is not tabbable, cannot be checked with space key and cannot be read by a reader.
123
+
124
+ ```tsx
125
+ <div className="fancy-checkbox">{checked && <i className="checked-icon" />}</div>
126
+ ```
127
+
128
+ One alternative is using ARIA roles for readers and use javascript for keyboard support. Notice the usage of `aria-labelledby` as a replacement of the `label` tag with `htmlFor`.
129
+
130
+ ```tsx
131
+ <span id="chk-label">Remember Me</span>
132
+ <div className="fancy-checkbox" role="checkbox" aria-checked="false" tabIndex="0" aria-labelledby="chk-label"
133
+ onClick={toggle} onKeyDown={(event) => onKeyDown(event)}>
134
+ {checked && <i className="checked-icon" />}
135
+ </div>
136
+ ```
137
+
138
+ However the best practice is combining semantic HTML for accessibility while keeping the design for UX. This approach involves hiding a native checkbox for accessibility and using javascript events to update its state. Notice the usage of `p-hidden-accessible` that hides the elements from the user but not from the screen reader.
139
+
140
+ ```tsx
141
+ <label htmlFor="chkbox">Remember Me</label>
142
+ <div className="fancy-checkbox" onClick={toggle}>
143
+ <input className="p-hidden-accessible" type="checkbox" id="chkbox" onFocus={updateParentVisuals} onBlur={updateParentVisuals}
144
+ onKeyDown={(event) => onKeyDown(event)} />
145
+ {checked && <i className="checked-icon" />}
146
+ </div>
147
+ ```
148
+
149
+ A working sample is the PrimeReact checkbox that is tabbable, keyboard accessible and is compliant with a screen reader. Instead of ARIA roles it relies on a hidden native checkbox.
150
+
151
+ ```tsx
152
+ 'use client';
153
+ import { Check } from '@primeicons/react/check';
154
+ import { useCheckbox } from '@primereact/headless/checkbox';
155
+
156
+ export default function AccessibilityCheckboxDemo() {
157
+ const { rootProps, inputProps, boxProps, indicatorProps } = useCheckbox({});
158
+
159
+ return (
160
+ <div className="flex items-center justify-center gap-2">
161
+ <div
162
+ {...rootProps}
163
+ className="relative inline-flex items-center has-[input:focus-visible]:outline-1 has-[input:focus-visible]:outline-offset-2 has-[input:focus-visible]:outline-primary has-[input:focus-visible]:outline rounded"
164
+ >
165
+ <input
166
+ {...inputProps}
167
+ value={inputProps.value as string}
168
+ id="chkbox"
169
+ className="absolute inset-0 w-full h-full opacity-0 cursor-pointer appearance-none m-0 p-0 border border-transparent rounded"
170
+ />
171
+ <div
172
+ {...boxProps}
173
+ className="flex items-center justify-center w-5 h-5 rounded-sm border-2 data-checked:bg-primary data-checked:border-primary data-unchecked:border-gray-300 data-unchecked:hover:border-primary"
174
+ >
175
+ <span {...indicatorProps} className="data-unchecked:hidden">
176
+ <Check className="w-3 h-3 text-primary-contrast" />
177
+ </span>
178
+ </div>
179
+ </div>
180
+ <label htmlFor="chkbox" className="cursor-pointer select-none text-sm">
181
+ Remember Me
182
+ </label>
183
+ </div>
184
+ );
185
+ }
186
+ ```
187
+
188
+ ## Colors
189
+
190
+ Colors on a web page should aim a contrast ratio of at least 4.5:1 and consider a selection of colors that do not cause vibration.
191
+
192
+ ### Good Contrast
193
+
194
+ Color contrast between the background and the foreground content should be sufficient enough to ensure readability. Example below displays two cases with good and bad samples.
195
+
196
+ <div className="flex">
197
+ <div className="h-32 w-32 flex justify-center items-center mr-8 font-bold bg-blue-600 rounded-lg">
198
+ <span className="text-white">GOOD</span>
199
+ </div>
200
+ <div className="h-32 w-32 flex justify-center items-center mr-8 font-bold bg-blue-400 rounded-lg">
201
+ <span className="text-white">BAD</span>
202
+ </div>
203
+ </div>
204
+
205
+ ### Vibration
206
+
207
+ Color vibration is leads to an illusion of motion due to choosing colors that have low visibility against each other. Color combinations need to be picked with caution to avoid vibration.
208
+
209
+ <div className="flex">
210
+ <div className="h-32 w-32 flex justify-center items-center mr-8 font-bold bg-pink-500 rounded-lg">
211
+ <span className="text-blue-500">VIBRATE</span>
212
+ </div>
213
+ </div>
214
+
215
+ ### Dark Mode
216
+
217
+ Highly saturated colors should be avoided when used within a dark design scheme as they cause eye strain. Instead desaturated colors should be preferred.
218
+
219
+ <div className="flex">
220
+ <div className="h-32 w-32 flex flex-col justify-center items-center mr-8 font-bold bg-gray-900 rounded-lg">
221
+ <span className="text-indigo-500">Indigo 500</span>
222
+ <TimesCircle className="text-indigo-500 mt-4 text-xl" />
223
+ </div>
224
+ <div className="h-32 w-32 flex flex-col justify-center items-center mr-8 font-bold bg-gray-900 rounded-lg">
225
+ <span className="text-indigo-200">Indigo 200</span>
226
+ <CheckCircle className="text-indigo-200 mt-4 text-xl" />
227
+ </div>
228
+ </div>
@@ -0,0 +1,25 @@
1
+ # LLMs.txt
2
+
3
+ LLMs.txt is a file that contains the LLMs for the PrimeReact documentation.
4
+
5
+ ## /llms.txt
6
+
7
+ The [llms.txt](https://llmstxt.org/) file is an industry standard that helps AI models better understand and navigate the PrimeReact documentation. It lists key pages in a structured format, making it easier for LLMs to retrieve relevant information.
8
+
9
+ <Button as="a" href="/llms.txt" target="_blank">Open llms.txt</Button>
10
+
11
+ &nbsp;
12
+
13
+ ## /llms-full.txt
14
+
15
+ The `llms-full.txt` file is a complete list of all the pages in the PrimeReact documentation. It is used to help AI models understand the entire documentation set.
16
+
17
+ <Button as="a" href="/llms-full.txt" target="_blank">Open llms-full.txt</Button>
18
+
19
+ &nbsp;
20
+
21
+ ## .md extension
22
+
23
+ Add a `.md` to a page’s URL to display a Markdown version of that page.
24
+
25
+ <Button as="a" href="/docs/overview/llms.md" target="_blank">Open /docs/overview/llms.md</Button>
@@ -0,0 +1,15 @@
1
+ # Resources
2
+
3
+ Support channels, legacy versions and places to discover more about PrimeReact.
4
+
5
+ ## Overview
6
+
7
+ Everything around the library, where to get help, find older versions, and stay up to date.
8
+
9
+ ## What's here
10
+
11
+ - **Support**, get help on Discord, the community forum, or through premium support.
12
+ - **Legacy**, documentation for previous major versions.
13
+ - **Discover**, the store, social channels and newsletter.
14
+
15
+ Pick a category from the sidebar to jump in.
@@ -0,0 +1,34 @@
1
+ # Introduction
2
+
3
+ A standalone collection of React hooks from @primereact/hooks.
4
+
5
+ ## Overview
6
+
7
+ `@primereact/hooks` is a standalone library of React hooks. Each hook solves one concrete problem, filtering a list, formatting a number, watching a media query, reacting to a resize, and none of them render DOM or depend on PrimeReact components.
8
+
9
+ You can use it in any React project. It is the same package PrimeReact itself builds on, published separately so you can reach for a single hook without pulling in a component library.
10
+
11
+ ## What you get
12
+
13
+ - **No framework lock-in.** The hooks work with any React setup, CRA, Vite, Next.js, Remix, React Native Web.
14
+ - **Tree-shakeable.** Every hook has its own entry point; bundlers only ship what you import.
15
+ - **Typed.** Full TypeScript declarations. Generic hooks pick up your data type automatically.
16
+ - **SSR-safe.** Hooks that touch the DOM are marked `'use client'` internally, importing from a server component is fine.
17
+
18
+ ## Conventions
19
+
20
+ A few things are true across the suite:
21
+
22
+ - Stateful hooks support controlled and uncontrolled usage. Pass `value` + `onChange` to control, or start from a `default*` prop and let the hook own the state.
23
+ - Options are passed as a single object. Return shapes are destructurable, pick what you need.
24
+ - Hook names follow the `useX` convention and ship from `@primereact/hooks/use-x`.
25
+
26
+ ```tsx
27
+ import { useFilter } from '@primereact/hooks/use-filter';
28
+
29
+ const { filteredData, setValue } = useFilter<Customer>({
30
+ data: customers,
31
+ field: 'name',
32
+ value: query
33
+ });
34
+ ```