Notable Changes

PathBrowser RT is deprecated

Use PathField instead.

Autocomplete RT is deprecated

Autocomplete RT is using Coral2 component, which will not be supported any longer. Use dedicated component for the purpose, such as PathField, or build your own field based on foundation-autocomplete.

Field RT: Support for tooltipPosition

Field RT now supports tooltipPosition property to change the position of the tooltip relative to the field.

It is useful when the tooltip is truncated.

Select RT: Support for forceIgnoreFreshness

Select RT now supports forceIgnoreFreshness property.

It is useful when you have a newly introduced field in the form, and there is a need to specifically set the default selected item.


We introduce foundation-workflowstatus to standardize the presentation of workflows in the UI.

IncludeClientlibs RT: Support rendercondition

IncludeClientlibs RT now supports render condition.

DatePicker RT: Support typeHint property

DatePicker RT now exposes typeHint property, which is defaulted to Date.

There is a request to save the field’s value as string. This is mainly to support the Classic UI behaviour. However, it is still recommended to save the value as native date in JCR as the best practice.

foundation-toggleable-control: Support Caching Attribute

We introduce [data-foundation-toggleable-control-cache] to foundation-toggleable-control to configure if the .foundation-toggleable content loaded at [data-foundation-toggleable-control-src] should be cached.

The primary purpose of this attribute is to disable caching of the loaded content that is dynamic and thus needs to be always loaded freshly.


We significantly improve our UI’s accessibility by applying ARIA attributes, such as aria-label, aria-labelledby, role="region", role="main", and role="heading" to our components.

We are continuing our investment to make our UI accessible.

Form Default Value Handling

We review the handling of default values of the form fields.

Form RT now supports nameNotFoundMode property to handle the scenario when the FormData doesn’t have an entry of a certain name.

This mechanic uses FormData.class that we also introduce. To understand deeper about this mode, please consult FormData.NameNotFoundMode.


We introduce FormData.class to better handle the form values.

The key feature of this class is FormData.NameNotFoundMode, which is a mode on how to handle the scenario when the FormData doesn’t have an entry of a certain name.


We introduce RenderConditionHelper.class to allow getting render condition without ComponentHelper.

Multifield RT: Support composite and nested multifields

Multifield RT now supports composite property to handle the form content value as composite.

Composite multifield supports nesting another multifield (composite or not). However, non-composite one doesn’t support nesting.

NumberField RT: Support for any as step

NumberField RT now supports any value for step property. step property only allowed number before.

Select RT: Support render conditions in the items

Select RT now supports render condition in the items.

Include RT: Support passing Option class

Include RT was only passing Tag class as the param to during include. There was an enhancement in the past to be able to pass a more generic Option class. So, we update the implementation to pass the option instead of just the tag.


cmp.include(targetResource, cfg.get("resourceType", String.class), cmp.consumeTag());


cmp.include(targetResource, cfg.get("resourceType", String.class), cmp.getOptions());

foundation-form: Manage multiple submissions

At times, there can be a scenario where there are two consecutive form submissions in the quick succession. We improve foundation-form by queeing up the submissions serially.


We improve keyboard support in our UI, hence we introduce foundation-command vocabulary to standardize it.


In the UI we often display a date for the purpose of presentation. Before, we mixed relative and absolute formatting, often having arbitrary formats that hard to internationalize. Thus, we introduce foundation-time to standardize the presentation.


We introduce foundation-preference to read/write user preferences.

foundation.form.response.ui.success: foundation.collection.reload

We add a new form response success handler named foundation.collection.reload to reload the foundation-collection when the form is successfully submitted.