@enact/spotlight
Advanced tools
Changelog
[1.4.1] - 2017-07-05
moonstone/Popup
to only call onKeyDown
when there is a focused item in the Popup
moonstone/Scroller
, moonstone/Picker
, and moonstone/IncrementSlider
to automatically move focus when the currently focused moonstone/IconButton
becomes disabledspotlight/Spottable
to remove focus from a component when it becomes disabled and move it to another component if not explicitly moved during the onSpotlightDisappear
event callbackmoonstone/ContextualPopupDecorator
close button to account for large text sizemoonstone/ContextualPopupDecorator
to not spot controls other than its activator when navigating out via 5-waymoonstone/Panels.Header
to set the value of marqueeOn
for all types of headersChangelog
[1.4.0] - 2017-06-29
moonstone/Input
prop noDecorator
is being replaced by autoFocus
in 2.0.0moonstone/styles/text.less
mixin .locale-japanese-line-break()
to apply the correct Japanese language line-break rules for the following multi-line components: moonstone/BodyText
, moonstone/Dialog
, moonstone/Notification
, moonstone/Popup
, and moonstone/Tooltip
moonstone/ContextualPopupDecorator
property popupProps
to attach props to popup componentmoonstone/VideoPlayer
property pauseAtEnd
to control forward/backward seekingspotlight
handlers for window focus eventsmoonstone/Panels/Header
prop marqueeOn
to control marquee of headermoonstone/Panels/Header
to expose its marqueeOn
propmoonstone/VideoPlayer
to automatically adjust the width of the allocated space for the side components so the media controls have more space to appear on smaller screensmoonstone/VideoPlayer
properties autoCloseTimeout
and titleHideDelay
default value to 5000
moonstone/VirtualList
to support restoring focus to the last focused itemmoonstone/Scrollable
to call onScrollStop
before unmounting if a scroll is in progressmoonstone/Scroller
to reveal non-spottable content when navigating out of a scrollermoonstone/Dialog
to properly focus via pointer on child componentsmoonstone/VirtualList
, moonstone/VirtualGridList
, and moonstone/Scroller
not to be slower when scrolled to the first or the last position by wheelingmoonstone
component hold delay timemoonstone/VideoPlayer
to show its controls when pressing down the first timemoonstone/Panel
autoFocus logic to only focus on initial rendermoonstone/Input
text colorsmoonstone/ExpandableInput
to focus its decorator when leaving by 5-way left/rightspotlight
navigation through spottable components while holding down a directional keyspotlight
support for preventing 5-way navigation out of a container using an empty selectorspotlight
container support for default elements within subcontainersChangelog
[1.3.1] - 2017-06-14
moonstone/Picker
support for large textmoonstone/Scroller
support for focusing paging controls with the pointermoonstone
CSS rules for unskinned spottable componentsspotlight
incorrectly focusing components within spotlight containers with data-container-disabled
set to false
spotlight
failing to focus the default element configured for a containerChangelog
[1.3.0] - 2017-06-12
moonstone/Scroller
props horizontal
and vertical
. Deprecated props are replaced with direction
prop. horizontal
and vertical
will be removed in 2.0.0.moonstone/Panel
prop noAutoFocus
in favor of autoFocus="none"
core/platform
to support platform detection across multiple browsersmoonstone/Image
support for children
prop inside imagesmoonstone/Scroller
prop direction
which replaces horizontal
and vertical
propsmoonstone/VideoPlayer
property tooltipHideDelay
to hide tooltip with a given amount of timemoonstone/VideoPlayer
methods fastForward
, getMediaState
, jump
, pause
, play
, rewind
, and seek
to allow external interaction with the player. See docs for example usage.spotlight/styles/mixins.less
mixins which allow state-selector-rules (muted, spottable, focus, disabled) to be applied to the parent instead of the component's self. This provides much more flexibility without extra mixins to memorize.ui/ViewManager
prop childProps
to pass static props to each childmoonstone/Skinnable
to support context and allow it to be added to any component to be individually skinned. This includes a further optimization in skinning which consolidates all color assignments into a single block, so non-color rules aren't unnecessarily duplicated.moonstone/Skinnable
light and dark skin names ("moonstone-light" and "moonstone") to "light" and "dark", respectivelymoonstone/VideoPlayer
to set play/pause icon to display "play" when rewinding or fast forwardingmoonstone/VideoPlayer
to rewind or fast forward when previous command is slow-forward or slow-rewind respectivelymoonstone/VideoPlayer
to fast forward when previous command is slow-forward and it reaches the last of its play ratemoonstone/VideoPlayer
to not play video on reload when noAutoPlay
is true
moonstone/VideoPlayer
property feedbackHideDelay
's default value to 3000
moonstone/Notification
to break line in characters in ja and zh localemoonstone/Notification
to align texts left in LTR locale and right in RTL localemoonstone/VideoPlayer
to simulate rewind functionality on non-webOS platforms onlyspotlight
submodules to significantly improve testabilitymoonstone/ExpandableItem
to correct the titleIcon
when using open
and disabled
moonstone/GridListImageItem
to center its selection icon on the image instead of the itemmoonstone/Input
to have correct Tooltip
position in RTL
moonstone/SwitchItem
to not unintentionally overflow Scroller
containers, causing them to jump to the side when focusingmoonstone/VideoPlayer
to fast forward properly when video is at paused statemoonstone/VideoPlayer
to correctly change sourcesmoonstone/VideoPlayer
to show or hide feedback tooltip properlymoonstone/DateTimeDecorator
to work properly with RadioControllerDecorator
moonstone/Picker
in joined, large text mode so the arrows are properly aligned and sizedmoonstone/Icon
to reflect the same proportion in relation to its size in large-text modespotlight
submodules to significantly improve testabilityui/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 orderChangelog
[1.2.1] - 2017-05-25
moonstone/MoonstoneDecorator
fontGenerator
invalidly using console
Changelog
[1.2.0] - 2017-05-17
moonstone/Scroller.Scrollable
option indexToFocus
in scrollTo
method to be removed in 2.0.0spotlight/SpotlightRootDecorator.spotlightRootContainerName
to be removed in 2.0.0core/handle.oneOf
to support branching event handlersmoonstone/Slider
and moonstone/IncrementSlider
prop noFill
to support a style without the fillmoonstone/Marquee
property rtl
to set directionality to right-to-leftmoonstone/VirtualList.GridListImageItem
property selectionOverlay
to add custom component for selection overlaymoonstone/MoonstoneDecorator
property skin
to let an app choose its skin: "moonstone" and "moonstone-light" are now availablemoonstone/FormCheckboxItem
moonstone/FormCheckbox
, a standalone checkbox, to support moonstone/FormCheckboxItem
moonstone/Input
props invalid
and invalidMessage
to display a tooltip when input value is invalidmoonstone/Scroller.Scrollable
option focus
in scrollTo()
methodmoonstone/Scroller.Scrollable
property spottableScrollbar
moonstone/Icon.IconList
icons: arrowshrinkleft
and arrowshrinkright
spotlight/styles/mixins.less
which includes several mixins (.focus
, .disabled
, .muted
, and .mutedFocus
) to make it a little easier to target specific spotlight statesui/transition
callback prop onShow
that fires when transitioning into view completesmoonstone/Picker
arrow icon for joined
picker: small when not spotted, hidden when it reaches the end of the pickermoonstone/Checkbox
and moonstone/CheckboxItem
to reflect the latest designmoonstone/MoonstoneDecorator/fontGenerator
was refactored to use the browser's FontFace API to dynamically load locale fontsmoonstone/VideoPlayer
space allotment on both sides of the playback controls to support 4 buttons; consequently the "more" controls area has shrunk by the same amountmoonstone/VideoPlayer
to not disable media button (play/pause)moonstone/Scroller.Scrollable
so that paging controls are not spottable by default with 5-waymoonstone/VideoPlayer
's more/less button to use updated arrow iconspotlight/SpotlightContainerDecorator
config property, enterTo
, default value to be null
rather than 'last-focused'
spotlight
container handling to address known issues and improve testabilityui/View
to prevent re-renders on views leaving the ViewManager
moonstone/MarqueeDecorator
to properly stop marquee on items with 'marqueeOnHover'
moonstone/ExpandableList
to work properly with object-based childrenmoonstone/styles/fonts.less
to restore the Moonstone Icon font to request the local system font by default. Remember to update your webOS build to get the latest version of the font so you don't see empty boxes for your icons.moonstone/Picker
and moonstone/RangePicker
to now use the correct size from Enyo (60px v.s. 84px) for icon buttonsmoonstone/Scrollable
to apply ri.scale properlymoonstone/Panel
to not cover a Panels
's ApplicationCloseButton
when not using a Header
moonstone/IncrementSlider
to show tooltip when buttons focusedChangelog
[1.1.0] - 2017-04-21
Note: We have updated Enact to support React 15.5. This version of React has deprecated accessing PropTypes from the
react
import. Existing apps should update to import from theprop-types
module.enact-dev
has also been updated to the new release.
moonstone/ExpandableInput
property onInputChange
core/util
documentationi18n/Uppercase
prop casing
to control how the component should be uppercasedi18n/util
methods toCapitalized
and toWordCase
to locale-aware uppercase stringsmoonstone/Panels.Panel
prop and moonstone/MoonstoneDecorator
config option: noAutoFocus
to support prevention of setting automatic focus after rendermoonstone/VideoPlayer
props: backwardIcon
, forwardIcon
, jumpBackwardIcon
, jumpForwardIcon
, pauseIcon
, and playIcon
to support icon customization of the playermoonstone/VideoPlayer
props jumpButtonsDisabled
and rateButtonsDisabled
for disabling the pairs of buttons when it's inappropriate for the playing mediamoonstone/VideoPlayer
property playbackRateHash
to support custom playback ratesmoonstone/VideoPlayer
callback prop onControlsAvailable
which fires when the players controls show or hidemoonstone/Image
support for onLoad
and onError
eventsmoonstone/VirtualList.GridListImageItem
prop placeholder
moonstone/Divider
property preserveCase
to display text without capitalizing itspotlight/SpotlightRootDecorator
config option: noAutoFocus
to support prevention of setting automatic focus after renderspotlight/Spotlight
method getSpottableDescendants()
moonstone/Slider
colors and sizing to match the latest designsmoonstone/ProgressBar
to position correctly with other components nearbymoonstone/Panels
breadcrumb to no longer have a horizontal line above itmoonstone/Transition
to measure itself when the CPU is idlemoonstone/Button
colors for transparent and translucent background opacity when disabledmoonstone/ExpandableInput
property onInputChange
to fire along with onChange
. onInputChange
is deprecated and will be removed in a future update.Moonstone.ttf
font to include new iconsmoonstone/Icon
to reference additional iconsspotlight/SpotlightContainerDecorator
to have no default for spotlightRestrict
ui/Slottable
to support slot-candidate tags that have multiple props, which are now forwarded directly instead of just their childrencore/util.childrenEquals
to work with mixed components and textmoonstone/Popup
and moonstone/ContextualPopupDecorator
5-way navigation behaviormoonstone/Input
to not spot its own input decorator on 5-way outmoonstone/VideoPlayer
to no longer render its children
in multiple placesmoonstone/Button
text color when used on a neutral (light) background in some casesmoonstone/Popup
background opacitymoonstone/Marquee
to recalculate properly when its contents changemoonstone/TimePicker
to display time in correct ordermoonstone/Scroller
to prefer spotlight navigation to its internal componentsspotlight/Spotlight
to consider nested containers when adjusting focusui/Cancelable
to run modal handlers in the right orderChangelog
[1.0.0] - 2017-03-31
NOTE: This version includes a breaking change to the way modules are organized. This change was necessary to prevent further API breakage following the 1.0.0 release and to facilitate changes we want to make in the future. We understand that this will require some work on the part of developers to update their code. Below you will find details about the changes:
Moved/renamed modules:
core/jobs
->core/util/Job
core/Accelerator
->spotlight/Accelerator
i18n.$L
->i18n/$L
i18n.toIString
->i18n/$L.toIString
spotlight.Spottable
->spotlight/Spottable
spotlight.spottableClass
->spotlight/Spottable.spottableClass
spotlight.SpotlightContainerDecorator
->spotlight/SpotlightContainerDecorator
spotlight.spotlightDefaultClass
->spotlight/SpotlightContainerDecorator.spotlightDefaultClass
spotlight.SpotlightRootDecorator
->spotlight/SpotlightRootDecorator
Removed modules:
core/selection
core/fetch
ui/validators
Removed aliases:
core.hoc
- Usecore/hoc
core.kind
- Usecore/kind
We have also modified most form components to be usable in a controlled (app manages component state) or uncontrolled (Enact manages component state) manner. To put a component into a controlled state, pass in
value
(or other appropriate state property such asselected
oropen
) at component creation and then respond to events and update the value as needed. To put a component into an uncontrolled state, do not setvalue
(or equivalent), at creation. From this point on, Enact will manage the state and events will be sent when the state is updated. To specify an initial value, use thedefaultValue
(or,defaultSelected,
defaultOpen, etc.) property. See the documentation for individual components for more information.Additionally, we no longer export a
version
with the root import. If you need a version number, import frompackage.json
instead.
moonstone/Button
property icon
to support a built-in icon next to the text content. The Icon supports everything that moonstone/Icon
supports, as well as a custom icon.moonstone/MoonstoneDecorator
property textSize
to resize several components to requested CMR sizes. Simply add textSize="large"
to your App
and the new sizes will automatically take effect.ui/Placeholder
module with PlaceholderControllerDecorator
and PlaceholderDecorator
HOCs which facilitate rendering placeholder components until the wrapped component would scroll into the viewporti18n
iLib dependency to 20151019-build-12.0-002-04moonstone/Slider
to use the property tooltip
instead of noTooltip
, so the built-in tooltip is not enabled by defaultmoonstone/IncrementSlider
to include tooltip documentationmoonstone/ExpandableList
to accept an array of objects as children which are spread onto the generated componentsmoonstone/CheckboxItem
style to match the latest designs, with support for the moonstone/Checkbox
to be on either the left or the right side by using the iconPosition
propertymoonstone/VideoPlayer
to supply every event callback-method with an object representing the VideoPlayer's current state, including: currentTime
, duration
, paused
, proportionLoaded
, and proportionPlayed
ui/Repeater
to accept an array of objects as children which are spread onto the generated componentsmoonstone/Panels.Panel
behavior for remembering focus on unmount and setting focus after rendermoonstone/VirtualList.VirtualGridList
showing empty items when items are continuously added dynamicallymoonstone/Picker
to marquee on focus once againspotlight/Spotlight
set()
to properly update the container configspotlight/Spotlight
to properly save the last-focused element for nested containersChangelog
[1.0.0-beta.4] - 2017-03-10
core/kind
support for contextTypes
core/utils
function extractAriaProps()
for redirecting ARIA props when the root node of a component isn't focusablemoonstone/VirtualList
indexToFocus
option to scrollTo
method to focus on item with specified indexmoonstone/IconButton
and moonstone/Button
color
property to add a remote control key color to the buttonmoonstone/Scrollbar
property disabled
to disable both paging controls when it is truemoonstone/VirtualList
parameter moreInfo
to pass firstVisibleIndex
and lastVisibleIndex
when scroll events are firingmoonstone/VideoPlayer
property onUMSMediaInfo
to support the custom webOS “umsmediainfo” eventmoonstone/Region
component which encourages wrapping components for improved accessibility rather than only preceding the components with a moonstone/Divider
moonstone/Slider
tooltip. It's enabled by default and comes with options like noTooltip
, tooltipAsPercent
, and tooltipSide
. See the component docs for more details.moonstone/Spinner
properties blockClickOn
and scrim
to block click events behind spinnerui/A11yDecorator
to facilitate adding pre/post hints to componentsui/AnnounceDecorator
to facilitate announcing actions for accessibilitywebos/pmloglib
logging method perfLog
which calls PmLogInfoWithClock
core/handle
to allow binding to components. This also introduces a breaking change in the return value of handle methods.moonstone/VirtualGridImageItem
styles to reduce redundant style code app sidemoonstone/VirtualList
and moonstone/VirtualGridList
to add essential CSS for list items automaticallymoonstone/VirtualList
and moonstone/VirtualGridList
to not add data-index
to their item DOM elements directly, but to pass data-index
as the parameter of their component
prop like the key
parameter of their component
propmoonstone/ExpandableItem
and derivatives to defer focusing the contents until animation completesmoonstone/LabeledItem
, moonstone/ExpandableItem
, moonstone/ExpandableList
to each support the node
type in their label
property. Best used with ui/Slottable
.spotlight.Spottable
to prevent emulating mouse events for repeated key eventsmoonstone/VirtualList.GridListImageItem
to have proper padding size according to the existence of caption/subcaptionmoonstone/Scrollable
to display scrollbars with proper sizemoonstone/VirtualGridList
to not be truncatedwebos/LS2Request
to return failure in isomorphic mode