@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,160 @@
1
+ # useMotion
2
+
3
+ Hook that manages enter/leave animations with CSS class transitions and visibility control.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import { useMotion } from '@primereact/core/motion';
9
+ ```
10
+
11
+ ```tsx
12
+ const ref = React.useRef<HTMLDivElement>(undefined);
13
+ const motion = useMotion({
14
+ elementRef: ref,
15
+ visible: isOpen,
16
+ name: 'fade'
17
+ });
18
+
19
+ return <>{motion.state.rendered && <div ref={ref} {...motion.rootProps}></div>}</>;
20
+ ```
21
+
22
+ `useMotion` runs a CSS class-based enter/leave animation lifecycle against a single element, returning `rootProps` for hidden styles and `state.rendered` for conditional mounting.
23
+
24
+ ## Features
25
+
26
+ - **CSS class lifecycle**, applies `{name}-enter-from`, `{name}-enter-active`, `{name}-enter-to` on enter and mirrored `-leave-*` classes on leave
27
+ - **Mount management**, `state.rendered` combined with `mountOnEnter` / `unmountOnLeave` keeps the element in the DOM only while needed
28
+ - **Hide strategies**, choose how closed content is hidden: `display: none`, `visibility: hidden`, or let CSS animations handle it entirely
29
+ - **Dimension variables**, `cssVarPrefix` writes `--{prefix}-height` / `--{prefix}-width` on the element for collapsible transitions
30
+ - **Full lifecycle callbacks**, eight hooks covering before/during/after/cancelled for both enter and leave phases
31
+ - **Imperative control**, `enter()`, `leave()`, `cancel()`, and `update()` for programmatic transitions
32
+
33
+ ## Working with callbacks
34
+
35
+ ### Drive animations with a name prefix
36
+
37
+ Pick a `name` and define six CSS classes against that prefix. The hook applies them in order across the enter and leave phases.
38
+
39
+ ```tsx
40
+ const motion = useMotion({ elementRef: ref, visible, name: 'slide' });
41
+ ```
42
+
43
+ ```css
44
+ .slide-enter-from {
45
+ opacity: 0;
46
+ transform: translateY(-10px);
47
+ }
48
+ .slide-enter-active {
49
+ transition: all 200ms ease-out;
50
+ }
51
+ .slide-enter-to {
52
+ opacity: 1;
53
+ transform: translateY(0);
54
+ }
55
+
56
+ .slide-leave-from {
57
+ opacity: 1;
58
+ transform: translateY(0);
59
+ }
60
+ .slide-leave-active {
61
+ transition: all 200ms ease-in;
62
+ }
63
+ .slide-leave-to {
64
+ opacity: 0;
65
+ transform: translateY(-10px);
66
+ }
67
+ ```
68
+
69
+ ### Collapsible height transitions
70
+
71
+ Set `cssVarPrefix` so the hook injects scroll-height into a CSS variable you can read from your transitions.
72
+
73
+ ```tsx
74
+ const motion = useMotion({ elementRef: ref, visible, cssVarPrefix: 'panel-content' });
75
+ ```
76
+
77
+ ```css
78
+ .collapsible-enter-active,
79
+ .collapsible-leave-active {
80
+ transition: max-height 300ms ease;
81
+ overflow: hidden;
82
+ }
83
+
84
+ .collapsible-enter-to,
85
+ .collapsible-leave-from {
86
+ max-height: var(--panel-content-height);
87
+ }
88
+
89
+ .collapsible-enter-from,
90
+ .collapsible-leave-to {
91
+ max-height: 0;
92
+ }
93
+ ```
94
+
95
+ ### Run the enter animation on mount
96
+
97
+ Enable `appear` so the enter lifecycle plays the first time the element becomes visible, instead of jumping straight to its final state.
98
+
99
+ ```tsx
100
+ const motion = useMotion({ elementRef: ref, visible: true, appear: true, name: 'fade' });
101
+ ```
102
+
103
+ ### React to phase transitions
104
+
105
+ Use the lifecycle callbacks to coordinate side effects, trigger focus moves after enter, release listeners after leave, or clean up inline styles.
106
+
107
+ ```tsx
108
+ const motion = useMotion({
109
+ elementRef: ref,
110
+ visible,
111
+ name: 'fade',
112
+ onBeforeEnter: (e) => e.el.style.setProperty('will-change', 'opacity'),
113
+ onAfterEnter: () => inputRef.current?.focus(),
114
+ onAfterLeave: () => releaseScrollLock()
115
+ });
116
+ ```
117
+
118
+ | Callback | Phase |
119
+ | ------------------ | ------------------------------ |
120
+ | `onBeforeEnter` | Before enter transition starts |
121
+ | `onEnter` | Enter transition starts |
122
+ | `onAfterEnter` | Enter transition ends |
123
+ | `onEnterCancelled` | Enter transition cancelled |
124
+ | `onBeforeLeave` | Before leave transition starts |
125
+ | `onLeave` | Leave transition starts |
126
+ | `onAfterLeave` | Leave transition ends |
127
+ | `onLeaveCancelled` | Leave transition cancelled |
128
+
129
+ ### Imperative control
130
+
131
+ Call `enter()`, `leave()`, or `cancel()` to drive the animation from outside a visibility prop, and `update()` to reconfigure the instance on an existing element.
132
+
133
+ ```tsx
134
+ const motion = useMotion({ elementRef: ref, visible, name: 'fade' });
135
+
136
+ motion.enter();
137
+ motion.leave();
138
+ motion.cancel();
139
+ motion.update(element, { name: 'slide', duration: 300 });
140
+ ```
141
+
142
+ ### Hide strategy reference
143
+
144
+ Switch `hideStrategy` to match what your CSS expects. `display` is the default because it removes the element from layout entirely.
145
+
146
+ | Value | Behavior |
147
+ | -------------- | ------------------------------------------------------ |
148
+ | `'display'` | Applies `display: none` (default) |
149
+ | `'visibility'` | Applies `visibility: hidden` and `max-height: 0` |
150
+ | `'none'` | No automatic hiding, CSS animations handle it entirely |
151
+
152
+ ## API
153
+
154
+ ### useMotion
155
+
156
+ <DocTable name="useMotion" category="api" />
157
+
158
+ ## Accessibility
159
+
160
+ No keyboard behavior, a primitive for animation that does not affect accessibility. See [Primitive](/docs/primitive/components/motion#accessibility) for full WAI-ARIA compliance details.
@@ -0,0 +1,220 @@
1
+ [
2
+ {
3
+ "name": "useNavigationMenu",
4
+ "source": "apps/showcase/assets/apidoc/usenavigationmenu.json",
5
+ "data": {
6
+ "description": "The useNavigationMenu manages the state and functionality of a navigationmenu component.",
7
+ "interfaces": {
8
+ "UseNavigationMenuProps": {
9
+ "description": "Defines valid properties in useNavigationMenu.",
10
+ "relatedProp": "",
11
+ "props": [
12
+ {
13
+ "name": "orientation",
14
+ "type": "NavigationMenuOrientation",
15
+ "default": "'horizontal'",
16
+ "description": "The orientation of the navigationmenu.\nDetermines which arrow keys move between triggers."
17
+ },
18
+ {
19
+ "name": "loopFocus",
20
+ "type": "boolean",
21
+ "default": "true",
22
+ "description": "Whether keyboard focus loops back to the first/last item at the end of the list."
23
+ },
24
+ {
25
+ "name": "modal",
26
+ "type": "boolean",
27
+ "default": "true",
28
+ "description": "Whether the navigationmenu is modal. When true, opening one menu prevents page interaction\noutside that menu."
29
+ },
30
+ {
31
+ "name": "disabled",
32
+ "type": "boolean",
33
+ "default": "false",
34
+ "description": "Whether all menus in the navigationmenu are disabled."
35
+ }
36
+ ],
37
+ "methods": []
38
+ },
39
+ "UseNavigationMenuState": {
40
+ "description": "Defines valid state in useNavigationMenu.",
41
+ "relatedProp": "",
42
+ "props": [
43
+ {
44
+ "name": "openMenuId",
45
+ "type": "string",
46
+ "default": "",
47
+ "description": "The id of the currently open menu, or null if none is open."
48
+ },
49
+ {
50
+ "name": "hasOpenMenu",
51
+ "type": "boolean",
52
+ "default": "",
53
+ "description": "Whether any menu in the navigationmenu is currently open."
54
+ }
55
+ ],
56
+ "methods": []
57
+ },
58
+ "UseNavigationMenuRootProps": {
59
+ "description": "Pre-built props for the navigationmenu root element.",
60
+ "relatedProp": "",
61
+ "props": [
62
+ {
63
+ "name": "role",
64
+ "type": "\"menubar\"",
65
+ "default": "",
66
+ "description": "ARIA role for the navigationmenu element."
67
+ },
68
+ {
69
+ "name": "aria-orientation",
70
+ "type": "NavigationMenuOrientation",
71
+ "default": "",
72
+ "description": "The orientation of the navigationmenu."
73
+ },
74
+ {
75
+ "name": "data-scope",
76
+ "type": "\"navigationmenu\"",
77
+ "default": "",
78
+ "description": "Component scope identifier."
79
+ },
80
+ {
81
+ "name": "data-part",
82
+ "type": "\"root\"",
83
+ "default": "",
84
+ "description": "Component part identifier."
85
+ },
86
+ {
87
+ "name": "data-orientation",
88
+ "type": "NavigationMenuOrientation",
89
+ "default": "",
90
+ "description": "The orientation of the navigationmenu."
91
+ },
92
+ {
93
+ "name": "data-has-open-menu",
94
+ "type": "\"\"",
95
+ "default": "",
96
+ "description": "Present when any menu in the navigationmenu is open."
97
+ },
98
+ {
99
+ "name": "data-modal",
100
+ "type": "\"\"",
101
+ "default": "",
102
+ "description": "Present when the navigationmenu is modal."
103
+ },
104
+ {
105
+ "name": "data-disabled",
106
+ "type": "\"\"",
107
+ "default": "",
108
+ "description": "Present when the navigationmenu is disabled."
109
+ }
110
+ ],
111
+ "methods": []
112
+ },
113
+ "UseNavigationMenuExposes": {
114
+ "description": "Defines the methods and properties exposed by useNavigationMenu.",
115
+ "relatedProp": "",
116
+ "props": [
117
+ {
118
+ "name": "state",
119
+ "type": "UseNavigationMenuState",
120
+ "default": "",
121
+ "description": "The state of the useNavigationMenu."
122
+ },
123
+ {
124
+ "name": "rootProps",
125
+ "type": "UseNavigationMenuRootProps",
126
+ "default": "",
127
+ "description": "Pre-built props for the navigationmenu root element."
128
+ },
129
+ {
130
+ "name": "registerTrigger",
131
+ "type": "(menuId: string, element: HTMLElement) => void",
132
+ "default": "",
133
+ "description": "Register or unregister a menu trigger element with the navigationmenu.\nPass null as element to unregister."
134
+ },
135
+ {
136
+ "name": "setOpenMenuId",
137
+ "type": "(menuId: string) => void",
138
+ "default": "",
139
+ "description": "Set which menu is currently open. Pass null to close all."
140
+ },
141
+ {
142
+ "name": "isMenuOpen",
143
+ "type": "(menuId: string) => boolean",
144
+ "default": "",
145
+ "description": "Whether the menu with the given id is the currently open one."
146
+ },
147
+ {
148
+ "name": "onTriggerKeyDown",
149
+ "type": "(menuId: string, event: KeyboardEvent) => void",
150
+ "default": "",
151
+ "description": "Handle keyboard event on a trigger. Manages ArrowLeft/Right (horizontal)\nor ArrowUp/Down (vertical), Home, End between sibling triggers."
152
+ },
153
+ {
154
+ "name": "onTriggerMouseEnter",
155
+ "type": "(menuId: string) => void",
156
+ "default": "",
157
+ "description": "Handle mouse enter on a trigger. When a menu is already open,\nhovering another trigger switches to it."
158
+ },
159
+ {
160
+ "name": "onMenuOpenChange",
161
+ "type": "(menuId: string, open: boolean) => void",
162
+ "default": "",
163
+ "description": "Notify the navigationmenu that a menu's open state has changed.\nCalled by child Menu.Root via its onOpenChange."
164
+ },
165
+ {
166
+ "name": "orientation",
167
+ "type": "NavigationMenuOrientation",
168
+ "default": "",
169
+ "description": "The orientation of the navigationmenu (echoed for child consumption)."
170
+ },
171
+ {
172
+ "name": "modal",
173
+ "type": "boolean",
174
+ "default": "",
175
+ "description": "Whether the navigationmenu is modal (echoed for child consumption)."
176
+ },
177
+ {
178
+ "name": "disabled",
179
+ "type": "boolean",
180
+ "default": "",
181
+ "description": "Whether all menus in the navigationmenu are disabled (echoed for child consumption)."
182
+ },
183
+ {
184
+ "name": "focusSibling",
185
+ "type": "(currentMenuId: string, direction: \"next\" | \"previous\") => void",
186
+ "default": "",
187
+ "description": "Move focus to the next or previous sibling trigger and (if a menu is\nalready open) switch the open menu accordingly. Used by the embedded\n `Menu` to forward ArrowRight / ArrowLeft from list-level into the\nnavigationmenu when the focused item is not a submenu trigger."
188
+ },
189
+ {
190
+ "name": "setPendingFocus",
191
+ "type": "(target: \"first\" | \"last\") => void",
192
+ "default": "",
193
+ "description": "Set the focus target the next time a menu opens. Used by NavigationMenu's\ntrigger keyboard handler so ArrowDown opens the menu and lands on its\nfirst item, while ArrowUp opens it on the last item (WAI-ARIA NavigationMenu\nkeyboard pattern)."
194
+ },
195
+ {
196
+ "name": "consumePendingFocus",
197
+ "type": "() => \"first\" | \"last\"",
198
+ "default": "",
199
+ "description": "Read and clear any pending focus target queued by the navigationmenu. The\nembedded `Menu` calls this from `onListFocus` to decide whether to\nfocus the first or last item on open."
200
+ },
201
+ {
202
+ "name": "registerInstantSignal",
203
+ "type": "(menuId: string, handler: () => void) => () => void",
204
+ "default": "",
205
+ "description": "Register a callback fired when the navigationmenu is about to switch between\ntwo sibling menus involving this menu. The child `Menu` uses this to\nflip its own `instantType` and skip the open/close animation during\nfast traversal. Returns an unregister function."
206
+ }
207
+ ],
208
+ "methods": []
209
+ }
210
+ },
211
+ "types": {
212
+ "UseNavigationMenuInstance": {
213
+ "description": "Instance of useNavigationMenu headless.",
214
+ "values": "HeadlessInstance<UseNavigationMenuProps, UseNavigationMenuState, UseNavigationMenuExposes>"
215
+ }
216
+ },
217
+ "variables": {}
218
+ }
219
+ }
220
+ ]
@@ -0,0 +1,166 @@
1
+ # useNavigationMenu
2
+
3
+ Hook that coordinates multiple useMenu instances inside a horizontal navigation bar with sibling traversal and single-open-at-a-time behavior.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { useMenu } from '@primereact/headless/menu';
8
+ import { useNavigationMenu } from '@primereact/headless/navigationmenu';
9
+ import { usePortal } from '@primereact/headless/portal';
10
+ import { usePositioner } from '@primereact/headless/positioner';
11
+ import * as React from 'react';
12
+ import { createPortal } from 'react-dom';
13
+
14
+ function HeadlessMenu({
15
+ label,
16
+ items,
17
+ navigationmenu,
18
+ menuId
19
+ }: {
20
+ label: string;
21
+ items: string[];
22
+ navigationmenu: ReturnType<typeof useNavigationMenu>;
23
+ menuId: string;
24
+ }) {
25
+ const menu = useMenu({ navigationmenu, navigationmenuMenuId: menuId });
26
+ const { triggerProps, popupProps, positionerProps, getListProps, getItemProps, state, popover } = menu;
27
+ const portal = usePortal();
28
+
29
+ // Drive position via floating-ui through usePositioner — without it the
30
+ // popup would render at (0,0) since popover only tracks element refs.
31
+ usePositioner({
32
+ anchor: popover.state.anchorElement,
33
+ content: popover.state.positionerElement,
34
+ side: 'bottom',
35
+ align: 'start',
36
+ sideOffset: 4,
37
+ flip: true,
38
+ shift: true
39
+ });
40
+
41
+ // Compose the popover anchor ref from triggerProps with NavigationMenu's
42
+ // trigger registration so both popup positioning and sibling navigation
43
+ // work for the same button element.
44
+ const triggerRef = React.useCallback(
45
+ (node: HTMLButtonElement | null) => {
46
+ (triggerProps.ref as (n: HTMLElement | null) => void)?.(node);
47
+ navigationmenu.registerTrigger(menuId, node);
48
+ },
49
+ [triggerProps.ref, navigationmenu, menuId]
50
+ );
51
+
52
+ return (
53
+ <>
54
+ <button
55
+ {...triggerProps}
56
+ ref={triggerRef}
57
+ onKeyDown={(event) => navigationmenu.onTriggerKeyDown(menuId, event)}
58
+ onMouseEnter={() => navigationmenu.onTriggerMouseEnter(menuId)}
59
+ className="inline-flex items-center px-3 py-1.5 rounded-md text-sm font-medium text-surface-700 dark:text-surface-200 hover:bg-surface-100 dark:hover:bg-surface-800 data-open:bg-surface-100 dark:data-open:bg-surface-800 outline-none"
60
+ >
61
+ {label}
62
+ </button>
63
+ {portal.state.mounted &&
64
+ state.open &&
65
+ popover.state.rendered &&
66
+ createPortal(
67
+ <div {...positionerProps}>
68
+ <div
69
+ {...popupProps}
70
+ className="min-w-44 bg-surface-0 dark:bg-surface-900 border border-surface-200 dark:border-surface-700 rounded-lg shadow-md overflow-hidden"
71
+ >
72
+ <div {...getListProps()} className="list-none m-0 p-1 flex flex-col gap-0.5 outline-none">
73
+ {items.map((item) => (
74
+ <div
75
+ key={item}
76
+ {...getItemProps({ value: item.toLowerCase().replace(/\s+/g, '-') })}
77
+ className="flex items-center gap-2 px-3 py-2 rounded-md cursor-pointer text-sm text-surface-700 dark:text-surface-200 hover:bg-surface-100 dark:hover:bg-surface-800 data-focused:bg-surface-100 dark:data-focused:bg-surface-700 select-none"
78
+ >
79
+ {item}
80
+ </div>
81
+ ))}
82
+ </div>
83
+ </div>
84
+ </div>,
85
+ document.body
86
+ )}
87
+ </>
88
+ );
89
+ }
90
+
91
+ export default function BasicDemo() {
92
+ const navigationmenu = useNavigationMenu();
93
+
94
+ return (
95
+ <div className="flex justify-center">
96
+ <div
97
+ {...navigationmenu.rootProps}
98
+ className="inline-flex items-center gap-1 p-1 bg-surface-0 dark:bg-surface-900 border border-surface-200 dark:border-surface-700 rounded-lg"
99
+ >
100
+ <HeadlessMenu label="File" items={['New Document', 'Open', 'Save', 'Save As…']} navigationmenu={navigationmenu} menuId="file" />
101
+ <HeadlessMenu label="Edit" items={['Undo', 'Redo', 'Cut', 'Copy', 'Paste']} navigationmenu={navigationmenu} menuId="edit" />
102
+ <HeadlessMenu label="View" items={['Zoom In', 'Zoom Out', 'Reset Zoom']} navigationmenu={navigationmenu} menuId="view" />
103
+ <HeadlessMenu label="Help" items={['Documentation', 'Support', 'About']} navigationmenu={navigationmenu} menuId="help" />
104
+ </div>
105
+ </div>
106
+ );
107
+ }
108
+ ```
109
+
110
+ ## Usage
111
+
112
+ ```tsx
113
+ import { useMenu } from '@primereact/headless/menu';
114
+ import { useNavigationMenu } from '@primereact/headless/navigationmenu';
115
+ ```
116
+
117
+ ```tsx
118
+ const navigationmenu = useNavigationMenu();
119
+ const fileMenu = useMenu({ navigationmenu, navigationmenuMenuId: 'file' });
120
+ const editMenu = useMenu({ navigationmenu, navigationmenuMenuId: 'edit' });
121
+ ```
122
+
123
+ `useNavigationMenu` tracks which child menu is currently open and switches between them on hover or arrow-key traversal. Each `useMenu` registered to the bar surrenders its open-state to the navigation menu via the `navigationmenu` / `navigationmenuMenuId` props.
124
+
125
+ See [Primitive](/docs/primitive/components/navigationmenu) for a component-based API.
126
+
127
+ ## Features
128
+
129
+ - **Single-open-at-a-time**, only one child menu may be open; opening another auto-closes the previous
130
+ - **Hover-to-switch**, moving the pointer onto a sibling trigger while a menu is open transfers focus and open state
131
+ - **Arrow-key traversal**, `focusSibling` lets child menus route arrow keys across triggers
132
+ - **Instant transition signal**, `registerInstantSignal` enables animation-less hand-off when switching siblings
133
+ - **Horizontal or vertical orientation**, exposed via `aria-orientation` and `data-orientation`
134
+
135
+ ## API
136
+
137
+ ### useNavigationMenu
138
+
139
+ <DocTable name="useNavigationMenu" category="api" />
140
+
141
+ ### Returned values
142
+
143
+ | Property | Description |
144
+ | ------------------- | ---------------------------------------------------------------------------------- |
145
+ | `rootProps` | Props for the navigation menu container (`role="menubar"`, ARIA + data attributes) |
146
+ | `state.openMenuId` | Id of the currently open child menu, or `null` |
147
+ | `state.hasOpenMenu` | Whether any child menu is currently open |
148
+ | `isMenuOpen(id)` | Returns `true` when the menu with the given id is the active one |
149
+ | `onMenuOpenChange` | Callback used by child `useMenu` to report open-state changes back to the bar |
150
+ | `focusSibling` | `(currentMenuId, 'next' \| 'previous')`, moves focus to the adjacent trigger |
151
+ | `setPendingFocus` | Marks a sibling for focus after the current menu closes |
152
+ | `registerTrigger` | Used by child menus to register their trigger DOM ref for keyboard navigation |
153
+
154
+ ## Accessibility
155
+
156
+ NavigationMenu exposes `role="menubar"` and reflects orientation via `aria-orientation`. Each child trigger participates in arrow-key navigation.
157
+
158
+ ### Keyboard Support
159
+
160
+ | Key | Function |
161
+ | ---------------------------- | -------------------------------------------------------------------- |
162
+ | `left arrow` / `right arrow` | Moves focus to the previous / next trigger (horizontal orientation). |
163
+ | `up arrow` / `down arrow` | Moves focus to the previous / next trigger (vertical orientation). |
164
+ | `enter` / `space` | Opens the focused menu. |
165
+ | `home` / `end` | Moves focus to the first / last trigger. |
166
+ | `escape` | Closes the open menu and returns focus to its trigger. |