@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,87 @@
|
|
|
1
|
+
# VisuallyHidden
|
|
2
|
+
|
|
3
|
+
A utility component that hides content visually while keeping it accessible to screen readers.
|
|
4
|
+
|
|
5
|
+
<DocPrimitiveIntro description="Build accessible interfaces by providing screen reader text for icon-only actions and decorative elements." />
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
'use client';
|
|
9
|
+
import { VisuallyHidden } from 'primereact/visuallyhidden';
|
|
10
|
+
import styles from './basic-demo.module.css';
|
|
11
|
+
|
|
12
|
+
export default function BasicDemo() {
|
|
13
|
+
return (
|
|
14
|
+
<div className={styles.wrapper}>
|
|
15
|
+
<button className={styles.button}>
|
|
16
|
+
<i className="pi pi-heart" />
|
|
17
|
+
<VisuallyHidden>Add to favorites</VisuallyHidden>
|
|
18
|
+
</button>
|
|
19
|
+
|
|
20
|
+
<button className={styles.button}>
|
|
21
|
+
<i className="pi pi-trash" />
|
|
22
|
+
<VisuallyHidden>Delete item</VisuallyHidden>
|
|
23
|
+
</button>
|
|
24
|
+
|
|
25
|
+
<button className={styles.button}>
|
|
26
|
+
<i className="pi pi-cog" />
|
|
27
|
+
<VisuallyHidden>Open settings</VisuallyHidden>
|
|
28
|
+
</button>
|
|
29
|
+
</div>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
<DocPrimitiveLinks name="VisuallyHidden" />
|
|
35
|
+
|
|
36
|
+
## Features
|
|
37
|
+
|
|
38
|
+
- Hides content from visual display using WAI-ARIA recommended CSS techniques
|
|
39
|
+
- `focusable` prop enables the element to receive keyboard focus for focus trap boundaries
|
|
40
|
+
- Used internally by [Drawer](/docs/primitive/components/drawer), Dialog, and FocusTrap for focus management
|
|
41
|
+
|
|
42
|
+
## Usage
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
import { VisuallyHidden } from 'primereact/visuallyhidden';
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<button>
|
|
50
|
+
<i className="pi pi-trash" />
|
|
51
|
+
<VisuallyHidden></VisuallyHidden>
|
|
52
|
+
</button>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Behavior
|
|
56
|
+
|
|
57
|
+
### Polymorphic Rendering
|
|
58
|
+
|
|
59
|
+
Use `as` to change the rendered HTML element. Defaults to `span`.
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
<VisuallyHidden as="label" htmlFor="search-input">
|
|
63
|
+
Search
|
|
64
|
+
</VisuallyHidden>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Render Function Children
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<VisuallyHidden>{(instance) => <span>Hidden text</span>}</VisuallyHidden>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## API
|
|
74
|
+
|
|
75
|
+
### VisuallyHidden
|
|
76
|
+
|
|
77
|
+
<DocTable name="VisuallyHidden" category="api" />
|
|
78
|
+
|
|
79
|
+
## Accessibility
|
|
80
|
+
|
|
81
|
+
### Screen Reader
|
|
82
|
+
|
|
83
|
+
VisuallyHidden content is announced by screen readers as regular text within the document flow. The component applies CSS styles that remove the element from visual rendering while preserving its presence in the accessibility tree.
|
|
84
|
+
|
|
85
|
+
### Keyboard Support
|
|
86
|
+
|
|
87
|
+
When `focusable` is `true`, the element receives a `tabIndex` of `0` and can be reached via `tab` navigation. This is used internally by focus trap implementations to create invisible tab-stop boundaries.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# LLMs.txt
|
|
2
|
+
|
|
3
|
+
LLMs.txt is a file that contains the LLMs for the PrimeReact documentation.
|
|
4
|
+
|
|
5
|
+
## /llms.txt
|
|
6
|
+
|
|
7
|
+
The [llms.txt](https://llmstxt.org/) file is an industry standard that helps AI models better understand and navigate the PrimeReact documentation. It lists key pages in a structured format, making it easier for LLMs to retrieve relevant information.
|
|
8
|
+
|
|
9
|
+
<Button as="a" href="/llms.txt" target="_blank">Open llms.txt</Button>
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## /llms-full.txt
|
|
14
|
+
|
|
15
|
+
The `llms-full.txt` file is a complete list of all the pages in the PrimeReact documentation. It is used to help AI models understand the entire documentation set.
|
|
16
|
+
|
|
17
|
+
<Button as="a" href="/llms-full.txt" target="_blank">Open llms-full.txt</Button>
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## .md extension
|
|
22
|
+
|
|
23
|
+
Add a `.md` to a page’s URL to display a Markdown version of that page.
|
|
24
|
+
|
|
25
|
+
<Button as="a" href="/docs/overview/llms.md" target="_blank">Open /docs/overview/llms.md</Button>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Custom Icons
|
|
2
|
+
|
|
3
|
+
PrimeReact components can be used with any icon library using the templating features.
|
|
4
|
+
|
|
5
|
+
## Material
|
|
6
|
+
|
|
7
|
+
[Material icons](https://fonts.google.com/icons) is the official icon library based on Google Material Design.
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<Button>
|
|
11
|
+
<span className="material-icons">arrow_drop_down</span>
|
|
12
|
+
</Button>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## FontAwesome
|
|
16
|
+
|
|
17
|
+
[Font Awesome](https://fontawesome.com/) is a popular icon library with a wide range of icons.
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
<Button>
|
|
21
|
+
<i className="fa-light fa-chevron-down"></i>
|
|
22
|
+
</Button>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## SVG
|
|
26
|
+
|
|
27
|
+
Inline SVGs are embedded inside the dom.
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<Button>
|
|
31
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
32
|
+
<g id="chevron-down">
|
|
33
|
+
<path d="M12,15.25a.74.74,0,0,1-.53-.22l-5-5A.75.75,0,0,1,7.53,9L12,13.44,16.47,9A.75.75,0,0,1,17.53,10l-5,5A.74.74,0,0,1,12,15.25Z" />
|
|
34
|
+
</g>
|
|
35
|
+
</svg>
|
|
36
|
+
</Button>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Image
|
|
40
|
+
|
|
41
|
+
Any type of image can be used as an icon.
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<Button>
|
|
45
|
+
<img alt="dropdown icon" src="/assets/icons/arrow_down.png">
|
|
46
|
+
</Button>
|
|
47
|
+
```
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Prime Icons
|
|
2
|
+
|
|
3
|
+
PrimeIcons is the default icon library of PrimeReact with over 250 open source icons developed by PrimeTek. PrimeIcons library is optional as PrimeReact components can use any icon with templating.
|
|
4
|
+
|
|
5
|
+
<DocNotification>
|
|
6
|
+
Browse all 250+ icons on <a href="https://primeicons.dev" target="_blank" rel="noopener noreferrer">primeicons.dev</a>.
|
|
7
|
+
</DocNotification>
|
|
8
|
+
|
|
9
|
+
## Download
|
|
10
|
+
|
|
11
|
+
`@primeicons/react` is available on npm. Each icon is a standalone React component, so only the icons you import are included in your bundle.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @primeicons/react
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Import
|
|
18
|
+
|
|
19
|
+
Import icons individually from their own entry point.
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { Check } from '@primeicons/react/check';
|
|
23
|
+
import { Search } from '@primeicons/react/search';
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Figma
|
|
27
|
+
|
|
28
|
+
PrimeIcons library is now available on [Figma Community](https://www.figma.com/community/file/1354343849355792252/primeicons). By adding them as a library, you can easily use these icons in your designs.
|
|
29
|
+
|
|
30
|
+
## Basic
|
|
31
|
+
|
|
32
|
+
Each icon is an SVG React component. Import and render it directly — no additional configuration needed.
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { Check } from '@primeicons/react/check';
|
|
36
|
+
import { Search } from '@primeicons/react/search';
|
|
37
|
+
import { Times } from '@primeicons/react/times';
|
|
38
|
+
import { User } from '@primeicons/react/user';
|
|
39
|
+
|
|
40
|
+
export default function BasicDemo() {
|
|
41
|
+
return (
|
|
42
|
+
<div className="flex justify-center gap-4">
|
|
43
|
+
<Check />
|
|
44
|
+
<Times />
|
|
45
|
+
<Search />
|
|
46
|
+
<User />
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Size
|
|
53
|
+
|
|
54
|
+
Icon size is controlled with the `size` prop, which sets both the width and height in pixels.
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
import { Check } from '@primeicons/react/check';
|
|
58
|
+
import { Search } from '@primeicons/react/search';
|
|
59
|
+
import { Times } from '@primeicons/react/times';
|
|
60
|
+
import { User } from '@primeicons/react/user';
|
|
61
|
+
|
|
62
|
+
export default function SizeDemo() {
|
|
63
|
+
return (
|
|
64
|
+
<div className="flex justify-center items-center gap-4">
|
|
65
|
+
<Check size={16} />
|
|
66
|
+
<Times size={24} />
|
|
67
|
+
<Search size={32} />
|
|
68
|
+
<User size={40} />
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Color
|
|
75
|
+
|
|
76
|
+
Icon color is set with the `color` prop and is inherited from the parent element by default.
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
import { Check } from '@primeicons/react/check';
|
|
80
|
+
import { Search } from '@primeicons/react/search';
|
|
81
|
+
import { Times } from '@primeicons/react/times';
|
|
82
|
+
import { User } from '@primeicons/react/user';
|
|
83
|
+
|
|
84
|
+
export default function ColorDemo() {
|
|
85
|
+
return (
|
|
86
|
+
<div className="flex justify-center items-center gap-4">
|
|
87
|
+
<Check color="#22c55e" />
|
|
88
|
+
<Times color="#ef4444" />
|
|
89
|
+
<Search color="#3b82f6" />
|
|
90
|
+
<User color="#a855f7" />
|
|
91
|
+
</div>
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Spin
|
|
97
|
+
|
|
98
|
+
Use a spin animation utility like `animate-spin` from Tailwind apply rotation.
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
import { Cog } from '@primeicons/react/cog';
|
|
102
|
+
import { Spinner } from '@primeicons/react/spinner';
|
|
103
|
+
|
|
104
|
+
export default function SpinDemo() {
|
|
105
|
+
return (
|
|
106
|
+
<div className="flex justify-center gap-4">
|
|
107
|
+
<Spinner className="animate-spin" size={32} />
|
|
108
|
+
<Cog className="animate-spin" size={32} />
|
|
109
|
+
</div>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
```
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
Install PrimeReact and compose unstyled primitive components in your React project.
|
|
4
|
+
|
|
5
|
+
<DocMessage>
|
|
6
|
+
Start from our <a href="https://github.com/primefaces/primereact-examples/tree/main/nextjs-primitive-quickstart" target="_blank" rel="noopener noreferrer">Next.js template</a>, pre-configured with PrimeReact.
|
|
7
|
+
</DocMessage>
|
|
8
|
+
|
|
9
|
+
Primitive components ship **unstyled** — you compose the behavior and bring your own styles. They work in any React setup; the steps below show a Next.js example you can adapt to your own framework.
|
|
10
|
+
|
|
11
|
+
<DocStepper>
|
|
12
|
+
<DocStep>
|
|
13
|
+
|
|
14
|
+
### Install Packages
|
|
15
|
+
|
|
16
|
+
Install PrimeReact using your favorite package manager:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install primereact@11.0.0-rc.2
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
</DocStep>
|
|
23
|
+
<DocStep>
|
|
24
|
+
|
|
25
|
+
### PrimeReactProvider
|
|
26
|
+
|
|
27
|
+
Wrap your app with `PrimeReactProvider` so the primitives' shared context is available everywhere. No theme or preset is needed — you style everything yourself:
|
|
28
|
+
|
|
29
|
+
```tsx showLineNumbers title="components/prime-provider.tsx"
|
|
30
|
+
'use client';
|
|
31
|
+
import { PrimeReactProvider } from '@primereact/core';
|
|
32
|
+
|
|
33
|
+
export function PrimeProvider({ children }: { children: React.ReactNode }) {
|
|
34
|
+
return <PrimeReactProvider>{children}</PrimeReactProvider>;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then wrap your app with it in `app/layout.tsx`:
|
|
39
|
+
|
|
40
|
+
```tsx showLineNumbers title="app/layout.tsx" {1,6}
|
|
41
|
+
import { PrimeProvider } from '@/components/prime-provider';
|
|
42
|
+
|
|
43
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
44
|
+
return (
|
|
45
|
+
<html lang="en">
|
|
46
|
+
<body>
|
|
47
|
+
<PrimeProvider>{children}</PrimeProvider>
|
|
48
|
+
</body>
|
|
49
|
+
</html>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
</DocStep>
|
|
55
|
+
<DocStep>
|
|
56
|
+
|
|
57
|
+
### Add a `cn` Helper (optional)
|
|
58
|
+
|
|
59
|
+
If you style with Tailwind, a `cn` helper makes merging class names easier. Install `tailwind-merge` and create `lib/utils.ts`:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm install tailwind-merge
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```ts showLineNumbers title="lib/utils.ts"
|
|
66
|
+
import { cn as _cn } from '@primeuix/utils';
|
|
67
|
+
import { twMerge } from 'tailwind-merge';
|
|
68
|
+
|
|
69
|
+
export function cn(...inputs: unknown[]) {
|
|
70
|
+
return twMerge(_cn(...inputs));
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
</DocStep>
|
|
75
|
+
<DocStep>
|
|
76
|
+
|
|
77
|
+
### Verify
|
|
78
|
+
|
|
79
|
+
Render the unstyled `Button` primitive, styled with your `cn` helper, to confirm everything is wired up:
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
import { cn } from '@primeuix/utils';
|
|
83
|
+
import { Button } from 'primereact/button';
|
|
84
|
+
|
|
85
|
+
export default function VerifyDemo() {
|
|
86
|
+
return (
|
|
87
|
+
<div className="flex justify-center">
|
|
88
|
+
<Button
|
|
89
|
+
className={cn(
|
|
90
|
+
'inline-flex items-center justify-center rounded-md bg-neutral-900 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-neutral-800'
|
|
91
|
+
)}
|
|
92
|
+
>
|
|
93
|
+
Verify
|
|
94
|
+
</Button>
|
|
95
|
+
</div>
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```tsx showLineNumbers {1}
|
|
101
|
+
import { Button } from 'primereact/button';
|
|
102
|
+
import { cn } from '@/lib/utils';
|
|
103
|
+
|
|
104
|
+
export default function VerifyInstallation() {
|
|
105
|
+
return <Button className={cn('inline-flex items-center justify-center rounded-md bg-neutral-900 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-neutral-800')}>Verify</Button>;
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
</DocStep>
|
|
110
|
+
|
|
111
|
+
</DocStepper>
|
|
112
|
+
|
|
113
|
+
## Next Steps
|
|
114
|
+
|
|
115
|
+
[Browse the components](/docs/primitive/components/autocomplete) and compose the unstyled primitives you need, styling them with any CSS solution.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Primitive
|
|
2
|
+
|
|
3
|
+
Unstyled React components with composable subcomponents. Behavior included, styling up to you.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Primitives are low-level React components built on top of our headless hooks. Unlike hooks, they provide a compound component API, `Dialog.Root`, `Dialog.Trigger`, `Dialog.Content`, so you compose pieces without wiring up hook props manually.
|
|
8
|
+
|
|
9
|
+
Use primitives when you want the ergonomics of a component API but full freedom over styles. They're what our Styled and Tailwind layers are built on.
|
|
10
|
+
|
|
11
|
+
## What you get
|
|
12
|
+
|
|
13
|
+
- 70+ components with a compound API
|
|
14
|
+
- No styles, use any CSS solution you like
|
|
15
|
+
- Data attributes for state-based styling (`data-state`, `data-disabled`)
|
|
16
|
+
- Full accessibility and keyboard navigation
|
|
17
|
+
|
|
18
|
+
## Next steps
|
|
19
|
+
|
|
20
|
+
Open any component in the sidebar to see its subcomponents and composition examples.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Accessibility
|
|
2
|
+
|
|
3
|
+
PrimeReact has WCAG level compliance, refer to the accessibility documentation of each component for detailed information.
|
|
4
|
+
|
|
5
|
+
import { CheckCircle } from '@primeicons/react/check-circle'
|
|
6
|
+
import { TimesCircle } from '@primeicons/react/times-circle'
|
|
7
|
+
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
According to the World Health Organization, 15% of the world population has a disability to some degree. As a result, accessibility features in any context such as a ramp for wheelchair users or a multimedia with captions are crucial to ensure content can be consumed by anyone.
|
|
11
|
+
|
|
12
|
+
Types of disabilities are diverse so you need to know your audience well and how they interact with the content created. There four main categories;
|
|
13
|
+
|
|
14
|
+
### Visual Impairments
|
|
15
|
+
|
|
16
|
+
Blindness, low-level vision or color blindness are the common types of visual impairments. Screen magnifiers and the color blind mode are usually built-in features of the browsers whereas for people who rely on screen readers, page developers are required to make sure content is readable by the readers. Popular readers are NVDA , JAWS and ChromeVox .
|
|
17
|
+
|
|
18
|
+
### Hearing Impairments
|
|
19
|
+
|
|
20
|
+
Deafness or hearing loss refers to the inability to hear sounds totally or partially. People with hearing impairments use assistive devices however it may not be enough when interacting with a web page. Common implementation is providing textual alternatives, transcripts and captions for content with audio.
|
|
21
|
+
|
|
22
|
+
### Mobility Impairments
|
|
23
|
+
|
|
24
|
+
People with mobility impairments have disabilities related to movement due to loss of a limb, paralysis or other varying reasons. Assistive technologies like a head pointer is a device to interact with a screen whereas keyboard or a trackpad remain as solutions for people who are not able to utilize a mouse.
|
|
25
|
+
|
|
26
|
+
### Cognitive Impairments
|
|
27
|
+
|
|
28
|
+
Cognitive impairments have a wider range that includes people with learning disabilities, depression and dyslexia. A well designed content also leads to better user experience for people without disabilities so designing for cognitive impairments result in better design for any user.
|
|
29
|
+
|
|
30
|
+
## WCAG
|
|
31
|
+
|
|
32
|
+
Correct page structure with the aid of assistive technologies are the core ingridients for an accessible web content. HTML is based on an accessible foundation, form controls can be used by keyboard by default and semantic HTML is easier to be processed by a screen reader.
|
|
33
|
+
|
|
34
|
+
[WCAG](https://www.w3.org/WAI/standards-guidelines/wcag/) refers to **Web Content Accessibility Guideline**, a standard managed by the WAI (Web Accessibility Initiative) of W3C (World Wide Web Consortium). WCAG consists of recommendations for making the web content more accessible. PrimeReact components aim high level of WCAG compliancy in the near future.
|
|
35
|
+
|
|
36
|
+
Various countries around the globe have governmental policies regarding web accessibility as well. Most well known of these are Section 508 in the US and [Web Accessibility Directive](https://digital-strategy.ec.europa.eu/en/policies/web-accessibility) of the European Union.
|
|
37
|
+
|
|
38
|
+
## Form Controls
|
|
39
|
+
|
|
40
|
+
Native form elements should be preferred instead of elements that are meant for other purposes like presentation. As an example, button below is rendered as a form control by the browser, can receive focus via tabbing and can be used with space key as well to trigger.
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
<button onClick={(event) => onButtonClick(event)}>Click</button>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
On the other hand, a fancy css based button using a div has no keyboard or screen reader support.
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<div className="fancy-button" onClick={(event) => onButtonClick(event)}>
|
|
50
|
+
Click
|
|
51
|
+
</div>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`tabIndex` is required to make a div element accessible in addition to use a keydown to bring the keyboard support back. To avoid the overload and implementing functionality that is already provided by the browser, native form controls should be preferred.
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
<div className="fancy-button" onClick={(event) => onClick(event)} onKeyDown={(event) => onKeyDown(event)} tabIndex="0">
|
|
58
|
+
Click
|
|
59
|
+
</div>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Form components must be related to another element that describes what the form element is used for. This is usually achieved with the `label` element.
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
<label htmlFor="myinput">Username:</label>
|
|
66
|
+
<input id="myinput" type="text" name="username" />
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Semantic HTML
|
|
70
|
+
|
|
71
|
+
HTML offers various element to organize content on a web page that screen readers are aware of. Preferring Semantic HTML for good semantics provide out of the box support for reader which is not possible when regular `div` elements with classes are used. Consider the following example that do not mean too much for readers.
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<div className="header">
|
|
75
|
+
<div className="header-text">Header</div>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<div className="nav"></div>
|
|
79
|
+
|
|
80
|
+
<div className="main">
|
|
81
|
+
<div className="content">
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div className="sidebar">
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<div className="footer"></div>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Same layout can be achieved using the semantic elements with screen reader support built-in.
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
<header>
|
|
95
|
+
<h1>Header</h1>
|
|
96
|
+
</header>
|
|
97
|
+
|
|
98
|
+
<nav></nav>
|
|
99
|
+
|
|
100
|
+
<main>
|
|
101
|
+
<article></article>
|
|
102
|
+
|
|
103
|
+
<aside></aside>
|
|
104
|
+
|
|
105
|
+
</main>
|
|
106
|
+
|
|
107
|
+
<footer></footer>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## WAI ARIA
|
|
111
|
+
|
|
112
|
+
ARIA refers to "Accessible Rich Internet Applications" is a suite to fill the gap where semantic HTML is inadequate. These cases are mainly related to rich UI components/widgets. Although browser support for rich UI components such as a datepicker or inputcolor has been improved over the past years many web developers still utilize UI components derived from standard HTML elements created by them or by other projects like PrimeReact. These types of components must provide keyboard and screen reader support, the latter case is where the WAI-ARIA is utilized.
|
|
113
|
+
|
|
114
|
+
ARIA consists of roles, properties and attributes. **Roles** define what the element is mainly used for e.g. `checkbox`, `dialog`, `tablist` whereas **States** and **Properties** define the metadata of the element like `aria-checked`, `aria-disabled`.
|
|
115
|
+
|
|
116
|
+
Consider the following case of a native checkbox. It has built-in keyboard and screen reader support.
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
<input type="checkbox" value="Prime" name="ui" checked />
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
A fancy checkbox with css animations might look more appealing but accessibility might be lacking. Checkbox below may display a checked font icon with animations however it is not tabbable, cannot be checked with space key and cannot be read by a reader.
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
<div className="fancy-checkbox">{checked && <i className="checked-icon" />}</div>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
One alternative is using ARIA roles for readers and use javascript for keyboard support. Notice the usage of `aria-labelledby` as a replacement of the `label` tag with `htmlFor`.
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
<span id="chk-label">Remember Me</span>
|
|
132
|
+
<div className="fancy-checkbox" role="checkbox" aria-checked="false" tabIndex="0" aria-labelledby="chk-label"
|
|
133
|
+
onClick={toggle} onKeyDown={(event) => onKeyDown(event)}>
|
|
134
|
+
{checked && <i className="checked-icon" />}
|
|
135
|
+
</div>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
However the best practice is combining semantic HTML for accessibility while keeping the design for UX. This approach involves hiding a native checkbox for accessibility and using javascript events to update its state. Notice the usage of `p-hidden-accessible` that hides the elements from the user but not from the screen reader.
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
<label htmlFor="chkbox">Remember Me</label>
|
|
142
|
+
<div className="fancy-checkbox" onClick={toggle}>
|
|
143
|
+
<input className="p-hidden-accessible" type="checkbox" id="chkbox" onFocus={updateParentVisuals} onBlur={updateParentVisuals}
|
|
144
|
+
onKeyDown={(event) => onKeyDown(event)} />
|
|
145
|
+
{checked && <i className="checked-icon" />}
|
|
146
|
+
</div>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
A working sample is the PrimeReact checkbox that is tabbable, keyboard accessible and is compliant with a screen reader. Instead of ARIA roles it relies on a hidden native checkbox.
|
|
150
|
+
|
|
151
|
+
```tsx
|
|
152
|
+
'use client';
|
|
153
|
+
import { Check } from '@primeicons/react/check';
|
|
154
|
+
import { Checkbox } from 'primereact/checkbox';
|
|
155
|
+
import styles from './accessibility-checkbox-demo.module.css';
|
|
156
|
+
|
|
157
|
+
export default function AccessibilityCheckboxDemo() {
|
|
158
|
+
return (
|
|
159
|
+
<div className={styles.wrapper}>
|
|
160
|
+
<Checkbox.Root inputId="chkbox" className={styles.root} inputClassName={styles.input}>
|
|
161
|
+
<Checkbox.Box className={styles.box}>
|
|
162
|
+
<Checkbox.Indicator match="checked" className={styles.indicator}>
|
|
163
|
+
<Check className="w-3 h-3" />
|
|
164
|
+
</Checkbox.Indicator>
|
|
165
|
+
</Checkbox.Box>
|
|
166
|
+
</Checkbox.Root>
|
|
167
|
+
<label htmlFor="chkbox" className={styles.label}>
|
|
168
|
+
Remember Me
|
|
169
|
+
</label>
|
|
170
|
+
</div>
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Colors
|
|
176
|
+
|
|
177
|
+
Colors on a web page should aim a contrast ratio of at least 4.5:1 and consider a selection of colors that do not cause vibration.
|
|
178
|
+
|
|
179
|
+
### Good Contrast
|
|
180
|
+
|
|
181
|
+
Color contrast between the background and the foreground content should be sufficient enough to ensure readability. Example below displays two cases with good and bad samples.
|
|
182
|
+
|
|
183
|
+
<div className="flex">
|
|
184
|
+
<div className="h-32 w-32 flex justify-center items-center mr-8 font-bold bg-blue-600 rounded-lg">
|
|
185
|
+
<span className="text-white">GOOD</span>
|
|
186
|
+
</div>
|
|
187
|
+
<div className="h-32 w-32 flex justify-center items-center mr-8 font-bold bg-blue-400 rounded-lg">
|
|
188
|
+
<span className="text-white">BAD</span>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
### Vibration
|
|
193
|
+
|
|
194
|
+
Color vibration is leads to an illusion of motion due to choosing colors that have low visibility against each other. Color combinations need to be picked with caution to avoid vibration.
|
|
195
|
+
|
|
196
|
+
<div className="flex">
|
|
197
|
+
<div className="h-32 w-32 flex justify-center items-center mr-8 font-bold bg-pink-500 rounded-lg">
|
|
198
|
+
<span className="text-blue-500">VIBRATE</span>
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
|
|
202
|
+
### Dark Mode
|
|
203
|
+
|
|
204
|
+
Highly saturated colors should be avoided when used within a dark design scheme as they cause eye strain. Instead desaturated colors should be preferred.
|
|
205
|
+
|
|
206
|
+
<div className="flex">
|
|
207
|
+
<div className="h-32 w-32 flex flex-col justify-center items-center mr-8 font-bold bg-gray-900 rounded-lg">
|
|
208
|
+
<span className="text-indigo-500">Indigo 500</span>
|
|
209
|
+
<TimesCircle className="text-indigo-500 mt-4 text-xl" />
|
|
210
|
+
</div>
|
|
211
|
+
<div className="h-32 w-32 flex flex-col justify-center items-center mr-8 font-bold bg-gray-900 rounded-lg">
|
|
212
|
+
<span className="text-indigo-200">Indigo 200</span>
|
|
213
|
+
<CheckCircle className="text-indigo-200 mt-4 text-xl" />
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|