Releases: epam/UUI
v5.8.3
5.8.3 - 19.07.2024
What's New
- [ApiContext] Add
ResponseType
generic type forprocessRequest
function, which defines the returned type of the function
What's Fixed
- [ApiContext] Combine user's headers with internal ones instead of replacing them when calling
processRequest
function - [FiltersPanel]: set
undefined
value instead ofnull
on clear action in numeric filter. - [PickerList]: Fixed updating predefined checked values
- [Pickers]: fixed infinite updating if onValueChange is called in useEffect in case of React without concurrent rendering mode
- [LazyDataSource]: Fixed requesting already loaded data on scroll
v5.8.2
5.8.2 - 11.07.2024
What's New
- [Pickers]: added current selection into
renderFooter
callback params. - [RTE]: added possibility to customize set of available options for Header, Color and Note plugins
What's Fixed
- Fixed invalid mode for inline inputs
- [AnalyticContext]: fixed GA connection
- [Checkbox]: fixed icon size according design
- [RadioInput]: fixed caption line-height according design
- [Switch]: fixed caption size & line-height according design
- [PickerToggler]: changed padding for left icon, remove transparent for left/right icon in cell mode
- [TextArea]: removed maxLength prop override in cell mode
- [TabButton]: fixed counter color according to the design
- [DropdownSubMenu]: fixed
offset
value forleft-start
placement option - [RTE]: removed loader after failed file upload
v5.8.1
5.8.1 - 21.06.2024
What's Fixed
- [LazyDataSource]:
- fixed reload data on DS deps change and fixed fetching minus count on scroll up
- fixed updating itemsMap after setItems.
v5.8.0
5.8.0 - 06.06.2024
What's New
-
[Breaking change]: removed previously deprecated components:
- removed
SnackbarCard
component in Loveship, useNotificationCard
instead; - removed
ControlWrapper
component in Loveship and Promo;
- removed
-
[Breaking change][Loveship]: removed previously deprecated props:
- [All skins]:
- [DropdownMenu]: all
DropdownMenu items
must be wrapped intoDropdownMenuBody
; - [DropdownContainer]: removed 'color' prop;
- [TabButton][Tag][Badge][LinkButton][Button][MainMenuButton]: removed 'captionCx' prop. Please use 'cx' prop with cascading to 'uui-caption' global class;
- [Text]: removed 'font' prop;
- [IconContainer]: removed color prop. Define icon color by yourself, e.g. via cx or style prop;
- [Avatar]: removed 'onClick' prop;
- [DropdownMenu]: all
- [Loveship]:
- [LinkButton]: removed 'sun', 'cobalt', 'violet', 'fuchsia', 'white', 'night50', 'night100', 'night200', 'night300', 'night400', 'night500', 'night700', 'night800', 'night900' colors;
- [Button]: removed 'night500', 'night600' colors, use 'neutral' instead;
- [IconButton]: removed 'night200', 'night300', 'night400' colors;
- [NotificationCard]: removed 'night600' color, use 'primary' instead;
- [Tooltip]: removed 'night900' prop, use 'neutral' instead;
- [Badge]:
- removed 'semitransparent' fill value, use 'outline' instead;
- removed shape prop, 'round' value will be used by default. If you use 'square' value, use
Tag
component instead; - removed '12' size;
- [MultiSwitch]: removed 'night600' color value. Use 'gray' instead.
- [RangeSlider]: removed 'color' prop;
- [Promo]:
- [LinkButton]: removed 'amber' color;
- [Button]: removed 'gray50' color, use 'gray' instead;
- [Badge]: removed 'semitransparent' fill value, use 'outline' instead;
- [MultiSwitch]: removed 'gray60' color value. Use 'gray' instead.
- [NotificationCard]: removed 'gray60' color, use 'primary' instead;
- [Tooltip]: removed 'gray90' prop, use 'neutral' instead;
- [uui-core]: helpers cleanup, removed following helpers:
LazyLoadedMap
,browser
,Debouncer
,parseIconViewbox
,parseStringToCSSProperties
,getScreenSize
,urlParser
,batch
- [All skins]:
-
[useTree]: useTree hook is added.
- [Features]:
- [BaseListViewProps.showSelectedOnly]: The flow of rendering selected rows was changed. Previously, there was a separate flow of rendering selected rows, with using the
IDataSourceView.getSelectedRows
method. Currently, a new property,showSelectedOnly
, was added. If this flag is turned on, selected rows are returned fromIDataSourceView.getVisibleRows
. - [Patch items in Lazy/Async/Array dataSources]: the possibility to add/move/delete items from Array/Async/Lazy DataSources was added. To provide this functionality, three options were added:
- [BaseListViewProps.patch]: To add/move/delete some item from the existing dataset, it is required to pass that item via the
patch
map. - [BaseListViewProps.isDeleted]: To enable deleting of the items, it is required to specify getter of deleting state.
- [BaseListViewProps.fixItemBetweenSortings]: If enabled, positions of items between sorting changes are fixed.
- [BaseListViewProps.getNewItemPosition]: To specify the position an item to be moved,
getNewItemPosition
function may be provided. If not provided, new items will be placed at the top of the list. It can return a various of position configurations:PatchOrdering.TOP
- moves an element to the top of the children list;PatchOrdering.BOTTOM
- moves an element to the bottom of the children list;- By default, all new elements are placed to the top of the children list;
- If
BaseListViewProps.getItemTemporaryOrder
returns some value for current item, that item is placed to the specific place and will not be included to the list of top/bottom children.
- [BaseListViewProps.getItemTemporaryOrder]: To provide specific position for the item, it should be returned from
BaseListViewProps.getItemTemporaryOrder
function. This order can be placed to the patched item and generated by usinggetOrderBetween
of the previous item temporary order or index and next item temporary order or index. - [BaseListViewProps.sortBy]: Items positions are frozen in the list while editing and reset on sorting change. To provide the correct sorting functionality for patched items (especially in LazyDataSources), it is required to provide access to the values of the fields, sorting is performed.
- [BaseListViewProps.patch]: To add/move/delete some item from the existing dataset, it is required to pass that item via the
- [ItemsMap]: immutable map with support of complex Ids was added. It should be used as an input of
patch
property, described above. - [useForm]: support of immutable/mutable maps was added.
- [DataTable]:
rows
prop was added, along withgetRows
.
- [BaseListViewProps.showSelectedOnly]: The flow of rendering selected rows was changed. Previously, there was a separate flow of rendering selected rows, with using the
- [Breaking changes]:
- [useView]:
onValueChange
type was changed. Currently, it should support a state update callback((prevState: DataSourceState) => DataSourceState), instead of a new state value. IDataSource.getView
is deprecated. UseIDataSource.useView
instead.IDataSourceView.activate
is deprecated. This functionality is built inIDataSourceView.useView
hook.IDataSourceView.deactivate
is deprecated. This functionality is built inIDataSourceView.useView
hook.IDataSourceView.getSelectedRows
is deprecated. PassshowSelectedOnly = true
toIDataSourceView.useView
options and access selected rows viaIDataSourceView.getVisibleRows()
.IDataSourceView.loadData
is deprecated.LazyListViewProps.legacyLoadDataBehavior
is deprecated.
- [useView]:
- [Features]:
-
[useForm]:
- added
setServerValidationState
callback to externally change server validation state - now it's possible to return the 'remain' value from the
beforeLeave
callback. In this case, the form will perform the redirect and then lock again afterward.
- added
-
[Modals]: added property
maxHeight
that equals80dvh
in desktop mode and100dvh
in mobile. -
[ColumnsConfigurationModal]: set
height
andmaxHeight
equals to95dvh
and mobile breakpoint changed from640px
to720px
as in all other modals. -
[DatePicker][RangeDatePicker]:
renderDay
prop callback signature updated -
[PickerInput]: added property
renderTag
which can be used for rendering custom Tags in PickerInput toggler. ExposedPickerTogglerTag
component, which is used inPickerInput
for default for tag rendering. -
[PickerInput]: when using
maxItems
prop, selected values are only partially collapsed. Some(equalmaxItems
value) items remain visible, and the rest are collapsed into the "+N" view. Added tooltip with list of collapsed items to the "+N" tag -
[DataTable]:
- isAlwaysVisible flag now makes column locked, which means that you can't hide, unpin or reorder this column. Usually applicable for such column without which table because useless.
Note, that isAlwaysVisible column should be always fixed to any side of the table, if you didn't specifycolumn.fix
prop for such column, 'left' value will be used by default.
Also, if you have a few isAlwaysVisible columns, it's necessary to place it together in the start or end(depends onfix
prop) of columns array. - added property
columnsGap?: '12' | '24'
- added property headerSize?: '36' | '48'. In '48' size, column name can be braked in 2 lines text.
- isAlwaysVisible flag now makes column locked, which means that you can't hide, unpin or reorder this column. Usually applicable for such column without which table because useless.
-
[uui-editor]:
- [Breaking change]:
plugins
prop now typed asPlatePlugin[]
. YOu might need to change invocation ofbaseMarksPlugin()
to...baseMarksPlugin()
el.data.colSpan
andel.data.rowSpan
removed from table cell node as it has duplicates:el.colSpan
andel.rowSpan
data.cellSizes
removed from table element as it has duplicate:el.colSizes
data.align
removed from image element as it has duplicate:el.align
- added html serialization for
separatorPlugin
- [Breaking change]:
-
[AdaptivePanel]: added property
itemsGap
to set gap between items in the AdaptivePanel. You can set any number or select a predefined value. -
[Avatar]: added 'number' type for
size
prop -
[LinkButton]:
- added semantic 'accent','critical' and 'white' colors
- 'contrast' color is deprecated and will be removed in future versions. Please use 'white' color value instead.
-
[Button]: added 'white' color
-
[IconButton]: added semantic Primary, Accent and Critical colors. Colors info, success, error, warning is deprecated, use new one instead.
What's Fixed
- [Tooltip][Dropdown]: fixed recalculation of boundary area(when we shouldn't close body) after target position was changed in closeOnMouseLeave="boundary" mode
- [DropdownMenu]: prevent page scrolling when navigation through menu items via keyboard up/down keys
- [useForm]:
- fixed
beforeLeave
callback invocation in case of redirect at onSuccess callback - fixed
isInvalid
,validationMessage
andvalidationProps
value returned from hook in case of server validation. Before they have only client validation value, now it's merged with server validation
- fixed
- [RangeDatePicker]: removed border-radius for borders between inputs
- [ControlGroup]: removed border-radius for borders between inputs
- [Accordion]: prevent page scrolling when open/close Accordion by space key
- [Slider]: fixed tooltip text calculation with step="0.1" value
- [PickerInput]:
- fixed setting emptyValue in case of unselecting all picker items
- don't close picker body on toggler click, if toggler has search value. Before, click on toggler leads to clearing search value
- remove border radius for mobile view modal container
- [FiltersPanel]: fixed focus on search after body opening and focus on PickerToggler after closing body
- [RTE]:
- fixed content jumps on editor focus
- fixed delayed placeholder rendering
- [StatusIndicator]: style tweaks according to the design
- [Badge]: style tweaks accordin...
v5.7.2
5.7.2 - 12.04.2024
What's Fixed
- [IconButton]: Replace the
isDropdown
prop withshowDropdownIcon
to prevent the automatic appearance of the dropdown icon when usingIconButton
as theDropdown
target. - [ApiContext]: Added possibility to send signal about success relogin via
localStorage
, due to old mechanism withwindow.opener.postMessage
was broken on SSO side by security reasons .- To switch to the handling via
localStorage
replace code of/auth/login
endpoint to<html><script>window.localStorage.setItem("uui-auth-recovery-success", "true"); window.close();</script></html>
- To switch to the handling via
5.7.1
v5.7.0
5.7.0 - 25.03.2024
What's New
- New Scaling Icons Approach:
- Components now define the icon size based on their
props.size
value. You no longer need to pass an icon with an appropriate size for the component's size. The provided icon will now be scaled by the component itself. - Added a new icons pack, new icons placed under the '@epam/assets/icon' path. Old icons still exist under the '@epam/assets/icon/common' path.
- This change doesn't require any immediate action from your side. You can continue using icons from the old icons pack. However, please note that icons which were passed to the components without adhering to the guidelines may now be scaled according to these guidelines.
- Components now define the icon size based on their
- [DataTable]: Added possibility to pin columns to the right side of the table via columns config dialog
- [DataTable]: added 'Expand All/Collapse All' action in table header. They isn't rendered by default, to turn on pass
showFoldAll={ true }
to the DataTable props. - [RTE]: added serialazer/deserializer for MD format. Read more here.
- [RTE]: added
onFocus
prop - [Modals]: now the Modals closed by default if the URL was changed. You can turn this off passing
disableCloseOnRouterChange={true}
prop to ModalBlocker component. - [Modals]: added
maxHeight
prop - [Paginator]: added
isDisabled
property - [IconButton]: added property
size
- [TimePicker]: added property
disableClear
to disable inputs' clear cross - [FlexRow]: deprecated property
spacing
, it will be removed in future releases. Please usecolumnGap
instead.spacing
prop now works viacolumnGap
. - [FlexRow]: added property
topBorder
to add border on the top of the FlexRow - [FileUpload]: move wordings to the i18n
- [ColumnsConfigurationModal]: small visual tweaks
- [Avatar]: changed default avatar img
What's Fixed
- [PickerInput]: fixed loading of selectedId with parents.
- Fixed partially selected with predefined selected value.
- Fixed fetching missing parents for selected element in PickerInput.
- [PickerInput]: fixed 'unknown records' removing
- [PickerInput]: Fixed focus reset after clicking outside
- [PickerInput]: fixed unnecessary PickerInput
onValueChange
calls ondataSourceState
change(search, focusedIndex change) in single select withvalueType=entity
. - [PickerList]: aligned caption by the left side in the footer.
- [DropdownContainer]: disable scroll to the focused element after dropdown close
- [DropdownContainer]: fixed warning about incorrect ref in React strict mode
- [Avatar]: change type of 'img' prop to also accept null value
- [RTE]: fixed table border rendering issues in Firefox
- [RTE]: fixed placeholder position in Safari
- [RTE]: fixed editor focusable area and appearing cursor on first click
- [RTE]: disable image resizing in readonly mode
- [RTE]: Fixed the position of the selected text toolbar within ShadowRoot for Chromium browsers.
- [DataTable]: changed default column
minWidht
value for resizing. For first columns now it's78px
, for others54px
. - [DataTable]: prevent sorting change on column resize;
- [Blocker]: changed the exit animation duration from 1000ms to 200ms
- [ApiContext]: 'auth-lost' and 'connection-lost' errors in 'manual' error handling mode now handled by ApiContext itself
- [ApiContext]: add link to the login page in 'auth lost' modal
- [IconButton]: fixed property
isDropdown
; - [Switch]: fixed property
isReadonly
; - [TextArea]: fixed ability to scroll when
readonly
ordisable
; - [Modals]: change 'accent' buttons to 'primary' in UUI built in modals
- [Badge]: small style tweaks according to the design
v5.6.2
5.6.2 - 15.03.2024
What's Fixed
- [PickerInput]: fixed toggler blur in case searchPosition = 'none'
v5.6.1
5.6.1 - 19.02.2024
What's Fixed
[LazyListView]: refetch on search clear.
v5.6.0
5.6.0 - 08.02.2024
What's New
- Added 'Tokens' doc page. It contains list of all core tokens with their value and description.
- prop
captionCX
is deprecated for the following components:Button
,LinkButton
,Badge
,Tag
,TabButton
,VerticalTabButton
,MainMenuButton
and will be removed in future release. Please use 'cx' prop to access caption styles and use cascading to change the styles for the 'uui-caption' global class. - [Breaking changes]:
- [Badge]: can be a
span
element ifonClick
prop is not passed, consider it for dom manipulation with this component. - [Tag]: can be a
span
element ifonClick
props is not passed, consider it for dom manipulation with this component. - [PickerInput]: in
selectionMode: multi
selected itemTag
rendered as aspan
, consider it for dom manipulation with this component. - [Button]: removed
count
,dropdownIconPosition
props. - [TabButton]: removed
dropdownIconPosition
prop. - [VerticalTabButton]: removed
dropdownIconPosition
prop. - [LinkButton]: removed
onClear
,clearIcon
,count
,dropdownIconPosition
props. - [MainMenuButton]: removed
onClear
,clearIcon
,isDisabled
,dropdownIconPosition
props. - [Badge]: removed
dropdownIconPosition
prop. - [Tag]: removed
dropdownIconPosition
prop. - [Text]: removed color
brand
; Removed--uui-text-brand
token from themes, use--uui-text-primary
instead.
- [Badge]: can be a
- Removed deprecated
MakeMeItem
andInstanceItem
components from loveship. - [TimePicker]: improve time picker input value parsing. Added ability to parse value in different formats, e.g.:
1.23pm
->01:23 PM
,12/2
->12:02 AM
,.25
->00:25
,2350
->23:50
etc. - Changes in
ICanBeInvalid
interface:- Extract
validationMessage
to theIHasValidationMessage
interface - Extract validationProps into ValidationState interfaces
- Extract
- [Text]: added
tertiary
color. - [FlexRow]: added property
justify-content
it can be equals'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end'
, see more in Flexbox Guide(https://css-tricks.com/snippets/css/a-guide-to-flexbox/). - [DropSpot]: changed type of the property
infoText
from string into ReactNode. Now you can pass your own realization of it, or pass string and use our. - [Snackbar]: added 'Clear all notification' notification button while 2+ notifications displaying. To enable this behavior, exports Snackbar form @epam/uui package or skins.
What's Fixed
- [PickerInput]: fixed initialy selected items clear with LazyDatasoruce
- [PickerInput]: fixed partially selected mark for all chain of parent in single mode
- [RadiInput]: added native HTML
name
attribute for the input. - [RadioGroup]: added native HTML
name
attribute for each group member. - [Tooltip]: fixed vertical paddings according to the design.
- [SearchInput]: fixed
onCancel
prop. Now component can use provided callback, not only default implementation - [useForm]: fixed
close
method to always return Promise - [LinkButton]: fixed sky color in loveship dark theme
- [Badge]: fixed outline night600 color in loveship dark theme