@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,462 @@
|
|
|
1
|
+
# Tabs
|
|
2
|
+
|
|
3
|
+
Tabs is a component that displays a list of tabs and allows the user to select one.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { Code, CodeBranch, Cog, InfoCircle } from '@primeicons/react';
|
|
7
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
8
|
+
|
|
9
|
+
export default function Preview() {
|
|
10
|
+
return (
|
|
11
|
+
<Tabs defaultValue="tab1">
|
|
12
|
+
<TabsList>
|
|
13
|
+
<TabsTab value="tab1" className="flex items-center gap-2">
|
|
14
|
+
<Code />
|
|
15
|
+
Code
|
|
16
|
+
</TabsTab>
|
|
17
|
+
<TabsTab value="tab2" className="flex items-center gap-2">
|
|
18
|
+
<InfoCircle />
|
|
19
|
+
Issues
|
|
20
|
+
</TabsTab>
|
|
21
|
+
<TabsTab value="tab3" className="flex items-center gap-2">
|
|
22
|
+
<CodeBranch />
|
|
23
|
+
Pull Requests
|
|
24
|
+
</TabsTab>
|
|
25
|
+
<TabsTab value="tab4" className="flex items-center gap-2">
|
|
26
|
+
<Cog />
|
|
27
|
+
Settings
|
|
28
|
+
</TabsTab>
|
|
29
|
+
</TabsList>
|
|
30
|
+
<TabsPanels>
|
|
31
|
+
<TabsPanel value="tab1">
|
|
32
|
+
<h2 className="text-lg font-bold">Code</h2>
|
|
33
|
+
<p className="text-surface-500 mt-1">
|
|
34
|
+
Browse the source files, review the latest commits, and clone the repository to get started.
|
|
35
|
+
</p>
|
|
36
|
+
</TabsPanel>
|
|
37
|
+
<TabsPanel value="tab2">
|
|
38
|
+
<h2 className="text-lg font-bold">Issues</h2>
|
|
39
|
+
<p className="text-surface-500 mt-1">Track open bugs, feature requests, and ongoing discussions reported by the community.</p>
|
|
40
|
+
</TabsPanel>
|
|
41
|
+
<TabsPanel value="tab3">
|
|
42
|
+
<h2 className="text-lg font-bold">Pull Requests</h2>
|
|
43
|
+
<p className="text-surface-500 mt-1">Review proposed changes, leave feedback, and merge contributions into the main branch.</p>
|
|
44
|
+
</TabsPanel>
|
|
45
|
+
<TabsPanel value="tab4">
|
|
46
|
+
<h2 className="text-lg font-bold">Settings</h2>
|
|
47
|
+
<p className="text-surface-500 mt-1">
|
|
48
|
+
Manage repository access, configure integrations, and adjust visibility and collaboration rules.
|
|
49
|
+
</p>
|
|
50
|
+
</TabsPanel>
|
|
51
|
+
</TabsPanels>
|
|
52
|
+
</Tabs>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
<DocTabs value="CLI">
|
|
60
|
+
<DocTabsList>
|
|
61
|
+
<DocTabsTab value="CLI">Shadcn CLI</DocTabsTab>
|
|
62
|
+
<DocTabsTab value="Manual">Manual</DocTabsTab>
|
|
63
|
+
</DocTabsList>
|
|
64
|
+
<DocTabsPanel value="CLI">
|
|
65
|
+
```bash
|
|
66
|
+
npx shadcn@latest add https://primereact.dev/r/tabs.json
|
|
67
|
+
```
|
|
68
|
+
</DocTabsPanel>
|
|
69
|
+
<DocTabsPanel value="Manual">
|
|
70
|
+
<DocStepper>
|
|
71
|
+
<DocStep>
|
|
72
|
+
Copy and paste the following code into your project
|
|
73
|
+
<DocSourceViewer name="components/ui/tabs" />
|
|
74
|
+
</DocStep>
|
|
75
|
+
<DocStep>
|
|
76
|
+
Update the import paths to match your project setup.
|
|
77
|
+
</DocStep>
|
|
78
|
+
</DocStepper>
|
|
79
|
+
</DocTabsPanel>
|
|
80
|
+
</DocTabs>
|
|
81
|
+
|
|
82
|
+
## Usage
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
import { Tabs, TabsList, TabsTab, TabsPanels, TabsPanel } from '@/components/ui/tabs';
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<Tabs>
|
|
90
|
+
<TabsList>
|
|
91
|
+
<TabsTab />
|
|
92
|
+
</TabsList>
|
|
93
|
+
<TabsPanels>
|
|
94
|
+
<TabsPanel />
|
|
95
|
+
</TabsPanels>
|
|
96
|
+
</Tabs>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Examples
|
|
100
|
+
|
|
101
|
+
### Basic
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
105
|
+
|
|
106
|
+
export default function BasicDemo() {
|
|
107
|
+
return (
|
|
108
|
+
<Tabs defaultValue="tab1">
|
|
109
|
+
<TabsList>
|
|
110
|
+
<TabsTab value="tab1">Account Info</TabsTab>
|
|
111
|
+
<TabsTab value="tab2">Payment</TabsTab>
|
|
112
|
+
<TabsTab value="tab3">Preferences</TabsTab>
|
|
113
|
+
</TabsList>
|
|
114
|
+
<TabsPanels>
|
|
115
|
+
<TabsPanel value="tab1">
|
|
116
|
+
<h2 className="text-lg font-bold">Account Info</h2>
|
|
117
|
+
<p className="text-surface-500 mt-1">Update your personal information such as name, email address, and profile picture.</p>
|
|
118
|
+
</TabsPanel>
|
|
119
|
+
<TabsPanel value="tab2">
|
|
120
|
+
<h2 className="text-lg font-bold">Payment</h2>
|
|
121
|
+
<p className="text-surface-500 mt-1">Manage your subscription plan, view invoices, and update your payment method.</p>
|
|
122
|
+
</TabsPanel>
|
|
123
|
+
<TabsPanel value="tab3">
|
|
124
|
+
<h2 className="text-lg font-bold">Preferences</h2>
|
|
125
|
+
<p className="text-surface-500 mt-1">Customize how the application looks and behaves to match your personal preferences.</p>
|
|
126
|
+
</TabsPanel>
|
|
127
|
+
</TabsPanels>
|
|
128
|
+
</Tabs>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Dynamic
|
|
134
|
+
|
|
135
|
+
Create tabs from an array to keep labels and panel content in sync.
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
139
|
+
|
|
140
|
+
const tabs = [
|
|
141
|
+
{ id: 'tab1', title: 'Account Info', content: 'Update your personal information such as name, email address, and profile picture.' },
|
|
142
|
+
{ id: 'tab2', title: 'Payment', content: 'Manage your subscription plan, view invoices, and update your payment method.' },
|
|
143
|
+
{ id: 'tab3', title: 'Preferences', content: 'Customize how the application looks and behaves to match your personal preferences.' }
|
|
144
|
+
];
|
|
145
|
+
|
|
146
|
+
export default function DynamicDemo() {
|
|
147
|
+
return (
|
|
148
|
+
<Tabs defaultValue="tab1">
|
|
149
|
+
<TabsList>
|
|
150
|
+
{tabs.map((tab) => (
|
|
151
|
+
<TabsTab key={tab.id} value={tab.id}>
|
|
152
|
+
{tab.title}
|
|
153
|
+
</TabsTab>
|
|
154
|
+
))}
|
|
155
|
+
</TabsList>
|
|
156
|
+
<TabsPanels>
|
|
157
|
+
{tabs.map((tab) => (
|
|
158
|
+
<TabsPanel key={tab.id} value={tab.id}>
|
|
159
|
+
<h2 className="text-lg font-bold">{tab.title}</h2>
|
|
160
|
+
<p className="text-surface-500 mt-1">{tab.content}</p>
|
|
161
|
+
</TabsPanel>
|
|
162
|
+
))}
|
|
163
|
+
</TabsPanels>
|
|
164
|
+
</Tabs>
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Controlled
|
|
170
|
+
|
|
171
|
+
Control the active tab with `value` and `onValueChange`.
|
|
172
|
+
|
|
173
|
+
```tsx
|
|
174
|
+
'use client';
|
|
175
|
+
import type { TabsRootChangeEvent, TabsRootProps } from 'primereact/tabs';
|
|
176
|
+
import { Button } from '@/components/ui/button';
|
|
177
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
178
|
+
import * as React from 'react';
|
|
179
|
+
|
|
180
|
+
const tabs = [
|
|
181
|
+
{ id: 'tab1', title: 'Account Info', content: 'Update your personal information such as name, email address, and profile picture.' },
|
|
182
|
+
{ id: 'tab2', title: 'Payment', content: 'Manage your subscription plan, view invoices, and update your payment method.' },
|
|
183
|
+
{ id: 'tab3', title: 'Preferences', content: 'Customize how the application looks and behaves to match your personal preferences.' }
|
|
184
|
+
];
|
|
185
|
+
|
|
186
|
+
export default function ControlledDemo() {
|
|
187
|
+
const [activeTab, setActiveTab] = React.useState<TabsRootProps['value']>('tab1');
|
|
188
|
+
|
|
189
|
+
return (
|
|
190
|
+
<div className="space-y-4">
|
|
191
|
+
<Button onClick={() => setActiveTab('tab2')}>Go to Payment</Button>
|
|
192
|
+
<Tabs value={activeTab} onValueChange={(e: TabsRootChangeEvent) => setActiveTab(e.value)}>
|
|
193
|
+
<TabsList>
|
|
194
|
+
{tabs.map((tab) => (
|
|
195
|
+
<TabsTab key={tab.id} value={tab.id}>
|
|
196
|
+
{tab.title}
|
|
197
|
+
</TabsTab>
|
|
198
|
+
))}
|
|
199
|
+
</TabsList>
|
|
200
|
+
<TabsPanels>
|
|
201
|
+
{tabs.map((tab) => (
|
|
202
|
+
<TabsPanel key={tab.id} value={tab.id}>
|
|
203
|
+
<h2 className="text-lg font-bold">{tab.title}</h2>
|
|
204
|
+
<p className="text-surface-500 mt-1">{tab.content}</p>
|
|
205
|
+
</TabsPanel>
|
|
206
|
+
))}
|
|
207
|
+
</TabsPanels>
|
|
208
|
+
</Tabs>
|
|
209
|
+
</div>
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Scrollable
|
|
215
|
+
|
|
216
|
+
Enable `scrollable` to navigate long tab lists with previous and next buttons.
|
|
217
|
+
|
|
218
|
+
```tsx
|
|
219
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
220
|
+
|
|
221
|
+
export default function ScrollableDemo() {
|
|
222
|
+
return (
|
|
223
|
+
<Tabs defaultValue={'0'}>
|
|
224
|
+
<TabsList>
|
|
225
|
+
{scrollableTabs.map((tab) => (
|
|
226
|
+
<TabsTab key={tab.value} value={tab.value}>
|
|
227
|
+
{tab.title}
|
|
228
|
+
</TabsTab>
|
|
229
|
+
))}
|
|
230
|
+
</TabsList>
|
|
231
|
+
<TabsPanels>
|
|
232
|
+
{scrollableTabs.map((tab) => (
|
|
233
|
+
<TabsPanel key={tab.value} value={tab.value}>
|
|
234
|
+
<h2 className="text-lg font-bold">{tab.title}</h2>
|
|
235
|
+
<p className="text-surface-500 mt-1">{tab.content}</p>
|
|
236
|
+
</TabsPanel>
|
|
237
|
+
))}
|
|
238
|
+
</TabsPanels>
|
|
239
|
+
</Tabs>
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const sentences = [
|
|
244
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
245
|
+
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
246
|
+
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.',
|
|
247
|
+
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore.',
|
|
248
|
+
'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia.',
|
|
249
|
+
'Curabitur pretium tincidunt lacus, nec viverra velit semper at.',
|
|
250
|
+
'Fusce condimentum nunc ac nisi vulputate fringilla.',
|
|
251
|
+
'Donec fermentum porttitor nunc, vitae pellentesque tortor.',
|
|
252
|
+
'Pellentesque habitant morbi tristique senectus et netus et malesuada fames.',
|
|
253
|
+
'Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia.'
|
|
254
|
+
];
|
|
255
|
+
|
|
256
|
+
const scrollableTabs = Array.from({ length: 50 }, (_, i) => {
|
|
257
|
+
const start = i % sentences.length;
|
|
258
|
+
const content = Array.from({ length: 4 }, (_, j) => sentences[(start + j) % sentences.length]).join(' ');
|
|
259
|
+
|
|
260
|
+
return { title: `Tab ${i + 1}`, value: `${i}`, content };
|
|
261
|
+
});
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Select on Focus
|
|
265
|
+
|
|
266
|
+
Set `selectOnFocus` to activate tabs on focus.
|
|
267
|
+
|
|
268
|
+
```tsx
|
|
269
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
270
|
+
|
|
271
|
+
const tabs = [
|
|
272
|
+
{ id: 'tab1', title: 'Account Info', content: 'Update your personal information such as name, email address, and profile picture.' },
|
|
273
|
+
{ id: 'tab2', title: 'Payment', content: 'Manage your subscription plan, view invoices, and update your payment method.' },
|
|
274
|
+
{ id: 'tab3', title: 'Preferences', content: 'Customize how the application looks and behaves to match your personal preferences.' }
|
|
275
|
+
];
|
|
276
|
+
|
|
277
|
+
export default function FocusSelectionDemo() {
|
|
278
|
+
return (
|
|
279
|
+
<Tabs defaultValue="tab1" selectOnFocus>
|
|
280
|
+
<TabsList>
|
|
281
|
+
{tabs.map((tab) => (
|
|
282
|
+
<TabsTab key={tab.id} value={tab.id}>
|
|
283
|
+
{tab.title}
|
|
284
|
+
</TabsTab>
|
|
285
|
+
))}
|
|
286
|
+
</TabsList>
|
|
287
|
+
<TabsPanels>
|
|
288
|
+
{tabs.map((tab) => (
|
|
289
|
+
<TabsPanel key={tab.id} value={tab.id}>
|
|
290
|
+
<h2 className="text-lg font-bold">{tab.title}</h2>
|
|
291
|
+
<p className="text-surface-500 mt-1">{tab.content}</p>
|
|
292
|
+
</TabsPanel>
|
|
293
|
+
))}
|
|
294
|
+
</TabsPanels>
|
|
295
|
+
</Tabs>
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Disabled
|
|
301
|
+
|
|
302
|
+
Set `disabled` on `TabsTab` to prevent selection.
|
|
303
|
+
|
|
304
|
+
```tsx
|
|
305
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
306
|
+
|
|
307
|
+
export default function DisabledDemo() {
|
|
308
|
+
return (
|
|
309
|
+
<Tabs defaultValue="tab1">
|
|
310
|
+
<TabsList>
|
|
311
|
+
<TabsTab value="tab1">Account Info</TabsTab>
|
|
312
|
+
<TabsTab value="tab2" disabled>
|
|
313
|
+
Payment
|
|
314
|
+
</TabsTab>
|
|
315
|
+
<TabsTab value="tab3">Preferences</TabsTab>
|
|
316
|
+
</TabsList>
|
|
317
|
+
<TabsPanels>
|
|
318
|
+
<TabsPanel value="tab1">
|
|
319
|
+
<h2 className="text-lg font-bold">Account Info</h2>
|
|
320
|
+
<p className="text-surface-500 mt-1">Update your personal information such as name, email address, and profile picture.</p>
|
|
321
|
+
</TabsPanel>
|
|
322
|
+
<TabsPanel value="tab2">
|
|
323
|
+
<h2 className="text-lg font-bold">Payment</h2>
|
|
324
|
+
<p className="text-surface-500 mt-1">Manage your subscription plan, view invoices, and update your payment method.</p>
|
|
325
|
+
</TabsPanel>
|
|
326
|
+
<TabsPanel value="tab3">
|
|
327
|
+
<h2 className="text-lg font-bold">Preferences</h2>
|
|
328
|
+
<p className="text-surface-500 mt-1">Customize how the application looks and behaves to match your personal preferences.</p>
|
|
329
|
+
</TabsPanel>
|
|
330
|
+
</TabsPanels>
|
|
331
|
+
</Tabs>
|
|
332
|
+
);
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Template
|
|
337
|
+
|
|
338
|
+
Use custom markup inside `TabsTab` and `TabsPanel` to build richer tab content.
|
|
339
|
+
|
|
340
|
+
```tsx
|
|
341
|
+
import { Badge } from '@/components/ui/badge';
|
|
342
|
+
import { Button } from '@/components/ui/button';
|
|
343
|
+
import { InputText } from '@/components/ui/inputtext';
|
|
344
|
+
import { Label } from '@/components/ui/label';
|
|
345
|
+
import { ToggleSwitch } from '@/components/ui/toggleswitch';
|
|
346
|
+
import { Tabs, TabsList, TabsPanel, TabsPanels, TabsTab } from '@/components/ui/tabs';
|
|
347
|
+
import { Cog, CreditCard, User } from '@primeicons/react';
|
|
348
|
+
|
|
349
|
+
const tabs = [
|
|
350
|
+
{
|
|
351
|
+
id: 'tab1',
|
|
352
|
+
title: 'Account Info',
|
|
353
|
+
icon: User,
|
|
354
|
+
content: 'Update your personal information such as name, email address, and profile picture.'
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
id: 'tab2',
|
|
358
|
+
title: 'Payment',
|
|
359
|
+
icon: CreditCard,
|
|
360
|
+
badge: 'New',
|
|
361
|
+
content: 'Manage your subscription plan, view invoices, and update your payment method.'
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
id: 'tab3',
|
|
365
|
+
title: 'Preferences',
|
|
366
|
+
icon: Cog,
|
|
367
|
+
content: 'Customize how the application looks and behaves to match your personal preferences.'
|
|
368
|
+
}
|
|
369
|
+
];
|
|
370
|
+
|
|
371
|
+
export default function TemplateDemo() {
|
|
372
|
+
return (
|
|
373
|
+
<Tabs defaultValue="tab1" className="max-w-md mx-auto">
|
|
374
|
+
<TabsList>
|
|
375
|
+
{tabs.map((tab) => (
|
|
376
|
+
<TabsTab key={tab.id} value={tab.id} className="flex items-center gap-2">
|
|
377
|
+
<tab.icon />
|
|
378
|
+
{tab.title}
|
|
379
|
+
{tab.badge && <Badge size="small">{tab.badge}</Badge>}
|
|
380
|
+
</TabsTab>
|
|
381
|
+
))}
|
|
382
|
+
</TabsList>
|
|
383
|
+
<TabsPanels>
|
|
384
|
+
<TabsPanel value="tab1">
|
|
385
|
+
<p className="mt-2 mb-8 text-surface-500">Update your personal information such as name, email address, and profile picture.</p>
|
|
386
|
+
<form>
|
|
387
|
+
<div className="space-y-4">
|
|
388
|
+
<div className="flex flex-col gap-1">
|
|
389
|
+
<Label htmlFor="username">Username</Label>
|
|
390
|
+
<InputText id="username" placeholder="john.doe" />
|
|
391
|
+
</div>
|
|
392
|
+
<div className="flex flex-col gap-1">
|
|
393
|
+
<Label htmlFor="email">Email</Label>
|
|
394
|
+
<InputText id="email" placeholder="john.doe@example.com" />
|
|
395
|
+
</div>
|
|
396
|
+
</div>
|
|
397
|
+
<Button className="mt-8 w-fit">Save Changes</Button>
|
|
398
|
+
</form>
|
|
399
|
+
</TabsPanel>
|
|
400
|
+
<TabsPanel value="tab2">
|
|
401
|
+
<p className="mt-2 mb-8 text-surface-500">Manage your subscription plan, view invoices, and update your payment method.</p>
|
|
402
|
+
<form>
|
|
403
|
+
<div className="space-y-4">
|
|
404
|
+
<div className="flex flex-col gap-1">
|
|
405
|
+
<Label htmlFor="cardName">Cardholder Name</Label>
|
|
406
|
+
<InputText id="cardName" placeholder="John Doe" />
|
|
407
|
+
</div>
|
|
408
|
+
<div className="flex flex-col gap-1">
|
|
409
|
+
<Label htmlFor="cardNumber">Card Number</Label>
|
|
410
|
+
<InputText id="cardNumber" placeholder="0000 0000 0000 0000" />
|
|
411
|
+
</div>
|
|
412
|
+
<div className="flex flex-col gap-1">
|
|
413
|
+
<Label htmlFor="expiryDate">Expiry Date</Label>
|
|
414
|
+
<InputText id="expiryDate" placeholder="MM/YY" />
|
|
415
|
+
</div>
|
|
416
|
+
</div>
|
|
417
|
+
<Button className="mt-8 w-fit">Update Payment</Button>
|
|
418
|
+
</form>
|
|
419
|
+
</TabsPanel>
|
|
420
|
+
<TabsPanel value="tab3">
|
|
421
|
+
<p className="mt-2 mb-8 text-surface-500">Customize how the application looks and behaves to match your personal preferences.</p>
|
|
422
|
+
<form>
|
|
423
|
+
<div className="space-y-4">
|
|
424
|
+
<div className="flex items-center justify-between">
|
|
425
|
+
<Label htmlFor="darkMode">Dark Mode</Label>
|
|
426
|
+
<ToggleSwitch inputId="darkMode" />
|
|
427
|
+
</div>
|
|
428
|
+
<div className="flex items-center justify-between">
|
|
429
|
+
<Label htmlFor="emailNotifications">Email Notifications</Label>
|
|
430
|
+
<ToggleSwitch inputId="emailNotifications" defaultChecked />
|
|
431
|
+
</div>
|
|
432
|
+
<div className="flex items-center justify-between">
|
|
433
|
+
<Label htmlFor="desktopNotifications">Desktop Notifications</Label>
|
|
434
|
+
<ToggleSwitch inputId="desktopNotifications" />
|
|
435
|
+
</div>
|
|
436
|
+
</div>
|
|
437
|
+
<Button className="w-fit mt-8 ml-auto mr-0">Save Preferences</Button>
|
|
438
|
+
</form>
|
|
439
|
+
</TabsPanel>
|
|
440
|
+
</TabsPanels>
|
|
441
|
+
</Tabs>
|
|
442
|
+
);
|
|
443
|
+
}
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
## Accessibility
|
|
447
|
+
|
|
448
|
+
### Screen Reader
|
|
449
|
+
|
|
450
|
+
`TabsTab` elements use the `tab` role and expose selected and disabled state via ARIA attributes. `TabsPanel` uses the `tabpanel` role and links back to its related tab with `aria-labelledby`.
|
|
451
|
+
|
|
452
|
+
### Tab Keyboard Support
|
|
453
|
+
|
|
454
|
+
| Key | Function |
|
|
455
|
+
| ------------- | ---------------------------------------------------------------------------------------------------- |
|
|
456
|
+
| `tab` | Moves focus to the active tab and then proceeds to the next focusable element. |
|
|
457
|
+
| `enter` | Activates the focused tab header. |
|
|
458
|
+
| `space` | Activates the focused tab header. |
|
|
459
|
+
| `right arrow` | Moves focus to the next header. If focus is on the last header, moves focus to the first header. |
|
|
460
|
+
| `left arrow` | Moves focus to the previous header. If focus is on the first header, moves focus to the last header. |
|
|
461
|
+
| `home` | Moves focus to the first header. |
|
|
462
|
+
| `end` | Moves focus to the last header. |
|