@enact/limestone 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/PULL_REQUEST_TEMPLATE.md +28 -0
- package/.github/workflows/update-copyright-years.yml +25 -0
- package/.travis.yml +40 -0
- package/ActionGuide/ActionGuide.d.ts +73 -0
- package/ActionGuide/ActionGuide.js +164 -0
- package/ActionGuide/ActionGuide.module.css +73 -0
- package/ActionGuide/package.json +3 -0
- package/ActionGuide/tests/ActionGuide-specs.js +51 -0
- package/Alert/Alert.d.ts +155 -0
- package/Alert/Alert.js +313 -0
- package/Alert/Alert.module.css +190 -0
- package/Alert/AlertImage.js +102 -0
- package/Alert/AlertImage.module.css +15 -0
- package/Alert/package.json +3 -0
- package/Alert/tests/Alert-specs.js +204 -0
- package/BodyText/BodyText.d.ts +74 -0
- package/BodyText/BodyText.js +170 -0
- package/BodyText/BodyText.module.css +95 -0
- package/BodyText/package.json +3 -0
- package/BodyText/tests/BodyText-specs.js +55 -0
- package/Button/Button.d.ts +131 -0
- package/Button/Button.js +351 -0
- package/Button/Button.module.css +2518 -0
- package/Button/package.json +3 -0
- package/Button/tests/Button-specs.js +252 -0
- package/CHANGELOG.md +170 -0
- package/Card/Card.d.ts +138 -0
- package/Card/Card.js +396 -0
- package/Card/Card.module.css +1296 -0
- package/Card/package.json +3 -0
- package/Card/tests/Card-specs.js +65 -0
- package/Checkbox/Checkbox.d.ts +99 -0
- package/Checkbox/Checkbox.js +222 -0
- package/Checkbox/Checkbox.module.css +1395 -0
- package/Checkbox/package.json +3 -0
- package/Checkbox/tests/Checkbox-specs.js +79 -0
- package/CheckboxItem/CheckboxItem.d.ts +99 -0
- package/CheckboxItem/CheckboxItem.js +210 -0
- package/CheckboxItem/CheckboxItem.module.css +50 -0
- package/CheckboxItem/package.json +3 -0
- package/CheckboxItem/tests/CheckboxItem-specs.js +52 -0
- package/Chips/Chip.js +252 -0
- package/Chips/Chip.module.css +30 -0
- package/Chips/Chips.js +215 -0
- package/Chips/Chips.module.css +8 -0
- package/Chips/index.js +86 -0
- package/Chips/tests/Chip-specs.js +186 -0
- package/Chips/tests/Chips-specs.js +312 -0
- package/ColorPicker/ColorPicker.js +416 -0
- package/ColorPicker/ColorPicker.module.css +78 -0
- package/ColorPicker/package.json +3 -0
- package/ColorPicker/tests/ColorPicker-specs.js +225 -0
- package/ColorPicker/utils.js +135 -0
- package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +106 -0
- package/ContextualMenuDecorator/ContextualMenuDecorator.js +264 -0
- package/ContextualMenuDecorator/ContextualMenuDecorator.module.css +42 -0
- package/ContextualMenuDecorator/package.json +3 -0
- package/ContextualMenuDecorator/tests/ContextualMenuDecorator-specs.js +136 -0
- package/ContextualPopupDecorator/ContextualPopup.js +200 -0
- package/ContextualPopupDecorator/ContextualPopup.module.css +270 -0
- package/ContextualPopupDecorator/ContextualPopupDecorator.d.ts +182 -0
- package/ContextualPopupDecorator/ContextualPopupDecorator.js +867 -0
- package/ContextualPopupDecorator/ContextualPopupDecorator.module.css +3 -0
- package/ContextualPopupDecorator/HolePunchScrim.js +69 -0
- package/ContextualPopupDecorator/HolePunchScrim.module.css +38 -0
- package/ContextualPopupDecorator/package.json +3 -0
- package/ContextualPopupDecorator/tests/ContextualPopupDecorator-specs.js +621 -0
- package/DatePicker/DatePicker.d.ts +173 -0
- package/DatePicker/DatePicker.js +175 -0
- package/DatePicker/DatePicker.module.css +5 -0
- package/DatePicker/DatePickerBase.js +348 -0
- package/DatePicker/package.json +3 -0
- package/DatePicker/tests/DatePicker-specs.js +247 -0
- package/DayPicker/DayPicker.d.ts +92 -0
- package/DayPicker/DayPicker.js +188 -0
- package/DayPicker/DayPicker.module.css +35 -0
- package/DayPicker/DaySelectorDecorator.js +301 -0
- package/DayPicker/package.json +3 -0
- package/DayPicker/tests/DayPicker-specs.js +138 -0
- package/Dropdown/Dropdown.d.ts +135 -0
- package/Dropdown/Dropdown.js +460 -0
- package/Dropdown/Dropdown.module.css +160 -0
- package/Dropdown/DropdownList.js +360 -0
- package/Dropdown/package.json +3 -0
- package/Dropdown/tests/Dropdown-specs.js +267 -0
- package/FixedPopupPanels/FixedPopupPanels.d.ts +72 -0
- package/FixedPopupPanels/FixedPopupPanels.js +170 -0
- package/FixedPopupPanels/FixedPopupPanels.module.css +146 -0
- package/FixedPopupPanels/package.json +3 -0
- package/FixedPopupPanels/tests/FixedPopupPanels-specs.js +142 -0
- package/FlexiblePopupPanels/FlexiblePopupPanels.js +177 -0
- package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +291 -0
- package/FlexiblePopupPanels/Header.js +110 -0
- package/FlexiblePopupPanels/Panel.js +256 -0
- package/FlexiblePopupPanels/index.d.ts +145 -0
- package/FlexiblePopupPanels/index.js +68 -0
- package/FlexiblePopupPanels/package.json +3 -0
- package/FlexiblePopupPanels/tests/FlexiblePopupPanels-specs.js +305 -0
- package/FlexiblePopupPanels/useNavButtonFocus.js +65 -0
- package/FormCheckboxItem/FormCheckboxItem.d.ts +87 -0
- package/FormCheckboxItem/FormCheckboxItem.js +200 -0
- package/FormCheckboxItem/FormCheckboxItem.module.css +374 -0
- package/FormCheckboxItem/package.json +3 -0
- package/FormCheckboxItem/tests/FormCheckboxItem-specs.js +164 -0
- package/Heading/Heading.d.ts +104 -0
- package/Heading/Heading.js +203 -0
- package/Heading/Heading.module.css +217 -0
- package/Heading/package.json +3 -0
- package/Heading/tests/Heading-specs.js +57 -0
- package/Icon/Icon.d.ts +377 -0
- package/Icon/Icon.js +503 -0
- package/Icon/Icon.module.css +121 -0
- package/Icon/IconList.js +611 -0
- package/Icon/package.json +3 -0
- package/Icon/tests/Icon-specs.js +131 -0
- package/IconItem/IconItem.d.ts +137 -0
- package/IconItem/IconItem.js +360 -0
- package/IconItem/IconItem.module.css +414 -0
- package/IconItem/package.json +3 -0
- package/IconItem/tests/IconItem-specs.js +106 -0
- package/Image/Image.d.ts +60 -0
- package/Image/Image.js +165 -0
- package/Image/Image.module.css +5 -0
- package/Image/package.json +3 -0
- package/Image/tests/Image-specs.js +62 -0
- package/ImageItem/ImageItem.d.ts +134 -0
- package/ImageItem/ImageItem.js +377 -0
- package/ImageItem/ImageItem.module.css +1079 -0
- package/ImageItem/package.json +3 -0
- package/ImageItem/tests/ImageItem-specs.js +223 -0
- package/Input/Input.js +715 -0
- package/Input/Input.module.css +699 -0
- package/Input/InputField.js +487 -0
- package/Input/InputField.module.css +763 -0
- package/Input/InputFieldDecoratorIcon.js +66 -0
- package/Input/InputFieldSpotlightDecorator.js +380 -0
- package/Input/Keypad.js +111 -0
- package/Input/NumberField.js +311 -0
- package/Input/index.d.ts +423 -0
- package/Input/index.js +87 -0
- package/Input/package.json +3 -0
- package/Input/pointer.js +103 -0
- package/Input/tests/Input-specs.js +537 -0
- package/Input/tests/InputField-specs.js +292 -0
- package/Input/tests/InputPopup-specs.js +56 -0
- package/Input/util.js +130 -0
- package/Item/Item.d.ts +108 -0
- package/Item/Item.js +360 -0
- package/Item/Item.module.css +665 -0
- package/Item/package.json +3 -0
- package/Item/tests/Item-specs.js +108 -0
- package/KeyGuide/KeyGuide.d.ts +103 -0
- package/KeyGuide/KeyGuide.js +254 -0
- package/KeyGuide/KeyGuide.module.css +431 -0
- package/KeyGuide/package.json +3 -0
- package/KeyGuide/tests/KeyGuide-specs.js +168 -0
- package/LICENSE +201 -0
- package/Marquee/Marquee.d.ts +42 -0
- package/Marquee/Marquee.js +45 -0
- package/Marquee/package.json +3 -0
- package/MediaOverlay/MediaOverlay.d.ts +134 -0
- package/MediaOverlay/MediaOverlay.js +304 -0
- package/MediaOverlay/MediaOverlay.module.css +292 -0
- package/MediaOverlay/package.json +3 -0
- package/MediaOverlay/tests/MediaOverlay-specs.js +127 -0
- package/MediaPlayer/MediaControls.js +934 -0
- package/MediaPlayer/MediaControls.module.css +86 -0
- package/MediaPlayer/MediaKnob.js +61 -0
- package/MediaPlayer/MediaSlider.js +131 -0
- package/MediaPlayer/MediaSlider.module.css +319 -0
- package/MediaPlayer/MediaSliderDecorator.js +245 -0
- package/MediaPlayer/Times.js +152 -0
- package/MediaPlayer/Times.module.css +34 -0
- package/MediaPlayer/index.d.ts +223 -0
- package/MediaPlayer/index.js +34 -0
- package/MediaPlayer/package.json +3 -0
- package/MediaPlayer/tests/MediaSlider-specs.js +126 -0
- package/MediaPlayer/tests/util-specs.js +114 -0
- package/MediaPlayer/util.js +83 -0
- package/PageViews/Page.js +77 -0
- package/PageViews/Page.module.css +3 -0
- package/PageViews/PageViews.js +440 -0
- package/PageViews/PageViews.module.css +175 -0
- package/PageViews/PageViewsRouter.js +150 -0
- package/PageViews/index.js +45 -0
- package/PageViews/tests/PageViews-specs.js +192 -0
- package/Panels/Header.js +599 -0
- package/Panels/Header.module.css +243 -0
- package/Panels/Panel.js +347 -0
- package/Panels/Panel.module.css +33 -0
- package/Panels/Panels.js +258 -0
- package/Panels/Panels.module.css +12 -0
- package/Panels/index.d.ts +376 -0
- package/Panels/index.js +66 -0
- package/Panels/package.json +3 -0
- package/Panels/tests/Header-specs.js +146 -0
- package/Panels/tests/Panels-specs.js +257 -0
- package/Picker/Picker.d.ts +193 -0
- package/Picker/Picker.js +389 -0
- package/Picker/Picker.module.css +46 -0
- package/Picker/package.json +3 -0
- package/Picker/tests/Picker-specs.js +91 -0
- package/Popup/Popup.d.ts +169 -0
- package/Popup/Popup.js +690 -0
- package/Popup/Popup.module.css +180 -0
- package/Popup/package.json +3 -0
- package/Popup/tests/Popup-specs.js +475 -0
- package/PopupTabLayout/PopupTabLayout.d.ts +196 -0
- package/PopupTabLayout/PopupTabLayout.js +605 -0
- package/PopupTabLayout/PopupTabLayout.module.css +226 -0
- package/PopupTabLayout/package.json +3 -0
- package/PopupTabLayout/tests/PopupTabLayout-specs.js +285 -0
- package/ProgressBar/ProgressBar.d.ts +171 -0
- package/ProgressBar/ProgressBar.js +223 -0
- package/ProgressBar/ProgressBar.module.css +264 -0
- package/ProgressBar/ProgressBarTooltip.js +359 -0
- package/ProgressBar/ProgressBarTooltip.module.css +86 -0
- package/ProgressBar/package.json +3 -0
- package/ProgressBar/tests/ProgressBar-specs.js +400 -0
- package/ProgressButton/ProgressButton.d.ts +57 -0
- package/ProgressButton/ProgressButton.js +143 -0
- package/ProgressButton/ProgressButton.module.css +147 -0
- package/ProgressButton/package.json +3 -0
- package/ProgressButton/tests/ProgressButton-specs.js +71 -0
- package/QuickGuidePanels/Panel.js +90 -0
- package/QuickGuidePanels/QuickGuidePanels.js +463 -0
- package/QuickGuidePanels/QuickGuidePanels.module.css +26 -0
- package/QuickGuidePanels/index.js +52 -0
- package/QuickGuidePanels/tests/QuickGuidePanels-specs.js +250 -0
- package/README.md +59 -0
- package/RadioItem/RadioItem.d.ts +59 -0
- package/RadioItem/RadioItem.js +146 -0
- package/RadioItem/RadioItem.module.css +233 -0
- package/RadioItem/package.json +3 -0
- package/RadioItem/tests/RadioItem-specs.js +62 -0
- package/RangePicker/RangePicker.d.ts +174 -0
- package/RangePicker/RangePicker.js +372 -0
- package/RangePicker/RangePicker.module.css +55 -0
- package/RangePicker/package.json +3 -0
- package/RangePicker/tests/RangePicker-specs.js +122 -0
- package/Region/Region.d.ts +33 -0
- package/Region/Region.js +91 -0
- package/Region/package.json +3 -0
- package/Region/tests/Region-specs.js +28 -0
- package/Scroller/ContentContainerDecorator.js +24 -0
- package/Scroller/EditableWrapper.js +1036 -0
- package/Scroller/EditableWrapper.module.css +22 -0
- package/Scroller/Scroller.d.ts +270 -0
- package/Scroller/Scroller.js +470 -0
- package/Scroller/Scroller.module.css +41 -0
- package/Scroller/package.json +3 -0
- package/Scroller/tests/ContentContainerDecorator-specs.js +20 -0
- package/Scroller/tests/EditableWrapper-specs.js +133 -0
- package/Scroller/tests/Scroller-specs.js +159 -0
- package/Scroller/useEvent.js +39 -0
- package/Scroller/useThemeScroller.js +410 -0
- package/Skinnable/Skinnable.d.ts +27 -0
- package/Skinnable/Skinnable.js +65 -0
- package/Skinnable/package.json +3 -0
- package/Slider/Slider.d.ts +218 -0
- package/Slider/Slider.js +441 -0
- package/Slider/Slider.module.css +880 -0
- package/Slider/SliderBehaviorDecorator.js +184 -0
- package/Slider/package.json +3 -0
- package/Slider/tests/Slider-specs.js +573 -0
- package/Slider/utils.js +114 -0
- package/Spinner/Spinner.d.ts +64 -0
- package/Spinner/Spinner.js +254 -0
- package/Spinner/Spinner.module.css +368 -0
- package/Spinner/package.json +3 -0
- package/Spinner/tests/Spinner-specs.js +70 -0
- package/Sprite/Sprite.d.ts +100 -0
- package/Sprite/Sprite.js +345 -0
- package/Sprite/Sprite.module.css +32 -0
- package/Sprite/package.json +3 -0
- package/Sprite/tests/Sprite-specs.js +59 -0
- package/Steps/Steps.d.ts +119 -0
- package/Steps/Steps.js +303 -0
- package/Steps/Steps.module.css +130 -0
- package/Steps/package.json +3 -0
- package/Steps/tests/Steps-specs.js +175 -0
- package/Switch/Switch.d.ts +54 -0
- package/Switch/Switch.js +143 -0
- package/Switch/Switch.module.css +714 -0
- package/Switch/package.json +3 -0
- package/Switch/tests/Switch-specs.js +54 -0
- package/SwitchItem/SwitchItem.d.ts +56 -0
- package/SwitchItem/SwitchItem.js +144 -0
- package/SwitchItem/SwitchItem.module.css +31 -0
- package/SwitchItem/package.json +3 -0
- package/SwitchItem/tests/SwitchItem-specs.js +49 -0
- package/TabLayout/RefocusDecorator.js +142 -0
- package/TabLayout/Tab.js +84 -0
- package/TabLayout/TabGroup.js +377 -0
- package/TabLayout/TabGroup.module.css +280 -0
- package/TabLayout/TabLayout.d.ts +161 -0
- package/TabLayout/TabLayout.js +661 -0
- package/TabLayout/TabLayout.module.css +101 -0
- package/TabLayout/package.json +3 -0
- package/TabLayout/tests/TabGroup-specs.js +214 -0
- package/TabLayout/tests/TabLayout-specs.js +740 -0
- package/ThemeDecorator/AccessibilityDecorator.js +151 -0
- package/ThemeDecorator/I18nFontDecorator.js +33 -0
- package/ThemeDecorator/ThemeDecorator.d.ts +143 -0
- package/ThemeDecorator/ThemeDecorator.js +307 -0
- package/ThemeDecorator/ThemeDecorator.module.css +1250 -0
- package/ThemeDecorator/fontGenerator.js +76 -0
- package/ThemeDecorator/package.json +3 -0
- package/ThemeDecorator/screenTypes.json +10 -0
- package/ThemeDecorator/tests/ThemeDecorator-specs.js +151 -0
- package/TimePicker/TimePicker.d.ts +147 -0
- package/TimePicker/TimePicker.js +255 -0
- package/TimePicker/TimePicker.module.css +61 -0
- package/TimePicker/TimePickerBase.js +396 -0
- package/TimePicker/package.json +3 -0
- package/TimePicker/tests/TimePicker-specs.js +248 -0
- package/TooltipDecorator/Tooltip.js +252 -0
- package/TooltipDecorator/Tooltip.module.css +496 -0
- package/TooltipDecorator/TooltipDecorator.d.ts +229 -0
- package/TooltipDecorator/TooltipDecorator.js +260 -0
- package/TooltipDecorator/TooltipLabel.js +117 -0
- package/TooltipDecorator/package.json +3 -0
- package/TooltipDecorator/tests/TooltipDecorator-specs.js +224 -0
- package/TooltipDecorator/tests/useTooltip-specs.js +266 -0
- package/TooltipDecorator/useTooltip.js +278 -0
- package/TooltipDecorator/util.js +273 -0
- package/VideoPlayer/Feedback.js +110 -0
- package/VideoPlayer/Feedback.module.css +55 -0
- package/VideoPlayer/FeedbackContent.js +99 -0
- package/VideoPlayer/FeedbackIcon.js +67 -0
- package/VideoPlayer/FeedbackIcons.js +76 -0
- package/VideoPlayer/FeedbackTooltip.js +242 -0
- package/VideoPlayer/FeedbackTooltip.module.css +160 -0
- package/VideoPlayer/MediaTitle.js +143 -0
- package/VideoPlayer/MediaTitle.module.css +95 -0
- package/VideoPlayer/Overlay.js +51 -0
- package/VideoPlayer/Video.js +345 -0
- package/VideoPlayer/VideoPlayer.d.ts +582 -0
- package/VideoPlayer/VideoPlayer.js +2116 -0
- package/VideoPlayer/VideoPlayer.module.css +164 -0
- package/VideoPlayer/package.json +3 -0
- package/VideoPlayer/tests/Video-specs.js +235 -0
- package/VideoPlayer/tests/VideoPlayer-specs.js +180 -0
- package/VirtualList/VirtualList.d.ts +411 -0
- package/VirtualList/VirtualList.js +931 -0
- package/VirtualList/VirtualList.module.css +52 -0
- package/VirtualList/package.json +3 -0
- package/VirtualList/tests/VirtualGridList-specs.js +289 -0
- package/VirtualList/tests/VirtualGridList-translate-specs.js +711 -0
- package/VirtualList/tests/VirtualList-specs.js +288 -0
- package/VirtualList/tests/VirtualList-translate-specs.js +704 -0
- package/VirtualList/tests/useEvent-specs.js +172 -0
- package/VirtualList/tests/useEvent-translate-specs.js +309 -0
- package/VirtualList/useEvent.js +324 -0
- package/VirtualList/usePreventScroll.js +31 -0
- package/VirtualList/useSpotlight.js +157 -0
- package/VirtualList/useThemeVirtualList.js +471 -0
- package/VirtualList/useThemeVirtualList.module.css +34 -0
- package/WizardPanels/Panel.js +99 -0
- package/WizardPanels/WizardPanels.js +501 -0
- package/WizardPanels/WizardPanels.module.css +15 -0
- package/WizardPanels/index.d.ts +182 -0
- package/WizardPanels/index.js +50 -0
- package/WizardPanels/package.json +3 -0
- package/WizardPanels/tests/WizardPanels-specs.js +713 -0
- package/codecov.yml +13 -0
- package/fonts/Limestone_Icons.ttf +0 -0
- package/fonts/Miso/LICENSE.txt +75 -0
- package/fonts/Miso/Miso-Bold.ttf +0 -0
- package/fonts/Miso/Miso-Light.ttf +0 -0
- package/fonts/Miso/Miso-Regular.ttf +0 -0
- package/fonts/MuseoSans/LICENSE.txt +75 -0
- package/fonts/MuseoSans/MuseoSans-Black.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-BlackItalic.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Bold.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-BoldItalic.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Light.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Medium.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-MediumItalic.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Thin.ttf +0 -0
- package/index.js +2 -0
- package/internal/$L/$L.d.ts +21 -0
- package/internal/$L/$L.js +97 -0
- package/internal/$L/package.json +3 -0
- package/internal/AsyncRenderChildren/AsyncRenderChildren.js +74 -0
- package/internal/AsyncRenderChildren/package.json +3 -0
- package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +49 -0
- package/internal/DateComponentPicker/DateComponentPicker.js +165 -0
- package/internal/DateComponentPicker/DateComponentPicker.module.css +53 -0
- package/internal/DateComponentPicker/DateComponentRangePicker.js +132 -0
- package/internal/DateComponentPicker/index.js +31 -0
- package/internal/DateComponentPicker/package.json +3 -0
- package/internal/DateTime/DateTime.js +83 -0
- package/internal/DateTime/DateTime.module.css +51 -0
- package/internal/DateTime/DateTimeDecorator.js +268 -0
- package/internal/DateTime/index.js +37 -0
- package/internal/DateTime/package.json +3 -0
- package/internal/DateTime/tests/DateTimeDecorator-specs.js +33 -0
- package/internal/DebounceDecorator/DebounceDecorator.js +125 -0
- package/internal/DebounceDecorator/package.json +3 -0
- package/internal/DebounceDecorator/tests/DebounceDecorator-specs.js +151 -0
- package/internal/Panels/Arrangers.js +248 -0
- package/internal/Panels/CancelDecorator.js +43 -0
- package/internal/Panels/FloatingLayerIdProvider.js +27 -0
- package/internal/Panels/NavigationButton.js +64 -0
- package/internal/Panels/NavigationButton.module.css +69 -0
- package/internal/Panels/PanelsRouter.js +223 -0
- package/internal/Panels/PopupDecorator.js +287 -0
- package/internal/Panels/TransitionDecorator.js +99 -0
- package/internal/Panels/Viewport.js +313 -0
- package/internal/Panels/Viewport.module.css +25 -0
- package/internal/Panels/captureKeys.js +48 -0
- package/internal/Panels/index.js +101 -0
- package/internal/Panels/package.json +3 -0
- package/internal/Panels/useAutoFocus.js +95 -0
- package/internal/Panels/useFocusOnTransition.js +45 -0
- package/internal/Panels/useToggleRole.js +30 -0
- package/internal/Panels/util.js +64 -0
- package/internal/Picker/Picker.js +942 -0
- package/internal/Picker/Picker.module.css +1145 -0
- package/internal/Picker/PickerButton.js +97 -0
- package/internal/Picker/PickerItem.js +38 -0
- package/internal/Picker/SpottablePicker.js +63 -0
- package/internal/Picker/package.json +3 -0
- package/internal/Picker/tests/Picker-specs.js +968 -0
- package/internal/SharedStateDecorator/SharedStateDecorator.js +167 -0
- package/internal/SharedStateDecorator/package.json +3 -0
- package/internal/SharedStateDecorator/tests/SharedStateDecorator-specs.js +277 -0
- package/internal/WindowEventable/WindowEventable.js +114 -0
- package/internal/WindowEventable/package.json +3 -0
- package/internal/util/package.json +3 -0
- package/internal/util/util.js +79 -0
- package/internal/validators/package.json +4 -0
- package/internal/validators/tests/validators-specs.js +80 -0
- package/internal/validators/validators.js +136 -0
- package/package.json +69 -0
- package/resources/ilibmanifest.json +3 -0
- package/styles/color-mixins.less +230 -0
- package/styles/colors-game-green.less +25 -0
- package/styles/colors-game-orange.less +25 -0
- package/styles/colors-game.less +56 -0
- package/styles/colors-highcontrast.less +21 -0
- package/styles/colors.less +435 -0
- package/styles/mixins.less +337 -0
- package/styles/skin.less +54 -0
- package/styles/variables-base.less +32 -0
- package/styles/variables-game.less +25 -0
- package/styles/variables.less +1182 -0
- package/useScroll/HoverToScroll.js +265 -0
- package/useScroll/HoverToScroll.module.css +38 -0
- package/useScroll/OverscrollEffect.module.css +14 -0
- package/useScroll/Scrollbar.js +171 -0
- package/useScroll/Scrollbar.module.css +19 -0
- package/useScroll/ScrollbarPlaceholder.js +64 -0
- package/useScroll/ScrollbarTrack.js +209 -0
- package/useScroll/ScrollbarTrack.module.css +136 -0
- package/useScroll/package.json +3 -0
- package/useScroll/useEvent.js +693 -0
- package/useScroll/useOverscrollEffect.js +105 -0
- package/useScroll/useScroll.js +523 -0
- package/useScroll/useScroll.module.css +49 -0
- package/useScroll/useSpotlight.js +32 -0
- package/useScroll/useThemeScrollContentHandle.js +32 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("@testing-library/jest-dom");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
5
|
+
var _Icon = require("../Icon");
|
|
6
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
7
|
+
describe('Icon Specs', function () {
|
|
8
|
+
test('should return the correct Unicode value for named icon \'star\'', function () {
|
|
9
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
10
|
+
"data-testid": "icon",
|
|
11
|
+
children: "star"
|
|
12
|
+
}));
|
|
13
|
+
var expected = 983080; // decimal converted charCode of Unicode 'star' character
|
|
14
|
+
var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
|
|
15
|
+
expect(actual).toBe(expected);
|
|
16
|
+
});
|
|
17
|
+
test('should return the correct Unicode value when provided \'star\' hex value', function () {
|
|
18
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
19
|
+
"data-testid": "icon",
|
|
20
|
+
children: "0x0F0028"
|
|
21
|
+
}));
|
|
22
|
+
var expected = 983080; // decimal converted charCode of character
|
|
23
|
+
var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
|
|
24
|
+
expect(actual).toBe(expected);
|
|
25
|
+
});
|
|
26
|
+
test('should return the correct Unicode value when provided HTML entity as hex value', function () {
|
|
27
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
28
|
+
"data-testid": "icon",
|
|
29
|
+
children: "\u2605"
|
|
30
|
+
}));
|
|
31
|
+
var expected = 9733; // decimal converted charCode of character
|
|
32
|
+
var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
|
|
33
|
+
expect(actual).toBe(expected);
|
|
34
|
+
});
|
|
35
|
+
test('should return the correct Unicode value when provided Unicode reference', function () {
|
|
36
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
37
|
+
"data-testid": "icon",
|
|
38
|
+
children: "\\u0F0028"
|
|
39
|
+
}));
|
|
40
|
+
var expected = 983080; // decimal converted charCode of Unicode 'star' character
|
|
41
|
+
var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
|
|
42
|
+
expect(actual).toBe(expected);
|
|
43
|
+
});
|
|
44
|
+
test('should support high code point Unicode values', function () {
|
|
45
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
46
|
+
"data-testid": "icon",
|
|
47
|
+
children: String.fromCodePoint(0x0F0028)
|
|
48
|
+
}));
|
|
49
|
+
var expected = 983080; // decimal converted charCode of Unicode 'star' character
|
|
50
|
+
var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
|
|
51
|
+
expect(actual).toBe(expected);
|
|
52
|
+
});
|
|
53
|
+
test('should support preset size "large"', function () {
|
|
54
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
55
|
+
"data-testid": "icon",
|
|
56
|
+
size: "large",
|
|
57
|
+
children: "star"
|
|
58
|
+
}));
|
|
59
|
+
var expected = 'large';
|
|
60
|
+
var icon = _react.screen.getByTestId('icon');
|
|
61
|
+
expect(icon).toHaveClass(expected);
|
|
62
|
+
});
|
|
63
|
+
test('should support preset size "medium"', function () {
|
|
64
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
65
|
+
"data-testid": "icon",
|
|
66
|
+
size: "medium",
|
|
67
|
+
children: "star"
|
|
68
|
+
}));
|
|
69
|
+
var expected = 'medium';
|
|
70
|
+
var icon = _react.screen.getByTestId('icon');
|
|
71
|
+
expect(icon).toHaveClass(expected);
|
|
72
|
+
});
|
|
73
|
+
test('should support preset size "small"', function () {
|
|
74
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
75
|
+
"data-testid": "icon",
|
|
76
|
+
size: "small",
|
|
77
|
+
children: "star"
|
|
78
|
+
}));
|
|
79
|
+
var expected = 'small';
|
|
80
|
+
var icon = _react.screen.getByTestId('icon');
|
|
81
|
+
expect(icon).toHaveClass(expected);
|
|
82
|
+
});
|
|
83
|
+
test('should support preset size "tiny"', function () {
|
|
84
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
85
|
+
"data-testid": "icon",
|
|
86
|
+
size: "tiny",
|
|
87
|
+
children: "star"
|
|
88
|
+
}));
|
|
89
|
+
var expected = 'tiny';
|
|
90
|
+
var icon = _react.screen.getByTestId('icon');
|
|
91
|
+
expect(icon).toHaveClass(expected);
|
|
92
|
+
});
|
|
93
|
+
test('should support arbitrary custom numeric sizes that scale to the correct value', function () {
|
|
94
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
95
|
+
"data-testid": "icon",
|
|
96
|
+
size: 96,
|
|
97
|
+
children: "star"
|
|
98
|
+
}));
|
|
99
|
+
var icon = _react.screen.getByTestId('icon');
|
|
100
|
+
|
|
101
|
+
// surprisingly this returns 8rem, instead of what you'd expect
|
|
102
|
+
// with a base pxToRem value of 48px, which would be 2rem.
|
|
103
|
+
// Tests must run at a tiny simulated screen size.
|
|
104
|
+
expect(icon).toHaveStyle({
|
|
105
|
+
'--icon-size': '8rem'
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
test('should support RTL flip', function () {
|
|
109
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
110
|
+
"data-testid": "icon",
|
|
111
|
+
rtl: true,
|
|
112
|
+
flip: "auto",
|
|
113
|
+
children: "star"
|
|
114
|
+
}));
|
|
115
|
+
var expected = "flipHorizontal";
|
|
116
|
+
var icon = _react.screen.getByTestId('icon');
|
|
117
|
+
expect(icon).toHaveClass(expected);
|
|
118
|
+
});
|
|
119
|
+
test('should not support RTL flip when locale is he-IL and children is \'help\'', function () {
|
|
120
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
|
|
121
|
+
"data-testid": "icon",
|
|
122
|
+
rtl: true,
|
|
123
|
+
flip: "auto",
|
|
124
|
+
locale: "he-IL",
|
|
125
|
+
children: "help"
|
|
126
|
+
}));
|
|
127
|
+
var expected = "flipHorizontal";
|
|
128
|
+
var icon = _react.screen.getByTestId('icon');
|
|
129
|
+
expect(icon).not.toHaveClass(expected);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// Type definitions for limestone/IconItem
|
|
2
|
+
|
|
3
|
+
import { MarqueeControllerProps as limestone_Marquee_MarqueeControllerProps } from "limestone/Marquee";
|
|
4
|
+
import { SpottableProps as spotlight_Spottable_SpottableProps } from "@enact/spotlight/Spottable";
|
|
5
|
+
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
9
|
+
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The shape for image of .
|
|
13
|
+
*/
|
|
14
|
+
export interface ImageShape {
|
|
15
|
+
/**
|
|
16
|
+
* Size for the image.
|
|
17
|
+
The following properties should be provided:
|
|
18
|
+
* * `height` - The height of the image
|
|
19
|
+
* * `width` - The width of the image
|
|
20
|
+
*/
|
|
21
|
+
size: object /**
|
|
22
|
+
* Source for the image.
|
|
23
|
+
String value or Object of values used to determine which image will appear on
|
|
24
|
+
a specific screenSize.
|
|
25
|
+
*/;
|
|
26
|
+
src: string | object;
|
|
27
|
+
}
|
|
28
|
+
export interface IconItemBaseProps {
|
|
29
|
+
/**
|
|
30
|
+
* The background color, gradient, or image of this item.
|
|
31
|
+
Accepts any format of color, gradient type value, and image url.
|
|
32
|
+
*
|
|
33
|
+
* Example: '#ff0000', 'radial-gradient(crimson, skyblue)', 'url( ) center / cover'
|
|
34
|
+
*/
|
|
35
|
+
background?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Specifies bordered or borderless.
|
|
38
|
+
*/
|
|
39
|
+
bordered?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The custom component rendered as the content of this IconItem.
|
|
42
|
+
*/
|
|
43
|
+
children?: React.ComponentType;
|
|
44
|
+
/**
|
|
45
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
46
|
+
corresponding internal elements and states of this component.
|
|
47
|
+
*
|
|
48
|
+
* The following classes are supported:
|
|
49
|
+
* * `iconItem` - The icon item component class
|
|
50
|
+
* * `content` - The class for the content area except title
|
|
51
|
+
* * `bordered` - The border class
|
|
52
|
+
* * `icon` - The icon component class
|
|
53
|
+
* * `image` - The image component class
|
|
54
|
+
* * `labelContainer` - The label container class
|
|
55
|
+
* * `label` - The label component class
|
|
56
|
+
* * `title` - The title component class
|
|
57
|
+
*/
|
|
58
|
+
css?: object;
|
|
59
|
+
/**
|
|
60
|
+
* The voice control intent.
|
|
61
|
+
*/
|
|
62
|
+
"data-webos-voice-intent"?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Disable IconItem and becomes non-interactive.
|
|
65
|
+
*/
|
|
66
|
+
disabled?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The icon content.
|
|
69
|
+
If this is specified, will be shown as the content.
|
|
70
|
+
*/
|
|
71
|
+
icon?: string | object;
|
|
72
|
+
/**
|
|
73
|
+
* Source and size for the image.
|
|
74
|
+
See the details in
|
|
75
|
+
*/
|
|
76
|
+
image?: ImageShape;
|
|
77
|
+
/**
|
|
78
|
+
* A label displayed in the content.
|
|
79
|
+
*/
|
|
80
|
+
label?: string;
|
|
81
|
+
/**
|
|
82
|
+
* The color of label.
|
|
83
|
+
*/
|
|
84
|
+
labelColor?: "dark" | "light";
|
|
85
|
+
/**
|
|
86
|
+
* Determines what triggers the label to show.
|
|
87
|
+
*/
|
|
88
|
+
labelOn?: "focus" | "render";
|
|
89
|
+
/**
|
|
90
|
+
* Title text showing below the icon.
|
|
91
|
+
*/
|
|
92
|
+
title?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Determines what triggers the title to show.
|
|
95
|
+
*/
|
|
96
|
+
titleOn?: "focus" | "render";
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A Limestone styled base component for .
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
export class IconItemBase extends React.Component<
|
|
103
|
+
Merge<React.HTMLProps<HTMLElement>, IconItemBaseProps>
|
|
104
|
+
> {}
|
|
105
|
+
|
|
106
|
+
export interface IconItemDecoratorProps
|
|
107
|
+
extends Merge<
|
|
108
|
+
Merge<
|
|
109
|
+
limestone_Marquee_MarqueeControllerProps,
|
|
110
|
+
spotlight_Spottable_SpottableProps
|
|
111
|
+
>,
|
|
112
|
+
limestone_Skinnable_SkinnableProps
|
|
113
|
+
> {}
|
|
114
|
+
export function IconItemDecorator<P>(
|
|
115
|
+
Component: React.ComponentType<P> | string,
|
|
116
|
+
): React.ComponentType<P & IconItemDecoratorProps>;
|
|
117
|
+
|
|
118
|
+
export interface IconItemProps
|
|
119
|
+
extends Merge<IconItemBaseProps, IconItemDecoratorProps> {}
|
|
120
|
+
/**
|
|
121
|
+
* A limestone-styled icon item, Marquee and Spottable applied.
|
|
122
|
+
*
|
|
123
|
+
* Usage:
|
|
124
|
+
* ```
|
|
125
|
+
<IconItem
|
|
126
|
+
background="#1b1b1b"
|
|
127
|
+
bordered
|
|
128
|
+
icon="usb"
|
|
129
|
+
/>
|
|
130
|
+
```
|
|
131
|
+
*/
|
|
132
|
+
|
|
133
|
+
export class IconItem extends React.Component<
|
|
134
|
+
Merge<React.HTMLProps<HTMLElement>, IconItemProps>
|
|
135
|
+
> {}
|
|
136
|
+
|
|
137
|
+
export default IconItem;
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.IconItemDecorator = exports.IconItemBase = exports.IconItem = void 0;
|
|
7
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _Spottable = _interopRequireDefault(require("@enact/spotlight/Spottable"));
|
|
9
|
+
var _Layout = require("@enact/ui/Layout");
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
12
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
13
|
+
var _Image = _interopRequireDefault(require("../Image"));
|
|
14
|
+
var _Marquee = require("../Marquee");
|
|
15
|
+
var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
16
|
+
var _IconItemModule = _interopRequireDefault(require("./IconItem.module.css"));
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
var _excluded = ["children", "disabled"];
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
20
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
21
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
25
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
26
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
27
|
+
function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); } /**
|
|
28
|
+
* Provides Limestone styled icon item components and behaviors.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* <IconItem
|
|
32
|
+
* background="#1b1b1b"
|
|
33
|
+
* bordered
|
|
34
|
+
* icon="usb"
|
|
35
|
+
* style={{
|
|
36
|
+
* height: 80,
|
|
37
|
+
* width: 104
|
|
38
|
+
* }}
|
|
39
|
+
* />
|
|
40
|
+
*
|
|
41
|
+
* @module limestone/IconItem
|
|
42
|
+
* @exports IconItem
|
|
43
|
+
* @exports IconItemBase
|
|
44
|
+
* @exports IconItemDecorator
|
|
45
|
+
* @public
|
|
46
|
+
*/ /**
|
|
47
|
+
* The shape for image of {@link limestone/IconItem|IconItem}.
|
|
48
|
+
*
|
|
49
|
+
* @typedef {Object} ImageShape
|
|
50
|
+
* @memberof limestone/IconItem
|
|
51
|
+
* @property {Object} size Size for the image.
|
|
52
|
+
* The following properties should be provided:
|
|
53
|
+
*
|
|
54
|
+
* * `height` - The height of the image
|
|
55
|
+
* * `width` - The width of the image
|
|
56
|
+
* @property {String|Object} src Source for the image.
|
|
57
|
+
* String value or Object of values used to determine which image will appear on
|
|
58
|
+
* a specific screenSize.
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
var ImageShape = _propTypes["default"].shape({
|
|
62
|
+
size: _propTypes["default"].shape({
|
|
63
|
+
height: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]).isRequired,
|
|
64
|
+
width: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]).isRequired
|
|
65
|
+
}).isRequired,
|
|
66
|
+
src: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]).isRequired
|
|
67
|
+
});
|
|
68
|
+
var MarqueeBase = function MarqueeBase(_ref) {
|
|
69
|
+
var rest = Object.assign({}, (_objectDestructuringEmpty(_ref), _ref));
|
|
70
|
+
delete rest.order;
|
|
71
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread({}, rest));
|
|
72
|
+
};
|
|
73
|
+
var Marquee = (0, _Marquee.MarqueeDecorator)({
|
|
74
|
+
invalidateProps: ['remeasure', 'order']
|
|
75
|
+
}, MarqueeBase);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* A Limestone styled base component for {@link limestone/IconItem.IconItem|IconItem}.
|
|
79
|
+
*
|
|
80
|
+
* @class IconItemBase
|
|
81
|
+
* @memberof limestone/IconItem
|
|
82
|
+
* @ui
|
|
83
|
+
* @public
|
|
84
|
+
*/
|
|
85
|
+
var IconItemBase = exports.IconItemBase = (0, _kind["default"])({
|
|
86
|
+
name: 'IconItem',
|
|
87
|
+
propTypes: /** @lends limestone/IconItem.IconItemBase.prototype */{
|
|
88
|
+
/**
|
|
89
|
+
* The background color, gradient, or image of this item.
|
|
90
|
+
* Accepts any format of color, gradient type value, and image url.
|
|
91
|
+
*
|
|
92
|
+
* Example: '#ff0000', 'radial-gradient(crimson, skyblue)', 'url(https://example.com/image.png) center / cover'
|
|
93
|
+
*
|
|
94
|
+
* @type {String}
|
|
95
|
+
* @public
|
|
96
|
+
*/
|
|
97
|
+
background: _propTypes["default"].string,
|
|
98
|
+
/**
|
|
99
|
+
* Specifies bordered or borderless.
|
|
100
|
+
*
|
|
101
|
+
* @type {Boolean}
|
|
102
|
+
* @public
|
|
103
|
+
*/
|
|
104
|
+
bordered: _propTypes["default"].bool,
|
|
105
|
+
/**
|
|
106
|
+
* The custom component rendered as the content of this IconItem.
|
|
107
|
+
*
|
|
108
|
+
* @type {Component}
|
|
109
|
+
* @public
|
|
110
|
+
*/
|
|
111
|
+
children: _propTypes["default"].any,
|
|
112
|
+
/**
|
|
113
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
114
|
+
* corresponding internal elements and states of this component.
|
|
115
|
+
*
|
|
116
|
+
* The following classes are supported:
|
|
117
|
+
*
|
|
118
|
+
* * `iconItem` - The icon item component class
|
|
119
|
+
* * `content` - The class for the content area except title
|
|
120
|
+
* * `bordered` - The border class
|
|
121
|
+
* * `icon` - The icon component class
|
|
122
|
+
* * `image` - The image component class
|
|
123
|
+
* * `labelContainer` - The label container class
|
|
124
|
+
* * `label` - The label component class
|
|
125
|
+
* * `title` - The title component class
|
|
126
|
+
*
|
|
127
|
+
* @type {Object}
|
|
128
|
+
* @public
|
|
129
|
+
*/
|
|
130
|
+
css: _propTypes["default"].object,
|
|
131
|
+
/**
|
|
132
|
+
* The voice control intent.
|
|
133
|
+
*
|
|
134
|
+
* @type {String}
|
|
135
|
+
* @default 'Select'
|
|
136
|
+
* @public
|
|
137
|
+
*/
|
|
138
|
+
'data-webos-voice-intent': _propTypes["default"].string,
|
|
139
|
+
/**
|
|
140
|
+
* Disable IconItem and becomes non-interactive.
|
|
141
|
+
*
|
|
142
|
+
* @type {Boolean}
|
|
143
|
+
* @public
|
|
144
|
+
*/
|
|
145
|
+
disabled: _propTypes["default"].bool,
|
|
146
|
+
/**
|
|
147
|
+
* The icon content.
|
|
148
|
+
* If this is specified, {@link limestone/Icon.Icon|Icon} will be shown as the content.
|
|
149
|
+
*
|
|
150
|
+
* @see {@link ui/Icon.Icon.children}
|
|
151
|
+
* @type {String|Object}
|
|
152
|
+
* @public
|
|
153
|
+
*/
|
|
154
|
+
icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
155
|
+
/**
|
|
156
|
+
* Source and size for the image.
|
|
157
|
+
* See the details in {@link limestone/IconItem.ImageShape|ImageShape}
|
|
158
|
+
*
|
|
159
|
+
* @type {limestone/IconItem.ImageShape}
|
|
160
|
+
* @public
|
|
161
|
+
*/
|
|
162
|
+
image: ImageShape,
|
|
163
|
+
/**
|
|
164
|
+
* A label displayed in the content.
|
|
165
|
+
*
|
|
166
|
+
* @type {String}
|
|
167
|
+
* @public
|
|
168
|
+
*/
|
|
169
|
+
label: _propTypes["default"].string,
|
|
170
|
+
/**
|
|
171
|
+
* The color of label.
|
|
172
|
+
*
|
|
173
|
+
* @type {('dark'|'light')}
|
|
174
|
+
* @default 'light'
|
|
175
|
+
* @public
|
|
176
|
+
*/
|
|
177
|
+
labelColor: _propTypes["default"].oneOf(['dark', 'light']),
|
|
178
|
+
/**
|
|
179
|
+
* Determines what triggers the label to show.
|
|
180
|
+
*
|
|
181
|
+
* @type {('focus'|'render')}
|
|
182
|
+
* @default 'render'
|
|
183
|
+
* @public
|
|
184
|
+
*/
|
|
185
|
+
labelOn: _propTypes["default"].oneOf(['focus', 'render']),
|
|
186
|
+
/**
|
|
187
|
+
* The order of the item.
|
|
188
|
+
* Invalidates Marquee when the order changes.
|
|
189
|
+
*
|
|
190
|
+
* @type {Number}
|
|
191
|
+
* @private
|
|
192
|
+
*/
|
|
193
|
+
order: _propTypes["default"].number,
|
|
194
|
+
/**
|
|
195
|
+
* Title text showing below the icon.
|
|
196
|
+
*
|
|
197
|
+
* @type {String}
|
|
198
|
+
* @public
|
|
199
|
+
*/
|
|
200
|
+
title: _propTypes["default"].string,
|
|
201
|
+
/**
|
|
202
|
+
* Determines what triggers the title to show.
|
|
203
|
+
*
|
|
204
|
+
* @type {('focus'|'render')}
|
|
205
|
+
* @default 'render'
|
|
206
|
+
* @public
|
|
207
|
+
*/
|
|
208
|
+
titleOn: _propTypes["default"].oneOf(['focus', 'render'])
|
|
209
|
+
},
|
|
210
|
+
defaultProps: {
|
|
211
|
+
'data-webos-voice-intent': 'Select',
|
|
212
|
+
labelColor: 'light',
|
|
213
|
+
labelOn: 'render',
|
|
214
|
+
titleOn: 'render'
|
|
215
|
+
},
|
|
216
|
+
styles: {
|
|
217
|
+
css: _IconItemModule["default"],
|
|
218
|
+
className: 'iconItem',
|
|
219
|
+
publicClassNames: true
|
|
220
|
+
},
|
|
221
|
+
computed: {
|
|
222
|
+
className: function className(_ref2) {
|
|
223
|
+
var bordered = _ref2.bordered,
|
|
224
|
+
label = _ref2.label,
|
|
225
|
+
labelColor = _ref2.labelColor,
|
|
226
|
+
labelOn = _ref2.labelOn,
|
|
227
|
+
styler = _ref2.styler,
|
|
228
|
+
title = _ref2.title,
|
|
229
|
+
titleOn = _ref2.titleOn;
|
|
230
|
+
return styler.append({
|
|
231
|
+
bordered: bordered,
|
|
232
|
+
hasLabel: !!label,
|
|
233
|
+
hasTitle: !!title,
|
|
234
|
+
labelOnFocus: labelOn === 'focus',
|
|
235
|
+
titleOnFocus: titleOn === 'focus',
|
|
236
|
+
darkLabel: labelColor === 'dark'
|
|
237
|
+
});
|
|
238
|
+
},
|
|
239
|
+
children: function children(_ref3) {
|
|
240
|
+
var background = _ref3.background,
|
|
241
|
+
_children = _ref3.children,
|
|
242
|
+
css = _ref3.css,
|
|
243
|
+
icon = _ref3.icon,
|
|
244
|
+
image = _ref3.image,
|
|
245
|
+
label = _ref3.label,
|
|
246
|
+
labelOn = _ref3.labelOn,
|
|
247
|
+
order = _ref3.order,
|
|
248
|
+
title = _ref3.title;
|
|
249
|
+
if (_children) return _children;
|
|
250
|
+
var imageComponent;
|
|
251
|
+
if (icon) {
|
|
252
|
+
imageComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon["default"], {
|
|
253
|
+
className: css.icon,
|
|
254
|
+
size: "large",
|
|
255
|
+
children: icon
|
|
256
|
+
});
|
|
257
|
+
} else if (image) {
|
|
258
|
+
var _image$size, _image$size2;
|
|
259
|
+
imageComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Image["default"], {
|
|
260
|
+
className: css.image,
|
|
261
|
+
src: image === null || image === void 0 ? void 0 : image.src,
|
|
262
|
+
style: {
|
|
263
|
+
width: image === null || image === void 0 || (_image$size = image.size) === null || _image$size === void 0 ? void 0 : _image$size.width,
|
|
264
|
+
height: image === null || image === void 0 || (_image$size2 = image.size) === null || _image$size2 === void 0 ? void 0 : _image$size2.height
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
if (!imageComponent && !_children && !label && !title) return;
|
|
269
|
+
var align = label && labelOn === 'render' ? 'center' : 'center center';
|
|
270
|
+
var iconContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Column, {
|
|
271
|
+
align: align,
|
|
272
|
+
className: css.content,
|
|
273
|
+
style: {
|
|
274
|
+
background: background
|
|
275
|
+
},
|
|
276
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
277
|
+
shrink: true,
|
|
278
|
+
children: imageComponent ? imageComponent : null
|
|
279
|
+
}), label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
280
|
+
shrink: true,
|
|
281
|
+
className: css.labelContainer,
|
|
282
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Marquee, {
|
|
283
|
+
alignment: "center",
|
|
284
|
+
className: css.label,
|
|
285
|
+
marqueeOn: "focus",
|
|
286
|
+
order: order,
|
|
287
|
+
children: label
|
|
288
|
+
})
|
|
289
|
+
}) : null]
|
|
290
|
+
});
|
|
291
|
+
return title ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Column, {
|
|
292
|
+
children: [iconContent, /*#__PURE__*/(0, _jsxRuntime.jsx)(Marquee, {
|
|
293
|
+
alignment: "center",
|
|
294
|
+
className: css.title,
|
|
295
|
+
marqueeOn: "focus",
|
|
296
|
+
order: order,
|
|
297
|
+
children: title
|
|
298
|
+
})]
|
|
299
|
+
}) : iconContent;
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
render: function render(_ref4) {
|
|
303
|
+
var children = _ref4.children,
|
|
304
|
+
disabled = _ref4.disabled,
|
|
305
|
+
rest = _objectWithoutProperties(_ref4, _excluded);
|
|
306
|
+
delete rest.background;
|
|
307
|
+
delete rest.bordered;
|
|
308
|
+
delete rest.icon;
|
|
309
|
+
delete rest.image;
|
|
310
|
+
delete rest.label;
|
|
311
|
+
delete rest.labelColor;
|
|
312
|
+
delete rest.labelOn;
|
|
313
|
+
delete rest.title;
|
|
314
|
+
delete rest.titleOn;
|
|
315
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
316
|
+
"aria-disabled": disabled,
|
|
317
|
+
disabled: disabled,
|
|
318
|
+
children: children
|
|
319
|
+
}));
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Limestone-specific IconItem behaviors to apply to
|
|
325
|
+
* {@link limestone/IconItem.IconItem|IconItem}.
|
|
326
|
+
*
|
|
327
|
+
* @hoc
|
|
328
|
+
* @memberof limestone/IconItem
|
|
329
|
+
* @mixes limestone/Marquee.MarqueeController
|
|
330
|
+
* @mixes spotlight/Spottable.Spottable
|
|
331
|
+
* @mixes limestone/Skinnable.Skinnable
|
|
332
|
+
* @public
|
|
333
|
+
*/
|
|
334
|
+
var IconItemDecorator = exports.IconItemDecorator = (0, _compose["default"])((0, _Marquee.MarqueeController)({
|
|
335
|
+
marqueeOnFocus: true
|
|
336
|
+
}), _Spottable["default"], _Skinnable["default"]);
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* A limestone-styled icon item, Marquee and Spottable applied.
|
|
340
|
+
*
|
|
341
|
+
* Usage:
|
|
342
|
+
* ```
|
|
343
|
+
* <IconItem
|
|
344
|
+
* background="#1b1b1b"
|
|
345
|
+
* bordered
|
|
346
|
+
* icon="usb"
|
|
347
|
+
* />
|
|
348
|
+
* ```
|
|
349
|
+
*
|
|
350
|
+
* @class IconItem
|
|
351
|
+
* @memberof limestone/IconItem
|
|
352
|
+
* @extends limestone/IconItem.IconItemBase
|
|
353
|
+
* @mixes limestone/IconItem.IconItemDecorator
|
|
354
|
+
* @see {@link limestone/IconItem.IconItemBase}
|
|
355
|
+
* @ui
|
|
356
|
+
* @public
|
|
357
|
+
*/
|
|
358
|
+
var IconItem = exports.IconItem = IconItemDecorator(IconItemBase);
|
|
359
|
+
IconItem.displayName = 'IconItem';
|
|
360
|
+
var _default = exports["default"] = IconItem;
|