@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,864 @@
1
+ # DataView
2
+
3
+ DataView displays data in grid or list layout with pagination and sorting features.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { Button } from '@/components/ui/button';
8
+ import { DataView, DataViewContent } from '@/components/ui/dataview';
9
+ import { Tag } from '@/components/ui/tag';
10
+ import { ProductService } from '@/shared/services/product.service';
11
+ import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
12
+ import Image from 'next/image';
13
+ import * as React from 'react';
14
+
15
+ interface Product {
16
+ id: string;
17
+ code: string;
18
+ name: string;
19
+ description: string;
20
+ image: string;
21
+ price: number;
22
+ category: string;
23
+ quantity: number;
24
+ inventoryStatus: string;
25
+ rating: number;
26
+ }
27
+
28
+ export default function Preview() {
29
+ const [products, setProducts] = React.useState<Product[]>([]);
30
+
31
+ React.useEffect(() => {
32
+ ProductService.getProductsSmall().then((data) => setProducts(data.slice(0, 5)));
33
+ }, []);
34
+
35
+ const getSeverity = (product: Product) => {
36
+ switch (product.inventoryStatus) {
37
+ case 'INSTOCK':
38
+ return 'success';
39
+
40
+ case 'LOWSTOCK':
41
+ return 'warn';
42
+
43
+ case 'OUTOFSTOCK':
44
+ return 'danger';
45
+
46
+ default:
47
+ return undefined;
48
+ }
49
+ };
50
+
51
+ return (
52
+ <div>
53
+ <DataView>
54
+ <DataViewContent>
55
+ <div className="flex flex-col">
56
+ {products.map((product, index) => (
57
+ <div
58
+ key={index}
59
+ className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
60
+ >
61
+ <div className="md:w-40 relative">
62
+ <Image
63
+ className="mx-auto rounded w-full"
64
+ src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
65
+ alt={product.name}
66
+ width={160}
67
+ height={160}
68
+ />
69
+ <Tag severity={getSeverity(product)} className="absolute top-1 left-1">
70
+ {product.inventoryStatus}
71
+ </Tag>
72
+ </div>
73
+ <div className="flex flex-col md:flex-row justify-between md:items-center flex-1 gap-6">
74
+ <div className="flex flex-row md:flex-col justify-between items-start gap-2">
75
+ <div>
76
+ <span className="font-medium text-surface-500 dark:text-surface-400 text-sm">{product.category}</span>
77
+ <div className="text-lg font-medium mt-2">{product.name}</div>
78
+ </div>
79
+ <div className="bg-surface-100 p-1" style={{ borderRadius: '30px' }}>
80
+ <div
81
+ className="bg-surface-0 flex items-center gap-2 justify-center py-1 px-2"
82
+ style={{
83
+ borderRadius: '30px',
84
+ boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)'
85
+ }}
86
+ >
87
+ <span className="text-surface-900 font-medium text-sm">{product.rating}</span>
88
+ <StarFill className="text-yellow-500"></StarFill>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ <div className="flex flex-col md:items-end gap-8">
93
+ <span className="text-xl font-semibold">${product.price}</span>
94
+ <div className="flex flex-row-reverse md:flex-row gap-2">
95
+ <Button variant="outlined">
96
+ <Heart></Heart>
97
+ </Button>
98
+ <Button
99
+ disabled={product.inventoryStatus === 'OUTOFSTOCK'}
100
+ className="flex-auto md:flex-initial whitespace-nowrap"
101
+ >
102
+ <ShoppingCart></ShoppingCart>
103
+ Buy Now
104
+ </Button>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ ))}
110
+ </div>
111
+ </DataViewContent>
112
+ </DataView>
113
+ </div>
114
+ );
115
+ }
116
+ ```
117
+
118
+ ## Installation
119
+
120
+ <DocTabs value="CLI">
121
+ <DocTabsList>
122
+ <DocTabsTab value="CLI">Shadcn CLI</DocTabsTab>
123
+ <DocTabsTab value="Manual">Manual</DocTabsTab>
124
+ </DocTabsList>
125
+ <DocTabsPanel value="CLI">
126
+ ```bash
127
+ npx shadcn@latest add https://primereact.dev/r/dataview.json
128
+ ```
129
+ </DocTabsPanel>
130
+ <DocTabsPanel value="Manual">
131
+ Copy and paste the following code into your project
132
+ <DocSourceViewer name="components/ui/dataview" />
133
+ Update the import paths to match your project setup.
134
+ </DocTabsPanel>
135
+ </DocTabs>
136
+
137
+ ## Usage
138
+
139
+ ```tsx
140
+ import { DataView, DataViewContent, DataViewHeader, DataViewFooter, DataViewEmpty } from '@/components/ui/dataview';
141
+ ```
142
+
143
+ ```tsx
144
+ <DataView>
145
+ <DataViewHeader></DataViewHeader>
146
+ <DataViewContent></DataViewContent>
147
+ <DataViewFooter></DataViewFooter>
148
+ </DataView>
149
+ ```
150
+
151
+ ## Examples
152
+
153
+ ### Basic
154
+
155
+ Displays a list of items with support for layout switching.
156
+
157
+ ```tsx
158
+ 'use client';
159
+ import { Button } from '@/components/ui/button';
160
+ import { DataView, DataViewContent } from '@/components/ui/dataview';
161
+ import { Tag } from '@/components/ui/tag';
162
+ import { ProductService } from '@/shared/services/product.service';
163
+ import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
164
+ import Image from 'next/image';
165
+ import * as React from 'react';
166
+
167
+ interface Product {
168
+ id: string;
169
+ code: string;
170
+ name: string;
171
+ description: string;
172
+ image: string;
173
+ price: number;
174
+ category: string;
175
+ quantity: number;
176
+ inventoryStatus: string;
177
+ rating: number;
178
+ }
179
+
180
+ export default function BasicDemo() {
181
+ const [products, setProducts] = React.useState<Product[]>([]);
182
+
183
+ React.useEffect(() => {
184
+ ProductService.getProductsSmall().then((data) => setProducts(data.slice(0, 5)));
185
+ }, []);
186
+
187
+ const getSeverity = (product: Product) => {
188
+ switch (product.inventoryStatus) {
189
+ case 'INSTOCK':
190
+ return 'success';
191
+
192
+ case 'LOWSTOCK':
193
+ return 'warn';
194
+
195
+ case 'OUTOFSTOCK':
196
+ return 'danger';
197
+
198
+ default:
199
+ return undefined;
200
+ }
201
+ };
202
+
203
+ return (
204
+ <div>
205
+ <DataView>
206
+ <DataViewContent>
207
+ <div className="flex flex-col">
208
+ {products.map((product, index) => (
209
+ <div
210
+ key={index}
211
+ className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
212
+ >
213
+ <div className="md:w-40 relative">
214
+ <Image
215
+ className="mx-auto rounded w-full"
216
+ src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
217
+ alt={product.name}
218
+ width={160}
219
+ height={160}
220
+ />
221
+ <Tag severity={getSeverity(product)} className="absolute top-1 left-1">
222
+ {product.inventoryStatus}
223
+ </Tag>
224
+ </div>
225
+ <div className="flex flex-col md:flex-row justify-between md:items-center flex-1 gap-6">
226
+ <div className="flex flex-row md:flex-col justify-between items-start gap-2">
227
+ <div>
228
+ <span className="font-medium text-surface-500 dark:text-surface-400 text-sm">{product.category}</span>
229
+ <div className="text-lg font-medium mt-2">{product.name}</div>
230
+ </div>
231
+ <div className="bg-surface-100 p-1" style={{ borderRadius: '30px' }}>
232
+ <div
233
+ className="bg-surface-0 flex items-center gap-2 justify-center py-1 px-2"
234
+ style={{
235
+ borderRadius: '30px',
236
+ boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)'
237
+ }}
238
+ >
239
+ <span className="text-surface-900 font-medium text-sm">{product.rating}</span>
240
+ <StarFill className="text-yellow-500"></StarFill>
241
+ </div>
242
+ </div>
243
+ </div>
244
+ <div className="flex flex-col md:items-end gap-8">
245
+ <span className="text-xl font-semibold">${product.price}</span>
246
+ <div className="flex flex-row-reverse md:flex-row gap-2">
247
+ <Button variant="outlined">
248
+ <Heart></Heart>
249
+ </Button>
250
+ <Button
251
+ disabled={product.inventoryStatus === 'OUTOFSTOCK'}
252
+ className="flex-auto md:flex-initial whitespace-nowrap"
253
+ >
254
+ <ShoppingCart></ShoppingCart>
255
+ Buy Now
256
+ </Button>
257
+ </div>
258
+ </div>
259
+ </div>
260
+ </div>
261
+ ))}
262
+ </div>
263
+ </DataViewContent>
264
+ </DataView>
265
+ </div>
266
+ );
267
+ }
268
+ ```
269
+
270
+ ### Pagination
271
+
272
+ Use `Paginator` with `DataViewFooter` to navigate large datasets efficiently.
273
+
274
+ ```tsx
275
+ 'use client';
276
+ import { Button } from '@/components/ui/button';
277
+ import { DataView, DataViewContent, DataViewFooter } from '@/components/ui/dataview';
278
+ import { Paginator, PaginatorFirst, PaginatorLast, PaginatorNext, PaginatorPages, PaginatorPrev } from '@/components/ui/paginator';
279
+ import { Tag } from '@/components/ui/tag';
280
+ import { ProductService } from '@/shared/services/product.service';
281
+ import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
282
+ import Image from 'next/image';
283
+ import { PaginatorRootChangeEvent } from 'primereact/paginator';
284
+ import * as React from 'react';
285
+
286
+ interface Product {
287
+ id: string;
288
+ code: string;
289
+ name: string;
290
+ description: string;
291
+ image: string;
292
+ price: number;
293
+ category: string;
294
+ quantity: number;
295
+ inventoryStatus: string;
296
+ rating: number;
297
+ }
298
+
299
+ export default function PaginationDemo() {
300
+ const [products, setProducts] = React.useState<Product[]>([]);
301
+ const [page, setPage] = React.useState(1);
302
+ const itemsPerPage = 5;
303
+
304
+ React.useEffect(() => {
305
+ ProductService.getProductsSmall().then((data) => setProducts(data));
306
+ }, []);
307
+
308
+ const getSeverity = (product: Product) => {
309
+ switch (product.inventoryStatus) {
310
+ case 'INSTOCK':
311
+ return 'success';
312
+
313
+ case 'LOWSTOCK':
314
+ return 'warn';
315
+
316
+ case 'OUTOFSTOCK':
317
+ return 'danger';
318
+
319
+ default:
320
+ return undefined;
321
+ }
322
+ };
323
+
324
+ return (
325
+ <div>
326
+ <DataView>
327
+ <DataViewContent>
328
+ <div className="flex flex-col">
329
+ {products.slice((page - 1) * itemsPerPage, page * itemsPerPage).map((product, index) => (
330
+ <div
331
+ key={index}
332
+ className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
333
+ >
334
+ <div className="md:w-40 relative">
335
+ <Image
336
+ className="mx-auto rounded w-full"
337
+ src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
338
+ alt={product.name}
339
+ width={160}
340
+ height={160}
341
+ />
342
+ <Tag severity={getSeverity(product)} className="absolute top-1 left-1">
343
+ {product.inventoryStatus}
344
+ </Tag>
345
+ </div>
346
+ <div className="flex flex-col md:flex-row justify-between md:items-center flex-1 gap-6">
347
+ <div className="flex flex-row md:flex-col justify-between items-start gap-2">
348
+ <div>
349
+ <span className="font-medium text-surface-500 dark:text-surface-400 text-sm">{product.category}</span>
350
+ <div className="text-lg font-medium mt-2">{product.name}</div>
351
+ </div>
352
+ <div className="bg-surface-100 p-1" style={{ borderRadius: '30px' }}>
353
+ <div
354
+ className="bg-surface-0 flex items-center gap-2 justify-center py-1 px-2"
355
+ style={{
356
+ borderRadius: '30px',
357
+ boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)'
358
+ }}
359
+ >
360
+ <span className="text-surface-900 font-medium text-sm">{product.rating}</span>
361
+ <StarFill className="text-yellow-500"></StarFill>
362
+ </div>
363
+ </div>
364
+ </div>
365
+ <div className="flex flex-col md:items-end gap-8">
366
+ <span className="text-xl font-semibold">${product.price}</span>
367
+ <div className="flex flex-row-reverse md:flex-row gap-2">
368
+ <Button variant="outlined">
369
+ <Heart></Heart>
370
+ </Button>
371
+ <Button
372
+ disabled={product.inventoryStatus === 'OUTOFSTOCK'}
373
+ className="flex-auto md:flex-initial whitespace-nowrap"
374
+ >
375
+ <ShoppingCart></ShoppingCart>
376
+ Buy Now
377
+ </Button>
378
+ </div>
379
+ </div>
380
+ </div>
381
+ </div>
382
+ ))}
383
+ </div>
384
+ </DataViewContent>
385
+ <DataViewFooter>
386
+ <Paginator
387
+ total={products.length}
388
+ itemsPerPage={itemsPerPage}
389
+ onPageChange={(e: PaginatorRootChangeEvent) => setPage(e.value)}
390
+ className="border-t border-surface-200 dark:border-surface-700 pt-4"
391
+ >
392
+ <PaginatorFirst />
393
+ <PaginatorPrev />
394
+ <PaginatorPages />
395
+ <PaginatorNext />
396
+ <PaginatorLast />
397
+ </Paginator>
398
+ </DataViewFooter>
399
+ </DataView>
400
+ </div>
401
+ );
402
+ }
403
+ ```
404
+
405
+ ### Sorting
406
+
407
+ Use `useDataView` to sort items by a specific field and order.
408
+
409
+ ```tsx
410
+ 'use client';
411
+ import { Button } from '@/components/ui/button';
412
+ import { DataView, DataViewContent, DataViewHeader } from '@/components/ui/dataview';
413
+ import { Tag } from '@/components/ui/tag';
414
+ import { ToggleButton } from '@/components/ui/togglebutton';
415
+ import { ToggleButtonGroup } from '@/components/ui/togglebuttongroup';
416
+ import { ProductService } from '@/shared/services/product.service';
417
+ import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
418
+ import Image from 'next/image';
419
+ import { ToggleButtonGroupValueChangeEvent } from 'primereact/togglebuttongroup';
420
+ import * as React from 'react';
421
+
422
+ interface Product {
423
+ id: string;
424
+ code: string;
425
+ name: string;
426
+ description: string;
427
+ image: string;
428
+ price: number;
429
+ category: string;
430
+ quantity: number;
431
+ inventoryStatus: string;
432
+ rating: number;
433
+ }
434
+
435
+ export default function SortDemo() {
436
+ const [products, setProducts] = React.useState<Product[]>([]);
437
+ const [value, setValue] = React.useState<string | null>(null);
438
+
439
+ React.useEffect(() => {
440
+ ProductService.getProductsSmall().then((data) => setProducts(data.slice(0, 5)));
441
+ }, []);
442
+
443
+ const getSeverity = (product: Product) => {
444
+ switch (product.inventoryStatus) {
445
+ case 'INSTOCK':
446
+ return 'success';
447
+
448
+ case 'LOWSTOCK':
449
+ return 'warn';
450
+
451
+ case 'OUTOFSTOCK':
452
+ return 'danger';
453
+
454
+ default:
455
+ return undefined;
456
+ }
457
+ };
458
+
459
+ const onSortChange = (value: string | null) => {
460
+ const sortOrder = value === 'hightolow' ? -1 : value === 'lowtohigh' ? 1 : 0;
461
+
462
+ setValue(value);
463
+ setProducts((prev) => [...prev].sort((a, b) => (a.price - b.price) * sortOrder));
464
+ };
465
+
466
+ return (
467
+ <div>
468
+ <DataView>
469
+ <DataViewHeader>
470
+ <div className="flex justify-center border-b border-surface-200 dark:border-surface-700 pb-4">
471
+ <ToggleButtonGroup
472
+ value={value}
473
+ onValueChange={(e: ToggleButtonGroupValueChangeEvent) => onSortChange(e.value as string)}
474
+ allowEmpty={false}
475
+ >
476
+ <ToggleButton value="hightolow">Price High to Low</ToggleButton>
477
+ <ToggleButton value="lowtohigh">Price Low to High</ToggleButton>
478
+ </ToggleButtonGroup>
479
+ </div>
480
+ </DataViewHeader>
481
+ <DataViewContent>
482
+ <div className="flex flex-col">
483
+ {products.map((product, index) => (
484
+ <div
485
+ key={index}
486
+ className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
487
+ >
488
+ <div className="md:w-40 relative">
489
+ <Image
490
+ className="mx-auto rounded w-full"
491
+ src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
492
+ alt={product.name}
493
+ width={160}
494
+ height={160}
495
+ />
496
+ <Tag severity={getSeverity(product)} className="absolute top-1 left-1">
497
+ {product.inventoryStatus}
498
+ </Tag>
499
+ </div>
500
+ <div className="flex flex-col md:flex-row justify-between md:items-center flex-1 gap-6">
501
+ <div className="flex flex-row md:flex-col justify-between items-start gap-2">
502
+ <div>
503
+ <span className="font-medium text-surface-500 dark:text-surface-400 text-sm">{product.category}</span>
504
+ <div className="text-lg font-medium mt-2">{product.name}</div>
505
+ </div>
506
+ <div className="bg-surface-100 p-1" style={{ borderRadius: '30px' }}>
507
+ <div
508
+ className="bg-surface-0 flex items-center gap-2 justify-center py-1 px-2"
509
+ style={{
510
+ borderRadius: '30px',
511
+ boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)'
512
+ }}
513
+ >
514
+ <span className="text-surface-900 font-medium text-sm">{product.rating}</span>
515
+ <StarFill className="text-yellow-500"></StarFill>
516
+ </div>
517
+ </div>
518
+ </div>
519
+ <div className="flex flex-col md:items-end gap-8">
520
+ <span className="text-xl font-semibold">${product.price}</span>
521
+ <div className="flex flex-row-reverse md:flex-row gap-2">
522
+ <Button variant="outlined">
523
+ <Heart></Heart>
524
+ </Button>
525
+ <Button
526
+ disabled={product.inventoryStatus === 'OUTOFSTOCK'}
527
+ className="flex-auto md:flex-initial whitespace-nowrap"
528
+ >
529
+ <ShoppingCart></ShoppingCart>
530
+ Buy Now
531
+ </Button>
532
+ </div>
533
+ </div>
534
+ </div>
535
+ </div>
536
+ ))}
537
+ </div>
538
+ </DataViewContent>
539
+ </DataView>
540
+ </div>
541
+ );
542
+ }
543
+ ```
544
+
545
+ ### Layout
546
+
547
+ Switch between grid and list layouts to display the same data with different visual density.
548
+
549
+ ```tsx
550
+ 'use client';
551
+ import { Button } from '@/components/ui/button';
552
+ import { DataView, DataViewContent, DataViewHeader } from '@/components/ui/dataview';
553
+ import { Tag } from '@/components/ui/tag';
554
+ import { ToggleButton } from '@/components/ui/togglebutton';
555
+ import { ToggleButtonGroup } from '@/components/ui/togglebuttongroup';
556
+ import { ProductService } from '@/shared/services/product.service';
557
+ import { Bars, Heart, ShoppingCart, StarFill, Table } from '@primeicons/react';
558
+ import Image from 'next/image';
559
+ import { ToggleButtonGroupValueChangeEvent } from 'primereact/togglebuttongroup';
560
+ import * as React from 'react';
561
+
562
+ interface Product {
563
+ id: string;
564
+ code: string;
565
+ name: string;
566
+ description: string;
567
+ image: string;
568
+ price: number;
569
+ category: string;
570
+ quantity: number;
571
+ inventoryStatus: string;
572
+ rating: number;
573
+ }
574
+
575
+ export default function LayoutDemo() {
576
+ const [products, setProducts] = React.useState<Product[]>([]);
577
+ const [value, setValue] = React.useState<string>('grid');
578
+
579
+ React.useEffect(() => {
580
+ ProductService.getProductsSmall().then((data) => setProducts(data.slice(0, 12)));
581
+ }, []);
582
+
583
+ const getSeverity = (product: Product) => {
584
+ switch (product.inventoryStatus) {
585
+ case 'INSTOCK':
586
+ return 'success';
587
+
588
+ case 'LOWSTOCK':
589
+ return 'warn';
590
+
591
+ case 'OUTOFSTOCK':
592
+ return 'danger';
593
+
594
+ default:
595
+ return undefined;
596
+ }
597
+ };
598
+
599
+ const listLayout = () => {
600
+ return (
601
+ <div className="flex flex-col">
602
+ {products.map((product, index) => (
603
+ <div
604
+ key={index}
605
+ className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
606
+ >
607
+ <div className="md:w-40 relative">
608
+ <Image
609
+ className="mx-auto rounded w-full"
610
+ src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
611
+ alt={product.name}
612
+ width={160}
613
+ height={160}
614
+ />
615
+ <Tag severity={getSeverity(product)} className="absolute top-1 left-1">
616
+ {product.inventoryStatus}
617
+ </Tag>
618
+ </div>
619
+ <div className="flex flex-col md:flex-row justify-between md:items-center flex-1 gap-6">
620
+ <div className="flex flex-row md:flex-col justify-between items-start gap-2">
621
+ <div>
622
+ <span className="font-medium text-surface-500 dark:text-surface-400 text-sm">{product.category}</span>
623
+ <div className="text-lg font-medium mt-2">{product.name}</div>
624
+ </div>
625
+ <div className="bg-surface-100 p-1" style={{ borderRadius: '30px' }}>
626
+ <div
627
+ className="bg-surface-0 flex items-center gap-2 justify-center py-1 px-2"
628
+ style={{
629
+ borderRadius: '30px',
630
+ boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)'
631
+ }}
632
+ >
633
+ <span className="text-surface-900 font-medium text-sm">{product.rating}</span>
634
+ <StarFill className="text-yellow-500"></StarFill>
635
+ </div>
636
+ </div>
637
+ </div>
638
+ <div className="flex flex-col md:items-end gap-8">
639
+ <span className="text-xl font-semibold">${product.price}</span>
640
+ <div className="flex flex-row-reverse md:flex-row gap-2">
641
+ <Button variant="outlined">
642
+ <Heart></Heart>
643
+ </Button>
644
+ <Button
645
+ disabled={product.inventoryStatus === 'OUTOFSTOCK'}
646
+ className="flex-auto md:flex-initial whitespace-nowrap"
647
+ >
648
+ <ShoppingCart></ShoppingCart>
649
+ Buy Now
650
+ </Button>
651
+ </div>
652
+ </div>
653
+ </div>
654
+ </div>
655
+ ))}
656
+ </div>
657
+ );
658
+ };
659
+
660
+ const gridLayout = () => {
661
+ return (
662
+ <div className="grid grid-cols-12 gap-4">
663
+ {products.map((product, index) => {
664
+ return (
665
+ <div key={index} className="col-span-12 sm:col-span-6 md:col-span-4 xl:col-span-6 p-2">
666
+ <div className="p-6 border border-surface-200 dark:border-surface-700 bg-surface-0 dark:bg-surface-900 rounded flex flex-col">
667
+ <div className="bg-surface-50 flex justify-center rounded p-4">
668
+ <div className="relative mx-auto">
669
+ <Image
670
+ src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
671
+ alt={product.name}
672
+ width={300}
673
+ height={200}
674
+ className="rounded"
675
+ />
676
+ <Tag severity={getSeverity(product)} className="absolute top-1 left-1">
677
+ {product.inventoryStatus}
678
+ </Tag>
679
+ </div>
680
+ </div>
681
+ <div className="pt-6">
682
+ <div className="flex flex-row justify-between items-start gap-2">
683
+ <div>
684
+ <span className="font-medium text-surface-500 dark:text-surface-400 text-sm">{product.category}</span>
685
+ <div className="text-lg font-medium mt-1">{product.name}</div>
686
+ </div>
687
+ <div className="bg-surface-100 p-1" style={{ borderRadius: '30px' }}>
688
+ <div
689
+ className="bg-surface-0 flex items-center gap-2 justify-center py-1 px-2"
690
+ style={{
691
+ borderRadius: '30px',
692
+ boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)'
693
+ }}
694
+ >
695
+ <span className="text-surface-900 font-medium text-sm">{product.rating}</span>
696
+ <StarFill className="text-yellow-500"></StarFill>
697
+ </div>
698
+ </div>
699
+ </div>
700
+ <div className="flex flex-col gap-6 mt-6">
701
+ <span className="text-2xl font-semibold">${product.price}</span>
702
+ <div className="flex gap-2">
703
+ <Button disabled={product.inventoryStatus === 'OUTOFSTOCK'} className="flex-auto whitespace-nowrap">
704
+ <ShoppingCart></ShoppingCart>
705
+ Buy Now
706
+ </Button>
707
+ <Button variant="outlined">
708
+ <Heart></Heart>
709
+ </Button>
710
+ </div>
711
+ </div>
712
+ </div>
713
+ </div>
714
+ </div>
715
+ );
716
+ })}
717
+ </div>
718
+ );
719
+ };
720
+
721
+ const list = listLayout();
722
+ const grid = gridLayout();
723
+
724
+ return (
725
+ <div>
726
+ <DataView>
727
+ <DataViewHeader>
728
+ <div className="flex justify-end border-b border-surface-200 dark:border-surface-700 pb-4">
729
+ <ToggleButtonGroup
730
+ value={value}
731
+ onValueChange={(e: ToggleButtonGroupValueChangeEvent) => setValue(e.value as string)}
732
+ allowEmpty={false}
733
+ >
734
+ <ToggleButton value="list">
735
+ <Bars></Bars>
736
+ </ToggleButton>
737
+ <ToggleButton value="grid">
738
+ <Table />
739
+ </ToggleButton>
740
+ </ToggleButtonGroup>
741
+ </div>
742
+ </DataViewHeader>
743
+ <DataViewContent>{value === 'list' ? list : grid}</DataViewContent>
744
+ </DataView>
745
+ </div>
746
+ );
747
+ }
748
+ ```
749
+
750
+ ### Loading
751
+
752
+ Use a skeleton layout to represent loading state while data is being fetched.
753
+
754
+ ```tsx
755
+ 'use client';
756
+ import { DataView, DataViewContent, DataViewHeader } from '@/components/ui/dataview';
757
+ import { Skeleton } from '@/components/ui/skeleton';
758
+ import { ToggleButton } from '@/components/ui/togglebutton';
759
+ import { ToggleButtonGroup } from '@/components/ui/togglebuttongroup';
760
+ import { Bars, Table } from '@primeicons/react';
761
+ import { ToggleButtonGroupValueChangeEvent } from 'primereact/togglebuttongroup';
762
+ import * as React from 'react';
763
+
764
+ export default function LoadingDemo() {
765
+ const [value, setValue] = React.useState<string>('grid');
766
+
767
+ const listLayout = () => {
768
+ return (
769
+ <div className="flex flex-col">
770
+ {Array.from({ length: 6 }, (_, i) => (
771
+ <div
772
+ key={i}
773
+ className={`flex flex-col xl:flex-row xl:items-start p-6 gap-6 ${i !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
774
+ >
775
+ <Skeleton className="w-9/12! sm:w-64! xl:w-40! h-24! mx-auto" />
776
+ <div className="flex flex-col sm:flex-row justify-between items-center xl:items-start flex-1 gap-6">
777
+ <div className="flex flex-col items-center sm:items-start gap-4">
778
+ <Skeleton width="8rem" height="2rem" />
779
+ <Skeleton width="6rem" height="1rem" />
780
+
781
+ <div className="flex items-center gap-4">
782
+ <Skeleton width="6rem" height="1rem" />
783
+ <Skeleton width="3rem" height="1rem" />
784
+ </div>
785
+ </div>
786
+ <div className="flex sm:flex-col items-center sm:items-end gap-4 sm:gap-2">
787
+ <Skeleton width="4rem" height="2rem" />
788
+ <Skeleton size="3rem" shape="circle" />
789
+ </div>
790
+ </div>
791
+ </div>
792
+ ))}
793
+ </div>
794
+ );
795
+ };
796
+
797
+ const gridLayout = () => {
798
+ return (
799
+ <div className="grid grid-cols-12 gap-4">
800
+ {Array.from({ length: 6 }, (_, i) => (
801
+ <div key={i} className="col-span-12 sm:col-span-6 xl:col-span-4 p-2">
802
+ <div className="p-6 border border-surface-200 dark:border-surface-700 bg-surface-0 dark:bg-surface-900 rounded">
803
+ <div className="flex flex-wrap items-center justify-between gap-2">
804
+ <Skeleton width="6rem" height="2rem" />
805
+ <Skeleton width="3rem" height="1rem" />
806
+ </div>
807
+ <div className="flex flex-col items-center gap-4 py-8">
808
+ <Skeleton width="75%" height="10rem" />
809
+ <Skeleton width="8rem" height="2rem" />
810
+ <Skeleton width="6rem" height="1rem" />
811
+ </div>
812
+ <div className="flex items-center justify-between">
813
+ <Skeleton width="4rem" height="2rem" />
814
+ <Skeleton width="6rem" height="1rem" shape="circle" size="3rem" />
815
+ </div>
816
+ </div>
817
+ </div>
818
+ ))}
819
+ </div>
820
+ );
821
+ };
822
+
823
+ const list = listLayout();
824
+ const grid = gridLayout();
825
+
826
+ return (
827
+ <div>
828
+ <DataView>
829
+ <DataViewHeader>
830
+ <div className="flex justify-end border-b border-surface-200 dark:border-surface-700 pb-4">
831
+ <ToggleButtonGroup
832
+ value={value}
833
+ onValueChange={(e: ToggleButtonGroupValueChangeEvent) => setValue(e.value as string)}
834
+ allowEmpty={false}
835
+ >
836
+ <ToggleButton value="list">
837
+ <Bars></Bars>
838
+ </ToggleButton>
839
+ <ToggleButton value="grid">
840
+ <Table />
841
+ </ToggleButton>
842
+ </ToggleButtonGroup>
843
+ </div>
844
+ </DataViewHeader>
845
+ <DataViewContent>{value === 'list' ? list : grid}</DataViewContent>
846
+ </DataView>
847
+ </div>
848
+ );
849
+ }
850
+ ```
851
+
852
+ ## Related
853
+
854
+ ### Sub-Components
855
+
856
+ See [DataView Primitive](/docs/primitive/components/dataview#api) for the full sub-component API.
857
+
858
+ ### Hooks
859
+
860
+ See [useDataView](/docs/headless/components/dataview#api) for the headless hook API.
861
+
862
+ ### Accessibility
863
+
864
+ See [DataView Primitive](/docs/primitive/components/dataview#accessibility) for WAI-ARIA compliance details and keyboard support.