@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,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _FloatingLayer = require("@enact/ui/FloatingLayer");
|
|
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
|
+
var FloatingLayerController = (0, _FloatingLayer.FloatingLayerDecorator)('div');
|
|
13
|
+
describe('FlexiblePopupPanels Specs', function () {
|
|
14
|
+
test('should hide previous and next buttons when there is only one panel', function () {
|
|
15
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
16
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FlexiblePopupPanels, {
|
|
17
|
+
open: true,
|
|
18
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})
|
|
19
|
+
})
|
|
20
|
+
}));
|
|
21
|
+
var actual = _react.screen.queryByRole('button');
|
|
22
|
+
expect(actual).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
test('should show previous and next buttons when there is more than one panel', function () {
|
|
25
|
+
var _render = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
26
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
27
|
+
open: true,
|
|
28
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
29
|
+
})
|
|
30
|
+
})),
|
|
31
|
+
unmount = _render.unmount;
|
|
32
|
+
var expected = 2;
|
|
33
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
34
|
+
unmount();
|
|
35
|
+
expect(actual).toBe(expected);
|
|
36
|
+
});
|
|
37
|
+
test('should show previous button when using `prevButton` on the only panel', function () {
|
|
38
|
+
var _render2 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
39
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FlexiblePopupPanels, {
|
|
40
|
+
open: true,
|
|
41
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
42
|
+
prevButton: true
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
})),
|
|
46
|
+
unmount = _render2.unmount;
|
|
47
|
+
var expected = 1;
|
|
48
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
49
|
+
unmount();
|
|
50
|
+
expect(actual).toBe(expected);
|
|
51
|
+
});
|
|
52
|
+
test('should show previous button when using `nextButton` on the only panel', function () {
|
|
53
|
+
var _render3 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
54
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FlexiblePopupPanels, {
|
|
55
|
+
open: true,
|
|
56
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
57
|
+
nextButton: true
|
|
58
|
+
})
|
|
59
|
+
})
|
|
60
|
+
})),
|
|
61
|
+
unmount = _render3.unmount;
|
|
62
|
+
var expected = 1;
|
|
63
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
64
|
+
unmount();
|
|
65
|
+
expect(actual).toBe(expected);
|
|
66
|
+
});
|
|
67
|
+
test('should hide previous button on all panels when `prevButtonVisibility` is set to "never"', function () {
|
|
68
|
+
var _render4 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
69
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
70
|
+
prevButtonVisibility: "never",
|
|
71
|
+
open: true,
|
|
72
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
73
|
+
})
|
|
74
|
+
})),
|
|
75
|
+
unmount = _render4.unmount;
|
|
76
|
+
var expected = 1;
|
|
77
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
78
|
+
unmount();
|
|
79
|
+
expect(actual).toBe(expected);
|
|
80
|
+
});
|
|
81
|
+
test('should hide next button on all panels when `nextButtonVisibility` is set to "never"', function () {
|
|
82
|
+
var _render5 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
83
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
84
|
+
nextButtonVisibility: "never",
|
|
85
|
+
open: true,
|
|
86
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
87
|
+
})
|
|
88
|
+
})),
|
|
89
|
+
unmount = _render5.unmount;
|
|
90
|
+
var expected = 1;
|
|
91
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
92
|
+
unmount();
|
|
93
|
+
expect(actual).toBe(expected);
|
|
94
|
+
});
|
|
95
|
+
test('should show previous button on the only panel when `prevButtonVisibility` set to "always"', function () {
|
|
96
|
+
var _render6 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
97
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FlexiblePopupPanels, {
|
|
98
|
+
prevButtonVisibility: "always",
|
|
99
|
+
open: true,
|
|
100
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})
|
|
101
|
+
})
|
|
102
|
+
})),
|
|
103
|
+
unmount = _render6.unmount;
|
|
104
|
+
var expected = 1;
|
|
105
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
106
|
+
unmount();
|
|
107
|
+
expect(actual).toBe(expected);
|
|
108
|
+
});
|
|
109
|
+
test('should show next button on the only panel when `nextButtonVisibility` set to "always"', function () {
|
|
110
|
+
var _render7 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
111
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FlexiblePopupPanels, {
|
|
112
|
+
nextButtonVisibility: "always",
|
|
113
|
+
open: true,
|
|
114
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})
|
|
115
|
+
})
|
|
116
|
+
})),
|
|
117
|
+
unmount = _render7.unmount;
|
|
118
|
+
var expected = 1;
|
|
119
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
120
|
+
unmount();
|
|
121
|
+
expect(actual).toBe(expected);
|
|
122
|
+
});
|
|
123
|
+
test('should hide previous button on panels that override using `prevButton={false}`', function () {
|
|
124
|
+
var _render8 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
125
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
126
|
+
index: 1,
|
|
127
|
+
open: true,
|
|
128
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
129
|
+
prevButton: false
|
|
130
|
+
})]
|
|
131
|
+
})
|
|
132
|
+
})),
|
|
133
|
+
unmount = _render8.unmount;
|
|
134
|
+
var expected = 1;
|
|
135
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
136
|
+
unmount();
|
|
137
|
+
expect(actual).toBe(expected);
|
|
138
|
+
});
|
|
139
|
+
test('should hide next button on panels that override using `nextButton={false}`', function () {
|
|
140
|
+
var _render9 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
141
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
142
|
+
index: 0,
|
|
143
|
+
open: true,
|
|
144
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
145
|
+
nextButton: false
|
|
146
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
147
|
+
})
|
|
148
|
+
})),
|
|
149
|
+
unmount = _render9.unmount;
|
|
150
|
+
var expected = 1;
|
|
151
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
152
|
+
unmount();
|
|
153
|
+
expect(actual).toBe(expected);
|
|
154
|
+
});
|
|
155
|
+
test('should hide previous button when `prevButtonVisibility` prop is set to always and panel overrides using `prevButton={false}`', function () {
|
|
156
|
+
var _render0 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
157
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
158
|
+
index: 1,
|
|
159
|
+
prevButtonVisibility: "always",
|
|
160
|
+
open: true,
|
|
161
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
162
|
+
prevButton: false
|
|
163
|
+
})]
|
|
164
|
+
})
|
|
165
|
+
})),
|
|
166
|
+
unmount = _render0.unmount;
|
|
167
|
+
var expected = 1;
|
|
168
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
169
|
+
unmount();
|
|
170
|
+
expect(actual).toBe(expected);
|
|
171
|
+
});
|
|
172
|
+
test('should hide next button when `nextButtonVisibility` prop is set to always and panel overrides using `nextButton={false}`', function () {
|
|
173
|
+
var _render1 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
174
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
175
|
+
index: 0,
|
|
176
|
+
nextButtonVisibility: "always",
|
|
177
|
+
open: true,
|
|
178
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {
|
|
179
|
+
nextButton: false
|
|
180
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
181
|
+
})
|
|
182
|
+
})),
|
|
183
|
+
unmount = _render1.unmount;
|
|
184
|
+
var expected = 1;
|
|
185
|
+
var actual = _react.screen.getAllByRole('button').length;
|
|
186
|
+
unmount();
|
|
187
|
+
expect(actual).toBe(expected);
|
|
188
|
+
});
|
|
189
|
+
test('should fire `onNextClick` and `onChange` with each type in it when the next button is clicked', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
190
|
+
var handleNextClick = jest.fn();
|
|
191
|
+
var handleChange = jest.fn();
|
|
192
|
+
var user = _userEvent["default"].setup();
|
|
193
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
194
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
195
|
+
open: true,
|
|
196
|
+
onNextClick: handleNextClick,
|
|
197
|
+
onChange: handleChange,
|
|
198
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
199
|
+
})
|
|
200
|
+
}));
|
|
201
|
+
yield user.click(_react.screen.getByLabelText('Next'));
|
|
202
|
+
var nextClickExpected = {
|
|
203
|
+
type: 'onNextClick'
|
|
204
|
+
};
|
|
205
|
+
var changeExpected = {
|
|
206
|
+
type: 'onChange'
|
|
207
|
+
};
|
|
208
|
+
yield (0, _react.waitFor)(function () {
|
|
209
|
+
var nextClickActual = handleNextClick.mock.calls.length && handleNextClick.mock.calls[0][0];
|
|
210
|
+
expect(nextClickActual).toMatchObject(nextClickExpected);
|
|
211
|
+
});
|
|
212
|
+
yield (0, _react.waitFor)(function () {
|
|
213
|
+
var changeActual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
|
|
214
|
+
expect(changeActual).toMatchObject(changeExpected);
|
|
215
|
+
});
|
|
216
|
+
}));
|
|
217
|
+
test('should fire `onPrevClick` with type `onPrevClick` when the previous button is clicked', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
218
|
+
var handlePrevClick = jest.fn();
|
|
219
|
+
var user = _userEvent["default"].setup();
|
|
220
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
221
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
222
|
+
open: true,
|
|
223
|
+
onPrevClick: handlePrevClick,
|
|
224
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
225
|
+
})
|
|
226
|
+
}));
|
|
227
|
+
yield user.click(_react.screen.getByLabelText('Previous'));
|
|
228
|
+
var expected = {
|
|
229
|
+
type: 'onPrevClick'
|
|
230
|
+
};
|
|
231
|
+
yield (0, _react.waitFor)(function () {
|
|
232
|
+
var actual = handlePrevClick.mock.calls.length && handlePrevClick.mock.calls[0][0];
|
|
233
|
+
expect(actual).toMatchObject(expected);
|
|
234
|
+
});
|
|
235
|
+
}));
|
|
236
|
+
test('should close on back key when on first panel', function () {
|
|
237
|
+
var map = {};
|
|
238
|
+
window.addEventListener = jest.fn(function (event, cb) {
|
|
239
|
+
map[event] = cb;
|
|
240
|
+
});
|
|
241
|
+
var spy = jest.fn();
|
|
242
|
+
var _render10 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
243
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FlexiblePopupPanels, {
|
|
244
|
+
index: 0,
|
|
245
|
+
onClose: spy,
|
|
246
|
+
open: true,
|
|
247
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})
|
|
248
|
+
})
|
|
249
|
+
})),
|
|
250
|
+
unmount = _render10.unmount;
|
|
251
|
+
map.keyup({
|
|
252
|
+
type: 'keyup',
|
|
253
|
+
currentTarget: window,
|
|
254
|
+
keyCode: 27
|
|
255
|
+
});
|
|
256
|
+
var expectedEvent = {
|
|
257
|
+
type: 'onClose'
|
|
258
|
+
};
|
|
259
|
+
var actualEvent = spy.mock.calls.length && spy.mock.calls[0][0];
|
|
260
|
+
unmount();
|
|
261
|
+
expect(spy).toHaveBeenCalled();
|
|
262
|
+
expect(actualEvent).toMatchObject(expectedEvent);
|
|
263
|
+
});
|
|
264
|
+
test('should go back on back key when not on first panel', function () {
|
|
265
|
+
var map = {};
|
|
266
|
+
window.addEventListener = jest.fn(function (event, cb) {
|
|
267
|
+
map[event] = cb;
|
|
268
|
+
});
|
|
269
|
+
var spy = jest.fn();
|
|
270
|
+
var _render11 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
271
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.FlexiblePopupPanels, {
|
|
272
|
+
index: 1,
|
|
273
|
+
onBack: spy,
|
|
274
|
+
open: true,
|
|
275
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})]
|
|
276
|
+
})
|
|
277
|
+
})),
|
|
278
|
+
unmount = _render11.unmount;
|
|
279
|
+
map.keyup({
|
|
280
|
+
type: 'keyup',
|
|
281
|
+
currentTarget: window,
|
|
282
|
+
keyCode: 27
|
|
283
|
+
});
|
|
284
|
+
var expectedEvent = {
|
|
285
|
+
type: 'onBack'
|
|
286
|
+
};
|
|
287
|
+
var actualEvent = spy.mock.calls.length && spy.mock.calls[0][0];
|
|
288
|
+
unmount();
|
|
289
|
+
expect(spy).toHaveBeenCalled();
|
|
290
|
+
expect(actualEvent).toMatchObject(expectedEvent);
|
|
291
|
+
});
|
|
292
|
+
test('should correctly assign the fullHeight class', function () {
|
|
293
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
|
|
294
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.FlexiblePopupPanels, {
|
|
295
|
+
"data-testid": "flexiblePopupPanels",
|
|
296
|
+
fullHeight: true,
|
|
297
|
+
open: true,
|
|
298
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Panel, {})
|
|
299
|
+
})
|
|
300
|
+
}));
|
|
301
|
+
var expected = 'fullHeight';
|
|
302
|
+
var actual = _react.screen.getByTestId('flexiblePopupPanels').parentElement.parentElement;
|
|
303
|
+
expect(actual).toHaveClass(expected);
|
|
304
|
+
});
|
|
305
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.NavButtonFocusDecorator = void 0;
|
|
7
|
+
exports.useNavButtonFocus = useNavButtonFocus;
|
|
8
|
+
var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _FlexiblePopupPanelsModule = _interopRequireDefault(require("./FlexiblePopupPanels.module.css"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
var _excluded = ["index"];
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
19
|
+
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); }
|
|
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
|
+
var prevButtonSelector = ".".concat(_FlexiblePopupPanelsModule["default"].navCellBefore, " .").concat(_FlexiblePopupPanelsModule["default"].navButton);
|
|
23
|
+
var nextButtonSelector = ".".concat(_FlexiblePopupPanelsModule["default"].navCellAfter, " .").concat(_FlexiblePopupPanelsModule["default"].navButton);
|
|
24
|
+
function useNavButtonFocus(_ref) {
|
|
25
|
+
var index = _ref.index;
|
|
26
|
+
var autoFocus;
|
|
27
|
+
var _useRef = (0, _react.useRef)({
|
|
28
|
+
index: index
|
|
29
|
+
}),
|
|
30
|
+
ref = _useRef.current;
|
|
31
|
+
|
|
32
|
+
// on index change
|
|
33
|
+
if (index !== ref.index) {
|
|
34
|
+
var current = _spotlight["default"].getCurrent();
|
|
35
|
+
// if the currently focused component is a nav button
|
|
36
|
+
if (current && current.classList.contains(_FlexiblePopupPanelsModule["default"].navButton)) {
|
|
37
|
+
var prevButtonFocused = current.matches(prevButtonSelector);
|
|
38
|
+
|
|
39
|
+
// set autoFocus to point to the selector for the appropriate button
|
|
40
|
+
autoFocus = prevButtonFocused ? prevButtonSelector : nextButtonSelector;
|
|
41
|
+
}
|
|
42
|
+
ref.index = index;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
autoFocus: autoFocus
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
var NavButtonFocusDecorator = exports.NavButtonFocusDecorator = function NavButtonFocusDecorator(Wrapped) {
|
|
49
|
+
// eslint-disable-next-line no-shadow
|
|
50
|
+
function NavButtonFocusDecorator(_ref2) {
|
|
51
|
+
var index = _ref2.index,
|
|
52
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
53
|
+
var nav = useNavButtonFocus({
|
|
54
|
+
index: index
|
|
55
|
+
});
|
|
56
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread(_objectSpread({}, rest), nav), {}, {
|
|
57
|
+
index: index
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
NavButtonFocusDecorator.propTypes = {
|
|
61
|
+
index: _propTypes["default"].number
|
|
62
|
+
};
|
|
63
|
+
return NavButtonFocusDecorator;
|
|
64
|
+
};
|
|
65
|
+
var _default = exports["default"] = useNavButtonFocus;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Type definitions for limestone/FormCheckboxItem
|
|
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 FormCheckboxItemBaseProps extends limestone_Item_ItemProps {
|
|
11
|
+
/**
|
|
12
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
13
|
+
corresponding internal elements and states of this component.
|
|
14
|
+
*
|
|
15
|
+
* The following classes are supported:
|
|
16
|
+
* * `formCheckboxItem` - The root class name
|
|
17
|
+
*/
|
|
18
|
+
css?: object;
|
|
19
|
+
/**
|
|
20
|
+
* The icon content.
|
|
21
|
+
*
|
|
22
|
+
* May be specified as either:
|
|
23
|
+
* * A string that represents an icon from the ,
|
|
24
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
25
|
+
* * A URL specifying path to an icon image, or
|
|
26
|
+
* * An object representing a resolution independent resource (See )
|
|
27
|
+
*/
|
|
28
|
+
icon?: string | object;
|
|
29
|
+
/**
|
|
30
|
+
* Enables the "indeterminate" state.
|
|
31
|
+
*
|
|
32
|
+
* An indeterminate, mixed, or half-selected state is typically used in a hierarchy or group
|
|
33
|
+
to represent that some, not all, children are selected.
|
|
34
|
+
*
|
|
35
|
+
* NOTE: This does not prevent updating the `selected` state. Applications must control this
|
|
36
|
+
property directly.
|
|
37
|
+
*/
|
|
38
|
+
indeterminate?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The icon to be used in the `indeterminate` state.
|
|
41
|
+
*
|
|
42
|
+
* May be specified as either:
|
|
43
|
+
* * A string that represents an icon from the ,
|
|
44
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
45
|
+
* * A URL specifying path to an icon image, or
|
|
46
|
+
* * An object representing a resolution independent resource (See )
|
|
47
|
+
*/
|
|
48
|
+
indeterminateIcon?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Controls the presence of the checkmark icon.
|
|
51
|
+
*/
|
|
52
|
+
selected?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Nodes to be inserted after the checkbox and before `children` .
|
|
55
|
+
*/
|
|
56
|
+
slotBefore?: React.ReactNode;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A Limestone-styled form item with a checkbox component.
|
|
60
|
+
*
|
|
61
|
+
* Useful to show a selected state on an item inside a form.
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
export class FormCheckboxItemBase extends React.Component<
|
|
65
|
+
Merge<React.HTMLProps<HTMLElement>, FormCheckboxItemBaseProps>
|
|
66
|
+
> {}
|
|
67
|
+
|
|
68
|
+
export interface FormCheckboxItemDecoratorProps
|
|
69
|
+
extends ui_Toggleable_ToggleableProps {}
|
|
70
|
+
export function FormCheckboxItemDecorator<P>(
|
|
71
|
+
Component: React.ComponentType<P> | string,
|
|
72
|
+
): React.ComponentType<P & FormCheckboxItemDecoratorProps>;
|
|
73
|
+
|
|
74
|
+
export interface FormCheckboxItemProps
|
|
75
|
+
extends Merge<FormCheckboxItemBaseProps, FormCheckboxItemDecoratorProps> {}
|
|
76
|
+
/**
|
|
77
|
+
* A Limestone-styled form item with a checkbox component.
|
|
78
|
+
*
|
|
79
|
+
* `FormCheckboxItem` will manage its `selected` state via unless
|
|
80
|
+
set directly.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
export class FormCheckboxItem extends React.Component<
|
|
84
|
+
Merge<React.HTMLProps<HTMLElement>, FormCheckboxItemProps>
|
|
85
|
+
> {}
|
|
86
|
+
|
|
87
|
+
export default FormCheckboxItem;
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.FormCheckboxItemDecorator = exports.FormCheckboxItemBase = exports.FormCheckboxItem = 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 _react = require("react");
|
|
14
|
+
var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
15
|
+
var _Checkbox = require("../Checkbox");
|
|
16
|
+
var _Item = require("../Item");
|
|
17
|
+
var _FormCheckboxItemModule = _interopRequireDefault(require("./FormCheckboxItem.module.css"));
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
var _excluded = ["children", "css", "icon", "indeterminate", "indeterminateIcon", "selected", "slotBefore"];
|
|
20
|
+
/**
|
|
21
|
+
* Provides Limestone styled form item component and interactive toggleable checkbox.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <FormCheckboxItem>A Checkbox for a form</FormCheckboxItem>
|
|
25
|
+
*
|
|
26
|
+
* @module limestone/FormCheckboxItem
|
|
27
|
+
* @exports FormCheckboxItem
|
|
28
|
+
* @exports FormCheckboxItemBase
|
|
29
|
+
* @exports FormCheckboxItemDecorator
|
|
30
|
+
*/
|
|
31
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
32
|
+
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; }
|
|
33
|
+
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; }
|
|
34
|
+
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; }
|
|
35
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
36
|
+
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); }
|
|
37
|
+
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; }
|
|
38
|
+
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; }
|
|
39
|
+
var Item = (0, _Item.ItemDecorator)(_Item.ItemBase);
|
|
40
|
+
var Checkbox = (0, _Skinnable["default"])(_Checkbox.CheckboxBase);
|
|
41
|
+
var hasChildren = function hasChildren(children) {
|
|
42
|
+
return _react.Children.toArray(children).filter(Boolean).length > 0;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* A Limestone-styled form item with a checkbox component.
|
|
47
|
+
*
|
|
48
|
+
* Useful to show a selected state on an item inside a form.
|
|
49
|
+
*
|
|
50
|
+
* @class FormCheckboxItemBase
|
|
51
|
+
* @memberof limestone/FormCheckboxItem
|
|
52
|
+
* @extends limestone/Item.Item
|
|
53
|
+
* @ui
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
var FormCheckboxItemBase = exports.FormCheckboxItemBase = (0, _kind["default"])({
|
|
57
|
+
name: 'FormCheckboxItem',
|
|
58
|
+
propTypes: /** @lends limestone/FormCheckboxItem.FormCheckboxItemBase.prototype */{
|
|
59
|
+
/**
|
|
60
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
61
|
+
* corresponding internal elements and states of this component.
|
|
62
|
+
*
|
|
63
|
+
* The following classes are supported:
|
|
64
|
+
*
|
|
65
|
+
* * `formCheckboxItem` - The root class name
|
|
66
|
+
*
|
|
67
|
+
* @type {Object}
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
css: _propTypes["default"].object,
|
|
71
|
+
/**
|
|
72
|
+
* The icon content.
|
|
73
|
+
*
|
|
74
|
+
* May be specified as either:
|
|
75
|
+
*
|
|
76
|
+
* * A string that represents an icon from the {@link limestone/Icon.iconList|iconList},
|
|
77
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
78
|
+
* * A URL specifying path to an icon image, or
|
|
79
|
+
* * An object representing a resolution independent resource (See {@link ui/resolution})
|
|
80
|
+
*
|
|
81
|
+
* @type {String|Object}
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
85
|
+
/**
|
|
86
|
+
* Enables the "indeterminate" state.
|
|
87
|
+
*
|
|
88
|
+
* An indeterminate, mixed, or half-selected state is typically used in a hierarchy or group
|
|
89
|
+
* to represent that some, not all, children are selected.
|
|
90
|
+
*
|
|
91
|
+
* NOTE: This does not prevent updating the `selected` state. Applications must control this
|
|
92
|
+
* property directly.
|
|
93
|
+
*
|
|
94
|
+
* @type {Boolean}
|
|
95
|
+
* @public
|
|
96
|
+
*/
|
|
97
|
+
indeterminate: _propTypes["default"].bool,
|
|
98
|
+
/**
|
|
99
|
+
* The icon to be used in the `indeterminate` state.
|
|
100
|
+
*
|
|
101
|
+
* May be specified as either:
|
|
102
|
+
*
|
|
103
|
+
* * A string that represents an icon from the {@link limestone/Icon.iconList|iconList},
|
|
104
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
105
|
+
* * A URL specifying path to an icon image, or
|
|
106
|
+
* * An object representing a resolution independent resource (See {@link ui/resolution})
|
|
107
|
+
*
|
|
108
|
+
* @type {String}
|
|
109
|
+
* @public
|
|
110
|
+
*/
|
|
111
|
+
indeterminateIcon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
112
|
+
/**
|
|
113
|
+
* Controls the presence of the checkmark icon.
|
|
114
|
+
*
|
|
115
|
+
* @type {Boolean}
|
|
116
|
+
* @public
|
|
117
|
+
*/
|
|
118
|
+
selected: _propTypes["default"].bool,
|
|
119
|
+
/**
|
|
120
|
+
* Nodes to be inserted after the checkbox and before `children`.
|
|
121
|
+
*
|
|
122
|
+
* @type {Node}
|
|
123
|
+
* @public
|
|
124
|
+
*/
|
|
125
|
+
slotBefore: _propTypes["default"].node
|
|
126
|
+
},
|
|
127
|
+
styles: {
|
|
128
|
+
css: _FormCheckboxItemModule["default"],
|
|
129
|
+
className: 'formCheckboxItem',
|
|
130
|
+
publicClassNames: ['formCheckboxItem']
|
|
131
|
+
},
|
|
132
|
+
computed: {
|
|
133
|
+
className: function className(_ref) {
|
|
134
|
+
var slotBefore = _ref.slotBefore,
|
|
135
|
+
styler = _ref.styler;
|
|
136
|
+
return styler.append({
|
|
137
|
+
hasSlotBefore: hasChildren(slotBefore)
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
render: function render(_ref2) {
|
|
142
|
+
var children = _ref2.children,
|
|
143
|
+
css = _ref2.css,
|
|
144
|
+
icon = _ref2.icon,
|
|
145
|
+
indeterminate = _ref2.indeterminate,
|
|
146
|
+
indeterminateIcon = _ref2.indeterminateIcon,
|
|
147
|
+
selected = _ref2.selected,
|
|
148
|
+
slotBefore = _ref2.slotBefore,
|
|
149
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
150
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Item, _objectSpread(_objectSpread({
|
|
151
|
+
"data-webos-voice-intent": "SelectCheckItem",
|
|
152
|
+
role: "checkbox"
|
|
153
|
+
}, rest), {}, {
|
|
154
|
+
"aria-checked": selected,
|
|
155
|
+
css: css,
|
|
156
|
+
selected: selected,
|
|
157
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("slotBefore", {
|
|
158
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Checkbox, {
|
|
159
|
+
className: css.checkbox,
|
|
160
|
+
indeterminate: indeterminate,
|
|
161
|
+
indeterminateIcon: indeterminateIcon,
|
|
162
|
+
selected: selected,
|
|
163
|
+
standalone: true,
|
|
164
|
+
children: icon
|
|
165
|
+
}), slotBefore]
|
|
166
|
+
}), children]
|
|
167
|
+
}));
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Adds interactive functionality to `FormCheckboxItem`.
|
|
173
|
+
*
|
|
174
|
+
* @class FormCheckboxItemDecorator
|
|
175
|
+
* @memberof limestone/FormCheckboxItem
|
|
176
|
+
* @mixes ui/Toggleable.Toggleable
|
|
177
|
+
* @hoc
|
|
178
|
+
* @public
|
|
179
|
+
*/
|
|
180
|
+
var FormCheckboxItemDecorator = exports.FormCheckboxItemDecorator = (0, _compose["default"])((0, _Toggleable["default"])({
|
|
181
|
+
toggleProp: 'onClick'
|
|
182
|
+
}), (0, _Slottable["default"])({
|
|
183
|
+
slots: ['label', 'slotAfter', 'slotBefore']
|
|
184
|
+
}));
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* A Limestone-styled form item with a checkbox component.
|
|
188
|
+
*
|
|
189
|
+
* `FormCheckboxItem` will manage its `selected` state via {@link ui/Toggleable|Toggleable} unless
|
|
190
|
+
* set directly.
|
|
191
|
+
*
|
|
192
|
+
* @class FormCheckboxItem
|
|
193
|
+
* @memberof limestone/FormCheckboxItem
|
|
194
|
+
* @extends limestone/FormCheckboxItem.FormCheckboxItemBase
|
|
195
|
+
* @mixes limestone/FormCheckboxItem.FormCheckboxItemDecorator
|
|
196
|
+
* @ui
|
|
197
|
+
* @public
|
|
198
|
+
*/
|
|
199
|
+
var FormCheckboxItem = exports.FormCheckboxItem = (0, _Pure["default"])(FormCheckboxItemDecorator(FormCheckboxItemBase));
|
|
200
|
+
var _default = exports["default"] = FormCheckboxItem;
|