Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@enact/ui

enactjs22.8kApache-2.04.9.8TypeScript support: included

A collection of simplified unstyled cross-platform UI components for Enact

framework, toolkit, components, mobile, webOS

readme

Enact

An app development framework built atop React that’s easy to use, performant and customizable.

Enact is to provide the building blocks for creating robust and maintainable applications. To that end, we’ve pulled together the best solutions for internationalization (i18n), accessibility (a11y), focus management, linting, testing and building. Then, we created a set of reusable components and behaviors on top of that. We combined these pieces and ensured that they work together seamlessly, allowing developers to focus on implementation.

Travis npm (scoped) license Gitter PRs Welcome

A mono-repo containing Enact framework modules

  • core The set of essential building blocks for an Enact-based application.
  • ui A set of reusable behaviors and a library of unstyled components for creating Enact themes.
  • spotlight An extensible library for 5-way navigation and focus control.
  • i18n Internationalization library based on iLib.
  • webos Utility functions for working with webOS devices.

Enact uses lerna to manage the individual modules within this repo.

Getting Started

Developers should use the individual npm modules hosted under the @enact namespace.

For local framework development, this mono-repo can be setup using the bootstrap command:

npm run bootstrap

Alternatively, if you wish to install and setup package dependencies for global usage on a system, the bootstrap-link command can be used:

npm run bootstrap-link

That command will npm link the packages into global NPM userspace, for use in other projects via npm link <package> or enact link.

Documentation

Unless otherwise specified, all content, including all source code files and documentation files in this repository are:

Copyright (c) 2012-2025 LG Electronics

Unless otherwise specified or set forth in the NOTICE file, all content, including all source code files and documentation files in this repository are: Licensed under the Apache License, Version 2.0 (the "License"); you may not use this content except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

changelog

Change Log

The following is a curated list of changes in the Enact ui module, newest changes on the top.

[4.9.8] - 2025-04-24

No significant changes.

[4.9.7] - 2025-04-16

No significant changes.

[4.9.6] - 2025-03-27

No significant changes.

[4.9.5] - 2024-12-11

Fixed

  • ui/VirtualList to not abnormally scroll when dataSize and itemSizes changed

[4.9.4] - 2024-11-19

Fixed

  • ui/VirtualList to re-render when the each size of variable sized items changed

[4.9.3] - 2024-10-29

No significant changes.

[4.9.2] - 2024-09-26

Fixed

  • ui/VirtualList to update its scroll bounds when the total size of items is changed

[4.9.1] - 2024-09-09

Fixed

  • ui/Scroller and ui/VirtualList to have default prop when undefined prop is passed

[4.9.0] - 2024-07-17

Fixed

  • ui/Marquee.MarqueeDecorator to start animation properly when synchronized by ui/Marquee.MarqueeController and text changed
  • ui/Placeholder.PlaceholderControllerDecorator to not remount its children when it rerenders

[4.9.0-beta.1] - 2024-06-17

No significant changes.

[4.9.0-alpha.3] - 2024-06-05

Changed

  • ui/Placeholder.PlaceholderControllerDecorator and ui/ViewManager to have sibling DOM node as alternative to findDOMNode API which will be removed in React 19

[4.0.15] - 2024-05-28

No significant changes.

[4.9.0-alpha.2] - 2024-05-24

No significant changes.

[4.0.14] - 2024-05-14

No significant changes.

[4.7.11] - 2024-05-13

No significant changes.

[4.9.0-alpha.1] - 2024-04-09

Added

  • ui/Layout.Cell prop componentCss to support customizing the component used in Cell

[4.8.0] - 2024-02-08

No significant changes.

[4.7.9] - 2023-12-08

No significant changes.

[4.5.6] - 2023-11-30

Fixed

  • ui/Marquee.MarqueeDecorator to re-render when its size changed

[4.0.13] - 2022-11-29

Fixed

  • ui/Marquee.MarqueeDecorator to re-render when its size changed

[4.7.8] - 2023-11-17

Fixed

  • ui/Marquee.MarqueeDecorator to re-render when its size changed

[4.7.7] - 2023-11-09

No significant changes.

[4.7.6] - 2023-09-20

No significant changes.

[4.7.5] - 2023-09-12

No significant changes.

[4.7.4] - 2023-08-31

Fixed

  • ui/Marquee style to avoid letters being cut off

[4.7.3] - 2023-08-10

No significant changes.

[4.7.2] - 2023-07-14

No significant changes.

[4.5.4] - 2023-06-07

Fixed

  • ui/Scroller and ui/VirtualList to pass scrolling state properly to UI libraries

[4.7.1] - 2023-06-02

No significant changes.

[4.5.3] - 2023-04-06

No significant changes.

[4.7.0] - 2023-04-25

Added

  • ui/Layout.Cell prop grow to expand its size to the container

Fixed

  • ui/ViewManager to set index prop properly when reverseTransition prop is given

[4.6.2] - 2023-03-09

No significant changes.

[4.6.1] - 2023-02-03

Added

  • ui/Touchable events onPinch, onPinchStart, onPinchEnd, and config pinchConfig to support pinch gesture

Deprecated

  • ui/IconButton to be removed in 5.0.0, use ui/Button instead
  • ui/RadioDecorator to be removed in 5.0.0
  • ui/Scroller.ScrollerBase to be removed in 5.0.0
  • ui/SlotItem to be removed in 5.0.0
  • ui/ToggleItem to be removed in 5.0.0
  • ui/VirtualList.VirtualListBase to be removed 5.0.0

[4.6.0] - 2022-12-05

Fixed

  • ui/Marquee.MarqueeDecorator to restart animation properly when marqueeDelay is 0

[4.0.12] - 2022-09-16

Fixed

  • ui/Marquee.MarqueeDecorator to have proper spacing for bidirectional text

[4.5.2] - 2022-08-17

Fixed

  • ui/Marquee to stop at the starting point after one cycle when scaled

[4.5.1] - 2022-08-03

Fixed

  • ui/Marquee.MarqueeDecorator to have proper spacing for bidirectional text
  • ui/Marquee.MarqueeDecorator to restart animation properly with React 18

[4.5.0] - 2022-07-19

No significant changes.

[4.5.0-rc.2] - 2022-07-06

Fixed

  • ui/Scroller and ui/VirtualList to rerender property when clientSize is changed

[4.5.0-rc.1] - 2022-06-23

No significant changes.

[4.5.0-beta.1] - 2022-05-31

Deprecated

  • ui/GridListImageItem, to be removed in 5.0.0. Use ui/ImageItem instead

Added

  • ui/FloatingLayer to add detail property containing inputType in onDismiss event payload

[4.5.0-alpha.2] - 2022-05-09

Deprecated

  • ui/Marquee.MarqueeDecorator config className to be removed in 5.0.0

Added

  • ui/Marquee.MarqueeDecorator config css to support customizing the marquee styles

[4.0.11] - 2022-04-25

No significant changes.

[4.5.0-alpha.1] - 2022-04-15

Fixed

  • ui/FloatingLayer to stack popups always in the order in which they were opened

[4.0.10] - 2022-04-05

No significant changes.

[4.1.4] - 2022-03-24

Removed

  • ui/Scroller and ui/VirtualList prop data-webos-voice-focused, data-webos-voice-disabled, and data-webos-voice-group-label

Added

  • ui/Marquee.MarqueeDecorator locale type for forceDirection prop not to override the direction depending on contents

Fixed

  • ui/Button not to pass icon prop as children when icon is true
  • ui/Transition to pass the event when handling transition event

[4.1.3] - 2022-03-07

  • Updated to use forwardCustom and add type when forwarding custom events

[3.2.7] - 2022-01-17

No significant changes.

[4.1.2] - 2021-12-22

Fixed

  • ui/Scroller and ui/VirtualList to avoid stuttering of content on drag in mobile devices
  • ui/Scroller and ui/VirtualList to scroll correctly on Android platform for RTL locales

[4.0.9] - 2021-12-15

No significant changes.

[4.1.1] - 2021-11-30

No significant changes.

[4.1.0] - 2021-11-04

Fixed

  • ui/Marquee.MarqueeDecorator to restart animation when text changed while focus retained

[4.0.8] - 2021-10-21

Fixed

  • ui/Marquee.MarqueeDecorator style to render text properly when starting animation

[4.0.7] - 2021-09-28

No significant changes.

[4.0.6] - 2021-09-28

No significant changes.

[4.0.5] - 2021-08-02

No significant changes.

[4.0.4] - 2021-07-02

Fixed

  • ui/Marquee.MarqueeDecorator to stop marquee properly after hiding pointer when marqueeOn is hover

[4.0.3] - 2021-06-18

No significant changes.

[4.0.2] - 2021-05-24

No significant changes.

[4.0.1] - 2021-05-21

No significant changes.

[4.0.0] - 2021-03-26

Removed

  • ui/A11yDecorator
  • ui/Button, ui/Icon, ui/IconButton, and ui/LabeledIcon default size values

Added

  • ui/BodyText, ui/Button, ui/Group, ui/Heading, ui/Icon, ui/IconButton, ui/Image, ui/ImageItem, ui/LabeledIcon, ui/Layout, ui/ProgressBar, ui/Repeater, ui/Slider, ui/SlotItem, ui/Spinner, ui/ToggleIcon, ui/ToggleItem, and ui/ViewManager support for forwarding refs to the respective root component

Changed

  • ui/Touchable event onHold and onHoldPulse to onHoldStart and onHold respectively to match with the naming convention

Fixed

  • ui/FloatingLayerDecorator to render floating node properly
  • `ui/Touchable' to handle touch related events only for valid targets

[4.0.0-alpha.1] - 2021-02-24

No significant changes.

[3.5.0] - 2021-02-05

Deprecated

  • ui/A11yDecorator, to be removed in 4.0.0

Changed

  • ui/Transition prop duration to support any valid CSS value for slide and fade type

[3.4.11] - 2020-12-11

Fixed

  • documentation problem in styles/internal directory

[3.4.10] - 2020-12-09

Changed

  • ui/Media play function to return promise

Fixed

  • ui/Routable to respect the current path on first render when using relative paths in links
  • ui/Scroller and ui/VirtualList to scroll correctly on Chrome 85 or higher in RTL locales

[3.4.9] - 2020-10-30

No significant changes.

[3.4.8] - 2020-10-08

Fixed

  • ui/Button to prevent browser's default styling when pressed by touch

[3.4.7] - 2020-09-01

Fixed

  • ui/Scroller and ui/VirtualList to call onScrollStop when scrollbar's visibility changed while scrolling
  • ui/ViewManager to handle transitioning away and back to a view before a transition completes

[3.4.6] - 2020-08-24

Added

  • ui/MarqueeDecorator warning against nested Marquee's

[3.4.5] - 2020-08-18

No significant changes.

[3.4.4] - 2020-08-17

Fixed

  • ui/FloatingLayer and ui/Slider to prevent global classname leaks

[3.4.3] - 2020-08-10

No significant changes.

[3.4.2] - 2020-08-05

No significant changes.

[3.4.1] - 2020-08-05

Fixed

  • ui/Touchable to invoke event callbacks updated during gesture

[3.4.0] - 2020-07-29

Added

  • ui/AnnounceDecorator.Announce method announce parameter clear to clear previous message before setting the new message
  • ui/ViewManager prop and ui/ViewManager.Arranger callback config prop rtl to allow arrangers to adjust animations to be locale aware

Fixed

  • ui/Marquee to correctly animate when scaled or when less than 1px longer than its container
  • ui/Scroller prop data-webos-voice-focused, data-webos-voice-disabled, and data-webos-voice-group-label
  • ui/Scroller and ui/VirtualList to re-render when its size changed
  • ui/Scroller and ui/VirtualList to not fire onScrollStop event redundantly
  • ui/VirtualList with scrollMode native to not scrollTo bottom when dataSize changed to smaller and scrollTo called with animate: false option

[3.3.1] - 2020-07-20

Changed

  • ui/Scroller by increasing the scrollbar's inactivity timeout to 1000 ms

[3.3.0] - 2020-07-13

Changed

  • ui/ViewManager.TransitionGroup to suppress onTransition events when a view appears or stays

[3.3.0-alpha.15] - 2020-07-07

No significant changes.

[3.3.0-alpha.14] - 2020-06-29

Fixed

  • ui/Scroller to update when clientSize is changed
  • ui/VirtualList to reset scroll position when clientSize is changed

[3.3.0-alpha.13] - 2020-06-22

No significant changes.

[3.3.0-alpha.12] - 2020-06-15

Added

  • ui/Button prop iconFlip to set the flip prop of iconComponent

Fixed

  • ui/Marquee.MarqueeDecorator to not cause unnecessary rerenders
  • ui/Scroller and ui/VirtualList to not inadvertently scroll due to click events when in RTL locales
  • ui/Skinnable to not force all Skinnable children to update if a parent updates

[3.3.0-alpha.11] - 2020-06-08

No significant changes.

[3.3.0-alpha.10] - 2020-05-26

Added

  • ui/Group prop selectedEventProp to configure the key used to hold the value in the onSelect event

Fixed

  • Toggleable to recognize changes in disabled and onToggle

[3.3.0-alpha.9] - 2020-05-11

No significant changes.

[3.3.0-alpha.8] - 2020-05-04

Fixed

  • ui/Layout to export Layout by default instead of LayoutBase

[3.3.0-alpha.7] - 2020-04-27

Added

  • ui/ProgressBar support for orientation type of 'radial'
  • ui/ProgressBar public class name radial
  • ui/ViewManager events onTransition and onWillTransition payload members index and previousIndex

Fixed

  • ui/ViewManager to only fire onTransition once per transition
  • ui/Spinner center alignment

[3.3.0-alpha.6] - 2020-04-14

Fixed

  • ui/Scroller to prevent interaction with scrollbars when muted

[3.3.0-alpha.5] - 2020-04-06

No significant changes.

[3.3.0-alpha.4] - 2020-03-30

Deprecated

  • ui/GridListImageItem, use ui/ImageItem instead

Added

  • ui/ImageItem component

Fixed

  • ui/Scroller, ui/VirtualList.VirtualGridList, and ui/VirtualList.VirtualList to update scroll thumb position properly in nested cases

[3.3.0-alpha.3] - 2020-03-09

Added

  • ui/styles/mixins.less .position() support for list-style arguments, in addition to the existing separated arguments
  • ui/GridListItemItem prop subComponents

[3.3.0-alpha.2] - 2020-03-09

Changed

  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList prop itemProps to childProps for backwards compatibility

Fixed

  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList to not suddenly jump when pressing directional keys after wheeling

[3.3.0-alpha.1] - 2020-02-26

Added

  • ui/Scroller, ui/VirtualList.VirtualGridList, and ui/VirtualList.VirtualList prop scrollMode is added

Changed

  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList prop childProps to itemProps for clarity

Fixed

  • ui/Marquee to not error when passed null children during an animation
  • ui/Button to have more robust support for a customized iconComponent prop

[3.2.6] - 2020-03-26

Fixed

  • ui/VirtualList.VirtualGridList and ui/VirtualList.VirtualList to show items properly when reducing data size by updating firstIndex correctly
  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList not to suddenly jump when pressing directional keys after wheeling
  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList to show items properly when reducing data size

[3.2.5] - 2019-11-14

Fixed

  • ui/Marquee to not double aria readout for marqueeing contents

[3.2.4] - 2019-11-07

Fixed

  • ui/Marquee text alignment when content is centered

[3.2.3] - 2019-11-01

Fixed

  • ui/Marquee text alignment when restarting
  • ui/Marquee to display an ellipsis when its content changes and overflows its bounds

[3.2.2] - 2019-10-24

No significant changes.

[3.2.1] - 2019-10-22

Fixed

  • ui/VirtualList.VirtualList item rendering in RTL locales

[3.2.0] - 2019-10-18

Added

  • ui/Marquee prop marqueeSpacing and CSS class spacing to configure the spacing between the repeated content

Changed

  • ui/Marquee to have a wrap-around effect

Fixed

  • ui/Marquee to start on focus when disabled

[3.1.3] - 2019-10-09

Fixed

  • ui/FloatingLayer to be dismissable when open on mount

[3.1.2] - 2019-09-30

Fixed

  • ui/Button to not require children
  • ui/VirtualList.VirtualGridList and ui/VirtualList.VirtualList to scroll smoothly when wheeling
  • ui/Scroller, ui/VirtualList.VirtualGridList, and ui/VirtualList.VirtualList to scroll correctly after performing flick events

[3.1.1] - 2019-09-23

Fixed

  • ui/VirtualList.VirtualGridList and ui/VirtualList.VirtualList to show items properly when reducing data size

[3.1.0] - 2019-09-16

Added

  • ui/Routable module
  • ui/VirtualList.VirtualGridList and ui/VirtualList.VirtualList prop role to set the ARIA role

[3.0.1] - 2019-09-09

No significant changes.

[3.0.0] - 2019-09-03

Fixed

  • ui/Scroller TypeScript signatures
  • ui/VirtualList.VirtualGridList and ui/VirtualList.VirtualList to apply will-change CSS property to the proper node

[3.0.0-rc.4] - 2019-08-22

Fixed

  • ui/styles/mixins.less mixins: .buildLocaleFont, .buildLocaleFonts, .buildFontFace to properly support font-weight ranges, font-weight default values, and font-stretch values

[3.0.0-rc.3] - 2019-08-15

Fixed

  • ui/VirtualList.VirtualGridList and ui/VirtualList.VirtualList to retain the proper scroll position when updating the itemSize or spacing props
  • ui/Toggleable TypeScript definitions

[3.0.0-rc.2] - 2019-08-08

No significant changes.

[3.0.0-rc.1] - 2019-07-31

Added

  • ui/Icon, ui/IconButton, and ui/LabeledIcon prop flip to flip the icon horizontally, vertically, or both

Fixed

  • ui/Scroller, ui/VirtualList.VirtualGridList, and ui/VirtualList.VirtualList to handle mouse down events on scrollbars

[3.0.0-beta.2] - 2019-07-23

Added

  • ui/ProgressBar public class name bar to support customizing the background of the bar

[3.0.0-beta.1] - 2019-07-15

Added

  • ui/VirtualList.VirtualGridList and ui/VirtualList.VirtualList support for resizing a window

Fixed

  • ui/Icon to support arbitrary icon name strings, like in material icons

[3.0.0-alpha.7] - 2019-06-24

No significant changes.

[3.0.0-alpha.6] - 2019-06-17

Fixed

  • ui/ViewManager to correctly arrange views when initially rendering a non-zero index

[3.0.0-alpha.5] - 2019-06-10

Added

  • ui/Toggleable HOC config prop eventProps to allow wrapped components to specify additional event information

Fixed

  • ui/ToggleItem to send its value prop when toggled

[3.0.0-alpha.4] - 2019-06-03

No significant changes.

[3.0.0-alpha.3] - 2019-05-29

Changed

  • ui/ViewManager to use Web Animations instead of animation callbacks to improve performance resulting in API changes to Arranger and the pre-configured arrangers SlideArranger, SlideBottomArranger, SlideLeftArranger, SlideRightArranger, and SlideTopArranger

[3.0.0-alpha.2] - 2019-05-20

No significant changes.

[3.0.0-alpha.1] - 2019-05-15

Added

  • ui/Button public class .hasIcon which is present on the root node only when an icon has been provided
  • ui/Heading component
  • ui/Measurable HOC and Hook for quick and convenient measuring of simple components
  • ui/Scroller, ui/VirtualList.VirtualGridList, and ui/VirtualList.VirtualList prop noScrollByWheel for preventing scroll by wheel

Fixed

  • ui/Measurable to remeasure after a re-layout so the measurement value is always correct
  • ui/Scroller, ui/VirtualList.VirtualGridList, and ui/VirtualList.VirtualList not to scroll by wheel at the same time when multiple lists/scrollers are nested

[2.6.0] - ???

Deprecated

  • small prop in ui/Button.ButtonBase, ui/Icon.IconBase, ui/IconButton.IconButtonBase, and ui/LabeledIcon.LabeledIconBase, which will be replaced by size="small" in 3.0

Added

  • ui/Button, ui/Icon, ui/IconButton, and ui/LabeledIcon prop size
  • ui/ToggleItem props itemIcon and itemIconPosition to support additional icons on ToggleItem-derived components

[2.5.3] - 2019-06-06

Fixed

  • ui/Scroller, ui/VirtualList, and ui/VirtualGridList to size properly
  • ui/Scroller, ui/VirtualList, and ui/VirtualGridList to scroll correctly on iOS and Safari
  • ui/Touchable to not misfire a hold pulse when a drag re-enters a touch target and cancelOnMove is set
  • ui/ViewManager to correctly handle transitioning quickly between two children

[2.5.2] - 2019-04-23

Fixed

  • ui/Skinnable to allow overriding default skinVariant values
  • ui/Touchable to prevent events firing on different nodes for the same touch action
  • ui/Touchable to neither force focus to components nor blur components after they are touched

[2.5.1] - 2019-04-09

Fixed

  • ui/Touchable to prevent doubled events in some situations on touch devices

[2.5.0] - 2019-04-01

Added

  • ui/Item, ui/Layout, ui/Repeater, ui/SlotItem, ui/Spinner, ui/ToggleItem, and ui/ViewManager support for ref to gain access to the wrapped component

[2.4.1] - 2019-03-11

Fixed

  • ui/VirtualList to scroll properly by scrollTo callback during the list is updated by prop changes

[2.4.0] - 2019-03-04

Added

  • ui/BodyText prop component to allow customization of the tag/component used to render its base element
  • ui/Repeater prop component to allow customization of its base element
  • ui/Spinner prop paused to halt the animation. Previously this was hard-coded "on", but now it can be toggled.

Changed

  • ui/Changeable and ui/Toggleable to warn when both [defaultProp] and [prop] are provided

[2.3.0] - 2019-02-11

Added

  • ui/Skinnable support for skinVariants; a way to augment a skin by adding variations of a skin to your visuals, like large text, high contrast, or grayscale
  • ui/Touchable event onHoldEnd to notify when a hold has been released
  • ui/Touchable prop holdConfig.global to allow a hold to continue when leaving or blurring the element

Changed

  • All content-containing LESS stylesheets (not within a styles directory) extensions to be *.module.less to retain modular context with CLI 2.x.

Fixed

  • ui/Touchable to continue drag events when blurring the element when dragConfig.global is set
  • ui/Marquee to marquee when necessary after a locale change

[2.2.9] - 2019-01-11

No significant changes.

[2.2.8] - 2018-12-06

Fixed

  • ui/Marquee to display an ellipsis when changing to text that no longer fits within its bounds
  • ui/VirtualList, ui/VirtualGridList, and ui/Scroller to debounce onScrollStop events for non-animated scrolls
  • ui/Changeable and ui/Toggleable to no longer treat components as controlled if the specified prop is explicitly set to undefined at mount

[2.2.7] - 2018-11-21

Fixed

  • ui/Marquee to avoid very small animations

[2.2.6] - 2018-11-15

Fixed

  • ui/Marquee to handle contents which overflow their containers only slightly

[2.2.5] - 2018-11-05

Fixed

  • ui/Transition to better support layout after changing children

[2.2.4] - 2018-10-29

No significant changes.

[2.2.3] - 2018-10-22

No significant changes.

[2.2.2] - 2018-10-15

Fixed

  • ui/Scroller slowed scrolling behavior when repeatedly requesting a scroll to the same position

[2.2.1] - 2018-10-09

Fixed

  • ui/Marquee to prevent restarting animation after blurring just before the previous animation completed

[2.2.0] - 2018-10-02

Added

  • ui/Marquee.MarqueeBase prop willAnimate to improve app performance by deferring animation preparation styling such as composite layer promotion
  • ui/Skinnable config option prop to configure the property in which to pass the current skin to the wrapped component
  • ui/Transition prop css to support customizable styling

Changed

  • ui/Cell and ui/Layout to accept any type of children, since the component that may be set could accept any format of children

Fixed

  • ui/Touchable to correctly handle a hold cancelled from an onHold handler
  • ui/Marquee.MarqueeDecorator to handle situations where lazily loaded CSS could cause marquee to not start correctly

[2.1.4] - 2018-09-17

Fixed

  • ui/ViewManager to emit onWillTransition when views are either added or removed

[2.1.3] - 2018-09-10

Fixed

  • ui/Marquee to stop when blurred during restart timer

[2.1.2] - 2018-09-04

Fixed

  • ui/GridListImageItem to properly set selected style
  • ui/Marquee positioning bug when used with CSS flexbox layouts

[2.1.1] - 2018-08-27

No significant changes.

[2.1.0] - 2018-08-20

Fixed

  • ui/FloatingLayer to apply keys to prevent React warnings

[2.0.2] - 2018-08-13

Fixed

  • ui/Image to not display "missing image" icon when src fails to load
  • ui/Image to not require src prop if placeholder is specified
  • ui/GridListImageItem to not require source prop
  • ui/Scrollable to use GPU acceleration to improve rendering performance
  • ui/Marquee to move position: relative style into animate class to improve rendering performance

[2.0.1] - 2018-08-01

No significant changes.

[2.0.0] - 2018-07-30

Added

  • ui/LabeledIcon component for a lightweight Icon with a label

Removed

  • ui/Skinnable.withSkinnableProps higher-order component

Fixed

  • ui/Scrollable to ignore native drag events which interfered with touch drag support

[2.0.0-rc.3] - 2018-07-23

No significant changes.

[2.0.0-rc.2] - 2018-07-16

No significant changes.

[2.0.0-rc.1] - 2018-07-09

Removed

  • ui/FloatingLayer.contextTypes export
  • ui/Marquee.controlContextTypes export
  • ui/Placeholder.contextTypes export
  • ui/Resizable.contextTypes export

[2.0.0-beta.9] - 2018-07-02

No significant changes.

[2.0.0-beta.8] - 2018-06-25

Fixed

  • ui/VirtualList to allow scrolling on focus by default on webOS

[2.0.0-beta.7] - 2018-06-11

Added

  • ui/FloatingLayer.FloatingLayerBase export

Changed

  • ui/FloatingLayer to call onOpen only after it is rendered

Fixed

  • ui/MarqueeDecorator to stop marqueeing when using hover and pointer hides

[2.0.0-beta.6] - 2018-06-04

Fixed

  • ui/FloatingLayer to render correctly if already opened at mounting time

[2.0.0-beta.5] - 2018-05-29

Added

  • ui/FloatingLayerDecorator imperative API to close all floating layers registered in the same id
  • ui/ProgressBar and ui/Slider prop progressAnchor to configure from where in the progress bar or slider progress should begin
  • ui/Slider prop progressBarComponent to support customization of progress bar within a slider
  • ui/ForwardRef HOC to adapt React.forwardRef to HOC chains
  • ui/Media component

Fixed

  • ui/MarqueeController to update hovered state when pointer hides
  • ui/Touchable to end gestures when focus is lost
  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList to prevent items overlap with scroll buttons

[2.0.0-beta.4] - 2018-05-21

Fixed

  • ui/Touchable to guard against null events

[2.0.0-beta.3] - 2018-05-14

Changed

  • ui/Marquee.MarqueeController and ui/Marquee.MarqueeDecorator to prevent unnecessary focus-based updates

Added

  • ui/Touchable support to fire onTap when a click event occurs

Changed

  • ui/Touchable custom events onDown, onUp, onMove, and onTap to use the event name as the type rather than the shorter name (e.g. onTap rather than tap)
  • ui/Toggleable to forward events on activate and deactivate instead of firing toggled payload. Use toggle to handle toggled payload from the event.

[2.0.0-beta.2] - 2018-05-07

Fixed

  • ui/Marquee to always marquee when marqueeOn is set to 'render'
  • ui/Item to use its natural width rather than imposing a 100% width allowing inline Items to be the correct width
  • ui/Marquee.MarqueeDecorator to correctly reset animation when children updates

[2.0.0-beta.1] - 2018-04-29

Changed

  • ui/Cancelable callback onCancel to accept an event with a stopPropagation method to prevent upstream instances from handling the event instead of using the return value from the callback to prevent propagation. When a function is passed to onCancel, it will now receive an event and a props object instead of only the props object. When a string is passed to onCancel, it will now receive an event instead of no arguments. Also when a string is passed, the event will now propagate to upstream instances unless stopPropagation is called.
  • ui/Transition property duration to now also support a numeric value representing milliseconds or a string representing any valid CSS duration value

Fixed

  • ui/Layout.Cell to no longer overflow when both size and shrink are set together
  • ui/Layout to correctly support two align values, allowing horizontal and vertical in one property. Previously, the transverse alignment was ignored, only allowing perpendicular alignment.
  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList showing blank when direction prop changed after scroll position changed
  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList to support RTL by dynamic language changes

[2.0.0-alpha.8] - 2018-04-17

Added

  • ui/Slider as an unstyled, base range selection component
  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList role="list"
  • ui/Placeholder.PlaceholderControllerDecorator config property thresholdFactor

Changed

  • ui/Transition property children to not be required
  • ui/Transition to fire onShow and onHide even when there are no children

Fixed

  • ui/VirtualList.VirtualList to re-render items when forceUpdate() called
  • ui/ViewManager to not initially pass the wrong value for enteringProp when a view initiates a transition into the viewport

[2.0.0-alpha.7] - 2018-04-03

Removed

  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList prop data to eliminate the misunderstanding caused by the ambiguity of data

Fixed

  • ui/Scroller horizontal scrolling in RTL locales

[2.0.0-alpha.6] - 2018-03-22

Removed

  • ui/Transition property clipHeight
  • ui/ProgressBar property vertical and replaced it with orientation

Added

  • ui/Scrollable support for scrolling by touch
  • ui/ProgressBar property orientation to accept orientation strings like "vertical" and "horizontal"

Changed

  • ui/VirtualList.VirtualList and ui/VirtualList.VirtualGridList prop component to be replaced by itemRenderer

Fixed

  • ui/Transition animation for clip for "up", "left", and "right" directions. This includes a DOM addition to the Transition markup.
  • ui/ComponentOverride and ui/ToggleItem to accept HTML DOM node tag names as strings for its component property

[2.0.0-alpha.5] - 2018-03-07

Added

  • ui/Touchable support for drag gesture
  • ui/Marquee component
  • ui/GridListImageItem component

Changed

  • ui/VirtualList, ui/VirtualGridList, and ui/Scroller components as unstyled base components to support UI libraries

Fixed

  • ui/ViewManager to suppress enteringProp for views that are rendered at mount

[2.0.0-alpha.4] - 2018-02-13

Added

  • ui/BodyText, ui/Image, ui/Item, ui/ProgressBar, ui/SlotItem, ui/Spinner, ui/ToggleIcon components as unstyled base components to support UI libraries
  • ui/SlotItem with the properties of slotBefore and slotAfter so we can easily add things like icons to an item

Changed

  • ui/Repeater and ui/Group to require a unique key for each object type data
  • ui/Toggleable to use 'selected' as its default prop, rather than 'active', since 'selected' is by far the most common use case
  • ui/Touchable to use global gesture configuration with instance override rather than component-level configuration via HOC configs with instance override

[2.0.0-alpha.3] - 2018-01-18

Added

  • ui/Layout debugging aid for help with complex layouts. Simply include the "debug" className in your app and everything below it will show debugging lines
  • ui/Button, ui/Icon, and ui/IconButton components to support reuse by themes
  • ui/Touchable support for flick gestures

Fixed

  • ui/resolution to measure the App's rendering area instead of the entire window, and now factors-in the height as well
  • ui/Layout prop align to support setting horizontal and vertical alignment in one prop, separated by a space

[2.0.0-alpha.2] - 2017-08-29

Added

  • ui/Scroller and ui/VirtualList

[2.0.0-alpha.1] - 2017-08-27

Added

  • ui/Layout which provides a technique for laying-out components on the screen using Cells, in rows or columns
  • ui/Touchable to support consistent mouse and touch events along with hold gesture

Removed

  • ui/Holdable and ui/Pressable which were replaced by ui/Touchable

[1.15.0] - 2018-02-28

Fixed

  • Internal method used by many components that sometimes prevented re-renders when they were needed

[1.14.0] - 2018-02-23

Deprecated

  • ui/Holdable and ui/Pressable, to be replaced by ui/Touchable in 2.0.0

[1.13.4] - 2018-07-30

No significant changes.

[1.13.3] - 2018-01-16

No significant changes.

[1.13.2] - 2017-12-14

Fixed

  • ui/ViewManager to revert 1.13.0 fix for lifecycle timing when entering a view

[1.13.1] - 2017-12-06

No significant changes.

[1.13.0] - 2017-11-28

Added

  • ui/Transition animation timing functions ease-in, ease-out, ease-in-quart, and ease-out-quart to provide prettier options for transitions that may be more suited to a specific visual style

Fixed

  • ui/ViewManager to prevent interaction issue with moonstone/Scroller

[1.12.2] - 2017-11-15

Fixed

  • ui/Remeasurable to update on every trigger change
  • ui/Transition to revert 1.12.1 change to support clip transition-type directions and rendering optimizations

[1.12.1] - 2017-11-07

Fixed

  • ui/Transition support for all clip transition-type directions and made rendering optimizations

[1.12.0] - 2017-10-27

No significant changes.

[1.11.0] - 2017-10-24

No significant changes.

[1.10.1] - 2017-10-16

Fixed

  • ui/Pressable to properly set pressed state to false on blur and release

[1.10.0] - 2017-10-09

Added

  • ui/Layout which provides a technique for laying-out components on the screen using Cells, in rows or columns

[1.9.3] - 2017-10-03

Fixed

  • ui/Transition to recalculate height when a resize occurs

[1.9.2] - 2017-09-26

No significant changes.

[1.9.1] - 2017-09-25

No significant changes.

[1.9.0] - 2017-09-22

Added

  • ui/styles/mixins.less mixins: .remove-margin-on-edge-children() and .remove-padding-on-edge-children() to better handle edge margins on container components

Changed

  • ui/Holdable to cancel key hold events when the pointer moves
  • ui/Holdable and ui/Changeable back to Components and moved performance improvements elsewhere

Fixed

  • ui/FloatingLayer to not asynchronously attach a click handler when the floating layer is removed
  • ui/ViewManager to correctly position items when changing mid-transition

[1.8.0] - 2017-09-07

Changed

  • ui/Holdable and ui/Changeable to be PureComponents to reduce the number of updates

[1.7.0] - 2017-08-23

No significant changes.

[1.6.1] - 2017-08-07

No significant changes.

[1.6.0] - 2017-08-04

Fixed

  • ui/PlaceholderDecorator to update bounds of Scroller when the visible state changed

[1.5.0] - 2017-07-19

Fixed

  • ui/Cancelable warning for string type cancel handler

[1.4.1] - 2017-07-05

No significant changes.

[1.4.0] - 2017-06-29

No significant changes.

[1.3.1] - 2017-06-14

No significant changes.

[1.3.0] - 2017-06-12

Added

  • ui/ViewManager prop childProps to pass static props to each child

Fixed

  • ui/ViewManager to have a view count of 0 specifically for noAnimation cases. This helps things like spotlight restore focus properly.
  • ui/Cancelable to run modal handlers on window object and correctly store handlers in LIFO order

[1.2.2] - 2017-05-31

No significant changes.

[1.2.1] - 2017-05-25

No significant changes.

[1.2.0] - 2017-05-17

Added

  • ui/Skinnable to provide themes with a way to apply a base theme styling and skins on top of that
  • ui/Transition prop onShow that fires when transitioning into view a component.
  • ui/transition callback prop onShow that fires when transitioning into view completes

Changed

  • ui/View to prevent re-renders on views leaving the ViewManager

[1.1.0] - 2017-04-21

Changed

  • ui/Slottable to support slot-candidate tags that have multiple props, which are now forwarded directly instead of just their children

Fixed

  • ui/Cancelable to run modal handlers in the right order

[1.0.0] - 2017-03-31

Added

  • ui/Placeholder module with PlaceholderControllerDecorator and PlaceholderDecorator HOCs which facilitate rendering placeholder components until the wrapped component would scroll into the viewport

Changed

  • ui/Repeater to accept an array of objects as children which are spread onto the generated components

Removed

  • ui/validators which was no longer used elsewhere in Enact

[1.0.0-beta.4] - 2017-03-10

Added

  • ui/A11yDecorator to facilitate adding pre/post hints to components
  • ui/AnnounceDecorator to facilitate announcing actions for accessibility

[1.0.0-beta.3] - 2017-02-21

Added

  • ui/Resizable Higher-order Component to facilitate notification of resized components

[1.0.0-beta.2] - 2017-01-30

Added

  • ui/ViewManager properties enteringDelay and enteringProp to aid deferred rendering of views
  • ui/resolution function scaleToRem for those times when you have a size in pixels that you want to convert directly to rem to support automatic dynamic resizing

[1.0.0-beta.1] - 2016-12-30

Added

  • ui/RadioDecorator and ui/RadioControllerDecorator to support radio group-style management of components
  • ui/Holdable Higher-order Component
  • ui/ViewManager events onAppear, onEnter, onLeave, onStay, onTransition, and onWillTransition
  • ui/FloatingLayer scrimType prop value none
  • ui/Pressable config option onMouseLeave

Removed

  • ui/Transition prop fit in favor of using className

Changed

  • ui/FloatingLayer property autoDismiss to handle both ESC key and click events

[1.0.0-alpha.5] - 2016-12-16

No changes.

[1.0.0-alpha.4] - 2016-12-2

Added

  • ui/FloatingLayer module with FloatingLayer and FloatingLayerDecorator components
  • fit, noAnimation props to ui/TransitionBase
  • onHide prop to ui/Transition
  • LESS mixins from @enact/moonstone that are general purpose and can be utilized by various UI libraries.

[1.0.0-alpha.3] - 2016-11-8

Added

  • Selection type support to ui/Group

Changed

  • Renamed ui/Group prop select to childSelect and added prop select to support selection types

[1.0.0-alpha.2] - 2016-10-21

This version includes a lot of refactoring from the previous release. Developers need to switch to the new enact-dev command-line tool.

Added

  • New components and HOCs: ui/Cancelable, ui/Changeable, ui/Selectable
  • Support for enact-dev command-line tool.
  • New options for ui/Toggleable HOC
  • Many more unit tests

Changed

  • Removed ui/Pickable HOC
  • Some props for UI state were renamed to have default prefix where state was managed by the component. (e.g. defaultOpen)

Fixed

  • Many components were fixed, polished, updated and documented
  • Inline docs updated to be more consistent and comprehensive

[1.0.0-alpha.1] - 2016-09-26

Initial release