@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,226 @@
1
+ # useSortableList
2
+
3
+ Reorder items in a list, optionally transfer them between lists, with state and handlers you spread onto your own DOM.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import { useSortableList } from '@primereact/hooks/use-sortable-list';
9
+ ```
10
+
11
+ ```tsx
12
+ const { dragState, getListHandlers, getItemHandlers } = useSortableList<'source' | 'target', Item>({
13
+ onReorder: (listId, from, to) => reorder(listId, from, to),
14
+ onTransfer: (sourceId, targetId, items, targetIndex) => transfer(sourceId, targetId, items, targetIndex)
15
+ });
16
+ ```
17
+
18
+ Spread `getListHandlers(listId)` on the list wrapper and `getItemHandlers(listId, index, item)` on each draggable row. The hook tracks hover index internally so drop events always resolve to the right target, even when the user releases over a transitioning item.
19
+
20
+ ## Options
21
+
22
+ - `onReorder(listId, from, to)`, same-list move.
23
+ - `onTransfer?(sourceId, targetId, items, targetIndex?)`, cross-list drop. Omit to make transfers no-ops.
24
+ - `canTransfer?(sourceId, targetId)`, opt out of specific pairings.
25
+ - `getSelectedItems?(listId, item)`, return an array for multi-drag (defaults to `[item]`).
26
+
27
+ ## State
28
+
29
+ `dragState` exposes `isDragging`, `draggedItems`, `draggedIndex`, `sourceListId`, `dragOverListId`, `dragOverIndex`, enough to style placeholders, ghosts, or drop indicators.
30
+
31
+ ## Basic
32
+
33
+ Reorder items inside a single list. The hook feeds you hover state so you can style the active drop target however you like.
34
+
35
+ ```tsx
36
+ 'use client';
37
+ import { useSortableList } from '@primereact/hooks/use-sortable-list';
38
+ import * as React from 'react';
39
+
40
+ interface Task {
41
+ id: number;
42
+ title: string;
43
+ }
44
+
45
+ const initialTasks: Task[] = [
46
+ { id: 1, title: 'Review pull requests' },
47
+ { id: 2, title: 'Write release notes' },
48
+ { id: 3, title: 'Triage bug reports' },
49
+ { id: 4, title: 'Prepare demo for Friday' },
50
+ { id: 5, title: 'Answer community questions' }
51
+ ];
52
+
53
+ export default function BasicDemo() {
54
+ const [tasks, setTasks] = React.useState<Task[]>(initialTasks);
55
+
56
+ const reorder = React.useCallback((_listId: 'tasks', from: number, to: number) => {
57
+ setTasks((prev) => {
58
+ const next = prev.slice();
59
+ const [moved] = next.splice(from, 1);
60
+
61
+ next.splice(to, 0, moved);
62
+
63
+ return next;
64
+ });
65
+ }, []);
66
+
67
+ const { dragState, getListHandlers, getItemHandlers } = useSortableList<'tasks', Task>({
68
+ onReorder: reorder
69
+ });
70
+
71
+ const listHandlers = getListHandlers('tasks');
72
+
73
+ return (
74
+ <div className="w-full max-w-md">
75
+ <ul
76
+ className="flex flex-col gap-2 p-3 rounded-md border border-surface-200 dark:border-surface-700"
77
+ onDragOver={listHandlers.onDragOver}
78
+ onDrop={listHandlers.onDrop}
79
+ >
80
+ {tasks.map((task, index) => {
81
+ const itemHandlers = getItemHandlers('tasks', index, task);
82
+ const isDragging = dragState.isDragging && dragState.draggedIndex === index;
83
+ const isOver = dragState.dragOverIndex === index && !isDragging;
84
+
85
+ return (
86
+ <li
87
+ key={task.id}
88
+ {...itemHandlers}
89
+ className={`flex items-center gap-3 px-3 py-2 rounded-md border cursor-grab active:cursor-grabbing transition-colors select-none ${
90
+ isDragging
91
+ ? 'opacity-40 border-dashed border-surface-300 dark:border-surface-600'
92
+ : isOver
93
+ ? 'border-primary-500 bg-primary-50 dark:bg-primary-900/20'
94
+ : 'border-surface-200 dark:border-surface-700 bg-surface-0 dark:bg-surface-900'
95
+ }`}
96
+ >
97
+ <span className="text-surface-400 font-mono text-xs">{index + 1}</span>
98
+ <span className="flex-1">{task.title}</span>
99
+ <span className="text-surface-300 dark:text-surface-600 text-xs">drag</span>
100
+ </li>
101
+ );
102
+ })}
103
+ </ul>
104
+ </div>
105
+ );
106
+ }
107
+ ```
108
+
109
+ ## Transfer between lists
110
+
111
+ Pass `onTransfer` alongside `onReorder` to move items across lists. The handler receives the source list, target list, dragged items, and the target index.
112
+
113
+ ```tsx
114
+ 'use client';
115
+ import { useSortableList } from '@primereact/hooks/use-sortable-list';
116
+ import * as React from 'react';
117
+
118
+ interface Item {
119
+ id: number;
120
+ label: string;
121
+ }
122
+
123
+ type ListId = 'todo' | 'done';
124
+
125
+ const initial: Record<ListId, Item[]> = {
126
+ todo: [
127
+ { id: 1, label: 'Draft the proposal' },
128
+ { id: 2, label: 'Send invoices' },
129
+ { id: 3, label: 'Update changelog' }
130
+ ],
131
+ done: [
132
+ { id: 4, label: 'Ship v1.0' },
133
+ { id: 5, label: 'Fix login bug' }
134
+ ]
135
+ };
136
+
137
+ export default function TransferDemo() {
138
+ const [lists, setLists] = React.useState(initial);
139
+
140
+ const reorder = React.useCallback((listId: ListId, from: number, to: number) => {
141
+ setLists((prev) => {
142
+ const next = prev[listId].slice();
143
+ const [moved] = next.splice(from, 1);
144
+
145
+ next.splice(to, 0, moved);
146
+
147
+ return { ...prev, [listId]: next };
148
+ });
149
+ }, []);
150
+
151
+ const transfer = React.useCallback((source: ListId, target: ListId, items: Item[], targetIndex?: number) => {
152
+ setLists((prev) => {
153
+ const ids = new Set(items.map((i) => i.id));
154
+ const src = prev[source].filter((i) => !ids.has(i.id));
155
+ const tgt = prev[target].slice();
156
+ const at = targetIndex ?? tgt.length;
157
+
158
+ tgt.splice(at, 0, ...items);
159
+
160
+ return { ...prev, [source]: src, [target]: tgt };
161
+ });
162
+ }, []);
163
+
164
+ const { dragState, getListHandlers, getItemHandlers } = useSortableList<ListId, Item>({
165
+ onReorder: reorder,
166
+ onTransfer: transfer
167
+ });
168
+
169
+ const renderList = (listId: ListId, title: string) => {
170
+ const items = lists[listId];
171
+ const listHandlers = getListHandlers(listId);
172
+ const isTarget = dragState.dragOverListId === listId && dragState.sourceListId !== listId;
173
+
174
+ return (
175
+ <div className="flex-1 flex flex-col gap-2">
176
+ <h4 className="text-xs font-mono uppercase tracking-wide text-surface-500">{title}</h4>
177
+ <ul
178
+ onDragOver={listHandlers.onDragOver}
179
+ onDrop={listHandlers.onDrop}
180
+ className={`flex flex-col gap-2 p-3 min-h-32 rounded-md border transition-colors ${
181
+ isTarget ? 'border-primary-500 bg-primary-50 dark:bg-primary-900/20' : 'border-surface-200 dark:border-surface-700'
182
+ }`}
183
+ >
184
+ {items.map((item, index) => {
185
+ const itemHandlers = getItemHandlers(listId, index, item);
186
+ const isDragging = dragState.isDragging && dragState.sourceListId === listId && dragState.draggedIndex === index;
187
+ const isOver = dragState.dragOverListId === listId && dragState.dragOverIndex === index && !isDragging;
188
+
189
+ return (
190
+ <li
191
+ key={item.id}
192
+ {...itemHandlers}
193
+ className={`px-3 py-2 rounded-md border cursor-grab active:cursor-grabbing select-none transition-colors ${
194
+ isDragging
195
+ ? 'opacity-40 border-dashed border-surface-300 dark:border-surface-600'
196
+ : isOver
197
+ ? 'border-primary-500 bg-primary-50 dark:bg-primary-900/20'
198
+ : 'border-surface-200 dark:border-surface-700 bg-surface-0 dark:bg-surface-900'
199
+ }`}
200
+ >
201
+ {item.label}
202
+ </li>
203
+ );
204
+ })}
205
+ {items.length === 0 && <li className="text-xs text-surface-400 text-center py-4">Drop items here</li>}
206
+ </ul>
207
+ </div>
208
+ );
209
+ };
210
+
211
+ return (
212
+ <div className="w-full flex flex-col sm:flex-row gap-4">
213
+ {renderList('todo', 'To Do')}
214
+ {renderList('done', 'Done')}
215
+ </div>
216
+ );
217
+ }
218
+ ```
219
+
220
+ ## Notes
221
+
222
+ Drops are handled at the **list level**, not per-item. That means you can animate items freely without breaking drop targeting, and you don't need to attach `onDrop` to each row.
223
+
224
+ ## Related
225
+
226
+ For PrimeReact's component-level drag-and-drop primitives, composable `useDraggable`, `useDroppable`, and `useSortableContainer` with a shared coordinator, see the headless `dnd` package. Those power components like OrderList and PickList.
@@ -0,0 +1,216 @@
1
+ # useTreeFilter
2
+
3
+ Filter hook for hierarchical data. Lenient or strict branch matching.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import { useTreeFilter } from '@primereact/hooks/use-tree-filter';
9
+ ```
10
+
11
+ ```tsx
12
+ const { filteredNodes, value, setValue, isFiltered } = useTreeFilter({
13
+ nodes,
14
+ field: 'label'
15
+ });
16
+ ```
17
+
18
+ `useTreeFilter` walks nodes with `children` and returns the matching branches. Rules and matchers are the same as `useFilter`, pick the hook that matches your data shape.
19
+
20
+ ## Signature
21
+
22
+ ```ts
23
+ function useTreeFilter<TNode extends TreeNodeLike, TMode extends string = BuiltInMatchMode>(options: UseTreeFilterOptions<TNode, TMode>): UseTreeFilterReturn<TNode, TMode>;
24
+ ```
25
+
26
+ ## filterMode
27
+
28
+ - **`lenient`** (default), keep a branch if it matches, or if any descendant matches. The whole subtree is included.
29
+ - **`strict`**, leaves must match on their own. Parents are kept only as a path to a matching descendant; non-matching leaves are dropped.
30
+
31
+ ```tsx
32
+ 'use client';
33
+ import { File } from '@primeicons/react/file';
34
+ import { Folder } from '@primeicons/react/folder';
35
+ import { Search } from '@primeicons/react/search';
36
+ import { useTreeFilter, type TreeFilterMode } from '@primereact/hooks/use-tree-filter';
37
+ import { IconField } from '@primereact/ui/iconfield';
38
+ import { InputText } from '@primereact/ui/inputtext';
39
+ import { ToggleButton } from '@primereact/ui/togglebutton';
40
+ import { ToggleButtonGroup } from '@primereact/ui/togglebuttongroup';
41
+ import * as React from 'react';
42
+
43
+ interface Node {
44
+ key: string;
45
+ data: { name: string; type: 'folder' | 'file' };
46
+ children?: Node[];
47
+ }
48
+
49
+ const tree: Node[] = [
50
+ {
51
+ key: '0',
52
+ data: { name: 'Documents', type: 'folder' },
53
+ children: [
54
+ { key: '0-0', data: { name: 'Work Report.docx', type: 'file' } },
55
+ { key: '0-1', data: { name: 'Expenses.xlsx', type: 'file' } },
56
+ {
57
+ key: '0-2',
58
+ data: { name: 'Invoices', type: 'folder' },
59
+ children: [
60
+ { key: '0-2-0', data: { name: 'January.pdf', type: 'file' } },
61
+ { key: '0-2-1', data: { name: 'February.pdf', type: 'file' } }
62
+ ]
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ key: '1',
68
+ data: { name: 'Media', type: 'folder' },
69
+ children: [
70
+ { key: '1-0', data: { name: 'Holiday.mp4', type: 'file' } },
71
+ { key: '1-1', data: { name: 'Wallpaper.jpg', type: 'file' } }
72
+ ]
73
+ },
74
+ {
75
+ key: '2',
76
+ data: { name: 'Archive', type: 'folder' },
77
+ children: [{ key: '2-0', data: { name: 'old-work-report.docx', type: 'file' } }]
78
+ }
79
+ ];
80
+
81
+ function renderNode(node: Node, level = 0): React.ReactNode {
82
+ return (
83
+ <React.Fragment key={node.key}>
84
+ <div
85
+ className="flex items-center gap-2 py-1 px-2 rounded hover:bg-surface-100 dark:hover:bg-surface-800"
86
+ style={{ paddingInlineStart: `${0.5 + level * 1.25}rem` }}
87
+ >
88
+ {node.data.type === 'folder' ? (
89
+ <Folder className="w-4 h-4 text-yellow-500" />
90
+ ) : (
91
+ <File className="w-4 h-4 text-surface-500 dark:text-surface-400" />
92
+ )}
93
+ <span className={node.data.type === 'folder' ? 'font-semibold' : ''}>{node.data.name}</span>
94
+ </div>
95
+ {node.children?.map((c) => renderNode(c, level + 1))}
96
+ </React.Fragment>
97
+ );
98
+ }
99
+
100
+ export default function TreeDemo() {
101
+ const [mode, setMode] = React.useState<TreeFilterMode>('lenient');
102
+
103
+ const { filteredNodes, rules, setRules } = useTreeFilter<Node>({
104
+ nodes: tree,
105
+ defaultRules: [{ field: 'name', value: null, matchMode: 'contains' }],
106
+ filterMode: mode
107
+ });
108
+
109
+ const search = (rules[0]?.value as string) ?? '';
110
+
111
+ return (
112
+ <div className="w-full flex flex-col gap-3">
113
+ <div className="flex items-center gap-2">
114
+ <IconField.Root>
115
+ <IconField.Inset>
116
+ <Search />
117
+ </IconField.Inset>
118
+ <InputText
119
+ type="search"
120
+ placeholder="Search nodes..."
121
+ value={search}
122
+ onChange={(e: any) => setRules([{ field: 'name', value: e.target.value, matchMode: 'contains' }])}
123
+ />
124
+ </IconField.Root>
125
+
126
+ <ToggleButtonGroup
127
+ allowEmpty={false}
128
+ multiple={false}
129
+ value={mode}
130
+ onValueChange={(e: { value: unknown }) => setMode(e.value as TreeFilterMode)}
131
+ >
132
+ <ToggleButton.Root value="lenient" size="small">
133
+ <ToggleButton.Indicator>Lenient</ToggleButton.Indicator>
134
+ </ToggleButton.Root>
135
+ <ToggleButton.Root value="strict" size="small">
136
+ <ToggleButton.Indicator>Strict</ToggleButton.Indicator>
137
+ </ToggleButton.Root>
138
+ </ToggleButtonGroup>
139
+ </div>
140
+ <div className="border border-surface-200 dark:border-surface-700 rounded-md p-2 min-h-60">
141
+ {filteredNodes.length === 0 ? (
142
+ <div className="p-4 text-center text-sm text-surface-500 dark:text-surface-400">No matches.</div>
143
+ ) : (
144
+ filteredNodes.map((n) => renderNode(n))
145
+ )}
146
+ </div>
147
+ <p className="text-xs text-surface-500 dark:text-surface-400">
148
+ <strong>Lenient</strong>: a branch is kept if any descendant matches. <strong>Strict</strong>: leaves must match; parents are kept
149
+ only when a descendant matches.
150
+ </p>
151
+ </div>
152
+ );
153
+ }
154
+ ```
155
+
156
+ ## Rules
157
+
158
+ Same shape as `useFilter`. Fields resolve against `node.data` first, then against the node itself. So a flat `{ key, label, children }` works the same as the DataTable-style `{ key, data: { name, type }, children }`.
159
+
160
+ ```tsx
161
+ // node.data.name
162
+ useTreeFilter({
163
+ nodes,
164
+ defaultRules: [{ field: 'name', value: 'doc', matchMode: 'contains' }],
165
+ filterMode: 'lenient'
166
+ });
167
+
168
+ // node.label (top-level)
169
+ useTreeFilter({
170
+ nodes,
171
+ defaultRules: [{ field: 'label', value: 'doc', matchMode: 'contains' }]
172
+ });
173
+ ```
174
+
175
+ ## Shorthand
176
+
177
+ For single-field filtering, skip the rules array and pass `field` directly. The hook builds a `{ field, value, matchMode }` rule for you and exposes `value` / `setValue` for the input.
178
+
179
+ ```tsx
180
+ const { filteredNodes, value, setValue, isFiltered } = useTreeFilter({
181
+ nodes,
182
+ field: 'label',
183
+ matchMode: 'contains' // optional, defaults to 'contains'
184
+ });
185
+
186
+ <InputText value={value as string} onChange={(e) => setValue(e.target.value)} />;
187
+ ```
188
+
189
+ `value` follows the standard controlled / uncontrolled convention:
190
+
191
+ | Mode | Setup | When to use |
192
+ | ---------------- | -------------------------------------------- | --------------------------------------------------------------------------- |
193
+ | **Uncontrolled** | omit `value`, optionally pass `defaultValue` | Default. The hook keeps the state and `setValue` updates it. |
194
+ | **Controlled** | pass both `value` and `onValueChange` | When the parent already owns the query (URL sync, parent re-renders, etc.). |
195
+
196
+ Passing `rules` or `defaultRules` turns the shorthand off, use one or the other.
197
+
198
+ ## Lazy
199
+
200
+ With `lazy: true` the client-side walk is skipped and `filteredNodes` is returned untouched. `onLazyLoad` fires with the current rules and the active `filterMode`; forward both so your backend can apply the same branch logic.
201
+
202
+ ```tsx
203
+ useTreeFilter({
204
+ nodes,
205
+ lazy: true,
206
+ defaultRules: [{ field: 'label', value: null }],
207
+ filterMode: 'lenient',
208
+ onLazyLoad: ({ rules, filterMode }) => {
209
+ // fetch filtered tree from the server
210
+ }
211
+ });
212
+ ```
213
+
214
+ ## Custom matchers
215
+
216
+ Reuse `matchers` and the shared `registerMatcher` / `unregisterMatcher` helpers from `@primereact/hooks/use-filter`.
@@ -0,0 +1,23 @@
1
+ # useUnmountEffect
2
+
3
+ Run an effect exactly once, when the component unmounts.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';
9
+ ```
10
+
11
+ ```tsx
12
+ useUnmountEffect(() => {
13
+ socket.close();
14
+ });
15
+ ```
16
+
17
+ Equivalent to `useEffect(() => cleanup, [])`, expressed as the cleanup by itself. Reads clearer when the mount path has nothing to do.
18
+
19
+ ## Signature
20
+
21
+ ```ts
22
+ function useUnmountEffect(effect: React.EffectCallback): void;
23
+ ```
@@ -0,0 +1,27 @@
1
+ # useUpdateEffect
2
+
3
+ useEffect that skips the initial mount and runs only on subsequent dependency changes.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import { useUpdateEffect } from '@primereact/hooks/use-update-effect';
9
+ ```
10
+
11
+ ```tsx
12
+ useUpdateEffect(() => {
13
+ onValueChange(value);
14
+ }, [value]);
15
+ ```
16
+
17
+ The effect does not run on the first render. Every time one of the dependencies changes afterwards, it fires like a normal `useEffect`.
18
+
19
+ ## Signature
20
+
21
+ ```ts
22
+ function useUpdateEffect(effect: React.EffectCallback, deps?: React.DependencyList): void;
23
+ ```
24
+
25
+ ## When to use it
26
+
27
+ Triggering side effects that only make sense _after_ a user-driven change, firing a controlled `onChange`, syncing to a remote store, or announcing transitions.
@@ -0,0 +1,31 @@
1
+ # useViewTransition
2
+
3
+ Wrap state updates in the View Transitions API, with a graceful fallback on unsupported browsers.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import { useViewTransition } from '@primereact/hooks/use-view-transition';
9
+ ```
10
+
11
+ ```tsx
12
+ const startTransition = useViewTransition();
13
+
14
+ function toggleTheme() {
15
+ startTransition(() => {
16
+ setTheme(theme === 'light' ? 'dark' : 'light');
17
+ });
18
+ }
19
+ ```
20
+
21
+ Calls `document.startViewTransition(callback)` when the API exists; otherwise the callback runs synchronously. That means your code always works, the animation is the enhancement.
22
+
23
+ ## Signature
24
+
25
+ ```ts
26
+ function useViewTransition(): (callback: () => void) => void;
27
+ ```
28
+
29
+ ## Notes
30
+
31
+ View Transitions are driven by CSS (`::view-transition-*` pseudo-elements and `view-transition-name`). This hook is a small API hook, pair it with the CSS your design system defines.
@@ -0,0 +1,30 @@
1
+ # useVisibilityChange
2
+
3
+ Reactive boolean that reflects the document's Page Visibility state.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import { useVisibilityChange } from '@primereact/hooks/use-visibility-change';
9
+ ```
10
+
11
+ ```tsx
12
+ const isVisible = useVisibilityChange();
13
+
14
+ React.useEffect(() => {
15
+ if (!isVisible) pauseTimers();
16
+ else resumeTimers();
17
+ }, [isVisible]);
18
+ ```
19
+
20
+ Listens to the `visibilitychange` event and returns `true` while the tab is active, `false` when backgrounded or minimized.
21
+
22
+ ## Signature
23
+
24
+ ```ts
25
+ function useVisibilityChange(): boolean;
26
+ ```
27
+
28
+ ## When to use it
29
+
30
+ Throttle or pause work while the tab isn't visible, polling requests, animations, WebSocket pings, and resume when the user comes back.