@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,313 @@
1
+ # ProgressBar
2
+
3
+ ProgressBar is a process status indicator.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { Send } from '@primeicons/react';
8
+ import { ProgressBar } from '@/components/ui/progressbar';
9
+ import * as React from 'react';
10
+
11
+ export default function Preview() {
12
+ const [value, setValue] = React.useState(75);
13
+
14
+ React.useEffect(() => {
15
+ const interval = setInterval(() => {
16
+ setValue((prev) => {
17
+ if (prev >= 100) {
18
+ clearInterval(interval);
19
+
20
+ return 100;
21
+ }
22
+
23
+ return Math.min(100, prev + 1);
24
+ });
25
+ }, 500);
26
+
27
+ return () => clearInterval(interval);
28
+ }, []);
29
+
30
+ const totalMinutes = 8 * 60 + 15;
31
+ const remaining = Math.max(0, Math.round(totalMinutes * (1 - value / 100)));
32
+ const h = Math.floor(remaining / 60);
33
+ const m = remaining % 60;
34
+
35
+ return (
36
+ <div className="max-w-xs mx-auto space-y-3">
37
+ <div className="flex items-center justify-between">
38
+ <div className="flex items-center gap-1.5 text-sm">
39
+ <span className="text-color font-medium">British Airways</span>
40
+ <span className="text-muted-color">·</span>
41
+ <span className="text-muted-color tabular-nums">BA 178</span>
42
+ </div>
43
+ <span className="text-emerald-500 font-medium uppercase text-xs tracking-wide">On Time</span>
44
+ </div>
45
+ <div className="flex items-end justify-between">
46
+ <div className="flex flex-col">
47
+ <span className="text-2xl font-bold tracking-tight">LHR</span>
48
+ <span className="text-muted-color text-sm tabular-nums">14:30</span>
49
+ </div>
50
+ <div className="flex flex-col items-end">
51
+ <span className="text-2xl font-bold tracking-tight">JFK</span>
52
+ <span className="text-muted-color text-sm tabular-nums">18:45</span>
53
+ </div>
54
+ </div>
55
+ <ProgressBar value={value} />
56
+ <div className="flex items-center gap-2 text-sm text-color">
57
+ <Send className="size-3.5! text-primary" />
58
+ <span className="tabular-nums ">{value >= 100 ? 'Arrived' : `${h}h ${m.toString().padStart(2, '0')}m remaining`}</span>
59
+ </div>
60
+ </div>
61
+ );
62
+ }
63
+ ```
64
+
65
+ ## Installation
66
+
67
+ <DocTabs value="CLI">
68
+ <DocTabsList>
69
+ <DocTabsTab value="CLI">Shadcn CLI</DocTabsTab>
70
+ <DocTabsTab value="Manual">Manual</DocTabsTab>
71
+ </DocTabsList>
72
+ <DocTabsPanel value="CLI">
73
+ ```bash
74
+ npx shadcn@latest add https://primereact.dev/r/progressbar.json
75
+ ```
76
+ </DocTabsPanel>
77
+ <DocTabsPanel value="Manual">
78
+ Copy and paste the following code into your project
79
+ <DocSourceViewer name="components/ui/progressbar" />
80
+ Update the import paths to match your project setup.
81
+ </DocTabsPanel>
82
+ </DocTabs>
83
+
84
+ ## Usage
85
+
86
+ ```tsx
87
+ import { ProgressBar } from '@/components/ui/progressbar';
88
+ ```
89
+
90
+ ```tsx
91
+ <ProgressBar value={50} />
92
+ ```
93
+
94
+ ## Examples
95
+
96
+ ### Basic
97
+
98
+ Reflects the completion percentage of an ongoing process.
99
+
100
+ ```tsx
101
+ import { ProgressBar } from '@/components/ui/progressbar';
102
+
103
+ export default function BasicDemo() {
104
+ const value = 50;
105
+
106
+ return (
107
+ <div className="max-w-sm mx-auto">
108
+ <ProgressBar value={value} />
109
+ </div>
110
+ );
111
+ }
112
+ ```
113
+
114
+ ### Dynamic
115
+
116
+ Value is reactive so updating it dynamically changes the bar as well.
117
+
118
+ ```tsx
119
+ 'use client';
120
+ import { ProgressBar } from '@/components/ui/progressbar';
121
+ import * as React from 'react';
122
+
123
+ export default function DynamicDemo() {
124
+ const [value, setValue] = React.useState(0);
125
+ const interval = React.useRef<NodeJS.Timeout | undefined>(undefined);
126
+
127
+ React.useEffect(() => {
128
+ interval.current = setInterval(() => {
129
+ setValue((prevValue) => {
130
+ const newValue = prevValue + Math.random() * 40 + 1;
131
+
132
+ if (newValue >= 100) {
133
+ clearInterval(interval.current);
134
+
135
+ return 100;
136
+ }
137
+
138
+ return newValue;
139
+ });
140
+ }, 2000);
141
+
142
+ return () => {
143
+ if (interval.current) {
144
+ clearInterval(interval.current);
145
+ interval.current = undefined;
146
+ }
147
+ };
148
+ }, []);
149
+
150
+ return (
151
+ <div className="max-w-sm mx-auto">
152
+ <div className="text-color font-medium text-sm mb-2">Uploading Files</div>
153
+ <ProgressBar value={value} />
154
+ </div>
155
+ );
156
+ }
157
+ ```
158
+
159
+ ### Formatter
160
+
161
+ Custom formatter function to format the display value.
162
+
163
+ ```tsx
164
+ 'use client';
165
+ import { ProgressBar } from '@/components/ui/progressbar';
166
+
167
+ export default function FormatterDemo() {
168
+ return (
169
+ <div className="max-w-sm mx-auto">
170
+ <ProgressBar value={50} formatter={(value: number) => `${value}/100`} />
171
+ </div>
172
+ );
173
+ }
174
+ ```
175
+
176
+ ### Template
177
+
178
+ Place `ProgressBar.Value` where the progress value should be displayed inside the `ProgressBar` and customize `formatter` prop to display in different format.
179
+
180
+ ```tsx
181
+ 'use client';
182
+ import { ProgressBar } from '@/components/ui/progressbar';
183
+ import * as React from 'react';
184
+
185
+ export default function TemplateDemo() {
186
+ const [uploadedFileSize, setUploadedFileSize] = React.useState(0);
187
+ const maxFileSize = 5000;
188
+
189
+ React.useEffect(() => {
190
+ const interval = setInterval(() => {
191
+ setUploadedFileSize((prevValue) => {
192
+ const newValue = prevValue + Math.floor(Math.random() * 200) + 1;
193
+
194
+ return newValue >= maxFileSize ? maxFileSize : newValue;
195
+ });
196
+ }, 500);
197
+
198
+ return () => clearInterval(interval);
199
+ }, []);
200
+
201
+ const formatFileSize = (bytes: number) => {
202
+ if (bytes < 1024) return bytes.toFixed(2) + ' B';
203
+ else if (bytes < 1048576) return (bytes / 1024).toFixed(2) + ' KB';
204
+ else return (bytes / 1048576).toFixed(2) + ' MB';
205
+ };
206
+
207
+ return (
208
+ <div>
209
+ <div className="max-w-sm mx-auto space-y-8">
210
+ <ProgressBar value={uploadedFileSize} max={maxFileSize} formatter={(value: number) => `${value.toFixed(1)}%`} />
211
+
212
+ <ProgressBar
213
+ value={uploadedFileSize}
214
+ max={maxFileSize}
215
+ formatter={(value: number) => {
216
+ const currentSize = (value / 100) * maxFileSize;
217
+
218
+ return `${formatFileSize(currentSize)} / ${formatFileSize(maxFileSize)}`;
219
+ }}
220
+ />
221
+
222
+ <ProgressBar
223
+ value={uploadedFileSize}
224
+ max={maxFileSize}
225
+ formatter={(value: number) => {
226
+ const remaining = ((maxFileSize - uploadedFileSize) / 200).toFixed(0);
227
+
228
+ return `${value.toFixed(0)}% (${remaining}s remaining)`;
229
+ }}
230
+ />
231
+
232
+ <ProgressBar
233
+ value={uploadedFileSize}
234
+ max={maxFileSize}
235
+ formatter={(value: number) => {
236
+ if (value < 40) return 'Preparing file...';
237
+ else if (value < 60) return 'Uploading file...';
238
+ else if (value < 99) return 'Finalizing...';
239
+ else return 'Upload complete';
240
+ }}
241
+ />
242
+ </div>
243
+ </div>
244
+ );
245
+ }
246
+ ```
247
+
248
+ ### Indeterminate
249
+
250
+ For progresses with no value to track, set the `mode` property to `indeterminate`.
251
+
252
+ ```tsx
253
+ import { ProgressBar } from '@/components/ui/progressbar';
254
+
255
+ export default function IndeterminateDemo() {
256
+ return (
257
+ <div className="max-w-sm mx-auto">
258
+ <ProgressBar mode="indeterminate" className="h-1.5" />
259
+ </div>
260
+ );
261
+ }
262
+ ```
263
+
264
+ ### As Steps
265
+
266
+ Steps are used to display a progress with multiple steps.
267
+
268
+ ```tsx
269
+ 'use client';
270
+ import { Button } from '@/components/ui/button';
271
+ import { ProgressBar } from '@/components/ui/progressbar';
272
+ import * as React from 'react';
273
+
274
+ const orderProgress = ['Place Order', 'Order Placed', 'Processing', 'Shipped', 'Delivered'];
275
+
276
+ export default function StepsDemo() {
277
+ const [step, setStep] = React.useState(1);
278
+ const nextStep = () => setStep((prev) => Math.min(prev + 1, orderProgress.length - 1));
279
+ const prevStep = () => setStep((prev) => Math.max(prev - 1, 0));
280
+
281
+ return (
282
+ <div>
283
+ <div className="max-w-sm mx-auto">
284
+ <div className="mb-3 font-medium text-sm">{orderProgress[step]}</div>
285
+ <ProgressBar value={step} min={0} max={orderProgress.length - 1} />
286
+
287
+ <div className="flex items-center justify-between mt-6">
288
+ <Button onClick={prevStep} disabled={step === 0} rounded variant="text" severity="contrast">
289
+ Previous
290
+ </Button>
291
+ <Button onClick={nextStep} disabled={step === orderProgress.length - 1} rounded variant="text" severity="contrast">
292
+ Next
293
+ </Button>
294
+ </div>
295
+ </div>
296
+ </div>
297
+ );
298
+ }
299
+ ```
300
+
301
+ ## Related
302
+
303
+ ### Sub-Components
304
+
305
+ See [Primitive API](/docs/primitive/components/progressbar#api) for `ProgressBarRoot`, `ProgressBarTrack`, `ProgressBarIndicator`, `ProgressBarLabel`, `ProgressBarValue` component documentation.
306
+
307
+ ### Hooks
308
+
309
+ See [Headless API](/docs/headless/components/progressbar#api) for `useProgressBar` hook documentation.
310
+
311
+ ### Accessibility
312
+
313
+ See [ProgressBar Primitive](/docs/primitive/components/progressbar#accessibility) for WAI-ARIA compliance details and keyboard support.
@@ -0,0 +1,366 @@
1
+ # RadioButton
2
+
3
+ RadioButton is an extension to standard radio button element with theming.
4
+
5
+ ```tsx
6
+ 'use client';
7
+ import { RadioButton, RadioButtonGroup } from '@/components/ui/radiobutton';
8
+
9
+ const workspaceEnvironments = [
10
+ {
11
+ id: '1',
12
+ name: 'US East — Virginia',
13
+ description: 'Low latency, auto-scaling enabled.',
14
+ tag: 'Faster',
15
+ flagClass: 'flag-us'
16
+ },
17
+ {
18
+ id: '2',
19
+ name: 'EU West — Frankfurt',
20
+ description: 'CI/CD pipeline, daily backups.',
21
+ tag: null,
22
+ flagClass: 'flag-de'
23
+ },
24
+ {
25
+ id: '3',
26
+ name: 'EU East — Poland',
27
+ description: 'GDPR compliant, secure.',
28
+ tag: null,
29
+ flagClass: 'flag-pl'
30
+ }
31
+ ];
32
+
33
+ export default function Preview() {
34
+ return (
35
+ <div className="max-w-xs mx-auto">
36
+ <h5 className="font-medium">Select a deployment environment:</h5>
37
+ <RadioButtonGroup defaultValue="1" className="mt-2 flex flex-col gap-3">
38
+ {workspaceEnvironments.map((card) => (
39
+ <label
40
+ key={card.id}
41
+ htmlFor={`tw-preview-${card.id}`}
42
+ className="flex-1 flex items-start gap-2 p-4 rounded-lg border border-surface has-checked:border-primary hover:bg-surface-100 dark:hover:bg-surface-800 transition-colors cursor-pointer"
43
+ >
44
+ <div className="flex-1 flex flex-col gap-2">
45
+ <div className="inline-flex items-center gap-2">
46
+ <span className={`flag w-5! h-auto! aspect-15/10 ${card.flagClass}`} />
47
+ <h5 className="font-medium leading-none">{card.name}</h5>
48
+ </div>
49
+ <p className="text-sm text-surface-500">{card.description}</p>
50
+ </div>
51
+
52
+ <RadioButton inputId={`tw-preview-${card.id}`} name="tw-preview-card" value={card.id} />
53
+ </label>
54
+ ))}
55
+ </RadioButtonGroup>
56
+ </div>
57
+ );
58
+ }
59
+ ```
60
+
61
+ ## Installation
62
+
63
+ <DocTabs value="CLI">
64
+ <DocTabsList>
65
+ <DocTabsTab value="CLI">Shadcn CLI</DocTabsTab>
66
+ <DocTabsTab value="Manual">Manual</DocTabsTab>
67
+ </DocTabsList>
68
+ <DocTabsPanel value="CLI">
69
+ ```bash
70
+ npx shadcn@latest add https://primereact.dev/r/radiobutton.json
71
+ ```
72
+ </DocTabsPanel>
73
+ <DocTabsPanel value="Manual">
74
+ <DocStepper>
75
+ <DocStep>
76
+ Copy and paste the following code into your project
77
+ <DocSourceViewer name="components/ui/radiobutton" />
78
+ </DocStep>
79
+ <DocStep>
80
+ Update the import paths to match your project setup.
81
+ </DocStep>
82
+ </DocStepper>
83
+ </DocTabsPanel>
84
+ </DocTabs>
85
+
86
+ ## Usage
87
+
88
+ ```tsx
89
+ import { RadioButton, RadioButtonGroup } from '@/components/ui/radiobutton';
90
+ ```
91
+
92
+ ```tsx
93
+ <RadioButtonGroup>
94
+ <RadioButton />
95
+ </RadioButtonGroup>
96
+ ```
97
+
98
+ ## Examples
99
+
100
+ ### Basic
101
+
102
+ ```tsx
103
+ 'use client';
104
+ import { Label } from '@/components/ui/label';
105
+ import { RadioButton, RadioButtonGroup } from '@/components/ui/radiobutton';
106
+
107
+ export default function BasicDemo() {
108
+ return (
109
+ <div className="flex items-center justify-center">
110
+ <RadioButtonGroup orientation="vertical">
111
+ <div className="flex items-center gap-3">
112
+ <RadioButton inputId="ingredient-strawberry" name="fruit" />
113
+ <Label htmlFor="ingredient-strawberry">🍓 Strawberry</Label>
114
+ </div>
115
+
116
+ <div className="flex items-center gap-3">
117
+ <RadioButton inputId="ingredient-banana" name="fruit" />
118
+ <Label htmlFor="ingredient-banana">🍌 Banana</Label>
119
+ </div>
120
+
121
+ <div className="flex items-center gap-3">
122
+ <RadioButton inputId="ingredient-watermelon" name="fruit" />
123
+ <Label htmlFor="ingredient-watermelon">🍉 Watermelon</Label>
124
+ </div>
125
+ </RadioButtonGroup>
126
+ </div>
127
+ );
128
+ }
129
+ ```
130
+
131
+ ### Group
132
+
133
+ Use the `RadioButton.Group` component with `value` and `onValueChange` props to control the selected state of radio buttons.
134
+
135
+ ```tsx
136
+ 'use client';
137
+ import { Label } from '@/components/ui/label';
138
+ import { RadioButton, RadioButtonGroup } from '@/components/ui/radiobutton';
139
+
140
+ export default function GroupDemo() {
141
+ return (
142
+ <div className="flex items-center justify-center">
143
+ <RadioButtonGroup defaultValue="cheese">
144
+ <div className="flex items-center gap-2">
145
+ <RadioButton inputId="ingredient1" name="pizza" value="cheese" />
146
+ <Label htmlFor="ingredient1">Cheese</Label>
147
+ </div>
148
+ <div className="flex items-center gap-2">
149
+ <RadioButton inputId="ingredient2" name="pizza" value="mushroom" />
150
+ <Label htmlFor="ingredient2">Mushroom</Label>
151
+ </div>
152
+ <div className="flex items-center gap-2">
153
+ <RadioButton inputId="ingredient3" name="pizza" value="pepper" />
154
+ <Label htmlFor="ingredient3">Pepper</Label>
155
+ </div>
156
+ <div className="flex items-center gap-2">
157
+ <RadioButton inputId="ingredient4" name="pizza" value="onion" />
158
+ <Label htmlFor="ingredient4">Onion</Label>
159
+ </div>
160
+ </RadioButtonGroup>
161
+ </div>
162
+ );
163
+ }
164
+ ```
165
+
166
+ ### Dynamic
167
+
168
+ RadioButtons can be generated using a list of values.
169
+
170
+ ```tsx
171
+ 'use client';
172
+ import { RadioButton, RadioButtonGroup } from '@/components/ui/radiobutton';
173
+ import type { RadioButtonGroupValueChangeEvent } from 'primereact/radiobuttongroup';
174
+ import { Label } from '@/components/ui/label';
175
+ import * as React from 'react';
176
+
177
+ export default function DynamicDemo() {
178
+ const [ingredient, setIngredient] = React.useState<string | undefined>();
179
+ const categories = [
180
+ { name: 'Accounting', key: 'A' },
181
+ { name: 'Marketing', key: 'M' },
182
+ { name: 'Production', key: 'P' },
183
+ { name: 'Research', key: 'R' }
184
+ ];
185
+
186
+ return (
187
+ <div className="flex items-center justify-center">
188
+ <RadioButtonGroup value={ingredient} onValueChange={(e: RadioButtonGroupValueChangeEvent) => setIngredient(e.value as string)}>
189
+ {categories.map((item) => (
190
+ <div key={item.key} className="flex items-center gap-2">
191
+ <RadioButton inputId={item.key} name="category" value={item.key} />
192
+ <Label htmlFor={item.key}>{item.name}</Label>
193
+ </div>
194
+ ))}
195
+ </RadioButtonGroup>
196
+ </div>
197
+ );
198
+ }
199
+ ```
200
+
201
+ ### Card
202
+
203
+ RadioButtons can be displayed in a card style.
204
+
205
+ ```tsx
206
+ 'use client';
207
+ import { Label } from '@/components/ui/label';
208
+ import { RadioButton, RadioButtonGroup } from '@/components/ui/radiobutton';
209
+
210
+ const CardDemo = () => {
211
+ const cards = [
212
+ { id: 'card1', name: '💳 Credit Card', description: 'Pay with Visa, Mastercard, or AMEX.' },
213
+ { id: 'card2', name: '💸 PayPal', description: 'Connect your PayPal account' },
214
+ { id: 'card3', name: '🪙 Crypto', description: 'Pay with Bitcoin or Ethereum.' }
215
+ ];
216
+
217
+ return (
218
+ <div className="max-w-xs mx-auto">
219
+ <h5 className="font-medium mb-4">Select a payment method:</h5>
220
+ <RadioButtonGroup orientation="vertical" defaultValue="card1">
221
+ {cards.map((card) => (
222
+ <Label
223
+ key={card.id}
224
+ htmlFor={card.id}
225
+ className="flex-1 flex items-start gap-2 p-4 rounded-lg border border-surface has-checked:border-primary hover:bg-surface-100 dark:hover:bg-surface-800 transition-colors cursor-pointer"
226
+ >
227
+ <div className="flex-1 flex flex-col gap-2">
228
+ <h5 className="font-medium leading-none">{card.name}</h5>
229
+ <p className="text-sm text-surface-500">{card.description}</p>
230
+ </div>
231
+
232
+ <RadioButton inputId={card.id} name="card" value={card.id} />
233
+ </Label>
234
+ ))}
235
+ </RadioButtonGroup>
236
+ </div>
237
+ );
238
+ };
239
+
240
+ export default CardDemo;
241
+ ```
242
+
243
+ ### Sizes
244
+
245
+ Use the `size` property to change the size of a radio button.
246
+
247
+ ```tsx
248
+ 'use client';
249
+ import { RadioButton } from '@/components/ui/radiobutton';
250
+ import { Label } from '@/components/ui/label';
251
+ import * as React from 'react';
252
+
253
+ export default function SizesDemo() {
254
+ const [value, setValue] = React.useState<string>('size_normal');
255
+
256
+ return (
257
+ <div className="flex justify-center">
258
+ <div className="flex flex-wrap gap-4">
259
+ <div className="flex items-center gap-2">
260
+ <RadioButton
261
+ inputId="tw-size_small"
262
+ checked={value === 'size_small'}
263
+ onChange={() => setValue('size_small')}
264
+ name="tw-size"
265
+ size="small"
266
+ />
267
+ <Label htmlFor="tw-size_small" className="text-sm">
268
+ Small
269
+ </Label>
270
+ </div>
271
+ <div className="flex items-center gap-2">
272
+ <RadioButton inputId="tw-size_normal" checked={value === 'size_normal'} onChange={() => setValue('size_normal')} name="tw-size" />
273
+ <Label htmlFor="tw-size_normal">Normal</Label>
274
+ </div>
275
+ <div className="flex items-center gap-2">
276
+ <RadioButton
277
+ inputId="tw-size_large"
278
+ checked={value === 'size_large'}
279
+ onChange={() => setValue('size_large')}
280
+ name="tw-size"
281
+ size="large"
282
+ />
283
+ <Label htmlFor="tw-size_large" className="text-lg">
284
+ Large
285
+ </Label>
286
+ </div>
287
+ </div>
288
+ </div>
289
+ );
290
+ }
291
+ ```
292
+
293
+ ### Filled
294
+
295
+ Specify the `filled` property to display the component with a higher visual emphasis than the default outlined style.
296
+
297
+ ```tsx
298
+ 'use client';
299
+ import { RadioButton } from '@/components/ui/radiobutton';
300
+ import * as React from 'react';
301
+
302
+ export default function FilledDemo() {
303
+ const [checked, setChecked] = React.useState(false);
304
+
305
+ return (
306
+ <div className="flex items-center justify-center">
307
+ <RadioButton variant="filled" checked={checked} onClick={() => setChecked((prev) => !prev)} />
308
+ </div>
309
+ );
310
+ }
311
+ ```
312
+
313
+ ### Disabled
314
+
315
+ When the `disabled` property is present, the element cannot be edited and focused.
316
+
317
+ ```tsx
318
+ import { RadioButton, RadioButtonGroup } from '@/components/ui/radiobutton';
319
+
320
+ export default function DisabledDemo() {
321
+ return (
322
+ <div className="flex justify-center">
323
+ <RadioButtonGroup value="2">
324
+ <RadioButton disabled />
325
+ <RadioButton value="2" disabled />
326
+ </RadioButtonGroup>
327
+ </div>
328
+ );
329
+ }
330
+ ```
331
+
332
+ ### Invalid
333
+
334
+ Invalid state is displayed using the `invalid` property to indicate a failed validation. You can use this style when integrating with form validation libraries.
335
+
336
+ ```tsx
337
+ 'use client';
338
+ import { RadioButton } from '@/components/ui/radiobutton';
339
+ import * as React from 'react';
340
+
341
+ export default function InvalidDemo() {
342
+ const [checked, setChecked] = React.useState(false);
343
+
344
+ return (
345
+ <div className="flex justify-center">
346
+ <RadioButton invalid checked={checked} onClick={() => setChecked((prev) => !prev)} />
347
+ </div>
348
+ );
349
+ }
350
+ ```
351
+
352
+ ## Accessibility
353
+
354
+ ### Screen Reader
355
+
356
+ RadioButton component uses a hidden native radio button element internally that is only visible to screen readers. Value to describe the component can either be provided via label tag combined with id prop or using aria-labelledby, aria-label props.
357
+
358
+ ```tsx
359
+ <label htmlFor="rb1">One</label>
360
+ <RadioButton inputId="rb1" />
361
+
362
+ <span id="rb2">Two</span>
363
+ <RadioButton aria-labelledby="rb2" />
364
+
365
+ <RadioButton aria-label="Three" />
366
+ ```