Releases: epam/UUI
v5.9.1
5.9.1 - 28.08.2024
What's New
- [LinkButton]: added
weight
andunderline
props - [DataTable]: disable animation for loading skeletons due to performance issues
- [DatePickers]: added 'DDMMYYYY' format to the list of supported date formats for parsing user input
- Uploaded new version of icons pack:
- icons added: action-clock_fast-fill, action-clock_fast-outline
- icons updated (visual weight tweaked, icon size was slightly decreased): action-job_function-fill, action-job_function-outline, communication-mail-fill, communication-mail-outline
What's Fixed
- [DropdownMenu]: fixed disabled status of subMenu. If subMenu disabled it's won't open subMenuItems
- [DropdownMenu]: fixed error when using 2+ levels menu with closeOnMouseLeave=boundary
- [PickerInput]: fixed opening body by pressing 'Enter' key in mobile resolution(<768px)
- [Dropdown]: remove
mousemove
handler on component unmount - [Pickers]: fixed bug when 'Clear All' button remains visible even after user clear all item by clicking on it. It was reproduced only if emptyValue=[] prop was passed.
- [AdaptivePanel]: fixed hiding items with the same priority as last hidden collapsed container
- [LinkButton]: tweak focus state style according to the design
- [Typography]: added focus for links
v5.9.0
5.9.0 - 09.08.2024
What's New
- [Breaking change]: Typography in Electric theme h1 weight changed to 600, h2 weight changed to 400
- Icons pack updated:
- [Breaking change]: visual weight tweaked for the following icons. Please review the places of this icons usage, after the update:
- navigation-chevron_up_outline
- navigation-chevron_down_outline
- navigation-chevron_left_outline
- navigation-chevron_right_outline
- content-minus_outline
- notification-done_outline
- Icons added
- Icon file-file_csv_fill
- editor-headline_h4_outline
- editor-headline_h5_outline
- editor-headline_h6_outline
- content-person_group_outline
- [Breaking change]: visual weight tweaked for the following icons. Please review the places of this icons usage, after the update:
- [DatePicker][RangeDatePicker]: improve a11y focus flow behavior. Now date picker body receive focus on open and return it back on input after close.
- [Timeline]:
- Improved
Timeline
:- Updated
Timeline
design. - Added support for functional components.
- Introduced a low-level
TimelineCanvas
component designed to render elements on the Timeline. - Enhanced customization options for
TimelineGrid
andTimelineScale
. - Exposed default implementations for timeline grid/scale drawing phases via the
timelineGrid
andtimelineScale
libraries.
- Updated
- Added an example of Timeline usage with tables. See demo here.
- Deprecated
BaseTimelineCanvasComponent
. UseTimelineCanvas
instead. Now, TimelineCanvas should not be extended, instead,draw
function should be passed to the props. - Added base component for universal drawing Timeline elements:
TimelineCanvas
. - Added the
useResizeObserver
hook, which provides the possibility to observe multiple elements' resizing. - Added the
useTimelineTransform
hook, which provides the possibility to receive the latestTimelineTransform
instance from theTimelineController
. - Deprecated
TimelineScaleProps.shiftPercent
. - Made
TimelineGrid
customizable. Exposed default implementations of various parts ofTimelineGrid
drawing functionality, via thetimelineGrid
library. - Made
TimelineScale
customizable. Exposed default implementations of various parts ofTimelineScale
drawing functionality, via thetimelineScale
library. - Exposed default implementations of various parts of
Timeline
drawing functionality, via thetimelinePrimitives
library. - Added the
TimelineController.setViewportRange
function, which allows setting theViewport
by passing the right and left periods of the scale. - Added
computeSubtotals
andcreateFromItems
toTree
.
- Improved
- [DateTable]:
- Added
renderHeaderCell
callback to the column configuration, it's allows to provide custom render for column header. - Added the
DataTableCellContainer
component - base wrapper for header and column cells
- Added
- [PickerInput]: hide picker footer while searching
- [PickerInput]: made tags in multi select smaller
- [Typography]: only for electric theme:
- H1 weight changed from 600 to 400
- H2 weight changed from 700 to 600
What's Fixed
- Simplify dayJs type imports to support earlier versions of Typescript
- [DataTable]: disable column focus and hover if
isReadonly={ true }
was provided inrowOptions
for editable table - [Badge]: center badge content, move left icons closer to the caption for wide badges
- [FileUpload]: fixed error icon color to uui-error-70
- [RTE]: fixed pasting lists from word
- [Tag]: fixed cross icon size according to the design
v5.8.4
5.8.4 - 22.07.2024
What's Fixed
- [PickerInput]: fixed '+N' toggler tag tooltip content with custom
getName
callback
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