@primereact/mcp 11.0.0-rc.2 → 11.0.0-rc.3
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/README.md +10 -8
- package/data/llms/headless/components/textarea/api.json +6 -0
- package/data/llms/headless/guides/ai/mcp.md +113 -0
- package/data/llms/headless/guides/ai/plugin.md +138 -0
- package/data/llms/headless/guides/installation.md +1 -1
- package/data/llms/hooks/use-filter.md +2 -5
- package/data/llms/llms-full.txt +1170 -247
- package/data/llms/llms.txt +8 -0
- package/data/llms/primitive/components/textarea/api.json +6 -6
- package/data/llms/primitive/guides/ai/mcp.md +113 -0
- package/data/llms/primitive/guides/ai/plugin.md +138 -0
- package/data/llms/primitive/guides/icons/primeicons.md +3 -3
- package/data/llms/primitive/guides/installation.md +1 -1
- package/data/llms/styled/components/datatable.md +20 -40
- package/data/llms/styled/components/dataview.md +12 -17
- package/data/llms/styled/components/dialog.md +0 -9
- package/data/llms/styled/components/inputgroup.md +0 -65
- package/data/llms/styled/components/select.md +3 -5
- package/data/llms/styled/components/slider.md +1 -2
- package/data/llms/styled/components/stepper.md +1 -2
- package/data/llms/styled/components/toolbar.md +10 -10
- package/data/llms/styled/components/tooltip.md +46 -0
- package/data/llms/styled/guides/ai/mcp.md +113 -0
- package/data/llms/styled/guides/ai/plugin.md +138 -0
- package/data/llms/styled/guides/icons/primeicons.md +3 -3
- package/data/llms/styled/guides/installation/astro.md +1 -1
- package/data/llms/styled/guides/installation/configuration.md +135 -0
- package/data/llms/styled/guides/installation/nextjs.md +1 -1
- package/data/llms/styled/guides/installation/react-router.md +1 -1
- package/data/llms/styled/guides/installation/tanstack.md +1 -1
- package/data/llms/styled/guides/installation/vite.md +1 -1
- package/data/llms/tailwind/components/datatable.md +17 -34
- package/data/llms/tailwind/components/dataview.md +12 -17
- package/data/llms/tailwind/components/dialog.md +1 -9
- package/data/llms/tailwind/components/select.md +1 -2
- package/data/llms/tailwind/components/slider.md +1 -2
- package/data/llms/tailwind/components/toolbar.md +10 -7
- package/data/llms/tailwind/guides/ai/mcp.md +113 -0
- package/data/llms/tailwind/guides/ai/plugin.md +138 -0
- package/data/llms/tailwind/guides/icons/primeicons.md +3 -3
- package/data/llms/tailwind/guides/installation/astro.md +1 -1
- package/data/llms/tailwind/guides/installation/nextjs.md +1 -1
- package/data/llms/tailwind/guides/installation/react-router.md +1 -1
- package/data/llms/tailwind/guides/installation/tanstack.md +1 -1
- package/data/llms/tailwind/guides/installation/vite.md +1 -1
- package/data/manifest.json +2379 -1673
- package/data/mcp-data.json +1375 -542
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -1
- package/package.json +4 -3
- package/data/llms/manifest.json +0 -12409
- package/data/llms/mcp-data.json +0 -14481
package/data/llms/llms-full.txt
CHANGED
|
@@ -35481,7 +35481,6 @@ import { StarFill } from '@primeicons/react/star-fill';
|
|
|
35481
35481
|
import { DataTable } from '@primereact/ui/datatable';
|
|
35482
35482
|
import { Rating } from '@primereact/ui/rating';
|
|
35483
35483
|
import { Tag } from '@primereact/ui/tag';
|
|
35484
|
-
import Image from 'next/image';
|
|
35485
35484
|
import * as React from 'react';
|
|
35486
35485
|
|
|
35487
35486
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -35549,7 +35548,7 @@ export default function Preview() {
|
|
|
35549
35548
|
<DataTable.Row key={item.id}>
|
|
35550
35549
|
<DataTable.Cell>
|
|
35551
35550
|
<div className="flex items-center gap-3">
|
|
35552
|
-
<
|
|
35551
|
+
<img
|
|
35553
35552
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
35554
35553
|
alt={item.name}
|
|
35555
35554
|
width={48}
|
|
@@ -36088,7 +36087,6 @@ One row at a time. Clicking a different row replaces the previous selection.
|
|
|
36088
36087
|
|
|
36089
36088
|
```tsx
|
|
36090
36089
|
'use client';
|
|
36091
|
-
import Image from 'next/image';
|
|
36092
36090
|
import { Database } from '@primeicons/react/database';
|
|
36093
36091
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
36094
36092
|
import type { DataTableSelectionEvent } from '@primereact/ui/datatable';
|
|
@@ -36151,7 +36149,7 @@ export default function SingleSelectionDemo() {
|
|
|
36151
36149
|
<DataTable.Row key={item.id}>
|
|
36152
36150
|
<DataTable.Cell>
|
|
36153
36151
|
<div className="flex items-center gap-3">
|
|
36154
|
-
<
|
|
36152
|
+
<img
|
|
36155
36153
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
36156
36154
|
alt={item.name}
|
|
36157
36155
|
width={40}
|
|
@@ -36211,7 +36209,6 @@ Multiple rows without a dedicated column. Pair with `metaKeySelection` so Ctrl/C
|
|
|
36211
36209
|
|
|
36212
36210
|
```tsx
|
|
36213
36211
|
'use client';
|
|
36214
|
-
import Image from 'next/image';
|
|
36215
36212
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
36216
36213
|
import { ShoppingCart } from '@primeicons/react/shopping-cart';
|
|
36217
36214
|
import { Database } from '@primeicons/react/database';
|
|
@@ -36310,7 +36307,7 @@ export default function MultipleSelectionDemo() {
|
|
|
36310
36307
|
<DataTable.Row key={item.id}>
|
|
36311
36308
|
<DataTable.Cell>
|
|
36312
36309
|
<div className="flex items-center gap-3">
|
|
36313
|
-
<
|
|
36310
|
+
<img
|
|
36314
36311
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
36315
36312
|
alt={item.name}
|
|
36316
36313
|
width={40}
|
|
@@ -36706,7 +36703,6 @@ Arrow Up/Down moves focus between rows, Space or Enter toggles the focused row,
|
|
|
36706
36703
|
|
|
36707
36704
|
```tsx
|
|
36708
36705
|
'use client';
|
|
36709
|
-
import Image from 'next/image';
|
|
36710
36706
|
import { Database } from '@primeicons/react/database';
|
|
36711
36707
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
36712
36708
|
import type { DataTableSelectionEvent } from '@primereact/ui/datatable';
|
|
@@ -36786,7 +36782,7 @@ export default function KeyboardDemo() {
|
|
|
36786
36782
|
<DataTable.Row key={item.id}>
|
|
36787
36783
|
<DataTable.Cell>
|
|
36788
36784
|
<div className="flex items-center gap-3">
|
|
36789
|
-
<
|
|
36785
|
+
<img
|
|
36790
36786
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
36791
36787
|
alt={item.name}
|
|
36792
36788
|
width={36}
|
|
@@ -36861,7 +36857,6 @@ Clicking a column header cycles through ascending, descending, and unsorted.
|
|
|
36861
36857
|
|
|
36862
36858
|
```tsx
|
|
36863
36859
|
'use client';
|
|
36864
|
-
import Image from 'next/image';
|
|
36865
36860
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
36866
36861
|
import type { DataTableSortOrderInstance } from '@primereact/ui/datatable';
|
|
36867
36862
|
import { SortAlt } from '@primeicons/react/sort-alt';
|
|
@@ -36958,7 +36953,7 @@ export default function SortDemo() {
|
|
|
36958
36953
|
<DataTable.Row key={item.id}>
|
|
36959
36954
|
<DataTable.Cell>
|
|
36960
36955
|
<div className="flex items-center gap-3">
|
|
36961
|
-
<
|
|
36956
|
+
<img
|
|
36962
36957
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
36963
36958
|
alt={item.name}
|
|
36964
36959
|
width={40}
|
|
@@ -37018,7 +37013,6 @@ Hold Ctrl/Cmd and click multiple column headers to sort by several fields at onc
|
|
|
37018
37013
|
|
|
37019
37014
|
```tsx
|
|
37020
37015
|
'use client';
|
|
37021
|
-
import Image from 'next/image';
|
|
37022
37016
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
37023
37017
|
import type { DataTableSortOrderInstance } from '@primereact/ui/datatable';
|
|
37024
37018
|
import { SortAlt } from '@primeicons/react/sort-alt';
|
|
@@ -37115,7 +37109,7 @@ export default function MultiSortDemo() {
|
|
|
37115
37109
|
<DataTable.Row key={item.id}>
|
|
37116
37110
|
<DataTable.Cell>
|
|
37117
37111
|
<div className="flex items-center gap-3">
|
|
37118
|
-
<
|
|
37112
|
+
<img
|
|
37119
37113
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
37120
37114
|
alt={item.name}
|
|
37121
37115
|
width={40}
|
|
@@ -37181,7 +37175,6 @@ Apply an initial sort on mount. Use `defaultSortField` + `defaultSortOrder` for
|
|
|
37181
37175
|
|
|
37182
37176
|
```tsx
|
|
37183
37177
|
'use client';
|
|
37184
|
-
import Image from 'next/image';
|
|
37185
37178
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
37186
37179
|
import type { DataTableSortOrderInstance } from '@primereact/ui/datatable';
|
|
37187
37180
|
import { SortAlt } from '@primeicons/react/sort-alt';
|
|
@@ -37278,7 +37271,7 @@ export default function PresortDemo() {
|
|
|
37278
37271
|
<DataTable.Row key={item.id}>
|
|
37279
37272
|
<DataTable.Cell>
|
|
37280
37273
|
<div className="flex items-center gap-3">
|
|
37281
|
-
<
|
|
37274
|
+
<img
|
|
37282
37275
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
37283
37276
|
alt={item.name}
|
|
37284
37277
|
width={40}
|
|
@@ -37360,7 +37353,6 @@ import { Badge } from '@primereact/ui/badge';
|
|
|
37360
37353
|
import { DataTable } from '@primereact/ui/datatable';
|
|
37361
37354
|
import { OverlayBadge } from '@primereact/ui/overlaybadge';
|
|
37362
37355
|
import { Tag } from '@primereact/ui/tag';
|
|
37363
|
-
import Image from 'next/image';
|
|
37364
37356
|
import * as React from 'react';
|
|
37365
37357
|
|
|
37366
37358
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -37454,7 +37446,7 @@ export default function PresortMultiDemo() {
|
|
|
37454
37446
|
<DataTable.Row key={item.id}>
|
|
37455
37447
|
<DataTable.Cell>
|
|
37456
37448
|
<div className="flex items-center gap-3">
|
|
37457
|
-
<
|
|
37449
|
+
<img
|
|
37458
37450
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
37459
37451
|
alt={item.name}
|
|
37460
37452
|
width={40}
|
|
@@ -37526,7 +37518,6 @@ import type { DataTablePaginationInstance } from '@primereact/ui/datatable';
|
|
|
37526
37518
|
import { DataTable } from '@primereact/ui/datatable';
|
|
37527
37519
|
import { Paginator } from '@primereact/ui/paginator';
|
|
37528
37520
|
import { Tag } from '@primereact/ui/tag';
|
|
37529
|
-
import Image from 'next/image';
|
|
37530
37521
|
import type { PaginatorPagesInstance } from '@primereact/ui/paginator';
|
|
37531
37522
|
import * as React from 'react';
|
|
37532
37523
|
|
|
@@ -37578,7 +37569,7 @@ export default function PaginationDemo() {
|
|
|
37578
37569
|
<DataTable.Row key={item.id}>
|
|
37579
37570
|
<DataTable.Cell>
|
|
37580
37571
|
<div className="flex items-center gap-3">
|
|
37581
|
-
<
|
|
37572
|
+
<img
|
|
37582
37573
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
37583
37574
|
alt={item.name}
|
|
37584
37575
|
width={40}
|
|
@@ -38633,7 +38624,6 @@ Inline cell editing with `CellEditor`, `CellEditorDisplay` and `CellEditorConten
|
|
|
38633
38624
|
|
|
38634
38625
|
```tsx
|
|
38635
38626
|
'use client';
|
|
38636
|
-
import Image from 'next/image';
|
|
38637
38627
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
38638
38628
|
import { ChevronDown } from '@primeicons/react/chevron-down';
|
|
38639
38629
|
import { Database } from '@primeicons/react/database';
|
|
@@ -38721,7 +38711,7 @@ export default function CellEditDemo() {
|
|
|
38721
38711
|
{({ item, index }: { item: any; index: number }) => (
|
|
38722
38712
|
<DataTable.Row key={item.id}>
|
|
38723
38713
|
<DataTable.Cell>
|
|
38724
|
-
<
|
|
38714
|
+
<img
|
|
38725
38715
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
38726
38716
|
alt={item.name}
|
|
38727
38717
|
width={40}
|
|
@@ -38870,7 +38860,6 @@ Cell editing composes with row selection: clicks inside an editable cell start e
|
|
|
38870
38860
|
|
|
38871
38861
|
```tsx
|
|
38872
38862
|
'use client';
|
|
38873
|
-
import Image from 'next/image';
|
|
38874
38863
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
38875
38864
|
import { Check } from '@primeicons/react/check';
|
|
38876
38865
|
import { Database } from '@primeicons/react/database';
|
|
@@ -39023,7 +39012,7 @@ export default function CellEditSelectionDemo() {
|
|
|
39023
39012
|
</DataTable.Selection>
|
|
39024
39013
|
</DataTable.Cell>
|
|
39025
39014
|
<DataTable.Cell>
|
|
39026
|
-
<
|
|
39015
|
+
<img
|
|
39027
39016
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
39028
39017
|
alt={item.name}
|
|
39029
39018
|
width={36}
|
|
@@ -39174,7 +39163,6 @@ Row-level editing with `RowEditor`, `RowEditorInit`, `RowEditorSave` and `RowEdi
|
|
|
39174
39163
|
|
|
39175
39164
|
```tsx
|
|
39176
39165
|
'use client';
|
|
39177
|
-
import Image from 'next/image';
|
|
39178
39166
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
39179
39167
|
import { Check } from '@primeicons/react/check';
|
|
39180
39168
|
import { Database } from '@primeicons/react/database';
|
|
@@ -39283,7 +39271,7 @@ export default function RowEditDemo() {
|
|
|
39283
39271
|
<DataTable.CellEditor field="name" rowIndex={index} rowData={item}>
|
|
39284
39272
|
<DataTable.CellEditorDisplay>
|
|
39285
39273
|
<div className="flex items-center gap-3">
|
|
39286
|
-
<
|
|
39274
|
+
<img
|
|
39287
39275
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
39288
39276
|
alt={item.name}
|
|
39289
39277
|
width={40}
|
|
@@ -39712,7 +39700,6 @@ import { ProductService, type Product } from '@/shared/services/product.service'
|
|
|
39712
39700
|
import { Database } from '@primeicons/react/database';
|
|
39713
39701
|
import { DataTable } from '@primereact/ui/datatable';
|
|
39714
39702
|
import { Tag } from '@primereact/ui/tag';
|
|
39715
|
-
import Image from 'next/image';
|
|
39716
39703
|
import * as React from 'react';
|
|
39717
39704
|
|
|
39718
39705
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -39765,7 +39752,7 @@ export default function ResizeDemo() {
|
|
|
39765
39752
|
<DataTable.Row key={item.id}>
|
|
39766
39753
|
<DataTable.Cell>
|
|
39767
39754
|
<div className="flex items-center gap-3">
|
|
39768
|
-
<
|
|
39755
|
+
<img
|
|
39769
39756
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
39770
39757
|
alt={item.name}
|
|
39771
39758
|
width={36}
|
|
@@ -39817,7 +39804,6 @@ export default function ResizeDemo() {
|
|
|
39817
39804
|
|
|
39818
39805
|
```tsx
|
|
39819
39806
|
'use client';
|
|
39820
|
-
import Image from 'next/image';
|
|
39821
39807
|
import { Database } from '@primeicons/react/database';
|
|
39822
39808
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
39823
39809
|
import { DataTable } from '@primereact/ui/datatable';
|
|
@@ -39877,7 +39863,7 @@ export default function ResizeExpandDemo() {
|
|
|
39877
39863
|
<DataTable.Row key={item.id}>
|
|
39878
39864
|
<DataTable.Cell>
|
|
39879
39865
|
<div className="flex items-center gap-3">
|
|
39880
|
-
<
|
|
39866
|
+
<img
|
|
39881
39867
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
39882
39868
|
alt={item.name}
|
|
39883
39869
|
width={36}
|
|
@@ -39942,7 +39928,6 @@ import { Database } from '@primeicons/react/database';
|
|
|
39942
39928
|
import type { DataTableColumnReorderEvent } from '@primereact/ui/datatable';
|
|
39943
39929
|
import { DataTable } from '@primereact/ui/datatable';
|
|
39944
39930
|
import { Tag } from '@primereact/ui/tag';
|
|
39945
|
-
import Image from 'next/image';
|
|
39946
39931
|
import * as React from 'react';
|
|
39947
39932
|
|
|
39948
39933
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -39975,7 +39960,7 @@ function renderCell(field: string, item: Product) {
|
|
|
39975
39960
|
case 'name':
|
|
39976
39961
|
return (
|
|
39977
39962
|
<div className="flex items-center gap-3">
|
|
39978
|
-
<
|
|
39963
|
+
<img
|
|
39979
39964
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
39980
39965
|
alt={item.name}
|
|
39981
39966
|
width={36}
|
|
@@ -40084,7 +40069,6 @@ Drag and drop rows to reorder data.
|
|
|
40084
40069
|
|
|
40085
40070
|
```tsx
|
|
40086
40071
|
'use client';
|
|
40087
|
-
import Image from 'next/image';
|
|
40088
40072
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
40089
40073
|
import { Bars } from '@primeicons/react/bars';
|
|
40090
40074
|
import { Database } from '@primeicons/react/database';
|
|
@@ -40149,7 +40133,7 @@ export default function RowReorderDemo() {
|
|
|
40149
40133
|
</DataTable.Cell>
|
|
40150
40134
|
<DataTable.Cell>
|
|
40151
40135
|
<div className="flex items-center gap-3">
|
|
40152
|
-
<
|
|
40136
|
+
<img
|
|
40153
40137
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
40154
40138
|
alt={item.name}
|
|
40155
40139
|
width={36}
|
|
@@ -40220,7 +40204,6 @@ import { Checkbox } from '@primereact/ui/checkbox';
|
|
|
40220
40204
|
import { DataTable } from '@primereact/ui/datatable';
|
|
40221
40205
|
import { Popover } from '@primereact/ui/popover';
|
|
40222
40206
|
import { Tag } from '@primereact/ui/tag';
|
|
40223
|
-
import Image from 'next/image';
|
|
40224
40207
|
import * as React from 'react';
|
|
40225
40208
|
|
|
40226
40209
|
interface ColumnDef {
|
|
@@ -40256,7 +40239,7 @@ function renderCell(field: string, item: Product) {
|
|
|
40256
40239
|
case 'name':
|
|
40257
40240
|
return (
|
|
40258
40241
|
<div className="flex items-center gap-3">
|
|
40259
|
-
<
|
|
40242
|
+
<img
|
|
40260
40243
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
40261
40244
|
alt={item.name}
|
|
40262
40245
|
width={36}
|
|
@@ -41998,7 +41981,6 @@ Export table data to CSV with customizable fields and headers.
|
|
|
41998
41981
|
|
|
41999
41982
|
```tsx
|
|
42000
41983
|
'use client';
|
|
42001
|
-
import Image from 'next/image';
|
|
42002
41984
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
42003
41985
|
import { FileExport } from '@primeicons/react/file-export';
|
|
42004
41986
|
import { Database } from '@primeicons/react/database';
|
|
@@ -42066,7 +42048,7 @@ export default function ExportDemo() {
|
|
|
42066
42048
|
<DataTable.Row key={item.id}>
|
|
42067
42049
|
<DataTable.Cell>
|
|
42068
42050
|
<div className="flex items-center gap-3">
|
|
42069
|
-
<
|
|
42051
|
+
<img
|
|
42070
42052
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
42071
42053
|
alt={item.name}
|
|
42072
42054
|
width={36}
|
|
@@ -42425,7 +42407,6 @@ import { Spinner } from '@primeicons/react/spinner';
|
|
|
42425
42407
|
import { Button } from '@primereact/ui/button';
|
|
42426
42408
|
import { DataTable } from '@primereact/ui/datatable';
|
|
42427
42409
|
import { Tag } from '@primereact/ui/tag';
|
|
42428
|
-
import Image from 'next/image';
|
|
42429
42410
|
import * as React from 'react';
|
|
42430
42411
|
|
|
42431
42412
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -42490,7 +42471,7 @@ export default function LoadingOverlayDemo() {
|
|
|
42490
42471
|
<DataTable.Row key={item.id}>
|
|
42491
42472
|
<DataTable.Cell>
|
|
42492
42473
|
<div className="flex items-center gap-3">
|
|
42493
|
-
<
|
|
42474
|
+
<img
|
|
42494
42475
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
42495
42476
|
alt={item.name}
|
|
42496
42477
|
width={40}
|
|
@@ -42542,7 +42523,6 @@ import { Button } from '@primereact/ui/button';
|
|
|
42542
42523
|
import { DataTable } from '@primereact/ui/datatable';
|
|
42543
42524
|
import { Skeleton } from '@primereact/ui/skeleton';
|
|
42544
42525
|
import { Tag } from '@primereact/ui/tag';
|
|
42545
|
-
import Image from 'next/image';
|
|
42546
42526
|
import * as React from 'react';
|
|
42547
42527
|
|
|
42548
42528
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -42633,7 +42613,7 @@ export default function LoadingSkeletonDemo() {
|
|
|
42633
42613
|
<DataTable.Row key={item.id}>
|
|
42634
42614
|
<DataTable.Cell>
|
|
42635
42615
|
<div className="flex items-center gap-3">
|
|
42636
|
-
<
|
|
42616
|
+
<img
|
|
42637
42617
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
42638
42618
|
alt={item.name}
|
|
42639
42619
|
width={40}
|
|
@@ -43737,7 +43717,6 @@ DataView displays data in grid or list layout with pagination and sorting featur
|
|
|
43737
43717
|
import { ProductService } from '@/shared/services/product.service';
|
|
43738
43718
|
import { Button } from '@primereact/ui/button';
|
|
43739
43719
|
import { Tag } from '@primereact/ui/tag';
|
|
43740
|
-
import Image from 'next/image';
|
|
43741
43720
|
import { DataView } from '@primereact/ui/dataview';
|
|
43742
43721
|
import * as React from 'react';
|
|
43743
43722
|
import { Heart } from '@primeicons/react/heart';
|
|
@@ -43791,14 +43770,14 @@ export default function Preview() {
|
|
|
43791
43770
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
43792
43771
|
>
|
|
43793
43772
|
<div className="md:w-40 relative">
|
|
43794
|
-
<
|
|
43773
|
+
<img
|
|
43795
43774
|
className="mx-auto rounded w-full"
|
|
43796
43775
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
43797
43776
|
alt={product.name}
|
|
43798
43777
|
width={160}
|
|
43799
43778
|
height={160}
|
|
43800
43779
|
/>
|
|
43801
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
43780
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
43802
43781
|
{product.inventoryStatus}
|
|
43803
43782
|
</Tag>
|
|
43804
43783
|
</div>
|
|
@@ -43872,7 +43851,6 @@ Displays a list of items with support for layout switching.
|
|
|
43872
43851
|
import { ProductService } from '@/shared/services/product.service';
|
|
43873
43852
|
import { Button } from '@primereact/ui/button';
|
|
43874
43853
|
import { Tag } from '@primereact/ui/tag';
|
|
43875
|
-
import Image from 'next/image';
|
|
43876
43854
|
import { DataView } from '@primereact/ui/dataview';
|
|
43877
43855
|
import * as React from 'react';
|
|
43878
43856
|
import { Heart } from '@primeicons/react/heart';
|
|
@@ -43926,14 +43904,14 @@ export default function BasicDemo() {
|
|
|
43926
43904
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
43927
43905
|
>
|
|
43928
43906
|
<div className="md:w-40 relative">
|
|
43929
|
-
<
|
|
43907
|
+
<img
|
|
43930
43908
|
className="mx-auto rounded w-full"
|
|
43931
43909
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
43932
43910
|
alt={product.name}
|
|
43933
43911
|
width={160}
|
|
43934
43912
|
height={160}
|
|
43935
43913
|
/>
|
|
43936
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
43914
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
43937
43915
|
{product.inventoryStatus}
|
|
43938
43916
|
</Tag>
|
|
43939
43917
|
</div>
|
|
@@ -43999,7 +43977,6 @@ import { StarFill } from '@primeicons/react/star-fill';
|
|
|
43999
43977
|
import { Button } from '@primereact/ui/button';
|
|
44000
43978
|
import { Paginator, type PaginatorPagesInstance, type PaginatorRootChangeEvent } from '@primereact/ui/paginator';
|
|
44001
43979
|
import { Tag } from '@primereact/ui/tag';
|
|
44002
|
-
import Image from 'next/image';
|
|
44003
43980
|
import { DataView } from '@primereact/ui/dataview';
|
|
44004
43981
|
import * as React from 'react';
|
|
44005
43982
|
|
|
@@ -44052,14 +44029,14 @@ export default function PaginationDemo() {
|
|
|
44052
44029
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
44053
44030
|
>
|
|
44054
44031
|
<div className="md:w-40 relative">
|
|
44055
|
-
<
|
|
44032
|
+
<img
|
|
44056
44033
|
className="mx-auto rounded w-full"
|
|
44057
44034
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
44058
44035
|
alt={product.name}
|
|
44059
44036
|
width={160}
|
|
44060
44037
|
height={160}
|
|
44061
44038
|
/>
|
|
44062
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
44039
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
44063
44040
|
{product.inventoryStatus}
|
|
44064
44041
|
</Tag>
|
|
44065
44042
|
</div>
|
|
@@ -44155,7 +44132,6 @@ import { Button } from '@primereact/ui/button';
|
|
|
44155
44132
|
import { Tag } from '@primereact/ui/tag';
|
|
44156
44133
|
import { ToggleButton } from '@primereact/ui/togglebutton';
|
|
44157
44134
|
import { ToggleButtonGroup, type ToggleButtonGroupValueChangeEvent } from '@primereact/ui/togglebuttongroup';
|
|
44158
|
-
import Image from 'next/image';
|
|
44159
44135
|
import { DataView } from '@primereact/ui/dataview';
|
|
44160
44136
|
import * as React from 'react';
|
|
44161
44137
|
import { Heart } from '@primeicons/react/heart';
|
|
@@ -44233,14 +44209,14 @@ export default function SortDemo() {
|
|
|
44233
44209
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
44234
44210
|
>
|
|
44235
44211
|
<div className="md:w-40 relative">
|
|
44236
|
-
<
|
|
44212
|
+
<img
|
|
44237
44213
|
className="mx-auto rounded w-full"
|
|
44238
44214
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
44239
44215
|
alt={product.name}
|
|
44240
44216
|
width={160}
|
|
44241
44217
|
height={160}
|
|
44242
44218
|
/>
|
|
44243
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
44219
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
44244
44220
|
{product.inventoryStatus}
|
|
44245
44221
|
</Tag>
|
|
44246
44222
|
</div>
|
|
@@ -44305,7 +44281,6 @@ import { Button } from '@primereact/ui/button';
|
|
|
44305
44281
|
import { Tag } from '@primereact/ui/tag';
|
|
44306
44282
|
import { ToggleButton } from '@primereact/ui/togglebutton';
|
|
44307
44283
|
import { ToggleButtonGroup, type ToggleButtonGroupValueChangeEvent } from '@primereact/ui/togglebuttongroup';
|
|
44308
|
-
import Image from 'next/image';
|
|
44309
44284
|
import { DataView } from '@primereact/ui/dataview';
|
|
44310
44285
|
import * as React from 'react';
|
|
44311
44286
|
|
|
@@ -44355,14 +44330,14 @@ export default function LayoutDemo() {
|
|
|
44355
44330
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
44356
44331
|
>
|
|
44357
44332
|
<div className="md:w-40 relative">
|
|
44358
|
-
<
|
|
44333
|
+
<img
|
|
44359
44334
|
className="mx-auto rounded w-full"
|
|
44360
44335
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
44361
44336
|
alt={product.name}
|
|
44362
44337
|
width={160}
|
|
44363
44338
|
height={160}
|
|
44364
44339
|
/>
|
|
44365
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
44340
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
44366
44341
|
{product.inventoryStatus}
|
|
44367
44342
|
</Tag>
|
|
44368
44343
|
</div>
|
|
@@ -44416,14 +44391,14 @@ export default function LayoutDemo() {
|
|
|
44416
44391
|
<div className="p-6 border border-surface-200 dark:border-surface-700 bg-surface-0 dark:bg-surface-900 rounded flex flex-col">
|
|
44417
44392
|
<div className="flex justify-center">
|
|
44418
44393
|
<div className="relative mx-auto">
|
|
44419
|
-
<
|
|
44394
|
+
<img
|
|
44420
44395
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
44421
44396
|
alt={product.name}
|
|
44422
44397
|
width={300}
|
|
44423
44398
|
height={200}
|
|
44424
44399
|
className="rounded"
|
|
44425
44400
|
/>
|
|
44426
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
44401
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
44427
44402
|
{product.inventoryStatus}
|
|
44428
44403
|
</Tag>
|
|
44429
44404
|
</div>
|
|
@@ -47666,7 +47641,6 @@ The position of the dialog can be customized with the `position` property. The a
|
|
|
47666
47641
|
|
|
47667
47642
|
```tsx
|
|
47668
47643
|
'use client';
|
|
47669
|
-
import { ArrowDown, ArrowDownLeft, ArrowDownRight, ArrowLeft, ArrowRight, ArrowUp, ArrowUpLeft, ArrowUpRight } from '@primeicons/react';
|
|
47670
47644
|
import { Times } from '@primeicons/react/times';
|
|
47671
47645
|
import { DialogRootChangeEvent, DialogRootProps } from '@primereact/ui/dialog';
|
|
47672
47646
|
import { Button } from '@primereact/ui/button';
|
|
@@ -47689,39 +47663,31 @@ export default function PositionDemo() {
|
|
|
47689
47663
|
<div className="flex flex-wrap justify-center gap-2 mb-2">
|
|
47690
47664
|
<Button onClick={() => openPosition('left')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47691
47665
|
Left
|
|
47692
|
-
<ArrowLeft />
|
|
47693
47666
|
</Button>
|
|
47694
47667
|
<Button onClick={() => openPosition('right')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47695
47668
|
Right
|
|
47696
|
-
<ArrowRight />
|
|
47697
47669
|
</Button>
|
|
47698
47670
|
</div>
|
|
47699
47671
|
<div className="flex flex-wrap justify-center gap-2 mb-2">
|
|
47700
47672
|
<Button onClick={() => openPosition('topleft')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47701
47673
|
TopLeft
|
|
47702
|
-
<ArrowUpLeft />
|
|
47703
47674
|
</Button>
|
|
47704
47675
|
<Button onClick={() => openPosition('top')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47705
47676
|
Top
|
|
47706
|
-
<ArrowUp />
|
|
47707
47677
|
</Button>
|
|
47708
47678
|
<Button onClick={() => openPosition('topright')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47709
47679
|
TopRight
|
|
47710
|
-
<ArrowUpRight />
|
|
47711
47680
|
</Button>
|
|
47712
47681
|
</div>
|
|
47713
47682
|
<div className="flex flex-wrap justify-center gap-2">
|
|
47714
47683
|
<Button onClick={() => openPosition('bottomleft')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47715
47684
|
BottomLeft
|
|
47716
|
-
<ArrowDownLeft />
|
|
47717
47685
|
</Button>
|
|
47718
47686
|
<Button onClick={() => openPosition('bottom')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47719
47687
|
Bottom
|
|
47720
|
-
<ArrowDown />
|
|
47721
47688
|
</Button>
|
|
47722
47689
|
<Button onClick={() => openPosition('bottomright')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
47723
47690
|
BottomRight
|
|
47724
|
-
<ArrowDownRight />
|
|
47725
47691
|
</Button>
|
|
47726
47692
|
</div>
|
|
47727
47693
|
<Dialog.Root open={open} onOpenChange={(e: DialogRootChangeEvent) => setOpen(e.value as boolean)} position={position} draggable={false}>
|
|
@@ -53323,71 +53289,6 @@ export default function SelectDemo() {
|
|
|
53323
53289
|
}
|
|
53324
53290
|
```
|
|
53325
53291
|
|
|
53326
|
-
### File Upload
|
|
53327
|
-
|
|
53328
|
-
File upload functionality can be integrated within an InputGroup for inline file selection.
|
|
53329
|
-
|
|
53330
|
-
```tsx
|
|
53331
|
-
'use client';
|
|
53332
|
-
import { Tag as TagIcon } from '@primeicons/react';
|
|
53333
|
-
import { CloudUpload } from '@primeicons/react/cloud-upload';
|
|
53334
|
-
import { Upload } from '@primeicons/react/upload';
|
|
53335
|
-
import { Button } from '@primereact/ui/button';
|
|
53336
|
-
import { FileUpload, FileUploadRootInstance } from '@primereact/ui/fileupload';
|
|
53337
|
-
import { InputGroup } from '@primereact/ui/inputgroup';
|
|
53338
|
-
import { InputText } from '@primereact/ui/inputtext';
|
|
53339
|
-
|
|
53340
|
-
export default function FileUploadDemo() {
|
|
53341
|
-
return (
|
|
53342
|
-
<div className="flex flex-col items-center justify-center gap-4 max-w-93 mx-auto">
|
|
53343
|
-
<div className="flex flex-wrap items-center justify-center gap-4 w-full">
|
|
53344
|
-
<InputGroup.Root className="w-fit!">
|
|
53345
|
-
<FileUpload.Root as={InputGroup.Addon} name="demo2[]" accept="image/*" maxFileSize={1000000}>
|
|
53346
|
-
{(instance: FileUploadRootInstance) => (
|
|
53347
|
-
<Button severity="secondary" variant="text" onClick={instance.choose} className="justify-start border-none">
|
|
53348
|
-
<Upload />
|
|
53349
|
-
{instance.hasFiles ? instance.state.files.map((file) => file.name).join(', ') : 'Choose file'}
|
|
53350
|
-
</Button>
|
|
53351
|
-
)}
|
|
53352
|
-
</FileUpload.Root>
|
|
53353
|
-
<InputGroup.Addon>
|
|
53354
|
-
<Button severity="secondary" variant="text" iconOnly>
|
|
53355
|
-
<CloudUpload />
|
|
53356
|
-
</Button>
|
|
53357
|
-
</InputGroup.Addon>
|
|
53358
|
-
</InputGroup.Root>
|
|
53359
|
-
<InputGroup.Root className="flex-1! max-w-fit!">
|
|
53360
|
-
<InputGroup.Addon>Upload</InputGroup.Addon>
|
|
53361
|
-
<FileUpload.Root as={InputGroup.Addon} name="demo1[]" accept="image/*" maxFileSize={1000000}>
|
|
53362
|
-
{(instance: FileUploadRootInstance) => (
|
|
53363
|
-
<Button severity="secondary" variant="text" onClick={instance.choose} className="justify-start border-none">
|
|
53364
|
-
<Upload />
|
|
53365
|
-
{instance.hasFiles ? instance.state.files.map((file) => file.name).join(', ') : 'Choose file'}
|
|
53366
|
-
</Button>
|
|
53367
|
-
)}
|
|
53368
|
-
</FileUpload.Root>
|
|
53369
|
-
</InputGroup.Root>
|
|
53370
|
-
</div>
|
|
53371
|
-
|
|
53372
|
-
<InputGroup.Root>
|
|
53373
|
-
<InputGroup.Addon>
|
|
53374
|
-
<TagIcon />
|
|
53375
|
-
</InputGroup.Addon>
|
|
53376
|
-
<InputText placeholder="Label" />
|
|
53377
|
-
<FileUpload.Root as={InputGroup.Addon} name="demo3[]" accept="image/*" maxFileSize={1000000}>
|
|
53378
|
-
{(instance: FileUploadRootInstance) => (
|
|
53379
|
-
<Button severity="secondary" variant="text" onClick={instance.choose} className="border-none">
|
|
53380
|
-
<Upload />
|
|
53381
|
-
{instance.hasFiles ? instance.state.files.map((file) => file.name).join(', ') : 'Browse'}
|
|
53382
|
-
</Button>
|
|
53383
|
-
)}
|
|
53384
|
-
</FileUpload.Root>
|
|
53385
|
-
</InputGroup.Root>
|
|
53386
|
-
</div>
|
|
53387
|
-
);
|
|
53388
|
-
}
|
|
53389
|
-
```
|
|
53390
|
-
|
|
53391
53292
|
### Float Label
|
|
53392
53293
|
|
|
53393
53294
|
FloatLabel visually integrates a label with its form element. Visit [FloatLabel](/docs/components/floatlabel) documentation for more information.
|
|
@@ -67374,7 +67275,6 @@ import { Search } from '@primeicons/react/search';
|
|
|
67374
67275
|
import { IconField } from '@primereact/ui/iconfield';
|
|
67375
67276
|
import { InputText } from '@primereact/ui/inputtext';
|
|
67376
67277
|
import { Select, type SelectValueChangeEvent } from '@primereact/ui/select';
|
|
67377
|
-
import Image from 'next/image';
|
|
67378
67278
|
import * as React from 'react';
|
|
67379
67279
|
|
|
67380
67280
|
type Language = {
|
|
@@ -67416,7 +67316,7 @@ export default function Preview() {
|
|
|
67416
67316
|
<Select.Value placeholder="Select a language">
|
|
67417
67317
|
{language && (
|
|
67418
67318
|
<span className="flex items-center gap-2">
|
|
67419
|
-
<
|
|
67319
|
+
<img
|
|
67420
67320
|
alt={language.label}
|
|
67421
67321
|
src="https://primefaces.org/cdn/primevue/images/flag/flag_placeholder.png"
|
|
67422
67322
|
className={`flag flag-${language.code}`}
|
|
@@ -67453,7 +67353,7 @@ export default function Preview() {
|
|
|
67453
67353
|
{filteredLanguages.map((l, index) => (
|
|
67454
67354
|
<Select.Option key={l.value} index={index} uKey={l.value} className="justify-between">
|
|
67455
67355
|
<div className="flex items-center gap-2">
|
|
67456
|
-
<
|
|
67356
|
+
<img
|
|
67457
67357
|
alt={l.label}
|
|
67458
67358
|
src="https://primefaces.org/cdn/primevue/images/flag/flag_placeholder.png"
|
|
67459
67359
|
className={`flag flag-${l.code}`}
|
|
@@ -68029,7 +67929,6 @@ import { SelectValueChangeEvent } from '@primereact/ui/select';
|
|
|
68029
67929
|
import { IconField } from '@primereact/ui/iconfield';
|
|
68030
67930
|
import { InputText } from '@primereact/ui/inputtext';
|
|
68031
67931
|
import { Select } from '@primereact/ui/select';
|
|
68032
|
-
import Image from 'next/image';
|
|
68033
67932
|
import * as React from 'react';
|
|
68034
67933
|
|
|
68035
67934
|
type Country = {
|
|
@@ -68094,7 +67993,7 @@ export default function FilterDemo() {
|
|
|
68094
67993
|
{filteredCountries.map((country, index) => (
|
|
68095
67994
|
<Select.Option key={country.code} index={index} uKey={country.code}>
|
|
68096
67995
|
<div className="flex items-center gap-2">
|
|
68097
|
-
<
|
|
67996
|
+
<img
|
|
68098
67997
|
alt={country.name}
|
|
68099
67998
|
src="https://primefaces.org/cdn/primevue/images/flag/flag_placeholder.png"
|
|
68100
67999
|
className={`flag flag-${country.code.toLowerCase()} mr-2`}
|
|
@@ -71665,7 +71564,6 @@ Image filter implementation using multiple sliders.
|
|
|
71665
71564
|
import { Slider } from '@primereact/ui/slider';
|
|
71666
71565
|
import { ToggleButton } from '@primereact/ui/togglebutton';
|
|
71667
71566
|
import { ToggleButtonGroup, type ToggleButtonGroupValueChangeEvent } from '@primereact/ui/togglebuttongroup';
|
|
71668
|
-
import Image from 'next/image';
|
|
71669
71567
|
import { SliderRootChangeEvent } from '@primereact/ui/slider';
|
|
71670
71568
|
import * as React from 'react';
|
|
71671
71569
|
|
|
@@ -71681,7 +71579,7 @@ export default function FilterDemo() {
|
|
|
71681
71579
|
|
|
71682
71580
|
return (
|
|
71683
71581
|
<div className="flex flex-col items-center justify-center">
|
|
71684
|
-
<
|
|
71582
|
+
<img
|
|
71685
71583
|
alt="user header"
|
|
71686
71584
|
className="w-80 rounded mb-6"
|
|
71687
71585
|
src="https://primefaces.org/cdn/primevue/images/galleria/galleria1.jpg"
|
|
@@ -73401,7 +73299,6 @@ import { Divider } from '@primereact/ui/divider';
|
|
|
73401
73299
|
import { InputText } from '@primereact/ui/inputtext';
|
|
73402
73300
|
import { Stepper } from '@primereact/ui/stepper';
|
|
73403
73301
|
import { ToggleButton } from '@primereact/ui/togglebutton';
|
|
73404
|
-
import Image from 'next/image';
|
|
73405
73302
|
|
|
73406
73303
|
export default function TemplateDemo() {
|
|
73407
73304
|
return (
|
|
@@ -73576,7 +73473,7 @@ export default function TemplateDemo() {
|
|
|
73576
73473
|
<div className="flex flex-col gap-2 mx-auto" style={{ minHeight: '16rem', maxWidth: '24rem' }}>
|
|
73577
73474
|
<div className="text-center mt-4 mb-4 text-xl font-semibold">Account created successfully</div>
|
|
73578
73475
|
<div className="flex justify-center">
|
|
73579
|
-
<
|
|
73476
|
+
<img
|
|
73580
73477
|
alt="logo"
|
|
73581
73478
|
width={240}
|
|
73582
73479
|
height={160}
|
|
@@ -77870,34 +77767,34 @@ import { Search } from '@primeicons/react/search';
|
|
|
77870
77767
|
export default function CustomDemo() {
|
|
77871
77768
|
return (
|
|
77872
77769
|
<Toolbar.Root
|
|
77873
|
-
className="
|
|
77770
|
+
className="@container"
|
|
77874
77771
|
style={{ borderRadius: '3rem', padding: '0.75rem 1rem 0.75rem 1.5rem', background: 'var(--p-surface-900)', border: 'none' }}
|
|
77875
77772
|
>
|
|
77876
|
-
<Toolbar.Start
|
|
77773
|
+
<Toolbar.Start>
|
|
77877
77774
|
<div className="flex items-center gap-1">
|
|
77878
77775
|
<i className="pi pi-prime text-xl" style={{ color: 'var(--p-primary-400)' }} />
|
|
77879
77776
|
<span className="font-bold text-lg ml-2" style={{ color: 'var(--p-surface-0)' }}>
|
|
77880
77777
|
Brand
|
|
77881
77778
|
</span>
|
|
77882
77779
|
</div>
|
|
77883
|
-
<div className="ml-6
|
|
77884
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
77780
|
+
<div className="ml-6 hidden @min-[620px]:flex gap-1">
|
|
77781
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
77885
77782
|
Products
|
|
77886
77783
|
</Button>
|
|
77887
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
77784
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
77888
77785
|
Solutions
|
|
77889
77786
|
</Button>
|
|
77890
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
77787
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
77891
77788
|
Resources
|
|
77892
77789
|
</Button>
|
|
77893
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
77790
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
77894
77791
|
Pricing
|
|
77895
77792
|
</Button>
|
|
77896
77793
|
</div>
|
|
77897
77794
|
</Toolbar.Start>
|
|
77898
|
-
<Toolbar.End
|
|
77899
|
-
<div className="flex items-center gap-2
|
|
77900
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
77795
|
+
<Toolbar.End>
|
|
77796
|
+
<div className="flex items-center gap-2">
|
|
77797
|
+
<Button variant="text" size="small" iconOnly aria-label="Search" className="text-surface-0! hover:bg-surface-700!">
|
|
77901
77798
|
<Search />
|
|
77902
77799
|
</Button>
|
|
77903
77800
|
<Button severity="contrast" size="small">
|
|
@@ -78083,6 +77980,52 @@ export default function BasicDemo() {
|
|
|
78083
77980
|
}
|
|
78084
77981
|
```
|
|
78085
77982
|
|
|
77983
|
+
### Standalone
|
|
77984
|
+
|
|
77985
|
+
`Tooltip.Manager` only coordinates a group of tooltips, so moving between adjacent ones skips the open delay. A single tooltip doesn't need it, wrap just the `Tooltip.Root` and its `openDelay` is honored on its own.
|
|
77986
|
+
|
|
77987
|
+
```tsx
|
|
77988
|
+
import { Button } from '@primereact/ui/button';
|
|
77989
|
+
import { Tooltip } from '@primereact/ui/tooltip';
|
|
77990
|
+
|
|
77991
|
+
export default function StandaloneDemo() {
|
|
77992
|
+
return (
|
|
77993
|
+
<div className="flex items-center justify-center gap-4">
|
|
77994
|
+
{/* No Tooltip.Manager wrapper — each Tooltip.Root works on its own */}
|
|
77995
|
+
<Tooltip.Root>
|
|
77996
|
+
<Tooltip.Trigger as={Button} variant="outlined" severity="secondary">
|
|
77997
|
+
Default delays
|
|
77998
|
+
</Tooltip.Trigger>
|
|
77999
|
+
<Tooltip.Portal>
|
|
78000
|
+
<Tooltip.Positioner sideOffset={8}>
|
|
78001
|
+
<Tooltip.Popup>
|
|
78002
|
+
<Tooltip.Arrow />
|
|
78003
|
+
<div className="font-semibold text-sm">No manager needed</div>
|
|
78004
|
+
<div className="opacity-75 text-sm mt-1">Used standalone, without a Tooltip.Manager.</div>
|
|
78005
|
+
</Tooltip.Popup>
|
|
78006
|
+
</Tooltip.Positioner>
|
|
78007
|
+
</Tooltip.Portal>
|
|
78008
|
+
</Tooltip.Root>
|
|
78009
|
+
|
|
78010
|
+
<Tooltip.Root openDelay={1200} closeDelay={800}>
|
|
78011
|
+
<Tooltip.Trigger as={Button} variant="outlined" severity="secondary">
|
|
78012
|
+
1200ms open · 800ms close
|
|
78013
|
+
</Tooltip.Trigger>
|
|
78014
|
+
<Tooltip.Portal>
|
|
78015
|
+
<Tooltip.Positioner sideOffset={8}>
|
|
78016
|
+
<Tooltip.Popup>
|
|
78017
|
+
<Tooltip.Arrow />
|
|
78018
|
+
<div className="font-semibold text-sm">Independent timing</div>
|
|
78019
|
+
<div className="opacity-75 text-sm mt-1">Waits 1200ms to open, lingers 800ms after you leave.</div>
|
|
78020
|
+
</Tooltip.Popup>
|
|
78021
|
+
</Tooltip.Positioner>
|
|
78022
|
+
</Tooltip.Portal>
|
|
78023
|
+
</Tooltip.Root>
|
|
78024
|
+
</div>
|
|
78025
|
+
);
|
|
78026
|
+
}
|
|
78027
|
+
```
|
|
78028
|
+
|
|
78086
78029
|
### Arrow
|
|
78087
78030
|
|
|
78088
78031
|
Use `Tooltip.Arrow` to display an arrow on the tooltip.
|
|
@@ -92509,7 +92452,6 @@ import {
|
|
|
92509
92452
|
import { Tag } from '@/components/ui/tag';
|
|
92510
92453
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
92511
92454
|
import { Database } from '@primeicons/react/database';
|
|
92512
|
-
import Image from 'next/image';
|
|
92513
92455
|
import * as React from 'react';
|
|
92514
92456
|
|
|
92515
92457
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -92557,7 +92499,7 @@ export default function Preview() {
|
|
|
92557
92499
|
<DataTableRow key={item.id}>
|
|
92558
92500
|
<DataTableCell>
|
|
92559
92501
|
<div className="flex items-center gap-3">
|
|
92560
|
-
<
|
|
92502
|
+
<img
|
|
92561
92503
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
92562
92504
|
alt={item.name}
|
|
92563
92505
|
width={48}
|
|
@@ -92694,7 +92636,6 @@ import {
|
|
|
92694
92636
|
} from '@/components/ui/datatable';
|
|
92695
92637
|
import { Tag } from '@/components/ui/tag';
|
|
92696
92638
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
92697
|
-
import Image from 'next/image';
|
|
92698
92639
|
import * as React from 'react';
|
|
92699
92640
|
|
|
92700
92641
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -92742,7 +92683,7 @@ export default function BasicDemo() {
|
|
|
92742
92683
|
<DataTableRow key={item.id}>
|
|
92743
92684
|
<DataTableCell>
|
|
92744
92685
|
<div className="flex items-center gap-3">
|
|
92745
|
-
<
|
|
92686
|
+
<img
|
|
92746
92687
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
92747
92688
|
alt={item.name}
|
|
92748
92689
|
width={40}
|
|
@@ -92885,7 +92826,6 @@ One row at a time. Clicking a different row replaces the previous selection.
|
|
|
92885
92826
|
|
|
92886
92827
|
```tsx
|
|
92887
92828
|
'use client';
|
|
92888
|
-
import Image from 'next/image';
|
|
92889
92829
|
import { Database } from '@primeicons/react/database';
|
|
92890
92830
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
92891
92831
|
import type { DataTableSelectionEvent } from 'primereact/datatable';
|
|
@@ -92960,7 +92900,7 @@ export default function SingleSelectionDemo() {
|
|
|
92960
92900
|
<DataTableRow key={item.id}>
|
|
92961
92901
|
<DataTableCell>
|
|
92962
92902
|
<div className="flex items-center gap-3">
|
|
92963
|
-
<
|
|
92903
|
+
<img
|
|
92964
92904
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
92965
92905
|
alt={item.name}
|
|
92966
92906
|
width={40}
|
|
@@ -93020,7 +92960,6 @@ Multiple rows without a dedicated column. Pair with `metaKeySelection` so Ctrl/C
|
|
|
93020
92960
|
|
|
93021
92961
|
```tsx
|
|
93022
92962
|
'use client';
|
|
93023
|
-
import Image from 'next/image';
|
|
93024
92963
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
93025
92964
|
import { ShoppingCart } from '@primeicons/react/shopping-cart';
|
|
93026
92965
|
import { Database } from '@primeicons/react/database';
|
|
@@ -93131,7 +93070,7 @@ export default function MultipleSelectionDemo() {
|
|
|
93131
93070
|
<DataTableRow key={item.id}>
|
|
93132
93071
|
<DataTableCell>
|
|
93133
93072
|
<div className="flex items-center gap-3">
|
|
93134
|
-
<
|
|
93073
|
+
<img
|
|
93135
93074
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
93136
93075
|
alt={item.name}
|
|
93137
93076
|
width={40}
|
|
@@ -93315,7 +93254,6 @@ Arrow Up/Down moves focus between rows, Space or Enter toggles the focused row,
|
|
|
93315
93254
|
|
|
93316
93255
|
```tsx
|
|
93317
93256
|
'use client';
|
|
93318
|
-
import Image from 'next/image';
|
|
93319
93257
|
import { Database } from '@primeicons/react/database';
|
|
93320
93258
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
93321
93259
|
import type { DataTableSelectionEvent } from 'primereact/datatable';
|
|
@@ -93407,7 +93345,7 @@ export default function KeyboardDemo() {
|
|
|
93407
93345
|
<DataTableRow key={item.id}>
|
|
93408
93346
|
<DataTableCell>
|
|
93409
93347
|
<div className="flex items-center gap-3">
|
|
93410
|
-
<
|
|
93348
|
+
<img
|
|
93411
93349
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
93412
93350
|
alt={item.name}
|
|
93413
93351
|
width={36}
|
|
@@ -93493,7 +93431,6 @@ import { SortAlt } from '@primeicons/react/sort-alt';
|
|
|
93493
93431
|
import { SortAmountDown } from '@primeicons/react/sort-amount-down';
|
|
93494
93432
|
import { SortAmountUpAlt } from '@primeicons/react/sort-amount-up-alt';
|
|
93495
93433
|
import type { DataTableSortOrderInstance } from 'primereact/datatable';
|
|
93496
|
-
import Image from 'next/image';
|
|
93497
93434
|
import * as React from 'react';
|
|
93498
93435
|
|
|
93499
93436
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -93580,7 +93517,7 @@ export default function SortDemo() {
|
|
|
93580
93517
|
<DataTableRow key={item.id}>
|
|
93581
93518
|
<DataTableCell>
|
|
93582
93519
|
<div className="flex items-center gap-3">
|
|
93583
|
-
<
|
|
93520
|
+
<img
|
|
93584
93521
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
93585
93522
|
alt={item.name}
|
|
93586
93523
|
width={40}
|
|
@@ -93640,7 +93577,6 @@ Hold Ctrl/Cmd and click multiple column headers to sort by several fields at onc
|
|
|
93640
93577
|
|
|
93641
93578
|
```tsx
|
|
93642
93579
|
'use client';
|
|
93643
|
-
import Image from 'next/image';
|
|
93644
93580
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
93645
93581
|
import type { DataTableSortOrderInstance } from 'primereact/datatable';
|
|
93646
93582
|
import { SortAlt } from '@primeicons/react/sort-alt';
|
|
@@ -93752,7 +93688,7 @@ export default function MultiSortDemo() {
|
|
|
93752
93688
|
<DataTableRow key={item.id}>
|
|
93753
93689
|
<DataTableCell>
|
|
93754
93690
|
<div className="flex items-center gap-3">
|
|
93755
|
-
<
|
|
93691
|
+
<img
|
|
93756
93692
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
93757
93693
|
alt={item.name}
|
|
93758
93694
|
width={40}
|
|
@@ -93812,7 +93748,6 @@ Apply an initial sort on mount via `defaultSortField` + `defaultSortOrder`.
|
|
|
93812
93748
|
|
|
93813
93749
|
```tsx
|
|
93814
93750
|
'use client';
|
|
93815
|
-
import Image from 'next/image';
|
|
93816
93751
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
93817
93752
|
import type { DataTableSortOrderInstance } from 'primereact/datatable';
|
|
93818
93753
|
import { SortAlt } from '@primeicons/react/sort-alt';
|
|
@@ -93924,7 +93859,7 @@ export default function PresortDemo() {
|
|
|
93924
93859
|
<DataTableRow key={item.id}>
|
|
93925
93860
|
<DataTableCell>
|
|
93926
93861
|
<div className="flex items-center gap-3">
|
|
93927
|
-
<
|
|
93862
|
+
<img
|
|
93928
93863
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
93929
93864
|
alt={item.name}
|
|
93930
93865
|
width={40}
|
|
@@ -94007,7 +93942,6 @@ import {
|
|
|
94007
93942
|
} from '@/components/ui/datatable';
|
|
94008
93943
|
import { OverlayBadge } from '@/components/ui/overlaybadge';
|
|
94009
93944
|
import { Tag } from '@/components/ui/tag';
|
|
94010
|
-
import Image from 'next/image';
|
|
94011
93945
|
import * as React from 'react';
|
|
94012
93946
|
|
|
94013
93947
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -94101,7 +94035,7 @@ export default function PresortMultiDemo() {
|
|
|
94101
94035
|
<DataTableRow key={item.id}>
|
|
94102
94036
|
<DataTableCell>
|
|
94103
94037
|
<div className="flex items-center gap-3">
|
|
94104
|
-
<
|
|
94038
|
+
<img
|
|
94105
94039
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
94106
94040
|
alt={item.name}
|
|
94107
94041
|
width={40}
|
|
@@ -94934,7 +94868,6 @@ import {
|
|
|
94934
94868
|
DataTableTableContainer
|
|
94935
94869
|
} from '@/components/ui/datatable';
|
|
94936
94870
|
import { Tag } from '@/components/ui/tag';
|
|
94937
|
-
import Image from 'next/image';
|
|
94938
94871
|
import * as React from 'react';
|
|
94939
94872
|
|
|
94940
94873
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -94987,7 +94920,7 @@ export default function ResizeDemo() {
|
|
|
94987
94920
|
<DataTableRow key={item.id}>
|
|
94988
94921
|
<DataTableCell>
|
|
94989
94922
|
<div className="flex items-center gap-3">
|
|
94990
|
-
<
|
|
94923
|
+
<img
|
|
94991
94924
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
94992
94925
|
alt={item.name}
|
|
94993
94926
|
width={36}
|
|
@@ -95041,7 +94974,6 @@ Dragging grows or shrinks the whole table; adjacent columns keep their widths.
|
|
|
95041
94974
|
|
|
95042
94975
|
```tsx
|
|
95043
94976
|
'use client';
|
|
95044
|
-
import Image from 'next/image';
|
|
95045
94977
|
import { Database } from '@primeicons/react/database';
|
|
95046
94978
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
95047
94979
|
import {
|
|
@@ -95115,7 +95047,7 @@ export default function ResizeExpandDemo() {
|
|
|
95115
95047
|
<DataTableRow key={item.id}>
|
|
95116
95048
|
<DataTableCell>
|
|
95117
95049
|
<div className="flex items-center gap-3">
|
|
95118
|
-
<
|
|
95050
|
+
<img
|
|
95119
95051
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
95120
95052
|
alt={item.name}
|
|
95121
95053
|
width={36}
|
|
@@ -95172,7 +95104,6 @@ Drag and drop column headers to reorder columns.
|
|
|
95172
95104
|
|
|
95173
95105
|
```tsx
|
|
95174
95106
|
'use client';
|
|
95175
|
-
import Image from 'next/image';
|
|
95176
95107
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
95177
95108
|
import type { DataTableColumnReorderEvent } from 'primereact/datatable';
|
|
95178
95109
|
import { ArrowDown } from '@primeicons/react/arrow-down';
|
|
@@ -95229,7 +95160,7 @@ function renderCell(field: string, item: Product) {
|
|
|
95229
95160
|
case 'name':
|
|
95230
95161
|
return (
|
|
95231
95162
|
<div className="flex items-center gap-3">
|
|
95232
|
-
<
|
|
95163
|
+
<img
|
|
95233
95164
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
95234
95165
|
alt={item.name}
|
|
95235
95166
|
width={36}
|
|
@@ -95338,7 +95269,6 @@ Drag and drop rows to reorder data.
|
|
|
95338
95269
|
|
|
95339
95270
|
```tsx
|
|
95340
95271
|
'use client';
|
|
95341
|
-
import Image from 'next/image';
|
|
95342
95272
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
95343
95273
|
import { Bars } from '@primeicons/react/bars';
|
|
95344
95274
|
import { Database } from '@primeicons/react/database';
|
|
@@ -95416,7 +95346,7 @@ export default function RowReorderDemo() {
|
|
|
95416
95346
|
</DataTableCell>
|
|
95417
95347
|
<DataTableCell>
|
|
95418
95348
|
<div className="flex items-center gap-3">
|
|
95419
|
-
<
|
|
95349
|
+
<img
|
|
95420
95350
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
95421
95351
|
alt={item.name}
|
|
95422
95352
|
width={36}
|
|
@@ -95950,7 +95880,6 @@ import {
|
|
|
95950
95880
|
} from '@/components/ui/datatable';
|
|
95951
95881
|
import { Tag } from '@/components/ui/tag';
|
|
95952
95882
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
95953
|
-
import Image from 'next/image';
|
|
95954
95883
|
import * as React from 'react';
|
|
95955
95884
|
|
|
95956
95885
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -95996,7 +95925,7 @@ export default function TemplateDemo() {
|
|
|
95996
95925
|
<DataTableRow key={item.id}>
|
|
95997
95926
|
<DataTableCell>
|
|
95998
95927
|
<div className="flex items-center gap-3">
|
|
95999
|
-
<
|
|
95928
|
+
<img
|
|
96000
95929
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
96001
95930
|
alt={item.name}
|
|
96002
95931
|
width={40}
|
|
@@ -96037,7 +95966,6 @@ Export table data to CSV with customizable fields and headers.
|
|
|
96037
95966
|
|
|
96038
95967
|
```tsx
|
|
96039
95968
|
'use client';
|
|
96040
|
-
import Image from 'next/image';
|
|
96041
95969
|
import { ProductService, type Product } from '@/shared/services/product.service';
|
|
96042
95970
|
import { FileExport } from '@primeicons/react/file-export';
|
|
96043
95971
|
import { Database } from '@primeicons/react/database';
|
|
@@ -96119,7 +96047,7 @@ export default function ExportDemo() {
|
|
|
96119
96047
|
<DataTableRow key={item.id}>
|
|
96120
96048
|
<DataTableCell>
|
|
96121
96049
|
<div className="flex items-center gap-3">
|
|
96122
|
-
<
|
|
96050
|
+
<img
|
|
96123
96051
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
96124
96052
|
alt={item.name}
|
|
96125
96053
|
width={36}
|
|
@@ -96199,7 +96127,6 @@ import {
|
|
|
96199
96127
|
DataTableTableContainer
|
|
96200
96128
|
} from '@/components/ui/datatable';
|
|
96201
96129
|
import { Tag } from '@/components/ui/tag';
|
|
96202
|
-
import Image from 'next/image';
|
|
96203
96130
|
import * as React from 'react';
|
|
96204
96131
|
|
|
96205
96132
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -96264,7 +96191,7 @@ export default function LoadingOverlayDemo() {
|
|
|
96264
96191
|
<DataTableRow key={item.id}>
|
|
96265
96192
|
<DataTableCell>
|
|
96266
96193
|
<div className="flex items-center gap-3">
|
|
96267
|
-
<
|
|
96194
|
+
<img
|
|
96268
96195
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
96269
96196
|
alt={item.name}
|
|
96270
96197
|
width={40}
|
|
@@ -96327,7 +96254,6 @@ import {
|
|
|
96327
96254
|
} from '@/components/ui/datatable';
|
|
96328
96255
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
96329
96256
|
import { Tag } from '@/components/ui/tag';
|
|
96330
|
-
import Image from 'next/image';
|
|
96331
96257
|
import * as React from 'react';
|
|
96332
96258
|
|
|
96333
96259
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -96418,7 +96344,7 @@ export default function LoadingSkeletonDemo() {
|
|
|
96418
96344
|
<DataTableRow key={item.id}>
|
|
96419
96345
|
<DataTableCell>
|
|
96420
96346
|
<div className="flex items-center gap-3">
|
|
96421
|
-
<
|
|
96347
|
+
<img
|
|
96422
96348
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
96423
96349
|
alt={item.name}
|
|
96424
96350
|
width={40}
|
|
@@ -96561,7 +96487,6 @@ import { DataView, DataViewContent } from '@/components/ui/dataview';
|
|
|
96561
96487
|
import { Tag } from '@/components/ui/tag';
|
|
96562
96488
|
import { ProductService } from '@/shared/services/product.service';
|
|
96563
96489
|
import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
|
|
96564
|
-
import Image from 'next/image';
|
|
96565
96490
|
import * as React from 'react';
|
|
96566
96491
|
|
|
96567
96492
|
interface Product {
|
|
@@ -96611,14 +96536,14 @@ export default function Preview() {
|
|
|
96611
96536
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
96612
96537
|
>
|
|
96613
96538
|
<div className="md:w-40 relative">
|
|
96614
|
-
<
|
|
96539
|
+
<img
|
|
96615
96540
|
className="mx-auto rounded w-full"
|
|
96616
96541
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
96617
96542
|
alt={product.name}
|
|
96618
96543
|
width={160}
|
|
96619
96544
|
height={160}
|
|
96620
96545
|
/>
|
|
96621
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
96546
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
96622
96547
|
{product.inventoryStatus}
|
|
96623
96548
|
</Tag>
|
|
96624
96549
|
</div>
|
|
@@ -96713,7 +96638,6 @@ import { DataView, DataViewContent } from '@/components/ui/dataview';
|
|
|
96713
96638
|
import { Tag } from '@/components/ui/tag';
|
|
96714
96639
|
import { ProductService } from '@/shared/services/product.service';
|
|
96715
96640
|
import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
|
|
96716
|
-
import Image from 'next/image';
|
|
96717
96641
|
import * as React from 'react';
|
|
96718
96642
|
|
|
96719
96643
|
interface Product {
|
|
@@ -96763,14 +96687,14 @@ export default function BasicDemo() {
|
|
|
96763
96687
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
96764
96688
|
>
|
|
96765
96689
|
<div className="md:w-40 relative">
|
|
96766
|
-
<
|
|
96690
|
+
<img
|
|
96767
96691
|
className="mx-auto rounded w-full"
|
|
96768
96692
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
96769
96693
|
alt={product.name}
|
|
96770
96694
|
width={160}
|
|
96771
96695
|
height={160}
|
|
96772
96696
|
/>
|
|
96773
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
96697
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
96774
96698
|
{product.inventoryStatus}
|
|
96775
96699
|
</Tag>
|
|
96776
96700
|
</div>
|
|
@@ -96831,7 +96755,6 @@ import { Paginator, PaginatorFirst, PaginatorLast, PaginatorNext, PaginatorPages
|
|
|
96831
96755
|
import { Tag } from '@/components/ui/tag';
|
|
96832
96756
|
import { ProductService } from '@/shared/services/product.service';
|
|
96833
96757
|
import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
|
|
96834
|
-
import Image from 'next/image';
|
|
96835
96758
|
import { PaginatorRootChangeEvent } from 'primereact/paginator';
|
|
96836
96759
|
import * as React from 'react';
|
|
96837
96760
|
|
|
@@ -96884,14 +96807,14 @@ export default function PaginationDemo() {
|
|
|
96884
96807
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
96885
96808
|
>
|
|
96886
96809
|
<div className="md:w-40 relative">
|
|
96887
|
-
<
|
|
96810
|
+
<img
|
|
96888
96811
|
className="mx-auto rounded w-full"
|
|
96889
96812
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
96890
96813
|
alt={product.name}
|
|
96891
96814
|
width={160}
|
|
96892
96815
|
height={160}
|
|
96893
96816
|
/>
|
|
96894
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
96817
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
96895
96818
|
{product.inventoryStatus}
|
|
96896
96819
|
</Tag>
|
|
96897
96820
|
</div>
|
|
@@ -96967,7 +96890,6 @@ import { ToggleButton } from '@/components/ui/togglebutton';
|
|
|
96967
96890
|
import { ToggleButtonGroup } from '@/components/ui/togglebuttongroup';
|
|
96968
96891
|
import { ProductService } from '@/shared/services/product.service';
|
|
96969
96892
|
import { Heart, ShoppingCart, StarFill } from '@primeicons/react';
|
|
96970
|
-
import Image from 'next/image';
|
|
96971
96893
|
import { ToggleButtonGroupValueChangeEvent } from 'primereact/togglebuttongroup';
|
|
96972
96894
|
import * as React from 'react';
|
|
96973
96895
|
|
|
@@ -97038,14 +96960,14 @@ export default function SortDemo() {
|
|
|
97038
96960
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
97039
96961
|
>
|
|
97040
96962
|
<div className="md:w-40 relative">
|
|
97041
|
-
<
|
|
96963
|
+
<img
|
|
97042
96964
|
className="mx-auto rounded w-full"
|
|
97043
96965
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
97044
96966
|
alt={product.name}
|
|
97045
96967
|
width={160}
|
|
97046
96968
|
height={160}
|
|
97047
96969
|
/>
|
|
97048
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
96970
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
97049
96971
|
{product.inventoryStatus}
|
|
97050
96972
|
</Tag>
|
|
97051
96973
|
</div>
|
|
@@ -97107,7 +97029,6 @@ import { ToggleButton } from '@/components/ui/togglebutton';
|
|
|
97107
97029
|
import { ToggleButtonGroup } from '@/components/ui/togglebuttongroup';
|
|
97108
97030
|
import { ProductService } from '@/shared/services/product.service';
|
|
97109
97031
|
import { Bars, Heart, ShoppingCart, StarFill, Table } from '@primeicons/react';
|
|
97110
|
-
import Image from 'next/image';
|
|
97111
97032
|
import { ToggleButtonGroupValueChangeEvent } from 'primereact/togglebuttongroup';
|
|
97112
97033
|
import * as React from 'react';
|
|
97113
97034
|
|
|
@@ -97157,14 +97078,14 @@ export default function LayoutDemo() {
|
|
|
97157
97078
|
className={`flex flex-col sm:flex-row sm:items-center p-6 gap-4 ${index !== 0 ? 'border-t border-surface-200 dark:border-surface-700' : ''}`}
|
|
97158
97079
|
>
|
|
97159
97080
|
<div className="md:w-40 relative">
|
|
97160
|
-
<
|
|
97081
|
+
<img
|
|
97161
97082
|
className="mx-auto rounded w-full"
|
|
97162
97083
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
97163
97084
|
alt={product.name}
|
|
97164
97085
|
width={160}
|
|
97165
97086
|
height={160}
|
|
97166
97087
|
/>
|
|
97167
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
97088
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
97168
97089
|
{product.inventoryStatus}
|
|
97169
97090
|
</Tag>
|
|
97170
97091
|
</div>
|
|
@@ -97218,14 +97139,14 @@ export default function LayoutDemo() {
|
|
|
97218
97139
|
<div className="p-6 border border-surface-200 dark:border-surface-700 bg-surface-0 dark:bg-surface-900 rounded flex flex-col">
|
|
97219
97140
|
<div className="bg-surface-50 flex justify-center rounded p-4">
|
|
97220
97141
|
<div className="relative mx-auto">
|
|
97221
|
-
<
|
|
97142
|
+
<img
|
|
97222
97143
|
src={`https://primefaces.org/cdn/primevue/images/product/${product.image}`}
|
|
97223
97144
|
alt={product.name}
|
|
97224
97145
|
width={300}
|
|
97225
97146
|
height={200}
|
|
97226
97147
|
className="rounded"
|
|
97227
97148
|
/>
|
|
97228
|
-
<Tag severity={getSeverity(product)} className="absolute top-1 left-1">
|
|
97149
|
+
<Tag severity={getSeverity(product)} className="absolute top-1 left-1 dark:bg-surface-900!">
|
|
97229
97150
|
{product.inventoryStatus}
|
|
97230
97151
|
</Tag>
|
|
97231
97152
|
</div>
|
|
@@ -98533,7 +98454,7 @@ import {
|
|
|
98533
98454
|
} from '@/components/ui/dialog';
|
|
98534
98455
|
import { InputText } from '@/components/ui/inputtext';
|
|
98535
98456
|
import { Label } from '@/components/ui/label';
|
|
98536
|
-
import {
|
|
98457
|
+
import { Times } from '@primeicons/react';
|
|
98537
98458
|
import { DialogRootChangeEvent, DialogRootProps } from 'primereact/dialog';
|
|
98538
98459
|
import * as React from 'react';
|
|
98539
98460
|
|
|
@@ -98551,39 +98472,31 @@ export default function PositionDemo() {
|
|
|
98551
98472
|
<div className="flex flex-wrap justify-center gap-2 mb-2">
|
|
98552
98473
|
<Button onClick={() => openPosition('left')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98553
98474
|
Left
|
|
98554
|
-
<ArrowLeft />
|
|
98555
98475
|
</Button>
|
|
98556
98476
|
<Button onClick={() => openPosition('right')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98557
98477
|
Right
|
|
98558
|
-
<ArrowRight />
|
|
98559
98478
|
</Button>
|
|
98560
98479
|
</div>
|
|
98561
98480
|
<div className="flex flex-wrap justify-center gap-2 mb-2">
|
|
98562
98481
|
<Button onClick={() => openPosition('topleft')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98563
98482
|
TopLeft
|
|
98564
|
-
<ArrowUpLeft />
|
|
98565
98483
|
</Button>
|
|
98566
98484
|
<Button onClick={() => openPosition('top')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98567
98485
|
Top
|
|
98568
|
-
<ArrowUp />
|
|
98569
98486
|
</Button>
|
|
98570
98487
|
<Button onClick={() => openPosition('topright')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98571
98488
|
TopRight
|
|
98572
|
-
<ArrowUpRight />
|
|
98573
98489
|
</Button>
|
|
98574
98490
|
</div>
|
|
98575
98491
|
<div className="flex flex-wrap justify-center gap-2">
|
|
98576
98492
|
<Button onClick={() => openPosition('bottomleft')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98577
98493
|
BottomLeft
|
|
98578
|
-
<ArrowDownLeft />
|
|
98579
98494
|
</Button>
|
|
98580
98495
|
<Button onClick={() => openPosition('bottom')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98581
98496
|
Bottom
|
|
98582
|
-
<ArrowDown />
|
|
98583
98497
|
</Button>
|
|
98584
98498
|
<Button onClick={() => openPosition('bottomright')} severity="secondary" style={{ minWidth: '10rem' }}>
|
|
98585
98499
|
BottomRight
|
|
98586
|
-
<ArrowDownRight />
|
|
98587
98500
|
</Button>
|
|
98588
98501
|
</div>
|
|
98589
98502
|
<Dialog open={open} onOpenChange={(e: DialogRootChangeEvent) => setOpen(e.value as boolean)} position={position}>
|
|
@@ -110849,7 +110762,6 @@ import {
|
|
|
110849
110762
|
SelectValue
|
|
110850
110763
|
} from '@/components/ui/select';
|
|
110851
110764
|
import { Search } from '@primeicons/react';
|
|
110852
|
-
import Image from 'next/image';
|
|
110853
110765
|
import type { SelectValueChangeEvent } from 'primereact/select';
|
|
110854
110766
|
import * as React from 'react';
|
|
110855
110767
|
|
|
@@ -110912,7 +110824,7 @@ export default function FilterDemo() {
|
|
|
110912
110824
|
{filteredCountries.map((country, index) => (
|
|
110913
110825
|
<SelectOption key={country.code} index={index} uKey={country.code}>
|
|
110914
110826
|
<div className="flex items-center gap-2">
|
|
110915
|
-
<
|
|
110827
|
+
<img
|
|
110916
110828
|
alt={country.name}
|
|
110917
110829
|
src="https://primefaces.org/cdn/primevue/images/flag/flag_placeholder.png"
|
|
110918
110830
|
className={`flag flag-${country.code.toLowerCase()} mr-2`}
|
|
@@ -113574,7 +113486,6 @@ import type { ToggleButtonGroupValueChangeEvent } from 'primereact/togglebuttong
|
|
|
113574
113486
|
import { Slider } from '@/components/ui/slider';
|
|
113575
113487
|
import { ToggleButton } from '@/components/ui/togglebutton';
|
|
113576
113488
|
import { ToggleButtonGroup } from '@/components/ui/togglebuttongroup';
|
|
113577
|
-
import Image from 'next/image';
|
|
113578
113489
|
import * as React from 'react';
|
|
113579
113490
|
|
|
113580
113491
|
export default function FilterDemo() {
|
|
@@ -113589,7 +113500,7 @@ export default function FilterDemo() {
|
|
|
113589
113500
|
|
|
113590
113501
|
return (
|
|
113591
113502
|
<div className="flex flex-col items-center justify-center">
|
|
113592
|
-
<
|
|
113503
|
+
<img
|
|
113593
113504
|
alt="user header"
|
|
113594
113505
|
className="w-80 rounded mb-6"
|
|
113595
113506
|
src="https://primefaces.org/cdn/primevue/images/galleria/galleria1.jpg"
|
|
@@ -116850,7 +116761,10 @@ import { Search } from '@primeicons/react';
|
|
|
116850
116761
|
|
|
116851
116762
|
export default function CustomDemo() {
|
|
116852
116763
|
return (
|
|
116853
|
-
<Toolbar
|
|
116764
|
+
<Toolbar
|
|
116765
|
+
className="@container"
|
|
116766
|
+
style={{ borderRadius: '3rem', padding: '0.75rem 1rem 0.75rem 1.5rem', background: 'var(--p-surface-900)', border: 'none' }}
|
|
116767
|
+
>
|
|
116854
116768
|
<ToolbarStart>
|
|
116855
116769
|
<div className="flex items-center gap-1">
|
|
116856
116770
|
<i className="pi pi-prime text-xl" style={{ color: 'var(--p-primary-400)' }} />
|
|
@@ -116858,24 +116772,24 @@ export default function CustomDemo() {
|
|
|
116858
116772
|
Brand
|
|
116859
116773
|
</span>
|
|
116860
116774
|
</div>
|
|
116861
|
-
<div className="ml-6 flex gap-1">
|
|
116862
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
116775
|
+
<div className="ml-6 hidden @min-[620px]:flex gap-1">
|
|
116776
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
116863
116777
|
Products
|
|
116864
116778
|
</Button>
|
|
116865
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
116779
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
116866
116780
|
Solutions
|
|
116867
116781
|
</Button>
|
|
116868
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
116782
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
116869
116783
|
Resources
|
|
116870
116784
|
</Button>
|
|
116871
|
-
<Button variant="text" size="small" className="text-surface-0 hover:bg-surface-700">
|
|
116785
|
+
<Button variant="text" size="small" className="text-surface-0! hover:bg-surface-700!">
|
|
116872
116786
|
Pricing
|
|
116873
116787
|
</Button>
|
|
116874
116788
|
</div>
|
|
116875
116789
|
</ToolbarStart>
|
|
116876
116790
|
<ToolbarEnd>
|
|
116877
116791
|
<div className="flex items-center gap-2">
|
|
116878
|
-
<Button variant="text" size="small" iconOnly aria-label="Search" className="text-surface-0 hover:bg-surface-700">
|
|
116792
|
+
<Button variant="text" size="small" iconOnly aria-label="Search" className="text-surface-0! hover:bg-surface-700!">
|
|
116879
116793
|
<Search />
|
|
116880
116794
|
</Button>
|
|
116881
116795
|
<Button severity="contrast" size="small">
|
|
@@ -117515,7 +117429,6 @@ import { useFilter } from '@primereact/hooks/use-filter';
|
|
|
117515
117429
|
import { IconField } from '@primereact/ui/iconfield';
|
|
117516
117430
|
import { InputText } from '@primereact/ui/inputtext';
|
|
117517
117431
|
import { Tag } from '@primereact/ui/tag';
|
|
117518
|
-
import Image from 'next/image';
|
|
117519
117432
|
import * as React from 'react';
|
|
117520
117433
|
|
|
117521
117434
|
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
@@ -117558,12 +117471,10 @@ export default function BasicDemo() {
|
|
|
117558
117471
|
{filteredData.map((item) => (
|
|
117559
117472
|
<div key={item.id} className="p-3 border border-surface-200 dark:border-surface-700 rounded-md flex items-center gap-3">
|
|
117560
117473
|
<div className="relative shrink-0 w-12 h-12 rounded-md shadow overflow-hidden">
|
|
117561
|
-
<
|
|
117474
|
+
<img
|
|
117562
117475
|
src={`https://primefaces.org/cdn/primevue/images/product/${item.image}`}
|
|
117563
117476
|
alt={item.name}
|
|
117564
|
-
|
|
117565
|
-
sizes="48px"
|
|
117566
|
-
className="object-cover"
|
|
117477
|
+
className="w-full h-full object-cover"
|
|
117567
117478
|
/>
|
|
117568
117479
|
</div>
|
|
117569
117480
|
<div className="flex flex-col gap-1 flex-1 min-w-0">
|
|
@@ -119095,6 +119006,259 @@ Add a `.md` to a page’s URL to display a Markdown version of that page.
|
|
|
119095
119006
|
|
|
119096
119007
|
<Button as="a" href="/docs/overview/llms.md" target="_blank">Open /docs/overview/llms.md</Button>
|
|
119097
119008
|
|
|
119009
|
+
# MCP Server
|
|
119010
|
+
|
|
119011
|
+
Connect AI assistants to PrimeReact component documentation, guides, examples, setup, and API metadata.
|
|
119012
|
+
|
|
119013
|
+
## Introduction
|
|
119014
|
+
|
|
119015
|
+
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) lets AI assistants call external tools. The `@primereact/mcp@11.0.0` package uses those tools to search and read the PrimeReact documentation included with the package.
|
|
119016
|
+
|
|
119017
|
+
- Find components, guides, examples, setup instructions, and hooks.
|
|
119018
|
+
- Read mode-scoped component APIs and documentation sections.
|
|
119019
|
+
- Check component usage against documented properties and callbacks.
|
|
119020
|
+
- Return links to the related PrimeReact documentation when available.
|
|
119021
|
+
|
|
119022
|
+
The server requires Node.js 22 or newer. It is read-only and does not change your project files or PrimeReact configuration.
|
|
119023
|
+
|
|
119024
|
+
## CLI Setup
|
|
119025
|
+
|
|
119026
|
+
The recommended setup is the [PrimeReact Plugin](./plugin). It installs this MCP server together with the PrimeReact skills for implementation, setup, theming, migration, and troubleshooting.
|
|
119027
|
+
|
|
119028
|
+
```bash
|
|
119029
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
119030
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
119031
|
+
```
|
|
119032
|
+
|
|
119033
|
+
Replace `copilot` with `claude`, `codex`, `gemini`, or `cursor` for another supported assistant. Use Manual Setup when you want the MCP server without the plugin skills.
|
|
119034
|
+
|
|
119035
|
+
## Manual Setup
|
|
119036
|
+
|
|
119037
|
+
### Claude Code
|
|
119038
|
+
|
|
119039
|
+
Add the server to your user configuration to use it in every project, or omit `-s user` for the current project only.
|
|
119040
|
+
|
|
119041
|
+
```bash
|
|
119042
|
+
claude mcp add primereact -s user -- npx -y @primereact/mcp@11.0.0
|
|
119043
|
+
```
|
|
119044
|
+
|
|
119045
|
+
See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for client-specific options.
|
|
119046
|
+
|
|
119047
|
+
### VS Code
|
|
119048
|
+
|
|
119049
|
+
Create `.vscode/mcp.json` for project-level setup. To use the server across projects, add the same `servers` entry to your VS Code user MCP configuration.
|
|
119050
|
+
|
|
119051
|
+
```json
|
|
119052
|
+
{
|
|
119053
|
+
"servers": {
|
|
119054
|
+
"primereact": {
|
|
119055
|
+
"command": "npx",
|
|
119056
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
119057
|
+
}
|
|
119058
|
+
}
|
|
119059
|
+
}
|
|
119060
|
+
```
|
|
119061
|
+
|
|
119062
|
+
See the [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details.
|
|
119063
|
+
|
|
119064
|
+
### OpenAI Codex
|
|
119065
|
+
|
|
119066
|
+
Add the server with the Codex CLI, or add the same configuration to `~/.codex/config.toml`.
|
|
119067
|
+
|
|
119068
|
+
```bash
|
|
119069
|
+
codex mcp add primereact -- npx -y @primereact/mcp@11.0.0
|
|
119070
|
+
```
|
|
119071
|
+
|
|
119072
|
+
```toml
|
|
119073
|
+
[mcp_servers.primereact]
|
|
119074
|
+
command = "npx"
|
|
119075
|
+
args = ["-y", "@primereact/mcp@11.0.0"]
|
|
119076
|
+
```
|
|
119077
|
+
|
|
119078
|
+
See the [OpenAI Codex MCP documentation](https://developers.openai.com/codex/mcp/) for more details.
|
|
119079
|
+
|
|
119080
|
+
### Cursor
|
|
119081
|
+
|
|
119082
|
+
Create `.cursor/mcp.json` in your project or `~/.cursor/mcp.json` for global configuration.
|
|
119083
|
+
|
|
119084
|
+
```json
|
|
119085
|
+
{
|
|
119086
|
+
"mcpServers": {
|
|
119087
|
+
"primereact": {
|
|
119088
|
+
"command": "npx",
|
|
119089
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
119090
|
+
}
|
|
119091
|
+
}
|
|
119092
|
+
}
|
|
119093
|
+
```
|
|
119094
|
+
|
|
119095
|
+
See the [Cursor MCP documentation](https://docs.cursor.com/context/model-context-protocol) for more details.
|
|
119096
|
+
|
|
119097
|
+
## Tools
|
|
119098
|
+
|
|
119099
|
+
The PrimeReact MCP server provides eight tools.
|
|
119100
|
+
|
|
119101
|
+
| Tool | Purpose |
|
|
119102
|
+
| ---------------- | ----------------------------------------------------------------------------------------- |
|
|
119103
|
+
| `list` | List available components, guides, examples, resources, or modes. |
|
|
119104
|
+
| `search` | Search generated component, guide, section, API, hook, and example text. |
|
|
119105
|
+
| `get_component` | Read mode-scoped component or hook documentation, API metadata, and available sections. |
|
|
119106
|
+
| `get_guide` | Read a generated PrimeReact guide and its source metadata. |
|
|
119107
|
+
| `get_example` | Return an example from a documented component or hook section. |
|
|
119108
|
+
| `get_setup` | Return setup guidance for a supported PrimeReact mode and environment. |
|
|
119109
|
+
| `validate_usage` | Validate component usage against generated PrimeReact API metadata in one selected mode. |
|
|
119110
|
+
| `version` | Report the server version and the status of its documentation data, tools, and resources. |
|
|
119111
|
+
|
|
119112
|
+
## Data and Validation
|
|
119113
|
+
|
|
119114
|
+
The MCP package includes a generated copy of the PrimeReact documentation. This keeps the server usable without a PrimeReact source checkout and makes its answers match the installed package version. Results include a `primeui://primereact` resource URI and, when available, a link to the public documentation.
|
|
119115
|
+
|
|
119116
|
+
- The tools do not edit files, install dependencies, or update configuration.
|
|
119117
|
+
- Component, setup, example, and validation calls stay in one selected mode: `styled`, `tailwind`, `primitive`, `headless`, or `hooks` where supported.
|
|
119118
|
+
- `validate_usage` checks documented API metadata. If the required metadata is unavailable or the mode is ambiguous, it reports that limitation instead of guessing.
|
|
119119
|
+
- Run your project type checks, tests, and browser checks after making changes. MCP validation does not replace them.
|
|
119120
|
+
|
|
119121
|
+
If you installed the PrimeReact Plugin, do not register the MCP server again with a manual configuration. Run the CLI `doctor` command if the server is missing or appears more than once.
|
|
119122
|
+
|
|
119123
|
+
# Plugin
|
|
119124
|
+
|
|
119125
|
+
Install PrimeReact workflow skills and the PrimeReact MCP server in a supported AI assistant.
|
|
119126
|
+
|
|
119127
|
+
## Introduction
|
|
119128
|
+
|
|
119129
|
+
The PrimeReact Plugin adds PrimeReact skills and the PrimeReact MCP server to Claude Code, Codex, GitHub Copilot, Cursor, or Gemini CLI. Plugins installed through GitHub Copilot CLI are also available in VS Code. Install the plugin when you want the assistant to follow PrimeReact-specific, mode-aware workflows as well as read the current component documentation.
|
|
119130
|
+
|
|
119131
|
+
The plugin is published from the [primefaces/primeui-plugins](https://github.com/primefaces/primeui-plugins) repository. Use `@primeui/cli@1.0.0` for the same installation flow across supported assistants, or follow the manual setup for your client.
|
|
119132
|
+
|
|
119133
|
+
## What It Installs
|
|
119134
|
+
|
|
119135
|
+
Installing the PrimeReact Plugin adds:
|
|
119136
|
+
|
|
119137
|
+
- Seven skills for PrimeReact implementation, setup, theming, accessibility, migration, and troubleshooting.
|
|
119138
|
+
- The PrimeReact MCP server, configured with `@primereact/mcp@11.0.0`.
|
|
119139
|
+
- The manifest required by the selected assistant.
|
|
119140
|
+
|
|
119141
|
+
PrimeVue and PrimeNG are separate plugins. Installing this plugin does not change your application or install PrimeReact dependencies in the project.
|
|
119142
|
+
|
|
119143
|
+
## Skills
|
|
119144
|
+
|
|
119145
|
+
Each skill covers one type of PrimeReact work. The skills use `@primereact/mcp@11.0.0` when they need mode-scoped component APIs, examples, setup guides, hooks, or usage validation.
|
|
119146
|
+
|
|
119147
|
+
| Skill | Use it for |
|
|
119148
|
+
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119149
|
+
| `primereact-router` | Select the PrimeReact mode and choose the skill that matches the task. |
|
|
119150
|
+
| `primereact-component-implementation` | Choose and implement components, composition, properties, callbacks, and documented hooks. |
|
|
119151
|
+
| `primereact-setup-installation` | Configure a supported React environment in `styled`, `tailwind`, `primitive`, or `headless` mode. |
|
|
119152
|
+
| `primereact-theming-customization` | Work with styled presets and tokens, Tailwind-owned components, primitives, headless markup, or pass-through APIs without mixing modes. |
|
|
119153
|
+
| `primereact-accessibility-icons` | Review semantics, keyboard behavior, focus, accessible names, PrimeIcons, and custom icons in the selected mode. |
|
|
119154
|
+
| `primereact-migration` | Plan and apply source-backed version or mode changes using current PrimeReact guides. |
|
|
119155
|
+
| `primereact-audit-troubleshooting` | Find invalid APIs and troubleshoot components, setup, MCP, plugin, or duplicate configurations. |
|
|
119156
|
+
|
|
119157
|
+
Skill names use the `primereact-` prefix because assistants may keep skills from several plugins in one shared namespace.
|
|
119158
|
+
|
|
119159
|
+
## How Skills Work
|
|
119160
|
+
|
|
119161
|
+
You do not need to select a skill manually. Describe the PrimeReact task and the router chooses the relevant workflow.
|
|
119162
|
+
|
|
119163
|
+
- The router checks that the project uses React and PrimeReact, then selects `styled`, `tailwind`, `primitive`, or `headless` from project evidence. It uses `hooks` only for a documented standalone hook.
|
|
119164
|
+
- The selected skill reads only the component or guide information needed for that mode.
|
|
119165
|
+
- When component metadata is available, the skill validates the final PrimeReact usage in the same mode.
|
|
119166
|
+
- If project evidence is ambiguous or the documentation does not confirm an API, the skill reports the limitation instead of borrowing guidance from another mode.
|
|
119167
|
+
|
|
119168
|
+
After implementation, run the checks required by your project, including type checking, tests, browser behavior, accessibility, and visual review where applicable.
|
|
119169
|
+
|
|
119170
|
+
## CLI Setup
|
|
119171
|
+
|
|
119172
|
+
Set `--tool` to the assistant you use. Keep `--library primereact` when you run the command outside a project or from a project that uses more than one PrimeUI library.
|
|
119173
|
+
|
|
119174
|
+
```bash
|
|
119175
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
119176
|
+
```
|
|
119177
|
+
|
|
119178
|
+
Supported tool values are `claude`, `codex`, `copilot`, `cursor`, and `gemini`. Use `copilot` for GitHub Copilot CLI and VS Code.
|
|
119179
|
+
|
|
119180
|
+
## Lifecycle and Doctor
|
|
119181
|
+
|
|
119182
|
+
Use the same CLI to check the installation, update the plugin, or remove it. Each command applies only to PrimeReact in the selected assistant.
|
|
119183
|
+
|
|
119184
|
+
```bash
|
|
119185
|
+
pnpm dlx @primeui/cli@1.0.0 plugin status --tool copilot --library primereact
|
|
119186
|
+
pnpm dlx @primeui/cli@1.0.0 plugin update --tool copilot --library primereact
|
|
119187
|
+
pnpm dlx @primeui/cli@1.0.0 plugin remove --tool copilot --library primereact
|
|
119188
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
119189
|
+
|
|
119190
|
+
# Machine-readable diagnostics
|
|
119191
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact --json
|
|
119192
|
+
```
|
|
119193
|
+
|
|
119194
|
+
Run `doctor` when the plugin or MCP server is not working as expected. It checks the installation, starts the MCP server, confirms the available tools, and tests documentation retrieval and component validation. Checks that an assistant does not expose are reported as unsupported.
|
|
119195
|
+
|
|
119196
|
+
## Manual Setup
|
|
119197
|
+
|
|
119198
|
+
### Source
|
|
119199
|
+
|
|
119200
|
+
Claude Code, Codex, and GitHub Copilot can install the plugin directly from the public marketplace. For manual Cursor or Gemini CLI setup, clone the repository to a location you intend to keep because those clients use the selected `plugins/primereact` directory after installation.
|
|
119201
|
+
|
|
119202
|
+
```bash
|
|
119203
|
+
git clone --branch main https://github.com/primefaces/primeui-plugins.git ~/primeui-plugins
|
|
119204
|
+
ls ~/primeui-plugins/plugins/primereact
|
|
119205
|
+
```
|
|
119206
|
+
|
|
119207
|
+
### Claude Code
|
|
119208
|
+
|
|
119209
|
+
Add the PrimeUI marketplace, then install only the PrimeReact plugin.
|
|
119210
|
+
|
|
119211
|
+
```bash
|
|
119212
|
+
claude plugin marketplace add primefaces/primeui-plugins
|
|
119213
|
+
claude plugin install primereact@primeui
|
|
119214
|
+
claude plugin list --json
|
|
119215
|
+
```
|
|
119216
|
+
|
|
119217
|
+
### Codex
|
|
119218
|
+
|
|
119219
|
+
Add the PrimeUI marketplace, inspect its catalog, then install only the PrimeReact plugin. Use the interactive plugin browser to manage enablement.
|
|
119220
|
+
|
|
119221
|
+
```bash
|
|
119222
|
+
codex plugin marketplace add primefaces/primeui-plugins
|
|
119223
|
+
codex plugin list --available
|
|
119224
|
+
codex plugin add primereact@primeui
|
|
119225
|
+
codex plugin list
|
|
119226
|
+
```
|
|
119227
|
+
|
|
119228
|
+
### VS Code Copilot
|
|
119229
|
+
|
|
119230
|
+
Install the PrimeReact Plugin through GitHub Copilot CLI. VS Code automatically discovers plugins installed by Copilot CLI, so it does not need a separate plugin configuration.
|
|
119231
|
+
|
|
119232
|
+
```bash
|
|
119233
|
+
copilot plugin marketplace add primefaces/primeui-plugins
|
|
119234
|
+
copilot plugin install primereact@primeui
|
|
119235
|
+
```
|
|
119236
|
+
|
|
119237
|
+
The installation includes the seven PrimeReact skills and the PrimeReact MCP server. See the [VS Code Agent Plugins](https://code.visualstudio.com/docs/agent-customization/agent-plugins) and [GitHub Copilot CLI Plugins](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing) documentation for client-specific details.
|
|
119238
|
+
|
|
119239
|
+
### Cursor
|
|
119240
|
+
|
|
119241
|
+
For local setup, link the PrimeReact plugin directory into Cursor's local-plugin directory. Restart Cursor or run `Developer: Reload Window` after creating the link.
|
|
119242
|
+
|
|
119243
|
+
```bash
|
|
119244
|
+
mkdir -p ~/.cursor/plugins/local
|
|
119245
|
+
ln -s ~/primeui-plugins/plugins/primereact ~/.cursor/plugins/local/primereact
|
|
119246
|
+
```
|
|
119247
|
+
|
|
119248
|
+
Use Cursor's Customize screen to manage the plugin, its skills, and its MCP server.
|
|
119249
|
+
|
|
119250
|
+
### Gemini CLI
|
|
119251
|
+
|
|
119252
|
+
Validate the PrimeReact extension directory, then install it from the persistent checkout. Do not install from the repository root because it contains plugins for all three PrimeUI libraries.
|
|
119253
|
+
|
|
119254
|
+
```bash
|
|
119255
|
+
gemini extensions validate ~/primeui-plugins/plugins/primereact
|
|
119256
|
+
gemini extensions install ~/primeui-plugins/plugins/primereact --consent
|
|
119257
|
+
gemini extensions list --output-format json
|
|
119258
|
+
```
|
|
119259
|
+
|
|
119260
|
+
Gemini CLI 0.29.3 requires `experimental.extensionManagement` to be enabled. The installed extension contains the seven PrimeReact skills and the PrimeReact MCP server.
|
|
119261
|
+
|
|
119098
119262
|
# Installation
|
|
119099
119263
|
|
|
119100
119264
|
Install PrimeReact's headless hooks and build fully custom components in your React project.
|
|
@@ -119113,7 +119277,7 @@ Headless hooks give you the behavior — state, keyboard navigation, focus and a
|
|
|
119113
119277
|
Install the headless package using your favorite package manager:
|
|
119114
119278
|
|
|
119115
119279
|
```bash
|
|
119116
|
-
npm install @primereact/headless
|
|
119280
|
+
npm install @primereact/headless
|
|
119117
119281
|
```
|
|
119118
119282
|
|
|
119119
119283
|
</DocStep>
|
|
@@ -119647,6 +119811,259 @@ Add a `.md` to a page’s URL to display a Markdown version of that page.
|
|
|
119647
119811
|
|
|
119648
119812
|
<Button as="a" href="/docs/overview/llms.md" target="_blank">Open /docs/overview/llms.md</Button>
|
|
119649
119813
|
|
|
119814
|
+
# MCP Server
|
|
119815
|
+
|
|
119816
|
+
Connect AI assistants to PrimeReact component documentation, guides, examples, setup, and API metadata.
|
|
119817
|
+
|
|
119818
|
+
## Introduction
|
|
119819
|
+
|
|
119820
|
+
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) lets AI assistants call external tools. The `@primereact/mcp@11.0.0` package uses those tools to search and read the PrimeReact documentation included with the package.
|
|
119821
|
+
|
|
119822
|
+
- Find components, guides, examples, setup instructions, and hooks.
|
|
119823
|
+
- Read mode-scoped component APIs and documentation sections.
|
|
119824
|
+
- Check component usage against documented properties and callbacks.
|
|
119825
|
+
- Return links to the related PrimeReact documentation when available.
|
|
119826
|
+
|
|
119827
|
+
The server requires Node.js 22 or newer. It is read-only and does not change your project files or PrimeReact configuration.
|
|
119828
|
+
|
|
119829
|
+
## CLI Setup
|
|
119830
|
+
|
|
119831
|
+
The recommended setup is the [PrimeReact Plugin](./plugin). It installs this MCP server together with the PrimeReact skills for implementation, setup, theming, migration, and troubleshooting.
|
|
119832
|
+
|
|
119833
|
+
```bash
|
|
119834
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
119835
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
119836
|
+
```
|
|
119837
|
+
|
|
119838
|
+
Replace `copilot` with `claude`, `codex`, `gemini`, or `cursor` for another supported assistant. Use Manual Setup when you want the MCP server without the plugin skills.
|
|
119839
|
+
|
|
119840
|
+
## Manual Setup
|
|
119841
|
+
|
|
119842
|
+
### Claude Code
|
|
119843
|
+
|
|
119844
|
+
Add the server to your user configuration to use it in every project, or omit `-s user` for the current project only.
|
|
119845
|
+
|
|
119846
|
+
```bash
|
|
119847
|
+
claude mcp add primereact -s user -- npx -y @primereact/mcp@11.0.0
|
|
119848
|
+
```
|
|
119849
|
+
|
|
119850
|
+
See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for client-specific options.
|
|
119851
|
+
|
|
119852
|
+
### VS Code
|
|
119853
|
+
|
|
119854
|
+
Create `.vscode/mcp.json` for project-level setup. To use the server across projects, add the same `servers` entry to your VS Code user MCP configuration.
|
|
119855
|
+
|
|
119856
|
+
```json
|
|
119857
|
+
{
|
|
119858
|
+
"servers": {
|
|
119859
|
+
"primereact": {
|
|
119860
|
+
"command": "npx",
|
|
119861
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
119862
|
+
}
|
|
119863
|
+
}
|
|
119864
|
+
}
|
|
119865
|
+
```
|
|
119866
|
+
|
|
119867
|
+
See the [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details.
|
|
119868
|
+
|
|
119869
|
+
### OpenAI Codex
|
|
119870
|
+
|
|
119871
|
+
Add the server with the Codex CLI, or add the same configuration to `~/.codex/config.toml`.
|
|
119872
|
+
|
|
119873
|
+
```bash
|
|
119874
|
+
codex mcp add primereact -- npx -y @primereact/mcp@11.0.0
|
|
119875
|
+
```
|
|
119876
|
+
|
|
119877
|
+
```toml
|
|
119878
|
+
[mcp_servers.primereact]
|
|
119879
|
+
command = "npx"
|
|
119880
|
+
args = ["-y", "@primereact/mcp@11.0.0"]
|
|
119881
|
+
```
|
|
119882
|
+
|
|
119883
|
+
See the [OpenAI Codex MCP documentation](https://developers.openai.com/codex/mcp/) for more details.
|
|
119884
|
+
|
|
119885
|
+
### Cursor
|
|
119886
|
+
|
|
119887
|
+
Create `.cursor/mcp.json` in your project or `~/.cursor/mcp.json` for global configuration.
|
|
119888
|
+
|
|
119889
|
+
```json
|
|
119890
|
+
{
|
|
119891
|
+
"mcpServers": {
|
|
119892
|
+
"primereact": {
|
|
119893
|
+
"command": "npx",
|
|
119894
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
119895
|
+
}
|
|
119896
|
+
}
|
|
119897
|
+
}
|
|
119898
|
+
```
|
|
119899
|
+
|
|
119900
|
+
See the [Cursor MCP documentation](https://docs.cursor.com/context/model-context-protocol) for more details.
|
|
119901
|
+
|
|
119902
|
+
## Tools
|
|
119903
|
+
|
|
119904
|
+
The PrimeReact MCP server provides eight tools.
|
|
119905
|
+
|
|
119906
|
+
| Tool | Purpose |
|
|
119907
|
+
| ---------------- | ----------------------------------------------------------------------------------------- |
|
|
119908
|
+
| `list` | List available components, guides, examples, resources, or modes. |
|
|
119909
|
+
| `search` | Search generated component, guide, section, API, hook, and example text. |
|
|
119910
|
+
| `get_component` | Read mode-scoped component or hook documentation, API metadata, and available sections. |
|
|
119911
|
+
| `get_guide` | Read a generated PrimeReact guide and its source metadata. |
|
|
119912
|
+
| `get_example` | Return an example from a documented component or hook section. |
|
|
119913
|
+
| `get_setup` | Return setup guidance for a supported PrimeReact mode and environment. |
|
|
119914
|
+
| `validate_usage` | Validate component usage against generated PrimeReact API metadata in one selected mode. |
|
|
119915
|
+
| `version` | Report the server version and the status of its documentation data, tools, and resources. |
|
|
119916
|
+
|
|
119917
|
+
## Data and Validation
|
|
119918
|
+
|
|
119919
|
+
The MCP package includes a generated copy of the PrimeReact documentation. This keeps the server usable without a PrimeReact source checkout and makes its answers match the installed package version. Results include a `primeui://primereact` resource URI and, when available, a link to the public documentation.
|
|
119920
|
+
|
|
119921
|
+
- The tools do not edit files, install dependencies, or update configuration.
|
|
119922
|
+
- Component, setup, example, and validation calls stay in one selected mode: `styled`, `tailwind`, `primitive`, `headless`, or `hooks` where supported.
|
|
119923
|
+
- `validate_usage` checks documented API metadata. If the required metadata is unavailable or the mode is ambiguous, it reports that limitation instead of guessing.
|
|
119924
|
+
- Run your project type checks, tests, and browser checks after making changes. MCP validation does not replace them.
|
|
119925
|
+
|
|
119926
|
+
If you installed the PrimeReact Plugin, do not register the MCP server again with a manual configuration. Run the CLI `doctor` command if the server is missing or appears more than once.
|
|
119927
|
+
|
|
119928
|
+
# Plugin
|
|
119929
|
+
|
|
119930
|
+
Install PrimeReact workflow skills and the PrimeReact MCP server in a supported AI assistant.
|
|
119931
|
+
|
|
119932
|
+
## Introduction
|
|
119933
|
+
|
|
119934
|
+
The PrimeReact Plugin adds PrimeReact skills and the PrimeReact MCP server to Claude Code, Codex, GitHub Copilot, Cursor, or Gemini CLI. Plugins installed through GitHub Copilot CLI are also available in VS Code. Install the plugin when you want the assistant to follow PrimeReact-specific, mode-aware workflows as well as read the current component documentation.
|
|
119935
|
+
|
|
119936
|
+
The plugin is published from the [primefaces/primeui-plugins](https://github.com/primefaces/primeui-plugins) repository. Use `@primeui/cli@1.0.0` for the same installation flow across supported assistants, or follow the manual setup for your client.
|
|
119937
|
+
|
|
119938
|
+
## What It Installs
|
|
119939
|
+
|
|
119940
|
+
Installing the PrimeReact Plugin adds:
|
|
119941
|
+
|
|
119942
|
+
- Seven skills for PrimeReact implementation, setup, theming, accessibility, migration, and troubleshooting.
|
|
119943
|
+
- The PrimeReact MCP server, configured with `@primereact/mcp@11.0.0`.
|
|
119944
|
+
- The manifest required by the selected assistant.
|
|
119945
|
+
|
|
119946
|
+
PrimeVue and PrimeNG are separate plugins. Installing this plugin does not change your application or install PrimeReact dependencies in the project.
|
|
119947
|
+
|
|
119948
|
+
## Skills
|
|
119949
|
+
|
|
119950
|
+
Each skill covers one type of PrimeReact work. The skills use `@primereact/mcp@11.0.0` when they need mode-scoped component APIs, examples, setup guides, hooks, or usage validation.
|
|
119951
|
+
|
|
119952
|
+
| Skill | Use it for |
|
|
119953
|
+
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119954
|
+
| `primereact-router` | Select the PrimeReact mode and choose the skill that matches the task. |
|
|
119955
|
+
| `primereact-component-implementation` | Choose and implement components, composition, properties, callbacks, and documented hooks. |
|
|
119956
|
+
| `primereact-setup-installation` | Configure a supported React environment in `styled`, `tailwind`, `primitive`, or `headless` mode. |
|
|
119957
|
+
| `primereact-theming-customization` | Work with styled presets and tokens, Tailwind-owned components, primitives, headless markup, or pass-through APIs without mixing modes. |
|
|
119958
|
+
| `primereact-accessibility-icons` | Review semantics, keyboard behavior, focus, accessible names, PrimeIcons, and custom icons in the selected mode. |
|
|
119959
|
+
| `primereact-migration` | Plan and apply source-backed version or mode changes using current PrimeReact guides. |
|
|
119960
|
+
| `primereact-audit-troubleshooting` | Find invalid APIs and troubleshoot components, setup, MCP, plugin, or duplicate configurations. |
|
|
119961
|
+
|
|
119962
|
+
Skill names use the `primereact-` prefix because assistants may keep skills from several plugins in one shared namespace.
|
|
119963
|
+
|
|
119964
|
+
## How Skills Work
|
|
119965
|
+
|
|
119966
|
+
You do not need to select a skill manually. Describe the PrimeReact task and the router chooses the relevant workflow.
|
|
119967
|
+
|
|
119968
|
+
- The router checks that the project uses React and PrimeReact, then selects `styled`, `tailwind`, `primitive`, or `headless` from project evidence. It uses `hooks` only for a documented standalone hook.
|
|
119969
|
+
- The selected skill reads only the component or guide information needed for that mode.
|
|
119970
|
+
- When component metadata is available, the skill validates the final PrimeReact usage in the same mode.
|
|
119971
|
+
- If project evidence is ambiguous or the documentation does not confirm an API, the skill reports the limitation instead of borrowing guidance from another mode.
|
|
119972
|
+
|
|
119973
|
+
After implementation, run the checks required by your project, including type checking, tests, browser behavior, accessibility, and visual review where applicable.
|
|
119974
|
+
|
|
119975
|
+
## CLI Setup
|
|
119976
|
+
|
|
119977
|
+
Set `--tool` to the assistant you use. Keep `--library primereact` when you run the command outside a project or from a project that uses more than one PrimeUI library.
|
|
119978
|
+
|
|
119979
|
+
```bash
|
|
119980
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
119981
|
+
```
|
|
119982
|
+
|
|
119983
|
+
Supported tool values are `claude`, `codex`, `copilot`, `cursor`, and `gemini`. Use `copilot` for GitHub Copilot CLI and VS Code.
|
|
119984
|
+
|
|
119985
|
+
## Lifecycle and Doctor
|
|
119986
|
+
|
|
119987
|
+
Use the same CLI to check the installation, update the plugin, or remove it. Each command applies only to PrimeReact in the selected assistant.
|
|
119988
|
+
|
|
119989
|
+
```bash
|
|
119990
|
+
pnpm dlx @primeui/cli@1.0.0 plugin status --tool copilot --library primereact
|
|
119991
|
+
pnpm dlx @primeui/cli@1.0.0 plugin update --tool copilot --library primereact
|
|
119992
|
+
pnpm dlx @primeui/cli@1.0.0 plugin remove --tool copilot --library primereact
|
|
119993
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
119994
|
+
|
|
119995
|
+
# Machine-readable diagnostics
|
|
119996
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact --json
|
|
119997
|
+
```
|
|
119998
|
+
|
|
119999
|
+
Run `doctor` when the plugin or MCP server is not working as expected. It checks the installation, starts the MCP server, confirms the available tools, and tests documentation retrieval and component validation. Checks that an assistant does not expose are reported as unsupported.
|
|
120000
|
+
|
|
120001
|
+
## Manual Setup
|
|
120002
|
+
|
|
120003
|
+
### Source
|
|
120004
|
+
|
|
120005
|
+
Claude Code, Codex, and GitHub Copilot can install the plugin directly from the public marketplace. For manual Cursor or Gemini CLI setup, clone the repository to a location you intend to keep because those clients use the selected `plugins/primereact` directory after installation.
|
|
120006
|
+
|
|
120007
|
+
```bash
|
|
120008
|
+
git clone --branch main https://github.com/primefaces/primeui-plugins.git ~/primeui-plugins
|
|
120009
|
+
ls ~/primeui-plugins/plugins/primereact
|
|
120010
|
+
```
|
|
120011
|
+
|
|
120012
|
+
### Claude Code
|
|
120013
|
+
|
|
120014
|
+
Add the PrimeUI marketplace, then install only the PrimeReact plugin.
|
|
120015
|
+
|
|
120016
|
+
```bash
|
|
120017
|
+
claude plugin marketplace add primefaces/primeui-plugins
|
|
120018
|
+
claude plugin install primereact@primeui
|
|
120019
|
+
claude plugin list --json
|
|
120020
|
+
```
|
|
120021
|
+
|
|
120022
|
+
### Codex
|
|
120023
|
+
|
|
120024
|
+
Add the PrimeUI marketplace, inspect its catalog, then install only the PrimeReact plugin. Use the interactive plugin browser to manage enablement.
|
|
120025
|
+
|
|
120026
|
+
```bash
|
|
120027
|
+
codex plugin marketplace add primefaces/primeui-plugins
|
|
120028
|
+
codex plugin list --available
|
|
120029
|
+
codex plugin add primereact@primeui
|
|
120030
|
+
codex plugin list
|
|
120031
|
+
```
|
|
120032
|
+
|
|
120033
|
+
### VS Code Copilot
|
|
120034
|
+
|
|
120035
|
+
Install the PrimeReact Plugin through GitHub Copilot CLI. VS Code automatically discovers plugins installed by Copilot CLI, so it does not need a separate plugin configuration.
|
|
120036
|
+
|
|
120037
|
+
```bash
|
|
120038
|
+
copilot plugin marketplace add primefaces/primeui-plugins
|
|
120039
|
+
copilot plugin install primereact@primeui
|
|
120040
|
+
```
|
|
120041
|
+
|
|
120042
|
+
The installation includes the seven PrimeReact skills and the PrimeReact MCP server. See the [VS Code Agent Plugins](https://code.visualstudio.com/docs/agent-customization/agent-plugins) and [GitHub Copilot CLI Plugins](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing) documentation for client-specific details.
|
|
120043
|
+
|
|
120044
|
+
### Cursor
|
|
120045
|
+
|
|
120046
|
+
For local setup, link the PrimeReact plugin directory into Cursor's local-plugin directory. Restart Cursor or run `Developer: Reload Window` after creating the link.
|
|
120047
|
+
|
|
120048
|
+
```bash
|
|
120049
|
+
mkdir -p ~/.cursor/plugins/local
|
|
120050
|
+
ln -s ~/primeui-plugins/plugins/primereact ~/.cursor/plugins/local/primereact
|
|
120051
|
+
```
|
|
120052
|
+
|
|
120053
|
+
Use Cursor's Customize screen to manage the plugin, its skills, and its MCP server.
|
|
120054
|
+
|
|
120055
|
+
### Gemini CLI
|
|
120056
|
+
|
|
120057
|
+
Validate the PrimeReact extension directory, then install it from the persistent checkout. Do not install from the repository root because it contains plugins for all three PrimeUI libraries.
|
|
120058
|
+
|
|
120059
|
+
```bash
|
|
120060
|
+
gemini extensions validate ~/primeui-plugins/plugins/primereact
|
|
120061
|
+
gemini extensions install ~/primeui-plugins/plugins/primereact --consent
|
|
120062
|
+
gemini extensions list --output-format json
|
|
120063
|
+
```
|
|
120064
|
+
|
|
120065
|
+
Gemini CLI 0.29.3 requires `experimental.extensionManagement` to be enabled. The installed extension contains the seven PrimeReact skills and the PrimeReact MCP server.
|
|
120066
|
+
|
|
119650
120067
|
# Custom Icons
|
|
119651
120068
|
|
|
119652
120069
|
PrimeReact components can be used with any icon library using the templating features.
|
|
@@ -119792,7 +120209,7 @@ export default function ColorDemo() {
|
|
|
119792
120209
|
|
|
119793
120210
|
## Spin
|
|
119794
120211
|
|
|
119795
|
-
Use a spin animation utility
|
|
120212
|
+
Use the `spin` property to apply a rotation animation to an icon. Alternatively, a spin animation utility such as `animate-spin` from Tailwind can also be used.
|
|
119796
120213
|
|
|
119797
120214
|
```tsx
|
|
119798
120215
|
import { Cog } from '@primeicons/react/cog';
|
|
@@ -119801,8 +120218,8 @@ import { Spinner } from '@primeicons/react/spinner';
|
|
|
119801
120218
|
export default function SpinDemo() {
|
|
119802
120219
|
return (
|
|
119803
120220
|
<div className="flex justify-center gap-4">
|
|
119804
|
-
<Spinner
|
|
119805
|
-
<Cog
|
|
120221
|
+
<Spinner spin size={32} />
|
|
120222
|
+
<Cog spin size={32} />
|
|
119806
120223
|
</div>
|
|
119807
120224
|
);
|
|
119808
120225
|
}
|
|
@@ -119826,7 +120243,7 @@ Primitive components ship **unstyled** — you compose the behavior and bring yo
|
|
|
119826
120243
|
Install PrimeReact using your favorite package manager:
|
|
119827
120244
|
|
|
119828
120245
|
```bash
|
|
119829
|
-
npm install primereact
|
|
120246
|
+
npm install primereact
|
|
119830
120247
|
```
|
|
119831
120248
|
|
|
119832
120249
|
</DocStep>
|
|
@@ -120642,6 +121059,259 @@ Add a `.md` to a page’s URL to display a Markdown version of that page.
|
|
|
120642
121059
|
|
|
120643
121060
|
<Button as="a" href="/docs/overview/llms.md" target="_blank">Open /docs/overview/llms.md</Button>
|
|
120644
121061
|
|
|
121062
|
+
# MCP Server
|
|
121063
|
+
|
|
121064
|
+
Connect AI assistants to PrimeReact component documentation, guides, examples, setup, and API metadata.
|
|
121065
|
+
|
|
121066
|
+
## Introduction
|
|
121067
|
+
|
|
121068
|
+
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) lets AI assistants call external tools. The `@primereact/mcp@11.0.0` package uses those tools to search and read the PrimeReact documentation included with the package.
|
|
121069
|
+
|
|
121070
|
+
- Find components, guides, examples, setup instructions, and hooks.
|
|
121071
|
+
- Read mode-scoped component APIs and documentation sections.
|
|
121072
|
+
- Check component usage against documented properties and callbacks.
|
|
121073
|
+
- Return links to the related PrimeReact documentation when available.
|
|
121074
|
+
|
|
121075
|
+
The server requires Node.js 22 or newer. It is read-only and does not change your project files or PrimeReact configuration.
|
|
121076
|
+
|
|
121077
|
+
## CLI Setup
|
|
121078
|
+
|
|
121079
|
+
The recommended setup is the [PrimeReact Plugin](./plugin). It installs this MCP server together with the PrimeReact skills for implementation, setup, theming, migration, and troubleshooting.
|
|
121080
|
+
|
|
121081
|
+
```bash
|
|
121082
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
121083
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
121084
|
+
```
|
|
121085
|
+
|
|
121086
|
+
Replace `copilot` with `claude`, `codex`, `gemini`, or `cursor` for another supported assistant. Use Manual Setup when you want the MCP server without the plugin skills.
|
|
121087
|
+
|
|
121088
|
+
## Manual Setup
|
|
121089
|
+
|
|
121090
|
+
### Claude Code
|
|
121091
|
+
|
|
121092
|
+
Add the server to your user configuration to use it in every project, or omit `-s user` for the current project only.
|
|
121093
|
+
|
|
121094
|
+
```bash
|
|
121095
|
+
claude mcp add primereact -s user -- npx -y @primereact/mcp@11.0.0
|
|
121096
|
+
```
|
|
121097
|
+
|
|
121098
|
+
See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for client-specific options.
|
|
121099
|
+
|
|
121100
|
+
### VS Code
|
|
121101
|
+
|
|
121102
|
+
Create `.vscode/mcp.json` for project-level setup. To use the server across projects, add the same `servers` entry to your VS Code user MCP configuration.
|
|
121103
|
+
|
|
121104
|
+
```json
|
|
121105
|
+
{
|
|
121106
|
+
"servers": {
|
|
121107
|
+
"primereact": {
|
|
121108
|
+
"command": "npx",
|
|
121109
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
121110
|
+
}
|
|
121111
|
+
}
|
|
121112
|
+
}
|
|
121113
|
+
```
|
|
121114
|
+
|
|
121115
|
+
See the [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details.
|
|
121116
|
+
|
|
121117
|
+
### OpenAI Codex
|
|
121118
|
+
|
|
121119
|
+
Add the server with the Codex CLI, or add the same configuration to `~/.codex/config.toml`.
|
|
121120
|
+
|
|
121121
|
+
```bash
|
|
121122
|
+
codex mcp add primereact -- npx -y @primereact/mcp@11.0.0
|
|
121123
|
+
```
|
|
121124
|
+
|
|
121125
|
+
```toml
|
|
121126
|
+
[mcp_servers.primereact]
|
|
121127
|
+
command = "npx"
|
|
121128
|
+
args = ["-y", "@primereact/mcp@11.0.0"]
|
|
121129
|
+
```
|
|
121130
|
+
|
|
121131
|
+
See the [OpenAI Codex MCP documentation](https://developers.openai.com/codex/mcp/) for more details.
|
|
121132
|
+
|
|
121133
|
+
### Cursor
|
|
121134
|
+
|
|
121135
|
+
Create `.cursor/mcp.json` in your project or `~/.cursor/mcp.json` for global configuration.
|
|
121136
|
+
|
|
121137
|
+
```json
|
|
121138
|
+
{
|
|
121139
|
+
"mcpServers": {
|
|
121140
|
+
"primereact": {
|
|
121141
|
+
"command": "npx",
|
|
121142
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
121143
|
+
}
|
|
121144
|
+
}
|
|
121145
|
+
}
|
|
121146
|
+
```
|
|
121147
|
+
|
|
121148
|
+
See the [Cursor MCP documentation](https://docs.cursor.com/context/model-context-protocol) for more details.
|
|
121149
|
+
|
|
121150
|
+
## Tools
|
|
121151
|
+
|
|
121152
|
+
The PrimeReact MCP server provides eight tools.
|
|
121153
|
+
|
|
121154
|
+
| Tool | Purpose |
|
|
121155
|
+
| ---------------- | ----------------------------------------------------------------------------------------- |
|
|
121156
|
+
| `list` | List available components, guides, examples, resources, or modes. |
|
|
121157
|
+
| `search` | Search generated component, guide, section, API, hook, and example text. |
|
|
121158
|
+
| `get_component` | Read mode-scoped component or hook documentation, API metadata, and available sections. |
|
|
121159
|
+
| `get_guide` | Read a generated PrimeReact guide and its source metadata. |
|
|
121160
|
+
| `get_example` | Return an example from a documented component or hook section. |
|
|
121161
|
+
| `get_setup` | Return setup guidance for a supported PrimeReact mode and environment. |
|
|
121162
|
+
| `validate_usage` | Validate component usage against generated PrimeReact API metadata in one selected mode. |
|
|
121163
|
+
| `version` | Report the server version and the status of its documentation data, tools, and resources. |
|
|
121164
|
+
|
|
121165
|
+
## Data and Validation
|
|
121166
|
+
|
|
121167
|
+
The MCP package includes a generated copy of the PrimeReact documentation. This keeps the server usable without a PrimeReact source checkout and makes its answers match the installed package version. Results include a `primeui://primereact` resource URI and, when available, a link to the public documentation.
|
|
121168
|
+
|
|
121169
|
+
- The tools do not edit files, install dependencies, or update configuration.
|
|
121170
|
+
- Component, setup, example, and validation calls stay in one selected mode: `styled`, `tailwind`, `primitive`, `headless`, or `hooks` where supported.
|
|
121171
|
+
- `validate_usage` checks documented API metadata. If the required metadata is unavailable or the mode is ambiguous, it reports that limitation instead of guessing.
|
|
121172
|
+
- Run your project type checks, tests, and browser checks after making changes. MCP validation does not replace them.
|
|
121173
|
+
|
|
121174
|
+
If you installed the PrimeReact Plugin, do not register the MCP server again with a manual configuration. Run the CLI `doctor` command if the server is missing or appears more than once.
|
|
121175
|
+
|
|
121176
|
+
# Plugin
|
|
121177
|
+
|
|
121178
|
+
Install PrimeReact workflow skills and the PrimeReact MCP server in a supported AI assistant.
|
|
121179
|
+
|
|
121180
|
+
## Introduction
|
|
121181
|
+
|
|
121182
|
+
The PrimeReact Plugin adds PrimeReact skills and the PrimeReact MCP server to Claude Code, Codex, GitHub Copilot, Cursor, or Gemini CLI. Plugins installed through GitHub Copilot CLI are also available in VS Code. Install the plugin when you want the assistant to follow PrimeReact-specific, mode-aware workflows as well as read the current component documentation.
|
|
121183
|
+
|
|
121184
|
+
The plugin is published from the [primefaces/primeui-plugins](https://github.com/primefaces/primeui-plugins) repository. Use `@primeui/cli@1.0.0` for the same installation flow across supported assistants, or follow the manual setup for your client.
|
|
121185
|
+
|
|
121186
|
+
## What It Installs
|
|
121187
|
+
|
|
121188
|
+
Installing the PrimeReact Plugin adds:
|
|
121189
|
+
|
|
121190
|
+
- Seven skills for PrimeReact implementation, setup, theming, accessibility, migration, and troubleshooting.
|
|
121191
|
+
- The PrimeReact MCP server, configured with `@primereact/mcp@11.0.0`.
|
|
121192
|
+
- The manifest required by the selected assistant.
|
|
121193
|
+
|
|
121194
|
+
PrimeVue and PrimeNG are separate plugins. Installing this plugin does not change your application or install PrimeReact dependencies in the project.
|
|
121195
|
+
|
|
121196
|
+
## Skills
|
|
121197
|
+
|
|
121198
|
+
Each skill covers one type of PrimeReact work. The skills use `@primereact/mcp@11.0.0` when they need mode-scoped component APIs, examples, setup guides, hooks, or usage validation.
|
|
121199
|
+
|
|
121200
|
+
| Skill | Use it for |
|
|
121201
|
+
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
121202
|
+
| `primereact-router` | Select the PrimeReact mode and choose the skill that matches the task. |
|
|
121203
|
+
| `primereact-component-implementation` | Choose and implement components, composition, properties, callbacks, and documented hooks. |
|
|
121204
|
+
| `primereact-setup-installation` | Configure a supported React environment in `styled`, `tailwind`, `primitive`, or `headless` mode. |
|
|
121205
|
+
| `primereact-theming-customization` | Work with styled presets and tokens, Tailwind-owned components, primitives, headless markup, or pass-through APIs without mixing modes. |
|
|
121206
|
+
| `primereact-accessibility-icons` | Review semantics, keyboard behavior, focus, accessible names, PrimeIcons, and custom icons in the selected mode. |
|
|
121207
|
+
| `primereact-migration` | Plan and apply source-backed version or mode changes using current PrimeReact guides. |
|
|
121208
|
+
| `primereact-audit-troubleshooting` | Find invalid APIs and troubleshoot components, setup, MCP, plugin, or duplicate configurations. |
|
|
121209
|
+
|
|
121210
|
+
Skill names use the `primereact-` prefix because assistants may keep skills from several plugins in one shared namespace.
|
|
121211
|
+
|
|
121212
|
+
## How Skills Work
|
|
121213
|
+
|
|
121214
|
+
You do not need to select a skill manually. Describe the PrimeReact task and the router chooses the relevant workflow.
|
|
121215
|
+
|
|
121216
|
+
- The router checks that the project uses React and PrimeReact, then selects `styled`, `tailwind`, `primitive`, or `headless` from project evidence. It uses `hooks` only for a documented standalone hook.
|
|
121217
|
+
- The selected skill reads only the component or guide information needed for that mode.
|
|
121218
|
+
- When component metadata is available, the skill validates the final PrimeReact usage in the same mode.
|
|
121219
|
+
- If project evidence is ambiguous or the documentation does not confirm an API, the skill reports the limitation instead of borrowing guidance from another mode.
|
|
121220
|
+
|
|
121221
|
+
After implementation, run the checks required by your project, including type checking, tests, browser behavior, accessibility, and visual review where applicable.
|
|
121222
|
+
|
|
121223
|
+
## CLI Setup
|
|
121224
|
+
|
|
121225
|
+
Set `--tool` to the assistant you use. Keep `--library primereact` when you run the command outside a project or from a project that uses more than one PrimeUI library.
|
|
121226
|
+
|
|
121227
|
+
```bash
|
|
121228
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
121229
|
+
```
|
|
121230
|
+
|
|
121231
|
+
Supported tool values are `claude`, `codex`, `copilot`, `cursor`, and `gemini`. Use `copilot` for GitHub Copilot CLI and VS Code.
|
|
121232
|
+
|
|
121233
|
+
## Lifecycle and Doctor
|
|
121234
|
+
|
|
121235
|
+
Use the same CLI to check the installation, update the plugin, or remove it. Each command applies only to PrimeReact in the selected assistant.
|
|
121236
|
+
|
|
121237
|
+
```bash
|
|
121238
|
+
pnpm dlx @primeui/cli@1.0.0 plugin status --tool copilot --library primereact
|
|
121239
|
+
pnpm dlx @primeui/cli@1.0.0 plugin update --tool copilot --library primereact
|
|
121240
|
+
pnpm dlx @primeui/cli@1.0.0 plugin remove --tool copilot --library primereact
|
|
121241
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
121242
|
+
|
|
121243
|
+
# Machine-readable diagnostics
|
|
121244
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact --json
|
|
121245
|
+
```
|
|
121246
|
+
|
|
121247
|
+
Run `doctor` when the plugin or MCP server is not working as expected. It checks the installation, starts the MCP server, confirms the available tools, and tests documentation retrieval and component validation. Checks that an assistant does not expose are reported as unsupported.
|
|
121248
|
+
|
|
121249
|
+
## Manual Setup
|
|
121250
|
+
|
|
121251
|
+
### Source
|
|
121252
|
+
|
|
121253
|
+
Claude Code, Codex, and GitHub Copilot can install the plugin directly from the public marketplace. For manual Cursor or Gemini CLI setup, clone the repository to a location you intend to keep because those clients use the selected `plugins/primereact` directory after installation.
|
|
121254
|
+
|
|
121255
|
+
```bash
|
|
121256
|
+
git clone --branch main https://github.com/primefaces/primeui-plugins.git ~/primeui-plugins
|
|
121257
|
+
ls ~/primeui-plugins/plugins/primereact
|
|
121258
|
+
```
|
|
121259
|
+
|
|
121260
|
+
### Claude Code
|
|
121261
|
+
|
|
121262
|
+
Add the PrimeUI marketplace, then install only the PrimeReact plugin.
|
|
121263
|
+
|
|
121264
|
+
```bash
|
|
121265
|
+
claude plugin marketplace add primefaces/primeui-plugins
|
|
121266
|
+
claude plugin install primereact@primeui
|
|
121267
|
+
claude plugin list --json
|
|
121268
|
+
```
|
|
121269
|
+
|
|
121270
|
+
### Codex
|
|
121271
|
+
|
|
121272
|
+
Add the PrimeUI marketplace, inspect its catalog, then install only the PrimeReact plugin. Use the interactive plugin browser to manage enablement.
|
|
121273
|
+
|
|
121274
|
+
```bash
|
|
121275
|
+
codex plugin marketplace add primefaces/primeui-plugins
|
|
121276
|
+
codex plugin list --available
|
|
121277
|
+
codex plugin add primereact@primeui
|
|
121278
|
+
codex plugin list
|
|
121279
|
+
```
|
|
121280
|
+
|
|
121281
|
+
### VS Code Copilot
|
|
121282
|
+
|
|
121283
|
+
Install the PrimeReact Plugin through GitHub Copilot CLI. VS Code automatically discovers plugins installed by Copilot CLI, so it does not need a separate plugin configuration.
|
|
121284
|
+
|
|
121285
|
+
```bash
|
|
121286
|
+
copilot plugin marketplace add primefaces/primeui-plugins
|
|
121287
|
+
copilot plugin install primereact@primeui
|
|
121288
|
+
```
|
|
121289
|
+
|
|
121290
|
+
The installation includes the seven PrimeReact skills and the PrimeReact MCP server. See the [VS Code Agent Plugins](https://code.visualstudio.com/docs/agent-customization/agent-plugins) and [GitHub Copilot CLI Plugins](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing) documentation for client-specific details.
|
|
121291
|
+
|
|
121292
|
+
### Cursor
|
|
121293
|
+
|
|
121294
|
+
For local setup, link the PrimeReact plugin directory into Cursor's local-plugin directory. Restart Cursor or run `Developer: Reload Window` after creating the link.
|
|
121295
|
+
|
|
121296
|
+
```bash
|
|
121297
|
+
mkdir -p ~/.cursor/plugins/local
|
|
121298
|
+
ln -s ~/primeui-plugins/plugins/primereact ~/.cursor/plugins/local/primereact
|
|
121299
|
+
```
|
|
121300
|
+
|
|
121301
|
+
Use Cursor's Customize screen to manage the plugin, its skills, and its MCP server.
|
|
121302
|
+
|
|
121303
|
+
### Gemini CLI
|
|
121304
|
+
|
|
121305
|
+
Validate the PrimeReact extension directory, then install it from the persistent checkout. Do not install from the repository root because it contains plugins for all three PrimeUI libraries.
|
|
121306
|
+
|
|
121307
|
+
```bash
|
|
121308
|
+
gemini extensions validate ~/primeui-plugins/plugins/primereact
|
|
121309
|
+
gemini extensions install ~/primeui-plugins/plugins/primereact --consent
|
|
121310
|
+
gemini extensions list --output-format json
|
|
121311
|
+
```
|
|
121312
|
+
|
|
121313
|
+
Gemini CLI 0.29.3 requires `experimental.extensionManagement` to be enabled. The installed extension contains the seven PrimeReact skills and the PrimeReact MCP server.
|
|
121314
|
+
|
|
120645
121315
|
# Configuration
|
|
120646
121316
|
|
|
120647
121317
|
Application wide configuration for PrimeReact.
|
|
@@ -120939,7 +121609,7 @@ export default function ColorDemo() {
|
|
|
120939
121609
|
|
|
120940
121610
|
## Spin
|
|
120941
121611
|
|
|
120942
|
-
Use a spin animation utility
|
|
121612
|
+
Use the `spin` property to apply a rotation animation to an icon. Alternatively, a spin animation utility such as `animate-spin` from Tailwind can also be used.
|
|
120943
121613
|
|
|
120944
121614
|
```tsx
|
|
120945
121615
|
import { Cog } from '@primeicons/react/cog';
|
|
@@ -120948,8 +121618,8 @@ import { Spinner } from '@primeicons/react/spinner';
|
|
|
120948
121618
|
export default function SpinDemo() {
|
|
120949
121619
|
return (
|
|
120950
121620
|
<div className="flex justify-center gap-4">
|
|
120951
|
-
<Spinner
|
|
120952
|
-
<Cog
|
|
121621
|
+
<Spinner spin size={32} />
|
|
121622
|
+
<Cog spin size={32} />
|
|
120953
121623
|
</div>
|
|
120954
121624
|
);
|
|
120955
121625
|
}
|
|
@@ -121016,7 +121686,7 @@ Start from our <a href="https://github.com/primefaces/primereact-examples/tree/m
|
|
|
121016
121686
|
Install PrimeReact and a theme package using your favorite package manager:
|
|
121017
121687
|
|
|
121018
121688
|
```bash
|
|
121019
|
-
npm install @primereact/ui
|
|
121689
|
+
npm install @primereact/ui @primeuix/themes @primeicons/react
|
|
121020
121690
|
```
|
|
121021
121691
|
|
|
121022
121692
|
</DocStep>
|
|
@@ -121118,7 +121788,7 @@ Start from our <a href="https://github.com/primefaces/primereact-examples/tree/m
|
|
|
121118
121788
|
Install PrimeReact and a theme package using your favorite package manager:
|
|
121119
121789
|
|
|
121120
121790
|
```bash
|
|
121121
|
-
npm install @primereact/ui
|
|
121791
|
+
npm install @primereact/ui @primeuix/themes @primeicons/react
|
|
121122
121792
|
```
|
|
121123
121793
|
|
|
121124
121794
|
</DocStep>
|
|
@@ -121248,7 +121918,7 @@ Start from our <a href="https://github.com/primefaces/primereact-examples/tree/m
|
|
|
121248
121918
|
Install PrimeReact and a theme package using your favorite package manager:
|
|
121249
121919
|
|
|
121250
121920
|
```bash
|
|
121251
|
-
npm install @primereact/ui
|
|
121921
|
+
npm install @primereact/ui @primeuix/themes @primeicons/react
|
|
121252
121922
|
```
|
|
121253
121923
|
|
|
121254
121924
|
</DocStep>
|
|
@@ -121337,7 +122007,7 @@ Start from our <a href="https://github.com/primefaces/primereact-examples/tree/m
|
|
|
121337
122007
|
Install PrimeReact and a theme package using your favorite package manager:
|
|
121338
122008
|
|
|
121339
122009
|
```bash
|
|
121340
|
-
npm install @primereact/ui
|
|
122010
|
+
npm install @primereact/ui @primeuix/themes @primeicons/react
|
|
121341
122011
|
```
|
|
121342
122012
|
|
|
121343
122013
|
</DocStep>
|
|
@@ -121430,7 +122100,7 @@ Start from our <a href="https://github.com/primefaces/primereact-examples/tree/m
|
|
|
121430
122100
|
Install PrimeReact and a theme package using your favorite package manager:
|
|
121431
122101
|
|
|
121432
122102
|
```bash
|
|
121433
|
-
npm install @primereact/ui
|
|
122103
|
+
npm install @primereact/ui @primeuix/themes @primeicons/react
|
|
121434
122104
|
```
|
|
121435
122105
|
|
|
121436
122106
|
</DocStep>
|
|
@@ -123680,6 +124350,259 @@ Add a `.md` to a page’s URL to display a Markdown version of that page.
|
|
|
123680
124350
|
|
|
123681
124351
|
<Button as="a" href="/docs/overview/llms.md" target="_blank">Open /docs/overview/llms.md</Button>
|
|
123682
124352
|
|
|
124353
|
+
# MCP Server
|
|
124354
|
+
|
|
124355
|
+
Connect AI assistants to PrimeReact component documentation, guides, examples, setup, and API metadata.
|
|
124356
|
+
|
|
124357
|
+
## Introduction
|
|
124358
|
+
|
|
124359
|
+
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) lets AI assistants call external tools. The `@primereact/mcp@11.0.0` package uses those tools to search and read the PrimeReact documentation included with the package.
|
|
124360
|
+
|
|
124361
|
+
- Find components, guides, examples, setup instructions, and hooks.
|
|
124362
|
+
- Read mode-scoped component APIs and documentation sections.
|
|
124363
|
+
- Check component usage against documented properties and callbacks.
|
|
124364
|
+
- Return links to the related PrimeReact documentation when available.
|
|
124365
|
+
|
|
124366
|
+
The server requires Node.js 22 or newer. It is read-only and does not change your project files or PrimeReact configuration.
|
|
124367
|
+
|
|
124368
|
+
## CLI Setup
|
|
124369
|
+
|
|
124370
|
+
The recommended setup is the [PrimeReact Plugin](./plugin). It installs this MCP server together with the PrimeReact skills for implementation, setup, theming, migration, and troubleshooting.
|
|
124371
|
+
|
|
124372
|
+
```bash
|
|
124373
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
124374
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
124375
|
+
```
|
|
124376
|
+
|
|
124377
|
+
Replace `copilot` with `claude`, `codex`, `gemini`, or `cursor` for another supported assistant. Use Manual Setup when you want the MCP server without the plugin skills.
|
|
124378
|
+
|
|
124379
|
+
## Manual Setup
|
|
124380
|
+
|
|
124381
|
+
### Claude Code
|
|
124382
|
+
|
|
124383
|
+
Add the server to your user configuration to use it in every project, or omit `-s user` for the current project only.
|
|
124384
|
+
|
|
124385
|
+
```bash
|
|
124386
|
+
claude mcp add primereact -s user -- npx -y @primereact/mcp@11.0.0
|
|
124387
|
+
```
|
|
124388
|
+
|
|
124389
|
+
See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for client-specific options.
|
|
124390
|
+
|
|
124391
|
+
### VS Code
|
|
124392
|
+
|
|
124393
|
+
Create `.vscode/mcp.json` for project-level setup. To use the server across projects, add the same `servers` entry to your VS Code user MCP configuration.
|
|
124394
|
+
|
|
124395
|
+
```json
|
|
124396
|
+
{
|
|
124397
|
+
"servers": {
|
|
124398
|
+
"primereact": {
|
|
124399
|
+
"command": "npx",
|
|
124400
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
124401
|
+
}
|
|
124402
|
+
}
|
|
124403
|
+
}
|
|
124404
|
+
```
|
|
124405
|
+
|
|
124406
|
+
See the [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more details.
|
|
124407
|
+
|
|
124408
|
+
### OpenAI Codex
|
|
124409
|
+
|
|
124410
|
+
Add the server with the Codex CLI, or add the same configuration to `~/.codex/config.toml`.
|
|
124411
|
+
|
|
124412
|
+
```bash
|
|
124413
|
+
codex mcp add primereact -- npx -y @primereact/mcp@11.0.0
|
|
124414
|
+
```
|
|
124415
|
+
|
|
124416
|
+
```toml
|
|
124417
|
+
[mcp_servers.primereact]
|
|
124418
|
+
command = "npx"
|
|
124419
|
+
args = ["-y", "@primereact/mcp@11.0.0"]
|
|
124420
|
+
```
|
|
124421
|
+
|
|
124422
|
+
See the [OpenAI Codex MCP documentation](https://developers.openai.com/codex/mcp/) for more details.
|
|
124423
|
+
|
|
124424
|
+
### Cursor
|
|
124425
|
+
|
|
124426
|
+
Create `.cursor/mcp.json` in your project or `~/.cursor/mcp.json` for global configuration.
|
|
124427
|
+
|
|
124428
|
+
```json
|
|
124429
|
+
{
|
|
124430
|
+
"mcpServers": {
|
|
124431
|
+
"primereact": {
|
|
124432
|
+
"command": "npx",
|
|
124433
|
+
"args": ["-y", "@primereact/mcp@11.0.0"]
|
|
124434
|
+
}
|
|
124435
|
+
}
|
|
124436
|
+
}
|
|
124437
|
+
```
|
|
124438
|
+
|
|
124439
|
+
See the [Cursor MCP documentation](https://docs.cursor.com/context/model-context-protocol) for more details.
|
|
124440
|
+
|
|
124441
|
+
## Tools
|
|
124442
|
+
|
|
124443
|
+
The PrimeReact MCP server provides eight tools.
|
|
124444
|
+
|
|
124445
|
+
| Tool | Purpose |
|
|
124446
|
+
| ---------------- | ----------------------------------------------------------------------------------------- |
|
|
124447
|
+
| `list` | List available components, guides, examples, resources, or modes. |
|
|
124448
|
+
| `search` | Search generated component, guide, section, API, hook, and example text. |
|
|
124449
|
+
| `get_component` | Read mode-scoped component or hook documentation, API metadata, and available sections. |
|
|
124450
|
+
| `get_guide` | Read a generated PrimeReact guide and its source metadata. |
|
|
124451
|
+
| `get_example` | Return an example from a documented component or hook section. |
|
|
124452
|
+
| `get_setup` | Return setup guidance for a supported PrimeReact mode and environment. |
|
|
124453
|
+
| `validate_usage` | Validate component usage against generated PrimeReact API metadata in one selected mode. |
|
|
124454
|
+
| `version` | Report the server version and the status of its documentation data, tools, and resources. |
|
|
124455
|
+
|
|
124456
|
+
## Data and Validation
|
|
124457
|
+
|
|
124458
|
+
The MCP package includes a generated copy of the PrimeReact documentation. This keeps the server usable without a PrimeReact source checkout and makes its answers match the installed package version. Results include a `primeui://primereact` resource URI and, when available, a link to the public documentation.
|
|
124459
|
+
|
|
124460
|
+
- The tools do not edit files, install dependencies, or update configuration.
|
|
124461
|
+
- Component, setup, example, and validation calls stay in one selected mode: `styled`, `tailwind`, `primitive`, `headless`, or `hooks` where supported.
|
|
124462
|
+
- `validate_usage` checks documented API metadata. If the required metadata is unavailable or the mode is ambiguous, it reports that limitation instead of guessing.
|
|
124463
|
+
- Run your project type checks, tests, and browser checks after making changes. MCP validation does not replace them.
|
|
124464
|
+
|
|
124465
|
+
If you installed the PrimeReact Plugin, do not register the MCP server again with a manual configuration. Run the CLI `doctor` command if the server is missing or appears more than once.
|
|
124466
|
+
|
|
124467
|
+
# Plugin
|
|
124468
|
+
|
|
124469
|
+
Install PrimeReact workflow skills and the PrimeReact MCP server in a supported AI assistant.
|
|
124470
|
+
|
|
124471
|
+
## Introduction
|
|
124472
|
+
|
|
124473
|
+
The PrimeReact Plugin adds PrimeReact skills and the PrimeReact MCP server to Claude Code, Codex, GitHub Copilot, Cursor, or Gemini CLI. Plugins installed through GitHub Copilot CLI are also available in VS Code. Install the plugin when you want the assistant to follow PrimeReact-specific, mode-aware workflows as well as read the current component documentation.
|
|
124474
|
+
|
|
124475
|
+
The plugin is published from the [primefaces/primeui-plugins](https://github.com/primefaces/primeui-plugins) repository. Use `@primeui/cli@1.0.0` for the same installation flow across supported assistants, or follow the manual setup for your client.
|
|
124476
|
+
|
|
124477
|
+
## What It Installs
|
|
124478
|
+
|
|
124479
|
+
Installing the PrimeReact Plugin adds:
|
|
124480
|
+
|
|
124481
|
+
- Seven skills for PrimeReact implementation, setup, theming, accessibility, migration, and troubleshooting.
|
|
124482
|
+
- The PrimeReact MCP server, configured with `@primereact/mcp@11.0.0`.
|
|
124483
|
+
- The manifest required by the selected assistant.
|
|
124484
|
+
|
|
124485
|
+
PrimeVue and PrimeNG are separate plugins. Installing this plugin does not change your application or install PrimeReact dependencies in the project.
|
|
124486
|
+
|
|
124487
|
+
## Skills
|
|
124488
|
+
|
|
124489
|
+
Each skill covers one type of PrimeReact work. The skills use `@primereact/mcp@11.0.0` when they need mode-scoped component APIs, examples, setup guides, hooks, or usage validation.
|
|
124490
|
+
|
|
124491
|
+
| Skill | Use it for |
|
|
124492
|
+
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
124493
|
+
| `primereact-router` | Select the PrimeReact mode and choose the skill that matches the task. |
|
|
124494
|
+
| `primereact-component-implementation` | Choose and implement components, composition, properties, callbacks, and documented hooks. |
|
|
124495
|
+
| `primereact-setup-installation` | Configure a supported React environment in `styled`, `tailwind`, `primitive`, or `headless` mode. |
|
|
124496
|
+
| `primereact-theming-customization` | Work with styled presets and tokens, Tailwind-owned components, primitives, headless markup, or pass-through APIs without mixing modes. |
|
|
124497
|
+
| `primereact-accessibility-icons` | Review semantics, keyboard behavior, focus, accessible names, PrimeIcons, and custom icons in the selected mode. |
|
|
124498
|
+
| `primereact-migration` | Plan and apply source-backed version or mode changes using current PrimeReact guides. |
|
|
124499
|
+
| `primereact-audit-troubleshooting` | Find invalid APIs and troubleshoot components, setup, MCP, plugin, or duplicate configurations. |
|
|
124500
|
+
|
|
124501
|
+
Skill names use the `primereact-` prefix because assistants may keep skills from several plugins in one shared namespace.
|
|
124502
|
+
|
|
124503
|
+
## How Skills Work
|
|
124504
|
+
|
|
124505
|
+
You do not need to select a skill manually. Describe the PrimeReact task and the router chooses the relevant workflow.
|
|
124506
|
+
|
|
124507
|
+
- The router checks that the project uses React and PrimeReact, then selects `styled`, `tailwind`, `primitive`, or `headless` from project evidence. It uses `hooks` only for a documented standalone hook.
|
|
124508
|
+
- The selected skill reads only the component or guide information needed for that mode.
|
|
124509
|
+
- When component metadata is available, the skill validates the final PrimeReact usage in the same mode.
|
|
124510
|
+
- If project evidence is ambiguous or the documentation does not confirm an API, the skill reports the limitation instead of borrowing guidance from another mode.
|
|
124511
|
+
|
|
124512
|
+
After implementation, run the checks required by your project, including type checking, tests, browser behavior, accessibility, and visual review where applicable.
|
|
124513
|
+
|
|
124514
|
+
## CLI Setup
|
|
124515
|
+
|
|
124516
|
+
Set `--tool` to the assistant you use. Keep `--library primereact` when you run the command outside a project or from a project that uses more than one PrimeUI library.
|
|
124517
|
+
|
|
124518
|
+
```bash
|
|
124519
|
+
pnpm dlx @primeui/cli@1.0.0 plugin install --tool copilot --library primereact
|
|
124520
|
+
```
|
|
124521
|
+
|
|
124522
|
+
Supported tool values are `claude`, `codex`, `copilot`, `cursor`, and `gemini`. Use `copilot` for GitHub Copilot CLI and VS Code.
|
|
124523
|
+
|
|
124524
|
+
## Lifecycle and Doctor
|
|
124525
|
+
|
|
124526
|
+
Use the same CLI to check the installation, update the plugin, or remove it. Each command applies only to PrimeReact in the selected assistant.
|
|
124527
|
+
|
|
124528
|
+
```bash
|
|
124529
|
+
pnpm dlx @primeui/cli@1.0.0 plugin status --tool copilot --library primereact
|
|
124530
|
+
pnpm dlx @primeui/cli@1.0.0 plugin update --tool copilot --library primereact
|
|
124531
|
+
pnpm dlx @primeui/cli@1.0.0 plugin remove --tool copilot --library primereact
|
|
124532
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact
|
|
124533
|
+
|
|
124534
|
+
# Machine-readable diagnostics
|
|
124535
|
+
pnpm dlx @primeui/cli@1.0.0 doctor --tool copilot --library primereact --json
|
|
124536
|
+
```
|
|
124537
|
+
|
|
124538
|
+
Run `doctor` when the plugin or MCP server is not working as expected. It checks the installation, starts the MCP server, confirms the available tools, and tests documentation retrieval and component validation. Checks that an assistant does not expose are reported as unsupported.
|
|
124539
|
+
|
|
124540
|
+
## Manual Setup
|
|
124541
|
+
|
|
124542
|
+
### Source
|
|
124543
|
+
|
|
124544
|
+
Claude Code, Codex, and GitHub Copilot can install the plugin directly from the public marketplace. For manual Cursor or Gemini CLI setup, clone the repository to a location you intend to keep because those clients use the selected `plugins/primereact` directory after installation.
|
|
124545
|
+
|
|
124546
|
+
```bash
|
|
124547
|
+
git clone --branch main https://github.com/primefaces/primeui-plugins.git ~/primeui-plugins
|
|
124548
|
+
ls ~/primeui-plugins/plugins/primereact
|
|
124549
|
+
```
|
|
124550
|
+
|
|
124551
|
+
### Claude Code
|
|
124552
|
+
|
|
124553
|
+
Add the PrimeUI marketplace, then install only the PrimeReact plugin.
|
|
124554
|
+
|
|
124555
|
+
```bash
|
|
124556
|
+
claude plugin marketplace add primefaces/primeui-plugins
|
|
124557
|
+
claude plugin install primereact@primeui
|
|
124558
|
+
claude plugin list --json
|
|
124559
|
+
```
|
|
124560
|
+
|
|
124561
|
+
### Codex
|
|
124562
|
+
|
|
124563
|
+
Add the PrimeUI marketplace, inspect its catalog, then install only the PrimeReact plugin. Use the interactive plugin browser to manage enablement.
|
|
124564
|
+
|
|
124565
|
+
```bash
|
|
124566
|
+
codex plugin marketplace add primefaces/primeui-plugins
|
|
124567
|
+
codex plugin list --available
|
|
124568
|
+
codex plugin add primereact@primeui
|
|
124569
|
+
codex plugin list
|
|
124570
|
+
```
|
|
124571
|
+
|
|
124572
|
+
### VS Code Copilot
|
|
124573
|
+
|
|
124574
|
+
Install the PrimeReact Plugin through GitHub Copilot CLI. VS Code automatically discovers plugins installed by Copilot CLI, so it does not need a separate plugin configuration.
|
|
124575
|
+
|
|
124576
|
+
```bash
|
|
124577
|
+
copilot plugin marketplace add primefaces/primeui-plugins
|
|
124578
|
+
copilot plugin install primereact@primeui
|
|
124579
|
+
```
|
|
124580
|
+
|
|
124581
|
+
The installation includes the seven PrimeReact skills and the PrimeReact MCP server. See the [VS Code Agent Plugins](https://code.visualstudio.com/docs/agent-customization/agent-plugins) and [GitHub Copilot CLI Plugins](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing) documentation for client-specific details.
|
|
124582
|
+
|
|
124583
|
+
### Cursor
|
|
124584
|
+
|
|
124585
|
+
For local setup, link the PrimeReact plugin directory into Cursor's local-plugin directory. Restart Cursor or run `Developer: Reload Window` after creating the link.
|
|
124586
|
+
|
|
124587
|
+
```bash
|
|
124588
|
+
mkdir -p ~/.cursor/plugins/local
|
|
124589
|
+
ln -s ~/primeui-plugins/plugins/primereact ~/.cursor/plugins/local/primereact
|
|
124590
|
+
```
|
|
124591
|
+
|
|
124592
|
+
Use Cursor's Customize screen to manage the plugin, its skills, and its MCP server.
|
|
124593
|
+
|
|
124594
|
+
### Gemini CLI
|
|
124595
|
+
|
|
124596
|
+
Validate the PrimeReact extension directory, then install it from the persistent checkout. Do not install from the repository root because it contains plugins for all three PrimeUI libraries.
|
|
124597
|
+
|
|
124598
|
+
```bash
|
|
124599
|
+
gemini extensions validate ~/primeui-plugins/plugins/primereact
|
|
124600
|
+
gemini extensions install ~/primeui-plugins/plugins/primereact --consent
|
|
124601
|
+
gemini extensions list --output-format json
|
|
124602
|
+
```
|
|
124603
|
+
|
|
124604
|
+
Gemini CLI 0.29.3 requires `experimental.extensionManagement` to be enabled. The installed extension contains the seven PrimeReact skills and the PrimeReact MCP server.
|
|
124605
|
+
|
|
123683
124606
|
# Custom Icons
|
|
123684
124607
|
|
|
123685
124608
|
PrimeReact components can be used with any icon library using the templating features.
|
|
@@ -123825,7 +124748,7 @@ export default function ColorDemo() {
|
|
|
123825
124748
|
|
|
123826
124749
|
## Spin
|
|
123827
124750
|
|
|
123828
|
-
Use a spin animation utility
|
|
124751
|
+
Use the `spin` property to apply a rotation animation to an icon. Alternatively, a spin animation utility such as `animate-spin` from Tailwind can also be used.
|
|
123829
124752
|
|
|
123830
124753
|
```tsx
|
|
123831
124754
|
import { Cog } from '@primeicons/react/cog';
|
|
@@ -123834,8 +124757,8 @@ import { Spinner } from '@primeicons/react/spinner';
|
|
|
123834
124757
|
export default function SpinDemo() {
|
|
123835
124758
|
return (
|
|
123836
124759
|
<div className="flex justify-center gap-4">
|
|
123837
|
-
<Spinner
|
|
123838
|
-
<Cog
|
|
124760
|
+
<Spinner spin size={32} />
|
|
124761
|
+
<Cog spin size={32} />
|
|
123839
124762
|
</div>
|
|
123840
124763
|
);
|
|
123841
124764
|
}
|
|
@@ -123943,7 +124866,7 @@ PrimeReact Tailwind components are distributed through a shadcn-compatible regis
|
|
|
123943
124866
|
Install PrimeReact along with the icon package and the Tailwind utilities the components rely on:
|
|
123944
124867
|
|
|
123945
124868
|
```bash
|
|
123946
|
-
npm install primereact
|
|
124869
|
+
npm install primereact @primeicons/react tailwindcss-primeui tailwind-merge
|
|
123947
124870
|
```
|
|
123948
124871
|
|
|
123949
124872
|
</DocStep>
|
|
@@ -124113,7 +125036,7 @@ PrimeReact Tailwind components are distributed through a shadcn-compatible regis
|
|
|
124113
125036
|
Install PrimeReact along with the icon package and the Tailwind utilities the components rely on:
|
|
124114
125037
|
|
|
124115
125038
|
```bash
|
|
124116
|
-
npm install primereact
|
|
125039
|
+
npm install primereact @primeicons/react tailwindcss-primeui tailwind-merge
|
|
124117
125040
|
```
|
|
124118
125041
|
|
|
124119
125042
|
</DocStep>
|
|
@@ -124283,7 +125206,7 @@ PrimeReact Tailwind components are distributed through a shadcn-compatible regis
|
|
|
124283
125206
|
Install PrimeReact along with the icon package and the Tailwind utilities the components rely on:
|
|
124284
125207
|
|
|
124285
125208
|
```bash
|
|
124286
|
-
npm install primereact
|
|
125209
|
+
npm install primereact @primeicons/react tailwindcss-primeui tailwind-merge
|
|
124287
125210
|
```
|
|
124288
125211
|
|
|
124289
125212
|
</DocStep>
|
|
@@ -124441,7 +125364,7 @@ PrimeReact Tailwind components are distributed through a shadcn-compatible regis
|
|
|
124441
125364
|
Install PrimeReact along with the icon package and the Tailwind utilities the components rely on:
|
|
124442
125365
|
|
|
124443
125366
|
```bash
|
|
124444
|
-
npm install primereact
|
|
125367
|
+
npm install primereact @primeicons/react tailwindcss-primeui tailwind-merge
|
|
124445
125368
|
```
|
|
124446
125369
|
|
|
124447
125370
|
</DocStep>
|
|
@@ -124603,7 +125526,7 @@ PrimeReact Tailwind components are distributed through a shadcn-compatible regis
|
|
|
124603
125526
|
Install PrimeReact along with the icon package and the Tailwind utilities the components rely on:
|
|
124604
125527
|
|
|
124605
125528
|
```bash
|
|
124606
|
-
npm install primereact
|
|
125529
|
+
npm install primereact @primeicons/react tailwindcss-primeui tailwind-merge
|
|
124607
125530
|
```
|
|
124608
125531
|
|
|
124609
125532
|
</DocStep>
|