Release 3.0.0
For information about upgrading from Enact 2.x, refer to the Enact 3.0.0 migration guide at docs/migration/enact/migrating-to-enact-3.md
NOTE: Support for 2019 TV platform (Blink <68) has been dropped from this version of Enact
Removed
core/kind
config propertycontextTypes
i18n/ilib
embedded copy of iLib in favour of the NPM packageilib
i18n/Uppercase
HOC, replaced byi18n/util
casing functionsmoonstone/Button
andmoonstone/Panels.Header
propcasing
which is no longer supportedmoonstone/Divider
, replaced bymoonstone/Heading
moonstone/Divider
,moonstone/Dialog
, andmoonstone/Heading
propcasing
moonstone/Input.InputBase
propfocused
which was used to indicate when the internal input field had focused but was replaced by the:focus-within
pseudo-selectormoonstone/VirtualList
andmoonstone/VirtualList.VirtualGridList
propertyisItemDisabled
small
prop inmoonstone/Input
,moonstone/ToggleButton
,moonstone/Button
,moonstone/Icon
,moonstone/IconButton
, andmoonstone/LabeledIcon
, replaced bysize
prop, which accepts"small"
or"large"
Added
core/util.clamp
to safely clamp a value between min and max boundsilib@^14.2.0
package as a peer dependency for@enact/i18n
and@enact/moonstone
, which apps will need to includemoonstone/BodyText
propsize
to offer a new "small" sizemoonstone/Button
propiconPosition
moonstone/ContextualPopup
confignoArrow
moonstone/Dropdown
componentmoonstone/Dropdown
propertywidth
to support'small'
,'medium'
, and'large'
sizesmoonstone/Dropdown
widthstiny
, andhuge
moonstone/Panels.Header
propcentered
to support immersive apps with a completely centered designmoonstone/Panels.Header
prophideLine
to hide the bottom separator linemoonstone/Panels.Header
samplemoonstone/Panels.Header
type "dense" for "AlwaysViewing" Panels typesmoonstone/Heading
component, an improved version ofmoonstone/Divider
with additional featuresmoonstone/Heading
propspacing
with default value'small'
moonstone/Icon.icons
entries for new iconsmoonstone/LabeledIconButton
propflip
to flip the icon horizontally, vertically, or bothmoonstone/Panels
slot<controls>
to easily add custom controls next to the Panels' "close" buttonmoonstone/Panels
support for managing share state of contained componentsmoonstone/Popup
public class namesbody
andcloseContainer
moonstone/Scroller
andmoonstone/VirtualList
support for restoring scroll position when within amoonstone/Panels.Panel
moonstone/Spinner
propsize
to support a new "small" size for use insideSlotItem
componentsmoonstone/TooltipDecorator
proptooltipRelative
andmoonstone/TooltipDecorator.Tooltip
proprelative
to support relative positioning. This is an advanced feature and requires a container with specific rules. See documentation for details.ui/Button
public class.hasIcon
which is present on the root node only when an icon has been providedui/Heading
componentui/Icon
,ui/IconButton
, andui/LabeledIcon
propflip
to flip the icon horizontally, vertically, or bothui/Measurable
HOC and Hook for quick and convenient measuring of simple componentsui/Scroller
,ui/VirtualList.VirtualGridList
, andui/VirtualList.VirtualList
propnoScrollByWheel
for preventing scroll by wheelui/Toggleable
HOC config propeventProps
to allow wrapped components to specify additional event informationui/VirtualList.VirtualGridList
andui/VirtualList.VirtualList
support for resizing a window
Changed
moonstone/Button.ButtonDecorator
to removei18n/Uppercase
HOCmoonstone/Button
,moonstone/Checkbox
,moonstone/CheckboxItem
,moonstone/ContextualPopupDecorator
,moonstone/FormCheckbox
,moonstone/FormCheckboxItem
,moonstone/Panels.Header
,moonstone/Notification
,moonstone/RadioItem
, andmoonstone/Tooltip
appearance to match the latest designsmoonstone/Button
,moonstone/Dropdown
,moonstone/Icon
,moonstone/IconButton
,moonstone/Input
, andmoonstone/ToggleButton
default size to "small", which unifies their initial heightsmoonstone/DaySelector
to have squared check boxes to match the rest of the checkmark componentsmoonstone/Dialog
appearance to match the latest designsmoonstone/Dropdown
to prevent spotlight moving out of the popupmoonstone/Dropdown
to use radio selection which allows only changing the selection but not deselectionmoonstone/LabeledIcon
andmoonstone/LabeledIconButton
text size to be smallermoonstone/Panel
andmoonstone/Panels
now allocate slightly more screen edge space for a cleaner lookmoonstone/Scroller
and other scrolling components to scroll via remote page up/down buttons when the scrollbar is hiddenmoonstone/Scroller
to scroll when no spottable child exists in the pressed 5-way key direction and, whenfocusableScrollbar
is set, focus the scrollbar buttonmoonstone/Scroller.Scroller
,moonstone/VirtualList.VirtualGridList
, andmoonstone/VirtualList.VirtualList
scrollbar button to gain focus when pressing a page up or down key iffocusableScrollbar
is truesampler
look and feel by updating to Storybook 5 and applying an Enact themespotlight
containers to include nodes identified on thearia-owns
attribute of the container node as candidates within that containerspotlight/Spottable
to allow disabled items to be focusedui/ViewManager
to use Web Animations instead of animation callbacks to improve performance resulting in API changes toArranger
and the pre-configured arrangersSlideArranger
,SlideBottomArranger
,SlideLeftArranger
,SlideRightArranger
, andSlideTopArranger
- global styling rules affecting standard font-weight, disabled opacity, and LESS color variable definitions
Fixed
Fonts
for non-Latin to not intermix font weights for bold when using a combination of Latin and non-Latin glyphs- Fonts to correctly use the new font files and updated the international font name from "Moonstone LG Display" to "Moonstone Global"
- Language-specific fonts so they always use the correct typeface for their locale
- Moonstone Fonts to use the updated names of global fonts available in the system
- Non-Latin locale font assignments to match the new font family support in
LG Smart UI
core/platform
logic for webOS detectioni18n/Text
to generate a proper TypeScript definition and to properly detect if translations were available when asyncmoonstone
disabled focus appearance to match the latest designsmoonstone
fonts be consolidated under "Moonstone" font-family to properly display all localized fonts when representing glyphs from any localemoonstone
to support custom font for simplified Chinesemoonstone/Button
background colors for translucent and lightTranslucentmoonstone/Checkbox
by updating colors for both dark and light skinsmoonstone/Checkbox
,moonstone/FormCheckbox
,moonstone/Panels.Header
,moonstone/RadioItem
,moonstone/Slider
, andmoonstone/Switch
to render correctly in high contrastmoonstone/ContextualPopupDecorator
arrow rendering issue in Chromiummoonstone/ContextualPopupDecorator
layout in large text mode in RTL localesmoonstone/DatePicker
,moonstone/DayPicker
,moonstone/ExpandableList
, andmoonstone/TimePicker
disabled opacity in high contrast modemoonstone/DaySelector
item text size in large-text modemoonstone/Dropdown
button to not animatemoonstone/Dropdown
children
propType so it supports the same format asui/Group
(an array of strings or an array of objects with props)moonstone/Dropdown
performance when using many optionsmoonstone/Dropdown
popup scroller arrows showing in non-latin locales and added large-text mode supportmoonstone/Dropdown
remaining open after it becomesdisabled
moonstone/Dropdown
to scroll to and focus the selected item when openedmoonstone/Dropdown
to support voice readoutmoonstone/EditableIntegerPicker
to properly rerender when the edited value is invalidmoonstone/ExpandableItem.ExpandableItemBase
to not error ifonClose
oronOpen
was not suppliedmoonstone/FormCheckbox
,moonstone/Input
,moonstone/ProgressBar
,moonstone/RadioItem
,moonstone/SwitchItem
, andmoonstone/Tooltip
light skin colors.moonstone/FormCheckboxItem
so it doesn't change size between normal and large text modemoonstone/FormCheckboxItem
to marquee its contentsmoonstone/FormCheckboxItem
to match the designsmoonstone/GridListImageItem
to support overriding theimage
CSS class namemoonstone/Header
input highlight positioningmoonstone/Heading
to have a bit more space between the text and the line, when the line is presentmoonstone/IncrementSlider
to support aria-label when disabledmoonstone/Input
caret color to match the designs (black bar on white background, white bar on black background, standard inversion)moonstone/Input
text color when focused and disabledmoonstone/Item
height in non-latin localesmoonstone/LabeledItem
to not clip the bottom of descender glyphs in large text modemoonstone/LabeledItem
to passmarqueeOn
prop to its contentsmoonstone/MediaOverlay
to not mute media playbackmoonstone/Panels
animation performance issues on low powered hardwaremoonstone/Panels
to allow 5-way navigation to components withincontrols
when used with aHeader
withheaderInput
moonstone/Panels
to treat all components withincontrols
as part of the active panel for the purposes of accessibilitymoonstone/Panels.Header
to use the latest designs with better spacing between the titles belowmoonstone/Panels.Header
withInput
to not have a distracting white background colormoonstone/Picker
accessibility read out when a button becomes disabledmoonstone/Picker
to avoid overlapping items on rendermoonstone/Popup
to properly handle closing in mid-transitionmoonstone/ProgressBar
fill color whenhighlighted
is setmoonstone/ProgressBar
,moonstone/Slider
, andmoonstone/IncrementSlider
to use the latest set of design colorsmoonstone/RadioItem
andmoonstone/SelectableItem
icon size in large-text modemoonstone/RadioItem
to have a much prettier dot in dark and light skinsmoonstone/Scroller
and other scrolling components to properly scroll via remote page up/down buttons when nested within another scrolling componentmoonstone/Scroller
to correctly handle horizontally scrolling focused elements into view when using adirection
value of'both'
moonstone/Scroller
to not jump to the top when right key is pressed in the right most item of a vertical scrollermoonstone/Scroller
to not scroll horizontally via 5-way down in horizontal scrollermoonstone/Scroller
to properly move focus out of the containermoonstone/Scroller
to scroll and to move focus to the paging control properly if the current item sticking to the top is only spottablemoonstone/Scroller
,moonstone/VirtualList.VirtualGridList
, andmoonstone/VirtualList.VirtualList
to scroll via a page up or down key when focus is on any vertical paging control while in pointer modemoonstone/Scroller
,moonstone/VirtualList.VirtualGridList
, andmoonstone/VirtualList.VirtualList
to correctly set focus after scrolling by page up/down keysmoonstone/Scroller
,moonstone/VirtualList.VirtualGridList
, andmoonstone/VirtualList.VirtualList
not to scroll too far by page up/down keysmoonstone/Scroller
,moonstone/VirtualList.VirtualGridList
, andmoonstone/VirtualList.VirtualList
not to scroll via a page up or down key when focus is on any horizontal paging controlmoonstone/Skinnable
TypeScript signaturemoonstone/Slider
progress bar fill color when focused withnoFill
setmoonstone/Spinner
to use the latest designsmoonstone/Tooltip
arrow gapmoonstone/Tooltip
layer order so it doesn't interfere with other positioned elements, likeContextualPopup
moonstone/VideoPlayer
feedback tooltip to overlap in non-latin localemoonstone/VideoPlayer
more button tooltip to not clip or reverse text in RTL localesmoonstone/VideoPlayer
to have correct jump forward/backward iconmoonstone/VideoPlayer
to have correct sized control buttonsmoonstone/VideoPlayer
to hide scrim for high contrast if bottom controls are hiddenmoonstone/VirtualList
to allow keydown events to bubble up when not handled by the componentmoonstone/VirtualList
to restore focus to an item when scrollbars are visiblemoonstone/VirtualList
to scroll to the focused item when navigating out of the viewport via 5-waymoonstone/VirtualList.VirtualGridList
andmoonstone/VirtualList.VirtualList
to correctly scroll to a selected component when focused via 5waymoonstone/VirtualList.VirtualGridList
andmoonstone/VirtualList.VirtualList
to focus an item properly after an updatemoonstone/VirtualList.VirtualGridList
andmoonstone/VirtualList.VirtualList
to navigate items properly in RTL languagesmoonstone/VirtualList.VirtualGridList
andmoonstone/VirtualList.VirtualList
to properly navigate from paging controls to controls out of the listmoonstone/VirtualList.VirtualGridList
andmoonstone/VirtualList.VirtualList
to properly respond to 5way directional key pressesmoonstone/VirtualList.VirtualGridList
andmoonstone/VirtualList.VirtualList
to render the first item properly when thedataSize
prop is updated and the function as a parameter of thecbScrollTo
prop is calledsampler
to limit the fields included in the Actions tab to improve serialization performance on low-powered hardwarespotlight
to attempt to restore focus through ancestor containers when the pointer hidesspotlight
to attempt to restore focus to an element nearest the pointer position when the pointer hides within an overflow containerspotlight
TypeScript signaturesspotlight/SpotlightContainerDecorator
to correctly forwardonFocusCapture
andonBlurCapture
eventsui/Icon
to support arbitrary icon name strings, like in material iconsui/Measurable
to remeasure after a re-layout so the measurement value is always correctui/ProgressBar
public class namebar
to support customizing the background of the barui/Scroller
TypeScript signaturesui/Scroller
,ui/VirtualList.VirtualGridList
, andui/VirtualList.VirtualList
not to scroll by wheel at the same time when multiple lists/scrollers are nestedui/Scroller
,ui/VirtualList.VirtualGridList
, andui/VirtualList.VirtualList
to handle mouse down events on scrollbarsui/styles/mixins.less
mixins:.buildLocaleFont
,.buildLocaleFonts
,.buildFontFace
to properly support font-weight ranges, font-weight default values, and font-stretch valuesui/ToggleItem
to send itsvalue
prop when toggledui/ViewManager
to correctly arrange views when initially rendering a non-zero indexui/VirtualList.VirtualGridList
andui/VirtualList.VirtualList
to applywill-change
CSS property to the proper nodeui/VirtualList.VirtualGridList
andui/VirtualList.VirtualList
to retain the proper scroll position when updating theitemSize
orspacing
propswebos/LS2Request
to automatically prefixluna://
service protocol when absentwebos/LS2Request
to return an error for a null response from a service