v11
This page lists the changes introduced in v11. It focuses on breaking changes, removals, and required migrations, grouped by area for clarity.
Migration
v11 of @dnb/eufemia contains breaking changes. As a migration process, you can simply search and replace:
Important: Upgrading to v11 requires React and React DOM v19 (React 19 Upgrade Guide).
- Replace
innerRefwithrefon all Eufemia components. - Replace
<Context.Provider>with<Context>when using Eufemia contexts directly (React 19 deprecation). - If you import Eufemia SCSS source files with
@import, replace with@useand namespace your mixin/variable calls (see SCSS: @import → @use). - Replace the
sizeprop withspanonFlex.ItemandCardcomponents.
innerRef → ref
React 19 passes ref as a regular prop, making forwardRef and custom innerRef patterns unnecessary. All Eufemia components that previously accepted an innerRef prop now accept ref directly.
Before:
<Input innerRef={myRef} /><Button innerRef={myRef} /><Element innerRef={myRef} />
After:
<Input ref={myRef} /><Button ref={myRef} /><Element ref={myRef} />
Affected components: Anchor, Button, Checkbox, Dropdown, Element, FormLabel, HeightAnimation, Input, InputMasked, PortalRoot, Radio, ScrollView, Section, Space, Switch, Textarea, Typography, Flex.Item, Flex.Container, Field.String, Field.Number, Field.Password, Field.PhoneNumber, Form.Element, and all Element wrappers (Div, Span, Code, etc.).
Context.Provider → Context
React 19 deprecates <Context.Provider>. You can now render <Context> directly as a provider. All internal Eufemia context providers have been updated to use this pattern.
If you use any Eufemia context objects directly (e.g. Wizard.Provider), update your code:
Before:
<SomeContext.Provider value={value}>{children}</SomeContext.Provider>
After:
<SomeContext value={value}>{children}</SomeContext>
Install
To upgrade to @dnb/eufemia v11 with NPM, use:
$ npm i @dnb/eufemia@11# or$ yarn add @dnb/eufemia@11# or$ pnpm add @dnb/eufemia@11
Summary of changes:
- All snake case (
on_click) events and properties has been converted to use camel case (onClick). The reason for previously using snake case was to support Web Components – but the support was discontinued in v10. - Replaced deprecated
<Context.Provider>with direct<Context>rendering across all internal context providers (React 19).
Components
Section
- Most
style_typevariants were removed. Use the newvariantorbackgroundColorproperty instead:mint-greensea-greenemerald-greenlavenderblack-3sand-yellowpistachiofire-redfire-red-8
- Remove
spacing. UseinnerSpaceinstead. - Replace
inner_refwithref.
HelpButton
Translations
- Replace
HelpButton.aria_rolewithHelpButton.ariaRole.
Autocomplete
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead.
Properties
- Replace
selected_keywithselectedKey. - Replace
default_valuewithdefaultValue. - Replace
prevent_selectionwithpreventSelection. - Replace
prevent_closewithpreventClose. - Replace
keep_openwithkeepOpen. - Replace
independent_widthwithindependentWidth. - Replace
fixed_postionwithfixedPosition. - Replace
enable_body_lockwithenableBodyLock. - Replace
align_drawerwithalignDrawer. - Replace
list_classwithlistClass. - Replace
portal_classwithportalClass. - Replace
no_scroll_animationwithnoScrollAnimation. - Replace
skip_portalwithskipPortal. - Replace
min_heightwithminHeight. - Replace
max_heightwithmaxHeight. - Replace
observer_elementwithobserverElement. - Replace
cache_hashwithcacheHash. - Replace
wrapper_elementwithwrapperElement. - Replace
options_renderwithoptionsRender. - Replace
triangle_positionwitharrowPosition. - Replace
skip_keysearchwithskipKeysearch. - Replace
page_offsetwithpageOffset. - Replace
ignore_eventswithignoreEvents. - Replace
no_animationwithnoAnimation. - Replace
label_directionwithlabelDirection. - Replace
no_optionswithnoOptions. - Replace
show_allwithshowAll. - Replace
aria_live_optionswithariaLiveOptions. - Replace
indicator_labelwithindicatorLabel. - Replace
show_options_srwithshowOptionsSr. - Replace
selected_srwithselectedSr. - Replace
submit_button_titlewithsubmitButtonTitle. - Replace
submit_button_iconwithsubmitButtonIcon. - Replace
input_refwithinputRef. - Replace
icon_sizewithiconSize. - Replace
icon_positionwithiconPosition. - Replace
input_iconwithinputIcon. - Replace
label_sr_onlywithlabelSrOnly. - Replace
keep_valuewithkeepValue. - Replace
keep_selectionwithkeepSelection. - Replace
keep_value_and_selectionwithkeepValueAndSelection. - Replace
show_clear_buttonwithshowClearButton. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
disable_filterwithdisableFilter. - Replace
disable_reorderwithdisableReorder. - Replace
disable_highlightingwithdisableHighlighting. - Replace
show_submit_buttonwithshowSubmitButton. - Replace
submit_elementwithsubmitElement. - Replace
align_autocompletewithalign. - Replace
input_elementwithinputElement. - Replace
search_in_word_indexwithsearchInWordIndex. - Replace
search_numberswithsearchNumbers. - Replace
input_valuewithinputValue. - Replace
open_on_focuswithopenOnFocus. - Replace
drawer_classwithdrawerClass. - Replace
prevent_focuswithpreventFocus. - Replace
action_menuwithactionMenu. - Replace
is_popupwithisPopup. - Replace
openedwithopen. - Replace
selectallwithselectAll.
Events
- Replace
on_typewithonType. - Replace
on_focuswithonFocus. - Replace
on_blurwithonBlur. - Replace
on_changewithonChange. - Replace
on_selectwithonSelect. - Replace
on_showwithonOpen. - Replace
on_hidewithonClose.
Translations
- Replace
Autocomplete.no_optionswithAutocomplete.noOptions. - Replace
Autocomplete.show_allwithAutocomplete.showAll. - Replace
Autocomplete.aria_live_optionswithAutocomplete.ariaLiveOptions. - Replace
Autocomplete.indicator_labelwithAutocomplete.indicatorLabel. - Replace
Autocomplete.show_options_srwithAutocomplete.showOptionsSr. - Replace
Autocomplete.selected_srwithAutocomplete.selectedSr. - Replace
Autocomplete.submit_button_titlewithAutocomplete.submitButtonTitle.
Styling
- Replace CSS class
dnb-autocomplete--openedwithdnb-autocomplete--open.
DrawerListDataArrayObject
- Replace
selected_valuewithselectedValue. - Replace
suffix_valuewithsuffixValue. - Replace
search_contentwithsearchContent. - Replace
class_namewithclassName.
Dropdown
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - Replace
selected_keywithselectedKey. - Replace
default_valuewithdefaultValue. - Replace
prevent_selectionwithpreventSelection. - Replace
prevent_closewithpreventClose. - Replace
keep_openwithkeepOpen. - Replace
independent_widthwithindependentWidth. - Replace
fixed_postionwithfixedPosition. - Replace
enable_body_lockwithenableBodyLock. - Replace
align_drawerwithalignDrawer. - Replace
list_classwithlistClass. - Replace
portal_classwithportalClass. - Replace
no_scroll_animationwithnoScrollAnimation. - Replace
skip_portalwithskipPortal. - Replace
min_heightwithminHeight. - Replace
max_heightwithmaxHeight. - Replace
observer_elementwithobserverElement. - Replace
cache_hashwithcacheHash. - Replace
wrapper_elementwithwrapperElement. - Replace
options_renderwithoptionsRender. - Replace
triangle_positionwitharrowPosition. - Replace
skip_keysearchwithskipKeysearch. - Replace
page_offsetwithpageOffset. - Replace
ignore_eventswithignoreEvents. - Replace
no_animationwithnoAnimation. - Replace
label_directionwithlabelDirection. - Replace
icon_sizewithiconSize. - Replace
icon_positionwithiconPosition. - Replace
label_sr_onlywithlabelSrOnly. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
more_menuwithmoreMenu. - Replace
align_dropdownwithalign. - Replace
trigger_elementwithtriggerElement. - Replace
open_on_focuswithopenOnFocus. - Replace
action_menuwithactionMenu. - Replace
is_popupwithisPopup. - Replace
prevent_focuswithpreventFocus. - Replace
openedwithopen.
Events
- Replace
on_changewithonChange. - Replace
on_selectwithonSelect. - Replace
on_showwithonOpen. - Replace
on_hidewithonClose. - Replace
on_show_focuswithonOpenFocus. - Replace
on_hide_focuswithonCloseFocus.
Styling
- Replace CSS class
dnb-dropdown--openedwithdnb-dropdown--open.
DrawerListDataArrayObject
- Replace
selected_valuewithselectedValue. - Replace
suffix_valuewithsuffixValue. - Replace
search_contentwithsearchContent. - Replace
class_namewithclassName.
DrawerList
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - Replace type
DrawerListDataObjectUnionwithDrawerListDataArrayItem. - Replace type
DrawerListDataObjectwithDrawerListDataArrayObject. - Replace
import { ItemContent } from '@dnb/eufemia/fragments/drawer-list/DrawerList'withimport { ItemContent } from '@dnb/eufemia/fragments/drawer-list/DrawerListItem'. - Replace
selected_keywithselectedKey. - Replace
default_valuewithdefaultValue. - Replace
prevent_selectionwithpreventSelection. - Replace
prevent_closewithpreventClose. - Replace
keep_openwithkeepOpen. - Replace
independent_widthwithindependentWidth. - Replace
fixed_postionwithfixedPosition. - Replace
enable_body_lockwithenableBodyLock. - Replace
align_drawerwithalignDrawer. - Replace
list_classwithlistClass. - Replace
portal_classwithportalClass. - Replace
no_scroll_animationwithnoScrollAnimation. - Replace
skip_portalwithskipPortal. - Replace
min_heightwithminHeight. - Replace
max_heightwithmaxHeight. - Replace
observer_elementwithobserverElement. - Replace
cache_hashwithcacheHash. - Replace
wrapper_elementwithwrapperElement. - Replace
options_renderwithoptionsRender. - Replace
triangle_positionwitharrowPosition. - Replace
skip_keysearchwithskipKeysearch. - Replace
page_offsetwithpageOffset. - Replace
ignore_eventswithignoreEvents. - Replace
no_animationwithnoAnimation. - Replace
label_directionwithlabelDirection. - Replace
action_menuwithactionMenu. - Replace
is_popupwithisPopup. - Replace
prevent_focuswithpreventFocus. - Replace
openedwithopen. - Remove
prepared_data.
Events
- Replace
on_showwithonOpen. - Replace
on_hidewithonClose. - Replace
handle_dismiss_focuswithhandleDismissFocus. - Replace
on_changewithonChange. - Replace
on_pre_changewithonPreChange. - Replace
on_resizewithonResize. - Replace
on_selectwithonSelect. - Replace
on_state_updatewithonStateUpdate.
Styling
- Replace CSS class
dnb-drawer-list--openedwithdnb-drawer-list--open.
DrawerListDataArrayObject
- Replace
selected_valuewithselectedValue. - Replace
suffix_valuewithsuffixValue. - Replace
search_contentwithsearchContent. - Replace
class_namewithclassName.
Anchor
- When using icons in an Anchor (text link), use the
iconproperty instead of inlining it.
Properties
- Find and remove
scrollToHashHandler. Smooth hash scrolling is now supported by all major browsers. - Replace
inner_refwithref.
Input
Properties
- The
inputPropTypesexport has been removed as part of the PropTypes removal. If you were importing it viaimport { inputPropTypes } from '@dnb/eufemia/components/input', remove the import — runtime prop validation is no longer provided. - The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - Replace
label_directionwithlabelDirection. - Replace
label_sr_onlywithlabelSrOnly. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
input_statewithinputState. - Replace
submit_button_titlewithsubmitButtonTitle. - Replace
clear_button_titlewithclearButtonTitle. - Replace
keep_placeholderwithkeepPlaceholder. - Replace
input_classwithinputClass. - Replace
input_attributeswithinputAttributes. - Replace
input_elementwithinputElement. - Replace
icon_sizewithiconSize. - Replace
icon_positionwithiconPosition. - Replace
inner_refwithref. - Replace
inner_elementwithinnerElement. - Replace
submit_elementwithsubmitElement. - Replace
submit_button_variantwithsubmitButtonVariant. - Replace
submit_button_iconwithsubmitButtonIcon. - Replace
submit_button_statuswithsubmitButtonStatus. - Replace
selectallwithselectAll.
Events
- Replace
on_changewithonChange. - Replace
on_focuswithonFocus. - Replace
on_key_downwithonKeyDown. - Replace
on_blurwithonBlur. - Replace
on_submitwithonSubmit. - Replace
on_submit_focuswithonSubmitFocus. - Replace
on_submit_blurwithonSubmitBlur. - Replace
on_clearwithonClear. - Replace
on_state_updatewithonStateUpdate.
Translations
- Replace
Input.submit_button_titlewithInput.submitButtonTitle. - Replace
Input.clear_button_titlewithInput.clearButtonTitle.
SubmitButton (do we need to document this, I don't see any docs of this, but it's exposed/exported)
- Replace
icon_sizewithiconSize. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps.
InputMasked
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - Replace
label_directionwithlabelDirection. - Replace
number_maskwithnumberMask. - Replace
currency_maskwithcurrencyMask. - Replace
mask_optionswithmaskOptions. - Replace
number_formatwithnumberFormat. - Replace
as_currencywithasCurrency. - Replace
as_numberwithasNumber. - Replace
as_percentwithasPercent. - Replace
show_maskwithshowMask. - Replace
show_guidewithshowGuide. - Replace
keep_char_positionswithkeepCharPositions. - Replace
placeholder_charwithplaceholderChar. - Replace
inner_refwithref. - Replace
label_sr_onlywithlabelSrOnly. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
input_statewithinputState. - Replace
submit_button_titlewithsubmitButtonTitle. - Replace
clear_button_titlewithclearButtonTitle. - Replace
keep_placeholderwithkeepPlaceholder. - Replace
input_classwithinputClass. - Replace
input_attributeswithinputAttributes. - Replace
input_elementwithinputElement. - Replace
icon_sizewithiconSize. - Replace
icon_positionwithiconPosition. - Replace
inner_elementwithinnerElement. - Replace
submit_elementwithsubmitElement. - Replace
submit_button_variantwithsubmitButtonVariant. - Replace
submit_button_iconwithsubmitButtonIcon. - Replace
submit_button_statuswithsubmitButtonStatus. - Replace
selectallwithselectAll.
Events
- Replace
on_changewithonChange. - Replace
on_submitwithonSubmit. - Replace
on_focuswithonFocus. - Replace
on_blurwithonBlur. - Replace
on_submit_focuswithonSubmitFocus. - Replace
on_submit_blurwithonSubmitBlur. - Replace
on_state_updatewithonStateUpdate.
MultiInputMask
Properties
- Replace
label_directionwithlabelDirection.
FormLabel
Properties
- Replace
for_idwithforId. - Replace
sr_onlywithsrOnly.
Radio
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - The deprecated
attributesprop has been removed. Use spread props instead. - Replace
label_sr_onlywithlabelSrOnly. - Replace
label_positionwithlabelPosition. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
label_directionwithlabelDirection.
Events
- Replace
on_changewithonChange. - Replace
on_state_updatewithonStateUpdate.
Radio.Group
Properties
- The deprecated
attributesprop has been removed. Use spread props instead. - Replace
label_directionwithlabelDirection. - Replace
label_sr_onlywithlabelSrOnly. - Replace
label_positionwithlabelPosition. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
layout_directionwithlayoutDirection.
Events
- Replace
on_changewithonChange. - Replace
on_state_updatewithonStateUpdate.
Textarea
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - The deprecated
textareaAttributesprop has been removed. Use spread props instead. - Replace
label_directionwithlabelDirection. - Replace
label_sr_onlywithlabelSrOnly. - Replace
textarea_statewithtextareaState. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
autoresize_max_rowswithautoResizeMaxRows. - Replace
autoresizewithautoResize. - Replace
textarea_classwithtextareaClass. - Replace
textarea_attributeswithtextareaAttributes. - Replace
inner_refwithref. - Replace
textarea_elementwithtextareaElement.
Events
- Replace
on_changewithonChange. - Replace
on_focuswithonFocus. - Replace
on_blurwithonBlur. - Replace
on_key_downwithonKeyDown.
Accordion
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - The deprecated
attributesprop has been removed. Use spread props instead. - Replace
expandBehaviourwithexpandBehavior. - Replace
on_state_updatewithonStateUpdate. - Replace
expanded_ssrwithexpandedSsr. - Replace
heading_levelwithheadingLevel. - Replace
icon_sizewithiconSize. - Replace
single_containerwithsingleContainer. - Replace
left_componentwithleftComponent. - Replace
flush_remembered_statewithflushRememberedState. - Replace
on_changewithonChange. - Replace
icon_positionwithiconPosition. - Replace
prevent_rerender_conditionalwithpreventRerenderConditional. - Replace
remember_statewithrememberState. - Replace
prevent_rerenderwithpreventRerender. - Replace
no_animationwithnoAnimation.
Accordion.Group
Properties
- Replace
allow_close_allwithallowCloseAll. - Replace
expanded_idwithexpandedId.
Accordion.Provider
Properties
- Replace
expanded_idwithexpandedId.
Tag
Events
- Replace
onDeletewithonClick, and addvariant="removable".
Upload
Properties
- Replace
variant="normal"withvariant="default".
P
- Replace class
.dnb-p--mediumwith.dnb-t__weight--medium - Replace class
.dnb-p--boldwith.dnb-t__weight--bold - Replace class
.dnb-p__size--xx-largewith.dnb-t__size--xx-largeand.dnb-t__line-height--xx-large - Replace class
.dnb-p__size--x-largewith.dnb-t__size--x-largeand.dnb-t__line-height--x-large - Replace class
.dnb-p__size--largewith.dnb-t__size--largeand.dnb-t__line-height--large - Replace class
.dnb-p__size--basiswith.dnb-t__size--basisand.dnb-t__line-height--basis - Replace class
.dnb-p__size--mediumwith.dnb-t__size--mediumand.dnb-t__line-height--medium - Replace class
.dnb-p--smallor.dnb-p__size--smallwith.dnb-t__size--smalland.dnb-t__line-height--small - Replace class
.dnb-p--x-smallor.dnb-p__size--x-smallwith.dnb-t__size--x-smalland.dnb-t__line-height--x-small
Properties
- Replace
medium={true}withweight='medium'. - Replace
bold={true}withweight='bold'. - Replace
modifierwith appropriateweightand/orsize.
Definition lists
Properties
- Replace
directionin<Dl>withlayout.
BreadcrumbItem
- Removed passing down properties to the internal
span.
We don't think this has been used for anything other than passing down data-testids for testing. We believe the potential side effects of passing down properties to this span are greater than the advantages it gives for those who want to test this span using data-testid as their way of selecting the span.
We recommend other testing methods to select and test the inner parts of Eufemia components. You could use, e.g., screen.queryByRole or document.querySelector.
For more context, see this PR.
ProgressIndicator
Properties
- Replace
visiblewithshow. - Replace
no_animationwithnoAnimation. - Replace
indicator_labelwithindicatorLabel. - Replace
label_directionwithlabelDirection. - Replace
show_labelwithshowDefaultLabel. - Replace
on_completewithonComplete. - Replace
classwithclassName. - Replace
childrenwithlabel.
Styling
- Replace CSS class
dnb-progress-indicator--visiblewithdnb-progress-indicator--show.
Translations
- Replace translation
ProgressIndicator.indicator_labelwithProgressInidicator.indicatorLabel.
PaymentCard
Properties
- Replace
product_codewithproductCode. - Replace
card_numberwithcardNumber. - Replace
card_statuswithcardStatus. - Replace
raw_datawithrawData.
Translations
- Remove translation
PaymentCard.text_card_numberas it's not supported anymore.
cardStatus property
- Replace value
not_activewithnotActive. - Replace value
order_in_processwithorderInProcess. - Replace value
new_orderwithnewOrder.
Translations
- Replace
PaymentCard.text_blockedwithPaymentCard.textBlocked. - Replace
PaymentCard.text_expiredwithPaymentCard.textExpired. - Replace
PaymentCard.text_not_activewithPaymentCard.textNotActive. - Replace
PaymentCard.text_new_orderwithPaymentCard.textNewOrder. - Replace
PaymentCard.text_order_in_processwithPaymentCard.textOrderInProcess. - Replace
PaymentCard.text_replacedwithPaymentCard.textReplaced. - Replace
PaymentCard.text_renewedwithPaymentCard.textRenewed. - Replace
PaymentCard.text_newwithPaymentCard.textNew. - Replace
PaymentCard.text_unknownwithPaymentCard.textUnknown.
Divider (Horizontal Rule)
Properties
- Remove
lightandmediumas they are not supported anymore. - Replace
fullscreenwithbreakout.
Flex.Item
Properties
- Replace
sizewithspan. The property sets how many columns an item should span in the flex layout.
Card
Properties
- Remove
spacingproperty. - Replace
sizewithspan(inherited from Flex.Item). - The default
innerSpaceis nowsmall(16px) on all sides.
Checkbox
Properties
- The deprecated
attributesprop has been removed. Use spread props instead. - Replace
label_positionwithlabelPosition. - Replace
label_sr_onlywithlabelSrOnly. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
on_changewithonChange. - Replace
childrenwithlabel.
Switch
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - Replace
label_positionwithlabelPosition. - Replace
label_sr_onlywithlabelSrOnly. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
on_changewithonChange. - Replace
on_change_endwithonChangeEnd. - Replace
on_state_updatewithonStateUpdate. - Replace
status_no_animationwithstatusNoAnimation.
Logo
Properties
- Remove
brandprop. Import and use the desired SVG component directly (e.g.,DnbDefault,SbankenDefault,SbankenCompact,SbankenHorizontal,CarnegieDefault,EiendomDefault). - Remove
variantprop. Instead, import the specific variant directly (e.g.,SbankenCompactinstead ofbrand="sbanken" variant="compact"). - Remove
size. Replace it withheightif it contains a numeric value, and withinheritSizewheresize='inherit'. - Remove the following properties:
altandratio. - Replace
inherit_colorwithinheritColor. - Change
widthfrom number to string. - Change
heightfrom number to string.
Migration Example:
Before (v10):
import { Logo } from '@dnb/eufemia'render(<Logo brand="sbanken" variant="compact" />)
After (v11):
import { Logo, SbankenCompact } from '@dnb/eufemia/components/Logo'render(<Logo svg={SbankenCompact} />)
Icon
Properties
- Replace
inherit_colorwithinheritColor.
Button
Properties
- The
buttonVariantPropTypeexport has been removed as part of the PropTypes removal. If you were importing it viaimport { buttonVariantPropType } from '@dnb/eufemia/components/button', remove the import — runtime prop validation is no longer provided. - Replace
icon_positionwithiconPosition. - Replace
icon_sizewithiconSize. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
custom_contentwithcustomContent. - Replace
inner_refwithref.
Events
- Replace
on_clickwithonClick.
Modal, Dialog and Drawer
Properties
- Replace
classwithclassName. - Replace
focus_selectorwithfocusSelector. - Replace
labelled_bywithlabelledBy. - Replace
open_delaywithopenDelay. - Replace
content_idwithcontentId. - Replace
dialog_titlewithdialogTitle. - Replace
close_titlewithcloseTitle. - Replace
hide_close_buttonwithhideCloseButton. - Replace
close_button_attributeswithcloseButtonAttributes. - Replace
prevent_closewithpreventClose. - Replace
prevent_core_stylewithpreventCoreStyle. - Replace
animation_durationwithanimationDuration. - Replace
no_animationwithnoAnimation. - Replace
no_animation_on_mobilewithnoAnimationOnMobile. - Replace
min_widthwithminWidth. - Replace
max_widthwithmaxWidth. - Replace
align_contentwithalignContent. - Replace
container_placementwithcontainerPlacement. - Replace
vertical_alignmentwithverticalAlignment. - Replace
open_statewithopenState. - Replace
direct_dom_returnwithdirectDomReturn. - Replace
omit_trigger_buttonwithomitTriggerButton. - Replace
on_openwithonOpen. - Replace
on_closewithonClose. - Replace
on_close_preventwithonClosePrevent. - Replace
open_modalwithopenModal. - Replace
close_modalwithcloseModal. - Replace
trigger_attributeswithtriggerAttributes. - Replace
overlay_classwithoverlayClass. - Replace
content_classwithcontentClass. - Replace
modal_contentwithmodalContent. - Replace
header_contentwithheaderContent. - Replace
bar_contentwithbarContent. - Replace
dialog_rolewithdialogRole. - Replace
bypass_invalidation_selectorswithbypassInvalidationSelectors. - Replace
content_refwithcontentRef. - Replace
scroll_refwithscrollRef. - Replace
prevent_overlay_closewithpreventOverlayClose. - Replace
openStatewithopen. - Replace
openState="opened"withopen={true}. - Replace
openState="closed"withopen={false}. - Removed:
rootIdproperty has been removed. Modal root elements no longer support custom IDs.
Translations
- Replace
Modal.dialog_titlewithModal.dialogTitle. - Replace
Modal.close_titlewithModal.closeTitle.
Opening and closing a modal
- If you rely on opening and closing a modal by mounting and unmounting the component (legacy behavior), you should change to using the
openproperty instead.
Modal.Header, Dialog.Header and Drawer.Header
Properties
- Replace
title_classwithtitleClass.
ModalHeaderBar, Dialog.Navigation and Drawer.Navigation
Properties
- Replace
shadow_classwithshadowClass.
Heading
Properties
- Replace
debug_counterwith debugCounter`. - Replace
skip_correctionwith skipCorrection`.
Table
Properties
- Replace
accordionwithmode="accordion".
Events
- Replace
onClosedwithonClose. - Replace
onOpenedwithonOpen.
TableClickableHead
Events
- Replace
on_clickwithonClick.
FormStatus
Properties
- Replace
no_animationwithnoAnimation. - Replace
icon_sizewithiconSize. - Replace
text_idwithtextId. - Replace
width_selectorwithwidthSelector. - Replace
width_elementwithwidthElement. - Replace
state's valuewarnwithwarning. - Replace
variant's valueflatwithplain.
Skeleton
Properties
- Replace
no_animationwithnoAnimation. - Replace
aria_busywithariaBusy. - Replace
aria_readywithariaReady.
Translations
- Replace translation
Skeleton.aria_busywithSkeleton.ariaBusy. - Replace translation
Skeleton.aria_readywithSkeleton.ariaReady.
Tabs
Properties
- Replace
selected_keywithselectedKey. - Replace
content_stylewithcontentStyle. - Replace
content_spacingwithcontentSpacing. - Replace
tab_elementwithtabElement. - Replace
tabs_stylewithtabsStyle. - Replace
tabs_spacingwithtabsSpacing. - Replace
nav_button_edgewithnavButtonEdge. - Replace
preventRerenderwithpreventRerender. - Replace
on_changewithonChange. - Replace
on_clickwithonClick. - Replace
on_mouse_enterwithonMouseEnter. - Replace
on_focuswithonFocus. - Replace
focus_keywithfocusKey. - Replace
no_borderwithnoBorder.
Pagination
Properties
- Replace
place_maker_before_contentwithplaceMarkerBeforeContent. - Replace
startup_pagewithstartupPage. - Replace
current_pagewithcurrentPage. - Replace
page_countwithpageCount. - Replace
startup_countwithstartupCount. - Replace
parallel_load_countwithparallelLoadCount. - Replace
min_wait_timewithminWaitTime. - Replace
use_load_buttonwithuseLoadButton. - Replace
hide_progress_indicatorwithhideProgressIndicator. - Replace
set_content_handlerwithsetContentHandler. - Replace
reset_content_handlerwithresetContentHandler. - Replace
reset_pagination_handlerwithresetPaginationHandler. - Replace
end_infinity_handlerwithendInfinityHandler. - Replace
page_elementwithpageElement. - Replace
fallback_elementwithfallbackElement. - Replace
marker_elementwithmarkerElement. - Replace
indicator_elementwithindicatorElement. - Replace
button_titlewithbuttonTitle. - Replace
prev_titlewithprevTitle. - Replace
next_titlewithnextTitle. - Replace
more_pageswithmorePages. - Replace
is_loading_textwithisLoadingText. - Replace
load_button_textwithloadButton.text.
Events
- Replace
on_changewithonChange. - Replace
on_startupwithonStartup. - Replace
on_loadwithonLoad. - Replace
on_endwithonEnd.
Translations
- Replace
Pagination.button_titlewithPagination.buttonTitle. - Replace
Pagination.prev_titlewithPagination.prevTitle. - Replace
Pagination.next_titlewithPagination.nextTitle. - Replace
Pagination.more_pageswithPagination.morePages. - Replace
Pagination.is_loading_textwithPagination.isLoadingText. - Replace
Pagination.load_button_textwithPagination.loadButtonText.
InfinityLoadButton & InfinityLoadButtonProps
- Replace
on_clickwithonClick.
Timeline
Translations
- Replace
TimelineItem.alt_label_completedwithTimelineItem.altLabelCompleted. - Replace
TimelineItem.alt_label_currentwithTimelineItem.altLabelCurrent. - Replace
TimelineItem.alt_label_upomingwithTimelineItem.altLabelUpcoming.
DatePicker
Properties
- Find
correctInvalidDate/correct_invalid_dateand remove it. You may rather use Field.Date from Eufemia Forms when usingminDateandmaxDate, as this has built in validation. Reason for removing this is because we believe it's not good UX, or best practice to automatically change the user input. This often leads to confusion, as what they typed in, magically changes for seemingly no reason. We believe it's better to inform them about the error and let them correct it themselves. - Replace
start_datewithstartDate. - Replace
end_datewithendDate. - Replace
start_monthwithstartMonth. - Replace
end_monthwithendMonth. - Replace
min_datewithminDate. - Replace
max_datewithmaxDate. - Replace
mask_orderwithmaskOrder. - Replace
mask_placeholderwithmaskPlaceholder. - Replace
date_formatwithdateFormat. - Replace
return_formatwithreturnFormat. - Replace
hide_navigationwithhideNavigation. - Replace
hide_dayswithhideDays. - Replace
only_monthwithonlyMonth. - Replace
hide_last_weekwithhideLastWeek. - Replace
disable_autofocuswithdisableAutofocus. - Replace
enable_keyboard_navwithenableKeyboardNav. - Replace
show_inputwithshowInput. - Replace
show_submit_buttonwithshowSubmitButton. - Replace
show_cancel_buttonwithshowCancelButton. - Replace
show_reset_buttonwithshowResetButton. - Replace
submit_button_textwithsubmitButtonText. - Replace
cancel_button_textwithcancelButtonText. - Replace
reset_button_textwithresetButtonText. - Replace
reset_datewithresetDate. - Replace
first_daywithfirstDay. - Replace
label_directionwithlabelDirection. - Replace
label_sr_onlywithlabelSrOnly. - Replace
input_elementwithinputElement. - Replace
addon_elementwithaddonElement. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
prevent_closewithpreventClose. - Replace
no_animationwithnoAnimation. - Replace
align_pickerwithalignPicker. - Replace
on_days_renderwithonDaysRender. - Replace
on_changewithonChange. - Replace
on_typewithonType. - Replace
on_showwithonOpen. - Replace
on_hidewithonClose. - Replace
on_submitwithonSubmit. - Replace
on_cancelwithonCancel. - Replace
on_resetwithonReset. - Replace
days_betweenwithdaysBetween. - Replace
is_validwithisValid. - Replace
is_valid_start_datewithisValidStartDate. - Replace
is_valid_end_datewithisValidEndDate. - Replace the
shortcutspropertyclose_on_selectwithcloseOnSelect. - Replace
openedwithopen. dateFormatandreturnFormatdoes no longer support the formatYYYY-MM-DD, useyyyy-MM-ddinstead.
Styling
- Replace CSS class
dnb-date-picker--openedwithdnb-date-picker--open.
NumberFormat
Properties
- Replace
omit_roundingwithrounding="omit". - Replace
currency_displaywithcurrencyDisplay. - Replace
currency_positionwithcurrencyPosition. - Replace
always_selectallwithalwaysSelectAll. - Replace
selectallwithselectAll. - Replace
copy_selectionwithcopySelection. - Replace
clean_copy_valuewithcleanCopyValue.
Translations
- Replace
NumberFormat.clipboard_copywithNumberFormat.clipboardCopy. - Replace
NumberFormat.not_availablewithNumberFormat.notAvailable.
Styling
- Replace CSS class
dnb-number-format--selectallwithdnb-number-format--select-all.
StepIndicator
Properties
- Major redesign of component. There is now only one variant (instead of two).
- Remove
StepIndicatorRenderCallbacktype. Not needed anymore.
Properties
- Remove
on_item_render. No longer has any other function than each step'stitleproperty. - Remove step item
on_render. No longer has any other function than thetitleproperty. - Remove
sidebarId. No longer has any sidebar. If an id is needed, use theidproperty. - Remove
step_title_extended. Onlystep_titleis needed. - Replace
is_currentwithisCurrent. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
current_stepwithcurrentStep. - Replace
overview_titlewithoverviewTitle. - Replace
step_titlewithstepTitle. - Replace
current_stepwithcurrentStep. - Replace
hide_numberswithhideNumbers. - Replace
no_animationwithnoAnimation.
Translations
- Replace
StepIndicator.overview_titlewithStepIndicator.overviewTitle. - Replace
StepIndicator.step_titlewithStepIndicator.stepTitle.
Events
- Replace
on_changewithonChange. - Replace
on_clickwithonClick. - Replace
data.on_clickwithdata.onClickfor StepIndicatorItem.
StepItemWrapperProps
- Removed
numberas one can only change the render of content inside the button. - Removed
statusas one can only change the render of content inside the button. - Removed
hideNumbersas can only hide numbers in main component.
StepIndicator.Sidebar
- Component removed entirely after redesign. The variant that used this component no longer exists.
GlobalError
Properties
- Replace
statuswithstatusCode. - Replace
codewitherrorMessageCode.
Translations
- Replace translation
GlobalError.codewithGlobalError.errorMessageCode.
ToggleButton
Properties
- The deprecated
onStateUpdateprop has been removed. UseonChangeinstead. - The deprecated
attributesprop has been removed from ToggleButton and ToggleButtonGroup. Use spread props instead. - Replace
icon_positionwithiconPosition. - Replace
icon_sizewithiconSize. - Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
left_componentwithleftComponent.
Events
- Replace
on_changewithonChange. - Replace
on_state_updatewithonStateUpdate.
ToggleButton.Group
Properties
- Replace
status_statewithstatusState. - Replace
statusState's valuewarnwithwarning. - Replace
status_propswithstatusProps. - Replace
status_no_animationwithstatusNoAnimation. - Replace
label_directionwithlabelDirection. - Replace
label_sr_onlywithlabelSrOnly. - Replace
left_componentwithleftComponent. - Replace
layout_directionwithlayoutDirection.
Events
- Replace
on_changewithonChange.
Tooltip
Properties
- Replace
positionwithplacementto match the Popover API. - Replace
activewithopen. - Replace
forceActivewithforceOpen. - Replace
size="basis"withsize="default".
GlobalStatus
Properties
- Replace
icon_sizewithiconSize. - Replace
no_animationwithnoAnimation. - Replace
hide_close_buttonwithhideCloseButton. - Replace
close_textwithcloseText. - Replace
default_titlewithdefaultTitle. - Replace
status_anchor_textwithstatusAnchorText. - Replace
omit_set_focuswithomitSetFocus. - Replace
omit_set_focus_on_updatewithomitSetFocusOnUpdate. - Replace
status_idwithstatusId. - Replace
status_anchor_urlwithstatusAnchorUrl. - Replace
status_anchor_labelwithstatusAnchorLabel. - Replace
status_idwithstatusId. - Replace
buffer_delaywithbufferDelay. - Replace
on_close'sstatus_idwithstatusId. - Replace
autoclosewithautoClose. - Replace
autoscrollwithautoScroll.
Events
- Replace
on_adjustwithonAdjust. - Replace
on_openwithonOpen. - Replace
on_showwithonShow. - Replace
on_hidewithonHide. - Replace
on_closewithonClose.
Translations
- Replace translation
GlobalStatus.close_textwithGlobalStatus.closeText. - Replace translation
GlobalStatus.default_titlewithGlobalStatus.defaultTitle. - Replace translation
GlobalStatus.status_anchor_textwithGlobalStatus.statusAnchorText.
GlobalStatusController
- Replace
remove_on_unmountwithremoveOnUnmount.
GlobalStatus.create
Properties
- Replace
status_idwithstatusId.
Events
- Replace
on_showwithonShow. - Replace
on_hidewithonHide. - Replace
on_closewithonClose.
GlobalStatus.Remove
Properties
- Replace
status_idwithstatusId. - Replace
buffer_delaywithbufferDelay.
Events
- Replace
on_showwithonShow. - Replace
on_hidewithonHide. - Replace
on_closewithonClose.
GlobalStatus.Add
Properties
- Replace
status_idwithstatusId.
Events
- Replace
on_showwithonShow. - Replace
on_hidewithonHide. - Replace
on_closewithonClose.
GlobalStatus.Update
Properties
- Replace
status_idwithstatusId.
Events
- Replace
on_showwithonShow. - Replace
on_hidewithonHide. - Replace
on_closewithonClose.
CopyOnClick
Translations
- Replace
CopyOnClick.clipboard_copywithCopyOnClick.clipboardCopy.
Layout
Space
Properties
- Replace
no_collapsewithnoCollapse.
Flex
Properties
- Replace
spacingwithgapon all Flex components. rowGapno longer accepts valuetrue. Replacetruewithundefinedor remove the property to get the same behavior.
Removal of FormRow and FormSet
For more information on how to replace these, see FormSet/FormRow deprecation.
- Replace
<FormRow>with<Flex.Horizontal align="baseline">. - Replace
<FormRow vertical>with<Flex.Vertical>. - Replace
<FormRow centered>with<Flex.Horizontal align="center">. - Replace
FormRow=withformElement=. - Replace
FormRow:withformElement:. - Replace
import { includeValidProps } from '@dnb/eufemia/components/form-row/FormRowHelpers'withimport { pickFormElementProps } from '@dnb/eufemia/shared/helpers/filterValidProps'. - Replace
import { prepareFormRowContext } from '@dnb/eufemia/components/form-row/FormRowHelpers'withimport { prepareFormElementContext } from '@dnb/eufemia/shared/helpers/filterValidProps'.
If you migrate a FormSet that relied on a native browser submit, such as method="post" with an action, you can use preventDefaultOnSubmit={false} on Form.Handler to keep the native submit behavior.
Helpers
Component helpers
Properties
- Remove
extendGracefully, it no longer exists.
Removed helper functions
The following functions have been removed from @dnb/eufemia/shared/component-helper:
isTrue– Checked if a value was truthy by comparingString(value) === 'true' || String(value) === '1'. Replace with direct boolean checks (e.g.value === trueor simplyvalue).toCamelCase– Converted snake_case strings to camelCase.toSnakeCase– Converted PascalCase strings to snake_case.matchAll– Polyfill forString.matchAll(). Use the nativeString.matchAll()instead.
The following functions have been removed from @dnb/eufemia/shared/helpers:
insertElementBeforeSelection– Unused helper for inserting DOM elements before a text selection.convertStatusToStateOnly– Trivial helper. ReplaceconvertStatusToStateOnly(status, state)withstatus ? state : null.
The following functions have been removed from @dnb/eufemia/shared/helpers:
isEdge/IS_EDGE– Edge is now Chromium-based, making these detections obsolete.
Removed HOCs and conversion utilities
The following Higher-Order Components (HOCs), conversion functions, and types have been removed:
withCamelCaseProps– HOC that converted snake_case props to camelCase.withSnakeCaseProps– HOC that converted camelCase props to snake_case.classWithSnakeCaseProps– Class-based HOC that converted camelCase props to snake_case.convertCamelCasePropsToSnakeCase– Converted camelCase props to snake_case.convertSnakeCaseProps– Converted snake_case props to camelCase.
The following TypeScript types have also been removed:
ToCamelCase,ToCamelCasePartial,ToCamelCaseFlat,ToCamelCasePartialFlat,IncludeCamelCaseToSnakeCase,ToSnakeCasePartial,IncludeSnakeCaseAssertNoMissing,KeysWithUnderscore
These were previously used to support dual snake_case/camelCase prop naming. Since v11 uses camelCase exclusively, they are no longer needed.
Updated SCSS mixin: IS_FF
The IS_FF() SCSS mixin now uses @supports (-moz-appearance: none) instead of the deprecated @-moz-document url-prefix() hack. No changes needed if you use the mixin — it works the same way.
Eufemia Forms
General
Form.Cardno longer enablesoutsetby default.Card.Provider/Form.Card.Providerhas been removed (includingdisableCardBreakout).- Replace
Form.useErrorMessagewith your error messages as an object in theerrorMessagesproperty (e.g., with auseMemohook). - Replace
Form.useErrorwithForm.useValidation. - Replace
Form.useLocalewithForm.useLocation. - Replace
internal.errorwitherror. - Replace Form.Iterate label variable
{itemNr}with{itemNo}. - Replace
Form.FieldPropswithField.Provider. - Replace
<Card stack>...</Card>with<Form.Card>...</Form.Card>. - Replace
<Card>...</Card>with<Form.Card>...</Form.Card>. - Removed automatic horizontal card-content alignment for
Form.MainHeadingandForm.SubHeadingwhen placed above a card. - Replace
StepsLayoutwithWizard.Container. - Replace
StepsLayout.StepwithWizard.Step. - Replace
StepsLayout.NextButtonwithWizard.Buttons. - Replace
StepsLayout.PreviousButtonwithWizard.Buttons. - Replace
StepsLayout.ButtonswithWizard.Buttons. - Replace
StepsLayout.useStepwithWizard.useStep. - Replace
Iterate.ArrayPushButtonwithIterate.PushButton. - Replace
Iterate.ArrayRemoveElementButtonwithIterate.RemoveButton.
Docs: Eufemia Forms
Ajv no longer shipped by default
Breaking Change: Ajv is no longer included as a dependency in Eufemia Forms v11. This reduces bundle size for applications that don't use JSON Schema validation.
Migration Required: If you use JSON Schema validation with Ajv, you must:
Update your imports and usage:
Before (v10):
import { Form, Field, JSONSchema } from '@dnb/eufemia/extensions/forms'const schema: JSONSchema = {type: 'object',properties: {myField: { type: 'string', minLength: 3 },},required: ['myField'],}function MyApp() {return (<Form.Handler schema={schema}><Field.String path="/myField" label="Label" /></Form.Handler>)}
After (v11):
import {Form,Field,JSONSchema,makeAjvInstance,} from '@dnb/eufemia/extensions/forms'const ajvInstance = makeAjvInstance()const schema: JSONSchema = {type: 'object',properties: {myField: { type: 'string', minLength: 3 },},required: ['myField'],}function MyApp() {return (<Form.Handler schema={schema} ajvInstance={ajvInstance}><Field.String path="/myField" label="Label" /></Form.Handler>)}
Alternative: Consider using Zod schemas instead, which provide better TypeScript integration and are included by default:
import { Form, Field, z } from '@dnb/eufemia/extensions/forms'const schema = z.object({myField: z.string().min(3),})function MyApp() {return (<Form.Handler schema={schema}><Field.String path="/myField" label="Label" /></Form.Handler>)}
InputPassword moved to Field.Password
The InputPassword component has been moved to Field.Password, and is now a part of Eufemia Forms. Change your import statement from import InputPassword from '@dnb/eufemia/components/input/InputPassword' to import { Field } from '@dnb/eufemia/extensions/forms'.
Docs: Input, All Fields
Error handling
FormError
validationRule
// Fromnew FormError('Invalid value', {validationRule: 'pattern',})// Tonew FormError('Field.errorPattern')
- Remove the
validationRuleparameter in favor of a translation key, like so:new FormError('Field.errorRequired').
errorMessages object
// Fromconst errorMessages = {pattern: 'Show this when "pattern" fails!',}// Toconst errorMessages = {'Field.errorPattern': 'Show this when "pattern" fails!',}
- Replace
requiredwithField.errorRequired. - Replace
patternwithField.errorPattern. - Replace
minLengthwithStringField.errorMinLength. - Replace
maxLengthwithStringField.errorMaxLength. - Replace
minimumwithNumberField.errorMinimum. - Replace
maximumwithNumberField.errorMaximum. - Replace
exclusiveMinimumwithNumberField.errorExclusiveMinimum. - Replace
exclusiveMaximumwithNumberField.errorExclusiveMaximum. - Replace
multipleOfwithNumberField.errorMultipleOf.
useErrorMessage
- Removed. Provide your error messages as an object in the
errorMessagesproperty (e.g., with auseMemohook).
See also: Form error messages, useValidation
Form.Visibility
- Replace
continuousValidationwithvalidateContinuously. - Replace
withValuewithhasValue. - Replace
pathValuewith usingvisibleWhen. - Replace
whenValuewith usingvisibleWhen.
Every Field.* component
Properties
- Replace
continuousValidationwithvalidateContinuously. - Replace
validatorwithonChangeValidator. - Replace
focusWhenOpenwithfocusOnOpen.
Docs: All Fields
Field.Date
Properties
- Replace
openedwithopen.
onType event
- Replace
start_datewithstartDate. - Replace
end_datewithendDate. - Replace
is_validwithisValid.
Styling
- Replace CSS class
dnb-date-picker--openedwithdnb-date-picker--open.
Field.PhoneNumber
Translations
- Replace
PhoneNumber.labeltranslation string withPhoneNumber.numberLabel.
Field.PostalCodeAndCity
Properties
- Replace
countrywithcountryCode.
Field.Selection
Properties
- The
radio-listvariant has been removed. Use List withvariant="radio"for custom list-based radio layouts (example).
autocompleteProps property
See docs about changed Autocomplete properties
dropdownProps property
See docs about changed Dropdown properties
data property
- Replace
selected_valuewithselectedValue. - Replace
suffix_valuewithsuffixValue. - Replace
search_contentwithsearchContent. - Replace
class_namewithclassName.
Field.Password
Properties
- Replace property
show_passwordwith translationPassword.ariaLabelShow. - Replace property
hide_passwordwith translationPassword.ariaLabelHide.
Events
- Replace
on_show_passwordwithonShowPassword. - Replace
on_hide_passwordwithonHidePassword.
Iterate.PushContainer
Properties
- Replace
requireCommitwithpreventUncommittedChanges.
Wizard.Container
Properties
- Remove
variant. No longer has any variants. - Remove
scrollTopOnStepChange, as it's now enabled by default. You can disable it withomitScrollManagement. - Remove
sidebarId. No longer has any sidebar. If an id is needed, use theidproperty.
Wizard.Provider
The Wizard.Provider export has changed. It now points to the WizardContext object itself instead of WizardContext.Provider, aligning with the React 19 deprecation of <Context.Provider>.
The JSX usage (<Wizard.Provider value={...}>) remains the same — no changes needed in your templates. However, if you reference Wizard.Provider programmatically (e.g., identity checks against WizardContext.Provider), be aware that it is now the context object itself.
Wizard.Step
Properties
- Replace
activewithinclude. - Replace
activeWhenwithincludeWhen.
DataContext.Provider
Properties
- Replace
filterSubmitDatawith rather using thefilterDatain the second event parameter in theonSubmitoronChangeevents.
SCSS: @import → @use
Eufemia's internal SCSS has been migrated from the deprecated @import to the Sass module system (@use / @forward). This does not change the compiled CSS output, but affects consumers who import Eufemia's SCSS source files directly.
If you import Eufemia's SCSS utilities (e.g. for mixins or breakpoints), update your imports:
Before:
@import '@dnb/eufemia/style/core/utilities.scss';@include allBelow(small) {// ...}div {max-width: map-get($breakpoints, medium);}
After:
@use '@dnb/eufemia/style/core/utilities.scss' as utilities;@include utilities.allBelow(small) {// ...}div {max-width: map-get(utilities.$breakpoints, medium);}
Using @import with Eufemia's SCSS source files still works, but will trigger Sass deprecation warnings. We recommend migrating to @use.
If you previously had silenceDeprecations: ['import'] in your Sass config to suppress warnings from Eufemia, you can now remove it — Eufemia's own files no longer use @import.
Theming
- Replace import from path
style/themes/theme-ui/withstyle/themes/ui/ - Replace import from path
style/themes/theme-sbanken/withstyle/themes/sbanken/ - Replace import from path
style/themes/theme-eiendom/withstyle/themes/eiendom/ - Replace import from path
style/themes/theme-carnegie/withstyle/themes/carnegie/
January 23, 2026