@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,183 @@
|
|
|
1
|
+
# useStepper
|
|
2
|
+
|
|
3
|
+
A hook that manages stepper state, step navigation, and ARIA attributes.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
'use client';
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import { useStepper } from '@primereact/headless/stepper';
|
|
9
|
+
|
|
10
|
+
const steps = [
|
|
11
|
+
{ value: '1', label: 'Header I', content: 'Content I' },
|
|
12
|
+
{ value: '2', label: 'Header II', content: 'Content II' },
|
|
13
|
+
{ value: '3', label: 'Header III', content: 'Content III' }
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
export default function BasicDemo() {
|
|
17
|
+
const stepper = useStepper({ defaultValue: '1' });
|
|
18
|
+
const { rootProps } = stepper;
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<div {...rootProps} className="max-w-2xl mx-auto">
|
|
22
|
+
<div className="flex items-center">
|
|
23
|
+
{steps.map((step, index) => {
|
|
24
|
+
const active = stepper.isStepActive(step.value);
|
|
25
|
+
const disabled = !active && stepper.isStepDisabled();
|
|
26
|
+
const stepProps = stepper.getStepProps({ active, disabled });
|
|
27
|
+
const headerProps = stepper.getHeaderProps({ activeValue: step.value, disabled });
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<div key={step.value} className={`flex items-center ${index < steps.length - 1 ? 'flex-1' : ''}`}>
|
|
31
|
+
<div {...stepProps} className="group">
|
|
32
|
+
<button
|
|
33
|
+
{...(headerProps as React.ButtonHTMLAttributes<HTMLButtonElement>)}
|
|
34
|
+
className="inline-flex items-center gap-2 bg-transparent border-0 cursor-pointer p-1 focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-primary"
|
|
35
|
+
>
|
|
36
|
+
<span className="inline-flex items-center justify-center w-8 h-8 rounded-full text-sm font-semibold border-2 transition-colors bg-surface-200 dark:bg-surface-700 text-surface-500 dark:text-surface-400 border-surface-200 dark:border-surface-700 group-data-[active]:bg-primary group-data-[active]:text-primary-contrast group-data-[active]:border-primary group-data-[active]:ring-2 group-data-[active]:ring-primary/30">
|
|
37
|
+
{step.value}
|
|
38
|
+
</span>
|
|
39
|
+
<span className="text-sm font-medium text-surface-700 dark:text-surface-200">{step.label}</span>
|
|
40
|
+
</button>
|
|
41
|
+
</div>
|
|
42
|
+
{index < steps.length - 1 && <span className="flex-1 h-px mx-4 bg-surface-300 dark:bg-surface-600" />}
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
})}
|
|
46
|
+
</div>
|
|
47
|
+
<div className="mt-6">
|
|
48
|
+
{steps.map((step) => {
|
|
49
|
+
const active = stepper.isStepActive(step.value);
|
|
50
|
+
const panelProps = stepper.getPanelProps({ active, activeValue: step.value });
|
|
51
|
+
|
|
52
|
+
return (
|
|
53
|
+
active && (
|
|
54
|
+
<div key={step.value} {...panelProps}>
|
|
55
|
+
<div className="flex flex-col h-48">
|
|
56
|
+
<div className="border-2 border-dashed border-surface-200 dark:border-surface-700 rounded-lg bg-surface-50 dark:bg-surface-950 flex-auto flex justify-center items-center font-medium">
|
|
57
|
+
{step.content}
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
)
|
|
62
|
+
);
|
|
63
|
+
})}
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Usage
|
|
71
|
+
|
|
72
|
+
```tsx
|
|
73
|
+
import { useStepper } from '@primereact/headless/stepper';
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
const stepper = useStepper({ defaultValue: '1' });
|
|
78
|
+
const { rootProps, state } = stepper;
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`useStepper` manages active step state and returns spread-ready prop objects for each DOM element, see [Primitive](/docs/primitive/components/stepper) for a component-based API.
|
|
82
|
+
|
|
83
|
+
## Features
|
|
84
|
+
|
|
85
|
+
- **Single-hook architecture**, one call returns `rootProps` plus getter functions (`getItemProps`, `getStepProps`, `getHeaderProps`, `getPanelProps`) for every step part
|
|
86
|
+
- **Linear or free navigation**, opt into `linear` to gate forward jumps, or leave it off to let users bounce between steps
|
|
87
|
+
- **Controlled or uncontrolled**, drive the active step from outside with `value`/`onValueChange` or let the hook own it
|
|
88
|
+
- **Layout-agnostic**, no assumptions about horizontal vs vertical; compose panels and separators however you need
|
|
89
|
+
- **Imperative controls**, `setActiveStep()` moves the pointer, `isStepActive()` and `isStepDisabled()` answer per-step queries
|
|
90
|
+
|
|
91
|
+
## Working with callbacks
|
|
92
|
+
|
|
93
|
+
### Controlled active step
|
|
94
|
+
|
|
95
|
+
Drive the active step from parent state using `value` and `onValueChange`.
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
const [value, setValue] = React.useState<string | number | null>('1');
|
|
99
|
+
|
|
100
|
+
const stepper = useStepper({
|
|
101
|
+
value,
|
|
102
|
+
onValueChange: (e) => setValue(e.value)
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
<div {...rootProps}>
|
|
106
|
+
<div {...stepper.getItemProps({ active: true })}></div>
|
|
107
|
+
<div {...stepper.getStepProps({ active: true, disabled: false })}></div>
|
|
108
|
+
<button {...stepper.getHeaderProps({ activeValue: '1', disabled: false })}></button>
|
|
109
|
+
{stepper.isStepActive('1') && <div {...stepper.getPanelProps({ active: true, activeValue: '1' })}></div>}
|
|
110
|
+
</div>;
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`onValueChange` receives `{ value }` where `value` is the new active step key.
|
|
114
|
+
|
|
115
|
+
### Wizard-style Next/Back navigation
|
|
116
|
+
|
|
117
|
+
`setActiveStep` is the imperative escape hatch for Next/Back buttons, essential when `linear` mode prevents clicking headers directly.
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
const stepper = useStepper({ linear: true, defaultValue: '1' });
|
|
121
|
+
|
|
122
|
+
<button onClick={() => stepper.setActiveStep('2')}>Next</button>
|
|
123
|
+
<button onClick={() => stepper.setActiveStep('1')}>Back</button>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Gating with linear mode
|
|
127
|
+
|
|
128
|
+
Turn on `linear` to lock inactive steps, `isStepDisabled()` will return `true` for them and `getHeaderProps` sets `tabIndex` to `-1`, so only the active step is reachable by keyboard.
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
const stepper = useStepper({ linear: true, defaultValue: '1' });
|
|
132
|
+
|
|
133
|
+
stepper.isStepDisabled('3'); // true until user advances
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Vertical layout composition
|
|
137
|
+
|
|
138
|
+
The hook stays layout-agnostic. For a vertical stepper, use `getItemProps` to wrap each header and panel together so separators can nest inside the panel region.
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
<div {...rootProps}>
|
|
142
|
+
<div {...stepper.getItemProps({ active })}>
|
|
143
|
+
<div {...stepper.getStepProps({ active, disabled })}>
|
|
144
|
+
<button {...stepper.getHeaderProps({ activeValue: '1', disabled })}>Step 1</button>
|
|
145
|
+
</div>
|
|
146
|
+
{stepper.isStepActive('1') && (
|
|
147
|
+
<div {...stepper.getPanelProps({ active: true, activeValue: '1' })}>
|
|
148
|
+
<span>Separator</span>
|
|
149
|
+
<div>Panel content</div>
|
|
150
|
+
</div>
|
|
151
|
+
)}
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Styling with data attributes
|
|
157
|
+
|
|
158
|
+
Every prop object includes `data-scope="stepper"` and a `data-part` attribute. `data-active` is present only on active elements; `data-disabled` is added automatically when applicable.
|
|
159
|
+
|
|
160
|
+
```css
|
|
161
|
+
[data-scope='stepper'][data-part='step'][data-active] {
|
|
162
|
+
background-color: var(--primary);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
[data-scope='stepper'][data-part='header'][disabled] {
|
|
166
|
+
opacity: 0.5;
|
|
167
|
+
pointer-events: none;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
[data-scope='stepper'][data-part='panel'][data-active] {
|
|
171
|
+
display: block;
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## API
|
|
176
|
+
|
|
177
|
+
### useStepper
|
|
178
|
+
|
|
179
|
+
<DocTable name="useStepper" category="api" />
|
|
180
|
+
|
|
181
|
+
## Accessibility
|
|
182
|
+
|
|
183
|
+
Arrow keys navigate steps, Enter activates the focused step, and disabled steps are skipped. See [Primitive](/docs/primitive/components/stepper#accessibility) for full WAI-ARIA compliance details.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "useStyleClass",
|
|
4
|
+
"source": "apps/showcase/assets/apidoc/usestyleclass.json",
|
|
5
|
+
"data": {
|
|
6
|
+
"description": "The useStyleClass manages the state and functionality of a StyleClass component.",
|
|
7
|
+
"interfaces": {
|
|
8
|
+
"UseStyleClassProps": {
|
|
9
|
+
"description": "Defines valid properties in useStyleClass.",
|
|
10
|
+
"relatedProp": "",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "nodeRef",
|
|
14
|
+
"type": "RefObject<ReactNode>",
|
|
15
|
+
"default": "",
|
|
16
|
+
"description": "A React reference to DOM element that need to specify."
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "selector",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"default": "",
|
|
22
|
+
"description": "Selector to define the target element."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "enterFromClassName",
|
|
26
|
+
"type": "string",
|
|
27
|
+
"default": "",
|
|
28
|
+
"description": "Style class to add when item begins to get displayed."
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "enterActiveClassName",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"default": "",
|
|
34
|
+
"description": "Style class to add during enter animation."
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "enterToClassName",
|
|
38
|
+
"type": "string",
|
|
39
|
+
"default": "",
|
|
40
|
+
"description": "Style class to add when item begins to get displayed."
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "leaveFromClassName",
|
|
44
|
+
"type": "string",
|
|
45
|
+
"default": "",
|
|
46
|
+
"description": "Style class to add when item begins to get hidden."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "leaveActiveClassName",
|
|
50
|
+
"type": "string",
|
|
51
|
+
"default": "",
|
|
52
|
+
"description": "Style class to add during leave animation."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "leaveToClassName",
|
|
56
|
+
"type": "string",
|
|
57
|
+
"default": "",
|
|
58
|
+
"description": "Style class to add when leave animation is completed."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "hiddenClassName",
|
|
62
|
+
"type": "string",
|
|
63
|
+
"default": "",
|
|
64
|
+
"description": "Style class to apply when the component is hidden."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "hideOnOutsideClick",
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"default": "false",
|
|
70
|
+
"description": "Whether to trigger leave animation when outside of the element is clicked."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "toggleClassName",
|
|
74
|
+
"type": "string",
|
|
75
|
+
"default": "",
|
|
76
|
+
"description": "Adds or removes a class when no enter-leave animation is required."
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "hideOnResize",
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"default": "false",
|
|
82
|
+
"description": "Whether to trigger leave animation when the target element resized."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "resizeSelector",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"default": "window",
|
|
88
|
+
"description": "Target element to listen resize. Valid values are \"window\", \"document\" or target element."
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"methods": []
|
|
92
|
+
},
|
|
93
|
+
"UseStyleClassState": {
|
|
94
|
+
"description": "Defines valid state in useStyleClass.",
|
|
95
|
+
"relatedProp": "",
|
|
96
|
+
"props": [],
|
|
97
|
+
"methods": []
|
|
98
|
+
},
|
|
99
|
+
"UseStyleClassExposes": {
|
|
100
|
+
"description": "Defines the methods and properties exposed by useStyleClass.",
|
|
101
|
+
"relatedProp": "",
|
|
102
|
+
"props": [
|
|
103
|
+
{
|
|
104
|
+
"name": "targetRef",
|
|
105
|
+
"type": "RefObject<HTMLElement>",
|
|
106
|
+
"default": "",
|
|
107
|
+
"description": "The target element."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "enter",
|
|
111
|
+
"type": "() => void",
|
|
112
|
+
"default": "",
|
|
113
|
+
"description": "The method to trigger the enter animation."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "leave",
|
|
117
|
+
"type": "() => void",
|
|
118
|
+
"default": "",
|
|
119
|
+
"description": "The method to trigger the leave animation."
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"methods": []
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"types": {
|
|
126
|
+
"UseStyleClassInstance": {
|
|
127
|
+
"description": "Instance of useStyleClass headless.",
|
|
128
|
+
"values": "HeadlessInstance<UseStyleClassProps, UseStyleClassState, UseStyleClassExposes>"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"variables": {}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
]
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# useStyleClass
|
|
2
|
+
|
|
3
|
+
Hook that manages CSS class toggling with enter/leave animation sequences on a target element.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
'use client';
|
|
7
|
+
import { ChevronDown } from '@primeicons/react/chevron-down';
|
|
8
|
+
import { useStyleClass } from '@primereact/headless/styleclass';
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
|
|
11
|
+
export default function BasicDemo() {
|
|
12
|
+
const btnRef = React.useRef<HTMLButtonElement>(null);
|
|
13
|
+
|
|
14
|
+
useStyleClass({
|
|
15
|
+
nodeRef: btnRef,
|
|
16
|
+
selector: '@next',
|
|
17
|
+
enterFromClassName: 'hidden',
|
|
18
|
+
enterActiveClassName: 'animate-scalein',
|
|
19
|
+
leaveToClassName: 'hidden',
|
|
20
|
+
leaveActiveClassName: 'animate-fadeout',
|
|
21
|
+
hideOnOutsideClick: true
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<div className="flex flex-col items-center gap-4 h-32">
|
|
26
|
+
<button
|
|
27
|
+
ref={btnRef}
|
|
28
|
+
type="button"
|
|
29
|
+
className="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-primary text-primary-contrast hover:bg-primary/90 transition-colors cursor-pointer text-sm font-medium"
|
|
30
|
+
>
|
|
31
|
+
Toggle Panel
|
|
32
|
+
<ChevronDown className="w-3.5 h-3.5" />
|
|
33
|
+
</button>
|
|
34
|
+
<div className="hidden w-full max-w-md p-4 rounded-lg border border-surface-200 dark:border-surface-700 bg-surface-0 dark:bg-surface-900 shadow-md origin-top">
|
|
35
|
+
<p className="text-sm text-surface-700 dark:text-surface-200 leading-relaxed m-0">
|
|
36
|
+
This panel is toggled using useStyleClass with scale-in and fade-out animations. Click the button again or click outside to
|
|
37
|
+
dismiss.
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Usage
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
import { useStyleClass } from '@primereact/headless/styleclass';
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
useStyleClass({
|
|
53
|
+
selector: '@next',
|
|
54
|
+
enterFromClassName: 'hidden',
|
|
55
|
+
enterActiveClassName: 'animate-scalein',
|
|
56
|
+
leaveToClassName: 'hidden',
|
|
57
|
+
leaveActiveClassName: 'animate-fadeout'
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
`useStyleClass` binds click-to-toggle behavior on a host element and applies CSS class sequences to a target element resolved by selector. See [StyleClass](/docs/styled/components/styleclass) for a component-based API.
|
|
62
|
+
|
|
63
|
+
## Features
|
|
64
|
+
|
|
65
|
+
- **Selector-based targeting**, built-in `@next`, `@prev`, `@parent`, `@grandparent` selectors or any CSS selector
|
|
66
|
+
- **Enter/leave sequences**, applies `{from,active,to}` classes in order and cleans them up after `animationend`
|
|
67
|
+
- **Simple toggle mode**, `toggleClassName` handles the common case of flipping a single class without an animation sequence
|
|
68
|
+
- **Outside-click dismissal**, `hideOnOutsideClick` runs the leave sequence when the user clicks outside the host and target
|
|
69
|
+
- **External host binding**, `nodeRef` moves the click listener onto a different element than the hook's default host
|
|
70
|
+
- **Imperative methods**, `enter()` and `leave()` trigger the sequences from any event source
|
|
71
|
+
|
|
72
|
+
## Working with callbacks
|
|
73
|
+
|
|
74
|
+
### Animate a sibling panel
|
|
75
|
+
|
|
76
|
+
Combine `@next` with enter and leave class sequences to animate a panel directly after the trigger.
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
useStyleClass({
|
|
80
|
+
selector: '@next',
|
|
81
|
+
enterFromClassName: 'hidden',
|
|
82
|
+
enterActiveClassName: 'animate-scalein',
|
|
83
|
+
enterToClassName: 'visible',
|
|
84
|
+
leaveActiveClassName: 'animate-fadeout',
|
|
85
|
+
leaveToClassName: 'hidden'
|
|
86
|
+
});
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Toggle a single class
|
|
90
|
+
|
|
91
|
+
When you do not need the animation lifecycle, use `toggleClassName` to flip a class on the target.
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
useStyleClass({ selector: '@next', toggleClassName: 'hidden' });
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Dismiss on outside click
|
|
98
|
+
|
|
99
|
+
Enable `hideOnOutsideClick` for menus and popovers that should close when the user clicks elsewhere on the page.
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
useStyleClass({
|
|
103
|
+
selector: '@next',
|
|
104
|
+
enterFromClassName: 'hidden',
|
|
105
|
+
enterActiveClassName: 'animate-scalein',
|
|
106
|
+
leaveToClassName: 'hidden',
|
|
107
|
+
leaveActiveClassName: 'animate-fadeout',
|
|
108
|
+
hideOnOutsideClick: true
|
|
109
|
+
});
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Attach the listener to a different element
|
|
113
|
+
|
|
114
|
+
Pass `nodeRef` when the trigger lives outside the hook's host tree, for example, a global header button that controls a panel elsewhere in the DOM.
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
const buttonRef = React.useRef(null);
|
|
118
|
+
useStyleClass({ nodeRef: buttonRef, selector: '@next', toggleClassName: 'hidden' });
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## API
|
|
122
|
+
|
|
123
|
+
### useStyleClass
|
|
124
|
+
|
|
125
|
+
<DocTable name="useStyleClass" category="api" />
|
|
126
|
+
|
|
127
|
+
## Accessibility
|
|
128
|
+
|
|
129
|
+
StyleClass does not add ARIA attributes. Add `aria-expanded`, `aria-controls`, and other attributes to the trigger and target elements as needed.
|