@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,630 @@
1
+ # InputPassword
2
+
3
+ InputPassword is an enhanced input for password entry with strength metering, mask toggling, and controlled or uncontrolled usage.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { Check, Eye, EyeSlash, Lock, Times } from '@primeicons/react';
8
+ import { Chip } from '@primereact/ui/chip';
9
+ import { IconField } from '@primereact/ui/iconfield';
10
+ import { InputPassword } from '@primereact/ui/inputpassword';
11
+ import * as React from 'react';
12
+
13
+ const rules = [
14
+ { label: '8+ characters', test: (v: string) => v.length >= 8 },
15
+ { label: 'Number', test: (v: string) => /\d/.test(v) },
16
+ { label: 'Uppercase letter', test: (v: string) => /[A-Z]/.test(v) },
17
+ { label: 'Special character', test: (v: string) => /[^a-zA-Z0-9]/.test(v) }
18
+ ];
19
+
20
+ export default function Preview() {
21
+ const [value, setValue] = React.useState('1234');
22
+ const [visible, setVisible] = React.useState(false);
23
+
24
+ return (
25
+ <div className="flex justify-center">
26
+ <div className="max-w-2xs w-full">
27
+ <div className="text-sm font-medium text-color mb-2">Create a password</div>
28
+ <IconField.Root>
29
+ <IconField.Inset>
30
+ <Lock />
31
+ </IconField.Inset>
32
+ <InputPassword
33
+ fluid
34
+ mask={!visible}
35
+ value={value}
36
+ onInput={(e: React.ChangeEvent<HTMLInputElement>) => setValue(e.currentTarget.value)}
37
+ />
38
+ <IconField.Inset className="cursor-pointer" onClick={() => setVisible((v) => !v)}>
39
+ {visible ? <EyeSlash className="size-4!" /> : <Eye className="size-4!" />}
40
+ </IconField.Inset>
41
+ </IconField.Root>
42
+ <div className="mt-4 flex items-center flex-wrap gap-1.5">
43
+ {rules.map((rule) => {
44
+ const passed = rule.test(value);
45
+
46
+ return (
47
+ <Chip.Root
48
+ key={rule.label}
49
+ variant="outlined"
50
+ className={`${passed ? ' text-green-600 dark:text-green-400' : 'text-surface-500 dark:text-surface-400'}`}
51
+ >
52
+ <Chip.Start>
53
+ <span
54
+ className={`size-4 inline-flex items-center justify-center rounded-full ${passed ? 'bg-green-600 text-surface-0 dark:bg-green-400 dark:text-surface-900' : 'bg-surface-200 dark:bg-surface-700 text-surface-500 dark:text-surface-400'}`}
55
+ >
56
+ {passed ? <Check className="size-3!" /> : <Times className="size-3!" />}
57
+ </span>
58
+ </Chip.Start>
59
+ <Chip.Label>{rule.label}</Chip.Label>
60
+ </Chip.Root>
61
+ );
62
+ })}
63
+ </div>
64
+ </div>
65
+ </div>
66
+ );
67
+ }
68
+ ```
69
+
70
+ ## Usage
71
+
72
+ ```tsx
73
+ import { InputPassword } from '@primereact/ui/inputpassword';
74
+ ```
75
+
76
+ ```tsx
77
+ <InputPassword />
78
+ ```
79
+
80
+ ## Examples
81
+
82
+ ### Basic
83
+
84
+ A password input with strength indicator and toggle visibility.
85
+
86
+ ```tsx
87
+ import { InputPassword } from '@primereact/ui/inputpassword';
88
+
89
+ export default function BasicDemo() {
90
+ return (
91
+ <div className="flex justify-center">
92
+ <InputPassword />
93
+ </div>
94
+ );
95
+ }
96
+ ```
97
+
98
+ ### Toggle Mask
99
+
100
+ Adding a toggle icon to show or hide the password, allowing users to verify their input.
101
+
102
+ ```tsx
103
+ 'use client';
104
+ import { Eye } from '@primeicons/react/eye';
105
+ import { EyeSlash } from '@primeicons/react/eye-slash';
106
+ import { InputPasswordMaskChangeEvent } from '@primereact/ui/inputpassword';
107
+ import { IconField } from '@primereact/ui/iconfield';
108
+ import { InputPassword } from '@primereact/ui/inputpassword';
109
+ import * as React from 'react';
110
+
111
+ export default function ToggleMaskDemo() {
112
+ const [mask, setMask] = React.useState(true);
113
+
114
+ return (
115
+ <div className="flex justify-center">
116
+ <IconField.Root>
117
+ <InputPassword mask={mask} onMaskChange={(e: InputPasswordMaskChangeEvent) => setMask(e.value)} />
118
+ <IconField.Inset>{mask ? <Eye onClick={() => setMask(false)} /> : <EyeSlash onClick={() => setMask(true)} />}</IconField.Inset>
119
+ </IconField.Root>
120
+ </div>
121
+ );
122
+ }
123
+ ```
124
+
125
+ ### Requirements
126
+
127
+ Display a checklist of password requirements that update in real-time as the user types, providing clear feedback on which criteria have been met.
128
+
129
+ ```tsx
130
+ 'use client';
131
+ import { Check } from '@primeicons/react/check';
132
+ import { Times } from '@primeicons/react/times';
133
+ import { InputPasswordValueChangeEvent } from '@primereact/ui/inputpassword';
134
+ import { InputPassword } from '@primereact/ui/inputpassword';
135
+ import * as React from 'react';
136
+
137
+ const requirements = [
138
+ {
139
+ id: 'minLength',
140
+ label: 'At least 12 characters',
141
+ test: (value: string) => value.length >= 12
142
+ },
143
+ {
144
+ id: 'uppercase',
145
+ label: 'Contains uppercase letter',
146
+ test: (value: string) => /[A-Z]/.test(value)
147
+ },
148
+ {
149
+ id: 'lowercase',
150
+ label: 'Contains lowercase letter',
151
+ test: (value: string) => /[a-z]/.test(value)
152
+ },
153
+ {
154
+ id: 'number',
155
+ label: 'Contains number',
156
+ test: (value: string) => /[0-9]/.test(value)
157
+ },
158
+ {
159
+ id: 'symbol',
160
+ label: 'Contains special character',
161
+ test: (value: string) => /[^a-zA-Z0-9]/.test(value)
162
+ }
163
+ ];
164
+
165
+ export default function RequirementsDemo() {
166
+ const [value, setValue] = React.useState('');
167
+
168
+ return (
169
+ <div className="flex justify-center">
170
+ <div className="flex flex-col gap-2 w-64">
171
+ <InputPassword value={value} onValueChange={(e: InputPasswordValueChangeEvent) => setValue(e.value)} placeholder="Enter password" />
172
+
173
+ <ul className="flex flex-col gap-2 list-none ms-1 my-1">
174
+ {requirements.map((req) => {
175
+ const match = req.test(value);
176
+
177
+ return (
178
+ <li key={req.id} className="flex items-center gap-2 text-sm transition-all duration-300">
179
+ {match ? (
180
+ <Check className="transition-all duration-300 ease-out text-green-500 scale-110 opacity-100" />
181
+ ) : (
182
+ <Times className="transition-all duration-300 ease-out text-surface-400 scale-90 opacity-70" />
183
+ )}
184
+ <span
185
+ className={[
186
+ 'transition-all duration-300 ease-out',
187
+ match
188
+ ? 'text-green-700 dark:text-green-400 line-through decoration-2 decoration-green-500/70'
189
+ : 'text-surface-700 dark:text-surface-300 opacity-70'
190
+ ].join(' ')}
191
+ >
192
+ {req.label}
193
+ </span>
194
+ </li>
195
+ );
196
+ })}
197
+ </ul>
198
+ </div>
199
+ </div>
200
+ );
201
+ }
202
+ ```
203
+
204
+ ### Strength Meter
205
+
206
+ Visualize the overall password strength with an animated progress bar and a severity-based label that adapts as the password improves.
207
+
208
+ ```tsx
209
+ 'use client';
210
+ import { InputPasswordValueChangeEvent } from '@primereact/ui/inputpassword';
211
+ import { InputPassword } from '@primereact/ui/inputpassword';
212
+ import { ProgressBar } from '@primereact/ui/progressbar';
213
+ import { Tag } from '@primereact/ui/tag';
214
+ import * as React from 'react';
215
+
216
+ type StrengthLevel = 'weak' | 'medium' | 'strong' | 'very-strong';
217
+
218
+ interface StrengthInfo {
219
+ label: string;
220
+ percent: number;
221
+ color: string;
222
+ severity: 'danger' | 'warn' | 'info' | 'success';
223
+ }
224
+
225
+ const strengthMap: Record<StrengthLevel, StrengthInfo> = {
226
+ weak: { label: 'Weak', percent: 25, color: 'var(--p-red-400)', severity: 'danger' },
227
+ medium: { label: 'Medium', percent: 50, color: 'var(--p-amber-400)', severity: 'warn' },
228
+ strong: { label: 'Strong', percent: 75, color: 'var(--p-blue-400)', severity: 'info' },
229
+ 'very-strong': { label: 'Very Strong', percent: 100, color: 'var(--p-emerald-400)', severity: 'success' }
230
+ };
231
+
232
+ function getStrength(value: string): StrengthLevel | null {
233
+ if (!value) return null;
234
+
235
+ let score = 0;
236
+
237
+ if (value.length >= 8) score++;
238
+
239
+ if (value.length >= 12) score++;
240
+
241
+ if (/[A-Z]/.test(value) && /[a-z]/.test(value)) score++;
242
+
243
+ if (/[0-9]/.test(value)) score++;
244
+
245
+ if (/[^a-zA-Z0-9]/.test(value)) score++;
246
+
247
+ if (score <= 1) return 'weak';
248
+ else if (score <= 2) return 'medium';
249
+ else if (score <= 3) return 'strong';
250
+ else return 'very-strong';
251
+ }
252
+
253
+ export default function StrengthDemo() {
254
+ const [value, setValue] = React.useState('');
255
+ const level = getStrength(value);
256
+ const info = level ? strengthMap[level] : null;
257
+
258
+ return (
259
+ <div className="flex justify-center min-h-28">
260
+ <div className="flex flex-col gap-2 w-64">
261
+ <InputPassword value={value} onValueChange={(e: InputPasswordValueChangeEvent) => setValue(e.value)} placeholder="Enter password" />
262
+ {info && (
263
+ <div className="flex flex-col gap-2">
264
+ <ProgressBar.Root value={info.percent}>
265
+ <ProgressBar.Track style={{ height: '6px' }}>
266
+ <ProgressBar.Indicator style={{ backgroundColor: info.color }} />
267
+ </ProgressBar.Track>
268
+ </ProgressBar.Root>
269
+ <div className="flex justify-end">
270
+ <Tag severity={info.severity}>{info.label}</Tag>
271
+ </div>
272
+ </div>
273
+ )}
274
+ </div>
275
+ </div>
276
+ );
277
+ }
278
+ ```
279
+
280
+ ### Popover
281
+
282
+ Combine a visibility toggle, strength meter, and requirements checklist into a fully custom password creation with Popover component.
283
+
284
+ ```tsx
285
+ 'use client';
286
+ import { Eye } from '@primeicons/react/eye';
287
+ import { EyeSlash } from '@primeicons/react/eye-slash';
288
+ import { IconField } from '@primereact/ui/iconfield';
289
+ import { InputPassword } from '@primereact/ui/inputpassword';
290
+ import { Popover } from '@primereact/ui/popover';
291
+ import { ProgressBar } from '@primereact/ui/progressbar';
292
+ import { Tag } from '@primereact/ui/tag';
293
+ import { InputPasswordMaskChangeEvent, InputPasswordValueChangeEvent } from '@primereact/ui/inputpassword';
294
+ import * as React from 'react';
295
+
296
+ const rules = [
297
+ { id: 'length', label: 'At least 12 characters long', test: (v: string) => v.length >= 12, weight: 20 },
298
+ { id: 'uppercase', label: 'Contains uppercase letter', test: (v: string) => /[A-Z]/.test(v), weight: 20 },
299
+ { id: 'lowercase', label: 'Contains lowercase letter', test: (v: string) => /[a-z]/.test(v), weight: 20 },
300
+ { id: 'number', label: 'Contains number', test: (v: string) => /[0-9]/.test(v), weight: 20 },
301
+ { id: 'special', label: 'Contains special character (!@#$...)', test: (v: string) => /[^a-zA-Z0-9]/.test(v), weight: 20 }
302
+ ];
303
+
304
+ function getScore(value: string) {
305
+ if (!value) return 0;
306
+
307
+ return rules.reduce((acc, rule) => acc + (rule.test(value) ? rule.weight : 0), 0);
308
+ }
309
+
310
+ function getSeverity(score: number) {
311
+ if (score <= 20) return 'danger';
312
+
313
+ if (score <= 40) return 'warn';
314
+
315
+ if (score <= 60) return 'info';
316
+
317
+ return 'success';
318
+ }
319
+
320
+ function getLabel(score: number): string {
321
+ if (score === 0) return '';
322
+
323
+ if (score <= 20) return 'Too Weak';
324
+
325
+ if (score <= 40) return 'Weak';
326
+
327
+ if (score <= 60) return 'Fair';
328
+
329
+ if (score <= 80) return 'Strong';
330
+
331
+ return 'Very Strong';
332
+ }
333
+
334
+ export default function PopoverDemo() {
335
+ const [value, setValue] = React.useState('');
336
+ const [mask, setMask] = React.useState(true);
337
+ const [open, setOpen] = React.useState(false);
338
+ const score = getScore(value);
339
+ const severity = getSeverity(score);
340
+ const label = getLabel(score);
341
+
342
+ return (
343
+ <div className="flex justify-center">
344
+ <Popover.Root open={open}>
345
+ <Popover.Trigger as="div">
346
+ <IconField.Root>
347
+ <InputPassword
348
+ mask={mask}
349
+ onMaskChange={(e: InputPasswordMaskChangeEvent) => setMask(e.value)}
350
+ value={value}
351
+ placeholder="Create a password"
352
+ fluid
353
+ onValueChange={(e: InputPasswordValueChangeEvent) => setValue(e.value)}
354
+ onFocus={() => setOpen(true)}
355
+ onBlur={() => setOpen(false)}
356
+ />
357
+ <IconField.Inset>
358
+ {mask ? (
359
+ <Eye className="cursor-pointer" onClick={() => setMask(false)} />
360
+ ) : (
361
+ <EyeSlash className="cursor-pointer" onClick={() => setMask(true)} />
362
+ )}
363
+ </IconField.Inset>
364
+ </IconField.Root>
365
+ </Popover.Trigger>
366
+ <Popover.Portal>
367
+ <Popover.Positioner sideOffset={12} side="bottom" align="start">
368
+ <Popover.Popup className="max-w-72 w-full">
369
+ <Popover.Arrow />
370
+ <Popover.Content className="w-72">
371
+ <div className="flex flex-col gap-3">
372
+ <div className="flex items-center justify-between">
373
+ <div className="flex items-center gap-2">
374
+ <i className="pi pi-shield" style={{ fontSize: '1.25rem' }} />
375
+ <span className="font-semibold text-sm">Password Strength</span>
376
+ </div>
377
+ {label && <Tag severity={severity}>{label}</Tag>}
378
+ </div>
379
+
380
+ <ProgressBar.Root value={score}>
381
+ <ProgressBar.Track style={{ height: '6px' }}>
382
+ <ProgressBar.Indicator
383
+ className={
384
+ score <= 20
385
+ ? 'bg-red-400!'
386
+ : score <= 40
387
+ ? 'bg-amber-400!'
388
+ : score <= 60
389
+ ? 'bg-blue-400!'
390
+ : 'bg-green-400!'
391
+ }
392
+ />
393
+ </ProgressBar.Track>
394
+ </ProgressBar.Root>
395
+
396
+ <ul className="flex flex-col gap-2 list-none m-0 p-0">
397
+ {rules.map((rule) => {
398
+ const met = rule.test(value);
399
+
400
+ return (
401
+ <li key={rule.id} className="flex items-center gap-2 text-xs">
402
+ <i className={met ? 'pi pi-check text-green-500' : 'pi pi-times text-red-400'} />
403
+ <span
404
+ className={
405
+ met ? 'text-surface-500 dark:text-surface-400' : 'text-surface-700 dark:text-surface-200'
406
+ }
407
+ >
408
+ {rule.label}
409
+ </span>
410
+ </li>
411
+ );
412
+ })}
413
+ </ul>
414
+ </div>
415
+ </Popover.Content>
416
+ </Popover.Popup>
417
+ </Popover.Positioner>
418
+ </Popover.Portal>
419
+ </Popover.Root>
420
+ </div>
421
+ );
422
+ }
423
+ ```
424
+
425
+ ### Float Label
426
+
427
+ FloatLabel visually integrates a label with its form element. Visit [FloatLabel](/docs/components/floatlabel) documentation for more information.
428
+
429
+ ```tsx
430
+ import { FloatLabel } from '@primereact/ui/floatlabel';
431
+ import { InputPassword } from '@primereact/ui/inputpassword';
432
+ import { Label } from '@primereact/ui/label';
433
+
434
+ export default function FloatLabelDemo() {
435
+ return (
436
+ <div className="flex flex-wrap justify-center items-end gap-4">
437
+ <FloatLabel>
438
+ <InputPassword id="over_label" />
439
+ <Label htmlFor="over_label">Password</Label>
440
+ </FloatLabel>
441
+
442
+ <FloatLabel variant="in">
443
+ <InputPassword id="in_label" />
444
+ <Label htmlFor="in_label">Password</Label>
445
+ </FloatLabel>
446
+
447
+ <FloatLabel variant="on">
448
+ <InputPassword id="on_label" />
449
+ <Label htmlFor="on_label">Password</Label>
450
+ </FloatLabel>
451
+ </div>
452
+ );
453
+ }
454
+ ```
455
+
456
+ ### Ifta Label
457
+
458
+ IftaLabel is used to create infield top aligned labels. Visit [IftaLabel](/docs/components/iftalabel) documentation for more information.
459
+
460
+ ```tsx
461
+ import { IftaLabel } from '@primereact/ui/iftalabel';
462
+ import { InputPassword } from '@primereact/ui/inputpassword';
463
+ import { Label } from '@primereact/ui/label';
464
+
465
+ export default function IftaLabelDemo() {
466
+ return (
467
+ <div className="flex justify-center">
468
+ <IftaLabel>
469
+ <InputPassword id="password" variant="filled" />
470
+ <Label htmlFor="password" className="mb-2">
471
+ Password
472
+ </Label>
473
+ </IftaLabel>
474
+ </div>
475
+ );
476
+ }
477
+ ```
478
+
479
+ ### Clear Icon
480
+
481
+ Use a custom clear action to reset the password input.
482
+
483
+ ```tsx
484
+ 'use client';
485
+ import { Times } from '@primeicons/react/times';
486
+ import { IconField } from '@primereact/ui/iconfield';
487
+ import { InputPassword, type InputPasswordValueChangeEvent } from '@primereact/ui/inputpassword';
488
+ import * as React from 'react';
489
+
490
+ export default function BasicDemo() {
491
+ const [value, setValue] = React.useState<string>('');
492
+
493
+ return (
494
+ <div className="flex justify-center">
495
+ <IconField.Root>
496
+ <InputPassword className="w-56" value={value} onValueChange={(e: InputPasswordValueChangeEvent) => setValue(e.value)} />
497
+ <IconField.Inset>{value !== '' && <Times onClick={() => setValue('')} />}</IconField.Inset>
498
+ </IconField.Root>
499
+ </div>
500
+ );
501
+ }
502
+ ```
503
+
504
+ ### Fluid
505
+
506
+ The fluid prop makes the component take up the full width of its container when set to true.
507
+
508
+ ```tsx
509
+ import { InputPassword } from '@primereact/ui/inputpassword';
510
+
511
+ export default function FluidDemo() {
512
+ return (
513
+ <div>
514
+ <InputPassword fluid />
515
+ </div>
516
+ );
517
+ }
518
+ ```
519
+
520
+ ### Sizes
521
+
522
+ InputPassword provides `small` and `large` sizes as alternatives to the base.
523
+
524
+ ```tsx
525
+ import { InputPassword } from '@primereact/ui/inputpassword';
526
+
527
+ export default function SizesDemo() {
528
+ return (
529
+ <div className="flex flex-col items-center gap-4">
530
+ <InputPassword size="small" placeholder="Small" />
531
+ <InputPassword placeholder="Normal" />
532
+ <InputPassword size="large" placeholder="Large" />
533
+ </div>
534
+ );
535
+ }
536
+ ```
537
+
538
+ ### Filled
539
+
540
+ Specify the `variant` property as `filled` to display the component with a higher visual emphasis than the default outlined style.
541
+
542
+ ```tsx
543
+ import { InputPassword } from '@primereact/ui/inputpassword';
544
+
545
+ export default function FilledDemo() {
546
+ return (
547
+ <div className="flex justify-center">
548
+ <InputPassword variant="filled" />
549
+ </div>
550
+ );
551
+ }
552
+ ```
553
+
554
+ ### Disabled
555
+
556
+ Use the `disabled` property to disable a password input.
557
+
558
+ ```tsx
559
+ import { InputPassword } from '@primereact/ui/inputpassword';
560
+
561
+ export default function DisabledDemo() {
562
+ return (
563
+ <div className="flex justify-center">
564
+ <InputPassword disabled placeholder="Disabled" />
565
+ </div>
566
+ );
567
+ }
568
+ ```
569
+
570
+ ### Invalid
571
+
572
+ Specify the `invalid` property to display the component with a red border.
573
+
574
+ ```tsx
575
+ 'use client';
576
+ import { InputPassword, type InputPasswordValueChangeEvent } from '@primereact/ui/inputpassword';
577
+ import * as React from 'react';
578
+
579
+ export default function InvalidDemo() {
580
+ const [value1, setValue1] = React.useState<string>('');
581
+ const [value2, setValue2] = React.useState<string>('');
582
+
583
+ return (
584
+ <div className="flex flex-wrap justify-center gap-4">
585
+ <InputPassword
586
+ value={value1}
587
+ invalid={!value1}
588
+ onValueChange={(e: InputPasswordValueChangeEvent) => setValue1(e.value as string)}
589
+ placeholder="Password"
590
+ />
591
+ <InputPassword
592
+ value={value2}
593
+ invalid={!value2}
594
+ variant="filled"
595
+ onValueChange={(e: InputPasswordValueChangeEvent) => setValue2(e.value as string)}
596
+ placeholder="Password"
597
+ />
598
+ </div>
599
+ );
600
+ }
601
+ ```
602
+
603
+ ## Related
604
+
605
+ ### Sub-Components
606
+
607
+ See [Primitive API](/docs/primitive/components/inputpassword#api) for `InputPasswordRoot` component documentation.
608
+
609
+ ### Hooks
610
+
611
+ See [Headless API](/docs/headless/components/inputpassword#api) for `useInputPassword` hook documentation.
612
+
613
+ ### Accessibility
614
+
615
+ See [InputPassword Primitive](/docs/primitive/components/inputpassword#accessibility) for WAI-ARIA compliance details and keyboard support.
616
+
617
+
618
+ ## Theming
619
+
620
+ ### CSS Classes
621
+
622
+ List of class names used in the styled mode.
623
+
624
+ <DocTable name="InputPassword" category="style" />
625
+
626
+ ### Design Tokens
627
+
628
+ List of design tokens.
629
+
630
+ <DocTable name="InputPassword" category="token" />