@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,292 @@
|
|
|
1
|
+
# Tree
|
|
2
|
+
|
|
3
|
+
Unstyled, accessible tree primitive with a compound API.
|
|
4
|
+
|
|
5
|
+
<DocPrimitiveIntro description="Unstyled compound primitive for rendering hierarchical data with full control over markup." />
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
'use client';
|
|
9
|
+
import { NodeService } from '@/shared/services/node.service';
|
|
10
|
+
import { ChevronDown } from '@primeicons/react/chevron-down';
|
|
11
|
+
import { ChevronRight } from '@primeicons/react/chevron-right';
|
|
12
|
+
import { Tree, type TreeNodeData } from 'primereact/tree';
|
|
13
|
+
import * as React from 'react';
|
|
14
|
+
import styles from './basic-demo.module.css';
|
|
15
|
+
|
|
16
|
+
export default function BasicDemo() {
|
|
17
|
+
const [nodes, setNodes] = React.useState<TreeNodeData[]>([]);
|
|
18
|
+
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
NodeService.getTreeNodes().then(setNodes);
|
|
21
|
+
}, []);
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<Tree.Root value={nodes} defaultExpandedKeys={{ '0': true }} selectionMode="single" className={styles.root}>
|
|
25
|
+
<Tree.Nodes>
|
|
26
|
+
{({ node }) => (
|
|
27
|
+
<Tree.Node uKey={node.key}>
|
|
28
|
+
<Tree.Content>
|
|
29
|
+
<Tree.Toggle>
|
|
30
|
+
<Tree.ToggleIndicator match="expanded">
|
|
31
|
+
<ChevronDown />
|
|
32
|
+
</Tree.ToggleIndicator>
|
|
33
|
+
<Tree.ToggleIndicator match="collapsed">
|
|
34
|
+
<ChevronRight />
|
|
35
|
+
</Tree.ToggleIndicator>
|
|
36
|
+
</Tree.Toggle>
|
|
37
|
+
<Tree.Label>{node.label}</Tree.Label>
|
|
38
|
+
</Tree.Content>
|
|
39
|
+
</Tree.Node>
|
|
40
|
+
)}
|
|
41
|
+
</Tree.Nodes>
|
|
42
|
+
</Tree.Root>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
<DocPrimitiveLinks name="Tree" />
|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- Compound parts: _Root_, _Nodes_, _Node_, _Content_, _Toggle_, _ToggleIndicator_, _Selection_, _DropIndicator_, _Label_, _Filter_, _Header_, _Footer_, _Empty_, _Loading_
|
|
52
|
+
- Flat DOM with a single `<ul role="tree">` containing one `<li role="treeitem">` per visible row
|
|
53
|
+
- Selection modes _single_, _multiple_ and _checkbox_ with tri-state cascade
|
|
54
|
+
- Drag-and-drop with a single _onMove_ event; _validateMove_ can be sync or async
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import { Tree } from 'primereact/tree';
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
<Tree.Root value={nodes}>
|
|
64
|
+
<Tree.Header>
|
|
65
|
+
<Tree.Filter />
|
|
66
|
+
</Tree.Header>
|
|
67
|
+
<Tree.Nodes>
|
|
68
|
+
{({ node }) => (
|
|
69
|
+
<Tree.Node uKey={node.key}>
|
|
70
|
+
<Tree.Content>
|
|
71
|
+
<Tree.Toggle>
|
|
72
|
+
<Tree.ToggleIndicator match="expanded">▼</Tree.ToggleIndicator>
|
|
73
|
+
<Tree.ToggleIndicator match="collapsed">▶</Tree.ToggleIndicator>
|
|
74
|
+
</Tree.Toggle>
|
|
75
|
+
<Tree.Label>{node.label}</Tree.Label>
|
|
76
|
+
</Tree.Content>
|
|
77
|
+
</Tree.Node>
|
|
78
|
+
)}
|
|
79
|
+
</Tree.Nodes>
|
|
80
|
+
<Tree.Footer />
|
|
81
|
+
<Tree.Empty />
|
|
82
|
+
</Tree.Root>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Behavior
|
|
86
|
+
|
|
87
|
+
### Flat Render
|
|
88
|
+
|
|
89
|
+
_Tree.Nodes_ walks the data top-down and calls its render function once per visible row. _Tree.Node_ looks the data up by _uKey_. Each `<li>` carries its depth in the `--px-tree-node-level` CSS variable (1-based); combine it with your own indent unit for indentation:
|
|
90
|
+
|
|
91
|
+
```css
|
|
92
|
+
[data-part='content'] {
|
|
93
|
+
margin-inline-start: calc((var(--px-tree-node-level, 1) - 1) * var(--p-tree-indent, 1rem));
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Toggle Indicator
|
|
98
|
+
|
|
99
|
+
_Tree.Toggle_ renders no icon on its own. Add _Tree.ToggleIndicator_ with _match="expanded"_, _match="collapsed"_ or _match="always"_ inside to render per-state content. For leaf rows the toggle is replaced by `<span data-part="toggle-spacer">` so the indentation stays aligned.
|
|
100
|
+
|
|
101
|
+
### Selection
|
|
102
|
+
|
|
103
|
+
_Tree.Selection_ is render-prop based. Inside _Tree.Node_ it exposes _isSelected_, _isPartiallySelected_ and _toggle_. Inside _Tree.Header_ it exposes _isAllSelected_, _isSomeSelected_ and _toggleAll_. Pass _mode="radio" | "checkbox" | "single"_ to force a specific toggle behavior.
|
|
104
|
+
|
|
105
|
+
### Polymorphism
|
|
106
|
+
|
|
107
|
+
Every sub-component takes an `as` prop. Pass another element or component to swap the rendered tag.
|
|
108
|
+
|
|
109
|
+
Defaults: `Root`=`div`, `Nodes`=`ul`, `Node`=`li`, `Content`=`div`, `Toggle`=`button`, `ToggleIndicator`=`span`, `Selection`=`Fragment`, `DropIndicator`=`div`, `Label`=`span`, `Filter`=`input`, `Header`=`div`, `Footer`=`div`, `Empty`=`div`, `Loading`=`div`.
|
|
110
|
+
|
|
111
|
+
## Pass Through
|
|
112
|
+
|
|
113
|
+
<DocPTViewer name="tree-pt" components={['TreeRoot']} />
|
|
114
|
+
|
|
115
|
+
## API
|
|
116
|
+
|
|
117
|
+
### TreeRoot
|
|
118
|
+
|
|
119
|
+
<DocTable name="TreeRoot" category="api" />
|
|
120
|
+
|
|
121
|
+
| Attribute | Value |
|
|
122
|
+
| --------------- | ----------------------------------------------------- |
|
|
123
|
+
| `data-scope` | `"tree"` |
|
|
124
|
+
| `data-part` | `"root"` |
|
|
125
|
+
| `data-dragover` | Present while a compatible drag is over the container |
|
|
126
|
+
|
|
127
|
+
<DocTable name="TreeRoot" category="pt" />
|
|
128
|
+
|
|
129
|
+
### TreeNodes
|
|
130
|
+
|
|
131
|
+
<DocTable name="TreeNodes" category="api" />
|
|
132
|
+
|
|
133
|
+
| Attribute | Value |
|
|
134
|
+
| ------------ | --------- |
|
|
135
|
+
| `data-scope` | `"tree"` |
|
|
136
|
+
| `data-part` | `"nodes"` |
|
|
137
|
+
| `role` | `"tree"` |
|
|
138
|
+
|
|
139
|
+
<DocTable name="TreeNodes" category="pt" />
|
|
140
|
+
|
|
141
|
+
### TreeNode
|
|
142
|
+
|
|
143
|
+
<DocTable name="TreeNode" category="api" />
|
|
144
|
+
|
|
145
|
+
| Attribute | Value |
|
|
146
|
+
| ---------------- | --------------------------------- |
|
|
147
|
+
| `data-scope` | `"tree"` |
|
|
148
|
+
| `data-part` | `"node"` |
|
|
149
|
+
| `data-node-key` | Node key |
|
|
150
|
+
| `data-expanded` | Present when expanded (non-leaf) |
|
|
151
|
+
| `data-collapsed` | Present when collapsed (non-leaf) |
|
|
152
|
+
| `data-selected` | Present when selected |
|
|
153
|
+
| `data-leaf` | Present when leaf |
|
|
154
|
+
| `data-disabled` | Present when disabled |
|
|
155
|
+
| `data-focused` | Present on the focused row |
|
|
156
|
+
|
|
157
|
+
<DocTable name="TreeNode" category="pt" />
|
|
158
|
+
|
|
159
|
+
### TreeContent
|
|
160
|
+
|
|
161
|
+
<DocTable name="TreeContent" category="api" />
|
|
162
|
+
|
|
163
|
+
| Attribute | Value |
|
|
164
|
+
| ---------------------- | ------------------------------------------ |
|
|
165
|
+
| `data-scope` | `"tree"` |
|
|
166
|
+
| `data-part` | `"content"` |
|
|
167
|
+
| `data-selected` | Present when selected or checked |
|
|
168
|
+
| `data-selectable` | Present when selectable |
|
|
169
|
+
| `data-expanded` | Present when expanded (non-leaf) |
|
|
170
|
+
| `data-collapsed` | Present when collapsed (non-leaf) |
|
|
171
|
+
| `data-leaf` | Present when leaf |
|
|
172
|
+
| `data-checked` | Present when checked (checkbox mode) |
|
|
173
|
+
| `data-partial-checked` | Present when partially checked |
|
|
174
|
+
| `data-disabled` | Present when disabled |
|
|
175
|
+
| `data-dragover` | Present while a compatible drag is over it |
|
|
176
|
+
|
|
177
|
+
<DocTable name="TreeContent" category="pt" />
|
|
178
|
+
|
|
179
|
+
### TreeToggle
|
|
180
|
+
|
|
181
|
+
<DocTable name="TreeToggle" category="api" />
|
|
182
|
+
|
|
183
|
+
| Attribute | Value |
|
|
184
|
+
| ---------------- | ---------------------- |
|
|
185
|
+
| `data-scope` | `"tree"` |
|
|
186
|
+
| `data-part` | `"toggle"` |
|
|
187
|
+
| `data-expanded` | Present when expanded |
|
|
188
|
+
| `data-collapsed` | Present when collapsed |
|
|
189
|
+
|
|
190
|
+
For leaf nodes the toggle is replaced by `<span data-part="toggle-spacer" aria-hidden>`.
|
|
191
|
+
|
|
192
|
+
<DocTable name="TreeToggle" category="pt" />
|
|
193
|
+
|
|
194
|
+
### TreeToggleIndicator
|
|
195
|
+
|
|
196
|
+
<DocTable name="TreeToggleIndicator" category="api" />
|
|
197
|
+
|
|
198
|
+
| Attribute | Value |
|
|
199
|
+
| ------------ | -------------------- |
|
|
200
|
+
| `data-scope` | `"tree"` |
|
|
201
|
+
| `data-part` | `"toggle-indicator"` |
|
|
202
|
+
|
|
203
|
+
<DocTable name="TreeToggleIndicator" category="pt" />
|
|
204
|
+
|
|
205
|
+
### TreeSelection
|
|
206
|
+
|
|
207
|
+
<DocTable name="TreeSelection" category="api" />
|
|
208
|
+
|
|
209
|
+
Render-prop only; no DOM attributes of its own.
|
|
210
|
+
|
|
211
|
+
<DocTable name="TreeSelection" category="pt" />
|
|
212
|
+
|
|
213
|
+
### TreeDropIndicator
|
|
214
|
+
|
|
215
|
+
<DocTable name="TreeDropIndicator" category="api" />
|
|
216
|
+
|
|
217
|
+
Renders only while the matching drop point is hovered. Use one with `position="before"` and one with `position="after"` per `Tree.Node`.
|
|
218
|
+
|
|
219
|
+
| Attribute | Value |
|
|
220
|
+
| ------------ | -------------- |
|
|
221
|
+
| `data-scope` | `"tree"` |
|
|
222
|
+
| `data-part` | `"drop-point"` |
|
|
223
|
+
|
|
224
|
+
<DocTable name="TreeDropIndicator" category="pt" />
|
|
225
|
+
|
|
226
|
+
### TreeLabel
|
|
227
|
+
|
|
228
|
+
<DocTable name="TreeLabel" category="api" />
|
|
229
|
+
|
|
230
|
+
<DocTable name="TreeLabel" category="pt" />
|
|
231
|
+
|
|
232
|
+
### TreeFilter
|
|
233
|
+
|
|
234
|
+
<DocTable name="TreeFilter" category="api" />
|
|
235
|
+
|
|
236
|
+
| Attribute | Value |
|
|
237
|
+
| ------------ | ---------- |
|
|
238
|
+
| `data-scope` | `"tree"` |
|
|
239
|
+
| `data-part` | `"filter"` |
|
|
240
|
+
|
|
241
|
+
<DocTable name="TreeFilter" category="pt" />
|
|
242
|
+
|
|
243
|
+
### TreeHeader
|
|
244
|
+
|
|
245
|
+
<DocTable name="TreeHeader" category="api" />
|
|
246
|
+
|
|
247
|
+
<DocTable name="TreeHeader" category="pt" />
|
|
248
|
+
|
|
249
|
+
### TreeFooter
|
|
250
|
+
|
|
251
|
+
<DocTable name="TreeFooter" category="api" />
|
|
252
|
+
|
|
253
|
+
<DocTable name="TreeFooter" category="pt" />
|
|
254
|
+
|
|
255
|
+
### TreeEmpty
|
|
256
|
+
|
|
257
|
+
<DocTable name="TreeEmpty" category="api" />
|
|
258
|
+
|
|
259
|
+
<DocTable name="TreeEmpty" category="pt" />
|
|
260
|
+
|
|
261
|
+
### TreeLoading
|
|
262
|
+
|
|
263
|
+
<DocTable name="TreeLoading" category="api" />
|
|
264
|
+
|
|
265
|
+
Renders only while `Tree.Root.loading` is true. Use it as a sibling of `Tree.Nodes`.
|
|
266
|
+
|
|
267
|
+
| Attribute | Value |
|
|
268
|
+
| ------------ | ----------- |
|
|
269
|
+
| `data-scope` | `"tree"` |
|
|
270
|
+
| `data-part` | `"loading"` |
|
|
271
|
+
| `role` | `"status"` |
|
|
272
|
+
|
|
273
|
+
<DocTable name="TreeLoading" category="pt" />
|
|
274
|
+
|
|
275
|
+
## Accessibility
|
|
276
|
+
|
|
277
|
+
### Screen Reader
|
|
278
|
+
|
|
279
|
+
The flat `<ul role="tree">` contains one `<li role="treeitem">` per visible row. Each row carries `aria-level`, `aria-posinset` and `aria-setsize`. Non-leaf rows set `aria-expanded`. In `selectionMode="checkbox"`, `aria-checked` is `true`, `false` or `"mixed"`.
|
|
280
|
+
|
|
281
|
+
### Keyboard Support
|
|
282
|
+
|
|
283
|
+
| Key | Function |
|
|
284
|
+
| ----------------------- | ------------------------------------------------------ |
|
|
285
|
+
| `tab` / `shift` + `tab` | Enter / leave the tree. |
|
|
286
|
+
| `enter` / `space` | Toggle selection on the focused node. |
|
|
287
|
+
| `down arrow` | Move focus to the next visible row. |
|
|
288
|
+
| `up arrow` | Move focus to the previous visible row. |
|
|
289
|
+
| `right arrow` | Expand the focused node, or step into its first child. |
|
|
290
|
+
| `left arrow` | Collapse the focused node, or step out to its parent. |
|
|
291
|
+
| `home` / `end` | Jump to the first / last visible row. |
|
|
292
|
+
| Printable characters | Type-ahead by label (500 ms reset). |
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# TreeTable
|
|
2
|
+
|
|
3
|
+
An unstyled hierarchical data table built on DataTable with treeMode enabled, sort, filter, paginate, select, expand, and edit tree-shaped data.
|
|
4
|
+
|
|
5
|
+
<DocPrimitiveIntro description="Compose a fully custom tree table with the same compound API as DataTable. Tree mode is a single prop on Root, every other feature (sort, filter, paginate, select, edit, reorder, export) works the same way." />
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
'use client';
|
|
9
|
+
import { NodeService, type TreeTableNode } from '@/shared/services/node.service';
|
|
10
|
+
import { DataTable } from 'primereact/datatable';
|
|
11
|
+
import type { DataTableExpansionEvent } from 'primereact/datatable';
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
|
|
14
|
+
const cellStyle: React.CSSProperties = { padding: '0.5rem 0.75rem' };
|
|
15
|
+
const headStyle: React.CSSProperties = { ...cellStyle, textAlign: 'left', fontWeight: 600, borderBottom: '1px solid var(--p-content-border-color)' };
|
|
16
|
+
const rowStyle: React.CSSProperties = { borderBottom: '1px solid var(--p-content-border-color)' };
|
|
17
|
+
|
|
18
|
+
export default function BasicDemo() {
|
|
19
|
+
const [nodes, setNodes] = React.useState<TreeTableNode[]>([]);
|
|
20
|
+
const [expandedKeys, setExpandedKeys] = React.useState<Record<string, boolean>>({ '0': true });
|
|
21
|
+
|
|
22
|
+
React.useEffect(() => {
|
|
23
|
+
setNodes(NodeService.getTreeTableNodesData().slice(0, 5));
|
|
24
|
+
}, []);
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<div style={{ width: '100%' }}>
|
|
28
|
+
<DataTable.Root
|
|
29
|
+
data={nodes}
|
|
30
|
+
dataKey="key"
|
|
31
|
+
treeMode
|
|
32
|
+
expandedKeys={expandedKeys}
|
|
33
|
+
onExpandedChange={(e: DataTableExpansionEvent) => setExpandedKeys(e.value)}
|
|
34
|
+
>
|
|
35
|
+
<DataTable.TableContainer>
|
|
36
|
+
<DataTable.Table style={{ width: '100%', borderCollapse: 'collapse' }}>
|
|
37
|
+
<DataTable.THead>
|
|
38
|
+
<DataTable.THeadRow>
|
|
39
|
+
<DataTable.THeadCell style={headStyle}>Name</DataTable.THeadCell>
|
|
40
|
+
<DataTable.THeadCell style={headStyle}>Size</DataTable.THeadCell>
|
|
41
|
+
<DataTable.THeadCell style={headStyle}>Type</DataTable.THeadCell>
|
|
42
|
+
</DataTable.THeadRow>
|
|
43
|
+
</DataTable.THead>
|
|
44
|
+
<DataTable.TBody>
|
|
45
|
+
{({ item }: { item: Record<string, unknown> }) => (
|
|
46
|
+
<DataTable.Row style={rowStyle}>
|
|
47
|
+
<DataTable.Cell style={cellStyle}>
|
|
48
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: 4 }}>
|
|
49
|
+
<DataTable.RowToggle>
|
|
50
|
+
<DataTable.RowToggleIndicator match="expanded">▼</DataTable.RowToggleIndicator>
|
|
51
|
+
<DataTable.RowToggleIndicator match="collapsed">▶</DataTable.RowToggleIndicator>
|
|
52
|
+
</DataTable.RowToggle>
|
|
53
|
+
<span>{String(item.name)}</span>
|
|
54
|
+
</div>
|
|
55
|
+
</DataTable.Cell>
|
|
56
|
+
<DataTable.Cell style={cellStyle}>{String(item.size)}</DataTable.Cell>
|
|
57
|
+
<DataTable.Cell style={cellStyle}>{String(item.type)}</DataTable.Cell>
|
|
58
|
+
</DataTable.Row>
|
|
59
|
+
)}
|
|
60
|
+
</DataTable.TBody>
|
|
61
|
+
</DataTable.Table>
|
|
62
|
+
</DataTable.TableContainer>
|
|
63
|
+
</DataTable.Root>
|
|
64
|
+
</div>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
<DocPrimitiveLinks name="TreeTable" />
|
|
70
|
+
|
|
71
|
+
## Features
|
|
72
|
+
|
|
73
|
+
- Same compound component API as [DataTable](/docs/primitive/components/datatable)
|
|
74
|
+
- `treeMode` flips `role="table"` to `role="treegrid"` and stamps `aria-level`, `aria-expanded`, `aria-posinset`, `aria-setsize` on each row automatically
|
|
75
|
+
- `DataTable.RowToggle` renders an expander when a node has children and a leaf-spacer when it does not, so indentation stays aligned
|
|
76
|
+
- All editing, filter, sort, pagination, selection, reorder, resize, and export features compose with hierarchical data
|
|
77
|
+
|
|
78
|
+
## Usage
|
|
79
|
+
|
|
80
|
+
There is no separate `TreeTable` import, pass `treeMode` and `dataKey="key"` to `DataTable.Root` and feed it nodes shaped as `{ key, data, children? }`.
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
import { DataTable } from 'primereact/datatable';
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
<DataTable.Root data={nodes} dataKey="key" treeMode>
|
|
88
|
+
<DataTable.TableContainer>
|
|
89
|
+
<DataTable.Table>
|
|
90
|
+
<DataTable.THead>
|
|
91
|
+
<DataTable.THeadRow>
|
|
92
|
+
<DataTable.THeadCell>Name</DataTable.THeadCell>
|
|
93
|
+
<DataTable.THeadCell>Size</DataTable.THeadCell>
|
|
94
|
+
</DataTable.THeadRow>
|
|
95
|
+
</DataTable.THead>
|
|
96
|
+
<DataTable.TBody>
|
|
97
|
+
{({ item }) => (
|
|
98
|
+
<DataTable.Row>
|
|
99
|
+
<DataTable.Cell>
|
|
100
|
+
<DataTable.RowToggle>
|
|
101
|
+
<DataTable.RowToggleIndicator match="expanded">▼</DataTable.RowToggleIndicator>
|
|
102
|
+
<DataTable.RowToggleIndicator match="collapsed">▶</DataTable.RowToggleIndicator>
|
|
103
|
+
</DataTable.RowToggle>
|
|
104
|
+
<span>{item.name}</span>
|
|
105
|
+
</DataTable.Cell>
|
|
106
|
+
<DataTable.Cell>{item.size}</DataTable.Cell>
|
|
107
|
+
</DataTable.Row>
|
|
108
|
+
)}
|
|
109
|
+
</DataTable.TBody>
|
|
110
|
+
</DataTable.Table>
|
|
111
|
+
</DataTable.TableContainer>
|
|
112
|
+
</DataTable.Root>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Behavior
|
|
116
|
+
|
|
117
|
+
### Controlled Expansion
|
|
118
|
+
|
|
119
|
+
Pass `expandedKeys` and `onExpandedChange` to drive expansion from outside state.
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
const [expandedKeys, setExpandedKeys] = React.useState<Record<string, boolean>>({ '0': true });
|
|
123
|
+
|
|
124
|
+
<DataTable.Root data={nodes} dataKey="key" treeMode expandedKeys={expandedKeys} onExpandedChange={(e) => setExpandedKeys(e.value)}>
|
|
125
|
+
{/* … */}
|
|
126
|
+
</DataTable.Root>;
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Filter, Sort, Paginate
|
|
130
|
+
|
|
131
|
+
Use the same `filters` / `globalFilter` / `sortField` / `paginator` props as on a flat table, the underlying hook re-runs them tree-aware.
|
|
132
|
+
|
|
133
|
+
```tsx
|
|
134
|
+
<DataTable.Root
|
|
135
|
+
data={nodes}
|
|
136
|
+
dataKey="key"
|
|
137
|
+
treeMode
|
|
138
|
+
paginator
|
|
139
|
+
rows={10}
|
|
140
|
+
filters={filters}
|
|
141
|
+
onFilter={(e) => setFilters(e.filters)}
|
|
142
|
+
globalFilter={search}
|
|
143
|
+
globalFilterFields={['name', 'type']}
|
|
144
|
+
sortField={sortField}
|
|
145
|
+
sortOrder={sortOrder}
|
|
146
|
+
onSortChange={(e) => {
|
|
147
|
+
setSortField(e.field);
|
|
148
|
+
setSortOrder(e.order);
|
|
149
|
+
}}
|
|
150
|
+
>
|
|
151
|
+
{/* same THead / TBody markup as a flat DataTable */}
|
|
152
|
+
</DataTable.Root>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Selection
|
|
156
|
+
|
|
157
|
+
Selection cascades through descendants in tree mode. Use `Selection.isPartiallySelected` from the slot context to render an indeterminate state on parent nodes that have only some children selected.
|
|
158
|
+
|
|
159
|
+
```tsx
|
|
160
|
+
<DataTable.Selection>{({ isSelected, isPartiallySelected, toggle }) => <Checkbox checked={isSelected} indeterminate={isPartiallySelected} onCheckedChange={toggle} />}</DataTable.Selection>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Editing
|
|
164
|
+
|
|
165
|
+
Cell and row editing both work in tree mode without changes. The cell editor pins to the underlying row by `key`, so edits stay attached to the correct node when sort, filter, or expand/collapse reshuffles the flat order.
|
|
166
|
+
|
|
167
|
+
## Components
|
|
168
|
+
|
|
169
|
+
`TreeTable` renders the same compound component surface as `DataTable`. See the full [DataTable component reference](/docs/primitive/components/datatable#api) for every available sub-component, data attribute, and pass-through.
|
|
170
|
+
|
|
171
|
+
## Accessibility
|
|
172
|
+
|
|
173
|
+
### Screen Reader
|
|
174
|
+
|
|
175
|
+
When `treeMode` is enabled, `DataTable.Table` applies `role="treegrid"`. Each row exposes `aria-level` (one-based depth), `aria-expanded` when it has children, and `aria-posinset` / `aria-setsize` for screen-reader navigation between siblings. Expander buttons emit `aria-expanded` and a descriptive `aria-label` (`"Expand row"` / `"Collapse row"`).
|
|
176
|
+
|
|
177
|
+
### Keyboard Support
|
|
178
|
+
|
|
179
|
+
| Key | Function |
|
|
180
|
+
| ------------------------- | ------------------------------------------------------------------------------------------- |
|
|
181
|
+
| `tab` | Moves focus through interactive elements (sort triggers, filter inputs, rows). |
|
|
182
|
+
| `arrow up` / `arrow down` | Moves focus between rows when a row is focused. |
|
|
183
|
+
| `arrow left` | Collapses the focused row, or moves focus to its parent if already collapsed. |
|
|
184
|
+
| `arrow right` | Expands the focused row, or moves focus to its first child if already expanded. |
|
|
185
|
+
| `home` / `end` | Moves focus to the first / last visible row. |
|
|
186
|
+
| `space` | Toggles selection on the focused row. |
|
|
187
|
+
| `enter` | Toggles expansion on the focused row, or opens the first editable cell in `cell` edit mode. |
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "VisuallyHidden",
|
|
4
|
+
"source": "apps/showcase/assets/apidoc/visuallyhidden.json",
|
|
5
|
+
"data": {
|
|
6
|
+
"description": "VisuallyHidden component hides content visually while keeping it accessible to screen readers.",
|
|
7
|
+
"interfaces": {
|
|
8
|
+
"VisuallyHiddenOwnProps": {
|
|
9
|
+
"description": "Defines valid properties in VisuallyHidden component.",
|
|
10
|
+
"relatedProp": "",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "focusable",
|
|
14
|
+
"type": "boolean",
|
|
15
|
+
"default": "false",
|
|
16
|
+
"description": "When enabled, the element can receive focus via keyboard navigation."
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"methods": []
|
|
20
|
+
},
|
|
21
|
+
"VisuallyHiddenPassThrough": {
|
|
22
|
+
"description": "Defines passthrough(pt) options of VisuallyHidden component.",
|
|
23
|
+
"relatedProp": "",
|
|
24
|
+
"props": [
|
|
25
|
+
{
|
|
26
|
+
"name": "root",
|
|
27
|
+
"type": "VisuallyHiddenPassThroughType<HTMLAttributes<HTMLSpanElement>>",
|
|
28
|
+
"default": "",
|
|
29
|
+
"description": "Used to pass attributes to the root's DOM element."
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"methods": []
|
|
33
|
+
},
|
|
34
|
+
"VisuallyHiddenProps": {
|
|
35
|
+
"description": "Defines valid properties in VisuallyHidden component.",
|
|
36
|
+
"relatedProp": "",
|
|
37
|
+
"extendedTypes": "BaseComponentProps<VisuallyHiddenInstance, VisuallyHiddenOwnProps, VisuallyHiddenPassThrough>",
|
|
38
|
+
"props": [
|
|
39
|
+
{
|
|
40
|
+
"name": "ref",
|
|
41
|
+
"type": "Ref<unknown>",
|
|
42
|
+
"default": "",
|
|
43
|
+
"description": "The reference to the component instance."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "pIf",
|
|
47
|
+
"type": "boolean",
|
|
48
|
+
"default": "true",
|
|
49
|
+
"description": "Whether the component should be rendered."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "style",
|
|
53
|
+
"type": "CSSProperties | ((instance?: VisuallyHiddenInstance) => CSSProperties)",
|
|
54
|
+
"default": "",
|
|
55
|
+
"description": "The style to apply to the component."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "className",
|
|
59
|
+
"type": "string | ((instance?: VisuallyHiddenInstance) => string)",
|
|
60
|
+
"default": "",
|
|
61
|
+
"description": "The class name to apply to the component."
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "as",
|
|
65
|
+
"type": "string | number | bigint | boolean | ComponentClass<any, any> | FunctionComponent<any> | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode, any, any> | ReactPortal | Promise<AwaitedReactNode>",
|
|
66
|
+
"default": "",
|
|
67
|
+
"description": "The component type to render."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "asChild",
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"default": "false",
|
|
73
|
+
"description": "Whether the component should be rendered as a child component."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "instance",
|
|
77
|
+
"type": "VisuallyHiddenInstance",
|
|
78
|
+
"default": "",
|
|
79
|
+
"description": "The instance to pass to the component."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "pt",
|
|
83
|
+
"type": "SafeRecord<VisuallyHiddenPassThrough>",
|
|
84
|
+
"default": "",
|
|
85
|
+
"description": "The pass-through props to pass to the component."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "ptOptions",
|
|
89
|
+
"type": "PassThroughOptions",
|
|
90
|
+
"default": "",
|
|
91
|
+
"description": "The pass-through options to pass to the component."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "unstyled",
|
|
95
|
+
"type": "boolean",
|
|
96
|
+
"default": "",
|
|
97
|
+
"description": "Whether the component should be rendered without classes."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "dt",
|
|
101
|
+
"type": "unknown",
|
|
102
|
+
"default": "",
|
|
103
|
+
"description": "The design token to use for the component."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "styles",
|
|
107
|
+
"type": "StylesOptions<ComponentInstance>",
|
|
108
|
+
"default": "",
|
|
109
|
+
"description": "The styles to use for the component."
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "render",
|
|
113
|
+
"type": "(instance: VisuallyHiddenInstance) => ReactNode",
|
|
114
|
+
"default": "",
|
|
115
|
+
"description": "The render function to render the component with instance access."
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "children",
|
|
119
|
+
"type": "any",
|
|
120
|
+
"default": "",
|
|
121
|
+
"description": "The children to render.\n\nAccepts `React.ReactNode` for static content or a render function `(instance: I) => React.ReactNode` for instance access.\nTyped as `any` to avoid JSX type errors when used directly in templates."
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "focusable",
|
|
125
|
+
"type": "boolean",
|
|
126
|
+
"default": "false",
|
|
127
|
+
"description": "When enabled, the element can receive focus via keyboard navigation."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "[key: string]",
|
|
131
|
+
"type": "any",
|
|
132
|
+
"description": ""
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "pt-{optionName}-*",
|
|
136
|
+
"type": "-",
|
|
137
|
+
"default": "",
|
|
138
|
+
"description": "Pass through attributes for customizing component parts.",
|
|
139
|
+
"deprecated": false
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"methods": []
|
|
143
|
+
},
|
|
144
|
+
"VisuallyHiddenState": {
|
|
145
|
+
"description": "Defines valid state in VisuallyHidden component.",
|
|
146
|
+
"relatedProp": "",
|
|
147
|
+
"props": [],
|
|
148
|
+
"methods": []
|
|
149
|
+
},
|
|
150
|
+
"VisuallyHiddenExposes": {
|
|
151
|
+
"description": "Defines the methods and properties exposed by VisuallyHidden component.",
|
|
152
|
+
"relatedProp": "",
|
|
153
|
+
"props": [],
|
|
154
|
+
"methods": []
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"types": {
|
|
158
|
+
"VisuallyHiddenPassThroughType": {
|
|
159
|
+
"description": "Defines passthrough(pt) options type in VisuallyHidden component.",
|
|
160
|
+
"values": "PassThroughType<VisuallyHiddenInstance, E>"
|
|
161
|
+
},
|
|
162
|
+
"VisuallyHiddenClassNamesType": {
|
|
163
|
+
"description": "Type representing the CSS class names used in the VisuallyHidden component.",
|
|
164
|
+
"values": "typeof VisuallyHiddenClassNames[keyof typeof VisuallyHiddenClassNames]"
|
|
165
|
+
},
|
|
166
|
+
"VisuallyHiddenInstance": {
|
|
167
|
+
"description": "Instance of VisuallyHidden component.",
|
|
168
|
+
"values": "ComponentInstance<VisuallyHiddenProps, VisuallyHiddenState, VisuallyHiddenExposes>"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"variables": {
|
|
172
|
+
"VisuallyHiddenClassNames": {
|
|
173
|
+
"description": "Defines the CSS class names used in the VisuallyHidden component.",
|
|
174
|
+
"variables": [
|
|
175
|
+
{
|
|
176
|
+
"name": "root",
|
|
177
|
+
"value": "p-visuallyhidden",
|
|
178
|
+
"optional": false,
|
|
179
|
+
"readonly": true
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
]
|