@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,779 @@
|
|
|
1
|
+
# Styled Mode
|
|
2
|
+
|
|
3
|
+
Choose from a variety of pre-styled themes or develop your own.
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
PrimeReact is a design agnostic library so unlike some other UI libraries it does not enforce a certain styling such as material design. Styling is decoupled from the components using the themes instead. A theme consists of two parts; _base_ and _preset_. The base is the style rules with CSS variables as placeholders whereas the preset is a set of design tokens to feed a base by mapping the tokens to CSS variables. A base may be configured with different presets,
|
|
8
|
+
currently Aura, Material, Lara and Nora are the available built-in options.
|
|
9
|
+
|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
The core of the styled mode architecture is based on a concept named _design token_, a preset defines the token configuration in 3 tiers; _primitive_, _semantic_ and _component_.
|
|
13
|
+
|
|
14
|
+
Learn more about design tokens at the [Design Tokens Format Module](https://www.designtokens.org/tr/drafts/format/) specification.
|
|
15
|
+
|
|
16
|
+
### Primitive Tokens
|
|
17
|
+
|
|
18
|
+
Primitive tokens have no context, a color palette is a good example for a primitive token such as `blue-50` to `blue-900`. A token named `blue-500` may be used as the primary color, the background of a message however on its own, the name of the token does not indicate context. Usually they are utilized by the semantic tokens.
|
|
19
|
+
|
|
20
|
+
### Semantic Tokens
|
|
21
|
+
|
|
22
|
+
Semantic tokens define content and their names indicate where they are utilized, a well known example of a semantic token is the `primary.color`. Semantic tokens map to primitive tokens or other semantic tokens. The `colorScheme` token group is a special variable to define tokens based on the color scheme active in the application, this allows defining different tokens based on the color scheme like dark mode.
|
|
23
|
+
|
|
24
|
+
### Component Tokens
|
|
25
|
+
|
|
26
|
+
Component tokens are isolated tokens per component such as `inputtext.background` or `button.color` that map to the semantic tokens. As an example, `button.background` component token maps to the `primary.color` semantic token which maps to the `green.500` primitive token.
|
|
27
|
+
|
|
28
|
+
### Best Practices
|
|
29
|
+
|
|
30
|
+
Use primitive tokens when defining the core color palette and semantic tokens to specify the common design elements such as focus ring, primary colors and surfaces. Components tokens should only be used when customizing a specific
|
|
31
|
+
component. By defining your own design tokens as a custom preset, you'll be able to define your own style without touching CSS. Overriding the PrimeReact components using style classes is not a best practice and should be the last resort,
|
|
32
|
+
design tokens are the suggested approach.
|
|
33
|
+
|
|
34
|
+
## Configuration API
|
|
35
|
+
|
|
36
|
+
### Theme
|
|
37
|
+
|
|
38
|
+
The `theme` property is used to customize the initial theme.
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import Aura from '@primeuix/themes/aura';
|
|
42
|
+
import { PrimeReactProvider } from '@primereact/core';
|
|
43
|
+
import React from 'react';
|
|
44
|
+
import ReactDOM from 'react-dom/client';
|
|
45
|
+
import App from './App';
|
|
46
|
+
|
|
47
|
+
const theme = {
|
|
48
|
+
preset: Aura,
|
|
49
|
+
// Default options
|
|
50
|
+
options: {
|
|
51
|
+
prefix: 'p',
|
|
52
|
+
darkModeSelector: 'system',
|
|
53
|
+
cssLayer: false,
|
|
54
|
+
cssVariables: true,
|
|
55
|
+
scoped: false
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
ReactDOM.createRoot(document.getElementById('root')).render(
|
|
60
|
+
<React.StrictMode>
|
|
61
|
+
<PrimeReactProvider theme={theme} license="PrimeUI-Commercial-Key...">
|
|
62
|
+
<App />
|
|
63
|
+
</PrimeReactProvider>
|
|
64
|
+
</React.StrictMode>
|
|
65
|
+
);
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Options
|
|
69
|
+
|
|
70
|
+
The `options` property defines the how the CSS would be generated from the design tokens of the preset.
|
|
71
|
+
|
|
72
|
+
#### prefix
|
|
73
|
+
|
|
74
|
+
The prefix of the CSS variables, defaults to `p`. For instance, the `primary.color` design token would be `var(--p-primary-color)`.
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
options: {
|
|
78
|
+
prefix: 'my';
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### darkModeSelector
|
|
83
|
+
|
|
84
|
+
The CSS rule to encapsulate the CSS variables of the dark mode, the default is the `system` to generate `@media (prefers-color-scheme: dark)`. If you need to make the dark mode toggleable based on the user selection define a
|
|
85
|
+
class selector such as `.app-dark` and toggle this class at the document root. See the dark mode toggle section for an example.
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
options: {
|
|
89
|
+
darkModeSelector: '.my-app-dark';
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### cssLayer
|
|
94
|
+
|
|
95
|
+
Defines whether the styles should be defined inside a [CSS layer](https://developer.mozilla.org/en-US/docs/Web/CSS/@layer) by default or not. A CSS layer would be handy to declare a
|
|
96
|
+
custom cascade layer for easier customization if necessary. The default is `false`.
|
|
97
|
+
|
|
98
|
+
```tsx
|
|
99
|
+
options: {
|
|
100
|
+
cssLayer: {
|
|
101
|
+
name: 'primereact',
|
|
102
|
+
order: 'app-styles, primereact, another-css-library'
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### cssVariables
|
|
108
|
+
|
|
109
|
+
Controls whether component design tokens are generated as CSS variables or inlined as static values. Primitive and semantic tokens are always generated as CSS variables.
|
|
110
|
+
|
|
111
|
+
#### scoped
|
|
112
|
+
|
|
113
|
+
Scopes the generated CSS variables to the components only instead of the document root and host elements. Defaults to `false`.
|
|
114
|
+
|
|
115
|
+
### Presets
|
|
116
|
+
|
|
117
|
+
Aura, Material, Lara and Nora are the available built-in options, created to demonstrate the power of the design-agnostic theming. Aura is PrimeTek's own vision, Material follows Google Material Design v2, Lara is based on Bootstrap and
|
|
118
|
+
Nora is inspired by enterprise applications. Visit the [source code](https://github.com/primefaces/primeuix/tree/main/packages/themes/src/presets)
|
|
119
|
+
to learn more about the structure of presets. You may use them out of the box with modifications or utilize them as reference in case you need to build your own presets from scratch.
|
|
120
|
+
|
|
121
|
+
### Reserved Keys
|
|
122
|
+
|
|
123
|
+
Following keys are reserved in the preset scheme and cannot be used as a token name; `primitive`, `semantic`, `components`, `directives`, `colorscheme`, `light`, `dark`, `common`, `root`, `states`, and `extend`.
|
|
124
|
+
|
|
125
|
+
### Colors
|
|
126
|
+
|
|
127
|
+
Color palette of a preset is defined by the `primitive` design token group. You can access colors using CSS variables or the `$dt` utility.
|
|
128
|
+
|
|
129
|
+
```tsx
|
|
130
|
+
// With CSS
|
|
131
|
+
var(--p-blue-500)
|
|
132
|
+
|
|
133
|
+
// With JS
|
|
134
|
+
$dt('blue.500').value
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
export default function ColorsListDemo() {
|
|
139
|
+
const colors = [
|
|
140
|
+
'emerald',
|
|
141
|
+
'green',
|
|
142
|
+
'lime',
|
|
143
|
+
'red',
|
|
144
|
+
'orange',
|
|
145
|
+
'amber',
|
|
146
|
+
'yellow',
|
|
147
|
+
'teal',
|
|
148
|
+
'cyan',
|
|
149
|
+
'sky',
|
|
150
|
+
'blue',
|
|
151
|
+
'indigo',
|
|
152
|
+
'violet',
|
|
153
|
+
'purple',
|
|
154
|
+
'fuchsia',
|
|
155
|
+
'pink',
|
|
156
|
+
'rose',
|
|
157
|
+
'slate',
|
|
158
|
+
'gray',
|
|
159
|
+
'zinc',
|
|
160
|
+
'neutral',
|
|
161
|
+
'stone'
|
|
162
|
+
];
|
|
163
|
+
const shades = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
|
|
164
|
+
|
|
165
|
+
return (
|
|
166
|
+
<div>
|
|
167
|
+
<ul className="p-0 m-0 list-none flex sm:flex-col gap-4 flex-wrap sm:flex-nowrap">
|
|
168
|
+
{colors.map((color, i) => (
|
|
169
|
+
<li key={i} className="flex-auto" style={{ minWidth: '6rem' }}>
|
|
170
|
+
<span className="font-medium capitalize block mb-2 text-center sm:text-left">{color}</span>
|
|
171
|
+
<div className="flex gap-4 flex-auto flex-col sm:flex-row">
|
|
172
|
+
{shades.map((shade, j) => (
|
|
173
|
+
<div key={j} className="flex flex-col items-center gap-1 flex-1">
|
|
174
|
+
<div className="rounded h-8 w-full" style={{ backgroundColor: `var(--p-${color}-${shade})` }}></div>
|
|
175
|
+
<span className="text-sm text-surface-500 dark:text-surface-400 font-medium">{shade}</span>
|
|
176
|
+
</div>
|
|
177
|
+
))}
|
|
178
|
+
</div>
|
|
179
|
+
</li>
|
|
180
|
+
))}
|
|
181
|
+
</ul>
|
|
182
|
+
</div>
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Dark Mode
|
|
188
|
+
|
|
189
|
+
PrimeReact uses the `system` as the default `darkModeSelector` in theme configuration. If you have a dark mode switch in your application, set the `darkModeSelector` to the selector you utilize such as `.my-app-dark` so that PrimeReact can fit in
|
|
190
|
+
seamlessly with your color scheme.
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
import { StrictMode } from 'react';
|
|
194
|
+
import { createRoot } from 'react-dom/client';
|
|
195
|
+
import App from './App.tsx';
|
|
196
|
+
import { PrimeReactProvider } from '@primereact/core';
|
|
197
|
+
import Aura from '@primeuix/themes/aura';
|
|
198
|
+
|
|
199
|
+
const primereact = {
|
|
200
|
+
theme: {
|
|
201
|
+
preset: Aura,
|
|
202
|
+
options: {
|
|
203
|
+
darkModeSelector: '.my-app-dark'
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
createRoot(document.getElementById('root')!).render(
|
|
209
|
+
<StrictMode>
|
|
210
|
+
<PrimeReactProvider {...primereact}>
|
|
211
|
+
<App />
|
|
212
|
+
</PrimeReactProvider>
|
|
213
|
+
</StrictMode>
|
|
214
|
+
);
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Following is a very basic example implementation of a dark mode switch, you may extend it further by involving `prefers-color-scheme` to retrieve it from the system initially and use `localStorage` to make it stateful. See this [article](https://dev.to/abbeyperini/dark-mode-toggle-and-prefers-color-scheme-4f3m) for more information.
|
|
218
|
+
|
|
219
|
+
```tsx
|
|
220
|
+
<Button label="Toggle Dark Mode" onClick={toggleDarkMode} />
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
```tsx
|
|
224
|
+
const toggleDarkMode = () => {
|
|
225
|
+
document.documentElement.classList.toggle('my-app-dark');
|
|
226
|
+
};
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
In case you prefer to use dark mode all the time, apply the `darkModeSelector` initially and never change it.
|
|
230
|
+
|
|
231
|
+
```tsx
|
|
232
|
+
<html className="my-app-dark">
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
It is also possible to disable dark mode completely using `false` or `none` as the value of the selector.
|
|
236
|
+
|
|
237
|
+
```tsx
|
|
238
|
+
theme: {
|
|
239
|
+
preset: Aura,
|
|
240
|
+
options: {
|
|
241
|
+
darkModeSelector: false || 'none',
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Customization
|
|
247
|
+
|
|
248
|
+
### definePreset
|
|
249
|
+
|
|
250
|
+
The `definePreset` utility is used to customize an existing preset during the PrimeReact setup. The first parameter is the preset to customize and the second is the design tokens to override.
|
|
251
|
+
|
|
252
|
+
```tsx
|
|
253
|
+
import { StrictMode } from 'react';
|
|
254
|
+
import { createRoot } from 'react-dom/client';
|
|
255
|
+
import App from './App.tsx';
|
|
256
|
+
import { PrimeReactProvider } from '@primereact/core';
|
|
257
|
+
import { definePreset } from '@primeuix/themes';
|
|
258
|
+
import Aura from '@primeuix/themes/aura';
|
|
259
|
+
|
|
260
|
+
const MyPreset = definePreset(Aura, {
|
|
261
|
+
//Your customizations, see the following sections for examples
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
const primereact = {
|
|
265
|
+
theme: {
|
|
266
|
+
preset: MyPreset
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
createRoot(document.getElementById('root')!).render(
|
|
271
|
+
<StrictMode>
|
|
272
|
+
<PrimeReactProvider {...primereact}>
|
|
273
|
+
<App />
|
|
274
|
+
</PrimeReactProvider>
|
|
275
|
+
</StrictMode>
|
|
276
|
+
);
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Color Scheme
|
|
280
|
+
|
|
281
|
+
Tokens can be defined per color scheme using the `light-dark` function, allowing each token to hold scheme-specific values.
|
|
282
|
+
|
|
283
|
+
```tsx
|
|
284
|
+
const MyPreset = definePreset(Aura, {
|
|
285
|
+
semantic: {
|
|
286
|
+
primary: {
|
|
287
|
+
color: 'light-dark({primary.500}, {primary.400})',
|
|
288
|
+
contrastColor: 'light-dark(#ffffff, {surface.900})'
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Primary
|
|
295
|
+
|
|
296
|
+
The `primary` defines the main color palette, default value maps to the `emerald` primitive token. Let's setup to use `indigo` instead.
|
|
297
|
+
|
|
298
|
+
```tsx
|
|
299
|
+
const MyPreset = definePreset(Aura, {
|
|
300
|
+
semantic: {
|
|
301
|
+
primary: {
|
|
302
|
+
50: '{indigo.50}',
|
|
303
|
+
100: '{indigo.100}',
|
|
304
|
+
200: '{indigo.200}',
|
|
305
|
+
300: '{indigo.300}',
|
|
306
|
+
400: '{indigo.400}',
|
|
307
|
+
500: '{indigo.500}',
|
|
308
|
+
600: '{indigo.600}',
|
|
309
|
+
700: '{indigo.700}',
|
|
310
|
+
800: '{indigo.800}',
|
|
311
|
+
900: '{indigo.900}',
|
|
312
|
+
950: '{indigo.950}'
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Surface
|
|
319
|
+
|
|
320
|
+
The color scheme palette that varies between light and dark modes is specified with the surface tokens. Example below uses `stone` for light mode and `zinc` for dark mode using the `light-dark` function. With this setting, light mode, would have a grayscale tone and dark mode would include bluish tone.
|
|
321
|
+
|
|
322
|
+
```tsx
|
|
323
|
+
const MyPreset = definePreset(Aura, {
|
|
324
|
+
semantic: {
|
|
325
|
+
surface: {
|
|
326
|
+
0: '#ffffff',
|
|
327
|
+
50: 'light-dark({stone.50}, {zinc.50})',
|
|
328
|
+
100: 'light-dark({stone.100}, {zinc.100})',
|
|
329
|
+
200: 'light-dark({stone.200}, {zinc.200})',
|
|
330
|
+
300: 'light-dark({stone.300}, {zinc.300})',
|
|
331
|
+
400: 'light-dark({stone.400}, {zinc.400})',
|
|
332
|
+
500: 'light-dark({stone.500}, {zinc.500})',
|
|
333
|
+
600: 'light-dark({stone.600}, {zinc.600})',
|
|
334
|
+
700: 'light-dark({stone.700}, {zinc.700})',
|
|
335
|
+
800: 'light-dark({stone.800}, {zinc.800})',
|
|
336
|
+
900: 'light-dark({stone.900}, {zinc.900})',
|
|
337
|
+
950: 'light-dark({stone.950}, {zinc.950})'
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Noir
|
|
344
|
+
|
|
345
|
+
The `noir` mode is a sleek, monochrome variant where the primary color is derived from the neutral `surface` palette instead of a distinct accent color. The example below maps the primary palette to surface tones and uses the `light-dark` function to define the light and dark values of the primary and highlight tokens in a single place;
|
|
346
|
+
|
|
347
|
+
```tsx
|
|
348
|
+
const Noir = definePreset(Aura, {
|
|
349
|
+
semantic: {
|
|
350
|
+
primary: {
|
|
351
|
+
50: '{surface.50}',
|
|
352
|
+
100: '{surface.100}',
|
|
353
|
+
200: '{surface.200}',
|
|
354
|
+
300: '{surface.300}',
|
|
355
|
+
400: '{surface.400}',
|
|
356
|
+
500: '{surface.500}',
|
|
357
|
+
600: '{surface.600}',
|
|
358
|
+
700: '{surface.700}',
|
|
359
|
+
800: '{surface.800}',
|
|
360
|
+
900: '{surface.900}',
|
|
361
|
+
950: '{surface.950}',
|
|
362
|
+
color: 'light-dark({primary.950}, {primary.50})',
|
|
363
|
+
contrastColor: 'light-dark(#ffffff, {primary.950})',
|
|
364
|
+
hoverColor: 'light-dark({primary.800}, {primary.200})',
|
|
365
|
+
activeColor: 'light-dark({primary.700}, {primary.300})'
|
|
366
|
+
},
|
|
367
|
+
highlight: {
|
|
368
|
+
background: 'light-dark({primary.950}, {primary.50})',
|
|
369
|
+
focusBackground: 'light-dark({primary.700}, {primary.300})',
|
|
370
|
+
color: 'light-dark(#ffffff, {primary.950})',
|
|
371
|
+
focusColor: 'light-dark(#ffffff, {primary.950})'
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### Forms
|
|
378
|
+
|
|
379
|
+
The design tokens of the form input components are derived from the `form.field` token group. This customization example changes border color to primary on hover. Any component that depends on this semantic token such as
|
|
380
|
+
`dropdown.hover.border.color` and `textarea.hover.border.color` would receive the change.
|
|
381
|
+
|
|
382
|
+
```tsx
|
|
383
|
+
const MyPreset = definePreset(Aura, {
|
|
384
|
+
semantic: {
|
|
385
|
+
formField: {
|
|
386
|
+
hoverBorderColor: '{primary.color}'
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Focus Ring
|
|
393
|
+
|
|
394
|
+
Focus ring defines the outline width, style, color and offset. Let's use a thicker ring with the primary color for the outline.
|
|
395
|
+
|
|
396
|
+
```tsx
|
|
397
|
+
const MyPreset = definePreset(Aura, {
|
|
398
|
+
semantic: {
|
|
399
|
+
focusRing: {
|
|
400
|
+
width: '2px',
|
|
401
|
+
style: 'dashed',
|
|
402
|
+
color: '{primary.color}',
|
|
403
|
+
offset: '1px'
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Component
|
|
410
|
+
|
|
411
|
+
The design tokens of a specific component is defined at `components` layer. This configuration is global and applies to all card components, in case you need to customize a particular component on a page locally, view the Scoped CSS section for an example.
|
|
412
|
+
|
|
413
|
+
**Tip:** Overriding component tokens is best suited for small adjustments. For heavy customization, building your own preset is the recommended approach.
|
|
414
|
+
|
|
415
|
+
```tsx
|
|
416
|
+
const MyPreset = definePreset(Aura, {
|
|
417
|
+
components: {
|
|
418
|
+
card: {
|
|
419
|
+
root: {
|
|
420
|
+
background: 'light-dark({surface.0}, {surface.900})',
|
|
421
|
+
color: 'light-dark({surface.700}, {surface.0})'
|
|
422
|
+
},
|
|
423
|
+
subtitle: {
|
|
424
|
+
color: 'light-dark({surface.500}, {surface.400})'
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Typography
|
|
432
|
+
|
|
433
|
+
Typography tokens are defined at the semantic level for consistency and at the component level for specialization.
|
|
434
|
+
|
|
435
|
+
```tsx
|
|
436
|
+
const MyPreset = definePreset(Aura, {
|
|
437
|
+
semantic: {
|
|
438
|
+
typography: {
|
|
439
|
+
lineHeight: '1.5',
|
|
440
|
+
fontFamily: 'inherit',
|
|
441
|
+
fontWeight: 'normal',
|
|
442
|
+
fontSize: '0.875rem'
|
|
443
|
+
},
|
|
444
|
+
formField: {
|
|
445
|
+
fontWeight: '{typography.font.weight}',
|
|
446
|
+
fontSize: '{typography.font.size}'
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
components: {
|
|
450
|
+
select: {
|
|
451
|
+
fontSize: '{form.field.font.size}',
|
|
452
|
+
fontWeight: '{form.field.font.weight}'
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
});
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
### Extend
|
|
459
|
+
|
|
460
|
+
The theming system can be extended by adding custom design tokens and additional styles. This feature provides a high degree of customization, allowing you to adjust styles according to your needs, as you are not limited to the default tokens.
|
|
461
|
+
|
|
462
|
+
The example preset configuration adds a new `accent` button with custom `button.accent.color` and `button.accent.inverse.color` tokens. It is also possible to add tokens globally to share them within the components.
|
|
463
|
+
|
|
464
|
+
```tsx
|
|
465
|
+
const MyPreset = definePreset(Aura, {
|
|
466
|
+
components: {
|
|
467
|
+
// custom button tokens and additional style
|
|
468
|
+
button: {
|
|
469
|
+
extend: {
|
|
470
|
+
accent: {
|
|
471
|
+
color: '#f59e0b',
|
|
472
|
+
inverseColor: '#ffffff'
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
css: ({ dt }) => \`
|
|
476
|
+
.p-button-accent {
|
|
477
|
+
background: \${dt('button.accent.color')};
|
|
478
|
+
color: \${dt('button.accent.inverse.color')};
|
|
479
|
+
transition-duration: \${dt('my.transition.fast')};
|
|
480
|
+
}
|
|
481
|
+
\`
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
// common tokens and styles
|
|
485
|
+
extend: {
|
|
486
|
+
my: {
|
|
487
|
+
transition: {
|
|
488
|
+
slow: '0.75s'
|
|
489
|
+
normal: '0.5s'
|
|
490
|
+
fast: '0.25s'
|
|
491
|
+
},
|
|
492
|
+
imageDisplay: 'block'
|
|
493
|
+
}
|
|
494
|
+
},
|
|
495
|
+
css: ({ dt }) => \`
|
|
496
|
+
/* Global CSS */
|
|
497
|
+
img {
|
|
498
|
+
display: \${dt('my.image.display')};
|
|
499
|
+
}
|
|
500
|
+
\`
|
|
501
|
+
});
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
## Scoped Tokens
|
|
505
|
+
|
|
506
|
+
Design tokens can be scoped to a certain component using the `dt` property. In this example, first switch uses the global tokens whereas second one overrides the global with its own tokens.
|
|
507
|
+
|
|
508
|
+
```tsx
|
|
509
|
+
import { ToggleSwitch } from '@primereact/ui/toggleswitch';
|
|
510
|
+
|
|
511
|
+
export default function ScopedTokensDemo() {
|
|
512
|
+
const amberSwitch = {
|
|
513
|
+
handle: {
|
|
514
|
+
borderRadius: '4px'
|
|
515
|
+
},
|
|
516
|
+
colorScheme: {
|
|
517
|
+
light: {
|
|
518
|
+
root: {
|
|
519
|
+
checkedBackground: '{amber.500}',
|
|
520
|
+
checkedHoverBackground: '{amber.600}',
|
|
521
|
+
borderRadius: '4px'
|
|
522
|
+
},
|
|
523
|
+
handle: {
|
|
524
|
+
checkedBackground: '{amber.50}',
|
|
525
|
+
checkedHoverBackground: '{amber.100}'
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
dark: {
|
|
529
|
+
root: {
|
|
530
|
+
checkedBackground: '{amber.400}',
|
|
531
|
+
checkedHoverBackground: '{amber.300}',
|
|
532
|
+
borderRadius: '4px'
|
|
533
|
+
},
|
|
534
|
+
handle: {
|
|
535
|
+
checkedBackground: '{amber.900}',
|
|
536
|
+
checkedHoverBackground: '{amber.800}'
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
};
|
|
541
|
+
|
|
542
|
+
return (
|
|
543
|
+
<div className="flex justify-center gap-4">
|
|
544
|
+
<ToggleSwitch.Root defaultChecked>
|
|
545
|
+
<ToggleSwitch.Control>
|
|
546
|
+
<ToggleSwitch.Handle />
|
|
547
|
+
</ToggleSwitch.Control>
|
|
548
|
+
</ToggleSwitch.Root>
|
|
549
|
+
<ToggleSwitch.Root defaultChecked dt={amberSwitch}>
|
|
550
|
+
<ToggleSwitch.Control>
|
|
551
|
+
<ToggleSwitch.Handle />
|
|
552
|
+
</ToggleSwitch.Control>
|
|
553
|
+
</ToggleSwitch.Root>
|
|
554
|
+
</div>
|
|
555
|
+
);
|
|
556
|
+
}
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
## Utils
|
|
560
|
+
|
|
561
|
+
### usePreset
|
|
562
|
+
|
|
563
|
+
Replaces the current presets entirely, common use case is changing the preset dynamically at runtime.
|
|
564
|
+
|
|
565
|
+
```tsx
|
|
566
|
+
import { usePreset } from '@primeuix/themes';
|
|
567
|
+
|
|
568
|
+
const onButtonClick() {
|
|
569
|
+
usePreset(MyPreset);
|
|
570
|
+
}
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
### updatePreset
|
|
574
|
+
|
|
575
|
+
Merges the provided tokens to the current preset, an example would be changing the primary color palette dynamically.
|
|
576
|
+
|
|
577
|
+
```tsx
|
|
578
|
+
import { updatePreset } from '@primeuix/themes';
|
|
579
|
+
|
|
580
|
+
const changePrimaryColor() {
|
|
581
|
+
updatePreset({
|
|
582
|
+
semantic: {
|
|
583
|
+
primary: {
|
|
584
|
+
50: '{indigo.50}',
|
|
585
|
+
100: '{indigo.100}',
|
|
586
|
+
200: '{indigo.200}',
|
|
587
|
+
300: '{indigo.300}',
|
|
588
|
+
400: '{indigo.400}',
|
|
589
|
+
500: '{indigo.500}',
|
|
590
|
+
600: '{indigo.600}',
|
|
591
|
+
700: '{indigo.700}',
|
|
592
|
+
800: '{indigo.800}',
|
|
593
|
+
900: '{indigo.900}',
|
|
594
|
+
950: '{indigo.950}'
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
})
|
|
598
|
+
}
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
### updatePrimaryPalette
|
|
602
|
+
|
|
603
|
+
Updates the primary colors, this is a shorthand to do the same update using `updatePreset`.
|
|
604
|
+
|
|
605
|
+
```tsx
|
|
606
|
+
import { updatePrimaryPalette } from '@primeuix/themes';
|
|
607
|
+
|
|
608
|
+
const changePrimaryColor() {
|
|
609
|
+
updatePrimaryPalette({
|
|
610
|
+
50: '{indigo.50}',
|
|
611
|
+
100: '{indigo.100}',
|
|
612
|
+
200: '{indigo.200}',
|
|
613
|
+
300: '{indigo.300}',
|
|
614
|
+
400: '{indigo.400}',
|
|
615
|
+
500: '{indigo.500}',
|
|
616
|
+
600: '{indigo.600}',
|
|
617
|
+
700: '{indigo.700}',
|
|
618
|
+
800: '{indigo.800}',
|
|
619
|
+
900: '{indigo.900}',
|
|
620
|
+
950: '{indigo.950}'
|
|
621
|
+
});
|
|
622
|
+
}
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### updateSurfacePalette
|
|
626
|
+
|
|
627
|
+
Updates the surface colors, this is a shorthand to do the same update using `updatePreset`.
|
|
628
|
+
|
|
629
|
+
```tsx
|
|
630
|
+
import { updateSurfacePalette } from '@primeuix/themes';
|
|
631
|
+
|
|
632
|
+
const changeSurfaces() {
|
|
633
|
+
//changes surfaces both in light and dark mode
|
|
634
|
+
updateSurfacePalette({
|
|
635
|
+
50: '{zinc.50}',
|
|
636
|
+
// ...
|
|
637
|
+
950: '{zinc.950}'
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
const changeLightSurfaces() {
|
|
642
|
+
//changes surfaces only in light
|
|
643
|
+
updateSurfacePalette({
|
|
644
|
+
light: {
|
|
645
|
+
50: '{zinc.50}',
|
|
646
|
+
// ...
|
|
647
|
+
950: '{zinc.950}'
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
const changeDarkSurfaces() {
|
|
653
|
+
//changes surfaces only in dark mode
|
|
654
|
+
updateSurfacePalette({
|
|
655
|
+
dark: {
|
|
656
|
+
50: '{zinc.50}',
|
|
657
|
+
// ...
|
|
658
|
+
950: '{zinc.950}'
|
|
659
|
+
}
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
### $dt
|
|
665
|
+
|
|
666
|
+
The `$dt` function returns the information about a token like the full path and value. This would be useful if you need to access tokens programmatically.
|
|
667
|
+
|
|
668
|
+
```tsx
|
|
669
|
+
import { $dt } from '@primeuix/themes';
|
|
670
|
+
|
|
671
|
+
const duration = $dt('transition.duration');
|
|
672
|
+
/*
|
|
673
|
+
duration: {
|
|
674
|
+
name: '--transition-duration',
|
|
675
|
+
variable: 'var(--p-transition-duration)',
|
|
676
|
+
value: '0.2s'
|
|
677
|
+
}
|
|
678
|
+
*/
|
|
679
|
+
|
|
680
|
+
const primaryColor = $dt('primary.color');
|
|
681
|
+
/*
|
|
682
|
+
primaryColor: {
|
|
683
|
+
name: '--primary-color',
|
|
684
|
+
variable: 'var(--p-primary-color)',
|
|
685
|
+
value: {
|
|
686
|
+
light: {
|
|
687
|
+
value: '#10b981',
|
|
688
|
+
paths: {
|
|
689
|
+
name: 'semantic.primary.color',
|
|
690
|
+
binding: {
|
|
691
|
+
name: 'primitive.emerald.500'
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
},
|
|
695
|
+
dark: {
|
|
696
|
+
value: '#34d399',
|
|
697
|
+
paths: {
|
|
698
|
+
name: 'semantic.primary.color',
|
|
699
|
+
binding: {
|
|
700
|
+
name: 'primitive.emerald.400'
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
*/
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
### palette
|
|
710
|
+
|
|
711
|
+
Returns shades and tints of a given color from 50 to 950 as an object.
|
|
712
|
+
|
|
713
|
+
```tsx
|
|
714
|
+
import { palette } from '@primeuix/themes';
|
|
715
|
+
|
|
716
|
+
// custom color
|
|
717
|
+
const values1 = palette('#10b981');
|
|
718
|
+
|
|
719
|
+
// copy an existing token set
|
|
720
|
+
const primaryColor = palette('{blue}');
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
## CSS Layer
|
|
724
|
+
|
|
725
|
+
The PrimeReact CSS layer only applies to styled mode when layering is enabled explicitly at theme configuration, in unstyled mode the built-in CSS classes are not included and as a result no layer is necessary.
|
|
726
|
+
|
|
727
|
+
### Specificity
|
|
728
|
+
|
|
729
|
+
The `@layer` is a standard CSS feature to define cascade layers for a customizable order of precedence. If you need to become more familiar with layers, visit the documentation at [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/@layer) to begin with.
|
|
730
|
+
|
|
731
|
+
The `cssLayer` is disabled by default, when it is enabled at theme configuration, PrimeReact wraps the built-in style classes under the `primereact` cascade layer to make the library styles easy to override. CSS in your app without a layer has the
|
|
732
|
+
highest CSS specificity, so you'll be able to override styles regardless of the location or how strong a class is written.
|
|
733
|
+
|
|
734
|
+
Layers also make it easier to use CSS Modules, view the CSS Modules guide for examples.
|
|
735
|
+
|
|
736
|
+
### Reset
|
|
737
|
+
|
|
738
|
+
In case PrimeReact components have visual issues in your application, a Reset CSS may be the culprit. CSS layers would be an efficient solution that involves enabling the PrimeReact layer, wrapping the Reset CSS in another layer and defining the
|
|
739
|
+
layer order. This way, your Reset CSS does not get in the way of PrimeReact components.
|
|
740
|
+
|
|
741
|
+
```css
|
|
742
|
+
/* Order */
|
|
743
|
+
@layer reset, primereact;
|
|
744
|
+
|
|
745
|
+
/* Reset CSS */
|
|
746
|
+
@layer reset {
|
|
747
|
+
button,
|
|
748
|
+
input {
|
|
749
|
+
/* CSS to Reset */
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
## CSS Modules
|
|
755
|
+
|
|
756
|
+
[CSS modules](https://github.com/css-modules/css-modules) are supported by enabling the `module` property on a style element within your SFC. Use the `$style` keyword to apply classes to a PrimeReact component. It is recommend to enable
|
|
757
|
+
`cssLayer` when using CSS modules so that the PrimeReact styles have low CSS specificity.
|
|
758
|
+
|
|
759
|
+
```tsx
|
|
760
|
+
import * as React from 'react';
|
|
761
|
+
import { InputText } from '@primereact/ui/inputtext';
|
|
762
|
+
import styles from './css-modules-demo.module.css';
|
|
763
|
+
|
|
764
|
+
export default function CSSModulesDemo() {
|
|
765
|
+
return (
|
|
766
|
+
<div className="flex justify-center">
|
|
767
|
+
<InputText className={styles.myinput} placeholder="Search" />
|
|
768
|
+
</div>
|
|
769
|
+
);
|
|
770
|
+
}
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
```css
|
|
774
|
+
.myinput {
|
|
775
|
+
border-radius: 2rem;
|
|
776
|
+
padding: 1rem 2rem;
|
|
777
|
+
border-width: 2px;
|
|
778
|
+
}
|
|
779
|
+
```
|