@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.
- package/LICENSE.md +45 -0
- package/README.md +94 -0
- package/data/llms/headless/add-ons/introduction.md +16 -0
- package/data/llms/headless/components/accordion/api.json +252 -0
- package/data/llms/headless/components/accordion.md +196 -0
- package/data/llms/headless/components/animateonscroll/api.json +88 -0
- package/data/llms/headless/components/animateonscroll.md +141 -0
- package/data/llms/headless/components/autocomplete/api.json +787 -0
- package/data/llms/headless/components/autocomplete.md +249 -0
- package/data/llms/headless/components/avatar/api.json +154 -0
- package/data/llms/headless/components/avatar.md +149 -0
- package/data/llms/headless/components/badge/api.json +68 -0
- package/data/llms/headless/components/badge.md +150 -0
- package/data/llms/headless/components/breadcrumb/api.json +142 -0
- package/data/llms/headless/components/breadcrumb.md +149 -0
- package/data/llms/headless/components/button/api.json +62 -0
- package/data/llms/headless/components/button.md +73 -0
- package/data/llms/headless/components/card/api.json +36 -0
- package/data/llms/headless/components/card.md +96 -0
- package/data/llms/headless/components/carousel/api.json +793 -0
- package/data/llms/headless/components/carousel.md +196 -0
- package/data/llms/headless/components/checkbox/api.json +593 -0
- package/data/llms/headless/components/checkbox.md +184 -0
- package/data/llms/headless/components/chip/api.json +107 -0
- package/data/llms/headless/components/chip.md +141 -0
- package/data/llms/headless/components/collapsible/api.json +301 -0
- package/data/llms/headless/components/collapsible.md +136 -0
- package/data/llms/headless/components/compare/api.json +533 -0
- package/data/llms/headless/components/compare.md +142 -0
- package/data/llms/headless/components/contextmenu/api.json +495 -0
- package/data/llms/headless/components/contextmenu.md +282 -0
- package/data/llms/headless/components/datatable/api.json +1680 -0
- package/data/llms/headless/components/datatable.md +258 -0
- package/data/llms/headless/components/dataview/api.json +199 -0
- package/data/llms/headless/components/dataview.md +147 -0
- package/data/llms/headless/components/datepicker/api.json +2796 -0
- package/data/llms/headless/components/datepicker.md +456 -0
- package/data/llms/headless/components/dialog/api.json +626 -0
- package/data/llms/headless/components/dialog.md +280 -0
- package/data/llms/headless/components/divider/api.json +130 -0
- package/data/llms/headless/components/divider.md +92 -0
- package/data/llms/headless/components/drawer/api.json +425 -0
- package/data/llms/headless/components/drawer.md +220 -0
- package/data/llms/headless/components/fieldset/api.json +195 -0
- package/data/llms/headless/components/fieldset.md +154 -0
- package/data/llms/headless/components/fileupload/api.json +905 -0
- package/data/llms/headless/components/fileupload.md +323 -0
- package/data/llms/headless/components/floatlabel/api.json +36 -0
- package/data/llms/headless/components/floatlabel.md +19 -0
- package/data/llms/headless/components/fluid/api.json +36 -0
- package/data/llms/headless/components/fluid.md +19 -0
- package/data/llms/headless/components/focustrap/api.json +135 -0
- package/data/llms/headless/components/focustrap.md +125 -0
- package/data/llms/headless/components/gallery/api.json +1349 -0
- package/data/llms/headless/components/gallery.md +355 -0
- package/data/llms/headless/components/iconfield/api.json +62 -0
- package/data/llms/headless/components/iconfield.md +19 -0
- package/data/llms/headless/components/iftalabel/api.json +62 -0
- package/data/llms/headless/components/iftalabel.md +19 -0
- package/data/llms/headless/components/inplace/api.json +340 -0
- package/data/llms/headless/components/inplace.md +153 -0
- package/data/llms/headless/components/inputcolor/api.json +469 -0
- package/data/llms/headless/components/inputcolor.md +253 -0
- package/data/llms/headless/components/inputgroup/api.json +62 -0
- package/data/llms/headless/components/inputgroup.md +19 -0
- package/data/llms/headless/components/inputnumber/api.json +554 -0
- package/data/llms/headless/components/inputnumber.md +167 -0
- package/data/llms/headless/components/inputotp/api.json +276 -0
- package/data/llms/headless/components/inputotp.md +130 -0
- package/data/llms/headless/components/inputpassword/api.json +180 -0
- package/data/llms/headless/components/inputpassword.md +117 -0
- package/data/llms/headless/components/inputtags/api.json +497 -0
- package/data/llms/headless/components/inputtags.md +298 -0
- package/data/llms/headless/components/inputtext/api.json +81 -0
- package/data/llms/headless/components/inputtext.md +109 -0
- package/data/llms/headless/components/knob/api.json +429 -0
- package/data/llms/headless/components/knob.md +151 -0
- package/data/llms/headless/components/label/api.json +62 -0
- package/data/llms/headless/components/label.md +19 -0
- package/data/llms/headless/components/listbox/api.json +814 -0
- package/data/llms/headless/components/listbox.md +194 -0
- package/data/llms/headless/components/menu/api.json +1247 -0
- package/data/llms/headless/components/menu.md +283 -0
- package/data/llms/headless/components/message/api.json +131 -0
- package/data/llms/headless/components/message.md +143 -0
- package/data/llms/headless/components/metergroup/api.json +266 -0
- package/data/llms/headless/components/metergroup.md +129 -0
- package/data/llms/headless/components/motion/api.json +237 -0
- package/data/llms/headless/components/motion.md +160 -0
- package/data/llms/headless/components/navigationmenu/api.json +220 -0
- package/data/llms/headless/components/navigationmenu.md +166 -0
- package/data/llms/headless/components/orderlist/api.json +196 -0
- package/data/llms/headless/components/orderlist.md +221 -0
- package/data/llms/headless/components/organizationchart/api.json +372 -0
- package/data/llms/headless/components/organizationchart.md +254 -0
- package/data/llms/headless/components/paginator/api.json +311 -0
- package/data/llms/headless/components/paginator.md +187 -0
- package/data/llms/headless/components/panel/api.json +195 -0
- package/data/llms/headless/components/panel.md +150 -0
- package/data/llms/headless/components/picklist/api.json +293 -0
- package/data/llms/headless/components/picklist.md +270 -0
- package/data/llms/headless/components/popover/api.json +405 -0
- package/data/llms/headless/components/popover.md +301 -0
- package/data/llms/headless/components/portal/api.json +56 -0
- package/data/llms/headless/components/portal.md +102 -0
- package/data/llms/headless/components/positioner/api.json +165 -0
- package/data/llms/headless/components/positioner.md +181 -0
- package/data/llms/headless/components/progressbar/api.json +87 -0
- package/data/llms/headless/components/progressbar.md +122 -0
- package/data/llms/headless/components/progressspinner/api.json +337 -0
- package/data/llms/headless/components/progressspinner.md +128 -0
- package/data/llms/headless/components/radiobutton/api.json +569 -0
- package/data/llms/headless/components/radiobutton.md +195 -0
- package/data/llms/headless/components/rating/api.json +347 -0
- package/data/llms/headless/components/rating.md +181 -0
- package/data/llms/headless/components/scrollarea/api.json +730 -0
- package/data/llms/headless/components/scrollarea.md +232 -0
- package/data/llms/headless/components/select/api.json +829 -0
- package/data/llms/headless/components/select.md +262 -0
- package/data/llms/headless/components/sidebar/api.json +433 -0
- package/data/llms/headless/components/sidebar.md +266 -0
- package/data/llms/headless/components/skeleton/api.json +68 -0
- package/data/llms/headless/components/skeleton.md +95 -0
- package/data/llms/headless/components/slider/api.json +559 -0
- package/data/llms/headless/components/slider.md +158 -0
- package/data/llms/headless/components/speeddial/api.json +459 -0
- package/data/llms/headless/components/speeddial.md +181 -0
- package/data/llms/headless/components/splitter/api.json +582 -0
- package/data/llms/headless/components/splitter.md +159 -0
- package/data/llms/headless/components/stepper/api.json +385 -0
- package/data/llms/headless/components/stepper.md +183 -0
- package/data/llms/headless/components/styleclass/api.json +134 -0
- package/data/llms/headless/components/styleclass.md +129 -0
- package/data/llms/headless/components/tabs/api.json +336 -0
- package/data/llms/headless/components/tabs.md +158 -0
- package/data/llms/headless/components/tag/api.json +62 -0
- package/data/llms/headless/components/tag.md +121 -0
- package/data/llms/headless/components/terminal/api.json +117 -0
- package/data/llms/headless/components/terminal.md +183 -0
- package/data/llms/headless/components/textarea/api.json +81 -0
- package/data/llms/headless/components/textarea.md +110 -0
- package/data/llms/headless/components/timeline/api.json +270 -0
- package/data/llms/headless/components/timeline.md +117 -0
- package/data/llms/headless/components/toast/api.json +455 -0
- package/data/llms/headless/components/toast.md +277 -0
- package/data/llms/headless/components/togglebutton/api.json +357 -0
- package/data/llms/headless/components/togglebutton.md +183 -0
- package/data/llms/headless/components/toggleswitch/api.json +326 -0
- package/data/llms/headless/components/toggleswitch.md +164 -0
- package/data/llms/headless/components/toolbar/api.json +68 -0
- package/data/llms/headless/components/toolbar.md +96 -0
- package/data/llms/headless/components/tooltip/api.json +478 -0
- package/data/llms/headless/components/tooltip.md +233 -0
- package/data/llms/headless/components/tree/api.json +1297 -0
- package/data/llms/headless/components/tree.md +297 -0
- package/data/llms/headless/components/treetable/api.json +1680 -0
- package/data/llms/headless/components/treetable.md +177 -0
- package/data/llms/headless/guides/ai/llms.md +25 -0
- package/data/llms/headless/guides/installation.md +126 -0
- package/data/llms/headless/guides/introduction.md +20 -0
- package/data/llms/headless/guides/misc/accessibility.md +228 -0
- package/data/llms/headless/llms.md +25 -0
- package/data/llms/headless/resources/introduction.md +15 -0
- package/data/llms/hooks/gettingstarted/introduction.md +34 -0
- package/data/llms/hooks/gettingstarted/setup.md +54 -0
- package/data/llms/hooks/use-attr-selector.md +25 -0
- package/data/llms/hooks/use-controlled-state.md +31 -0
- package/data/llms/hooks/use-event-listener.md +37 -0
- package/data/llms/hooks/use-filter.md +312 -0
- package/data/llms/hooks/use-hot-key.md +40 -0
- package/data/llms/hooks/use-id.md +24 -0
- package/data/llms/hooks/use-intersection-observer.md +42 -0
- package/data/llms/hooks/use-is-mobile.md +24 -0
- package/data/llms/hooks/use-key-filter.md +139 -0
- package/data/llms/hooks/use-local-storage.md +28 -0
- package/data/llms/hooks/use-mask.md +53 -0
- package/data/llms/hooks/use-match-media.md +28 -0
- package/data/llms/hooks/use-mount-effect.md +25 -0
- package/data/llms/hooks/use-mounted.md +36 -0
- package/data/llms/hooks/use-number-formatter.md +48 -0
- package/data/llms/hooks/use-presence.md +44 -0
- package/data/llms/hooks/use-previous.md +28 -0
- package/data/llms/hooks/use-props.md +37 -0
- package/data/llms/hooks/use-queue-task.md +29 -0
- package/data/llms/hooks/use-scrolltop.md +87 -0
- package/data/llms/hooks/use-sortable-list.md +226 -0
- package/data/llms/hooks/use-tree-filter.md +216 -0
- package/data/llms/hooks/use-unmount-effect.md +23 -0
- package/data/llms/hooks/use-update-effect.md +27 -0
- package/data/llms/hooks/use-view-transition.md +31 -0
- package/data/llms/hooks/use-visibility-change.md +30 -0
- package/data/llms/llms-full.txt +125291 -0
- package/data/llms/llms.txt +379 -0
- package/data/llms/manifest.json +12409 -0
- package/data/llms/mcp-data.json +14481 -0
- package/data/llms/primitive/add-ons/introduction.md +16 -0
- package/data/llms/primitive/components/accordion/api.json +1411 -0
- package/data/llms/primitive/components/accordion.md +231 -0
- package/data/llms/primitive/components/animateonscroll/api.json +193 -0
- package/data/llms/primitive/components/animateonscroll.md +91 -0
- package/data/llms/primitive/components/autocomplete/api.json +3167 -0
- package/data/llms/primitive/components/autocomplete.md +344 -0
- package/data/llms/primitive/components/avatar/api.json +703 -0
- package/data/llms/primitive/components/avatar.md +134 -0
- package/data/llms/primitive/components/badge/api.json +363 -0
- package/data/llms/primitive/components/badge.md +118 -0
- package/data/llms/primitive/components/breadcrumb/api.json +1162 -0
- package/data/llms/primitive/components/breadcrumb.md +196 -0
- package/data/llms/primitive/components/button/api.json +246 -0
- package/data/llms/primitive/components/button.md +114 -0
- package/data/llms/primitive/components/buttongroup/api.json +168 -0
- package/data/llms/primitive/components/buttongroup.md +43 -0
- package/data/llms/primitive/components/card/api.json +1252 -0
- package/data/llms/primitive/components/card.md +159 -0
- package/data/llms/primitive/components/carousel/api.json +1374 -0
- package/data/llms/primitive/components/carousel.md +220 -0
- package/data/llms/primitive/components/checkbox/api.json +697 -0
- package/data/llms/primitive/components/checkbox.md +160 -0
- package/data/llms/primitive/components/checkboxgroup/api.json +252 -0
- package/data/llms/primitive/components/checkboxgroup.md +58 -0
- package/data/llms/primitive/components/chip/api.json +853 -0
- package/data/llms/primitive/components/chip.md +135 -0
- package/data/llms/primitive/components/collapsible/api.json +581 -0
- package/data/llms/primitive/components/collapsible.md +133 -0
- package/data/llms/primitive/components/compare/api.json +909 -0
- package/data/llms/primitive/components/compare.md +156 -0
- package/data/llms/primitive/components/contextmenu/api.json +3454 -0
- package/data/llms/primitive/components/contextmenu.md +483 -0
- package/data/llms/primitive/components/datatable/api.json +7832 -0
- package/data/llms/primitive/components/datatable.md +561 -0
- package/data/llms/primitive/components/dataview/api.json +819 -0
- package/data/llms/primitive/components/dataview.md +163 -0
- package/data/llms/primitive/components/datepicker/api.json +9055 -0
- package/data/llms/primitive/components/datepicker.md +760 -0
- package/data/llms/primitive/components/dialog/api.json +2491 -0
- package/data/llms/primitive/components/dialog.md +276 -0
- package/data/llms/primitive/components/divider/api.json +214 -0
- package/data/llms/primitive/components/divider.md +96 -0
- package/data/llms/primitive/components/drawer/api.json +1879 -0
- package/data/llms/primitive/components/drawer.md +220 -0
- package/data/llms/primitive/components/fieldset/api.json +1116 -0
- package/data/llms/primitive/components/fieldset.md +183 -0
- package/data/llms/primitive/components/fileupload/api.json +2445 -0
- package/data/llms/primitive/components/fileupload.md +282 -0
- package/data/llms/primitive/components/floatlabel/api.json +176 -0
- package/data/llms/primitive/components/floatlabel.md +47 -0
- package/data/llms/primitive/components/focustrap/api.json +241 -0
- package/data/llms/primitive/components/focustrap.md +93 -0
- package/data/llms/primitive/components/gallery/api.json +3622 -0
- package/data/llms/primitive/components/gallery.md +387 -0
- package/data/llms/primitive/components/iconfield/api.json +322 -0
- package/data/llms/primitive/components/iconfield.md +53 -0
- package/data/llms/primitive/components/iftalabel/api.json +177 -0
- package/data/llms/primitive/components/iftalabel.md +47 -0
- package/data/llms/primitive/components/inplace/api.json +783 -0
- package/data/llms/primitive/components/inplace.md +141 -0
- package/data/llms/primitive/components/inputcolor/api.json +2211 -0
- package/data/llms/primitive/components/inputcolor.md +295 -0
- package/data/llms/primitive/components/inputnumber/api.json +469 -0
- package/data/llms/primitive/components/inputnumber.md +99 -0
- package/data/llms/primitive/components/inputotp/api.json +469 -0
- package/data/llms/primitive/components/inputotp.md +121 -0
- package/data/llms/primitive/components/inputpassword/api.json +278 -0
- package/data/llms/primitive/components/inputpassword.md +84 -0
- package/data/llms/primitive/components/inputtags/api.json +407 -0
- package/data/llms/primitive/components/inputtags.md +243 -0
- package/data/llms/primitive/components/inputtext/api.json +207 -0
- package/data/llms/primitive/components/inputtext.md +81 -0
- package/data/llms/primitive/components/knob/api.json +841 -0
- package/data/llms/primitive/components/knob.md +148 -0
- package/data/llms/primitive/components/label/api.json +177 -0
- package/data/llms/primitive/components/label.md +44 -0
- package/data/llms/primitive/components/listbox/api.json +1741 -0
- package/data/llms/primitive/components/listbox.md +206 -0
- package/data/llms/primitive/components/menu/api.json +3836 -0
- package/data/llms/primitive/components/menu.md +479 -0
- package/data/llms/primitive/components/message/api.json +863 -0
- package/data/llms/primitive/components/message.md +151 -0
- package/data/llms/primitive/components/metergroup/api.json +1222 -0
- package/data/llms/primitive/components/metergroup.md +209 -0
- package/data/llms/primitive/components/motion.md +112 -0
- package/data/llms/primitive/components/navigationmenu/api.json +298 -0
- package/data/llms/primitive/components/navigationmenu.md +184 -0
- package/data/llms/primitive/components/organizationchart.md +133 -0
- package/data/llms/primitive/components/paginator/api.json +1637 -0
- package/data/llms/primitive/components/paginator.md +223 -0
- package/data/llms/primitive/components/panel/api.json +1270 -0
- package/data/llms/primitive/components/panel.md +186 -0
- package/data/llms/primitive/components/popover/api.json +2281 -0
- package/data/llms/primitive/components/popover.md +277 -0
- package/data/llms/primitive/components/portal/api.json +176 -0
- package/data/llms/primitive/components/portal.md +79 -0
- package/data/llms/primitive/components/progressbar/api.json +857 -0
- package/data/llms/primitive/components/progressbar.md +153 -0
- package/data/llms/primitive/components/progressspinner/api.json +725 -0
- package/data/llms/primitive/components/progressspinner.md +133 -0
- package/data/llms/primitive/components/radiobutton/api.json +929 -0
- package/data/llms/primitive/components/radiobutton.md +201 -0
- package/data/llms/primitive/components/rating/api.json +878 -0
- package/data/llms/primitive/components/rating.md +160 -0
- package/data/llms/primitive/components/scrollarea/api.json +1187 -0
- package/data/llms/primitive/components/scrollarea.md +255 -0
- package/data/llms/primitive/components/select/api.json +3167 -0
- package/data/llms/primitive/components/select.md +351 -0
- package/data/llms/primitive/components/sidebar/api.json +3699 -0
- package/data/llms/primitive/components/sidebar.md +444 -0
- package/data/llms/primitive/components/skeleton/api.json +213 -0
- package/data/llms/primitive/components/skeleton.md +80 -0
- package/data/llms/primitive/components/slider/api.json +1066 -0
- package/data/llms/primitive/components/slider.md +161 -0
- package/data/llms/primitive/components/speeddial/api.json +1002 -0
- package/data/llms/primitive/components/speeddial.md +197 -0
- package/data/llms/primitive/components/splitter/api.json +901 -0
- package/data/llms/primitive/components/splitter.md +137 -0
- package/data/llms/primitive/components/stepper/api.json +2102 -0
- package/data/llms/primitive/components/stepper.md +253 -0
- package/data/llms/primitive/components/styleclass.md +399 -0
- package/data/llms/primitive/components/tabs/api.json +1705 -0
- package/data/llms/primitive/components/tabs.md +200 -0
- package/data/llms/primitive/components/tag/api.json +189 -0
- package/data/llms/primitive/components/tag.md +100 -0
- package/data/llms/primitive/components/terminal/api.json +1709 -0
- package/data/llms/primitive/components/terminal.md +227 -0
- package/data/llms/primitive/components/textarea/api.json +213 -0
- package/data/llms/primitive/components/textarea.md +83 -0
- package/data/llms/primitive/components/timeline/api.json +1180 -0
- package/data/llms/primitive/components/timeline.md +185 -0
- package/data/llms/primitive/components/toast/api.json +2102 -0
- package/data/llms/primitive/components/toast.md +291 -0
- package/data/llms/primitive/components/togglebutton/api.json +433 -0
- package/data/llms/primitive/components/togglebutton.md +161 -0
- package/data/llms/primitive/components/togglebuttongroup/api.json +276 -0
- package/data/llms/primitive/components/togglebuttongroup.md +61 -0
- package/data/llms/primitive/components/toggleswitch/api.json +681 -0
- package/data/llms/primitive/components/toggleswitch.md +149 -0
- package/data/llms/primitive/components/toolbar/api.json +646 -0
- package/data/llms/primitive/components/toolbar.md +126 -0
- package/data/llms/primitive/components/tooltip/api.json +1534 -0
- package/data/llms/primitive/components/tooltip.md +202 -0
- package/data/llms/primitive/components/tree/api.json +2952 -0
- package/data/llms/primitive/components/tree.md +292 -0
- package/data/llms/primitive/components/treetable.md +187 -0
- package/data/llms/primitive/components/visuallyhidden/api.json +186 -0
- package/data/llms/primitive/components/visuallyhidden.md +87 -0
- package/data/llms/primitive/guides/ai/llms.md +25 -0
- package/data/llms/primitive/guides/icons/customicons.md +47 -0
- package/data/llms/primitive/guides/icons/primeicons.md +112 -0
- package/data/llms/primitive/guides/installation.md +115 -0
- package/data/llms/primitive/guides/introduction.md +20 -0
- package/data/llms/primitive/guides/misc/accessibility.md +215 -0
- package/data/llms/primitive/guides/misc/passthrough.md +95 -0
- package/data/llms/primitive/guides/misc/rtl.md +27 -0
- package/data/llms/primitive/llms.md +25 -0
- package/data/llms/primitive/resources/introduction.md +15 -0
- package/data/llms/styled/add-ons/introduction.md +16 -0
- package/data/llms/styled/components/accordion.md +735 -0
- package/data/llms/styled/components/animateonscroll.md +264 -0
- package/data/llms/styled/components/autocomplete.md +1597 -0
- package/data/llms/styled/components/avatar.md +313 -0
- package/data/llms/styled/components/badge.md +213 -0
- package/data/llms/styled/components/breadcrumb.md +461 -0
- package/data/llms/styled/components/button/api.json +246 -0
- package/data/llms/styled/components/button.md +641 -0
- package/data/llms/styled/components/buttongroup.md +614 -0
- package/data/llms/styled/components/card.md +228 -0
- package/data/llms/styled/components/carousel.md +388 -0
- package/data/llms/styled/components/checkbox.md +329 -0
- package/data/llms/styled/components/checkboxgroup.md +619 -0
- package/data/llms/styled/components/chip.md +300 -0
- package/data/llms/styled/components/compare.md +271 -0
- package/data/llms/styled/components/contextmenu.md +550 -0
- package/data/llms/styled/components/datatable.md +8259 -0
- package/data/llms/styled/components/dataview.md +907 -0
- package/data/llms/styled/components/datepicker.md +2807 -0
- package/data/llms/styled/components/dialog.md +1047 -0
- package/data/llms/styled/components/divider.md +207 -0
- package/data/llms/styled/components/drawer.md +470 -0
- package/data/llms/styled/components/fieldset.md +334 -0
- package/data/llms/styled/components/fileupload.md +747 -0
- package/data/llms/styled/components/floatlabel/api.json +210 -0
- package/data/llms/styled/components/floatlabel.md +231 -0
- package/data/llms/styled/components/fluid/api.json +204 -0
- package/data/llms/styled/components/fluid.md +177 -0
- package/data/llms/styled/components/focustrap.md +203 -0
- package/data/llms/styled/components/gallery.md +553 -0
- package/data/llms/styled/components/iconfield/api.json +382 -0
- package/data/llms/styled/components/iconfield.md +385 -0
- package/data/llms/styled/components/iftalabel/api.json +237 -0
- package/data/llms/styled/components/iftalabel.md +158 -0
- package/data/llms/styled/components/inplace.md +312 -0
- package/data/llms/styled/components/inputcolor.md +674 -0
- package/data/llms/styled/components/inputgroup/api.json +399 -0
- package/data/llms/styled/components/inputgroup.md +604 -0
- package/data/llms/styled/components/inputmask.md +282 -0
- package/data/llms/styled/components/inputnumber.md +563 -0
- package/data/llms/styled/components/inputotp.md +335 -0
- package/data/llms/styled/components/inputpassword.md +630 -0
- package/data/llms/styled/components/inputtags.md +727 -0
- package/data/llms/styled/components/inputtext.md +190 -0
- package/data/llms/styled/components/keyfilter.md +289 -0
- package/data/llms/styled/components/knob.md +305 -0
- package/data/llms/styled/components/label/api.json +237 -0
- package/data/llms/styled/components/label.md +224 -0
- package/data/llms/styled/components/listbox.md +807 -0
- package/data/llms/styled/components/menu.md +1175 -0
- package/data/llms/styled/components/message.md +570 -0
- package/data/llms/styled/components/metergroup.md +449 -0
- package/data/llms/styled/components/navigationmenu.md +926 -0
- package/data/llms/styled/components/orderlist.md +519 -0
- package/data/llms/styled/components/organizationchart/api.json +1457 -0
- package/data/llms/styled/components/organizationchart.md +791 -0
- package/data/llms/styled/components/overlaymanager.md +519 -0
- package/data/llms/styled/components/paginator.md +506 -0
- package/data/llms/styled/components/panel.md +394 -0
- package/data/llms/styled/components/picklist.md +1004 -0
- package/data/llms/styled/components/popover.md +372 -0
- package/data/llms/styled/components/progressbar.md +438 -0
- package/data/llms/styled/components/progressspinner.md +128 -0
- package/data/llms/styled/components/radiobutton.md +488 -0
- package/data/llms/styled/components/rating/api.json +766 -0
- package/data/llms/styled/components/rating.md +518 -0
- package/data/llms/styled/components/scrollarea.md +627 -0
- package/data/llms/styled/components/select.md +2122 -0
- package/data/llms/styled/components/sidebar.md +1587 -0
- package/data/llms/styled/components/skeleton.md +226 -0
- package/data/llms/styled/components/slider.md +453 -0
- package/data/llms/styled/components/speeddial.md +723 -0
- package/data/llms/styled/components/splitter.md +536 -0
- package/data/llms/styled/components/stepper.md +614 -0
- package/data/llms/styled/components/tabs.md +543 -0
- package/data/llms/styled/components/tag.md +263 -0
- package/data/llms/styled/components/terminal.md +543 -0
- package/data/llms/styled/components/textarea.md +257 -0
- package/data/llms/styled/components/timeline.md +620 -0
- package/data/llms/styled/components/toast.md +1013 -0
- package/data/llms/styled/components/togglebutton.md +287 -0
- package/data/llms/styled/components/togglebuttongroup.md +328 -0
- package/data/llms/styled/components/toggleswitch.md +262 -0
- package/data/llms/styled/components/toolbar.md +187 -0
- package/data/llms/styled/components/tooltip.md +430 -0
- package/data/llms/styled/components/tree.md +1386 -0
- package/data/llms/styled/components/treetable.md +6842 -0
- package/data/llms/styled/guides/ai/llms.md +25 -0
- package/data/llms/styled/guides/configuration.md +151 -0
- package/data/llms/styled/guides/icons/customicons.md +47 -0
- package/data/llms/styled/guides/icons/primeicons.md +112 -0
- package/data/llms/styled/guides/installation/astro.md +97 -0
- package/data/llms/styled/guides/installation/manual.md +3 -0
- package/data/llms/styled/guides/installation/nextjs.md +129 -0
- package/data/llms/styled/guides/installation/react-router.md +88 -0
- package/data/llms/styled/guides/installation/tanstack.md +92 -0
- package/data/llms/styled/guides/installation/vite.md +91 -0
- package/data/llms/styled/guides/installation.md +42 -0
- package/data/llms/styled/guides/introduction.md +20 -0
- package/data/llms/styled/guides/misc/accessibility.md +211 -0
- package/data/llms/styled/guides/misc/animations.md +389 -0
- package/data/llms/styled/guides/misc/passthrough.md +95 -0
- package/data/llms/styled/guides/misc/rtl.md +27 -0
- package/data/llms/styled/guides/theming/styled.md +779 -0
- package/data/llms/styled/guides/theming/tailwind.md +473 -0
- package/data/llms/styled/guides/theming/unstyled.md +115 -0
- package/data/llms/styled/resources/introduction.md +15 -0
- package/data/llms/tailwind/add-ons/introduction.md +16 -0
- package/data/llms/tailwind/components/accordion.md +383 -0
- package/data/llms/tailwind/components/autocomplete.md +1346 -0
- package/data/llms/tailwind/components/avatar.md +305 -0
- package/data/llms/tailwind/components/badge.md +207 -0
- package/data/llms/tailwind/components/breadcrumb.md +387 -0
- package/data/llms/tailwind/components/button/api.json +246 -0
- package/data/llms/tailwind/components/button.md +617 -0
- package/data/llms/tailwind/components/buttongroup.md +599 -0
- package/data/llms/tailwind/components/card.md +224 -0
- package/data/llms/tailwind/components/carousel.md +329 -0
- package/data/llms/tailwind/components/checkbox.md +179 -0
- package/data/llms/tailwind/components/checkboxgroup.md +279 -0
- package/data/llms/tailwind/components/chip.md +304 -0
- package/data/llms/tailwind/components/compare.md +295 -0
- package/data/llms/tailwind/components/contextmenu.md +415 -0
- package/data/llms/tailwind/components/datatable.md +4062 -0
- package/data/llms/tailwind/components/dataview.md +864 -0
- package/data/llms/tailwind/components/datepicker.md +823 -0
- package/data/llms/tailwind/components/dialog.md +1216 -0
- package/data/llms/tailwind/components/divider.md +205 -0
- package/data/llms/tailwind/components/drawer.md +500 -0
- package/data/llms/tailwind/components/fieldset.md +326 -0
- package/data/llms/tailwind/components/fluid.md +117 -0
- package/data/llms/tailwind/components/iconfield.md +197 -0
- package/data/llms/tailwind/components/inplace.md +324 -0
- package/data/llms/tailwind/components/inputcolor.md +493 -0
- package/data/llms/tailwind/components/inputgroup.md +375 -0
- package/data/llms/tailwind/components/inputnumber.md +463 -0
- package/data/llms/tailwind/components/inputotp.md +255 -0
- package/data/llms/tailwind/components/inputpassword.md +543 -0
- package/data/llms/tailwind/components/inputtext.md +141 -0
- package/data/llms/tailwind/components/label.md +100 -0
- package/data/llms/tailwind/components/listbox.md +886 -0
- package/data/llms/tailwind/components/menu.md +1049 -0
- package/data/llms/tailwind/components/message.md +575 -0
- package/data/llms/tailwind/components/metergroup.md +510 -0
- package/data/llms/tailwind/components/navigationmenu.md +528 -0
- package/data/llms/tailwind/components/overlaymanager.md +567 -0
- package/data/llms/tailwind/components/paginator.md +306 -0
- package/data/llms/tailwind/components/panel.md +395 -0
- package/data/llms/tailwind/components/popover.md +424 -0
- package/data/llms/tailwind/components/progressbar.md +313 -0
- package/data/llms/tailwind/components/radiobutton.md +366 -0
- package/data/llms/tailwind/components/rating.md +300 -0
- package/data/llms/tailwind/components/scrollarea.md +638 -0
- package/data/llms/tailwind/components/select.md +1220 -0
- package/data/llms/tailwind/components/sidebar.md +1511 -0
- package/data/llms/tailwind/components/skeleton.md +236 -0
- package/data/llms/tailwind/components/slider.md +291 -0
- package/data/llms/tailwind/components/splitter.md +546 -0
- package/data/llms/tailwind/components/tabs.md +462 -0
- package/data/llms/tailwind/components/tag.md +255 -0
- package/data/llms/tailwind/components/textarea.md +170 -0
- package/data/llms/tailwind/components/timeline.md +656 -0
- package/data/llms/tailwind/components/toast.md +246 -0
- package/data/llms/tailwind/components/togglebutton.md +264 -0
- package/data/llms/tailwind/components/togglebuttongroup.md +262 -0
- package/data/llms/tailwind/components/toggleswitch.md +203 -0
- package/data/llms/tailwind/components/toolbar.md +192 -0
- package/data/llms/tailwind/components/tooltip.md +449 -0
- package/data/llms/tailwind/guides/ai/llms.md +25 -0
- package/data/llms/tailwind/guides/icons/customicons.md +47 -0
- package/data/llms/tailwind/guides/icons/primeicons.md +112 -0
- package/data/llms/tailwind/guides/installation/astro.md +165 -0
- package/data/llms/tailwind/guides/installation/manual.md +3 -0
- package/data/llms/tailwind/guides/installation/nextjs.md +169 -0
- package/data/llms/tailwind/guides/installation/react-router.md +157 -0
- package/data/llms/tailwind/guides/installation/tanstack.md +161 -0
- package/data/llms/tailwind/guides/installation/vite.md +160 -0
- package/data/llms/tailwind/guides/installation.md +42 -0
- package/data/llms/tailwind/guides/introduction.md +20 -0
- package/data/llms/tailwind/guides/misc/accessibility.md +205 -0
- package/data/llms/tailwind/guides/misc/passthrough.md +95 -0
- package/data/llms/tailwind/guides/misc/rtl.md +27 -0
- package/data/llms/tailwind/guides/theming/guide.md +179 -0
- package/data/llms/tailwind/guides/theming.md +191 -0
- package/data/llms/tailwind/llms.md +25 -0
- package/data/llms/tailwind/resources/introduction.md +15 -0
- package/data/manifest.json +12409 -0
- package/data/mcp-data.json +14481 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +2 -0
- 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
|
+
```
|