@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,258 @@
1
+ # useDataTable
2
+
3
+ Hook that manages tabular data with sort, filter, pagination, selection, expansion, editing, column/row reorder, resize, and tree-mode flattening.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { ProductService, type Product } from '@/shared/services/product.service';
8
+ import { useDataTable, useDataTableRow } from '@primereact/headless/datatable';
9
+ import * as React from 'react';
10
+
11
+ interface RowProps {
12
+ item: Record<string, unknown>;
13
+ index: number;
14
+ context: ReturnType<typeof useDataTable>;
15
+ }
16
+
17
+ function Row({ item, index, context }: RowProps) {
18
+ const { rowProps } = useDataTableRow({ item, index, context });
19
+ const product = item as unknown as Product;
20
+
21
+ return (
22
+ <tr {...rowProps} style={{ borderBottom: '1px solid var(--p-content-border-color)' }}>
23
+ <td style={cellStyle}>{product.code}</td>
24
+ <td style={cellStyle}>{product.name}</td>
25
+ <td style={cellStyle}>{product.category}</td>
26
+ <td style={cellStyle}>${product.price}</td>
27
+ </tr>
28
+ );
29
+ }
30
+
31
+ const cellStyle: React.CSSProperties = { padding: '0.5rem 0.75rem' };
32
+ const headStyle: React.CSSProperties = { ...cellStyle, textAlign: 'left', fontWeight: 600, borderBottom: '1px solid var(--p-content-border-color)' };
33
+
34
+ export default function BasicDemo() {
35
+ const [products, setProducts] = React.useState<Product[]>([]);
36
+
37
+ React.useEffect(() => {
38
+ setProducts(ProductService.getProductsData().slice(0, 6));
39
+ }, []);
40
+
41
+ const dt = useDataTable({ data: products as unknown as Record<string, unknown>[], dataKey: 'id' });
42
+ const rows = dt.state.paginatedData ?? dt.state.processedData ?? [];
43
+
44
+ return (
45
+ <div {...dt.rootProps} style={{ width: '100%' }}>
46
+ <div {...dt.tableContainerProps}>
47
+ <table {...dt.tableProps} style={{ width: '100%', borderCollapse: 'collapse' }}>
48
+ <thead>
49
+ <tr>
50
+ <th style={headStyle}>Code</th>
51
+ <th style={headStyle}>Name</th>
52
+ <th style={headStyle}>Category</th>
53
+ <th style={headStyle}>Price</th>
54
+ </tr>
55
+ </thead>
56
+ <tbody>
57
+ {rows.map((item, index) => (
58
+ <Row key={dt.getRowKey(item, index)} item={item} index={index} context={dt} />
59
+ ))}
60
+ </tbody>
61
+ </table>
62
+ </div>
63
+ </div>
64
+ );
65
+ }
66
+ ```
67
+
68
+ ## Usage
69
+
70
+ ```tsx
71
+ import { useDataTable } from '@primereact/headless/datatable';
72
+ ```
73
+
74
+ ```tsx
75
+ const dt = useDataTable({ data, dataKey: 'id' });
76
+ const { state, rootProps, tableContainerProps, tableProps, getRowKey, sort, selection, pagination, expansion, filter, editing, columnReorder, columnResize, rowReorder, exportData, keyboard } = dt;
77
+ ```
78
+
79
+ `useDataTable` is a single composite hook: every feature (sort, filter, pagination, selection, expansion, editing, etc.) is composed inside it and exposed under a namespaced key. See [Primitive](/docs/primitive/components/datatable) for a component-based API.
80
+
81
+ ## Features
82
+
83
+ - **Sort**, single, multi, and removable tri-state via `sortField`, `sortOrder`, and `multiSortMeta`
84
+ - **Filter**, row and menu filters per column with multiple constraints and AND/OR operators, plus a global filter across selected fields
85
+ - **Pagination**, built-in slicing or lazy mode with `totalRecords` and `onLazyLoad`
86
+ - **Selection**, single, multiple (checkbox or row), radio, Shift-range, Ctrl/Meta additive, and indeterminate parents in tree mode
87
+ - **Expansion**, flat row expanders or tree-mode flattening; rows are stamped with `_treeLevel`, `_treeHasChildren`, `_treePosInSet`, `_treeSetSize`
88
+ - **Editing**, `cell` and `row` modes; `editingKeys` and `editingCell` can be controlled, save and cancel events fire as expected
89
+ - **Column reorder & resize**, drag-and-drop reorder, `fit` or `expand` resize, with hooks for both indicators
90
+ - **Row reorder**, drag-and-drop driven from a row handle
91
+ - **Grouping**, group metadata map keyed by row index for grouped headers and row spans
92
+ - **Tree mode**, the same API works on hierarchical data; sort, filter, pagination, and selection all operate tree-aware
93
+ - **CSV export**, export visible, selected, or all rows with custom fields and headers
94
+ - **Keyboard navigation**, arrows (with Shift to extend selection), Home / End, Arrow Left / Right to collapse / expand a tree row, Enter or Space to select, Enter on a row to open the first editable cell
95
+
96
+ ## Working with callbacks
97
+
98
+ ### Controlled selection
99
+
100
+ Pass `selectionKeys` and `onSelectionChange` to drive the selection from outside state.
101
+
102
+ ```tsx
103
+ const [selectionKeys, setSelectionKeys] = React.useState({});
104
+
105
+ const dt = useDataTable({
106
+ data,
107
+ dataKey: 'id',
108
+ selectionMode: 'multiple',
109
+ selectionKeys,
110
+ onSelectionChange: (e) => setSelectionKeys(e.value)
111
+ });
112
+ ```
113
+
114
+ ### Controlled sort
115
+
116
+ Mix single and multi-sort by reading both `sortField` / `sortOrder` and `multiSortMeta` from state.
117
+
118
+ ```tsx
119
+ const [sortField, setSortField] = React.useState<string>();
120
+ const [sortOrder, setSortOrder] = React.useState<1 | -1 | 0>();
121
+
122
+ const dt = useDataTable({
123
+ data,
124
+ sortField,
125
+ sortOrder,
126
+ onSortChange: (e) => {
127
+ setSortField(e.field);
128
+ setSortOrder(e.order);
129
+ }
130
+ });
131
+ ```
132
+
133
+ ### Controlled filter
134
+
135
+ Filters are a record of `{ value, matchMode, constraints?, operator? }`. Both the per-column metadata and the global filter are debounceable via `filterDelay`.
136
+
137
+ ```tsx
138
+ const [filters, setFilters] = React.useState({
139
+ name: { value: null, matchMode: 'contains' },
140
+ price: { value: null, matchMode: 'gte' }
141
+ });
142
+ const [globalFilter, setGlobalFilter] = React.useState('');
143
+
144
+ const dt = useDataTable({
145
+ data,
146
+ filters,
147
+ onFilter: (e) => setFilters(e.filters),
148
+ globalFilter,
149
+ globalFilterFields: ['name', 'category'],
150
+ filterDelay: 200
151
+ });
152
+ ```
153
+
154
+ ### Lazy loading
155
+
156
+ In lazy mode the consumer drives data fetching. The hook returns the data as-is and emits `onLazyLoad` whenever page, sort, or filter state changes.
157
+
158
+ ```tsx
159
+ const dt = useDataTable({
160
+ data,
161
+ lazy: true,
162
+ paginator: true,
163
+ totalRecords,
164
+ onLazyLoad: (e) => fetchPage(e)
165
+ });
166
+ ```
167
+
168
+ ### Tree mode
169
+
170
+ Pass nodes with `key`, `data`, and optional `children`; flip `treeMode`. The hook flattens visible nodes (respecting `expandedKeys`), and stamps each row with `_treeLevel`, `_treeHasChildren`, `_treePosInSet`, `_treeSetSize` so the renderer can draw indentation, expanders, and ARIA `aria-level` / `aria-posinset`.
171
+
172
+ ```tsx
173
+ const dt = useDataTable({
174
+ data: nodes,
175
+ treeMode: true,
176
+ dataKey: 'key',
177
+ expandedKeys,
178
+ onExpandedChange: (e) => setExpandedKeys(e.value)
179
+ });
180
+ ```
181
+
182
+ ### Cell and row editing
183
+
184
+ ```tsx
185
+ const dt = useDataTable({
186
+ data,
187
+ editMode: 'cell',
188
+ onCellEditComplete: (e) => {
189
+ // mutate `data` based on `e.rowData`, `e.field`, `e.newValue`, and call `e.preventDefault()` to keep the cell open
190
+ }
191
+ });
192
+ ```
193
+
194
+ Switch to `editMode="row"` and use `onRowEditSave` / `onRowEditCancel` for whole-row commits.
195
+
196
+ ## Per-row state with useDataTableRow
197
+
198
+ For hooking up a single `<tr>` to selection / expansion / reorder / editing, pair `useDataTable` with `useDataTableRow`. It returns a single `rowProps` getter pre-wired with `role`, `aria-rowindex`, click / key handlers, drag handlers when reorder is active, plus tree-mode ARIA (`aria-level`, `aria-expanded`, `aria-posinset`, `aria-setsize`).
199
+
200
+ ```tsx
201
+ import { useDataTable, useDataTableRow } from '@primereact/headless/datatable';
202
+
203
+ const dt = useDataTable({ data, dataKey: 'id', selectionMode: 'multiple' });
204
+
205
+ function Row({ item, index }) {
206
+ const row = useDataTableRow({ item, index, context: dt });
207
+
208
+ return <tr {...row.rowProps}>{/* cells */}</tr>;
209
+ }
210
+ ```
211
+
212
+ ## Styling with data attributes
213
+
214
+ Every part exposes its state through `data-*` attributes, drive your CSS from those instead of class toggles.
215
+
216
+ | Scope | Part | States |
217
+ | ----------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
218
+ | `datatable` | `root` | `data-loading`, `data-row-hover`, `data-highlight-on-select`, `data-selection-mode`, `data-size`, `data-striped-rows`, `data-show-gridlines` |
219
+ | `datatable` | `table-container` | |
220
+ | `datatable` | `table` | |
221
+ | `datatable` | `row` | `data-index`, `data-selected`, `data-drag-source`, `data-dragpoint-top`, `data-dragpoint-bottom` |
222
+ | `datatable` | `sort` | `data-sorted`, `data-unsorted`, `data-sort-order` (`asc` / `desc`) |
223
+ | `datatable` | `filter` | `data-display` (`row` / `menu`), `data-active` |
224
+ | `datatable` | `cell-editor` | `data-row-index`, `data-field`, `data-row-key`, `data-editing` |
225
+ | `datatable` | `row-toggle` | `data-tree-level`, `aria-expanded` |
226
+ | `datatable` | `column-resizer` | |
227
+
228
+ ```css
229
+ [data-scope='datatable'][data-part='row'][data-selected] {
230
+ background: var(--p-primary-50);
231
+ }
232
+
233
+ [data-scope='datatable'][data-part='sort'][data-sort-order='asc']::after {
234
+ content: '↑';
235
+ }
236
+
237
+ [data-scope='datatable'][data-part='cell-editor'][data-editing] {
238
+ outline: 2px solid var(--p-primary-color);
239
+ }
240
+
241
+ [data-scope='datatable'][data-part='row'][data-dragpoint-top] {
242
+ box-shadow: 0 -2px 0 var(--p-primary-color) inset;
243
+ }
244
+ ```
245
+
246
+ ## API
247
+
248
+ ### useDataTable
249
+
250
+ <DocTable name="useDataTable" category="api" />
251
+
252
+ ### useDataTableRow
253
+
254
+ <DocTable name="useDataTableRow" category="api" />
255
+
256
+ ## Accessibility
257
+
258
+ `role="table"` is applied for flat data and `role="treegrid"` when `treeMode` is enabled. Each row exposes `aria-rowindex` (1-based) and, in tree mode, `aria-level`, `aria-expanded`, `aria-posinset`, and `aria-setsize`. Sort triggers expose `role="button"`, `aria-sort`, and a descriptive `aria-label`. Cell-edit wrappers tag their `<td>` with `data-editable-cell` so Tab traversal can find and focus the next editable cell. See [Primitive](/docs/primitive/components/datatable#accessibility) for full WAI-ARIA compliance details.
@@ -0,0 +1,199 @@
1
+ [
2
+ {
3
+ "name": "useDataView",
4
+ "source": "apps/showcase/assets/apidoc/usedataview.json",
5
+ "data": {
6
+ "description": "The useDataView manages the state and functionality of a dataview component.",
7
+ "interfaces": {
8
+ "UseDataViewLayoutChangeEvent": {
9
+ "description": "Defines the event object for layout change events.",
10
+ "relatedProp": "",
11
+ "props": [
12
+ {
13
+ "name": "originalEvent",
14
+ "type": "SyntheticEvent<Element, Event>",
15
+ "default": "",
16
+ "description": "Browser event that triggered the layout change."
17
+ },
18
+ {
19
+ "name": "value",
20
+ "type": "string",
21
+ "default": "",
22
+ "description": "The new layout value."
23
+ }
24
+ ],
25
+ "methods": []
26
+ },
27
+ "UseDataViewProps": {
28
+ "description": "Defines valid properties in useDataView.",
29
+ "relatedProp": "",
30
+ "props": [
31
+ {
32
+ "name": "layout",
33
+ "type": "string",
34
+ "default": "",
35
+ "description": "The controlled layout value."
36
+ },
37
+ {
38
+ "name": "defaultLayout",
39
+ "type": "string",
40
+ "default": "",
41
+ "description": "The default layout value for uncontrolled mode."
42
+ },
43
+ {
44
+ "name": "onLayoutChange",
45
+ "type": "(event: UseDataViewLayoutChangeEvent) => void",
46
+ "default": "",
47
+ "description": "Callback invoked when the layout changes."
48
+ }
49
+ ],
50
+ "methods": []
51
+ },
52
+ "UseDataViewState": {
53
+ "description": "Defines valid state in useDataView.",
54
+ "relatedProp": "",
55
+ "props": [
56
+ {
57
+ "name": "layout",
58
+ "type": "string",
59
+ "default": "",
60
+ "description": "The current layout value."
61
+ }
62
+ ],
63
+ "methods": []
64
+ },
65
+ "UseDataViewRootProps": {
66
+ "description": "Data attribute props for the DataView root element.",
67
+ "relatedProp": "",
68
+ "props": [
69
+ {
70
+ "name": "data-layout",
71
+ "type": "string",
72
+ "default": "",
73
+ "description": "The current layout mode of the data view."
74
+ }
75
+ ],
76
+ "methods": []
77
+ },
78
+ "UseDataViewContentProps": {
79
+ "description": "Data attribute props for the DataView content element.",
80
+ "relatedProp": "",
81
+ "props": [
82
+ {
83
+ "name": "data-scope",
84
+ "type": "\"dataview\"",
85
+ "default": ""
86
+ },
87
+ {
88
+ "name": "data-part",
89
+ "type": "\"content\"",
90
+ "default": ""
91
+ }
92
+ ],
93
+ "methods": []
94
+ },
95
+ "UseDataViewHeaderProps": {
96
+ "description": "Data attribute props for the DataView header element.",
97
+ "relatedProp": "",
98
+ "props": [
99
+ {
100
+ "name": "data-scope",
101
+ "type": "\"dataview\"",
102
+ "default": ""
103
+ },
104
+ {
105
+ "name": "data-part",
106
+ "type": "\"header\"",
107
+ "default": ""
108
+ }
109
+ ],
110
+ "methods": []
111
+ },
112
+ "UseDataViewFooterProps": {
113
+ "description": "Data attribute props for the DataView footer element.",
114
+ "relatedProp": "",
115
+ "props": [
116
+ {
117
+ "name": "data-scope",
118
+ "type": "\"dataview\"",
119
+ "default": ""
120
+ },
121
+ {
122
+ "name": "data-part",
123
+ "type": "\"footer\"",
124
+ "default": ""
125
+ }
126
+ ],
127
+ "methods": []
128
+ },
129
+ "UseDataViewEmptyProps": {
130
+ "description": "Data attribute props for the DataView empty element.",
131
+ "relatedProp": "",
132
+ "props": [
133
+ {
134
+ "name": "data-scope",
135
+ "type": "\"dataview\"",
136
+ "default": ""
137
+ },
138
+ {
139
+ "name": "data-part",
140
+ "type": "\"empty\"",
141
+ "default": ""
142
+ }
143
+ ],
144
+ "methods": []
145
+ },
146
+ "UseDataViewExposes": {
147
+ "description": "Defines the methods and properties exposed by useDataView.",
148
+ "relatedProp": "",
149
+ "props": [
150
+ {
151
+ "name": "sort",
152
+ "type": "(value: unknown[], sortField: string, sortOrder: number) => unknown[]",
153
+ "default": "",
154
+ "description": "Sorts the data based on the specified field and order."
155
+ },
156
+ {
157
+ "name": "rootProps",
158
+ "type": "UseDataViewRootProps",
159
+ "default": "",
160
+ "description": "Pre-built data attribute props for the root element.\nIncludes data-scope, data-part, and data-layout."
161
+ },
162
+ {
163
+ "name": "contentProps",
164
+ "type": "UseDataViewContentProps",
165
+ "default": "",
166
+ "description": "Pre-built data attribute props for the content element."
167
+ },
168
+ {
169
+ "name": "headerProps",
170
+ "type": "UseDataViewHeaderProps",
171
+ "default": "",
172
+ "description": "Pre-built data attribute props for the header element."
173
+ },
174
+ {
175
+ "name": "footerProps",
176
+ "type": "UseDataViewFooterProps",
177
+ "default": "",
178
+ "description": "Pre-built data attribute props for the footer element."
179
+ },
180
+ {
181
+ "name": "emptyProps",
182
+ "type": "UseDataViewEmptyProps",
183
+ "default": "",
184
+ "description": "Pre-built data attribute props for the empty element."
185
+ }
186
+ ],
187
+ "methods": []
188
+ }
189
+ },
190
+ "types": {
191
+ "UseDataViewInstance": {
192
+ "description": "Instance of useDataView headless.",
193
+ "values": "HeadlessInstance<UseDataViewProps, UseDataViewState, UseDataViewExposes>"
194
+ }
195
+ },
196
+ "variables": {}
197
+ }
198
+ }
199
+ ]
@@ -0,0 +1,147 @@
1
+ # useDataView
2
+
3
+ Hook that manages layout state and provides a locale-aware sort utility for data presentation.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { useDataView } from '@primereact/headless/dataview';
8
+
9
+ const products = [
10
+ { name: 'Bamboo Watch', category: 'Accessories', price: 65 },
11
+ { name: 'Black Watch', category: 'Accessories', price: 72 },
12
+ { name: 'Blue Band', category: 'Fitness', price: 79 },
13
+ { name: 'Blue T-Shirt', category: 'Clothing', price: 29 },
14
+ { name: 'Gaming Set', category: 'Electronics', price: 299 }
15
+ ];
16
+
17
+ export default function BasicDemo() {
18
+ const { rootProps, contentProps, headerProps, emptyProps, state } = useDataView({ defaultLayout: 'list' });
19
+
20
+ return (
21
+ <div {...rootProps} className="border border-surface-200 dark:border-surface-700 rounded-lg overflow-hidden">
22
+ <div {...headerProps} className="px-4 py-3 bg-surface-50 dark:bg-surface-800 border-b border-surface-200 dark:border-surface-700">
23
+ <span className="text-sm font-medium text-surface-600 dark:text-surface-300">
24
+ {products.length} products &middot; {state.layout} view
25
+ </span>
26
+ </div>
27
+ <div {...contentProps}>
28
+ {products.length > 0 ? (
29
+ <div className="flex flex-col divide-y divide-surface-200 dark:divide-surface-700">
30
+ {products.map((product) => (
31
+ <div key={product.name} className="flex items-center justify-between px-4 py-3">
32
+ <div>
33
+ <div className="text-sm font-medium text-surface-700 dark:text-surface-0">{product.name}</div>
34
+ <div className="text-xs text-surface-500 dark:text-surface-400 mt-0.5">{product.category}</div>
35
+ </div>
36
+ <span className="text-sm font-semibold text-surface-700 dark:text-surface-0">${product.price}</span>
37
+ </div>
38
+ ))}
39
+ </div>
40
+ ) : (
41
+ <div {...emptyProps} className="px-4 py-8 text-center text-sm text-surface-500 dark:text-surface-400">
42
+ No products found.
43
+ </div>
44
+ )}
45
+ </div>
46
+ </div>
47
+ );
48
+ }
49
+ ```
50
+
51
+ ## Usage
52
+
53
+ ```tsx
54
+ import { useDataView } from '@primereact/headless/dataview';
55
+ ```
56
+
57
+ ```tsx
58
+ const { rootProps, contentProps, headerProps, footerProps, emptyProps, state, sort } = useDataView();
59
+
60
+ <div {...rootProps}>
61
+ <div {...headerProps}></div>
62
+ <div {...contentProps}></div>
63
+ <div {...footerProps}></div>
64
+ </div>;
65
+ ```
66
+
67
+ `useDataView` manages layout switching and provides a locale-aware sort utility. See [Primitive](/docs/primitive/components/dataview) for a component-based API.
68
+
69
+ ## Features
70
+
71
+ - **Layout state**, tracks the active layout (`list` or `grid`) and reflects it via `data-layout` on the root
72
+ - **Controlled or uncontrolled**, drive layout from external state or let the hook manage it internally
73
+ - **Locale-aware sort**, built-in `sort(data, field, order)` uses `localeCompare` for strings and numeric compare for numbers
74
+ - **Section prop objects**, ready-to-spread props for root, content, header, footer, and empty sections with scoped data attributes
75
+
76
+ ## Working with callbacks
77
+
78
+ ### Reacting to layout changes
79
+
80
+ Pass `onLayoutChange` to respond when the layout switches, useful for persisting preferences or re-rendering with a different item template.
81
+
82
+ ```tsx
83
+ const { state } = useDataView({
84
+ defaultLayout: 'grid',
85
+ onLayoutChange: (e) => localStorage.setItem('dv-layout', e.value)
86
+ });
87
+ ```
88
+
89
+ ### Controlled layout
90
+
91
+ Pair `layout` with `onLayoutChange` when the layout must be driven by parent state or URL search params.
92
+
93
+ ```tsx
94
+ const [layout, setLayout] = React.useState('list');
95
+
96
+ const dataview = useDataView({
97
+ layout,
98
+ onLayoutChange: (e) => setLayout(e.value)
99
+ });
100
+ ```
101
+
102
+ ### Sorting a dataset
103
+
104
+ Use the returned `sort` method to get a new array without mutating the original. Order `1` is ascending, `-1` descending.
105
+
106
+ ```tsx
107
+ const { sort } = useDataView();
108
+
109
+ const asc = sort(products, 'price', 1);
110
+ const desc = sort(products, 'price', -1);
111
+ ```
112
+
113
+ ### Rendering per layout
114
+
115
+ Read `state.layout` to branch between list and grid templates in the content slot.
116
+
117
+ ```tsx
118
+ const { state, contentProps } = useDataView({ defaultLayout: 'grid' });
119
+
120
+ <div {...contentProps}>{state.layout === 'grid' ? products.map((p) => <Card key={p.id} product={p} />) : products.map((p) => <Row key={p.id} product={p} />)}</div>;
121
+ ```
122
+
123
+ ## Styling with data attributes
124
+
125
+ The prop objects carry `data-scope="dataview"` and a `data-part` for each section. The root also exposes the active layout via `data-layout`.
126
+
127
+ ```css
128
+ [data-scope='dataview'][data-part='root'] {
129
+ border: 1px solid #e5e7eb;
130
+ border-radius: 0.5rem;
131
+ }
132
+
133
+ [data-scope='dataview'][data-layout='grid'] [data-part='content'] {
134
+ display: grid;
135
+ grid-template-columns: repeat(3, 1fr);
136
+ }
137
+ ```
138
+
139
+ ## API
140
+
141
+ ### useDataView
142
+
143
+ <DocTable name="useDataView" category="api" />
144
+
145
+ ## Accessibility
146
+
147
+ Arrow keys navigate items when selectable, and Enter activates the focused item. See [Primitive](/docs/primitive/components/dataview#accessibility) for full WAI-ARIA compliance details.