Releases: epam/UUI
Releases · epam/UUI
v6.4.1
6.4.1 - 29.12.2025
What's Fixed
- [NumericInput]: use 'any' value for step prop by default
- [useForm]: fixed form revet on value prop change. Before it remained previous
isChangedand form history values - [PickerInput]: fixed possibility to truncate long text in custom picker row
- [Slider]: fixed tooltip styles and freezes on change
v6.4.0
6.4.0 - 15.12.2025
What's New
- Added electric dark theme. Add import
import '@epam/assets/css/theme/theme_electric_dark.css';to connect.--uui-surface-sunkenvariable removed from all themes; use--uui-surface-highestinstead.
- [Inputs/Controls]:Made clickable icons and clear buttons accessible via keyboard (#2845). Now it's possible to focus on them during keyboard navigation.
- The icon provided by the
iconproperty and the clear button are now button components (ControlIcon) with their own CSS variables, which makes some input-specific variables obsolete.- The following CSS variables are no longer available:
TextInput(and other inputs that use it):--uui-text_input-icon--uui-text_input-icon-disabled--uui-text_input-icon-clickable--uui-text_input-icon-clickable-hover--uui-text_input-icon-clickable-active
PickerInput:--uui-picker_toggler-icon-disabled--uui-picker_toggler-icon-clickable--uui-picker_toggler-icon-clickable-hover
- The following CSS variables should be used instead:
--uui-control_icon--uui-control_icon-clickable--uui-control_icon-clickable-hover--uui-control_icon-clickable-active
- The following CSS variables are no longer available:
- The icon provided with the
iconproperty inTextInput(and other inputs that use it) is now always displayed inmode="cell", not only on hover.
- The icon provided by the
- [DataTable]: Improved accessibility: actions in the table header, row checkboxes, and row folding are now reachable from the keyboard.
- [PickerInput]: Improved accessibility: now it's possible to fold/unfold items using right/left arrows, focus on the items list, and navigate through items with the keyboard (previously possible only when the search was focused).
- [MainMenu]: Improved accessibility of hidden items in the "More" menu (#2948).
- Added
aria-haspopup="menu"to the "More" button. - Added
role="menu"to the container wrapping the list of items. - Provided an example in the documentation of how to assign
role="menuitem"to the items only when they are present in the menu.
- Added
- [DatePicker], [RangeDatePicker]: Added ability to set the initially displayed month and year in the calendar body when the picker opens via the
initialViewMonthprop. - [Dropdown]: Added
fixedBodyPositionprop to control dropdown positioning. Passtrueto keep the dropdown list fixed in the position where it was first opened.
What's Fixed
- [DataTable]: Fixed resizing for right-fixed columns.
- [TimePicker]: Reworked body open/close behavior. The body now opens on input click or 'Enter' key press (instead of 'focus' on target) and closes on 'Escape' or click outside (instead of target blur). Added focus lock behavior.
- [uui-core]: Removed
isFocusReceiverInsideFocusLockhelper function that was causing focus management issues in picker components. - [LabeledInput]: Fixed incorrect prop resolution for
infoIcon. - [PickerInput]: Changed value in
aria-haspopupattribute from "true" to "dialog" (#2947). - [PickerInput]: Fixed an issue where item count text was truncated in
isSingleLinemode. - [TextInput]: Removed call to
onCancelcallback on 'Escape' press. - [Pagination]: Fixed an issue where pagination elements were not grouped into a list (#2942).
- Added "Previous page" and "Next page"
aria-labels to the previous and next pages respectively.
- Added "Previous page" and "Next page"
- [DatePickers]: Fixed calendar matrix calculation to use locale-specific
firstDayOfWeekfrom dayjs instead of hardcoded i18n configuration, ensuring correct calendar layout for any locale. - [RangeDatePicker]: Display clear icon when at least one date is selected.
- [PickerInput/PickerModal]: Fixed announcing of a picker item's content in screen readers when the item becomes focused (#2946).
- [Dropdown]: Added example for fixed body position when toggler changes place.
- [PresetActionsDropdown]: Fixed unreadable dark text in SuccessNotification after "Copy link" action under Loveship-Dark theme.
- [TimePicker]: Fixed invalid value reset in case the previous value was empty.
- [Blocker]: Changed blocker background color and animation.
- [Error Pages]: Updated error images according to the design.
- [DataTable]: Fixed 'Not found' block alignment to center.
v6.3.3
6.3.3 - 14.10.2025
What's Fixed
- [ScrollBars]: move 'overlayscrollbars' styles import from TS to CSS, to prevent errors during Next.js build
v6.3.1
6.3.1 - 08.10.2025
What's Fixed
- [DataTable]: fixed virtualization height calculation issues causing excessive empty space in tables
v6.3.0
6.3.0 - 26.09.2025
What's New
- [Tabs]: added new component (#2857)
- [TabButton]: added activation of tab button by pressing "Space" key (#2857)
- [FiltersPanel]: added 'disableClear' and 'filter' props for picker filters
- [ApiContext][Breaking Change]:
- ApiContext no longer supports auth recovery via the 'message' event; it now uses the 'storage' event instead;
- To switch to the handling via
localStoragereplace code ofapiReloginPathendpoint to<html><script>window.localStorage.setItem("uui-auth-recovery-success", "true"); window.close();</script></html>
- To switch to the handling via
- The 'opener' is cleared when the auth recovery popup is opened
- ApiContext no longer supports auth recovery via the 'message' event; it now uses the 'storage' event instead;
- [ScrollBars][Breaking Changes]: migrated from deprecated
react-custom-scrollbars-2to modernoverlayscrollbars-reactlibrary to fix multiple issues and improve stability. This migration improved scrollbar styling, expanded API capabilities, but introduced some minor breaking changes, that should not affect common use-cases:- base component removed from
@epam/uui-components, all types moved to@epam/uui; - Ref API changed from
{ container: HTMLDivElement | undefined }to{ container: HTMLElement | null, view: HTMLElement | null }; autoHideprop changed frombooleanto string values('never' | 'scroll' | 'move' | 'leave'),autoHideTimeout&autoHideDurationreplaced withautoHideDelay;- removed render callbacks
renderView, renderTrackHorizontal, renderTrackVertical, renderThumbHorizontal, renderThumbVertical- now you can customize them via classes and uui css variables; - shadows API changed from
hasTopShadow, hasBottomShadowtooverflowTopEffect, overflowBottomEffectwith'line' | 'shadow' | 'none'values. ScrollBars now handle overflow effects internally - if you had custom shadow/border styling, you can remove it and use the new props instead; - overflow management centralized: previously each component (DataTable, VirtualList, Modals) had custom shadow implementations, now all use unified ScrollBars system with CSS classes
.-scrolled-top,.-scrolled-bottom,.-scrolled-left,.-scrolled-right. Removed old shadow classesuui-shadow-top-visible,uui-shadow-bottom-visiblein favor of unified system; - HTML attributes removed from ScrollBars interface - use
rawPropsinstead; - on macOS scrollbars now also used UUI styles and always visible by default;
- improved RTL support and performance;
- fixed issues #1645, #2548, #2644, #2882, #2893
- base component removed from
- [Dropdown]: dropdown body now closed by Escape key press by default, to ensure proper accessibility compliance. Added
closeOnEscapeprop (default: true) to change this behavior. - [DropdownContainer][Breaking Change]:
closeOnEscprop is removed. UsecloseOnEscapeprop onDropdowninstead. Replace<DropdownContainer closeOnEsc={false} />with<Dropdown closeOnEscape={false}><DropdownContainer /></Dropdown>if needed. - [Tooltip]: now tooltip body opens by target element focus and disappears on blur or Escape key press to ensure proper accessibility compliance. Added
closeOnEscapeprop (default: true). - [DataTable]: add support of columns configuration modal for table with grouped columns
What's Fixed
- [useForm]: improved router block removal on discard and custom beforeLeave for close action. Rework useLock to unblock router immediately, rather than on next render
- [Modals]: fixed incorrect order of
abort()calls when pressing ESC with nested modals — now only the topmost modal responds to ESC key (#2873) - [Text]: changed
fontSizeandlineHeightprops typings from strict string literal to more commonnumber | stringtype, to support varied customization cases - [RangeDatePicker]: undefined value in preset range now applies like an empty date, not the current one (#2879)
- [TimePicker]: disabled time editing in time picker body
- [Dropdown]: fixed
zIndexrecalculation on dropdown update - [DataTable]: fixed preventing row redirect in case of click on
-clickableelement inside this row
v6.2.0
6.2.0 - 05.08.2025
What's New
- Introduced a UUI docs MCP server for LLM Agents like Cursor IDE and Copilot.
These MCP tools will respond with comprehensive UUI documentation for each component, including API details, descriptions, and code examples. This will add additional context about UUI usage for LLMs.- To connect it to the Cursor IDE, add the following content to
.cursor/mcp.jsonfile:"mcpServers": { "uui": { "url": "https://uui.epam.com/api/mcp" } } - For Copilot instructions, read this
- To connect it to the Cursor IDE, add the following content to
- Remove support of deprecated
@epam/draft-rtepackage, this package source code was removed and will no longer receive new updated and release. - [MainMenu][Breaking Change]:
-
Removed deprecated
childrensupport, useitemsprop instead -
removed outdated customer logo(
customerLogoUrl,customerLogoLink,customerLogoHref,customerLogoBgColor) andisTransparentprops. -
removed
Burger,renderBurger,alwaysShowBurgerprops, useBurgercomponent in items withcollapsedContainer: trueoption. -
removed
appLogoUrl,logoLink,onLogoClickprop, useMainMenuLogocomponent instead. -
see example here
// Before <MainMenu cx={ css.menuContainer } renderBurger={ renderBurger } logoLink={ { pathname: '/' } } appLogoUrl="/static/logo.svg" onLogoClick={ onLogoClick } > <MainMenuButton caption="Home" /> </MainMenu> // After <MainMenu cx={ css.menuContainer } items={ [ { id: 'burger', priority: 100, collapsedContainer: true, render: (p) => <Burger key={ p.id } renderBurgerContent={ renderBurger } logoUrl="/static/logo.svg" />, }, { id: 'logo', priority: 99, render: (p) => <MainMenuLogo key={ p.id } link={ { pathname: '/' } } onClick={ onLogoClick } logoUrl="/static/logo.svg" />, }, { id: 'home', priority: 1, render: (p) => <MainMenuButton key={ p.id } caption="Home" />, }, ] } />
-
- [VerticalTabButton][Breaking Change]: reworked with improved functionality and styling
- Updated size variants according to design:
'30' | '36' | '48'(was'36' | '48' | '60') - Added
renderAddonsprop for custom addons rendering - Deprecated
count,onClear,clearIconprops, userenderAddonsinstead - Added
indentandisFoldableprops
- Updated size variants according to design:
- [ICanRedirect]:
- deprecate
isLinkActiveprop, use newisActiveprop instead - moved
isLinkActivetoICanBeActiveinterface - remove
isLinkActiveprop from components where it was not used
- deprecate
- [PresetsPanel]:
- "Duplicate" action is now only available for unchanged presets
- "Copy Link" action copies a link to the current (modified) state if the preset is changed, or to the saved preset otherwise
- Added
onCopyLinkprop to customize or disable the "Copy Link" action (set tonullto hide the action)
- [Tree]:
- reworked with improved functionality and styling, moved from
@epam/uui-componentsto@epam/uuipackage - See docs here
- reworked with improved functionality and styling, moved from
- [DataTable]: added disableVirtualization prop to turn off rows virtualization
- [RTE]: added possibility to provide your own set of plugins for HTML and MD (de)serializers
- Uploaded updated icons pack
What's Fixed
- [DataSources]: fixed handling of selectAll for views with disabled checkboxes
- [PickerInput]: fixed incorrect selection state in modal for single selection mode
- [PickerInput]: disabled highlighting search results for row subtitle.
- [PickerInput]: change color of subtitle text from --uui-text-secondary to --uui-text-tertiary
v6.1.5
6.1.5 - 28.07.2025
What's Fixed
- [DataTable]: fixed
DataTableSelectionContextandDataTableFocusContextprovider mounting to fix compatibility with React 18
v6.1.4
6.1.4 - 17.06.2025
What's Fixed
- [@epam/uui-test-utils]: fixed various of utils to work with React 18
- [PickerModal]: fixed
disableClear: truebehavior forselectionMode: multi, addedClearbutton functionality toselectionMode: single - [PickerInput]: decreased default
maxItemsprop value from 100 to 20 - [PickerInput] Stop "Escape" key press event propagation when body is opened (#2839)
- [useLazyTree]: fixed tree structure update when getParentId function changes. When filter changes trigger tree refetch and affect getParentId logic (e.g., changing groupBy parameter), the tree now correctly clears its structure with updated hierarchy parameters instead of using stale getParentId function.
- [TreeState]: added optional
newParamsparameter toclearStructure()method to support updating tree parameters during structure clearing
v6.1.2
6.1.2 - 30.05.2025
What's Fixed
- [MultiSwitch]: fixed
sizeprop for 'Loveship' and 'Electric' skins
v6.1.1
6.1.1 - 29.05.2025
What's New
- [uui-test-utils]: added global mock for "getBoundingClientRect" to "setupJsDom"
- [FiltersPanel]: added
renderFooterprop forDatePickerandRangeDatePickerfilters. Exported default implementation of UUI footers -FilterDatePickerBodyFooterandFilterRangeDatePickerBodyFootercomponents - [DataTable]: added predicates functionality for column filters
What's Fixed
- [RangeDatePicker]: fixed switching of the calendar depending on which field(From/To) the action was on
- [RangeDatePicker]: immediately apply date entered in input if it is valid
- [PickerInput]: fixed returning to the previous focused element via shift+tab press
- [PickerInput]: fixed row focusing on search results
- [Rating]: fixed wrong rating calculations in 'block' container and 'sticky' value on hover
- [Modals]: change border radius to 12px in Electric theme
- [VerticalTabButton]: aligned paddings and gaps for all sizes according to the design
- [uuiApi]: .withOptions method now merges his options with default option from apiDefinitions
- [PickerModal]: disabled "Show only selected" when search is active
- [DataTable]: increased DnD area for rows, updated drag-and-drop styles for improved user experience
- [DnDContext]: fixed cursor visualization during drag and drop operations
- [NotificationCard]: added gap between content and actions
- [DataPickerFooter]: added gap between switch and action
- [ModalBlocker]: fixed stale closure in abort function when it is called on "Escape" key's press
- [IEditableDebouncer]: fixed
refforwarding,refprovided on the component forwarded to therenderprop as a second param