@primereact/mcp 11.1.0 → 11.2.0
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/data/llms/headless/components/accordion/api.json +9 -9
- package/data/llms/headless/components/animateonscroll/api.json +2 -2
- package/data/llms/headless/components/autocomplete/api.json +33 -33
- package/data/llms/headless/components/avatar/api.json +1 -1
- package/data/llms/headless/components/carousel/api.json +15 -15
- package/data/llms/headless/components/checkbox/api.json +18 -18
- package/data/llms/headless/components/collapsible/api.json +14 -14
- package/data/llms/headless/components/compare/api.json +3 -3
- package/data/llms/headless/components/contextmenu/api.json +2 -2
- package/data/llms/headless/components/datatable/api.json +19 -19
- package/data/llms/headless/components/dataview/api.json +3 -3
- package/data/llms/headless/components/datepicker/api.json +43 -43
- package/data/llms/headless/components/dialog/api.json +19 -19
- package/data/llms/headless/components/divider/api.json +3 -3
- package/data/llms/headless/components/drawer/api.json +13 -13
- package/data/llms/headless/components/fieldset/api.json +9 -9
- package/data/llms/headless/components/fileupload/api.json +5 -5
- package/data/llms/headless/components/focustrap/api.json +4 -4
- package/data/llms/headless/components/gallery/api.json +23 -23
- package/data/llms/headless/components/inplace/api.json +3 -3
- package/data/llms/headless/components/inputcolor/api.json +6 -6
- package/data/llms/headless/components/inputcolor.md +0 -1
- package/data/llms/headless/components/inputnumber/api.json +8 -8
- package/data/llms/headless/components/inputotp/api.json +7 -7
- package/data/llms/headless/components/inputpassword/api.json +4 -4
- package/data/llms/headless/components/inputpassword.md +3 -3
- package/data/llms/headless/components/inputtags/api.json +8 -8
- package/data/llms/headless/components/inputtext/api.json +1 -1
- package/data/llms/headless/components/knob/api.json +18 -18
- package/data/llms/headless/components/listbox/api.json +27 -27
- package/data/llms/headless/components/menu/api.json +10 -10
- package/data/llms/headless/components/message/api.json +1 -1
- package/data/llms/headless/components/metergroup/api.json +3 -3
- package/data/llms/headless/components/motion/api.json +1 -1
- package/data/llms/headless/components/navigationmenu/api.json +5 -5
- package/data/llms/headless/components/orderlist/api.json +5 -5
- package/data/llms/headless/components/organizationchart/api.json +6 -6
- package/data/llms/headless/components/paginator/api.json +5 -5
- package/data/llms/headless/components/panel/api.json +9 -9
- package/data/llms/headless/components/picklist/api.json +5 -5
- package/data/llms/headless/components/popover/api.json +16 -16
- package/data/llms/headless/components/positioner/api.json +7 -7
- package/data/llms/headless/components/progressbar/api.json +3 -3
- package/data/llms/headless/components/progressspinner/api.json +3 -3
- package/data/llms/headless/components/radiobutton/api.json +16 -16
- package/data/llms/headless/components/rating/api.json +5 -5
- package/data/llms/headless/components/scrollarea/api.json +6 -6
- package/data/llms/headless/components/select/api.json +34 -34
- package/data/llms/headless/components/sidebar/api.json +60 -60
- package/data/llms/headless/components/sidebar.md +4 -2
- package/data/llms/headless/components/slider/api.json +3 -3
- package/data/llms/headless/components/speeddial/api.json +4 -4
- package/data/llms/headless/components/splitter/api.json +5 -5
- package/data/llms/headless/components/stepper/api.json +13 -13
- package/data/llms/headless/components/styleclass/api.json +1 -1
- package/data/llms/headless/components/tabs/api.json +17 -17
- package/data/llms/headless/components/terminal/api.json +1 -1
- package/data/llms/headless/components/toast/api.json +4 -4
- package/data/llms/headless/components/togglebutton/api.json +27 -3
- package/data/llms/headless/components/toggleswitch/api.json +3 -3
- package/data/llms/headless/components/tooltip/api.json +17 -17
- package/data/llms/headless/components/tree/api.json +20 -20
- package/data/llms/headless/components/tree.md +1 -0
- package/data/llms/headless/components/treetable/api.json +19 -19
- package/data/llms/hooks/use-filter.md +2 -2
- package/data/llms/hooks/use-tree-filter.md +3 -1
- package/data/llms/llms-full.txt +485 -229
- package/data/llms/primitive/components/accordion/api.json +39 -39
- package/data/llms/primitive/components/animateonscroll/api.json +5 -5
- package/data/llms/primitive/components/autocomplete/api.json +105 -105
- package/data/llms/primitive/components/avatar/api.json +14 -14
- package/data/llms/primitive/components/badge/api.json +6 -6
- package/data/llms/primitive/components/breadcrumb/api.json +27 -27
- package/data/llms/primitive/components/button/api.json +8 -8
- package/data/llms/primitive/components/buttongroup/api.json +3 -3
- package/data/llms/primitive/components/card/api.json +24 -24
- package/data/llms/primitive/components/carousel/api.json +28 -28
- package/data/llms/primitive/components/checkbox/api.json +14 -14
- package/data/llms/primitive/components/checkboxgroup/api.json +5 -5
- package/data/llms/primitive/components/chip/api.json +19 -19
- package/data/llms/primitive/components/collapsible/api.json +18 -18
- package/data/llms/primitive/components/compare/api.json +18 -18
- package/data/llms/primitive/components/contextmenu/api.json +150 -1141
- package/data/llms/primitive/components/datatable/api.json +215 -164
- package/data/llms/primitive/components/dataview/api.json +17 -17
- package/data/llms/primitive/components/datepicker/api.json +230 -230
- package/data/llms/primitive/components/dialog/api.json +63 -63
- package/data/llms/primitive/components/divider/api.json +3 -3
- package/data/llms/primitive/components/drawer/api.json +47 -47
- package/data/llms/primitive/components/fieldset/api.json +31 -31
- package/data/llms/primitive/components/fileupload/api.json +53 -53
- package/data/llms/primitive/components/floatlabel/api.json +3 -3
- package/data/llms/primitive/components/focustrap/api.json +7 -7
- package/data/llms/primitive/components/gallery/api.json +91 -91
- package/data/llms/primitive/components/iconfield/api.json +7 -7
- package/data/llms/primitive/components/iftalabel/api.json +3 -3
- package/data/llms/primitive/components/inplace/api.json +18 -18
- package/data/llms/primitive/components/inputcolor/api.json +51 -51
- package/data/llms/primitive/components/inputnumber/api.json +10 -10
- package/data/llms/primitive/components/inputotp/api.json +12 -12
- package/data/llms/primitive/components/inputpassword/api.json +7 -7
- package/data/llms/primitive/components/inputtags/api.json +6 -6
- package/data/llms/primitive/components/inputtext/api.json +4 -4
- package/data/llms/primitive/components/knob/api.json +19 -19
- package/data/llms/primitive/components/label/api.json +3 -3
- package/data/llms/primitive/components/listbox/api.json +57 -57
- package/data/llms/primitive/components/menu/api.json +87 -279
- package/data/llms/primitive/components/message/api.json +22 -22
- package/data/llms/primitive/components/metergroup/api.json +27 -27
- package/data/llms/primitive/components/navigationmenu/api.json +8 -8
- package/data/llms/primitive/components/paginator/api.json +43 -43
- package/data/llms/primitive/components/panel/api.json +34 -34
- package/data/llms/primitive/components/popover/api.json +67 -67
- package/data/llms/primitive/components/portal/api.json +4 -4
- package/data/llms/primitive/components/progressbar/api.json +22 -22
- package/data/llms/primitive/components/progressspinner/api.json +18 -18
- package/data/llms/primitive/components/radiobutton/api.json +16 -16
- package/data/llms/primitive/components/rating/api.json +20 -20
- package/data/llms/primitive/components/scrollarea/api.json +23 -23
- package/data/llms/primitive/components/select/api.json +95 -95
- package/data/llms/primitive/components/sidebar/api.json +88 -88
- package/data/llms/primitive/components/sidebar.md +2 -1
- package/data/llms/primitive/components/skeleton/api.json +3 -3
- package/data/llms/primitive/components/slider/api.json +22 -22
- package/data/llms/primitive/components/speeddial/api.json +22 -22
- package/data/llms/primitive/components/splitter/api.json +18 -18
- package/data/llms/primitive/components/stepper/api.json +64 -64
- package/data/llms/primitive/components/tabs/api.json +51 -51
- package/data/llms/primitive/components/tag/api.json +3 -3
- package/data/llms/primitive/components/terminal/api.json +44 -44
- package/data/llms/primitive/components/textarea/api.json +4 -4
- package/data/llms/primitive/components/timeline/api.json +27 -27
- package/data/llms/primitive/components/toast/api.json +48 -48
- package/data/llms/primitive/components/togglebutton/api.json +10 -10
- package/data/llms/primitive/components/togglebuttongroup/api.json +5 -5
- package/data/llms/primitive/components/toggleswitch/api.json +12 -12
- package/data/llms/primitive/components/toolbar/api.json +15 -15
- package/data/llms/primitive/components/tooltip/api.json +52 -52
- package/data/llms/primitive/components/tree/api.json +73 -73
- package/data/llms/primitive/components/visuallyhidden/api.json +3 -3
- package/data/llms/primitive/guides/migration/updating-to-v11.md +2 -2
- package/data/llms/styled/add-ons/designer/ci.md +7 -7
- package/data/llms/styled/add-ons/uikit/guide/v3.md +1 -0
- package/data/llms/styled/components/button/api.json +8 -8
- package/data/llms/styled/components/carousel.md +65 -0
- package/data/llms/styled/components/datatable.md +94 -84
- package/data/llms/styled/components/floatlabel/api.json +3 -3
- package/data/llms/styled/components/fluid/api.json +3 -3
- package/data/llms/styled/components/iconfield/api.json +7 -7
- package/data/llms/styled/components/iftalabel/api.json +3 -3
- package/data/llms/styled/components/inputcolor.md +3 -0
- package/data/llms/styled/components/inputgroup/api.json +7 -7
- package/data/llms/styled/components/label/api.json +3 -3
- package/data/llms/styled/components/organizationchart/api.json +33 -33
- package/data/llms/styled/components/rating/api.json +11 -11
- package/data/llms/styled/components/select.md +6 -0
- package/data/llms/styled/components/sidebar.md +12 -8
- package/data/llms/styled/components/tree.md +5 -0
- package/data/llms/styled/components/treetable.md +171 -62
- package/data/llms/styled/guides/configuration.md +25 -0
- package/data/llms/styled/guides/migration/updating-to-v11.md +2 -2
- package/data/llms/styled/guides/theming/tailwind.md +25 -0
- package/data/llms/tailwind/components/button/api.json +8 -8
- package/data/llms/tailwind/components/datatable.md +33 -42
- package/data/llms/tailwind/components/inputgroup.md +0 -1
- package/data/llms/tailwind/components/select.md +3 -0
- package/data/llms/tailwind/components/sidebar.md +16 -11
- package/data/manifest.json +773 -778
- package/data/mcp-data.json +5 -29
- package/dist/index.d.ts +7 -2
- package/dist/index.js +1 -1
- package/package.json +9 -8
- package/data/llms/headless/guides/misc/locale.md +0 -280
- package/data/llms/primitive/guides/misc/locale.md +0 -280
- package/data/llms/styled/guides/installation/configuration.md +0 -135
- package/data/llms/styled/guides/misc/locale.md +0 -280
- package/data/llms/tailwind/guides/misc/locale.md +0 -280
- package/data/llms/tailwind/guides/theming/guide.md +0 -179
|
@@ -97,6 +97,31 @@ import { Select } from '@primereact/ui/select'; // themed, opt out with `unstyle
|
|
|
97
97
|
import { Select } from 'primereact/select'; // unstyled by construction
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
+
## Preflight
|
|
101
|
+
|
|
102
|
+
Preflight resets the browser defaults on the native elements PrimeReact renders, such as `button`, `input`, `ul`, `table`, `img` and the heading tags. It removes the margins, borders, font inheritance and list styling browsers apply by default, so a component's own styles are the only ones in effect. It is on by default.
|
|
103
|
+
|
|
104
|
+
The reset only applies to elements PrimeReact renders itself, scoped through the `data-scope` attribute each component sets. A `<button>` or `<ul>` outside a PrimeReact component keeps its normal browser defaults.
|
|
105
|
+
|
|
106
|
+
Turn it off with the `preflight` property on the provider:
|
|
107
|
+
|
|
108
|
+
```tsx showLineNumbers {6}
|
|
109
|
+
import { PrimeReactProvider } from '@primereact/core';
|
|
110
|
+
...
|
|
111
|
+
|
|
112
|
+
ReactDOM.createRoot(document.getElementById('root')).render(
|
|
113
|
+
<React.StrictMode>
|
|
114
|
+
<PrimeReactProvider preflight={false}>
|
|
115
|
+
<App />
|
|
116
|
+
</PrimeReactProvider>
|
|
117
|
+
</React.StrictMode>
|
|
118
|
+
);
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Turn it off in a project that already resets these elements, for example with Tailwind's own preflight, normalize.css or Bootstrap's reboot.
|
|
122
|
+
|
|
123
|
+
An application that loads Tailwind through a cascade layer needs the `primeui` layer declared before the `tailwindcss` import. The reset lives in `primeui.base`, a layer nested inside `primeui`, so declaring `primeui` alone is enough to position both the reset and the theme; a separate `primeui-base` declaration does not reach it and the reset ends up overriding the theme instead. This is also the layer name `theme.options.cssLayer` wraps component styles in when enabled (`primeui` by default, or the name passed to it), so an application already using that option has already declared the layer it needs. See the [Tailwind guide](/docs/styled/guides/theming/tailwind) for the declaration and why the order matters.
|
|
124
|
+
|
|
100
125
|
## PassThrough
|
|
101
126
|
|
|
102
127
|
Defines the shared pass through properties per component type. Visit the [Pass Through Props](/docs/passthrough) documentation for more information.
|
|
@@ -171,7 +171,7 @@ Tokens follow the [Design Tokens Format Module](https://www.designtokens.org/tr/
|
|
|
171
171
|
|
|
172
172
|
### Moving existing customizations
|
|
173
173
|
|
|
174
|
-
| v10
|
|
174
|
+
| v10 | Where it goes in v11 |
|
|
175
175
|
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
176
176
|
| A SASS theme built from `theme.scss` | Variable overrides become token overrides in a preset. A rewrite, but usually a much shorter file, since a preset only lists what differs from the base. |
|
|
177
177
|
| CSS overrides against `p-*` classes | Still work. The class names survived. Keep them as the fallback, since a token reaches every component that uses it while a selector reaches one. |
|
|
@@ -190,7 +190,7 @@ v10 had one way to get unstyled components: the `unstyled` flag, set globally or
|
|
|
190
190
|
| `<PrimeReactProvider unstyled>` | The whole application is styled by something else |
|
|
191
191
|
| `unstyled` on a component | Most of the app is themed, one screen is not |
|
|
192
192
|
| Import from `primereact` | Building a design system on the primitives, with no theme layer in the bundle |
|
|
193
|
-
| Import from `@primereact/headless` | Hand-written markup as well as hand-written styling
|
|
193
|
+
| Import from `@primereact/headless` | Hand-written markup as well as hand-written styling |
|
|
194
194
|
|
|
195
195
|
The last two are the difference from v10. There, unstyled mode meant the styled component with its class generation switched off, so the theming layer still shipped. In v11 the layers are separate packages, so importing from `primereact` means the styles never enter the bundle at all.
|
|
196
196
|
|
|
@@ -48,6 +48,31 @@ In the CSS file that contains the tailwindcss import, add the `tailwindcss-prime
|
|
|
48
48
|
@import 'tailwindcss-primeui';
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
### Cascade layer
|
|
52
|
+
|
|
53
|
+
PrimeReact resets the browser defaults on the native elements it renders (preflight, see the [configuration guide](/docs/styled/guides/configuration)), and those rules live in `primeui.base`, a cascade layer nested under `primeui`. A CSS layer is ordered where its name is first declared, not where its rules are written, so when `tailwindcss` declares its layers first, `primeui` ends up after them and the reset wins over utility classes.
|
|
54
|
+
|
|
55
|
+
This only shows up in server-rendered apps, and only before hydration: PrimeReact injects the layer declaration at runtime, which lands after the application's own CSS on the first server-rendered response. Utility classes meant to override the reset lose until the client takes over, so the first paint is visibly wrong and corrects itself once React hydrates.
|
|
56
|
+
|
|
57
|
+
Fix the order by declaring the layer above the `tailwindcss` import:
|
|
58
|
+
|
|
59
|
+
```css
|
|
60
|
+
@layer primeui;
|
|
61
|
+
|
|
62
|
+
@import 'tailwindcss';
|
|
63
|
+
@import 'tailwindcss-primeui';
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Declaring `primeui` is enough on its own: `primeui.base`, where the reset lives, is nested inside it, and a nested layer's order is fixed by its parent's. Declaring it after the `tailwindcss` import does nothing, since the order is already fixed by then. This applies to any framework that declares its own layers, not just Tailwind.
|
|
67
|
+
|
|
68
|
+
An application with `theme.options.cssLayer` enabled has already declared this layer: that option wraps PrimeReact's component styles, variables and global style in a layer named `primeui` by default, or in whatever name is passed to it (`{ name: 'myui' }` produces `myui`), and `@layer primeui;` covers the reset and that layer with the same line.
|
|
69
|
+
|
|
70
|
+
Where Tailwind's own preflight is already in use, or another reset such as normalize.css or Bootstrap's reboot, turn off PrimeReact's instead of maintaining two resets:
|
|
71
|
+
|
|
72
|
+
```tsx
|
|
73
|
+
<PrimeReactProvider preflight={false}>
|
|
74
|
+
```
|
|
75
|
+
|
|
51
76
|
### Tailwind v3
|
|
52
77
|
|
|
53
78
|
Use the plugins option in your Tailwind config file to configure the plugin.
|
|
@@ -37,19 +37,19 @@
|
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"name": "style",
|
|
40
|
-
"type": "CSSProperties | ((instance?: ButtonInstance) => CSSProperties)",
|
|
40
|
+
"type": "CSSProperties | ((instance?: ButtonInstance) => undefined | CSSProperties)",
|
|
41
41
|
"default": "",
|
|
42
42
|
"description": "The style to apply to the component."
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"name": "className",
|
|
46
|
-
"type": "string | ((instance?: ButtonInstance) => string)",
|
|
46
|
+
"type": "string | ((instance?: ButtonInstance) => undefined | string)",
|
|
47
47
|
"default": "",
|
|
48
48
|
"description": "The class name to apply to the component."
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
"name": "as",
|
|
52
|
-
"type": "string | number | bigint | boolean | ComponentClass<any, any> | FunctionComponent<any> | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode, any, any> | ReactPortal | Promise<AwaitedReactNode>",
|
|
52
|
+
"type": "null | string | number | bigint | boolean | ComponentClass<any, any> | FunctionComponent<any> | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode, any, any> | ReactPortal | Promise<AwaitedReactNode>",
|
|
53
53
|
"default": "",
|
|
54
54
|
"description": "The component type to render."
|
|
55
55
|
},
|
|
@@ -128,31 +128,31 @@
|
|
|
128
128
|
{
|
|
129
129
|
"name": "plain",
|
|
130
130
|
"type": "boolean",
|
|
131
|
-
"default": "",
|
|
131
|
+
"default": "false",
|
|
132
132
|
"description": "Whether to show the Button with a plain style."
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
135
|
"name": "rounded",
|
|
136
136
|
"type": "boolean",
|
|
137
|
-
"default": "",
|
|
137
|
+
"default": "false",
|
|
138
138
|
"description": "Whether to show the Button with a rounded style."
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
"name": "raised",
|
|
142
142
|
"type": "boolean",
|
|
143
|
-
"default": "",
|
|
143
|
+
"default": "false",
|
|
144
144
|
"description": "Whether to show the Button with a raised style."
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
147
|
"name": "iconOnly",
|
|
148
148
|
"type": "boolean",
|
|
149
|
-
"default": "",
|
|
149
|
+
"default": "false",
|
|
150
150
|
"description": "Whether to show the Button with a borderless style."
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"name": "fluid",
|
|
154
154
|
"type": "boolean",
|
|
155
|
-
"default": "",
|
|
155
|
+
"default": "false",
|
|
156
156
|
"description": "Whether to show the Button with a fluid width."
|
|
157
157
|
},
|
|
158
158
|
{
|
|
@@ -63,7 +63,7 @@ export default function Preview() {
|
|
|
63
63
|
</DataTableTHeadRow>
|
|
64
64
|
</DataTableTHead>
|
|
65
65
|
<DataTableTBody>
|
|
66
|
-
{({ item }: { item:
|
|
66
|
+
{({ item }: { item: Product }) => (
|
|
67
67
|
<DataTableRow key={item.id}>
|
|
68
68
|
<DataTableCell>
|
|
69
69
|
<div className="flex items-center gap-3">
|
|
@@ -247,7 +247,7 @@ export default function BasicDemo() {
|
|
|
247
247
|
</DataTableTHeadRow>
|
|
248
248
|
</DataTableTHead>
|
|
249
249
|
<DataTableTBody>
|
|
250
|
-
{({ item }: { item:
|
|
250
|
+
{({ item }: { item: Product }) => (
|
|
251
251
|
<DataTableRow key={item.id}>
|
|
252
252
|
<DataTableCell>
|
|
253
253
|
<div className="flex items-center gap-3">
|
|
@@ -337,7 +337,7 @@ function ProductTable({ stripedRows, showGridlines, size }: { stripedRows?: bool
|
|
|
337
337
|
</DataTableTHeadRow>
|
|
338
338
|
</DataTableTHead>
|
|
339
339
|
<DataTableTBody>
|
|
340
|
-
{({ item }: { item:
|
|
340
|
+
{({ item }: { item: Product }) => (
|
|
341
341
|
<DataTableRow key={item.id}>
|
|
342
342
|
<DataTableCell>
|
|
343
343
|
<span className="font-medium">{item.name}</span>
|
|
@@ -464,7 +464,7 @@ export default function SingleSelectionDemo() {
|
|
|
464
464
|
</DataTableTHeadRow>
|
|
465
465
|
</DataTableTHead>
|
|
466
466
|
<DataTableTBody>
|
|
467
|
-
{({ item }: { item:
|
|
467
|
+
{({ item }: { item: Product }) => (
|
|
468
468
|
<DataTableRow key={item.id}>
|
|
469
469
|
<DataTableCell>
|
|
470
470
|
<div className="flex items-center gap-3">
|
|
@@ -634,7 +634,7 @@ export default function MultipleSelectionDemo() {
|
|
|
634
634
|
</DataTableTHeadRow>
|
|
635
635
|
</DataTableTHead>
|
|
636
636
|
<DataTableTBody>
|
|
637
|
-
{({ item }: { item:
|
|
637
|
+
{({ item }: { item: Product }) => (
|
|
638
638
|
<DataTableRow key={item.id}>
|
|
639
639
|
<DataTableCell>
|
|
640
640
|
<div className="flex items-center gap-3">
|
|
@@ -783,7 +783,7 @@ export default function CheckboxSelectionDemo() {
|
|
|
783
783
|
</DataTableTHeadRow>
|
|
784
784
|
</DataTableTHead>
|
|
785
785
|
<DataTableTBody>
|
|
786
|
-
{({ item }: { item:
|
|
786
|
+
{({ item }: { item: Customer }) => (
|
|
787
787
|
<DataTableRow key={item.id}>
|
|
788
788
|
<DataTableCell>
|
|
789
789
|
<PRDataTable.Selection>
|
|
@@ -909,7 +909,7 @@ export default function KeyboardDemo() {
|
|
|
909
909
|
</DataTableTHeadRow>
|
|
910
910
|
</DataTableTHead>
|
|
911
911
|
<DataTableTBody>
|
|
912
|
-
{({ item }: { item:
|
|
912
|
+
{({ item }: { item: Product }) => (
|
|
913
913
|
<DataTableRow key={item.id}>
|
|
914
914
|
<DataTableCell>
|
|
915
915
|
<div className="flex items-center gap-3">
|
|
@@ -1081,7 +1081,7 @@ export default function SortDemo() {
|
|
|
1081
1081
|
</DataTableTHeadRow>
|
|
1082
1082
|
</DataTableTHead>
|
|
1083
1083
|
<DataTableTBody>
|
|
1084
|
-
{({ item }: { item:
|
|
1084
|
+
{({ item }: { item: Product }) => (
|
|
1085
1085
|
<DataTableRow key={item.id}>
|
|
1086
1086
|
<DataTableCell>
|
|
1087
1087
|
<div className="flex items-center gap-3">
|
|
@@ -1252,7 +1252,7 @@ export default function MultiSortDemo() {
|
|
|
1252
1252
|
</DataTableTHeadRow>
|
|
1253
1253
|
</DataTableTHead>
|
|
1254
1254
|
<DataTableTBody>
|
|
1255
|
-
{({ item }: { item:
|
|
1255
|
+
{({ item }: { item: Product }) => (
|
|
1256
1256
|
<DataTableRow key={item.id}>
|
|
1257
1257
|
<DataTableCell>
|
|
1258
1258
|
<div className="flex items-center gap-3">
|
|
@@ -1423,7 +1423,7 @@ export default function PresortDemo() {
|
|
|
1423
1423
|
</DataTableTHeadRow>
|
|
1424
1424
|
</DataTableTHead>
|
|
1425
1425
|
<DataTableTBody>
|
|
1426
|
-
{({ item }: { item:
|
|
1426
|
+
{({ item }: { item: Product }) => (
|
|
1427
1427
|
<DataTableRow key={item.id}>
|
|
1428
1428
|
<DataTableCell>
|
|
1429
1429
|
<div className="flex items-center gap-3">
|
|
@@ -1599,7 +1599,7 @@ export default function PresortMultiDemo() {
|
|
|
1599
1599
|
</DataTableTHeadRow>
|
|
1600
1600
|
</DataTableTHead>
|
|
1601
1601
|
<DataTableTBody>
|
|
1602
|
-
{({ item }: { item:
|
|
1602
|
+
{({ item }: { item: Product }) => (
|
|
1603
1603
|
<DataTableRow key={item.id}>
|
|
1604
1604
|
<DataTableCell>
|
|
1605
1605
|
<div className="flex items-center gap-3">
|
|
@@ -1724,7 +1724,7 @@ export default function PaginationDemo() {
|
|
|
1724
1724
|
</DataTableTHeadRow>
|
|
1725
1725
|
</DataTableTHead>
|
|
1726
1726
|
<DataTableTBody>
|
|
1727
|
-
{({ item }: { item:
|
|
1727
|
+
{({ item }: { item: Product }) => (
|
|
1728
1728
|
<DataTableRow key={item.id}>
|
|
1729
1729
|
<DataTableCell>
|
|
1730
1730
|
<span className="font-medium">{item.name}</span>
|
|
@@ -1846,7 +1846,7 @@ export default function ScrollHorizontalDemo() {
|
|
|
1846
1846
|
</DataTableTHeadRow>
|
|
1847
1847
|
</DataTableTHead>
|
|
1848
1848
|
<DataTableTBody>
|
|
1849
|
-
{({ item }: { item:
|
|
1849
|
+
{({ item }: { item: Customer }) => (
|
|
1850
1850
|
<DataTableRow key={item.id}>
|
|
1851
1851
|
<DataTableCell>{item.id}</DataTableCell>
|
|
1852
1852
|
<DataTableCell>
|
|
@@ -1971,7 +1971,7 @@ export default function ScrollFrozenColumnsMultiDemo() {
|
|
|
1971
1971
|
</DataTableTHeadRow>
|
|
1972
1972
|
</DataTableTHead>
|
|
1973
1973
|
<DataTableTBody>
|
|
1974
|
-
{({ item }: { item:
|
|
1974
|
+
{({ item }: { item: Customer }) => (
|
|
1975
1975
|
<DataTableRow key={String(item.id)}>
|
|
1976
1976
|
<DataTableCell frozen>
|
|
1977
1977
|
<span className="text-xs text-surface-500 dark:text-surface-400 tabular-nums">#{String(item.id)}</span>
|
|
@@ -2089,6 +2089,7 @@ export default function ScrollFrozenRowsDemo() {
|
|
|
2089
2089
|
const toggleLock = React.useCallback((id: number) => {
|
|
2090
2090
|
setLockedIds((prev) => {
|
|
2091
2091
|
if (prev.includes(id)) return prev.filter((x) => x !== id);
|
|
2092
|
+
|
|
2092
2093
|
if (prev.length >= 2) return prev;
|
|
2093
2094
|
|
|
2094
2095
|
return [...prev, id];
|
|
@@ -2145,7 +2146,7 @@ export default function ScrollFrozenRowsDemo() {
|
|
|
2145
2146
|
);
|
|
2146
2147
|
}, []);
|
|
2147
2148
|
|
|
2148
|
-
const tbodyRender = React.useCallback(({ item }: { item:
|
|
2149
|
+
const tbodyRender = React.useCallback(({ item }: { item: Customer }) => renderRow(item as Customer), [renderRow]);
|
|
2149
2150
|
|
|
2150
2151
|
return (
|
|
2151
2152
|
<div className="w-full">
|
|
@@ -2313,7 +2314,7 @@ export default function ExpansionDemo() {
|
|
|
2313
2314
|
</DataTableTHeadRow>
|
|
2314
2315
|
</DataTableTHead>
|
|
2315
2316
|
<DataTableTBody>
|
|
2316
|
-
{({ item }: { item:
|
|
2317
|
+
{({ item }: { item: Product }) => (
|
|
2317
2318
|
<React.Fragment key={item.id}>
|
|
2318
2319
|
<DataTableRow>
|
|
2319
2320
|
<DataTableCell>
|
|
@@ -2438,18 +2439,6 @@ import {
|
|
|
2438
2439
|
import { Tag } from '@/components/ui/tag';
|
|
2439
2440
|
import * as React from 'react';
|
|
2440
2441
|
|
|
2441
|
-
const statusSeverity: Record<string, 'success' | 'warn' | 'danger'> = {
|
|
2442
|
-
INSTOCK: 'success',
|
|
2443
|
-
LOWSTOCK: 'warn',
|
|
2444
|
-
OUTOFSTOCK: 'danger'
|
|
2445
|
-
};
|
|
2446
|
-
|
|
2447
|
-
const statusLabel: Record<string, string> = {
|
|
2448
|
-
INSTOCK: 'In Stock',
|
|
2449
|
-
LOWSTOCK: 'Low Stock',
|
|
2450
|
-
OUTOFSTOCK: 'Out of Stock'
|
|
2451
|
-
};
|
|
2452
|
-
|
|
2453
2442
|
export default function ResizeDemo() {
|
|
2454
2443
|
const [products, setProducts] = React.useState<Product[]>([]);
|
|
2455
2444
|
|
|
@@ -2484,7 +2473,7 @@ export default function ResizeDemo() {
|
|
|
2484
2473
|
</DataTableTHeadRow>
|
|
2485
2474
|
</DataTableTHead>
|
|
2486
2475
|
<DataTableTBody>
|
|
2487
|
-
{({ item }: { item:
|
|
2476
|
+
{({ item }: { item: Product }) => (
|
|
2488
2477
|
<DataTableRow key={item.id}>
|
|
2489
2478
|
<DataTableCell>
|
|
2490
2479
|
<div className="flex items-center gap-3">
|
|
@@ -2611,7 +2600,7 @@ export default function ResizeExpandDemo() {
|
|
|
2611
2600
|
</DataTableTHeadRow>
|
|
2612
2601
|
</DataTableTHead>
|
|
2613
2602
|
<DataTableTBody>
|
|
2614
|
-
{({ item }: { item:
|
|
2603
|
+
{({ item }: { item: Product }) => (
|
|
2615
2604
|
<DataTableRow key={item.id}>
|
|
2616
2605
|
<DataTableCell>
|
|
2617
2606
|
<div className="flex items-center gap-3">
|
|
@@ -2789,7 +2778,7 @@ export default function ReorderDemo() {
|
|
|
2789
2778
|
</DataTableTHeadRow>
|
|
2790
2779
|
</DataTableTHead>
|
|
2791
2780
|
<DataTableTBody key={columns.map((c) => c.field).join(',')}>
|
|
2792
|
-
{({ item }: { item:
|
|
2781
|
+
{({ item }: { item: Product }) => (
|
|
2793
2782
|
<DataTableRow key={item.id}>
|
|
2794
2783
|
{columns.map((col) => (
|
|
2795
2784
|
<DataTableCell key={col.field}>{renderCell(col.field, item)}</DataTableCell>
|
|
@@ -2905,7 +2894,7 @@ export default function RowReorderDemo() {
|
|
|
2905
2894
|
</DataTableTHeadRow>
|
|
2906
2895
|
</DataTableTHead>
|
|
2907
2896
|
<DataTableTBody>
|
|
2908
|
-
{({ item, index }: { item:
|
|
2897
|
+
{({ item, index }: { item: Product; index: number }) => (
|
|
2909
2898
|
<DataTableRow key={item.id}>
|
|
2910
2899
|
<DataTableCell>
|
|
2911
2900
|
<DataTableRowReorder rowIndex={index} className="cursor-grab text-surface-400 hover:text-surface-600">
|
|
@@ -3067,7 +3056,7 @@ export default function ColumnGroupDemo() {
|
|
|
3067
3056
|
</DataTableTHeadRow>
|
|
3068
3057
|
</DataTableTHead>
|
|
3069
3058
|
<DataTableTBody>
|
|
3070
|
-
{({ item }: { item:
|
|
3059
|
+
{({ item }: { item: Sale }) => (
|
|
3071
3060
|
<DataTableRow key={item.id}>
|
|
3072
3061
|
<DataTableCell>
|
|
3073
3062
|
<span className="font-medium">{item.product}</span>
|
|
@@ -3252,7 +3241,7 @@ export default function ColumnGroupFilterSortDemo() {
|
|
|
3252
3241
|
{({ value, onChange }: DataTableFilterInstance) => (
|
|
3253
3242
|
<InputText
|
|
3254
3243
|
value={(value as string) ?? ''}
|
|
3255
|
-
onChange={(e:
|
|
3244
|
+
onChange={(e: React.ChangeEvent<HTMLInputElement>) => onChange(e, e.target.value)}
|
|
3256
3245
|
placeholder="Search"
|
|
3257
3246
|
size="small"
|
|
3258
3247
|
fluid
|
|
@@ -3266,7 +3255,9 @@ export default function ColumnGroupFilterSortDemo() {
|
|
|
3266
3255
|
{({ value, onChange }: DataTableFilterInstance) => (
|
|
3267
3256
|
<InputText
|
|
3268
3257
|
value={(value as string) ?? ''}
|
|
3269
|
-
onChange={(e:
|
|
3258
|
+
onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
|
|
3259
|
+
onChange(e, e.target.value ? Number(e.target.value) : null, 'gte')
|
|
3260
|
+
}
|
|
3270
3261
|
placeholder="≥"
|
|
3271
3262
|
size="small"
|
|
3272
3263
|
fluid
|
|
@@ -3279,7 +3270,7 @@ export default function ColumnGroupFilterSortDemo() {
|
|
|
3279
3270
|
</DataTableTHeadRow>
|
|
3280
3271
|
</DataTableTHead>
|
|
3281
3272
|
<DataTableTBody>
|
|
3282
|
-
{({ item }: { item:
|
|
3273
|
+
{({ item }: { item: Sale }) => (
|
|
3283
3274
|
<DataTableRow key={item.id}>
|
|
3284
3275
|
<DataTableCell>
|
|
3285
3276
|
<span className="font-medium">{item.product}</span>
|
|
@@ -3402,7 +3393,7 @@ export default function FilterDemo() {
|
|
|
3402
3393
|
</DataTableTHeadRow>
|
|
3403
3394
|
</DataTableTHead>
|
|
3404
3395
|
<DataTableTBody>
|
|
3405
|
-
{({ item }: { item:
|
|
3396
|
+
{({ item }: { item: Product }) => (
|
|
3406
3397
|
<DataTableRow key={item.id}>
|
|
3407
3398
|
<DataTableCell>
|
|
3408
3399
|
<span className="font-medium">{item.name}</span>
|
|
@@ -3489,7 +3480,7 @@ export default function TemplateDemo() {
|
|
|
3489
3480
|
</DataTableTHeadRow>
|
|
3490
3481
|
</DataTableTHead>
|
|
3491
3482
|
<DataTableTBody>
|
|
3492
|
-
{({ item }: { item:
|
|
3483
|
+
{({ item }: { item: Product }) => (
|
|
3493
3484
|
<DataTableRow key={item.id}>
|
|
3494
3485
|
<DataTableCell>
|
|
3495
3486
|
<div className="flex items-center gap-3">
|
|
@@ -3611,7 +3602,7 @@ export default function ExportDemo() {
|
|
|
3611
3602
|
</DataTableTHeadRow>
|
|
3612
3603
|
</DataTableTHead>
|
|
3613
3604
|
<DataTableTBody>
|
|
3614
|
-
{({ item }: { item:
|
|
3605
|
+
{({ item }: { item: Product }) => (
|
|
3615
3606
|
<DataTableRow key={item.id}>
|
|
3616
3607
|
<DataTableCell>
|
|
3617
3608
|
<div className="flex items-center gap-3">
|
|
@@ -3755,7 +3746,7 @@ export default function LoadingOverlayDemo() {
|
|
|
3755
3746
|
</DataTableTHeadRow>
|
|
3756
3747
|
</DataTableTHead>
|
|
3757
3748
|
<DataTableTBody>
|
|
3758
|
-
{({ item }: { item:
|
|
3749
|
+
{({ item }: { item: Product }) => (
|
|
3759
3750
|
<DataTableRow key={item.id}>
|
|
3760
3751
|
<DataTableCell>
|
|
3761
3752
|
<div className="flex items-center gap-3">
|
|
@@ -3886,7 +3877,7 @@ export default function LoadingSkeletonDemo() {
|
|
|
3886
3877
|
</DataTableTHeadRow>
|
|
3887
3878
|
</DataTableTHead>
|
|
3888
3879
|
<DataTableTBody>
|
|
3889
|
-
{({ item }: { item:
|
|
3880
|
+
{({ item }: { item: Product }) =>
|
|
3890
3881
|
isLoading ? (
|
|
3891
3882
|
<DataTableRow key={item.id}>
|
|
3892
3883
|
<DataTableCell>
|
|
@@ -3992,7 +3983,7 @@ export default function EmptyDemo() {
|
|
|
3992
3983
|
</DataTableTHeadRow>
|
|
3993
3984
|
</DataTableTHead>
|
|
3994
3985
|
<DataTableTBody>
|
|
3995
|
-
{({ item }: { item:
|
|
3986
|
+
{({ item }: { item: Record<string, unknown> }) => (
|
|
3996
3987
|
<DataTableRow key={String(item.id)}>
|
|
3997
3988
|
<DataTableCell>{String(item.name)}</DataTableCell>
|
|
3998
3989
|
<DataTableCell>{String(item.category)}</DataTableCell>
|
|
@@ -246,7 +246,6 @@ Checkbox and RadioButton components can be combined with an input element under
|
|
|
246
246
|
|
|
247
247
|
```tsx
|
|
248
248
|
'use client';
|
|
249
|
-
import { Check } from '@primeicons/react';
|
|
250
249
|
import { Checkbox } from '@/components/ui/checkbox';
|
|
251
250
|
import { InputGroup, InputGroupAddon } from '@/components/ui/inputgroup';
|
|
252
251
|
import { InputText } from '@/components/ui/inputtext';
|
|
@@ -7,6 +7,7 @@ Select is used to choose an item from a collection of options.
|
|
|
7
7
|
import { Select, SelectList, SelectOption, SelectPopup, SelectPortal, SelectPositioner, SelectTrigger, SelectValue } from '@/components/ui/select';
|
|
8
8
|
import type { SelectValueChangeEvent } from 'primereact/select';
|
|
9
9
|
import * as React from 'react';
|
|
10
|
+
|
|
10
11
|
const languages = [
|
|
11
12
|
{ label: 'Select your language', value: '' },
|
|
12
13
|
{ label: 'English', value: 'en' },
|
|
@@ -112,6 +113,7 @@ Choose a single value from a dropdown list of options.
|
|
|
112
113
|
import { Select, SelectList, SelectOption, SelectPopup, SelectPortal, SelectPositioner, SelectTrigger, SelectValue } from '@/components/ui/select';
|
|
113
114
|
import type { SelectValueChangeEvent } from 'primereact/select';
|
|
114
115
|
import * as React from 'react';
|
|
116
|
+
|
|
115
117
|
const languages = [
|
|
116
118
|
{ label: 'Select your language', value: '' },
|
|
117
119
|
{ label: 'English', value: 'en' },
|
|
@@ -635,6 +637,7 @@ export default function GroupDemo() {
|
|
|
635
637
|
<SelectList>
|
|
636
638
|
{(() => {
|
|
637
639
|
let index = 0;
|
|
640
|
+
|
|
638
641
|
return jobCategories.flatMap((category) => [
|
|
639
642
|
<SelectOption key={`group-${category.code}`} index={index++} group>
|
|
640
643
|
{category.label}
|
|
@@ -49,9 +49,10 @@ import {
|
|
|
49
49
|
Users
|
|
50
50
|
} from '@primeicons/react';
|
|
51
51
|
import * as React from 'react';
|
|
52
|
+
import type { IconProps } from '@primeicons/react/core';
|
|
52
53
|
|
|
53
54
|
type NavItem = {
|
|
54
|
-
icon: React.FC<
|
|
55
|
+
icon: React.FC<IconProps>;
|
|
55
56
|
label: string;
|
|
56
57
|
isActive?: boolean;
|
|
57
58
|
badge?: string;
|
|
@@ -331,9 +332,12 @@ import { ChevronDown } from '@primeicons/react/chevron-down';
|
|
|
331
332
|
import { SelectValueChangeEvent } from 'primereact/select';
|
|
332
333
|
import { ToggleButtonGroupValueChangeEvent } from 'primereact/togglebuttongroup';
|
|
333
334
|
import * as React from 'react';
|
|
335
|
+
import type { CheckboxRootChangeEvent } from 'primereact/checkbox';
|
|
336
|
+
import type { IconProps } from '@primeicons/react/core';
|
|
337
|
+
import type { SidebarCollapsible, SidebarSide, SidebarVariant } from '@primereact/ui/sidebar';
|
|
334
338
|
|
|
335
339
|
type NavItem = {
|
|
336
|
-
icon: React.FC<
|
|
340
|
+
icon: React.FC<IconProps>;
|
|
337
341
|
label: string;
|
|
338
342
|
isActive?: boolean;
|
|
339
343
|
badge?: string;
|
|
@@ -382,9 +386,9 @@ const collapsibleOptions = [
|
|
|
382
386
|
];
|
|
383
387
|
|
|
384
388
|
export default function VariantsDemo() {
|
|
385
|
-
const [variant, setVariant] = React.useState<
|
|
386
|
-
const [collapsible, setCollapsible] = React.useState<
|
|
387
|
-
const [side, setSide] = React.useState<
|
|
389
|
+
const [variant, setVariant] = React.useState<SidebarVariant>('sidebar');
|
|
390
|
+
const [collapsible, setCollapsible] = React.useState<SidebarCollapsible>('icon');
|
|
391
|
+
const [side, setSide] = React.useState<SidebarSide>('left');
|
|
388
392
|
const [overlay, setOverlay] = React.useState(false);
|
|
389
393
|
const [openOnHover, setOpenOnHover] = React.useState(false);
|
|
390
394
|
const [backdrop, setBackdrop] = React.useState(false);
|
|
@@ -394,7 +398,7 @@ export default function VariantsDemo() {
|
|
|
394
398
|
<div className="flex flex-wrap items-center gap-4 mb-4">
|
|
395
399
|
<Select
|
|
396
400
|
value={variant}
|
|
397
|
-
onValueChange={(e: SelectValueChangeEvent) => setVariant(e.value as
|
|
401
|
+
onValueChange={(e: SelectValueChangeEvent) => setVariant(e.value as SidebarVariant)}
|
|
398
402
|
options={variantOptions}
|
|
399
403
|
optionLabel="label"
|
|
400
404
|
optionValue="value"
|
|
@@ -413,7 +417,7 @@ export default function VariantsDemo() {
|
|
|
413
417
|
</Select>
|
|
414
418
|
<Select
|
|
415
419
|
value={collapsible}
|
|
416
|
-
onValueChange={(e: SelectValueChangeEvent) => setCollapsible(e.value as
|
|
420
|
+
onValueChange={(e: SelectValueChangeEvent) => setCollapsible(e.value as SidebarCollapsible)}
|
|
417
421
|
options={collapsibleOptions}
|
|
418
422
|
optionLabel="label"
|
|
419
423
|
optionValue="value"
|
|
@@ -440,19 +444,19 @@ export default function VariantsDemo() {
|
|
|
440
444
|
<ToggleButton value="right">Right</ToggleButton>
|
|
441
445
|
</ToggleButtonGroup>
|
|
442
446
|
<div className="flex items-center gap-2">
|
|
443
|
-
<Checkbox inputId="overlay-cb" checked={overlay} onCheckedChange={(e:
|
|
447
|
+
<Checkbox inputId="overlay-cb" checked={overlay} onCheckedChange={(e: CheckboxRootChangeEvent) => setOverlay(e.checked)} />
|
|
444
448
|
<label htmlFor="overlay-cb" className="text-sm font-medium cursor-pointer">
|
|
445
449
|
Overlay
|
|
446
450
|
</label>
|
|
447
451
|
</div>
|
|
448
452
|
<div className="flex items-center gap-2">
|
|
449
|
-
<Checkbox inputId="hover-cb" checked={openOnHover} onCheckedChange={(e:
|
|
453
|
+
<Checkbox inputId="hover-cb" checked={openOnHover} onCheckedChange={(e: CheckboxRootChangeEvent) => setOpenOnHover(e.checked)} />
|
|
450
454
|
<label htmlFor="hover-cb" className="text-sm font-medium cursor-pointer">
|
|
451
455
|
Open on Hover
|
|
452
456
|
</label>
|
|
453
457
|
</div>
|
|
454
458
|
<div className="flex items-center gap-2">
|
|
455
|
-
<Checkbox inputId="backdrop-cb" checked={backdrop} onCheckedChange={(e:
|
|
459
|
+
<Checkbox inputId="backdrop-cb" checked={backdrop} onCheckedChange={(e: CheckboxRootChangeEvent) => setBackdrop(e.checked)} />
|
|
456
460
|
<label htmlFor="backdrop-cb" className="text-sm font-medium cursor-pointer">
|
|
457
461
|
Backdrop
|
|
458
462
|
</label>
|
|
@@ -1181,10 +1185,11 @@ import {
|
|
|
1181
1185
|
SidebarTrigger
|
|
1182
1186
|
} from '@/components/ui/sidebar';
|
|
1183
1187
|
import { ChevronDown, Folder, Globe, Image, Sidebar as SidebarIcon, Video } from '@primeicons/react';
|
|
1188
|
+
import type { IconProps } from '@primeicons/react/core';
|
|
1184
1189
|
|
|
1185
1190
|
type MenuItem = {
|
|
1186
1191
|
label: string;
|
|
1187
|
-
icon?: React.FC<
|
|
1192
|
+
icon?: React.FC<IconProps>;
|
|
1188
1193
|
isActive?: boolean;
|
|
1189
1194
|
children?: MenuItem[];
|
|
1190
1195
|
};
|