diff --git a/CHANGELOG.md b/CHANGELOG.md index b594f05f06..36a54e1f9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ should change the heading of the (upcoming) version to include a major version b --> # 5.0.0-beta-15 +## @rjsf/semantic-ui +- Fix CheckboxWidget missing label [#3302](https://github.com/rjsf-team/react-jsonschema-form/issues/3302) ## @rjsf/core - Pass the `schema` along to the `ArrayFieldItemTemplate` as part of the fix for [#3253](https://github.com/rjsf-team/react-jsonschema-form/issues/3253) diff --git a/package-lock.json b/package-lock.json index e7f7033014..b032c5846f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "react-jsonschema-form", "hasInstallScript": true, "license": "Apache-2.0", "devDependencies": { diff --git a/package.json b/package.json index ebc8dd7746..10b33d0f4e 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,9 @@ "build-serial": "lerna run --concurrency 1 --stream build", "start": "lerna run start --stream --parallel", "pre-commit:husky": "lerna run --concurrency 1 --stream precommit", - "prepare": "husky install" + "prepare": "husky install", + "clean:modules": "rimraf node_modules && rimraf packages/*/node_modules", + "r": "node ./scripts/run.js" }, "license": "Apache-2.0", "homepage": "https://github.com/rjsf-team/react-jsonschema-form", diff --git a/packages/antd/package-lock.json b/packages/antd/package-lock.json index 7c2b0544e2..e79bd95b46 100644 --- a/packages/antd/package-lock.json +++ b/packages/antd/package-lock.json @@ -18,6 +18,7 @@ "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", "@babel/register": "^7.18.9", + "@rjsf/validator-ajv8": "*", "@rollup/plugin-replace": "^5.0.1", "@types/lodash": "^4.14.186", "@types/react": "^17.0.39", @@ -25978,6 +25979,68 @@ "resolved": "../utils", "link": true }, + "node_modules/@rjsf/validator-ajv8": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.14.tgz", + "integrity": "sha512-0zxjU5xLzQeGI8Eh31lZCBY0Duq1DQowenLFDRl4CsaE3B63NYhfWpGuYaSs9IL1hFSO669ub1uokdm+zpNX4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/utils": "^5.0.0-beta.12" + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "dev": true, @@ -26704,6 +26767,29 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv8": { + "name": "ajv", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/ansi-escapes": { "version": "4.3.2", "dev": true, @@ -34615,6 +34701,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "dev": true, @@ -60263,6 +60358,49 @@ } } }, + "@rjsf/validator-ajv8": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.14.tgz", + "integrity": "sha512-0zxjU5xLzQeGI8Eh31lZCBY0Duq1DQowenLFDRl4CsaE3B63NYhfWpGuYaSs9IL1hFSO669ub1uokdm+zpNX4Q==", + "dev": true, + "requires": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "optional": true, + "peer": true + } + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "dev": true, @@ -60734,6 +60872,26 @@ "uri-js": "^4.2.2" } }, + "ajv8": { + "version": "npm:ajv@8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "dependencies": { + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, "ansi-escapes": { "version": "4.3.2", "dev": true, @@ -65937,6 +66095,12 @@ "version": "2.1.1", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resize-observer-polyfill": { "version": "1.5.1", "dev": true diff --git a/packages/antd/test/Form.test.tsx b/packages/antd/test/Form.test.tsx index da30a2d38f..649c70d3e3 100644 --- a/packages/antd/test/Form.test.tsx +++ b/packages/antd/test/Form.test.tsx @@ -183,9 +183,10 @@ describe("single fields", () => { .toJSON(); expect(tree).toMatchSnapshot(); }); - test("checkbox field", () => { + test("checkbox field with label", () => { const schema: RJSFSchema = { type: "boolean", + title: "test", }; const tree = renderer .create(
) diff --git a/packages/antd/test/__snapshots__/Form.test.tsx.snap b/packages/antd/test/__snapshots__/Form.test.tsx.snap index c0f8faf063..cc3b7630cb 100644 --- a/packages/antd/test/__snapshots__/Form.test.tsx.snap +++ b/packages/antd/test/__snapshots__/Form.test.tsx.snap @@ -53,7 +53,7 @@ exports[`single fields checkbox field 1`] = ` `; -exports[`single fields checkbox field 2`] = ` +exports[`single fields checkbox field with label 1`] = ` - + test diff --git a/packages/bootstrap-4/package-lock.json b/packages/bootstrap-4/package-lock.json index 78303973f2..e2a7452fe0 100644 --- a/packages/bootstrap-4/package-lock.json +++ b/packages/bootstrap-4/package-lock.json @@ -17,6 +17,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.19.6", "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", + "@rjsf/validator-ajv8": "*", "@types/react": "^17.0.48", "@types/react-dom": "^17.0.17", "@types/react-test-renderer": "^17.0.2", @@ -25841,6 +25842,68 @@ "resolved": "../utils", "link": true }, + "node_modules/@rjsf/validator-ajv8": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.14.tgz", + "integrity": "sha512-0zxjU5xLzQeGI8Eh31lZCBY0Duq1DQowenLFDRl4CsaE3B63NYhfWpGuYaSs9IL1hFSO669ub1uokdm+zpNX4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/utils": "^5.0.0-beta.12" + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "dev": true, @@ -26643,6 +26706,29 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv8": { + "name": "ajv", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/ansi-colors": { "version": "4.1.3", "dev": true, @@ -32516,6 +32602,12 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, "node_modules/lodash.debounce": { "version": "4.0.8", "dev": true, @@ -33758,6 +33850,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.1", "dev": true, @@ -59280,6 +59381,49 @@ } } }, + "@rjsf/validator-ajv8": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.14.tgz", + "integrity": "sha512-0zxjU5xLzQeGI8Eh31lZCBY0Duq1DQowenLFDRl4CsaE3B63NYhfWpGuYaSs9IL1hFSO669ub1uokdm+zpNX4Q==", + "dev": true, + "requires": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "optional": true, + "peer": true + } + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "dev": true, @@ -59792,6 +59936,26 @@ "uri-js": "^4.2.2" } }, + "ajv8": { + "version": "npm:ajv@8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "dependencies": { + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, "ansi-colors": { "version": "4.1.3", "dev": true @@ -63640,6 +63804,12 @@ "version": "4.17.21", "dev": true }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, "lodash.debounce": { "version": "4.0.8", "dev": true @@ -64459,6 +64629,12 @@ "version": "2.1.1", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve": { "version": "1.22.1", "dev": true, diff --git a/packages/bootstrap-4/test/Form.test.tsx b/packages/bootstrap-4/test/Form.test.tsx index f87dd7d222..028d00dc64 100644 --- a/packages/bootstrap-4/test/Form.test.tsx +++ b/packages/bootstrap-4/test/Form.test.tsx @@ -182,9 +182,10 @@ describe("single fields", () => { .toJSON(); expect(tree).toMatchSnapshot(); }); - test("checkbox field", () => { + test("checkbox field with label", () => { const schema: RJSFSchema = { type: "boolean", + title: "test", }; const tree = renderer .create() diff --git a/packages/bootstrap-4/test/__snapshots__/Form.test.tsx.snap b/packages/bootstrap-4/test/__snapshots__/Form.test.tsx.snap index f19063fea8..4715d21995 100644 --- a/packages/bootstrap-4/test/__snapshots__/Form.test.tsx.snap +++ b/packages/bootstrap-4/test/__snapshots__/Form.test.tsx.snap @@ -46,7 +46,7 @@ exports[`single fields checkbox field 1`] = ` `; -exports[`single fields checkbox field 2`] = ` +exports[`single fields checkbox field with label 1`] = ` + diff --git a/packages/chakra-ui/test/Form.test.tsx b/packages/chakra-ui/test/Form.test.tsx index abad779764..bbf7d992c2 100644 --- a/packages/chakra-ui/test/Form.test.tsx +++ b/packages/chakra-ui/test/Form.test.tsx @@ -288,6 +288,16 @@ describe("single fields", () => { .toJSON(); expect(tree).toMatchSnapshot(); }); + test("checkbox field with label", () => { + const schema: RJSFSchema = { + type: "boolean", + title: "test", + }; + const tree = renderer + .create() + .toJSON(); + expect(tree).toMatchSnapshot(); + }); test("checkbox field", () => { const schema: RJSFSchema = { type: "boolean", diff --git a/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap b/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap index 2e5c839f09..80d8010338 100644 --- a/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap +++ b/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap @@ -155,6 +155,176 @@ exports[`single fields checkbox field 1`] = ` `; +exports[`single fields checkbox field with label 1`] = ` +.emotion-1 { + margin-bottom: 1px; +} + +.emotion-2 { + cursor: pointer; + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + vertical-align: top; + position: relative; +} + +.emotion-2[disabled], +.emotion-2[aria-disabled=true], +.emotion-2[data-disabled] { + cursor: not-allowed; +} + +.emotion-3 { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + vertical-align: top; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} + +.emotion-4 { + -webkit-margin-start: 0.5rem; + margin-inline-start: 0.5rem; +} + +.emotion-6 { + margin-top: 3px; +} + +.emotion-7 { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + appearance: none; + -webkit-align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + position: relative; + white-space: nowrap; + vertical-align: middle; + outline: 2px solid transparent; + outline-offset: 2px; + width: auto; +} + + +`; + exports[`single fields checkboxes field 1`] = ` .emotion-1 { margin-bottom: 1px; diff --git a/packages/fluent-ui/package-lock.json b/packages/fluent-ui/package-lock.json index 82eaed634f..93d86219b8 100644 --- a/packages/fluent-ui/package-lock.json +++ b/packages/fluent-ui/package-lock.json @@ -19,6 +19,7 @@ "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", "@fluentui/react": "^7.190.3", + "@rjsf/validator-ajv8": "*", "@types/lodash": "^4.14.186", "@types/react": "^17.0.48", "@types/react-dom": "^17.0.17", @@ -26204,6 +26205,67 @@ "resolved": "../utils", "link": true }, + "node_modules/@rjsf/validator-ajv8": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.14.tgz", + "integrity": "sha512-0zxjU5xLzQeGI8Eh31lZCBY0Duq1DQowenLFDRl4CsaE3B63NYhfWpGuYaSs9IL1hFSO669ub1uokdm+zpNX4Q==", + "dev": true, + "dependencies": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/utils": "^5.0.0-beta.12" + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "dev": true, @@ -26997,6 +27059,29 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv8": { + "name": "ajv", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/ansi-colors": { "version": "4.1.3", "dev": true, @@ -34192,6 +34277,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.1", "dev": true, @@ -60000,6 +60094,49 @@ } } }, + "@rjsf/validator-ajv8": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.14.tgz", + "integrity": "sha512-0zxjU5xLzQeGI8Eh31lZCBY0Duq1DQowenLFDRl4CsaE3B63NYhfWpGuYaSs9IL1hFSO669ub1uokdm+zpNX4Q==", + "dev": true, + "requires": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "optional": true, + "peer": true + } + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "dev": true, @@ -60535,6 +60672,26 @@ "uri-js": "^4.2.2" } }, + "ajv8": { + "version": "npm:ajv@8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "dependencies": { + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, "ansi-colors": { "version": "4.1.3", "dev": true @@ -65245,6 +65402,12 @@ "version": "2.1.1", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve": { "version": "1.22.1", "dev": true, diff --git a/packages/fluent-ui/test/Form.test.tsx b/packages/fluent-ui/test/Form.test.tsx index f87dd7d222..028d00dc64 100644 --- a/packages/fluent-ui/test/Form.test.tsx +++ b/packages/fluent-ui/test/Form.test.tsx @@ -182,9 +182,10 @@ describe("single fields", () => { .toJSON(); expect(tree).toMatchSnapshot(); }); - test("checkbox field", () => { + test("checkbox field with label", () => { const schema: RJSFSchema = { type: "boolean", + title: "test", }; const tree = renderer .create() diff --git a/packages/fluent-ui/test/__snapshots__/Form.test.tsx.snap b/packages/fluent-ui/test/__snapshots__/Form.test.tsx.snap index 2cc70f09bd..4a9e566b3a 100644 --- a/packages/fluent-ui/test/__snapshots__/Form.test.tsx.snap +++ b/packages/fluent-ui/test/__snapshots__/Form.test.tsx.snap @@ -76,7 +76,7 @@ exports[`single fields checkbox field 1`] = ` > Submit @@ -88,7 +88,7 @@ exports[`single fields checkbox field 1`] = ` `; -exports[`single fields checkbox field 2`] = ` +exports[`single fields checkbox field with label 1`] = ` ) diff --git a/packages/material-ui/test/__snapshots__/Form.test.tsx.snap b/packages/material-ui/test/__snapshots__/Form.test.tsx.snap index 653cf88442..fb91c97f47 100644 --- a/packages/material-ui/test/__snapshots__/Form.test.tsx.snap +++ b/packages/material-ui/test/__snapshots__/Form.test.tsx.snap @@ -57,6 +57,9 @@ exports[`single fields checkbox field 1`] = ` /> +