Skip to content

Releases: rjsf-team/react-jsonschema-form

5.3.0

17 Mar 04:44

Choose a tag to compare

Three new features

  • Array item copy
  • Programmatic form reset
  • TimeWidget

@rjsf/antd

  • 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.json to properly add required dependencies explicitly which were installed implicitly

@rjsf/bootstrap-4

  • 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

@rjsf/chakra-ui

  • 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

@rjsf/core

  • Reset function added for Programmatically Reset action. Reset function will reset form data and validation errors. Form data will set to default values.
  • Implemented a new TimeWidget that 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 InvalidObjectField error in ObjectField
  • Added support for the handling of the global UiSchema options in Form, ArrayField, ObjectField and SchemaField

@rjsf/fluent-ui

  • 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

@rjsf/material-ui

  • Updated BaseInputTemplate so that it shrinks a time formatted 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

@rjsf/mui

  • Updated BaseInputTemplate so that it shrinks a time formatted 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

@rjsf/semantic-ui

  • 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

@rjsf/utils

  • Updated the widget matrix used by getWidget() to support the time to TimeWidget mapping
  • Added a new TranslatableString enums CopyButton and InvalidObjectField that localizes the information extracted from ObjectField as markdown
  • Updated the ArrayFieldTemplateItemType to add support for copying array items
  • Refactored UIOptionsBaseType to extract the addable, orderable, removable, label and duplicateKeySuffixSeparator into a new GlobalUISchemaOptions type that adds copyable
    • Extended UIOptionsBaseType from GlobalUISchemaOptions
    • In UiSchema added a new optional ui:globalOptions prop of type GlobalUISchemaOptions and a new UI_GLOBAL_OPTIONS_KEY constant
    • Added a new optional prop globalUiOptions object of type GlobalUISchemaOptions in Registry as well as CopyButton in ButtonTemplates
  • Updated getUiOptions() and getDisplayLabel() (and its SchemaUtilsType counterpart) to take an optional GlobalUISchemaOptions parameter that is used to include global options into the returned uiOptions

Dev / docs / playground

  • Updated the playground to add a Programmatically Reset button to clear states which are form data and validation errors.
  • Updated the Date & time example to show off the new TimeWidget.
  • Updated the custom-widgets-fields and widgets documentation to mention the new TimeWidget and its support for the time format.
  • Updated the documentation for custom-templates, internals, uiSchema, utility-functions and arrays for the new copy array feature as well as the global UI Schema options support
  • Updated the arrays example to add examples for the new copyable feature

5.2.1

08 Mar 17:23

Choose a tag to compare

@rjsf/antd

  • Updated BaseInputTemplate to favor the special onChangeOverride provided by the core FileWidget
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/bootstrap-4

  • Updated BaseInputTemplate to favor the special onChangeOverride provided by the core FileWidget, deleting the theme's FileWidget, fixing #2095
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/chakra-ui

  • Updated BaseInputTemplate to favor the special onChangeOverride provided by the core FileWidget
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/core

  • Ensure that name is consistently passed to all Widgets through the field components, fixing #1763
  • Updated the FileWidget to render the input using the BaseInputTemplate passing a special onChangeOverride function to deal with the file events, fixing #2095
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/fluent-ui

  • Updated BaseInputTemplate to favor the special onChangeOverride provided by the core FileWidget
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/material-ui

  • Updated BaseInputTemplate to favor the special onChangeOverride provided by the core FileWidget and to support automatically shrinking the label for the date, datetime-local and file types
    • Removed the DateWidget and DateTimeWidget since they were only created to provide the label shrinking property
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/mui

  • Updated BaseInputTemplate to favor the special onChangeOverride provided by the core FileWidget and to support automatically shrinking the label for the date, datetime-local and file types
    • Removed the DateWidget and DateTimeWidget since they were only created to provide the label shrinking property
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/semantic-ui

  • Updated BaseInputTemplate to favor the special onChangeOverride provided by the core FileWidget
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

@rjsf/utils

  • Added the name prop to the WidgetProps type, fixing #1763
  • Fixed dataURItoBlob() to handle the exception thrown by atob() when it is passed a malformed URL, returning an blob that indicates the error in the type prop
  • Fixed replaceStringParameters() to improve the replaceable parameters logic so that it works properly when a parameter also contains a replaceable parameter identifier
  • Added new BaseInputTemplateProps type, extending WidgetProps to add onChangeOverride optional prop
  • Removed explicit import of React, switching imports to explicit ones after fixing linting rules to not require React for JSX

Dev / docs / playground

  • Updated the custom-widgets-fields documentation to ensure the new WidgetProps name prop is documented
  • Added Algolia DocSearch to the documentation site

5.2.0

04 Mar 20:02

Choose a tag to compare

New feature: Support for the localization of React's internal strings. See the documentation

@rjsf/antd

  • Updated ErrorList, IconButtons, WrapIfAdditionalTemplate and AltDateWidget to use the new translateString() function to support localization

@rjsf/bootstrap-4

  • Updated AddButton, ErrorList, IconButtons and WrapIfAdditionalTemplate to use the new translateString() function to support localization

@rjsf/chakra-ui

  • Updated AddButton, ErrorList, IconButtons, WrapIfAdditionalTemplate and AltDateWidget to use the new translateString() function to support localization

@rjsf/core

  • Updated ArrayField, BooleanField, MultiSchemaField, ObjectField, SchemaField, AddButton, IconButtons, ErrorList, WrapIfAdditionalTemplate and AltDateWidget and FileWidget to use the new translateString() function to support localization
    • Also updated Form to take a new optional translateString prop and getDefaultRegistry() to set translateString to englishStringTranslator()

@rjsf/fluent-ui

  • Updated AddButton, ColorWidget, ErrorList, IconButtons and UpDownWidget to use the new translateString() function to support localization

@rjsf/material-ui

  • Updated AddButton, ErrorList, IconButtons and WrapIfAdditionalTemplate to use the new translateString() function to support localization

@rjsf/mui

  • Updated AddButton, ErrorList, IconButtons and WrapIfAdditionalTemplate to use the new translateString() function to support localization

@rjsf/semantic-ui

  • Updated AddButton, ErrorList, IconButtons and WrapIfAdditionalTemplate to use the new translateString() function to support localization

Dev / docs / playground

  • Updated the utility-functions documentation for the enums and englishStringTranslator() & replaceStringParameters() functions
  • Updated the form-props documentation for the new, optional translateString prop on Form

5.1.0

06 Feb 20:10

Choose a tag to compare

@rjsf/bootstrap-4

  • Updated the AltDateTimeWidget in @rjsf/core to add className="list-inline-item" to the LI tags

@rjsf/chakra-ui

  • Fixed the SelectWidget to allow the proper display of the selected value, fixing #3422

@rjsf/core

  • Fixed Form to remove passing excludeObjectChildren to getDefaultFormState(), 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

@rjsf/utils

  • Updated computeDefaults() to fix additionalProperties defaults not being propagated, fixing #2593
    • Also made sure to properly deal with empty anyOf/oneOf lists by simply returning undefined
    • Add support for adding an empty object when that object is marked as required in a schema

Dev / docs / playground

  • Updated the playground to add a control for focusOnFirstError and the form-props documentation for it as well

5.0.2

03 Feb 19:21

Choose a tag to compare

Full Changelog: v5.0.1...v5.0.2

5.0.1

31 Jan 02:26

Choose a tag to compare

  • Updated the peerDependencies in all packages to remove the -beta.x tags from the @rjsf/xxxx packages

5.0.0

31 Jan 00:13

Choose a tag to compare

5.0.0 is released!

After 9 months of hard work by many contributor, the 5.0.0 release is officially out

BREAKING CHANGES WARNING

There are many breaking changes in this new major release.
Consult the 5.x migration guide for all the details

In addition to all of the changes made in the 5.0.0-beta.1 through 5.0.0-beta.20 pre-releases, the following additional changes have been made:

@rjsf/antd

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/bootstrap-4

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/chakra-ui

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/core

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/fluent-ui

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/material-ui

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/mui

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/semantic-ui

  • Updated CheckboxesWidget, RadioWidget and SelectWidget to use indexes as values to support enumOptions with object values, fixing #1494

@rjsf/utils

  • Added enumOptionsIndexForValue(), enumOptionsIsSelected(), enumOptionsValueForIndex() functions to support fixing #1494
    • Updated enumOptionsDeselectValue(), enumOptionsSelectValue() and optionId() to use indexes instead of values
    • Deleted the processSelectValue() that was added in the beta and is no longer needed

Dev / docs / playground

  • Updated the utility-functions documentation for the new and updated methods mentioned above, as well as deleting the documentation for processSelectValue()
  • Updated the playground to add a new Enum Objects example to highlight the use of indexes for enumOptions
  • Updated 5.x migration guide to document the change from values to indexes for the enumOptions based controls.

5.0.0-beta.20

27 Jan 19:03

Choose a tag to compare

5.0.0-beta.20 Pre-release
Pre-release

@rjsf/antd

  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

@rjsf/bootstrap-4

  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

@rjsf/chakra-ui

  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

@rjsf/core

  • Updated MultiSchemaField to pass undefined as the value to the widget when the selectedOption is -1, supporting SelectWidget implementations that allow the user to clear the selected value of the anyOf/oneOf field.
  • Updated Form to support receiving an optional ref prop.
  • Updated Form to restore providing empty root level objects, fixing #3391
  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

@rjsf/fluent-ui

  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

@rjsf/material-ui

  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

@rjsf/mui

  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

@rjsf/semantic-ui

  • Fixed schema.examples to deduplicate when schema.default exists in the examples, fixing #3393

5.0.0-beta.19

26 Jan 18:16

Choose a tag to compare

5.0.0-beta.19 Pre-release
Pre-release

@rjsf/core

  • Updated MultiSchemaField to cache options with refs in state and to output better labels for options without them when a title is available in either the schema or uiSchema
  • Improved fix for #2691 to remove the breaking change caused by the original fix #2980 as follows:
    • Added a new ui:fieldReplacesAnyOrOneOf flag to the uiSchema that when true will allow users to opt-out of the anyOf/oneOf wrapping of a custom field

@rjsf/utils

  • Updated toPathSchema() to handle oneOf/anyOf by picking the closest option and generating the path for it, fixing #2262
  • Added new uiSchema only flag ui:fieldReplacesAnyOrOneOf that, if true allows the user to opt-out of the anyOf/oneOf wrapping of a custom field

Dev / docs / playground

  • Updated the uiSchema documentation for ui:fieldReplacesAnyOrOneOf

5.0.0-beta.18

24 Jan 20:24

Choose a tag to compare

5.0.0-beta.18 Pre-release
Pre-release

@rjsf/core

  • Updated MultiSchemaField to utilize the new getClosestMatchingOption() and sanitizeDataForNewSchema() functions, fixing the following issues:
  • Updated ObjectField to deal with additionalProperties with oneOf/anyOf, fixing #2538
  • Updated Form, MultiSchemaField, ObjectField and SchemaField to properly support making formData optional, fixing #3305

@rjsf/material-ui

  • Fix shrinking of SelectWidget label only if value is not empty, fixing #3369

@rjsf/mui

  • Fix shrinking of SelectWidget label only if value is not empty, fixing #3369

@rjsf/utils

  • Added new getClosestMatchingOption(), getFirstMatchingOption() and sanitizeDataForNewSchema() schema-based utility functions
    • Deprecated getMatchingOption() and updated all calls to it in other utility functions to use getFirstMatchingOption()
  • Updated stubExistingAdditionalProperties() to deal with additionalProperties with oneOf/anyOf, fixing #2538
  • Updated getSchemaType() to grab the type of the first element of a oneOf/anyOf, fixing #1654
  • Updated all props or function parameters of the generic type T to allow for them to be optionally provided, fixing #3305
    • This was done in both the types file and the actual implementation code

@rjsf/validator-ajv6

  • Updated places where formData was required as a function argument to make it optional, fixing #3305

@rjsf/validator-ajv8

  • Updated places where formData was required as a function argument to make it optional, fixing #3305

Dev / docs / playground

  • Updated the playground to onFormDataEdited() to only change the formData in the state if the JSON.stringify() of the old and new values are different, partially fixing #3236
  • Updated the playground npm start command to always use the --force option to avoid issues where changes made to other packages weren't getting picked up due to vite caching
  • Updated the documentation for utility-functions and the 5.x upgrade guide to add the new utility functions and to document the deprecation of getMatchingOption()
    • Also updated utility-functions, making all optional parameters without a default (as denoted by the syntax [<parameter>]: <type>) to add | undefined onto the type to make it clear it supports passing in undefined as a value.