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 according to the design
- [Tag]: style tweaks according to the design
- [Tooltip]: style tweaks according to the design
- [DatePicker][RangeDatePicker]: style tweaks according to design
- [Modals]: make border radius equal 6px for Loveship Light, Loveship Dark, Electric themes