@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,292 @@
1
+ # Tree
2
+
3
+ Unstyled, accessible tree primitive with a compound API.
4
+
5
+ <DocPrimitiveIntro description="Unstyled compound primitive for rendering hierarchical data with full control over markup." />
6
+
7
+ ```tsx
8
+ 'use client';
9
+ import { NodeService } from '@/shared/services/node.service';
10
+ import { ChevronDown } from '@primeicons/react/chevron-down';
11
+ import { ChevronRight } from '@primeicons/react/chevron-right';
12
+ import { Tree, type TreeNodeData } from 'primereact/tree';
13
+ import * as React from 'react';
14
+ import styles from './basic-demo.module.css';
15
+
16
+ export default function BasicDemo() {
17
+ const [nodes, setNodes] = React.useState<TreeNodeData[]>([]);
18
+
19
+ React.useEffect(() => {
20
+ NodeService.getTreeNodes().then(setNodes);
21
+ }, []);
22
+
23
+ return (
24
+ <Tree.Root value={nodes} defaultExpandedKeys={{ '0': true }} selectionMode="single" className={styles.root}>
25
+ <Tree.Nodes>
26
+ {({ node }) => (
27
+ <Tree.Node uKey={node.key}>
28
+ <Tree.Content>
29
+ <Tree.Toggle>
30
+ <Tree.ToggleIndicator match="expanded">
31
+ <ChevronDown />
32
+ </Tree.ToggleIndicator>
33
+ <Tree.ToggleIndicator match="collapsed">
34
+ <ChevronRight />
35
+ </Tree.ToggleIndicator>
36
+ </Tree.Toggle>
37
+ <Tree.Label>{node.label}</Tree.Label>
38
+ </Tree.Content>
39
+ </Tree.Node>
40
+ )}
41
+ </Tree.Nodes>
42
+ </Tree.Root>
43
+ );
44
+ }
45
+ ```
46
+
47
+ <DocPrimitiveLinks name="Tree" />
48
+
49
+ ## Features
50
+
51
+ - Compound parts: _Root_, _Nodes_, _Node_, _Content_, _Toggle_, _ToggleIndicator_, _Selection_, _DropIndicator_, _Label_, _Filter_, _Header_, _Footer_, _Empty_, _Loading_
52
+ - Flat DOM with a single `<ul role="tree">` containing one `<li role="treeitem">` per visible row
53
+ - Selection modes _single_, _multiple_ and _checkbox_ with tri-state cascade
54
+ - Drag-and-drop with a single _onMove_ event; _validateMove_ can be sync or async
55
+
56
+ ## Usage
57
+
58
+ ```tsx
59
+ import { Tree } from 'primereact/tree';
60
+ ```
61
+
62
+ ```tsx
63
+ <Tree.Root value={nodes}>
64
+ <Tree.Header>
65
+ <Tree.Filter />
66
+ </Tree.Header>
67
+ <Tree.Nodes>
68
+ {({ node }) => (
69
+ <Tree.Node uKey={node.key}>
70
+ <Tree.Content>
71
+ <Tree.Toggle>
72
+ <Tree.ToggleIndicator match="expanded">▼</Tree.ToggleIndicator>
73
+ <Tree.ToggleIndicator match="collapsed">▶</Tree.ToggleIndicator>
74
+ </Tree.Toggle>
75
+ <Tree.Label>{node.label}</Tree.Label>
76
+ </Tree.Content>
77
+ </Tree.Node>
78
+ )}
79
+ </Tree.Nodes>
80
+ <Tree.Footer />
81
+ <Tree.Empty />
82
+ </Tree.Root>
83
+ ```
84
+
85
+ ## Behavior
86
+
87
+ ### Flat Render
88
+
89
+ _Tree.Nodes_ walks the data top-down and calls its render function once per visible row. _Tree.Node_ looks the data up by _uKey_. Each `<li>` carries its depth in the `--px-tree-node-level` CSS variable (1-based); combine it with your own indent unit for indentation:
90
+
91
+ ```css
92
+ [data-part='content'] {
93
+ margin-inline-start: calc((var(--px-tree-node-level, 1) - 1) * var(--p-tree-indent, 1rem));
94
+ }
95
+ ```
96
+
97
+ ### Toggle Indicator
98
+
99
+ _Tree.Toggle_ renders no icon on its own. Add _Tree.ToggleIndicator_ with _match="expanded"_, _match="collapsed"_ or _match="always"_ inside to render per-state content. For leaf rows the toggle is replaced by `<span data-part="toggle-spacer">` so the indentation stays aligned.
100
+
101
+ ### Selection
102
+
103
+ _Tree.Selection_ is render-prop based. Inside _Tree.Node_ it exposes _isSelected_, _isPartiallySelected_ and _toggle_. Inside _Tree.Header_ it exposes _isAllSelected_, _isSomeSelected_ and _toggleAll_. Pass _mode="radio" | "checkbox" | "single"_ to force a specific toggle behavior.
104
+
105
+ ### Polymorphism
106
+
107
+ Every sub-component takes an `as` prop. Pass another element or component to swap the rendered tag.
108
+
109
+ Defaults: `Root`=`div`, `Nodes`=`ul`, `Node`=`li`, `Content`=`div`, `Toggle`=`button`, `ToggleIndicator`=`span`, `Selection`=`Fragment`, `DropIndicator`=`div`, `Label`=`span`, `Filter`=`input`, `Header`=`div`, `Footer`=`div`, `Empty`=`div`, `Loading`=`div`.
110
+
111
+ ## Pass Through
112
+
113
+ <DocPTViewer name="tree-pt" components={['TreeRoot']} />
114
+
115
+ ## API
116
+
117
+ ### TreeRoot
118
+
119
+ <DocTable name="TreeRoot" category="api" />
120
+
121
+ | Attribute | Value |
122
+ | --------------- | ----------------------------------------------------- |
123
+ | `data-scope` | `"tree"` |
124
+ | `data-part` | `"root"` |
125
+ | `data-dragover` | Present while a compatible drag is over the container |
126
+
127
+ <DocTable name="TreeRoot" category="pt" />
128
+
129
+ ### TreeNodes
130
+
131
+ <DocTable name="TreeNodes" category="api" />
132
+
133
+ | Attribute | Value |
134
+ | ------------ | --------- |
135
+ | `data-scope` | `"tree"` |
136
+ | `data-part` | `"nodes"` |
137
+ | `role` | `"tree"` |
138
+
139
+ <DocTable name="TreeNodes" category="pt" />
140
+
141
+ ### TreeNode
142
+
143
+ <DocTable name="TreeNode" category="api" />
144
+
145
+ | Attribute | Value |
146
+ | ---------------- | --------------------------------- |
147
+ | `data-scope` | `"tree"` |
148
+ | `data-part` | `"node"` |
149
+ | `data-node-key` | Node key |
150
+ | `data-expanded` | Present when expanded (non-leaf) |
151
+ | `data-collapsed` | Present when collapsed (non-leaf) |
152
+ | `data-selected` | Present when selected |
153
+ | `data-leaf` | Present when leaf |
154
+ | `data-disabled` | Present when disabled |
155
+ | `data-focused` | Present on the focused row |
156
+
157
+ <DocTable name="TreeNode" category="pt" />
158
+
159
+ ### TreeContent
160
+
161
+ <DocTable name="TreeContent" category="api" />
162
+
163
+ | Attribute | Value |
164
+ | ---------------------- | ------------------------------------------ |
165
+ | `data-scope` | `"tree"` |
166
+ | `data-part` | `"content"` |
167
+ | `data-selected` | Present when selected or checked |
168
+ | `data-selectable` | Present when selectable |
169
+ | `data-expanded` | Present when expanded (non-leaf) |
170
+ | `data-collapsed` | Present when collapsed (non-leaf) |
171
+ | `data-leaf` | Present when leaf |
172
+ | `data-checked` | Present when checked (checkbox mode) |
173
+ | `data-partial-checked` | Present when partially checked |
174
+ | `data-disabled` | Present when disabled |
175
+ | `data-dragover` | Present while a compatible drag is over it |
176
+
177
+ <DocTable name="TreeContent" category="pt" />
178
+
179
+ ### TreeToggle
180
+
181
+ <DocTable name="TreeToggle" category="api" />
182
+
183
+ | Attribute | Value |
184
+ | ---------------- | ---------------------- |
185
+ | `data-scope` | `"tree"` |
186
+ | `data-part` | `"toggle"` |
187
+ | `data-expanded` | Present when expanded |
188
+ | `data-collapsed` | Present when collapsed |
189
+
190
+ For leaf nodes the toggle is replaced by `<span data-part="toggle-spacer" aria-hidden>`.
191
+
192
+ <DocTable name="TreeToggle" category="pt" />
193
+
194
+ ### TreeToggleIndicator
195
+
196
+ <DocTable name="TreeToggleIndicator" category="api" />
197
+
198
+ | Attribute | Value |
199
+ | ------------ | -------------------- |
200
+ | `data-scope` | `"tree"` |
201
+ | `data-part` | `"toggle-indicator"` |
202
+
203
+ <DocTable name="TreeToggleIndicator" category="pt" />
204
+
205
+ ### TreeSelection
206
+
207
+ <DocTable name="TreeSelection" category="api" />
208
+
209
+ Render-prop only; no DOM attributes of its own.
210
+
211
+ <DocTable name="TreeSelection" category="pt" />
212
+
213
+ ### TreeDropIndicator
214
+
215
+ <DocTable name="TreeDropIndicator" category="api" />
216
+
217
+ Renders only while the matching drop point is hovered. Use one with `position="before"` and one with `position="after"` per `Tree.Node`.
218
+
219
+ | Attribute | Value |
220
+ | ------------ | -------------- |
221
+ | `data-scope` | `"tree"` |
222
+ | `data-part` | `"drop-point"` |
223
+
224
+ <DocTable name="TreeDropIndicator" category="pt" />
225
+
226
+ ### TreeLabel
227
+
228
+ <DocTable name="TreeLabel" category="api" />
229
+
230
+ <DocTable name="TreeLabel" category="pt" />
231
+
232
+ ### TreeFilter
233
+
234
+ <DocTable name="TreeFilter" category="api" />
235
+
236
+ | Attribute | Value |
237
+ | ------------ | ---------- |
238
+ | `data-scope` | `"tree"` |
239
+ | `data-part` | `"filter"` |
240
+
241
+ <DocTable name="TreeFilter" category="pt" />
242
+
243
+ ### TreeHeader
244
+
245
+ <DocTable name="TreeHeader" category="api" />
246
+
247
+ <DocTable name="TreeHeader" category="pt" />
248
+
249
+ ### TreeFooter
250
+
251
+ <DocTable name="TreeFooter" category="api" />
252
+
253
+ <DocTable name="TreeFooter" category="pt" />
254
+
255
+ ### TreeEmpty
256
+
257
+ <DocTable name="TreeEmpty" category="api" />
258
+
259
+ <DocTable name="TreeEmpty" category="pt" />
260
+
261
+ ### TreeLoading
262
+
263
+ <DocTable name="TreeLoading" category="api" />
264
+
265
+ Renders only while `Tree.Root.loading` is true. Use it as a sibling of `Tree.Nodes`.
266
+
267
+ | Attribute | Value |
268
+ | ------------ | ----------- |
269
+ | `data-scope` | `"tree"` |
270
+ | `data-part` | `"loading"` |
271
+ | `role` | `"status"` |
272
+
273
+ <DocTable name="TreeLoading" category="pt" />
274
+
275
+ ## Accessibility
276
+
277
+ ### Screen Reader
278
+
279
+ The flat `<ul role="tree">` contains one `<li role="treeitem">` per visible row. Each row carries `aria-level`, `aria-posinset` and `aria-setsize`. Non-leaf rows set `aria-expanded`. In `selectionMode="checkbox"`, `aria-checked` is `true`, `false` or `"mixed"`.
280
+
281
+ ### Keyboard Support
282
+
283
+ | Key | Function |
284
+ | ----------------------- | ------------------------------------------------------ |
285
+ | `tab` / `shift` + `tab` | Enter / leave the tree. |
286
+ | `enter` / `space` | Toggle selection on the focused node. |
287
+ | `down arrow` | Move focus to the next visible row. |
288
+ | `up arrow` | Move focus to the previous visible row. |
289
+ | `right arrow` | Expand the focused node, or step into its first child. |
290
+ | `left arrow` | Collapse the focused node, or step out to its parent. |
291
+ | `home` / `end` | Jump to the first / last visible row. |
292
+ | Printable characters | Type-ahead by label (500 ms reset). |
@@ -0,0 +1,187 @@
1
+ # TreeTable
2
+
3
+ An unstyled hierarchical data table built on DataTable with treeMode enabled, sort, filter, paginate, select, expand, and edit tree-shaped data.
4
+
5
+ <DocPrimitiveIntro description="Compose a fully custom tree table with the same compound API as DataTable. Tree mode is a single prop on Root, every other feature (sort, filter, paginate, select, edit, reorder, export) works the same way." />
6
+
7
+ ```tsx
8
+ 'use client';
9
+ import { NodeService, type TreeTableNode } from '@/shared/services/node.service';
10
+ import { DataTable } from 'primereact/datatable';
11
+ import type { DataTableExpansionEvent } from 'primereact/datatable';
12
+ import * as React from 'react';
13
+
14
+ const cellStyle: React.CSSProperties = { padding: '0.5rem 0.75rem' };
15
+ const headStyle: React.CSSProperties = { ...cellStyle, textAlign: 'left', fontWeight: 600, borderBottom: '1px solid var(--p-content-border-color)' };
16
+ const rowStyle: React.CSSProperties = { borderBottom: '1px solid var(--p-content-border-color)' };
17
+
18
+ export default function BasicDemo() {
19
+ const [nodes, setNodes] = React.useState<TreeTableNode[]>([]);
20
+ const [expandedKeys, setExpandedKeys] = React.useState<Record<string, boolean>>({ '0': true });
21
+
22
+ React.useEffect(() => {
23
+ setNodes(NodeService.getTreeTableNodesData().slice(0, 5));
24
+ }, []);
25
+
26
+ return (
27
+ <div style={{ width: '100%' }}>
28
+ <DataTable.Root
29
+ data={nodes}
30
+ dataKey="key"
31
+ treeMode
32
+ expandedKeys={expandedKeys}
33
+ onExpandedChange={(e: DataTableExpansionEvent) => setExpandedKeys(e.value)}
34
+ >
35
+ <DataTable.TableContainer>
36
+ <DataTable.Table style={{ width: '100%', borderCollapse: 'collapse' }}>
37
+ <DataTable.THead>
38
+ <DataTable.THeadRow>
39
+ <DataTable.THeadCell style={headStyle}>Name</DataTable.THeadCell>
40
+ <DataTable.THeadCell style={headStyle}>Size</DataTable.THeadCell>
41
+ <DataTable.THeadCell style={headStyle}>Type</DataTable.THeadCell>
42
+ </DataTable.THeadRow>
43
+ </DataTable.THead>
44
+ <DataTable.TBody>
45
+ {({ item }: { item: Record<string, unknown> }) => (
46
+ <DataTable.Row style={rowStyle}>
47
+ <DataTable.Cell style={cellStyle}>
48
+ <div style={{ display: 'flex', alignItems: 'center', gap: 4 }}>
49
+ <DataTable.RowToggle>
50
+ <DataTable.RowToggleIndicator match="expanded">▼</DataTable.RowToggleIndicator>
51
+ <DataTable.RowToggleIndicator match="collapsed">▶</DataTable.RowToggleIndicator>
52
+ </DataTable.RowToggle>
53
+ <span>{String(item.name)}</span>
54
+ </div>
55
+ </DataTable.Cell>
56
+ <DataTable.Cell style={cellStyle}>{String(item.size)}</DataTable.Cell>
57
+ <DataTable.Cell style={cellStyle}>{String(item.type)}</DataTable.Cell>
58
+ </DataTable.Row>
59
+ )}
60
+ </DataTable.TBody>
61
+ </DataTable.Table>
62
+ </DataTable.TableContainer>
63
+ </DataTable.Root>
64
+ </div>
65
+ );
66
+ }
67
+ ```
68
+
69
+ <DocPrimitiveLinks name="TreeTable" />
70
+
71
+ ## Features
72
+
73
+ - Same compound component API as [DataTable](/docs/primitive/components/datatable)
74
+ - `treeMode` flips `role="table"` to `role="treegrid"` and stamps `aria-level`, `aria-expanded`, `aria-posinset`, `aria-setsize` on each row automatically
75
+ - `DataTable.RowToggle` renders an expander when a node has children and a leaf-spacer when it does not, so indentation stays aligned
76
+ - All editing, filter, sort, pagination, selection, reorder, resize, and export features compose with hierarchical data
77
+
78
+ ## Usage
79
+
80
+ There is no separate `TreeTable` import, pass `treeMode` and `dataKey="key"` to `DataTable.Root` and feed it nodes shaped as `{ key, data, children? }`.
81
+
82
+ ```tsx
83
+ import { DataTable } from 'primereact/datatable';
84
+ ```
85
+
86
+ ```tsx
87
+ <DataTable.Root data={nodes} dataKey="key" treeMode>
88
+ <DataTable.TableContainer>
89
+ <DataTable.Table>
90
+ <DataTable.THead>
91
+ <DataTable.THeadRow>
92
+ <DataTable.THeadCell>Name</DataTable.THeadCell>
93
+ <DataTable.THeadCell>Size</DataTable.THeadCell>
94
+ </DataTable.THeadRow>
95
+ </DataTable.THead>
96
+ <DataTable.TBody>
97
+ {({ item }) => (
98
+ <DataTable.Row>
99
+ <DataTable.Cell>
100
+ <DataTable.RowToggle>
101
+ <DataTable.RowToggleIndicator match="expanded">▼</DataTable.RowToggleIndicator>
102
+ <DataTable.RowToggleIndicator match="collapsed">▶</DataTable.RowToggleIndicator>
103
+ </DataTable.RowToggle>
104
+ <span>{item.name}</span>
105
+ </DataTable.Cell>
106
+ <DataTable.Cell>{item.size}</DataTable.Cell>
107
+ </DataTable.Row>
108
+ )}
109
+ </DataTable.TBody>
110
+ </DataTable.Table>
111
+ </DataTable.TableContainer>
112
+ </DataTable.Root>
113
+ ```
114
+
115
+ ## Behavior
116
+
117
+ ### Controlled Expansion
118
+
119
+ Pass `expandedKeys` and `onExpandedChange` to drive expansion from outside state.
120
+
121
+ ```tsx
122
+ const [expandedKeys, setExpandedKeys] = React.useState<Record<string, boolean>>({ '0': true });
123
+
124
+ <DataTable.Root data={nodes} dataKey="key" treeMode expandedKeys={expandedKeys} onExpandedChange={(e) => setExpandedKeys(e.value)}>
125
+ {/* … */}
126
+ </DataTable.Root>;
127
+ ```
128
+
129
+ ### Filter, Sort, Paginate
130
+
131
+ Use the same `filters` / `globalFilter` / `sortField` / `paginator` props as on a flat table, the underlying hook re-runs them tree-aware.
132
+
133
+ ```tsx
134
+ <DataTable.Root
135
+ data={nodes}
136
+ dataKey="key"
137
+ treeMode
138
+ paginator
139
+ rows={10}
140
+ filters={filters}
141
+ onFilter={(e) => setFilters(e.filters)}
142
+ globalFilter={search}
143
+ globalFilterFields={['name', 'type']}
144
+ sortField={sortField}
145
+ sortOrder={sortOrder}
146
+ onSortChange={(e) => {
147
+ setSortField(e.field);
148
+ setSortOrder(e.order);
149
+ }}
150
+ >
151
+ {/* same THead / TBody markup as a flat DataTable */}
152
+ </DataTable.Root>
153
+ ```
154
+
155
+ ### Selection
156
+
157
+ Selection cascades through descendants in tree mode. Use `Selection.isPartiallySelected` from the slot context to render an indeterminate state on parent nodes that have only some children selected.
158
+
159
+ ```tsx
160
+ <DataTable.Selection>{({ isSelected, isPartiallySelected, toggle }) => <Checkbox checked={isSelected} indeterminate={isPartiallySelected} onCheckedChange={toggle} />}</DataTable.Selection>
161
+ ```
162
+
163
+ ### Editing
164
+
165
+ Cell and row editing both work in tree mode without changes. The cell editor pins to the underlying row by `key`, so edits stay attached to the correct node when sort, filter, or expand/collapse reshuffles the flat order.
166
+
167
+ ## Components
168
+
169
+ `TreeTable` renders the same compound component surface as `DataTable`. See the full [DataTable component reference](/docs/primitive/components/datatable#api) for every available sub-component, data attribute, and pass-through.
170
+
171
+ ## Accessibility
172
+
173
+ ### Screen Reader
174
+
175
+ When `treeMode` is enabled, `DataTable.Table` applies `role="treegrid"`. Each row exposes `aria-level` (one-based depth), `aria-expanded` when it has children, and `aria-posinset` / `aria-setsize` for screen-reader navigation between siblings. Expander buttons emit `aria-expanded` and a descriptive `aria-label` (`"Expand row"` / `"Collapse row"`).
176
+
177
+ ### Keyboard Support
178
+
179
+ | Key | Function |
180
+ | ------------------------- | ------------------------------------------------------------------------------------------- |
181
+ | `tab` | Moves focus through interactive elements (sort triggers, filter inputs, rows). |
182
+ | `arrow up` / `arrow down` | Moves focus between rows when a row is focused. |
183
+ | `arrow left` | Collapses the focused row, or moves focus to its parent if already collapsed. |
184
+ | `arrow right` | Expands the focused row, or moves focus to its first child if already expanded. |
185
+ | `home` / `end` | Moves focus to the first / last visible row. |
186
+ | `space` | Toggles selection on the focused row. |
187
+ | `enter` | Toggles expansion on the focused row, or opens the first editable cell in `cell` edit mode. |
@@ -0,0 +1,186 @@
1
+ [
2
+ {
3
+ "name": "VisuallyHidden",
4
+ "source": "apps/showcase/assets/apidoc/visuallyhidden.json",
5
+ "data": {
6
+ "description": "VisuallyHidden component hides content visually while keeping it accessible to screen readers.",
7
+ "interfaces": {
8
+ "VisuallyHiddenOwnProps": {
9
+ "description": "Defines valid properties in VisuallyHidden component.",
10
+ "relatedProp": "",
11
+ "props": [
12
+ {
13
+ "name": "focusable",
14
+ "type": "boolean",
15
+ "default": "false",
16
+ "description": "When enabled, the element can receive focus via keyboard navigation."
17
+ }
18
+ ],
19
+ "methods": []
20
+ },
21
+ "VisuallyHiddenPassThrough": {
22
+ "description": "Defines passthrough(pt) options of VisuallyHidden component.",
23
+ "relatedProp": "",
24
+ "props": [
25
+ {
26
+ "name": "root",
27
+ "type": "VisuallyHiddenPassThroughType<HTMLAttributes<HTMLSpanElement>>",
28
+ "default": "",
29
+ "description": "Used to pass attributes to the root's DOM element."
30
+ }
31
+ ],
32
+ "methods": []
33
+ },
34
+ "VisuallyHiddenProps": {
35
+ "description": "Defines valid properties in VisuallyHidden component.",
36
+ "relatedProp": "",
37
+ "extendedTypes": "BaseComponentProps<VisuallyHiddenInstance, VisuallyHiddenOwnProps, VisuallyHiddenPassThrough>",
38
+ "props": [
39
+ {
40
+ "name": "ref",
41
+ "type": "Ref<unknown>",
42
+ "default": "",
43
+ "description": "The reference to the component instance."
44
+ },
45
+ {
46
+ "name": "pIf",
47
+ "type": "boolean",
48
+ "default": "true",
49
+ "description": "Whether the component should be rendered."
50
+ },
51
+ {
52
+ "name": "style",
53
+ "type": "CSSProperties | ((instance?: VisuallyHiddenInstance) => CSSProperties)",
54
+ "default": "",
55
+ "description": "The style to apply to the component."
56
+ },
57
+ {
58
+ "name": "className",
59
+ "type": "string | ((instance?: VisuallyHiddenInstance) => string)",
60
+ "default": "",
61
+ "description": "The class name to apply to the component."
62
+ },
63
+ {
64
+ "name": "as",
65
+ "type": "string | number | bigint | boolean | ComponentClass<any, any> | FunctionComponent<any> | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode, any, any> | ReactPortal | Promise<AwaitedReactNode>",
66
+ "default": "",
67
+ "description": "The component type to render."
68
+ },
69
+ {
70
+ "name": "asChild",
71
+ "type": "boolean",
72
+ "default": "false",
73
+ "description": "Whether the component should be rendered as a child component."
74
+ },
75
+ {
76
+ "name": "instance",
77
+ "type": "VisuallyHiddenInstance",
78
+ "default": "",
79
+ "description": "The instance to pass to the component."
80
+ },
81
+ {
82
+ "name": "pt",
83
+ "type": "SafeRecord<VisuallyHiddenPassThrough>",
84
+ "default": "",
85
+ "description": "The pass-through props to pass to the component."
86
+ },
87
+ {
88
+ "name": "ptOptions",
89
+ "type": "PassThroughOptions",
90
+ "default": "",
91
+ "description": "The pass-through options to pass to the component."
92
+ },
93
+ {
94
+ "name": "unstyled",
95
+ "type": "boolean",
96
+ "default": "",
97
+ "description": "Whether the component should be rendered without classes."
98
+ },
99
+ {
100
+ "name": "dt",
101
+ "type": "unknown",
102
+ "default": "",
103
+ "description": "The design token to use for the component."
104
+ },
105
+ {
106
+ "name": "styles",
107
+ "type": "StylesOptions<ComponentInstance>",
108
+ "default": "",
109
+ "description": "The styles to use for the component."
110
+ },
111
+ {
112
+ "name": "render",
113
+ "type": "(instance: VisuallyHiddenInstance) => ReactNode",
114
+ "default": "",
115
+ "description": "The render function to render the component with instance access."
116
+ },
117
+ {
118
+ "name": "children",
119
+ "type": "any",
120
+ "default": "",
121
+ "description": "The children to render.\n\nAccepts `React.ReactNode` for static content or a render function `(instance: I) => React.ReactNode` for instance access.\nTyped as `any` to avoid JSX type errors when used directly in templates."
122
+ },
123
+ {
124
+ "name": "focusable",
125
+ "type": "boolean",
126
+ "default": "false",
127
+ "description": "When enabled, the element can receive focus via keyboard navigation."
128
+ },
129
+ {
130
+ "name": "[key: string]",
131
+ "type": "any",
132
+ "description": ""
133
+ },
134
+ {
135
+ "name": "pt-{optionName}-*",
136
+ "type": "-",
137
+ "default": "",
138
+ "description": "Pass through attributes for customizing component parts.",
139
+ "deprecated": false
140
+ }
141
+ ],
142
+ "methods": []
143
+ },
144
+ "VisuallyHiddenState": {
145
+ "description": "Defines valid state in VisuallyHidden component.",
146
+ "relatedProp": "",
147
+ "props": [],
148
+ "methods": []
149
+ },
150
+ "VisuallyHiddenExposes": {
151
+ "description": "Defines the methods and properties exposed by VisuallyHidden component.",
152
+ "relatedProp": "",
153
+ "props": [],
154
+ "methods": []
155
+ }
156
+ },
157
+ "types": {
158
+ "VisuallyHiddenPassThroughType": {
159
+ "description": "Defines passthrough(pt) options type in VisuallyHidden component.",
160
+ "values": "PassThroughType<VisuallyHiddenInstance, E>"
161
+ },
162
+ "VisuallyHiddenClassNamesType": {
163
+ "description": "Type representing the CSS class names used in the VisuallyHidden component.",
164
+ "values": "typeof VisuallyHiddenClassNames[keyof typeof VisuallyHiddenClassNames]"
165
+ },
166
+ "VisuallyHiddenInstance": {
167
+ "description": "Instance of VisuallyHidden component.",
168
+ "values": "ComponentInstance<VisuallyHiddenProps, VisuallyHiddenState, VisuallyHiddenExposes>"
169
+ }
170
+ },
171
+ "variables": {
172
+ "VisuallyHiddenClassNames": {
173
+ "description": "Defines the CSS class names used in the VisuallyHidden component.",
174
+ "variables": [
175
+ {
176
+ "name": "root",
177
+ "value": "p-visuallyhidden",
178
+ "optional": false,
179
+ "readonly": true
180
+ }
181
+ ]
182
+ }
183
+ }
184
+ }
185
+ }
186
+ ]