- Fixed typo in
constants.ts,Form.tsx
- Added support for version 2 in the
peerDependencies
- Bumped devDependencies on
reactto18.x - Fixed typo in
custom-widgets-fields.mdin the documentation - Updated the
LICENSE.mdto include the proper copyright dates and owner
- Fixed Programmatic submit not working properly in Firefox #3121
- #4116 Fix Maximum call stack size exceeded when encountering circular definitions (Link to PR)
- Fix issue where the theme provided by the ConfigProvider under antd v5 wasn't respected thereby rendering the form items unusable under dark themes #4129
- Fix Error state not resetting when schema changes #4079
- Fixed the
SelectWidgetandBaseInputTemplateto filter outerrorSchemaandautocompletefrom thetextFieldPropsbeing spread onto theTextField, fixing #4134
- Added a new
skipEmptyDefaultoption inemptyObjectFields, fixing #3880 - Added a new
computeSkipPopulateoption inarrayMinItems, allowing custom logic to skip populating arrays with default values, implementing #4121. - Fixed bug where the string
"\</strong>"would get printed next to filenames when uploading files, and restored intended bolding of filenames fixing #4120.
- Updated the documentation to describe how to use the
skipEmptyDefaultoption. - Fixed missing import of
Formin usage documentation - fixing #4127
- Added support for
UiSchema"ui:rows"option fortextareaelements, fixing #4070.
- #4091 Added
errorSchematoArrayFieldTemplateprops.
- #4080 - BREAKING CHANGE: Removed the
base64object from the@rjsf/utilspackage. Note that this is a breaking change if you relied on thebase64object exported by@rjsf/utils. Since this change caused #4080, and was only internally used by playground code, we are shipping this change in a patch release. - #4091 Added
errorSchemato theArrayFieldTemplatePropstype.
- #4080 - Moved the
base64encoder/decoder object to the Playground package. - Added test configuration and script to the Playground.
- Added support for
anyOf/oneOfinuiSchemas in theMultiSchemaField, fixing #4039 - Fix potential XSS vulnerability in the preview button of FileWidget, fixing #4057
- #4024 Added
base64to supportencodinganddecodingusing theUTF-8charset to support the characters out of theLatin1range. - Updated
enumOptionsValueForIndex()to fix issue that filtered enum options with a value that was 0, fixing #4067 - Changes the way of parsing the data URL, to fix #4057
- #4024 Updated the base64 references from (
atobandbtoa) to invoke the functions from the newbase64object in@rjsf/utils. - Updated the
uiSchema.mddocumentation to describe how to use the newanyOf/oneOfsupport
- Bumped peer dependencies due to new utils function
- Pass indexed title from array into its items, adding enhancement asked in #3983
- Removed
dateElementPropsfunction implementation, and replaced it withgetDateElementPropsfrom@rjsf/utils. - Modify submit method to make it a public method, fixing #4015
- Support file deletion for
format: "data-url"inFileWidget, fixing #3957.
- Removed
dateElementPropsfunction implementation, and replaced it withgetDateElementPropsfrom@rjsf/utils.
- Removed
dateElementPropsfunction implementation, and replaced it withgetDateElementPropsfrom@rjsf/utils.
- Updated the
FieldErrorTemplateandFieldHelpTemplateto support html-based errors that cause<xxxx> cannot appear as a descendant of <p>browser warnings, fixing #4031
- Added
getDateElementProps()to refactor duplicate function incore,antd&chakra-uiAltDateWidget's source code. The same function, implements the feature requested in #297
- Updated docs and playground with the implementation guide of newly added date re-order feature.
- fix
getFieldNames. Now correctly defines an array of primitives.
- Updated the
AJV6Validatorclass to expose the internalajvobject, allowing access to support a fix related to #3972
- Updated the
AJV8Validatorclass to expose the internalajvobject, allowing access to support a fix related to #3972
- Updated the documentation to describe how to use the newly exposed
ajvvariable
- fix gap in text and select widget outlines when
"ui:label": falseis specified.
- Updated
resolveAllReferences()to use own recurse list for each object properties, fixing #3961 - Added an experimental flag
allOftoexperimental_defaultFormStateBehaviorfor populating defaults when usingallOfschemas #3969
- add missing typescript project reference for
utilsinvalidator-ajv6andvalidator-ajv8packages tsconfigs - Added a dropdown for changing the
experimental_defaultFormStateBehavior.allOfbehaviour in the playground
- add
retrieveSchemaatFormstate to memoize the result ofschemUtils.retrieveSchema
- Updated README.md references
- Fixed width of
ArrayFieldItemTemplateitems
- update tsconfigs:
"importHelpers": falseto remove need for tslib dependency #3958- increase compilation target level from es6 to es2018 (so there are no need for transpiling object spread/rest feature)
- add missing typescript project reference for
snapshot-testsin a root tsconfig, update it to also use es modules
- Fixed the
peerDependenciesfor@ant-design/iconsto also support v5, fixing #3507
- avoid call
retrieveSchematwice duringgetStateFromPropsandmustValidateis true #3959
- Resolve the React error caused by the propagation of the
hideErrorproperty to the DOM element, fixing #3945
- Resolve the React error caused by the propagation of the
hideErrorproperty to the DOM element, fixing #3945
- Update
sanitizeDataForNewSchema()to avoid spreading strings and Arrays into the returned value when the old schema is of typestringorarrayand the new schema is of typeobject. Fixing #3922
- Update
sanitizeDataForNewSchema()to avoid spreading strings and Arrays into the returned value when the old schema is of typestringorarrayand the new schema is of typeobject. Fixing #3922 - update types for
labelValueto have more granular return types, fixing #3946
- Added Fluent UI v9 (React Components) theme to playground
- Update Fluent UI v9 and playground project references
- Update eslint ignores to exclude new typescript build output folders
- Added theme for Fluent UI v9 (React Components), fixing #3659
Move theme snapshot tests into separate package
- update configuration to use typescript project references, start type checking the tests
- Updated
StringFieldto passhideErrorprop toWidgetso that all fields are consistent. Missed this file in previous patch
- Updated
StringFieldandBooleanFieldto passhideErrorprop toWidgetso that all fields are consistent
- Updated
SchemaFieldto show errors foranyOf/oneOfwhen being rendered as select control, fixing 3908
- Fixed the
SelectWidgetso that filtering works by reworking howoptionsare passed to the underlyingSelect
- Replaced the deprecated
UNSAFE_componentWillReceiveProps()method in the Form.tsx component with an improved solution utilizing the React lifecycle methods:getSnapshotBeforeUpdate()andcomponentDidUpdate(). Fixing #1794 - Fixed the
ArrayFieldimplementation to never pass an undefined schema for fixed arrays to other methods, fixing #3924 - Fixed a refresh issue in
getSnapshotBeforeUpdate()caused by the fix for #1794, fixing #3927
- Updated
toPathSchemaInternal()util to generate correct path schemas for fixed arrays by picking up individual schemas in theitemsarray, fixing #3909
- Updated
resolveAnyOrOneOfSchemas()to not take arecurseListanymore, and instead always pass an empty array down toresolveAllReferences(), fixing #3902- Also updated
parseSchema()andresolveDependencies()to no longer passrecurseListtoresolveAnyOrOneOfSchemas()
- Also updated
- Updated
AJV8PrecompiledValidatorto add a newensureSameRootSchema()function that is called in bothrawValidation()andisValid()- This function adds an optimization to avoid resolving the root schema unless necessary
- Updated
ArrayFieldto move errors in the errorSchema when the position of array items changes for the insert and copy cases.
- Removed an unnecessary
Gridcontainer component in theArrayFieldTemplatecomponent that wrapped theArrayFieldItemTemplate, fixing #3863 - Fixed an issue where
SelectWidgetswitches from controlled to uncontrolled whenenumOptionsdoes not include a value, fixing #3844
- Removed an unnecessary
Gridcontainer component in theArrayFieldTemplatecomponent that wrapped theArrayFieldItemTemplate, fixing #3863 - Fixed an issue where
SelectWidgetswitches from controlled to uncontrolled whenenumOptionsdoes not include a value, fixing #3844
- Added
getOptionMatchingSimpleDiscriminator()function getMatchingOptionandgetClosestMatchingOptionnow bypassvalidator.isValid()calls when simple discriminator is provided, fixing #3692- Fix data type in
FieldTemplateProps['onChange'] - Updated
retrieveSchema()to properly resolve references inside ofpropertiesand arrayitemswhile also dealing with recursive$refs, fixing #3761- Updated
schemaParser()andgetClosestMatchingOption()to pass the newrecursiveRefparameter added to internalretrieveSchema()APIs
- Updated
- Added/updated all the necessary tests to restore the
100%test coverage that was lost when updating to Jest 29- Updated
getDefaultFormState()to remove an unnecessary check forformDatabeing an object since it is always guaranteed to be one, thereby allowing full testing coverage
- Updated
- Updated
getSchemaType()to return the first schematypewhen it is an array not containing'null', fixing #3875
- Updated the
validatorandprecompiledValidatortests to the restore100%coverage that was lost when updating to Jest 29- Updated
isValid()for thevalidatorcommenting out an if condition that was preventing100%coverage, with a TODO to fix it later
- Updated
- Added the
@types/jestas a globaldevDependencyso that developer tools properly recognize the jest function types
- Bump Antd version from v4 to v5.
- Intentionally kept peer dependencies to v4 so that this change doesn't make breaking change for @rfjs/antd users.
- However, if users of @rjsf/antd want to use v5 styling, they need to wrap your application with the
StyleProviderfrom@ant-design/cssinjs. They need not have to install this package, its a transitive package coming from antd.
import { StyleProvider } from '@ant-design/cssinjs';
const Component = () => {
return (
<StyleProvider>
<YourFormComponents />
</StyleProvider>
);
};- Updated
MultiSchemaFieldto only merge top level required field fixing duplicate field and description. - Fixed programmatic validation (
validateForm()) removes previous errors if all data is now valid.
- Fixed a faulty check of the
isMultipleoption inMultiSchemaField. It no longer offers multiple choice inside a select field in aoneOfcase in Chakra UI, fixing #3848
- Fixed custom validation playground example (#3856)
- Updated
AJV8PrecompiledValidator.rawValidation()to resolve root schema with formData when comparing input schema, fixing #3825
- Updated
MultiSchemaFieldto merge all top level fields except properties for anyOf/oneOf options, fixing #3808 and #3787
- Updated CheckboxesWidget to not show duplicate title, fixing #3815
- Updated
retrieveSchemaInternalallOf logic for precompiled schemas to resolve top level properties fixing #3817
- Experimental feature:
- Added
experimental_defaultFormStateBehavior = { arrayMinItems: { populate: 'never' } }(feature #3796)
- Added
- Exposing new function
compileSchemaValidatorsCodeto allow creating precompiled validator without a file. This is useful in case when precompiled validator is to be created dynamically. #3793
- update playground vite config to use sources directly, allowing to reload changes in it without additional build step
- moving from
dts-clito use individual dev tools directly, updating package publish config- tsc for generating type definitions and esm modules
- esbuild for CJS bundle
- rollup for UMD bundle
- Updated the
form-propsdocumentationarrayMinItems, added description fornever. - Updated the
playgroundto add the option for the newarrayMinItems.populate = 'never'.
- Removed unnecessary import of old
@types/material-uiwhich can cause typescript issues in some situations
- Updated the
resolveAllReferences()function to use object spreading to update properties and items in a schema rather than directly modifying the schema to avoid issues with frozen object, fixing #3805
- Updated
SchemaFieldto ignore errors foranyOf/oneOfparent schema, fixing 1295
- Created new
resolveAllReferences()function to resolve all references within a schema's properties and array items. - Updated
getClosestMatchingOption()to useresolveAllReferences()for all oneOf/anyOf schemas - Updated
resolveAnyOrOneOfSchemas()to useresolveAllReferences()for all oneOf/anyOf schemas - Better handle the
nullcase inwithIdRefPrefix, fixing #3792
- Updated
MultiSchemaFieldto usemergeSchema()for merging in the remaining schema foranyOf/oneOf - Added new
extraErrorsBlockSubmitprop toFormthat allows the extra asynchronous errors to block a form submit, fixing #3757
- Updated
retrieveSchemaInternal()to always resolve allOf schema without merging whenexpandAllBranchesis set, fixing compiled schema issue always throwing error withmergeAllOf - Updated
getDefaultFormState()to usemergeSchema()for merging in the remaining schema foranyOf/oneOf - Updated
retrieveSchema()to usemergeSchema()for merging in the remaining schema foranyOf/oneOf
- Switched to using npm workspaces for the sub-package hierarchy
- NOTE: Developers may need to run the
npm run refresh-node-modulesscript first to get the build and tests to work correctly
- NOTE: Developers may need to run the
- Backfilled Docusaurus site with documentation for v3, v4
- Updated
getFieldComponent()to support rendering a custom component by given schema id ($id). #3740 - Updated
MultiSchemaFieldto merge the selectedoneOf/anyOfvalue into baseschema, fixing #3744
- Updated
getClosestMatchingOption()to resolve refs in options before computing the closest matching option, fixing an issue with using precompiled validators- Also, added support for nested
anyOfanddiscriminatorsupport in the recursivecalculateIndexScore()
- Also, added support for nested
- Updated
getDefaultFormState()to merge the remaining schema intoanyOf/oneOfschema selected during the computation of values, fixing #3744 - Updated
retrieveSchema()to merge the remaining schema into theanyOf/oneOfschema selected during the resolving of dependencies, fixing #3744
- Updated the
custom-widgets-fieldsdocumentation to add the new added behaviour ofgetFieldComponent()function. #3740 - Updated the
playgroundto add an example of the new added behaviour ofgetFieldComponent()function. #3740
- Updated
getDefaultFormState()to fix a bug whereexperimental_defaultFormStateBehavior: { emptyObjectFields: 'populateRequiredDefaults' }wasn't working for object properties with$refs - Experimental feature breaking change:
- Updated the
experimental_defaultFormStateBehavior.arrayMinItemsfrom simple flag to an object containing two optional fields,populateandmergeExtraDefaults- The new
arrayMinItems.mergeExtraDefaultsflag, when "true", allows users to merge defaults onto the end offormDataarrays whenminItemsis specified
- The new
- If you were previously passing
experimental_defaultFormStateBehavioras{ arrayMinItems = 'requiredOnly }on theForm, now you would pass{ arrayMinItems: { populate: 'requiredOnly' } }
- Updated the
- Added a new, optional
mergeExtraArrayDefaults=falseflag to themergeDefaultWithFormData()utility function to support the newarrayMinItems.mergeExtraDefaultsexperimental feature
- Updated the
utility-functionsdocumentation to add the newmergeExtraArrayDefaultsflag for themergeDefaultWithFormData()function - Updated the
form-propsdocumentation to update thearrayMinItemsdocumentation for the new object behavior - Updated the
playgroundto add a checkbox for the newarrayMinItems.mergeExtraDefaultsflag
- Explicitly cache schemas by their hash when checking data is valid to avoid multiple compilations for schemas without IDs leading to poor performance #3721
- Updated peer dependencies in all packages to
^5.8.x
- Updated FieldTemplate Component to display description from SchemaField and make it consistent for all the available themes
- Updated FieldTemplate Component to display description from SchemaField and make it consistent for all the available themes
- Updated SchemaField to be able to render markdown in the description field
- Updated
MultiSchemaField.getMatchingOptionto use option index fromgetClosestMatchingOption, fixing #3693 and #3705
- Updated FieldTemplate Component to display description from SchemaField and make it consistent for all the available themes
- Updated FieldTemplate Component to display description from SchemaField and make it consistent for all the available themes
- Updated FieldTemplate Component to display description from SchemaField and make it consistent for all the available themes
- Updated FieldTemplate Component to display description from SchemaField and make it consistent for all the available themes
- Updated
getClosestMatchingOptionto return selected option if all options score the same, fixing #3693 and #3705 - Updated
resolveConditionto default formData as empty object when evaluating if expression, fixing #3706 - Updated
retrieveSchemaInternalto return failed merged allOf sub schemas for expandAllBranches flag, fixing #3689 - Updated
hashForSchemato sort schema fields in consistent order before stringify to prevent different hash ids for the same schema - Updated
enumOptionsSelectValueto allow picking falsy enumOptions, fixing #3716
- Updated
AJV8PrecompiledValidator.rawValidation()to use resolve root schema when comparing input schema, fixing #3708
- Updated sample data and documentation about the markdown in
RJSFSchemadescription - Fixed broken playground examples (#3696)
- Added experimental_defaultFormStateBehavior.emptyObjectFields control to Playground
- Fixed bug where subthemes would not appear in Playground
- Updated
getClosestMatchingOptionJUNK_OPTIONschema with a well known $id - Updated
schemaParserto resolve array items field, fixing #3689
- Updated
AJV8PrecompiledValidator.isValid()to return false for junk schema option, fixing #3677
- Removed the importing of internal
ajvtypes by simplifying theCompiledValidateFunctiontype to avoid a bunch of Typescript errors encountered by users of the package
- Updated the build for all but the
cjsdevelopment version, to not export thecompileSchemaValidators()function to avoid "Module not found: Can't resolve 'fs' error" issues, fixing #3668
- Added protection against a null
fieldin thefocusOnErrormethod inForm
- Updated the
validationdocumentation to add a note with a web-resource to help folks work around the "Module not found: Can't resolve 'fs' error" issue for development environments - Updated all of the
package-lock.jsonfiles to bump peer-dependencies to5.7.x, fixing #3669
- Fix #3608 by ensuring the root field is always wrapped in Form.Item
- Fix #3594 by removing the duplicate title for
SelectWidgetand description forCheckboxWidget
- Updated the
MultiSchemaFieldto use the newgetDiscriminatorFieldFromSchema()API - Added new
experimental_defaultFormStateBehaviorprop toForm - Fixed regression #3650 in
FileWidgetto again support adding multiple files to arrays
- Added support for
additionalPropertiesto fluent-ui theme, fixing #2777. - Upgraded to
8.xversion of@fluentui/reactmaintaining backwards compatibility to version 7, fixing #3463
- Added two new APIs
getDiscriminatorFieldFromSchema()(a refactor of code fromMultiSchemaField) andhashForSchema()- Updated
getDefaultFormState()andtoPathSchema()to usegetDiscriminatorFieldFromSchema()to provide a discriminator field togetClosestMatchingOption()calls.
- Updated
- Refactored the
retrieveSchema()internal API functions to support implementing an internalschemaParser()API for use in precompiling schemas, in support of #3543 - Fixed
toPathSchema()to handlepropertiesin an object along withanyOf/oneOf, fixing #3628 and #1628 - Refactored optional parameters for
computeDefaults()into destructured props object to reduce clutter when only specifying later of the optional argument, fixing #3602 - Fixed
computeDefaults()to handle$refin an object along withanyOf/oneOf, fixing #3633
- Added two new APIs
compileSchemaValidators()andcreatePrecompiledValidator()implemented to support using precompiled validators build with AJV 8, fixing #3543
- Added documentation to
custom-templatesdescribing how to extend theBaseInputTemplate - Added minItems behavior for array field live setting, fixing #3602
- Upgraded playground to
8.xversion of@fluentui/react, fixing #3463 - Added documentation to
validationdescribing the new precompiled validators feature - Added new
validator-ajv8.mddocumentation to theapi-referencedirectory as well as putting it into thesidebar.js
- Fixed issues with
post-versioningthat caused the 5.6.1 branch to not be publishable
- Updated the
contributingdocumentation to improve theReleasingsection to include a newnpm run post-versioningstep- Implemented a new
bump-peer-deps.jsscript to help implement the new scripts included in thepost-versioningstep
- Implemented a new
- Treat multiple as a boolean rather than comparing against
undefinedin theSelectWidget, fixing #3595
- Switched
Formto use the newvalidatorDataMerge()andtoErrorList()functions instead of the now deprecatedschemaUtils.mergeValidatorData()andschemaUtils.getValidator().toErrorList() - Added option to provide a callback function to
focusOnFirstError(3590) - Updated
MultiSchemaFieldto handle the OpenAPIdiscriminatorextension onanyOf/oneOffields by passing it intogetClosestMatchingOption()if it exists, fixing #3512 - Updated
SchemaFieldfunction to usegetSchemaTyperather thanschema.typeto set the proper class name.
- Refactored the
createErrorHandler(),toErrorList(),toErrorSchema()andunwrapErrorHandler()functions from the@rjsf/validator-ajv6and@rjsf/validator-ajv8implementations since they were identical- As a result, the
mergeValidationData()function was deprecated in favor of the newvalidationDataMerge()function that uses the refactoredtoErrorList()function - Refactored the
ROOT_SCHEMA_PREFIXconstant as well
- As a result, the
- Updated
ValidatorTypeandSchemaUtilsTypeto deprecate thetoErrorList()andmergeValidationData()functions, respectively - Updated the
getClosestMatchingOption()andgetFirstMatchingOption()to pass the newdiscriminatorFieldto thegetMatchingOption()function - Updated
getMatchingOption()to usediscriminatorFieldwhen it is present in theoptionsobject properties to drill into the object to detect if that one field is valid - Updated
SchemaUtilsTypeand the associated forward functions increateSchemaUtilsto add the newdiscriminatorField?: stringoptional parameter - Updated
toIdSchema()function to usegetSchemaType(schema) === 'object'rather thanschema.type === 'object'to get the proper pathing for ids, fixing #2044
- Removed the refactored functions and constant from the
AJV6Validatorin favor of using the new functions and constant from@rjsf/utils
- Removed the refactored functions and constant from the
AJV8Validatorin favor of using the new functions and constant from@rjsf/utils
- Updated the
utility-functionsdocumentation to describe the new refactored functions as well as deprecating themergeValidationData()function - Updated the
playgroundto properly restoreliveSettingsfrom shared links and added a switch fornoHtml5Validationin the live settings rather than having it set totruealways- Also added a new
Blankexample to help users easily paste their code
- Also added a new
- Switched to using
TextFieldfor theWrapIfAdditionalTemplatelabel key input to match the@rjsf/muifix
- Switched to using
TextFieldfor theWrapIfAdditionalTemplatelabel key input, fixing #3578
- Updated the
templatespassed into the mainFormto not include undefined values, fixing #3576 and #3579
- Updated
Formto include the topdisabledproperty in theui:submitButtonOptionsso the submit button will be disabled when the whole form is disabled. Fixes #3264.
- Added protections against infinite recursion of
$refs for thetoIdSchema(),toPathSchema()andgetDefaultFormState()functions, fixing #3560 - Updated
getDefaultFormState()to handle object-basedadditionalPropertieswith defaults usingformDatain addition to values contained in adefaultobject, fixing #2593 - Updated internal helper
withExactlyOneSubschema()inside ofretrieveSchema()to use theisValid()function rather thanvalidateFormData()when determining the one-of branch
- Refactored some parts of
playgroundto make it cleaner- This includes fixing the spelling of the
disabledflag being passed into theFormfrom the incorrectdisablespelling
- This includes fixing the spelling of the
- Formatted the entire monorepo which included 6 unformatted files outside of
playground - Removed
react-app-polyfillpackage fromplaygound. This ends IE11 support - Fix a handful of broken docs links, fixing #3553
- Updated tests to use centralized snapshots from
core
- Updated tests to use centralized snapshots from
core
- Updated tests to use centralized snapshots from
core
- Updated
FileWidgetto pass false forrequiredonce a value has been specified, fixing #3504 - Updated
ObjectFieldto pass theerrorSchemato theObjectFieldTemplateto allow custom templates access to the errors - Centralized snapshot tests from each theme into
core, adding snapshots tests forcoreas well
- Updated tests to use centralized snapshots from
core
- Updated tests to use centralized snapshots from
core
- Updated tests to use centralized snapshots from
core
- Updated tests to use centralized snapshots from
core
- Added
errorSchemaas an optional prop onObjectFieldTemplateProps
- Converted the
playgroundto use Typescript, including some refactoring of code to make that job easier - Updated the
custom-templatesdocumentation to adderrorSchemato the props forObjectFieldTemplate
- Added the ability to use a tooltip for a description
- Updated
ObjectFieldTemplateto hide the titles and descriptions whendisplayLabelis true (including globally), fixing #3231 - Updated
CheckboxWidgetto show thedescriptionusing theDescriptionFieldTemplate, fixing #2791 - Updated
CheckboxesWidgetandSelectWidgetto show thelabelusing theTitleFieldTemplate, fixing #2134
- Updated
ObjectFieldTemplateto hide the titles and descriptions whendisplayLabelis true (including globally), fixing #3231 - Updated
CheckboxWidgetto show thedescriptionusing theDescriptionFieldTemplate, fixing #2791 - Updated
RangeWidgetto fix the label hiding bug usinglabelValue()
- Fix: MUI radio widget initializes as uncontrolled when schema has no default value, fixing #3511
- Updated
ObjectFieldTemplateto hide the titles and descriptions whendisplayLabelis true (including globally), fixing #3231 - Updated
CheckboxesWidget,CheckboxWidget,RadioWidgetandSelectWidgetto hide labels whenhideLabelis true using the newlabelValue()helper (including globally) - Updated
CheckboxWidgetto show thedescriptionusing theDescriptionFieldTemplate, fixing #2791
- Updated
FileWidgetto show a preview of images and a download link for non-images when thefilePreviewoptions is set to true in theUiSchema - Updated
ArrayField,BooleanField,MultiSelectFieldandStringFieldto passlabel(read fromuiSchema.title||schema.title||name) andhideLabeldown to all of theWidgetsthey render, fixing #827, #2636, #2399 and #3531 - Updated
ObjectField,ObjectFieldTemplate,ArrayFieldDescriptionTemplate,ArrayFieldTitleTemplateandCheckboxWidgetto hide the titles and descriptions whenhideLabelis true using the newlabelValue()helper (including globally), fixing #3231 - Updated
CheckboxWidgetto use thelabelValue()function for hiding labels
- Updated
FieldTemplateandObjectFieldTemplateto hide the titles and descriptions whendisplayLabelis true (including globally), fixing #3231 - Updated
BaseInputTemplate,CheckboxesWidget,CheckboxWidget,ColorWidget,DateWidget,RadioWidget,RangeWidget,SelectWidgetandUpDownWidgetto hide labels whenhideLabelis true using the newlabelValue()helper (including globally)- Also extracted a new
FluentLabelcomponent out ofCheckboxesWidget,ColorWidget,RangeWidgetandUpDownWidget
- Also extracted a new
- Updated
CheckboxWidgetto show thedescriptionusing theDescriptionFieldTemplate, fixing #2791
- Fix: MUI radio widget initializes as uncontrolled when schema has no default value, fixing #3511
- Updated
ObjectFieldTemplateto hide the titles and descriptions whendisplayLabelis true (including globally), fixing #3231 - Updated
BaseInputTemplate,CheckboxesWidget,CheckboxWidget,RadioWidget,RangeWidgetandSelectWidgetto hide labels whenhideLabelis true using the newlabelValue()helper (including globally) - Updated
CheckboxWidgetto show thedescriptionusing theDescriptionFieldTemplate, fixing #2791
- Fix: MUI radio widget initializes as uncontrolled when schema has no default value, fixing #3511
- Updated
ObjectFieldTemplateto hide the titles and descriptions whendisplayLabelis true (including globally), fixing #3231 - Updated
BaseInputTemplate,CheckboxesWidget,CheckboxWidget,RadioWidget,RangeWidgetandSelectWidgetto hide labels whenhideLabelis true using the newlabelValue()helper (including globally) - Updated
CheckboxWidgetto show thedescriptionusing theDescriptionFieldTemplate, fixing #2791
- Updated
ObjectFieldTemplateto hide the titles and descriptions whendisplayLabelis true (including globally), fixing #3231 - Updated
BaseInputTemplate,CheckboxesWidget,CheckboxWidget,SelectWidgetandTextareaWidgetto hide labels whenhideLabelis true using the newlabelValue()helper (including globally) - Updated
CheckboxWidgetto show thedescriptionusing theDescriptionFieldTemplate, fixing #2791
- Updated the
UiSchemato support the optionalfilePreview?: booleanoption and to add a newTranslatableString.PreviewLabelto theenums - Updated the
WidgetPropsto add an optionalhideLabel?: booleanfield to better support hiding labels - Added a new
labelValue()helper function to better support hiding labels
- Improve
toErrorList()andunwrapErrorHandler()by ensuring objects before recursing
- Added a new
AntD Customizationdocumentation with references to it in theform-propsanduiSchemadocumentation - Updated the
uiSchemadocumentation to add thefilePreviewoption - Updated the
widgetsdocumentation to add the new, optionalhideLabelprop - Updated the
utility-functionsdocumentation to add the newlabelValue()function
- Updated
AltDateWidgetto remove an infinite loop caused by two conflicting effects by merging them with additional checking of originalvalueagainst the current value, fixing #3516
- Updated the documentation of
getTestValidator()and theschema.test.tsfile to help developers
- Updated the documentation of
getTestValidator()and theschema.test.tsfile to help developers
- Updated the documentation of
getTestValidator()and theschema.test.tsfile to help developers
- Updated the
internalsdocumentation to use a React ref in the example, fixing #3520 - Updated the
contributingdocumentation to describe the new development process needed for aViteplayground, fixing #3478- Also fixed the
package.jsonfiles to removenpm startin the subdirectories and change the root one to describe the new process
- Also fixed the
- Updated the
semantic-ui/uiSchemadocumentation to switch the default forhorizontalButtonsto be true per changes made in5.3.0
- Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
- Fixed
package.jsonto properly add required dependencies explicitly which were installed implicitly
- Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
- Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
Resetfunction added forProgrammatically Resetaction.Resetfunction will reset form data and validation errors. Form data will set to default values.- Implemented a new
TimeWidgetthat works for all themes - Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
- Also added the missing translation for the
InvalidObjectFielderror inObjectField - Added support for the handling of the global UiSchema options in
Form,ArrayField,ObjectFieldandSchemaField
- Fix
RadioWidget's onChange return value. - Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
- Updated
BaseInputTemplateso that it shrinks atimeformatted input - Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
- Updated
BaseInputTemplateso that it shrinks atimeformatted input - Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
- Added support to make a copy of an array item directly after the item selected to be copied (feature is off by default), fixing #1261 and #1712
- Updated the widget matrix used by
getWidget()to support thetimetoTimeWidgetmapping - Added a new
TranslatableStringenumsCopyButtonandInvalidObjectFieldthat localizes the information extracted fromObjectFieldas markdown - Updated the
ArrayFieldTemplateItemTypeto add support for copying array items - Refactored
UIOptionsBaseTypeto extract theaddable,orderable,removable,labelandduplicateKeySuffixSeparatorinto a newGlobalUISchemaOptionstype that addscopyable- Extended
UIOptionsBaseTypefromGlobalUISchemaOptions - In
UiSchemaadded a new optionalui:globalOptionsprop of typeGlobalUISchemaOptionsand a newUI_GLOBAL_OPTIONS_KEYconstant - Added a new optional prop
globalUiOptionsobject of typeGlobalUISchemaOptionsinRegistryas well asCopyButtoninButtonTemplates
- Extended
- Updated
getUiOptions()andgetDisplayLabel()(and itsSchemaUtilsTypecounterpart) to take an optionalGlobalUISchemaOptionsparameter that is used to include global options into the returneduiOptions
- Updated the playground to add a
Programmatically Resetbutton to clear states which are form data and validation errors. - Updated the
Date & timeexample to show off the newTimeWidget. - Updated the
custom-widgets-fieldsandwidgetsdocumentation to mention the newTimeWidgetand its support for thetimeformat. - Updated the documentation for
custom-templates,internals,uiSchema,utility-functionsandarraysfor the new copy array feature as well as the global UI Schema options support - Updated the
arraysexample to add examples for the newcopyablefeature
- Updated
BaseInputTemplateto favor the specialonChangeOverrideprovided by thecoreFileWidget - Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Updated
BaseInputTemplateto favor the specialonChangeOverrideprovided by thecoreFileWidget, deleting the theme'sFileWidget, fixing #2095 - Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Updated
BaseInputTemplateto favor the specialonChangeOverrideprovided by thecoreFileWidget - Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Ensure that
nameis consistently passed to allWidgetsthrough the field components, fixing #1763 - Updated the
FileWidgetto render the input using theBaseInputTemplatepassing a specialonChangeOverridefunction to deal with the file events, fixing #2095 - Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Updated
BaseInputTemplateto favor the specialonChangeOverrideprovided by thecoreFileWidget - Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Updated
BaseInputTemplateto favor the specialonChangeOverrideprovided by thecoreFileWidgetand to support automatically shrinking the label for thedate,datetime-localandfiletypes- Removed the
DateWidgetandDateTimeWidgetsince they were only created to provide the label shrinking property
- Removed the
- Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Updated
BaseInputTemplateto favor the specialonChangeOverrideprovided by thecoreFileWidgetand to support automatically shrinking the label for thedate,datetime-localandfiletypes- Removed the
DateWidgetandDateTimeWidgetsince they were only created to provide the label shrinking property
- Removed the
- Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Updated
BaseInputTemplateto favor the specialonChangeOverrideprovided by thecoreFileWidget - Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Added the
nameprop to theWidgetPropstype, fixing #1763 - Fixed
dataURItoBlob()to handle the exception thrown byatob()when it is passed a malformed URL, returning anblobthat indicates the error in thetypeprop - Fixed
replaceStringParameters()to improve the replaceable parameters logic so that it works properly when a parameter also contains a replaceable parameter identifier - Removed explicit import of
React, switching imports to explicit ones after fixing linting rules to not requireReactfor JSX
- Updated the
custom-widgets-fieldsdocumentation to ensure the newWidgetPropsnameprop is documented - Added Algolia DocSearch to the documentation site
- Updated
ErrorList,IconButtons,WrapIfAdditionalTemplateandAltDateWidgetto use the newtranslateString()function to support localization
- Updated
AddButton,ErrorList,IconButtons andWrapIfAdditionalTemplateto use the newtranslateString()function to support localization
- Updated
AddButton,ErrorList,IconButtons,WrapIfAdditionalTemplateandAltDateWidgetto use the newtranslateString()function to support localization
- Updated
ArrayField,BooleanField,MultiSchemaField,ObjectField,SchemaField,AddButton,IconButtons,ErrorList,WrapIfAdditionalTemplateandAltDateWidgetandFileWidgetto use the newtranslateString()function to support localization- Also updated
Formto take a new optionaltranslateStringprop andgetDefaultRegistry()to settranslateStringtoenglishStringTranslator()
- Also updated
- Updated
AddButton,ColorWidget,ErrorList,IconButtons andUpDownWidgetto use the newtranslateString()function to support localization
- Updated
AddButton,ErrorList,IconButtons andWrapIfAdditionalTemplateto use the newtranslateString()function to support localization - Patch
RangeWidgetto support0as range slider value, fixing #3458
- Updated
AddButton,ErrorList,IconButtons andWrapIfAdditionalTemplateto use the newtranslateString()function to support localization - Patch
RangeWidgetto support0as range slider value, fixing #3458
- Updated
AddButton,ErrorList,IconButtons andWrapIfAdditionalTemplateto use the newtranslateString()function to support localization
- Updated the
utility-functionsdocumentation for theenumsandenglishStringTranslator()&replaceStringParameters()functions - Updated the
form-propsdocumentation for the new, optionaltranslateStringprop onForm - Updated the playground's
numbersexample to use a range slider with a valid negative and0value
- Updated the
AltDateTimeWidgetin@rjsf/coreto addclassName="list-inline-item"to theLItags
- Fixed the
SelectWidgetto allow the proper display of the selected value, fixing #3422
- Fixed
Formto remove passingexcludeObjectChildrentogetDefaultFormState(), fixing #3424 and #675 - Added new feature prop
focusOnFirstError, that if true, will cause the first field with an error to be focused on when a submit has errors
- Updated
computeDefaults()to fix additionalProperties defaults not being propagated, fixing #2593- Also made sure to properly deal with empty
anyOf/oneOflists by simply returning undefined - Add support for adding an empty object when that object is marked as required in a schema
- Also made sure to properly deal with empty
- Updated the playground to add a control for
focusOnFirstErrorand theform-propsdocumentation for it as well
- Added the
idPrefix,idSeparatorandrawErrorsoptional props toFieldPropssince they were missing
- Migrated latest documentation to Docusaurus, which is deployed to GitHub Pages.
- Updated readthedocs.io documentation site to guide users to the new docs site.
- Updated links in documentation and package README files to point to new site.
- Updated the
custom-widgets-fielddocumentation for the newFieldProps
- Updated the
peerDependenciesin all packages to remove the-beta.xtags from the@rjsf/xxxxpackages
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Updated
CheckboxesWidget,RadioWidgetandSelectWidgetto use indexes as values to supportenumOptionswith object values, fixing #1494
- Added
enumOptionsIndexForValue(),enumOptionsIsSelected(),enumOptionsValueForIndex()functions to support fixing #1494- Updated
enumOptionsDeselectValue(),enumOptionsSelectValue()andoptionId()to use indexes instead of values - Deleted the
processSelectValue()that was added in the beta and is no longer needed
- Updated
- Updated
getSchemaType()to remove the inference of type fromanyOf/oneOf, fixing #3412
- Updated the
utility-functionsdocumentation for the new and updated methods mentioned above, as well as deleting the documentation forprocessSelectValue() - Updated the playground to add a new
Enum Objectsexample to highlight the use of indexes forenumOptions - Updated
5.x migration guideto document the change from values to indexes for theenumOptionsbased controls.
- Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Updated
MultiSchemaFieldto passundefinedas the value to the widget when theselectedOptionis -1, supportingSelectWidgetimplementations that allow the user to clear the selected value of theanyOf/oneOffield. - Updated
Formto support receiving an optionalrefprop. - Updated
Formto restore providing empty root level objects, fixing #3391 - Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Fixed
schema.examplesto deduplicate whenschema.defaultexists in the examples, fixing #3393
- Updated
MultiSchemaFieldto cache options with refs in state and to output better labels for options without them when a title is available in either theschemaoruiSchema - Improved fix for #2691 to remove the breaking change caused by the original fix #2980 as follows:
- Added a new
ui:fieldReplacesAnyOrOneOfflag to theuiSchemathat when true will allow users to opt-out of theanyOf/oneOfwrapping of a custom field
- Added a new
- Updated
toPathSchema()to handleoneOf/anyOfby picking the closest option and generating the path for it, fixing #2262 - Added new
uiSchemaonly flagui:fieldReplacesAnyOrOneOfthat, if true allows the user to opt-out of theanyOf/oneOfwrapping of a custom field
- Updated the
uiSchemadocumentation forui:fieldReplacesAnyOrOneOf
- Updated
MultiSchemaFieldto utilize the newgetClosestMatchingOption()andsanitizeDataForNewSchema()functions, fixing the following issues: - Updated
ObjectFieldto deal withadditionalPropertieswithoneOf/anyOf, fixing #2538 - Updated
Form,MultiSchemaField,ObjectFieldandSchemaFieldto properly support makingformDataoptional, fixing #3305
- Fix shrinking of
SelectWidgetlabel only if value is not empty, fixing #3369
- Fix shrinking of
SelectWidgetlabel only if value is not empty, fixing #3369
- Added new
getClosestMatchingOption(),getFirstMatchingOption()andsanitizeDataForNewSchema()schema-based utility functions- Deprecated
getMatchingOption()and updated all calls to it in other utility functions to usegetFirstMatchingOption()
- Deprecated
- Updated
stubExistingAdditionalProperties()to deal withadditionalPropertieswithoneOf/anyOf, fixing #2538 - Updated
getSchemaType()to grab the type of the first element of aoneOf/anyOf, fixing #1654 - Updated all props or function parameters of the generic type
Tto allow for them to be optionally provided, fixing #3305- This was done in both the types file and the actual implementation code
- Updated places where
formDatawas required as a function argument to make it optional, fixing #3305
- Updated places where
formDatawas required as a function argument to make it optional, fixing #3305
- Updated the playground to
onFormDataEdited()to only change the formData in the state if theJSON.stringify()of the old and new values are different, partially fixing #3236 - Updated the playground
npm startcommand to always use the--forceoption to avoid issues where changes made to other packages weren't getting picked up due tovitecaching - Updated the documentation for
utility-functionsand the5.x upgrade guideto add the new utility functions and to document the deprecation ofgetMatchingOption()- Also updated
utility-functions, making all optional parameters without a default (as denoted by the syntax[<parameter>]: <type>) to add| undefinedonto the type to make it clear it supports passing in undefined as a value.
- Also updated
- Enable searching in the
SelectWidgetby the label that the user sees rather than by the value - Added support for new
styleprop onFieldTemplateandWrapIfAdditionalTemplaterendering them on the outermost wrapper, partially fixing #1200 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Added support for new
styleprop onFieldTemplateandWrapIfAdditionalTemplaterendering them on the outermost wrapper, partially fixing #1200 - Updated
CheckboxesWidgetto treat the value as an array when selecting/deselecting values and when determining the checked state - fixing #2141 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Added support for new
styleprop onFieldTemplateandWrapIfAdditionalTemplaterendering them on the outermost wrapper, partially fixing #1200 - Updated
CheckboxesWidgetto treat the value as an array when selecting/deselecting values and when determining the checked state - fixing #2141 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Updated
SchemaFieldto handle the newstyleprop in theuiSchemasimilarly toclassNames, passing it to theFieldTemplateand removing it from being passed down to children.- Also, added support for new
styleprop onFieldTemplateandWrapIfAdditionalTemplaterendering them on the outermost wrapper - This partially fixes #1200
- Also, added support for new
- Updated
CheckboxesWidgetto treat the value as an array when selecting/deselecting values and when determining the checked state - fixing #2141 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Added support for new
styleprop onFieldTemplaterendering them on the outermost wrapper, partially fixing #1200 - Updated
CheckboxesWidgetto treat the value as an array when selecting/deselecting values and when determining the checked state - fixing #2141 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Updated
SelectWidgetto support additionalTextFieldPropsin a manner similar to howBaseInputTemplatedoes - Added support for new
styleprop onFieldTemplateandWrapIfAdditionalTemplaterendering them on the outermost wrapper, partially fixing #1200 - Updated
CheckboxesWidgetto treat the value as an array when selecting/deselecting values and when determining the checked state - fixing #2141 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Updated
SelectWidgetto support additionalTextFieldPropsin a manner similar to howBaseInputTemplatedoes - Added support for new
styleprop onFieldTemplateandWrapIfAdditionalTemplaterendering them on the outermost wrapper, partially fixing #1200 - Updated
CheckboxesWidgetto treat the value as an array when selecting/deselecting values and when determining the checked state - fixing #2141 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Added support for new
styleprop onFieldTemplateandWrapIfAdditionalTemplaterendering them on the outermost wrapper, partially fixing #1200 - Updated
CheckboxesWidgetto treat the value as an array when selecting/deselecting values and when determining the checked state - fixing #2141 - Updated all the user "input" controls to have an
aria-describedbyvalue built using theariaDescribedByIds()function, partially fixing #959- Also updated the generation of ids for the title, description, error, examples, options and help blocks using the associated new id generation utilty functions
- Updated the
FieldTemplateProps,WrapIfAdditionalTemplatePropsandUIOptionsBaseTypetypes to addstyle?: StyleHTMLAttributes<any>, partially fixing #1200 - Added
enumOptionsDeselectValue()andenumOptionsSelectValue()as a loose refactor of the duplicated functions in the variousCheckboxesWidgetimplementations - Updated the
FieldTemplateProps,WrapIfAdditionalTemplatePropsandUIOptionsBaseTypetypes to addstyle?: StyleHTMLAttributes<any>, partially fixing #1200 - Added new
ariaDescribedByIds(),descriptionId(),errorId(),examplesId(),helpId()optionId()andtitleId()id generator functions
- Remove alias for ajv -> ajv8 in package.json. This fixes #3215.
- Updated
AJV8Validator#transformRJSFValidationErrorsto return more human-readable error messages. The ajv8ErrorObjectmessage is enhanced by replacing the error message field with either theuiSchema'sui:titlefield if one exists or theparentSchematitle if one exists. Fixes #3246
- In the playground, change Vite
preserveSymlinkstotrue, which provides an alternative fix for #3228 since the prior fix caused #3215. - Updated the
custom-templates.mdanduiSchema.mdto document the newstyleprop - Updated the
validation.mddocumentation to describe the newuiSchemaparameter passed to thecustomValidate()andtransformError()functions - Updated the
utility-functionsdocumentation to add the newenumOptionsDeselectValue()andenumOptionsSelectValue()functions and to describe the new id generator functions - Updated the
5.x migration guidedocumentation to describe potential breakingidchanges
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314 - Updated the test for the
CheckboxWidgetvalidating that theschema.titleis passed as the label, fixing #3302 - Updated the theme to accept generic types, exporting
generateXXXfunctions forForm,Theme,TemplatesandWidgetsto support using the theme with user-specified type generics, partially fixing #3072 - Updated the use of the deprecated
withConfigConsumerwith theConfigConsumercomponent instead, fixing #3336
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314 - Updated
CheckboxWidgetto get therequiredstate of the checkbox from theschemaRequiresTrueValue()utility function rather than therequiredprop, fixing #3317 - Updated the test for the
CheckboxWidgetvalidating that theschema.titleis passed as the label, fixing #3302 - Updated the theme to accept generic types, exporting
generateXXXfunctions forForm,Theme,TemplatesandWidgetsto support using the theme with user-specified type generics, partially fixing #3072
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314 - Updated
CheckboxWidgetto get therequiredstate of the checkbox from theschemaRequiresTrueValue()utility function rather than therequiredprop, fixing #3317 - Updated the test for the
CheckboxWidgetvalidating that theschema.titleis passed as the label, fixing #3302 - Updated the theme to accept generic types, exporting
generateXXXfunctions forForm,Theme,TemplatesandWidgetsto support using the theme with user-specified type generics, partially fixing #3072
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314- Also, passed
registryinto theSubmitButtoninside of theFormas part of this fix
- Also, passed
- Updated
ArrayFieldto pass the newtotalItemsandcanAddprops to theArrayFieldItemTemplateinstances, fixing #3315- Also refactored the near duplicate logic for
onAddClickandonAddIndexClickinto a new_handleAddClick()function, fixing #3316
- Also refactored the near duplicate logic for
- Fix passing of generic types to a few helper methods, partially fixing #3072
- Updated the types for
ValidatorType,CustomValidatorandErrorTransformerto add the new generics, as well as passinguiSchemato thevalidateFormData()call, partially fixing #3170
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314 - Updated the test for the
CheckboxWidgetvalidating that theschema.titleis passed as the label, fixing #3302 - Updated the theme to accept generic types, exporting
generateXXXfunctions forForm,Theme,TemplatesandWidgetsto support using the theme with user-specified type generics, partially fixing #3072
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314 - Updated the test for the
CheckboxWidgetvalidating that theschema.titleis passed as the label, fixing #3302 - Updated the theme to accept generic types, exporting
generateXXXfunctions forForm,Theme,TemplatesandWidgetsto support using the theme with user-specified type generics, partially fixing #3072
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314 - Updated the test for the
CheckboxWidgetvalidating that theschema.titleis passed as the label, fixing #3302 - Updated the theme to accept generic types, exporting
generateXXXfunctions forForm,Theme,TemplatesandWidgetsto support using the theme with user-specified type generics, partially fixing #3072
- Updated the usage of the
ButtonTemplatesto pass the new requiredregistryprop, filtering it out in the actual implementations before spreading props, fixing - #3314 - Updated
CheckboxWidgetto get therequiredstate of the checkbox from theschemaRequiresTrueValue()utility function rather than therequiredprop, fixing #3317- Also fixed the
CheckboxWidgetmissing label issue #3302
- Also fixed the
- Updated the test for the
CheckboxWidgetvalidating that theschema.titleis passed as the label, fixing #3302 - Updated the theme to accept generic types, exporting
generateXXXfunctions forForm,Theme,TemplatesandWidgetsto support using the theme with user-specified type generics, partially fixing #3072
- Updated the
SubmitButtonPropsandIconButtonPropsto add requiredregistryprop, fixing - #3314 - Updated the
ArrayFieldTemplateItemTypeto add the newtotalItemsandcanAddprops, fixing #3315 - Updated the
CustomValidatorandErrorTransformertypes to take the full set ofT,S,Fgenerics in order to accept a new optionaluiSchemaproperty, partially fixing #3170 - Updated the
ValidatorTypeto add theFgeneric to allow thevalidateFormData()function to take a new optionaluiSchemaparameter, partially fixing #3170- Updated many of the schema-based utility functions to take the additional generics as well to fulfill the
ValidatorTypeinterface change
- Updated many of the schema-based utility functions to take the additional generics as well to fulfill the
- Updated the
customizeValidatorandAJV6Validatorimplementations to add theSandFgenerics, so thatvalidateFormData()can accept a new optionaluiSchemaparameter that is passed totransformErrors()andcustomValidate(), partially fixing #3170
- Updated the
customizeValidatorandAJV8Validatorimplementations to add theFgeneric, so thatvalidateFormData()can accept a new optionaluiSchemaparameter that is passed totransformErrors()andcustomValidate(), partially fixing #3170
- Fixed the documentation for
ArrayFieldItemTemplate,SubmitButtonPropsandIconButtonPropsas part of the fix for #3314 and #3315 - Updated the documentation in
form-props.mdforchildren, fixing #3322 - Added new
typescript.mddocumentation toAdvanced Customizationdescribing how to use custom generics as part of the fix for #3072 - Updated the documentation in
utilty-functions.mdto add the newFgeneric to all the places which needed them
- Pass the
schemaalong to theArrayFieldItemTemplateas part of the fix for #3253 - Tweak Babel configuration to emit ES5-compatible output files, fixing #3240
- Reverse the condition used in the
onChangehandler in theRangeWidget, fixing #2161
- Reverse the condition used in the
onChangehandler in theRangeWidget, fixing #2161
- Update the
ArrayFieldItemTemplateto addschemaas part of the fix for #3253 - Fix improper merging of nested
allOfs (#3025, #3227), fixing #2923 - Added a new
ErrorSchemaBuilderclass to enable building a properErrorSchemawithout crazy castings, fixing #3239
- Updated the validator to use the
ErrorSchemaBuilderin thetoErrorSchema()function to simplify the implementation
- Updated the validator to use the
ErrorSchemaBuilderin thetoErrorSchema()function to simplify the implementation - Updated the validator to properly map missing required field errors in the
ErrorSchema, fixing #3260
- Fixed the documentation for
ArrayFieldItemTemplateas part of the fix for #3253 - Added documentation for
ErrorSchemaBuilderin theutility-functions.md, fixing #3239
- No longer render extra 0 for array without errors, fixing #3233
- Added
refdefinition toThemePropsfixing #2135 - Updated the
onChangehandler inFormto use the newpreventDuplicatesmode ofmergeObjects()when mergingextraErrorswhen live validation is off, fixing #3169
- Fix RangeWidget missing htmlFor and schema.title #3281
- Fix RangeWidget missing htmlFor and schema.title #3281
- Updated
computedDefaults(used bygetDefaultFormState) to skip saving the computed default if it's an empty object unlessincludeUndefinedValuesis truthy, fixing #2150 and #2708 - Expanded the
getDefaultFormStateutil'sincludeUndefinedValuesprop to accept a boolean or"excludeObjectChildren"if it does not want to include undefined values in nested objects - Updated
mergeObjectsto add newpreventDuplicatesmode when concatenating arrays so that only unique values from the source object array are copied to the destination object array - Fix
isObjectto correctly identify 'Date' as not an object, similar to 'File', thus preventing them from being merged with Object default values.
- Removed extraneous leading space on the examples in the validation documentation, fixing #3282
- Updated the documentation for
mergeObjects()for the newpreventDuplicatesmode of concatenating arrays - Updated the documentation for unpkg releases to the correct name fixing the confusion found in #3262
- Fix Vite development server #3228
- BREAKING CHANGE: Disable form data validation for invalid JSON Schemas. Use @rjsf/validator-ajv6 if you need to validate against invalid schemas.
- Fix additionalProperties validation #3213
- Report all schema errors thrown by Ajv. Previously, we would only report errors thrown for a missing meta-schema. This behavior is unchanged for @rjsf/validator-ajv6.
- Disable Ajv strict mode by default.
- Add RJSF-specific additional properties keywords to Ajv to prevent errors from being reported in strict mode.
- For JSON Schemas with
$ids, use a pre-compiled Ajv validation function when available. - No longer fail to validate inner schemas with
$ids, fixing #2821.
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110
- Automatically close single-choice Select widget on selection
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110
- BREAKING CHANGE: ShowErrorList prop changed to support
false,toporbottom;trueis no longer a valid value as the default changed fromtruetotop#634 - Added the new generic,
S extends StrictRJSFSchema = RJSFSchema, forschema/rootSchemato every component that needed it. - Fix omitExtraData with field names with dots #2643
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110 - Changed the
F = anygeneric to beF extends FormContextType = anyto better support howformContextis defined and used, partially fixing #3072
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110
- Updated the tests to use the
@rjsf/validator-ajv8fixing #3110
- Beta-only potentially BREAKING CHANGE: Changed all types that directly or indirectly defined
schema/rootSchemato add the genericS extends StrictRJSFSchema = RJSFSchemaand useSas the type for them.StrictRJSFSchemawas added as the alias toJSON7SchemaandRJSFSchemawas modified to beStrictRJSFSchema & GenericObjectType- This new generic was added BEFORE the newly added
F = anygeneric because it is assumed that more people will want to change the schema than the formContext types - This provides future support for the newer draft versions of the schema
- Updated the
ValidatorTypeinterface to add a newrawValidation()method for use by the playground - Added the
FormContextTypealias toGenericObjectTypeand changing theF = anygeneric to beF extends FormContextType = anyto better support howformContextis defined and used, partially fixing #3072
- Fixed a few type casts given the new expanded definition of the
RJSFSchematype change - Deprecated this library in favor of the
@rjsf/validator-ajv8 - Refactored out the
rawValidation()function for use by the playground
- Updated the typing to add the new
S extends StrictRJSFSchema = RJSFSchemageneric and fixed up type casts - Added the
AjvClassprop to theCustomValidatorOptionsTypeto support using theAjv2019orAjv2020class implementation instead of the defaultAjvclass; fixing #3189 - Refactored out the
rawValidation()function for use by the playground
- Updated the
5.x upgrade guideandutility-functions.mdto document the newStrictRJSFSchema, theSgeneric and changing theFgeneric extend - Updated the
validationguide to document the newAjvClassprop onCustomValidatorOptionsTypeand mentioning the deprecation of@rjsf/validator-ajv6 - Updated the playground to add support for using the AJV 8 validator with the
draft-2019-09anddraft-2020-12schemas and to make theAJV8validator the default validator, markingAJV6as deprecated - Updated all the documentation to switch to Typescript notation where missing along with switching to using the
@rjsf/validator-ajv8validator as the default - Added a way of doing a raw Ajv validation in the playground to determine whether an issue is with RJSF or Ajv
- Updated
FieldTemplateto no longer render additional, unnecessary white space for fields that have emptyhelpandextrainformation, fixing #3147 - Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Make label generation consistent with other themes by refactoring the code into the
FieldTemplateinstead of having the widgets implementing the label, fixing #2007 - Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Added support for
chakra-react-selectv4, fixing #3152 - In
SelectWidgetuseSelectfromchakra-react-selectfor both single- and multiple-choice select - In
SelectWidgetmultiple-choice select display label rather than value for selected items - Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Extended
Form.onChangeto optionally return theidof the field that caused the change, fixing #2768 - Fixed a regression in earlier v5 beta versions where additional properties could not be added when
additionalPropertieswastrue(#3719). - Fixed a regression in v5 beta version where BooleanField was altering readonly props (#3188.
- Updated
ArrayFieldDescriptionTemplateandArrayFieldTitleTemplateto not render content whenui:labelis false, fixing #2535 - Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Updated
ArrayFieldTemplateto always renderArrayFieldDescriptionTemplatesince that template deals with the optionaldescription - Pass the
schemainto theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplate, fixing #3176
- Updated the
onChangeprop onFieldPropsandFieldTemplatePropsto add an optionalidparameter to the callback. - Updated the
DescriptionFieldPropsandTitleFieldPropsto add a new requiredschemaprop. Also updated theArrayFieldDescriptionTemplateandArrayFieldTitleTemplateto makedescriptionandtitleoptional while pulling all the other props butidfrom the associated type.
- Added an error boundary to prevent the entire app from crashing when an error is thrown by Form. See #3164 for closed issues.
- Updated the playground to log the
idof the field being changed on theonChangehandler - Updated
form-props.mdto describe the newidparameter being returned by theForm.onChangehandler - Updated
custom-templates.mdto add the newschemaprop to theArrayFieldDescriptionTemplate,ArrayFieldTitleTemplate,DescriptionFieldTemplateandTitleFieldTemplatedocumentation - Updated the
contributing.mdto describe setting up thehuskyprecommit hooks for the first timegit cloneof the repo; Also added guidance for developing on underpowered computers; Finally discussed code-coverage requirements for some packages.
- Convert
WrapIfAdditionaltoWrapIfAdditionalTemplate - Added
nameto theinputcomponents that were missing it to supportremix - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value, protecting against non-arrays - Converted
antdto Typescript, indirectly fixing (rjsf-team#3123)
- Convert
WrapIfAdditionaltoWrapIfAdditionalTemplate - Added
nameto theinputcomponents that were missing it to supportremix - Simplified the
CheckboxWidgetscode to eliminate a ternary in favor of a simpleinline={inline}property since all the rest of the props were the same - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value, removing unnecessary casts toanyand protecting against non-arrays - Fixed an issue where
CheckboxesWidgetincorrectly rendered inner<form>elements around each checkbox, fixing (rjsf-team#2355)
- Convert
WrapIfAdditionaltoWrapIfAdditionalTemplate - Added
nameto theinputcomponents that were missing it to supportremix - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value, removing unnecessary casts toanyand protecting against non-arrays
- Convert
WrapIfAdditionaltoWrapIfAdditionalTemplate - Added
nameto theinputcomponents that were missing it to supportremix - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value - Updated the
validate()method onFormto makeschemaUtilsan optional third parameter rather than a required first parameter, making the signature backwards compatible with what was provided in previous versions.
- Add stubbed
WrapIfAdditionalTemplate.additionalPropertiesis currently not supported in@rjsf/fluent-ui(See #2777). - Added
nameorid(for those fluent components not supporting name) to theinputcomponents that were missing it to supportremix - Fixed
DateTimeWidgetto properly useBaseInputTemplaterather thanTextWidget - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value, removing unnecessary casts and protecting against non-arrays, fixing (rjsf-team#2138) - Fixed
RadioWidgetso that it supports read-only and disabled states
- Convert
WrapIfAdditionaltoWrapIfAdditionalTemplate - Added
nameto theinputcomponents that were missing it to supportremix - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value, removing unnecessary casts toanyand protecting against non-arrays
- Convert
WrapIfAdditionaltoWrapIfAdditionalTemplate - Added
nameto theinputcomponents that were missing it to supportremix - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value, removing unnecessary casts toanyand protecting against non-arrays
- Convert
WrapIfAdditionaltoWrapIfAdditionalTemplate - Fixed
ArrayFieldTemplateandObjectFieldTemplate'sAddButtonto show the non-labeled version. (rjsf-team#3142) - Added
nameto theinputcomponents that were missing it to supportremix, including fixing incorrectnames asids in some situations - Fixed
CheckboxesWidgetandRadioWidgetto have uniqueids for each radio element by appending theoption.value, protecting against non-arrays - Converted
semantic-uito Typescript
- Added
WrapIfAdditionalTemplateandWrapIfAdditionalTemplatePropsto simplify theming and make it easier to override Field behavior for schemas withadditionalProperties.
- Pass
uiSchemaappropriately to all of theIconButtons,ArrayFieldItemTemplateandWrapIfAdditionalcomponents, fixing (rjsf-team#3130)
- Updated the
FieldErrorTemplateto remove the explicit typing of theerrorto string to support the two options - Updated
Themeto use the renamedThemePropsfrom@rjsf/core - Pass
uiSchemaappropriately to all of theIconButtons,ArrayFieldItemTemplateandWrapIfAdditionalcomponents, fixing (rjsf-team#3130)
- Updated
Themeto use the renamedThemePropsfrom@rjsf/core - Pass
uiSchemaappropriately to all of theIconButtons,ArrayFieldItemTemplateandWrapIfAdditionalcomponents, fixing (rjsf-team#3130)
- Updated the
FieldErrorTemplateto remove the explicit typing of theerrorto string to support the two options - Implemented programmatic validation via new
validateForm()method onForm, fixing (rjsf-team#2755, rjsf-team#2552, rjsf-team#2381, rjsf-team#2343, rjsf-team#1006, rjsf-team#246) - Renamed
WithThemePropstoThemePropsto prevent another breaking-change by returning the type back to the name it had in version 4 - Pass
uiSchemaappropriately to all of theIconButtons,ArrayFieldItemTemplateandWrapIfAdditionalcomponents, fixing (rjsf-team#3130) - Updated
ArrayFieldto fall back toSchemaFieldifArraySchemaFieldis not defined, fixing (rjsf-team#3131)
- Updated
Themeto use the renamedThemePropsfrom@rjsf/core - Pass
uiSchemaappropriately to all of theIconButtons andArrayFieldItemTemplatecomponents, fixing (rjsf-team#3130)
- Updated
Themeto use the renamedThemePropsfrom@rjsf/core - Pass
uiSchemaappropriately to all of theIconButtons,ArrayFieldItemTemplateandWrapIfAdditionalcomponents, fixing (rjsf-team#3130)
- Updated
Themeto use the renamedThemePropsfrom@rjsf/core - Pass
uiSchemaappropriately to all of theIconButtons,ArrayFieldItemTemplateandWrapIfAdditionalcomponents, fixing (rjsf-team#3130)
- Updated the
FieldErrorTemplateto use thechildrenvariation of theList.Itemthat supports ReactElement - Pass
uiSchemaappropriately to all of theIconButtons,ArrayFieldItemTemplateandWrapIfAdditionalcomponents, fixing (rjsf-team#3130)
- Updated the
FieldErrorPropstype to make it support an array of string and ReactElement - Updated the
IconButtonPropstype to adduiSchema, adding the<T = any, F = any>generics to it and the associatedButtonTemplatesinTemplatesTypeAND addeduiSchematoArrayFieldTemplateItemTypeas well, fixing (rjsf-team#3130)
- Updated the
custom-templates.mdfile to add the missing asterisk to the newFieldErrorTemplateandFieldHelpTemplate - Updated the playground to add a new button for programmatically validating a form
- Also updated the
validation.mddocumentation to describe how to programmatically validate a form - Fixed the
chakra-uicustomuiSchemadocumentation to make it clear they work on a per-field basis, fixing (rjsf-team#2865) - Added
formElementbreaking-change documentation to the5.x upgrade guide.md - Replace Webpack with Vite
- Updated documentation for
ArraySchemaFieldto better represent the updated implementation, fixing (rjsf-team#3131)
- When rendering additional properties with title, use the key of the property instead of the title.
- Only show description when there really IS a description, fixes (rjsf-team#2779)
- Refactored the
FieldErrorTemplatefrom inside ofFieldTemplate; fixes (rjsf-team#3104)
- Refactored the
FieldErrorTemplateandFieldHelpTemplatefrom inside ofFieldTemplate; fixes (rjsf-team#3104)
- Refactored the
FieldErrorTemplateandFieldHelpTemplatefrom inside ofFieldTemplate; fixes (rjsf-team#3104)
- Added new field
ArraySchemaField, assigned toSchemaFieldby default, that is used by theArrayFieldto render thechildrenfor each array field element - Refactored the internal
ErrorListandHelpcomponents from inside ofSchemaFieldto new templates:FieldErrorTemplateandFieldHelpTemplate; fixes (rjsf-team#3104)
- Refactored the
FieldErrorTemplateandFieldHelpTemplatefrom inside ofFieldTemplate; fixes (rjsf-team#3104)
- Refactored the
FieldErrorTemplateandFieldHelpTemplatefrom inside ofFieldTemplate; fixes (rjsf-team#3104)
- Converted
RawErrorsandHelpFieldintoFieldErrorTemplateandFieldHelpTemplate, removing their explicit calls fromFieldTemplate; fixes (rjsf-team#3104)
- Added new
FieldErrorPropsandFieldHelpPropstypes - Added new
FieldErrorTemplateandFieldHelpTemplateto theTemplatesType
- Updated the
custom-templates.mdfile to add documentation for the newFieldErrorTemplateandFieldHelpTemplate - Updated the
custom-widgets-fields.mdfile to add documentation for the newArraySchemaFieldfield.
- Change custom attribute to bsPrefix by @WillowP, fixing (rjsf-team#2648)
- Added tests for the new
@rjsf/validator-ajv8to thevalidate_test.jsfile to ensure the validation works with both validator implementations
- Fixed the
README.mdto correct the package name in several places to match the actual package
- Fixed the
README.mdto remove references to ajv6 validator, adding link to theutility-functions.mdin the docs - Fixed the
README.mdto correct the package name in several places to match the actual package - Updated
getDefaultFormState()so that oneOf and anyOf default values do not always use the first option when formData contains a better option, fixing (rjsf-team#2183)
- Fixed the
README.mdto correct the package name in several places to match the actual package
- Support for localization (L12n) on a customized validator using a
Localizerfunction passed as a second parameter tocustomizeValidator(), fixing (rjsf-team#846, and rjsf-team#1195) - Fixed the
README.mdto correct the package name in several places to match the actual package
- Added two new validator selections,
AJV8andAJV8_esto the list of available validators for the playground; Using the second one will translate error messages to spanish. - Updated the validation documentation to clarify the case of empty strings being stored as
nullin certain cases.
- Added the new Ajv 8 based validator so that it can get published on npm
- Switched
devDependenciesfor React to 17.x and usedtsto build and test the library (rather thantsdx)
- Added a
requestSubmit()call to theForm.submit()function, fixing (rjsf-team#2104, rjsf-team#3023) - Added missing
childrenproperty on theFormPropstype forForm - Throw an error when the required
validatorprop has not been provided to theForm
- Do not show errors if
extraErrorshas[](rjsf-team#2576). - Added support for
schema.examplesin the material ui theme fixing (rjsf-team#2368, rjsf-team#2557)
- Added support for
schema.examplesin the material ui theme fixing (rjsf-team#2368, rjsf-team#2557)
- Added support for
schema.examplesin the material ui theme fixing (rjsf-team#2368, rjsf-team#2557)
- Added support for
schema.examplesin the material ui theme fixing (rjsf-team#2368, rjsf-team#2557)
- Upgraded from the
1.xto2.xversion ofsemantic-ui-react - Added support for
schema.examplesin the material ui theme fixing (rjsf-team#2368, rjsf-team#2557)
- Avoid importing the whole of
react-icons(rjsf-team#3046, react-icons/react-icons#154)
- Fixed missing
playgroundimport error by addingsource-map-loader - Fixed up the incorrectly formatted
5.x Migration Guide - Added a
Programmatic Submitbutton on the playground form to allow users to test the ability to programmatically submit a form - Regenerated the
package-lock.jsonfiles using cleannode_modulesdirectories - Fixed issue with playground controls in top right corner not functioning properly due to missing validator
- Added peer dependencies to new
@rjsf/utilslibrary now that it is published on npm
- Node 16 is now the default node engine for all packages, fixing (rjsf-team#2687)
- Refactored all themes to use the new
@rjsf/utilslibrary functions and types - Refactored the individual theme forms to consolidate
templatesas part of the fix for rjsf-team#2526- All the work implementing the
BaseInputTemplateshould fix (rjsf-team#2926, rjsf-team#2889, rjsf-team#2875, rjsf-team#2223) - Also made the display of
titleanddescriptionconsistent across themes, fixing (rjsf-team#2481, rjsf-team#2363, rjsf-team#2219) - This change also ensures that all templates are properly exported, resolving (rjsf-team#2365)
- All the work implementing the
- Bumped most devDependencies to the latest versions where possible
- Switched all repos
package.jsonandpackage-lock.jsonfiles to be built and maintained by Node 16. - Adding button templates help to change text for buttons (rjsf-team#2082, rjsf-team#2357)
- New package created by refactoring and converting to Typescript the
utils.jsfile fromcoreinto independent functions.- Resolves (rjsf-team#1655, rjsf-team#2480, rjsf-team#2341)
- Updated
typesfromcoreinutilsto better match the implementation across all themes- Included adding a bunch of new types for existing and new features
- The type updates should fix (rjsf-team#2871, rjsf-team#2673, rjsf-team#2347, rjsf-team#2186)
- Clear errors on
formDatachange whenliveOmit=truewhen "additionalProperties: false" issue 1507 (rjsf-team#2631)
- New package created by refactoring and converting to Typescript the
validator.jsfile fromcoreinto independent functions as well as a class that implements the newValidatorTypeinterface. - Added support for customizing the options passed to the creation of the
ajvinstance. - A BREAKING CHANGE to
toErrorList()was made so that it takesfieldPath: string[]rather thanfieldName='root'as part of the fix to (rjsf-team#1596)- The returned
errorsalso now addspropertyfrom thefieldPathalong with the proper path from thepropertyto thestackmessage, making it consistent with the AJV errors.- Previously the
stackattribute would sayroot: error message; now it says. error message
- Previously the
- In addition, the extra information provided by AJV is no longer lost from the
errorswhen merged with custom validation, fixing (rjsf-team#1596).
- The returned
- Converted core to Typescript (rjsf-team#583)
ui:emptyValuenow works with selects (rjsf-team#1041)- Refactoring
utils.jsinto the new@rjsf/utilsfixes (rjsf-team#2719) - BREAKING CHANGE Fix overriding core submit button className (rjsf-team#2979)
- Fix
ui:fieldwith anyOf or oneOf no longer rendered twice (#2890) - BREAKING CHANGE Fixed
anyOfandoneOfgetting incorrect, potentially duplicate ids when combined with array (rjsf-team#2197) formContextis now passed properly toSchemaField, fixes (rjsf-team#2394, rjsf-team#2274)- Added
ui:duplicateKeySuffixSeparatorto customize how duplicate object keys are renamed when usingadditionalProperties. - The
extraErrorsare now consistently appended onto the end of the schema validation-basederrorsinformation that is returned via theonErrors()callback when submit fails.- In addition, the extra information provided by AJV is no longer stripped from the
errorsduring the merge process, fixing (rjsf-team#1596).
- In addition, the extra information provided by AJV is no longer stripped from the
- Fixed id generation for
RadioWidgetto no longer use random numbers fixing (rjsf-team#2461) - Correctly call the
onChangehandler in the new set of props if it changed, fixing (rjsf-team#1708). - Fixed race condition for
onChangewhenformDatais controlled prop, fixing (rjsf-team#513),
- Fix esm build to use
@rollup/plugin-replaceto replaceantd/libandrc-picker/libwithantd/esandrc-picker/esrespectively, fixing (rjsf-team#2962)
- Bootstrap-4
withThemecustomizations should work properly now (rjsf-team#2058) ArrayFieldTemplaterefactor seems to have fixed rjsf-team#2775- Fix issues with
SelectField(rjsf-team#2616, rjsf-team#2875)
- Properly handle the hidden field in this theme (rjsf-team#2571)
- The theme for Material UI version 5 (i.e.
@rjsf/mui) was split out of the theme for version 4 (i.e.@rjsf/material-ui) to resolve the following issues: - Material-UI TextWidget now respects
inputTypein uiSchema (rjsf-team#2057)- Also respects
stepfornumbertype (rjsf-team#2488)
- Also respects
- Material-UI UpDownWidget now support min/max/step (rjsf-team#2022)
- Properly handle the hidden field in this theme (rjsf-team#2571)
- Select properly accepts true or false (rjsf-team#2326)
- The theme for Material UI version 5 (i.e.
@rjsf/mui) was split out of the theme for version 4 (i.e.@rjsf/material-ui) to resolve the following issues: - Material-UI TextWidget now respects
inputTypein uiSchema (rjsf-team#2057)- Also respects
stepfornumbertype (rjsf-team#2488)
- Also respects
- Material-UI UpDownWidget now support min/max/step (rjsf-team#2022)
- Properly handle the hidden field in this theme (rjsf-team#2571)
- Fix missing error class on fields (rjsf-team#2666)
- Fixed the
maindefinition insemantic-uito fix (withastro/astro#4357) - Properly handle the hidden field in this theme (rjsf-team#2571)
- Demonstrate use of
ui:fieldwithanyOf(#2890) - Playground now uses webpack 5
- Corrected number field default (rjsf-team#2358)
- fix typo by @epicfaace in rjsf-team#2854
- Build all packages with TypeScript, including core by @nickgros in rjsf-team#2799
- fix(@rjsf/chakra-ui): append SubmitButton by @terrierscript in rjsf-team#2860
- fix: Pass uiSchema to custom ArrayField by @bakajvo in rjsf-team#2769
- fix(@rjsf-antd): Submit button type bug (#2867) by @sarpere in rjsf-team#2869
- Docs: Clarify registry object structure and that it's passed down to custom widgets by @epicfaace in rjsf-team#2886
- fix: allow UISchemaSubmitButtonOptions properties to be undefined by @maxpou in rjsf-team#2876
- Create FUNDING.yml by @epicfaace in rjsf-team#2866
- docs: fix schema dependencies link by @epicfaace in rjsf-team#2885
- chore(deps): bump core-js-pure from 3.21.1 to 3.23.3 by @dependabot in rjsf-team#2902
- chore(deps): bump minimist from 1.2.5 to 1.2.6 in /packages/fluent-ui by @dependabot in rjsf-team#2805
- fix(@rjsf/bootstrap-4): Change custom attribute to bsPrefix by @WillowP in rjsf-team#3049
- Feature for ui:submitButtonOptions on the submit button for forms (rjsf-team#2640)
- Fix
ui:orderableandui:removablein arrays (#2797) - Fix for nested allOf blocks with multiple if/then/else statements failing to render correctly (rjsf-team#2839)
- Enable ui options in playground, to demonstrate submit button options (rjsf-team#2640)
- Document the
material-uicontext and hook (#2757)
- SubmitButton widget to use new ui:submitButtonOptions on the submit button for forms (rjsf-team#2833)
- Fixed bundler warning issue (#2762) by exporting a
@rjsf/material-ui/v4and@rjsf/material-ui/v5sub-package- NOTE:
@rjsf/material-uiwas retained to avoid a breaking change, but using it will continue to cause bundler warnings - See the
README.mdfor the@rjsf/material-uipackage for updated usage information
- NOTE:
- Fixed (#2831) for
material-uiby removing theDefaultChildrenpassed into the themes
- SubmitButton widget to use new ui:submitButtonOptions on the submit button for forms (rjsf-team#2640)
- SubmitButton widget to use new ui:submitButtonOptions on the submit button for forms (rjsf-team#2640)
- SubmitButton widget to use new ui:submitButtonOptions on the submit button for forms (rjsf-team#2640)
- SubmitButton widget to use new ui:submitButtonOptions on the submit button for forms (rjsf-team#2640)
- Fix bloated bundle size by individually requiring all MUI components (#2754)
- Add new
useMuiComponent()hook as a shortcut foruseContext(MuiComponentContext)
- Added support for additionalProperties schema property (#2817)
- To improve performance, skip validating subschemas in oneOf / anyOf if formData is undefined (#2676)
- Fixed the
toIdSchema()typescript definition to add newidSeparatorprop along with the spelling ofidPrefix- Also passed the new
idSeparatorprop through to theAnyOfFieldandOneOfFieldinside ofSchemaField - Updated
ArrayFieldin@rjsf/coreto passidSeparatorandidPrefixthrough toSchemaField, fixing a small bug
- Also passed the new
- Added support for the new
ui:hideErrorfeature, which allows you to hide errors at a field level
- Remove
console.log()of the import error inMaterialUIContextandMui5Context - Export the
MaterialComponentContext(#2724)
- Added documentation for the new
ui:hideErrorfeature
- Bumped the peer dependencies of
@rjsf/coreto^4.0.0for all of themes inpackage.json - Also, added tests to all themes to verify that the
tagNameprop works as expected
- Updated
Formto support thesemantic-uiandmaterial-uithemes to allow them work whentagNameis provided - Support if/then/else (#2700)
- Fixed up the
ThemeandTheme5implementations to deal with a regression in which addingtagNamecaused the 2 themes to not work - Only
console.log()the import error inMaterialUIContextandMui5Contextwhen not inproductionto eliminate tons of warnings for released code
- Fixed up the
Themeimplementation to deal with a regression in which addingtagNamecaused the theme to not work
- Add React 17 as a supported peer-dependency
- Introduce
idSeparatorprop to change the path separator used to generate field names (rjsf-team#2628) - Array fields support custom widgets (previously, only multiple-choice arrays with
enumsoruniqueItemssupport it) (rjsf-team#2697)
- Added React 17 as an optional peer dependency
- Minimum version of React required to use package is now React 16.3
- Bumped required minimum versions of
@material-ui/coreand@material-ui/iconsto the latest (4.12.0and4.11.1)- New exports:
MuiForm4andTheme4are aliases to the material-ui version 4MuiFormandTheme - The Material-UI 4 theme will fallback to a form with a message indicating
@material-uiis not available when one (or both) of the libraries are not installed
- New exports:
- Added support for material-ui version 5 on top of React 17
- Requires React 17 so will need to upgrade project
- Added
@mui/material,@mui/icons-material,@emotion/reactand@emotion/styledas optional peer dependencies - New exports:
MuiForm5andTheme5support using the Material UI 5 libraries instead of version 4 - The Material-UI 5 theme will fallback to a form with a message indicating
@muiis not available when one (or both) of the libraries are not installed
- Added support for this new theme
- Upgraded playground to use React 17
- Differentiated the material-ui 4 and 5 themes
- Added chakra-ui theme
- "semantic-ui-react" dependency updated to v1.3.1 (rjsf-team#2590)
- fixed an issue where all semantic props overwritten when a single semantic theme-specific prop is passed in (issue 2619) (rjsf-team#2590)
- Don't crash when non-object formData is passed in to a schema item with additionalProperties (rjsf-team#2595)
- Upgrade jsonpointer to 5.0.0 to address security vulnerability (rjsf-team#2599)
- Feature for ui:submitButtonOptions on the submit button for forms (rjsf-team#2640)
- Fix for clearing errors after updating and submitting form (rjsf-team#2536)
- bootstrap-4 TextWidget wrappers now pull from registry, add rootSchema to Registry, fix FieldProps.onFocus type to match WidgetProps (rjsf-team#2519)
- Added global
readonlyflag to theForm(rjsf-team#2554) - Fix to allow changing
additionalPropertiesto falsy values (rjsf-team#2540) - Pass uiSchema to custom Boolean widget (rjsf-team#2587
- bootstrap-4 TextWidget wrappers now pull from registry, add rootSchema to Registry, fix FieldProps.onFocus type to match WidgetProps (rjsf-team#2519)
- fluent-ui: Allow value of 0 in TextWidget (rjsf-team#2497)
- Several dependency updates
- Added global
readonlyflag to theForm(rjsf-team#2554) - Enable source maps in playground, for development (rjsf-team#2568)
- Properly assign label prop for MultiSelect ArrayField (rjsf-team#2459)
- Take into account implicitly defined types when rendering labels for fields (rjsf-team#2502)
- Add default Form export to @rjsf/antd (rjsf-team#2514)
- Make material-ui and fluent-ui pull TextWidget from the registry; remove registry prop from in TextWidget (rjsf-team#2515)
- Make material-ui and fluent-ui pull TextWidget from the registry; remove registry prop from in TextWidget (rjsf-team#2515)
- Use getDisplayLabel to properly show labels for widgets (rjsf-team#2225)
- Add submit button, email, url, date widgets (rjsf-team#2224)
- Several dependency updates