@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,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
|
|
4
|
+
require("@testing-library/jest-dom");
|
|
5
|
+
var _react = require("@testing-library/react");
|
|
6
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
7
|
+
var _ = require("../");
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
11
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
12
|
+
describe('QuickGuidePanels Specs', function () {
|
|
13
|
+
test('should hide next button on the last view', function () {
|
|
14
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
15
|
+
index: 2,
|
|
16
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
17
|
+
children: "I got contents"
|
|
18
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
19
|
+
children: "I got contents2"
|
|
20
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
21
|
+
children: "Last!"
|
|
22
|
+
})]
|
|
23
|
+
}));
|
|
24
|
+
var buttons = _react.screen.getAllByRole('button');
|
|
25
|
+
var expected = 2;
|
|
26
|
+
var actual = buttons.length;
|
|
27
|
+
expect(actual).toBe(expected);
|
|
28
|
+
expect(buttons[0]).toHaveAttribute('aria-label', 'Exit Quick Guide');
|
|
29
|
+
expect(buttons[1]).toHaveAttribute('aria-label', 'Previous');
|
|
30
|
+
});
|
|
31
|
+
test('should hide previous button on the first view', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
32
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
33
|
+
index: 0,
|
|
34
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
35
|
+
children: "I got contents"
|
|
36
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
37
|
+
children: "I got contents2"
|
|
38
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
39
|
+
children: "Last!"
|
|
40
|
+
})]
|
|
41
|
+
}));
|
|
42
|
+
var buttons = _react.screen.getAllByRole('button');
|
|
43
|
+
var expected = 2;
|
|
44
|
+
var actual = buttons.length;
|
|
45
|
+
expect(actual).toBe(expected);
|
|
46
|
+
expect(buttons[0]).toHaveAttribute('aria-label', 'Exit Quick Guide');
|
|
47
|
+
expect(buttons[1]).toHaveAttribute('aria-label', 'Next');
|
|
48
|
+
}));
|
|
49
|
+
test('should show next button on the first view', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
50
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
51
|
+
index: 0,
|
|
52
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
53
|
+
children: "I got contents"
|
|
54
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
55
|
+
children: "I got contents2"
|
|
56
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
57
|
+
children: "Last!"
|
|
58
|
+
})]
|
|
59
|
+
}));
|
|
60
|
+
var nextButton = _react.screen.getByLabelText('Next');
|
|
61
|
+
yield (0, _react.waitFor)(function () {
|
|
62
|
+
expect(nextButton).toBeInTheDocument();
|
|
63
|
+
});
|
|
64
|
+
}));
|
|
65
|
+
test('should fire `onWillTransition` with target index and type in pointer mode', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
66
|
+
var spy = jest.fn();
|
|
67
|
+
var index = 0;
|
|
68
|
+
var _render = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
69
|
+
index: index,
|
|
70
|
+
onWillTransition: spy,
|
|
71
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
72
|
+
children: "I got contents"
|
|
73
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
74
|
+
children: "I got contents2"
|
|
75
|
+
})]
|
|
76
|
+
})),
|
|
77
|
+
rerender = _render.rerender;
|
|
78
|
+
spy.mockClear();
|
|
79
|
+
index++;
|
|
80
|
+
rerender(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
81
|
+
index: index,
|
|
82
|
+
onWillTransition: spy,
|
|
83
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
84
|
+
children: "I got contents"
|
|
85
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
86
|
+
children: "I got contents2"
|
|
87
|
+
})]
|
|
88
|
+
}));
|
|
89
|
+
var expected = {
|
|
90
|
+
index: index,
|
|
91
|
+
type: 'onWillTransition'
|
|
92
|
+
};
|
|
93
|
+
var actual = spy.mock.calls.length && spy.mock.calls[0][0];
|
|
94
|
+
yield (0, _react.waitFor)(function () {
|
|
95
|
+
expect(actual).toMatchObject(expected);
|
|
96
|
+
});
|
|
97
|
+
}));
|
|
98
|
+
test('should fire `onWillTransition` with target index and type in 5-way mode', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
99
|
+
_spotlight["default"].setPointerMode(false);
|
|
100
|
+
var spy = jest.fn();
|
|
101
|
+
var index = 0;
|
|
102
|
+
var _render2 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
103
|
+
index: index,
|
|
104
|
+
onWillTransition: spy,
|
|
105
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
106
|
+
children: "I got contents"
|
|
107
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
108
|
+
children: "I got contents2"
|
|
109
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
110
|
+
children: "I got contents3"
|
|
111
|
+
})]
|
|
112
|
+
})),
|
|
113
|
+
rerender = _render2.rerender;
|
|
114
|
+
spy.mockClear();
|
|
115
|
+
var nextButton = _react.screen.getByLabelText('Next');
|
|
116
|
+
_spotlight["default"].focus(nextButton);
|
|
117
|
+
index++;
|
|
118
|
+
rerender(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
119
|
+
index: index,
|
|
120
|
+
onWillTransition: spy,
|
|
121
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
122
|
+
children: "I got contents"
|
|
123
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
124
|
+
children: "I got contents2"
|
|
125
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
126
|
+
children: "I got contents3"
|
|
127
|
+
})]
|
|
128
|
+
}));
|
|
129
|
+
var expected = {
|
|
130
|
+
index: index,
|
|
131
|
+
type: 'onWillTransition'
|
|
132
|
+
};
|
|
133
|
+
var actual = spy.mock.calls.length && spy.mock.calls[0][0];
|
|
134
|
+
yield (0, _react.waitFor)(function () {
|
|
135
|
+
expect(actual).toMatchObject(expected);
|
|
136
|
+
});
|
|
137
|
+
}));
|
|
138
|
+
test('should fire `onTransition` with target index and type', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
139
|
+
var spy = jest.fn();
|
|
140
|
+
var index = 0;
|
|
141
|
+
var _render3 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
142
|
+
index: index,
|
|
143
|
+
onTransition: spy,
|
|
144
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
145
|
+
children: "I got contents"
|
|
146
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
147
|
+
children: "I got contents2"
|
|
148
|
+
})]
|
|
149
|
+
})),
|
|
150
|
+
rerender = _render3.rerender;
|
|
151
|
+
spy.mockClear();
|
|
152
|
+
index++;
|
|
153
|
+
rerender(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
154
|
+
index: index,
|
|
155
|
+
onTransition: spy,
|
|
156
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
157
|
+
children: "I got contents"
|
|
158
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
159
|
+
children: "I got contents2"
|
|
160
|
+
})]
|
|
161
|
+
}));
|
|
162
|
+
var expected = {
|
|
163
|
+
index: index,
|
|
164
|
+
type: 'onTransition'
|
|
165
|
+
};
|
|
166
|
+
var actual = spy.mock.calls.length && spy.mock.calls[0][0];
|
|
167
|
+
yield (0, _react.waitFor)(function () {
|
|
168
|
+
expect(actual).toMatchObject(expected);
|
|
169
|
+
});
|
|
170
|
+
}));
|
|
171
|
+
test('should fire `onNextClick` and `onChange` with type when go to the next panel', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
172
|
+
var handleChange = jest.fn();
|
|
173
|
+
var handleNextClick = jest.fn();
|
|
174
|
+
var user = _userEvent["default"].setup();
|
|
175
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
176
|
+
index: 1,
|
|
177
|
+
onChange: handleChange,
|
|
178
|
+
onNextClick: handleNextClick,
|
|
179
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
180
|
+
}));
|
|
181
|
+
var nextButton = _react.screen.getByLabelText('Next');
|
|
182
|
+
var expected = {
|
|
183
|
+
type: 'onNextClick'
|
|
184
|
+
};
|
|
185
|
+
yield user.click(nextButton);
|
|
186
|
+
yield (0, _react.waitFor)(function () {
|
|
187
|
+
expect(handleChange).toHaveBeenCalledWith({
|
|
188
|
+
index: 2,
|
|
189
|
+
type: 'onChange'
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
yield (0, _react.waitFor)(function () {
|
|
193
|
+
var actual = handleNextClick.mock.calls.length && handleNextClick.mock.calls[0][0];
|
|
194
|
+
expect(actual).toMatchObject(expected);
|
|
195
|
+
});
|
|
196
|
+
}));
|
|
197
|
+
test('should fire `onPrevClick` and `onChange` with type when go to the previous panel', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
198
|
+
var handleChange = jest.fn();
|
|
199
|
+
var handlePrevClick = jest.fn();
|
|
200
|
+
var user = _userEvent["default"].setup();
|
|
201
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_.QuickGuidePanels, {
|
|
202
|
+
index: 2,
|
|
203
|
+
onChange: handleChange,
|
|
204
|
+
onPrevClick: handlePrevClick,
|
|
205
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
206
|
+
}));
|
|
207
|
+
var prevButton = _react.screen.getByLabelText('Previous');
|
|
208
|
+
var expected = {
|
|
209
|
+
type: 'onPrevClick'
|
|
210
|
+
};
|
|
211
|
+
yield user.click(prevButton);
|
|
212
|
+
yield (0, _react.waitFor)(function () {
|
|
213
|
+
expect(handleChange).toHaveBeenCalledWith({
|
|
214
|
+
index: 1,
|
|
215
|
+
type: 'onChange'
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
yield (0, _react.waitFor)(function () {
|
|
219
|
+
var actual = handlePrevClick.mock.calls.length && handlePrevClick.mock.calls[0][0];
|
|
220
|
+
expect(actual).toMatchObject(expected);
|
|
221
|
+
});
|
|
222
|
+
}));
|
|
223
|
+
test('should return a ref to the root Panel node', function () {
|
|
224
|
+
var ref = jest.fn();
|
|
225
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_.QuickGuidePanels, {
|
|
226
|
+
ref: ref,
|
|
227
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})
|
|
228
|
+
}));
|
|
229
|
+
var expected = 'ARTICLE';
|
|
230
|
+
var actual = ref.mock.calls[0][0].nodeName;
|
|
231
|
+
expect(actual).toBe(expected);
|
|
232
|
+
});
|
|
233
|
+
test('should fire `onClose` when close button is clicked', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
234
|
+
var handleClose = jest.fn();
|
|
235
|
+
var user = _userEvent["default"].setup();
|
|
236
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_.QuickGuidePanels, {
|
|
237
|
+
onClose: handleClose,
|
|
238
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})
|
|
239
|
+
}));
|
|
240
|
+
var closeButton = _react.screen.getByLabelText('Exit Quick Guide');
|
|
241
|
+
var expected = {
|
|
242
|
+
type: 'onClose'
|
|
243
|
+
};
|
|
244
|
+
yield user.click(closeButton);
|
|
245
|
+
yield (0, _react.waitFor)(function () {
|
|
246
|
+
var actual = handleClose.mock.calls.length && handleClose.mock.calls[0][0];
|
|
247
|
+
expect(actual).toMatchObject(expected);
|
|
248
|
+
});
|
|
249
|
+
}));
|
|
250
|
+
});
|
package/README.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# @enact/limestone [](https://www.npmjs.com/package/@enact/limestone)
|
|
2
|
+
|
|
3
|
+
The set of components for an Enact-based application targeting smart TVs.
|
|
4
|
+
|
|
5
|
+
<!--
|
|
6
|
+
TODO
|
|
7
|
+
Insert Limestone settings app image here
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
import kind from '@enact/core/kind';
|
|
14
|
+
import Button from '@enact/limestone/Button';
|
|
15
|
+
import ThemeDecorator from '@enact/limestone/ThemeDecorator';
|
|
16
|
+
import React from 'react';
|
|
17
|
+
|
|
18
|
+
const MyApp = kind({
|
|
19
|
+
name: 'MyApp',
|
|
20
|
+
render: () => (<Button>Hello, Enact!</Button>)
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const MyLimestoneApp = ThemeDecorator(MyApp);
|
|
24
|
+
|
|
25
|
+
export default MyLimestoneApp;
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> Note: The `@enact/limestone/ThemeDecorator` must be applied to the base component. This decorator also applies
|
|
29
|
+
`@enact/i18n/I18nDecorator`, `@enact/spotlight` and `@enact/ui/resolution` decorators.
|
|
30
|
+
|
|
31
|
+
## Install
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
npm install --save @enact/limestone
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Test
|
|
38
|
+
|
|
39
|
+
Unit tests are implemented in Testing Library and are run with Jest. To execute them:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
npm test
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Links
|
|
46
|
+
* [Limestone API Docs](https://enactjs.com/docs/modules/limestone/ActionGuide/)
|
|
47
|
+
* [Limestone Component Sampler](https://enactjs.com/sampler)
|
|
48
|
+
|
|
49
|
+
## Copyright and License Information
|
|
50
|
+
|
|
51
|
+
Unless otherwise specified, all content, including all source code files and documentation files in this repository are:
|
|
52
|
+
|
|
53
|
+
Copyright (c) 2012-2025 LG Electronics
|
|
54
|
+
|
|
55
|
+
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
|
|
56
|
+
|
|
57
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
58
|
+
|
|
59
|
+
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.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Type definitions for limestone/RadioItem
|
|
2
|
+
|
|
3
|
+
import { ToggleableProps as ui_Toggleable_ToggleableProps } from "@enact/ui/Toggleable";
|
|
4
|
+
import { ItemProps as limestone_Item_ItemProps } from "limestone/Item";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
|
|
7
|
+
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
8
|
+
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
9
|
+
|
|
10
|
+
export interface RadioItemBaseProps extends limestone_Item_ItemProps {}
|
|
11
|
+
/**
|
|
12
|
+
* An item component with a radio toggle icon.
|
|
13
|
+
*
|
|
14
|
+
* This component is most often not used directly but may be composed within another component as it
|
|
15
|
+
is within .
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export class RadioItemBase extends React.Component<
|
|
19
|
+
Merge<React.HTMLProps<HTMLElement>, RadioItemBaseProps>
|
|
20
|
+
> {}
|
|
21
|
+
|
|
22
|
+
export interface RadioItemProps
|
|
23
|
+
extends Merge<RadioItemBaseProps, RadioItemDecoratorProps> {
|
|
24
|
+
/**
|
|
25
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
26
|
+
corresponding internal elements and states of this component.
|
|
27
|
+
*
|
|
28
|
+
* The following classes are supported:
|
|
29
|
+
* * `radioItem` - The root class name
|
|
30
|
+
*/
|
|
31
|
+
css?: object;
|
|
32
|
+
/**
|
|
33
|
+
* The icon to display when selected.
|
|
34
|
+
*/
|
|
35
|
+
icon?: string;
|
|
36
|
+
/**
|
|
37
|
+
* If true it will be selected.
|
|
38
|
+
*/
|
|
39
|
+
selected?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Nodes to be inserted after the radio button and before `children` .
|
|
42
|
+
*/
|
|
43
|
+
slotBefore?: React.ReactNode;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Renders an `Item` with a radio-dot component. Useful to show a selected state on an Item.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
export class RadioItem extends React.Component<
|
|
50
|
+
Merge<React.HTMLProps<HTMLElement>, RadioItemProps>
|
|
51
|
+
> {}
|
|
52
|
+
|
|
53
|
+
export interface RadioItemDecoratorProps
|
|
54
|
+
extends ui_Toggleable_ToggleableProps {}
|
|
55
|
+
export function RadioItemDecorator<P>(
|
|
56
|
+
Component: React.ComponentType<P> | string,
|
|
57
|
+
): React.ComponentType<P & RadioItemDecoratorProps>;
|
|
58
|
+
|
|
59
|
+
export default RadioItem;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.RadioItemDecorator = exports.RadioItemBase = exports.RadioItem = void 0;
|
|
7
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
|
|
9
|
+
var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
|
|
10
|
+
var _Toggleable = _interopRequireDefault(require("@enact/ui/Toggleable"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
13
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
14
|
+
var _Item = require("../Item");
|
|
15
|
+
var _RadioItemModule = _interopRequireDefault(require("./RadioItem.module.css"));
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
var _excluded = ["children", "css", "icon", "selected", "slotBefore"];
|
|
18
|
+
/**
|
|
19
|
+
* Provides a Limestone-themed Item component with an interactive radio toggle icon.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <RadioItem>Item</RadioItem>
|
|
23
|
+
*
|
|
24
|
+
* @module limestone/RadioItem
|
|
25
|
+
* @exports RadioItem
|
|
26
|
+
* @exports RadioItemBase
|
|
27
|
+
*/
|
|
28
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
29
|
+
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; }
|
|
30
|
+
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; }
|
|
31
|
+
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; }
|
|
32
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
33
|
+
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); }
|
|
34
|
+
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; }
|
|
35
|
+
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; }
|
|
36
|
+
var Item = (0, _Item.ItemDecorator)(_Item.ItemBase);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* An item component with a radio toggle icon.
|
|
40
|
+
*
|
|
41
|
+
* This component is most often not used directly but may be composed within another component as it
|
|
42
|
+
* is within {@link limestone/RadioItem.RadioItem|RadioItem}.
|
|
43
|
+
*
|
|
44
|
+
* @class RadioItemBase
|
|
45
|
+
* @memberof limestone/RadioItem
|
|
46
|
+
* @extends limestone/Item.Item
|
|
47
|
+
* @ui
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
var RadioItemBase = exports.RadioItemBase = (0, _kind["default"])({
|
|
51
|
+
name: 'RadioItem',
|
|
52
|
+
propTypes: /** @lends limestone/RadioItem.RadioItem.prototype */{
|
|
53
|
+
/**
|
|
54
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
55
|
+
* corresponding internal elements and states of this component.
|
|
56
|
+
*
|
|
57
|
+
* The following classes are supported:
|
|
58
|
+
*
|
|
59
|
+
* * `radioItem` - The root class name
|
|
60
|
+
*
|
|
61
|
+
* @type {Object}
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
css: _propTypes["default"].object,
|
|
65
|
+
/**
|
|
66
|
+
* The icon to display when selected.
|
|
67
|
+
*
|
|
68
|
+
* @type {String}
|
|
69
|
+
* @default 'circle'
|
|
70
|
+
* @see {@link limestone/Icon.Icon}
|
|
71
|
+
*/
|
|
72
|
+
icon: _propTypes["default"].string,
|
|
73
|
+
/**
|
|
74
|
+
* If true it will be selected.
|
|
75
|
+
*
|
|
76
|
+
* @type {Boolean}
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
selected: _propTypes["default"].bool,
|
|
80
|
+
/**
|
|
81
|
+
* Nodes to be inserted after the radio button and before `children`.
|
|
82
|
+
*
|
|
83
|
+
* @type {Node}
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
86
|
+
slotBefore: _propTypes["default"].node
|
|
87
|
+
},
|
|
88
|
+
defaultProps: {
|
|
89
|
+
icon: 'circle'
|
|
90
|
+
},
|
|
91
|
+
styles: {
|
|
92
|
+
css: _RadioItemModule["default"],
|
|
93
|
+
className: 'radioItem',
|
|
94
|
+
publicClassNames: ['radioItem']
|
|
95
|
+
},
|
|
96
|
+
render: function render(_ref) {
|
|
97
|
+
var children = _ref.children,
|
|
98
|
+
css = _ref.css,
|
|
99
|
+
icon = _ref.icon,
|
|
100
|
+
selected = _ref.selected,
|
|
101
|
+
slotBefore = _ref.slotBefore,
|
|
102
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
103
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Item, _objectSpread(_objectSpread({
|
|
104
|
+
"data-webos-voice-intent": "SelectRadioItem",
|
|
105
|
+
role: "checkbox"
|
|
106
|
+
}, rest), {}, {
|
|
107
|
+
"aria-checked": selected,
|
|
108
|
+
css: css,
|
|
109
|
+
selected: selected,
|
|
110
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("slotBefore", {
|
|
111
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon["default"], {
|
|
112
|
+
className: css.icon,
|
|
113
|
+
size: "tiny",
|
|
114
|
+
children: icon
|
|
115
|
+
}), slotBefore]
|
|
116
|
+
}), children]
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Limestone specific behaviors to apply to {@link limestone/RadioItem.RadioItemBase|RadioItem}.
|
|
123
|
+
*
|
|
124
|
+
* @hoc
|
|
125
|
+
* @memberof limestone/RadioItem
|
|
126
|
+
* @mixes ui/Toggleable.Toggleable
|
|
127
|
+
* @public
|
|
128
|
+
*/
|
|
129
|
+
var RadioItemDecorator = exports.RadioItemDecorator = (0, _compose["default"])((0, _Toggleable["default"])({
|
|
130
|
+
toggleProp: 'onClick'
|
|
131
|
+
}), (0, _Slottable["default"])({
|
|
132
|
+
slots: ['label', 'slotAfter', 'slotBefore']
|
|
133
|
+
}));
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Renders an `Item` with a radio-dot component. Useful to show a selected state on an Item.
|
|
137
|
+
*
|
|
138
|
+
* @class RadioItem
|
|
139
|
+
* @memberof limestone/RadioItem
|
|
140
|
+
* @extends limestone/RadioItem.RadioItemBase
|
|
141
|
+
* @mixes limestone/RadioItem.RadioItemDecorator
|
|
142
|
+
* @ui
|
|
143
|
+
* @public
|
|
144
|
+
*/
|
|
145
|
+
var RadioItem = exports.RadioItem = (0, _Pure["default"])(RadioItemDecorator(RadioItemBase));
|
|
146
|
+
var _default = exports["default"] = RadioItem;
|