From a9acf797f36279e4801a5dac9873798b2c4b2e7b Mon Sep 17 00:00:00 2001 From: arnold Date: Mon, 3 Feb 2025 14:16:34 +0100 Subject: [PATCH 01/21] PrimeReact support WIP --- package.json | 1 + packages/playground/package.json | 1 + packages/playground/src/app.tsx | 163 ++++++++++++++++++ .../playground/src/components/DemoFrame.tsx | 9 + packages/playground/tsconfig.json | 3 + packages/playground/vite.config.ts | 1 + packages/primereact/.eslintrc | 9 + packages/primereact/README.md | 118 +++++++++++++ packages/primereact/babel.config.js | 3 + packages/primereact/jest.config.js | 11 ++ packages/primereact/logo.png | Bin 0 -> 94509 bytes packages/primereact/package.json | 103 +++++++++++ .../primereact/src/AddButton/AddButton.tsx | 23 +++ packages/primereact/src/AddButton/index.ts | 2 + .../ArrayFieldItemTemplate.tsx | 74 ++++++++ .../src/ArrayFieldItemTemplate/index.ts | 2 + .../ArrayFieldTemplate/ArrayFieldTemplate.tsx | 109 ++++++++++++ .../src/ArrayFieldTemplate/index.ts | 2 + .../ArrayFieldTitleTemplate.tsx | 14 ++ .../src/ArrayFieldTitleTemplate/index.ts | 2 + .../AutoCompleteWidget/AutoCompleteWidget.tsx | 89 ++++++++++ .../src/AutoCompleteWidget/index.ts | 2 + .../BaseInputTemplate/BaseInputTemplate.tsx | 69 ++++++++ .../primereact/src/BaseInputTemplate/index.ts | 2 + .../src/CheckboxWidget/CheckboxWidget.tsx | 86 +++++++++ .../primereact/src/CheckboxWidget/index.ts | 2 + .../src/CheckboxesWidget/CheckboxesWidget.tsx | 106 ++++++++++++ .../primereact/src/CheckboxesWidget/index.ts | 2 + .../src/ColorWidget/ColorWidget.tsx | 56 ++++++ packages/primereact/src/ColorWidget/index.ts | 2 + .../src/DescriptionField/DescriptionField.tsx | 17 ++ .../primereact/src/DescriptionField/index.ts | 2 + .../primereact/src/ErrorList/ErrorList.tsx | 44 +++++ packages/primereact/src/ErrorList/index.ts | 2 + .../FieldErrorTemplate/FieldErrorTemplate.tsx | 30 ++++ .../src/FieldErrorTemplate/index.ts | 2 + .../FieldHelpTemplate/FieldHelpTemplate.tsx | 18 ++ .../primereact/src/FieldHelpTemplate/index.ts | 2 + .../src/FieldTemplate/FieldTemplate.tsx | 39 +++++ .../primereact/src/FieldTemplate/index.ts | 2 + .../primereact/src/IconButton/IconButton.tsx | 47 +++++ packages/primereact/src/IconButton/index.ts | 2 + .../ObjectFieldTemplate.tsx | 85 +++++++++ .../src/ObjectFieldTemplate/index.ts | 2 + .../src/PasswordWidget/PasswordWidget.tsx | 66 +++++++ .../primereact/src/PasswordWidget/index.ts | 2 + .../primereact/src/PrimeForm/PrimeForm.ts | 15 ++ packages/primereact/src/PrimeForm/index.ts | 2 + .../src/RadioWidget/RadioWidget.tsx | 58 +++++++ packages/primereact/src/RadioWidget/index.ts | 2 + .../src/RangeWidget/RangeWidget.tsx | 35 ++++ packages/primereact/src/RangeWidget/index.ts | 2 + .../src/SelectWidget/SelectWidget.tsx | 137 +++++++++++++++ packages/primereact/src/SelectWidget/index.ts | 2 + .../src/SubmitButton/SubmitButton.tsx | 16 ++ packages/primereact/src/SubmitButton/index.ts | 2 + .../primereact/src/Templates/Templates.ts | 48 ++++++ packages/primereact/src/Templates/index.ts | 2 + .../src/TextareaWidget/TextareaWidget.tsx | 39 +++++ .../primereact/src/TextareaWidget/index.ts | 2 + packages/primereact/src/Theme/Theme.ts | 20 +++ packages/primereact/src/Theme/index.ts | 2 + .../primereact/src/TitleField/TitleField.tsx | 19 ++ packages/primereact/src/TitleField/index.ts | 2 + .../src/UpDownWidget/UpDownWidget.tsx | 63 +++++++ packages/primereact/src/UpDownWidget/index.ts | 2 + packages/primereact/src/Widgets/Widgets.tsx | 33 ++++ packages/primereact/src/Widgets/index.ts | 2 + .../WrapIfAdditionalTemplate.tsx | 71 ++++++++ .../src/WrapIfAdditionalTemplate/index.ts | 2 + packages/primereact/src/index.ts | 8 + packages/primereact/src/tsconfig.json | 26 +++ packages/primereact/src/util.tsx | 141 +++++++++++++++ packages/primereact/test/Array.test.tsx | 5 + packages/primereact/test/Form.test.tsx | 60 +++++++ packages/primereact/test/Object.test.tsx | 5 + packages/primereact/test/tsconfig.json | 20 +++ packages/primereact/tsconfig.json | 12 ++ 78 files changed, 2283 insertions(+) create mode 100644 packages/primereact/.eslintrc create mode 100644 packages/primereact/README.md create mode 100644 packages/primereact/babel.config.js create mode 100644 packages/primereact/jest.config.js create mode 100644 packages/primereact/logo.png create mode 100644 packages/primereact/package.json create mode 100644 packages/primereact/src/AddButton/AddButton.tsx create mode 100644 packages/primereact/src/AddButton/index.ts create mode 100644 packages/primereact/src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx create mode 100644 packages/primereact/src/ArrayFieldItemTemplate/index.ts create mode 100644 packages/primereact/src/ArrayFieldTemplate/ArrayFieldTemplate.tsx create mode 100644 packages/primereact/src/ArrayFieldTemplate/index.ts create mode 100644 packages/primereact/src/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.tsx create mode 100644 packages/primereact/src/ArrayFieldTitleTemplate/index.ts create mode 100644 packages/primereact/src/AutoCompleteWidget/AutoCompleteWidget.tsx create mode 100644 packages/primereact/src/AutoCompleteWidget/index.ts create mode 100644 packages/primereact/src/BaseInputTemplate/BaseInputTemplate.tsx create mode 100644 packages/primereact/src/BaseInputTemplate/index.ts create mode 100644 packages/primereact/src/CheckboxWidget/CheckboxWidget.tsx create mode 100644 packages/primereact/src/CheckboxWidget/index.ts create mode 100644 packages/primereact/src/CheckboxesWidget/CheckboxesWidget.tsx create mode 100644 packages/primereact/src/CheckboxesWidget/index.ts create mode 100644 packages/primereact/src/ColorWidget/ColorWidget.tsx create mode 100644 packages/primereact/src/ColorWidget/index.ts create mode 100644 packages/primereact/src/DescriptionField/DescriptionField.tsx create mode 100644 packages/primereact/src/DescriptionField/index.ts create mode 100644 packages/primereact/src/ErrorList/ErrorList.tsx create mode 100644 packages/primereact/src/ErrorList/index.ts create mode 100644 packages/primereact/src/FieldErrorTemplate/FieldErrorTemplate.tsx create mode 100644 packages/primereact/src/FieldErrorTemplate/index.ts create mode 100644 packages/primereact/src/FieldHelpTemplate/FieldHelpTemplate.tsx create mode 100644 packages/primereact/src/FieldHelpTemplate/index.ts create mode 100644 packages/primereact/src/FieldTemplate/FieldTemplate.tsx create mode 100644 packages/primereact/src/FieldTemplate/index.ts create mode 100644 packages/primereact/src/IconButton/IconButton.tsx create mode 100644 packages/primereact/src/IconButton/index.ts create mode 100644 packages/primereact/src/ObjectFieldTemplate/ObjectFieldTemplate.tsx create mode 100644 packages/primereact/src/ObjectFieldTemplate/index.ts create mode 100644 packages/primereact/src/PasswordWidget/PasswordWidget.tsx create mode 100644 packages/primereact/src/PasswordWidget/index.ts create mode 100644 packages/primereact/src/PrimeForm/PrimeForm.ts create mode 100644 packages/primereact/src/PrimeForm/index.ts create mode 100644 packages/primereact/src/RadioWidget/RadioWidget.tsx create mode 100644 packages/primereact/src/RadioWidget/index.ts create mode 100644 packages/primereact/src/RangeWidget/RangeWidget.tsx create mode 100644 packages/primereact/src/RangeWidget/index.ts create mode 100644 packages/primereact/src/SelectWidget/SelectWidget.tsx create mode 100644 packages/primereact/src/SelectWidget/index.ts create mode 100644 packages/primereact/src/SubmitButton/SubmitButton.tsx create mode 100644 packages/primereact/src/SubmitButton/index.ts create mode 100644 packages/primereact/src/Templates/Templates.ts create mode 100644 packages/primereact/src/Templates/index.ts create mode 100644 packages/primereact/src/TextareaWidget/TextareaWidget.tsx create mode 100644 packages/primereact/src/TextareaWidget/index.ts create mode 100644 packages/primereact/src/Theme/Theme.ts create mode 100644 packages/primereact/src/Theme/index.ts create mode 100644 packages/primereact/src/TitleField/TitleField.tsx create mode 100644 packages/primereact/src/TitleField/index.ts create mode 100644 packages/primereact/src/UpDownWidget/UpDownWidget.tsx create mode 100644 packages/primereact/src/UpDownWidget/index.ts create mode 100644 packages/primereact/src/Widgets/Widgets.tsx create mode 100644 packages/primereact/src/Widgets/index.ts create mode 100644 packages/primereact/src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx create mode 100644 packages/primereact/src/WrapIfAdditionalTemplate/index.ts create mode 100644 packages/primereact/src/index.ts create mode 100644 packages/primereact/src/tsconfig.json create mode 100644 packages/primereact/src/util.tsx create mode 100644 packages/primereact/test/Array.test.tsx create mode 100644 packages/primereact/test/Form.test.tsx create mode 100644 packages/primereact/test/Object.test.tsx create mode 100644 packages/primereact/test/tsconfig.json create mode 100644 packages/primereact/tsconfig.json diff --git a/package.json b/package.json index de85797e0d..3ecf5f6f13 100644 --- a/package.json +++ b/package.json @@ -96,6 +96,7 @@ "packages/mui", "packages/playground", "packages/react-bootstrap", + "packages/primereact", "packages/semantic-ui", "packages/utils", "packages/validator-ajv8", diff --git a/packages/playground/package.json b/packages/playground/package.json index 46c80bee39..fbe9afad89 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -44,6 +44,7 @@ "@rjsf/core": "^6.0.0-beta.10", "@rjsf/fluentui-rc": "^6.0.0-beta.10", "@rjsf/mui": "^6.0.0-beta.10", + "@rjsf/primereact": "^6.0.0-beta.10", "@rjsf/react-bootstrap": "^6.0.0-beta.10", "@rjsf/semantic-ui": "^6.0.0-beta.10", "@rjsf/utils": "^6.0.0-beta.10", diff --git a/packages/playground/src/app.tsx b/packages/playground/src/app.tsx index ac88ccdcaf..1ea90154ff 100644 --- a/packages/playground/src/app.tsx +++ b/packages/playground/src/app.tsx @@ -6,6 +6,7 @@ import { Theme as BootstrapTheme } from '@rjsf/react-bootstrap'; import { Theme as ChakraUITheme } from '@rjsf/chakra-ui'; import { Theme as shadcnTheme } from '@rjsf/shadcn'; import { Theme as DaisyUITheme } from '@rjsf/daisyui'; +import { Theme as PrimeReactTheme } from '@rjsf/primereact'; import v8Validator, { customizeValidator } from '@rjsf/validator-ajv8'; import Ajv2019 from 'ajv/dist/2019.js'; import Ajv2020 from 'ajv/dist/2020.js'; @@ -151,6 +152,168 @@ const themes: PlaygroundProps['themes'] = { stylesheet: '//cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css', theme: BootstrapTheme, }, + primereact: { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-cyan/theme.css', + theme: PrimeReactTheme, + subthemes: { + 'arya-blue': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/arya-blue/theme.css', + }, + 'arya-green': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/arya-green/theme.css', + }, + 'arya-orange': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/arya-orange/theme.css', + }, + 'arya-purple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/arya-purple/theme.css', + }, + 'bootstrap4-dark-blue': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/bootstrap4-dark-blue/theme.css', + }, + 'bootstrap4-dark-purple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/bootstrap4-dark-purple/theme.css', + }, + 'bootstrap4-light-blue': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/bootstrap4-light-blue/theme.css', + }, + 'bootstrap4-light-purple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/bootstrap4-light-purple/theme.css', + }, + 'fluent-light': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/fluent-light/theme.css', + }, + 'lara-dark-amber': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-amber/theme.css', + }, + 'lara-dark-blue': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-blue/theme.css', + }, + 'lara-dark-cyan': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-cyan/theme.css', + }, + 'lara-dark-green': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-green/theme.css', + }, + 'lara-dark-indigo': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-indigo/theme.css', + }, + 'lara-dark-pink': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-pink/theme.css', + }, + 'lara-dark-purple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-purple/theme.css', + }, + 'lara-dark-teal': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-dark-teal/theme.css', + }, + 'lara-light-amber': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-amber/theme.css', + }, + 'lara-light-blue': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-blue/theme.css', + }, + 'lara-light-cyan': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-cyan/theme.css', + }, + 'lara-light-green': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-green/theme.css', + }, + 'lara-light-indigo': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-indigo/theme.css', + }, + 'lara-light-pink': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-pink/theme.css', + }, + 'lara-light-purple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-purple/theme.css', + }, + 'lara-light-teal': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/lara-light-teal/theme.css', + }, + 'luna-amber': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/luna-amber/theme.css', + }, + 'luna-blue': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/luna-blue/theme.css', + }, + 'luna-green': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/luna-green/theme.css', + }, + 'luna-pink': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/luna-pink/theme.css', + }, + 'md-dark-deeppurple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/md-dark-deeppurple/theme.css', + }, + 'md-dark-indigo': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/md-dark-indigo/theme.css', + }, + 'md-light-deeppurple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/md-light-deeppurple/theme.css', + }, + 'md-light-indigo': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/md-light-indigo/theme.css', + }, + 'mdc-dark-deeppurple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/mdc-dark-deeppurple/theme.css', + }, + 'mdc-dark-indigo': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/mdc-dark-indigo/theme.css', + }, + 'mdc-light-deeppurple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/mdc-light-deeppurple/theme.css', + }, + 'mdc-light-indigo': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/mdc-light-indigo/theme.css', + }, + mira: { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/mira/theme.css', + }, + nano: { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/nano/theme.css', + }, + nova: { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/nova/theme.css', + }, + 'nova-accent': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/nova-accent/theme.css', + }, + 'nova-alt': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/nova-alt/theme.css', + }, + rhea: { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/rhea/theme.css', + }, + 'saga-blue': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/saga-blue/theme.css', + }, + 'saga-green': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/saga-green/theme.css', + }, + 'saga-orange': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/saga-orange/theme.css', + }, + 'saga-purple': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/saga-purple/theme.css', + }, + 'soho-dark': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/soho-dark/theme.css', + }, + 'soho-light': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/soho-light/theme.css', + }, + 'tailwind-light': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/tailwind-light/theme.css', + }, + 'viva-dark': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/viva-dark/theme.css', + }, + 'viva-light': { + stylesheet: '//cdn.jsdelivr.net/npm/primereact@10.9.2/resources/themes/viva-light/theme.css', + }, + }, + }, 'semantic-ui': { stylesheet: '//cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css', theme: SuiTheme, diff --git a/packages/playground/src/components/DemoFrame.tsx b/packages/playground/src/components/DemoFrame.tsx index 045ae7b627..76faedd8f7 100644 --- a/packages/playground/src/components/DemoFrame.tsx +++ b/packages/playground/src/components/DemoFrame.tsx @@ -7,6 +7,7 @@ import { __createChakraFrameProvider } from '@rjsf/chakra-ui'; import { StyleProvider as AntdStyleProvider } from '@ant-design/cssinjs'; import { __createFluentUIRCFrameProvider } from '@rjsf/fluentui-rc'; import { __createDaisyUIFrameProvider } from '@rjsf/daisyui'; +import { PrimeReactProvider } from 'primereact/api'; /* Adapted from https://github.com/mui-org/material-ui/blob/master/docs/src/modules/components/DemoSandboxed.js @@ -94,6 +95,14 @@ export default function DemoFrame(props: DemoFrameProps) { })} ) : null; + } else if (theme === 'primereact') { + body = ready ? ( + <> + + + {children} + + ) : null; } return ( diff --git a/packages/playground/tsconfig.json b/packages/playground/tsconfig.json index 1d8bcd8d5b..b7a341ba56 100644 --- a/packages/playground/tsconfig.json +++ b/packages/playground/tsconfig.json @@ -56,6 +56,9 @@ { "path": "../react-bootstrap" }, + { + "path": "../primereact" + }, { "path": "../semantic-ui" }, diff --git a/packages/playground/vite.config.ts b/packages/playground/vite.config.ts index 65821a815c..9b0617e7e5 100644 --- a/packages/playground/vite.config.ts +++ b/packages/playground/vite.config.ts @@ -21,6 +21,7 @@ export default defineConfig({ '@rjsf/fluentui-rc': path.resolve(__dirname, '../fluentui-rc/src'), '@rjsf/mui': path.resolve(__dirname, '../mui/src'), '@rjsf/react-bootstrap': path.resolve(__dirname, '../react-bootstrap/src'), + '@rjsf/primereact': path.resolve(__dirname, '../primereact/src'), '@rjsf/semantic-ui': path.resolve(__dirname, '../semantic-ui/src'), '@rjsf/shadcn': path.resolve(__dirname, '../shadcn/src'), // We want to pick up the browser version of the utils diff --git a/packages/primereact/.eslintrc b/packages/primereact/.eslintrc new file mode 100644 index 0000000000..8f31b04e27 --- /dev/null +++ b/packages/primereact/.eslintrc @@ -0,0 +1,9 @@ +{ + "extends": "../../.eslintrc", + "plugins": [ + "@typescript-eslint", + "jsx-a11y", + "react", + "import" + ] +} diff --git a/packages/primereact/README.md b/packages/primereact/README.md new file mode 100644 index 0000000000..24ba4762c7 --- /dev/null +++ b/packages/primereact/README.md @@ -0,0 +1,118 @@ +[![Build Status][build-shield]][build-url] +[![npm][npm-shield]][npm-url] +[![npm downloads][npm-dl-shield]][npm-dl-url] +[![Contributors][contributors-shield]][contributors-url] +[![Apache 2.0 License][license-shield]][license-url] + +
+

+ + Logo + + +

@rjsf/primereact

+ +

+ PrimeReact theme, fields, and widgets for react-jsonschema-form. +
+ Explore the docs » +
+
+ View Playground + · + Report Bug + · + Request Feature +

+

+ +## Table of Contents + +- [About The Project](#about-the-project) + - [Built With](#built-with) +- [Getting Started](#getting-started) + - [Prerequisites](#prerequisites) + - [Installation](#installation) +- [Usage](#usage) +- [Roadmap](#roadmap) +- [Contributing](#contributing) +- [Contact](#contact) + +## About The Project + +PrimeReact theme, fields, and widgets for `react-jsonschema-form`. + +### Built With + +- [react-jsonschema-form](https://github.com/rjsf-team/react-jsonschema-form/) +- [PrimeReact](https://github.com/primefaces/primereact) + +## Getting Started + +### Prerequisites + +- `primereact >= 8.0.0` +- `primeicons >= 6.0.0` +- `@rjsf/core >= 2.0.0` + +```sh +npm install primereact primeicons @rjsf/core +``` + +### Installation + +```sh +npm install @rjsf/primereact +``` + +## Usage + +```javascript +import Form from '@rjsf/primereact'; +``` + +or + +```javascript +import {withTheme} from '@rjsf/core'; +import {Theme as PrimeReactTheme} from '@rjsf/primereact'; + +// Customize the theme with your own fields and widgets + +const Form = withTheme(PrimeReactTheme); +``` + +## Roadmap + +See the general [open issues](https://github.com/rjsf-team/react-jsonschema-form/issues). + +## Contributing + +Read our [contributors' guide](https://rjsf-team.github.io/react-jsonschema-form/docs/contributing/) to get started. + +## Contact + +rjsf team: [https://github.com/orgs/rjsf-team/people](https://github.com/orgs/rjsf-team/people) + +GitHub +repository: [https://github.com/rjsf-team/react-jsonschema-form](https://github.com/rjsf-team/react-jsonschema-form) + +[build-shield]: https://github.com/rjsf-team/react-jsonschema-form/workflows/CI/badge.svg + +[build-url]: https://github.com/rjsf-team/react-jsonschema-form/actions + +[contributors-shield]: https://img.shields.io/github/contributors/rjsf-team/react-jsonschema-form.svg + +[contributors-url]: https://github.com/rjsf-team/react-jsonschema-form/graphs/contributors + +[license-shield]: https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square + +[license-url]: https://choosealicense.com/licenses/apache-2.0/ + +[npm-shield]: https://img.shields.io/npm/v/@rjsf/primereact/latest.svg?style=flat-square + +[npm-url]: https://www.npmjs.com/package/@rjsf/primereact + +[npm-dl-shield]: https://img.shields.io/npm/dm/@rjsf/primereact.svg?style=flat-square + +[npm-dl-url]: https://www.npmjs.com/package/@rjsf/primereact diff --git a/packages/primereact/babel.config.js b/packages/primereact/babel.config.js new file mode 100644 index 0000000000..5f772a56c4 --- /dev/null +++ b/packages/primereact/babel.config.js @@ -0,0 +1,3 @@ +const defaultConfig = require('../../babel.config'); + +module.exports = defaultConfig; diff --git a/packages/primereact/jest.config.js b/packages/primereact/jest.config.js new file mode 100644 index 0000000000..2a31de0575 --- /dev/null +++ b/packages/primereact/jest.config.js @@ -0,0 +1,11 @@ +module.exports = { + verbose: true, + testEnvironment: 'jsdom', + testEnvironmentOptions: { + browsers: ['chrome', 'firefox', 'safari'], + }, + moduleNameMapper: { + '\\.(css|less)$': '/__mocks__/styleMock.js', + }, + transformIgnorePatterns: [`/node_modules/(?!nanoid)`], +}; diff --git a/packages/primereact/logo.png b/packages/primereact/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b4a65d42e6dcc6217c358d77d2e53bc2062b8cc2 GIT binary patch literal 94509 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

hNZAq=m9L020Ez52L{=vdVr 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ӇV8crr{7;l7Lm^N)M(d+?xl>of>86kQk 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 literal 0 HcmV?d00001 diff --git a/packages/primereact/package.json b/packages/primereact/package.json new file mode 100644 index 0000000000..5dc01c966f --- /dev/null +++ b/packages/primereact/package.json @@ -0,0 +1,103 @@ +{ + "name": "@rjsf/primereact", + "version": "5.24.2", + "description": "PrimeReact theme, fields and widgets for react-jsonschema-form", + "main": "dist/index.js", + "module": "lib/index.js", + "typings": "lib/index.d.ts", + "scripts": { + "build:ts": "tsc -b", + "build:cjs": "esbuild ./src/index.ts --bundle --outfile=dist/index.js --sourcemap --packages=external --format=cjs", + "build:esm": "esbuild ./src/index.ts --bundle --outfile=dist/primereact.esm.js --sourcemap --packages=external --format=esm", + "build:umd": "rollup dist/primereact.esm.js --format=umd --file=dist/primereact.umd.js --name=@rjsf/primereact", + "build": "npm run build:ts && npm run build:cjs && npm run build:esm && npm run build:umd", + "cs-check": "prettier -l \"{src,test}/**/*.ts?(x)\"", + "cs-format": "prettier \"{src,test}/**/*.ts?(x)\" --write", + "lint": "eslint src test", + "precommit": "lint-staged", + "test": "jest", + "test:update": "jest --u" + }, + "lint-staged": { + "{src,test}/**/*.ts?(x)": [ + "eslint --fix" + ] + }, + "files": [ + "dist", + "lib", + "src" + ], + "engineStrict": false, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/core": "^5.24.x", + "@rjsf/utils": "^5.24.x", + "primeicons": ">=6.0.0", + "primereact": ">=8.0.0", + "react": "^16.14.0 || >=17" + }, + "dependencies": { + "classnames": "^2.5.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21" + }, + "devDependencies": { + "@babel/cli": "^7.23.9", + "@babel/core": "^7.23.9", + "@babel/eslint-parser": "^7.23.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/preset-env": "^7.23.9", + "@babel/preset-react": "^7.23.3", + "@babel/preset-typescript": "^7.23.3", + "@rjsf/core": "^5.24.2", + "@rjsf/snapshot-tests": "^5.24.2", + "@rjsf/utils": "^5.24.2", + "@rjsf/validator-ajv8": "^5.24.2", + "@rollup/plugin-replace": "^5.0.5", + "@types/jest": "^29.5.12", + "@types/lodash": "^4.14.202", + "@types/react": "^18.2.58", + "@types/react-dom": "^18.2.19", + "@types/react-test-renderer": "^18.0.7", + "babel-jest": "^29.7.0", + "eslint": "^8.56.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "primeicons": "^7.0.0", + "primeflex": "^3.3.1", + "primereact": "^10.9.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-test-renderer": "^18.2.0", + "rimraf": "^5.0.5", + "rollup": "^3.29.4", + "typescript": "^4.9.5" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/rjsf-team/react-jsonschema-form.git" + }, + "keywords": [ + "primereact", + "primeicons", + "react", + "react-jsonschema-form", + "jsonschema", + "json-schema", + "json", + "rjsf-primereact" + ], + "author": "Arnold Daniels ", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/rjsf-team/react-jsonschema-form/issues" + }, + "homepage": "https://github.com/rjsf-team/react-jsonschema-form", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/primereact/src/AddButton/AddButton.tsx b/packages/primereact/src/AddButton/AddButton.tsx new file mode 100644 index 0000000000..86876e7b07 --- /dev/null +++ b/packages/primereact/src/AddButton/AddButton.tsx @@ -0,0 +1,23 @@ +import { Button } from 'primereact/button'; +import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils'; + +/** The `AddButton` renders a button that represents the `Add` action on a form + */ +export default function AddButton({ + uiSchema, + registry, + color, + ...props +}: IconButtonProps) { + const { translateString } = registry; + return ( + + + + + + + + + + +`; + +exports[`array fields checkboxes 1`] = ` +

+
+
+
+
+ +
+
+
+ empty +
+
+
+ + + +
+
+
+
+ + +`; + +exports[`array fields empty errors array 1`] = ` +
+
+
+
+
+ + +
+
+
+
+ +
+`; + +exports[`array fields fixed array 1`] = ` +
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+`; + +exports[`array fields has errors 1`] = ` +
+ +
+
+
+
+ + + +
+
+
+
+ +
+`; + +exports[`array fields no errors 1`] = ` +
+
+
+
+
+ + +
+
+
+
+ +
+`; + +exports[`with title and description array 1`] = ` +
+
+
+
+ Test field + +
+
+
+
+ + a test description + +
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description array icons 1`] = ` +
+
+
+
+ Test field + +
+
+
+
+ + a test description + +
+
+
+
+
+ + + + +
+
+
+
+ + + + + a test item description + + +
+
+
+
+
+
+ + + + +
+
+
+
+ + + + + a test item description + + +
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description fixed array 1`] = ` +
+
+
+
+ Test field + +
+
+
+
+ + a test description + +
+
+
+
+
+ + + + + a test item description + + +
+
+
+
+
+
+ + + + + a test item description + + +
+
+
+
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description from both array 1`] = ` +
+
+
+
+ My Field + +
+
+
+
+ + a fancier description + +
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description from both array icons 1`] = ` +
+
+
+
+ My Field + +
+
+
+
+ + a fancier description + +
+
+
+
+
+ + + + +
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+
+ + + + +
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description from both fixed array 1`] = ` +
+
+
+
+ My Field + +
+
+
+
+ + a fancier description + +
+
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description from uiSchema array 1`] = ` +
+
+
+
+ My Field + +
+
+
+
+ + a fancier description + +
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description from uiSchema array icons 1`] = ` +
+
+
+
+ My Field + +
+
+
+
+ + a fancier description + +
+
+
+
+
+ + + + +
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+
+ + + + +
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description from uiSchema fixed array 1`] = ` +
+
+
+
+ My Field + +
+
+
+
+ + a fancier description + +
+
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+
+ + + + + a fancier item description + + +
+
+
+
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description with global label off array 1`] = ` +
+
+
+
+ Test field + +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description with global label off array icons 1`] = ` +
+
+
+
+ Test field + +
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+ +
+
+
+
+
+
+ + + + +
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+`; + +exports[`with title and description with global label off fixed array 1`] = ` +
+
+
+
+ Test field + +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+`; diff --git a/packages/primereact/test/__snapshots__/Form.test.tsx.snap b/packages/primereact/test/__snapshots__/Form.test.tsx.snap new file mode 100644 index 0000000000..679ca4d158 --- /dev/null +++ b/packages/primereact/test/__snapshots__/Form.test.tsx.snap @@ -0,0 +1,2921 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`single fields checkbox field with label 1`] = ` +
+
+
+
+
+ +
+
+ +
+
+
+ + +`; + +exports[`single fields checkboxes field 1`] = ` +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+
+ + +`; + +exports[`single fields field with description 1`] = ` +
+
+
+
+
+ + + + + some description + + +
+
+
+
+ +
+`; + +exports[`single fields field with description in uiSchema 1`] = ` +
+
+
+
+
+ + + + + some other description + + +
+
+
+
+ +
+`; + +exports[`single fields format color 1`] = ` +
+
+
+
+ +
+
+
+ +
+`; + +exports[`single fields format date 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields format datetime 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields format time 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields help and error display 1`] = ` +
+ +
+
+ + + + help me! + +
+
+ +
+`; + +exports[`single fields hidden field 1`] = ` +
+
+
+
+ +
+
+
+ +
+`; + +exports[`single fields hidden label 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields null field 1`] = ` +
+
+
+
+ + +`; + +exports[`single fields number field 0 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields number field 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields password field 1`] = ` +
+
+
+
+ +
+
+
+ +
+`; + +exports[`single fields radio field 1`] = ` +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+
+ + +`; + +exports[`single fields schema examples 1`] = ` +
+
+
+ + + + +
+
+ +
+`; + +exports[`single fields select field 1`] = ` +
+
+
+
+
+ +
+
+ +
+ +   + +
+ + + +
+
+
+
+ +
+`; + +exports[`single fields select field multiple choice enumDisabled using checkboxes 1`] = ` +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+
+ + +`; + +exports[`single fields select field multiple choice formData 1`] = ` +
+
+
+
+
+ +
+
+
+ foo, bar +
+
+
+ + + +
+
+
+
+ +
+`; + +exports[`single fields slider field 1`] = ` +
+
+
+
+ + +
+
+
+ +
+`; + +exports[`single fields string field format data-url 1`] = ` +
+
+
+
+ +
+
+
+ +
+`; + +exports[`single fields string field format email 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields string field format uri 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields string field regular 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields string field with placeholder 1`] = ` +
+
+
+ +
+
+ +
+`; + +exports[`single fields textarea field 1`] = ` +
+
+
+