@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,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.InputDecoratorIconBase = exports.InputDecoratorIcon = void 0;
|
|
7
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
10
|
+
var _util = require("../internal/util");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
var _excluded = ["children"];
|
|
13
|
+
/**
|
|
14
|
+
* The stateless functional base component for {@link limestone/Input.InputDecoratorIcon}.
|
|
15
|
+
*
|
|
16
|
+
* @class InputDecoratorIconBase
|
|
17
|
+
* @memberof limestone/Input
|
|
18
|
+
* @ui
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
25
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
26
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
27
|
+
function _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; }
|
|
28
|
+
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; }
|
|
29
|
+
var InputDecoratorIconBase = exports.InputDecoratorIconBase = (0, _kind["default"])({
|
|
30
|
+
name: 'InputDecoratorIcon',
|
|
31
|
+
propTypes: /** @lends limestone/Input.InputDecoratorIconBase.prototype */{
|
|
32
|
+
/**
|
|
33
|
+
* The position of the icon.
|
|
34
|
+
*
|
|
35
|
+
* @type {('before'|'after')}
|
|
36
|
+
* @required
|
|
37
|
+
*/
|
|
38
|
+
position: _propTypes["default"].oneOf(['before', 'after']).isRequired,
|
|
39
|
+
/**
|
|
40
|
+
* Icon to be displayed.
|
|
41
|
+
*
|
|
42
|
+
* @see {@link limestone/Icon.IconBase.children}
|
|
43
|
+
* @type {String|Object}
|
|
44
|
+
*/
|
|
45
|
+
children: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object])
|
|
46
|
+
},
|
|
47
|
+
render: function render(_ref) {
|
|
48
|
+
var children = _ref.children,
|
|
49
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
50
|
+
delete rest.position;
|
|
51
|
+
return children ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon["default"], _objectSpread(_objectSpread({}, rest), {}, {
|
|
52
|
+
children: children
|
|
53
|
+
})) : null;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* An icon displayed either before or after the input field of an {@link limestone/Input.Input}.
|
|
59
|
+
*
|
|
60
|
+
* @class InputDecoratorIcon
|
|
61
|
+
* @memberof limestone/Input
|
|
62
|
+
* @ui
|
|
63
|
+
* @private
|
|
64
|
+
*/
|
|
65
|
+
var InputDecoratorIcon = exports.InputDecoratorIcon = (0, _util.onlyUpdateForProps)(InputDecoratorIconBase, ['children', 'size']);
|
|
66
|
+
var _default = exports["default"] = InputDecoratorIcon;
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.InputSpotlightDecorator = void 0;
|
|
7
|
+
var _handle = require("@enact/core/handle");
|
|
8
|
+
var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
|
|
9
|
+
var _keymap = require("@enact/core/keymap");
|
|
10
|
+
var _spotlight = require("@enact/spotlight");
|
|
11
|
+
var _Pause = _interopRequireDefault(require("@enact/spotlight/Pause"));
|
|
12
|
+
var _Spottable = _interopRequireDefault(require("@enact/spotlight/Spottable"));
|
|
13
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
var _pointer = require("./pointer");
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
22
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
23
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
24
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
25
|
+
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); }
|
|
26
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
27
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
28
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
29
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
30
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
31
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
32
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
33
|
+
var isBubbling = function isBubbling(ev) {
|
|
34
|
+
return ev.currentTarget !== ev.target;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// A regex to check for input types that allow selectionStart
|
|
38
|
+
var SELECTABLE_TYPES = /text|password|search|tel|url/;
|
|
39
|
+
var isSelectionAtLocation = function isSelectionAtLocation(target, location) {
|
|
40
|
+
if (SELECTABLE_TYPES.test(target.type)) {
|
|
41
|
+
return target.selectionStart === location;
|
|
42
|
+
} else {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var handleKeyDown = (0, _handle.handle)((0, _handle.forwardWithPrevent)('onKeyDown'), (0, _handle.call)('onKeyDown'));
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Default config for {@link limestone/Input.InputSpotlightDecorator|InputSpotlightDecorator}
|
|
50
|
+
*
|
|
51
|
+
* @memberof limestone/Input/InputSpotlightDecorator.InputSpotlightDecorator
|
|
52
|
+
* @hocconfig
|
|
53
|
+
*/
|
|
54
|
+
var defaultConfig = {
|
|
55
|
+
/**
|
|
56
|
+
* Suppress the pointer lock behavior of limestone input
|
|
57
|
+
*
|
|
58
|
+
* @type {Boolean}
|
|
59
|
+
* @default false
|
|
60
|
+
* @memberof limestone/Input/InputSpotlightDecorator.InputSpotlightDecorator.defaultConfig
|
|
61
|
+
*/
|
|
62
|
+
noLockPointer: false
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* A higher-order component that manages the
|
|
67
|
+
* spotlight behavior for an {@link limestone/Input.Input}
|
|
68
|
+
*
|
|
69
|
+
* @class InputSpotlightDecorator
|
|
70
|
+
* @memberof limestone/Input/InputSpotlightDecorator
|
|
71
|
+
* @hoc
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
var InputSpotlightDecorator = exports.InputSpotlightDecorator = (0, _hoc["default"])(defaultConfig, function (config, Wrapped) {
|
|
75
|
+
var _Class;
|
|
76
|
+
var noLockPointer = config.noLockPointer;
|
|
77
|
+
var Component = (0, _Spottable["default"])({
|
|
78
|
+
emulateMouse: false
|
|
79
|
+
}, Wrapped);
|
|
80
|
+
var forwardBlur = (0, _handle.forward)('onBlur');
|
|
81
|
+
var forwardMouseDown = (0, _handle.forward)('onMouseDown');
|
|
82
|
+
var forwardFocus = (0, _handle.forward)('onFocus');
|
|
83
|
+
var forwardKeyUp = (0, _handle.forward)('onKeyUp');
|
|
84
|
+
return _Class = /*#__PURE__*/function (_ReactComponent) {
|
|
85
|
+
function _Class(props) {
|
|
86
|
+
var _this;
|
|
87
|
+
_classCallCheck(this, _Class);
|
|
88
|
+
_this = _callSuper(this, _Class, [props]);
|
|
89
|
+
_this.updateFocus = function () {
|
|
90
|
+
// focus node if `InputSpotlightDecorator` is pausing Spotlight or if Spotlight is paused
|
|
91
|
+
if (_this.node && _spotlight.Spotlight.getCurrent() !== _this.node && (_this.paused.isPaused() || !_spotlight.Spotlight.isPaused())) {
|
|
92
|
+
if (_this.fromMouse) {
|
|
93
|
+
_this.node.focus({
|
|
94
|
+
preventScroll: true
|
|
95
|
+
});
|
|
96
|
+
} else {
|
|
97
|
+
_this.node.focus();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
var focusChanged = _this.focused !== _this.prevStatus.focused;
|
|
101
|
+
if (focusChanged) {
|
|
102
|
+
if (_this.focused === 'input') {
|
|
103
|
+
(0, _handle.forwardCustom)('onActivate')(null, _this.props);
|
|
104
|
+
if (!noLockPointer) {
|
|
105
|
+
(0, _pointer.lockPointer)(_this.node);
|
|
106
|
+
}
|
|
107
|
+
_this.paused.pause();
|
|
108
|
+
} else if (_this.prevStatus.focused === 'input') {
|
|
109
|
+
(0, _handle.forwardCustom)('onDeactivate')(null, _this.props);
|
|
110
|
+
if (!noLockPointer) {
|
|
111
|
+
(0, _pointer.releasePointer)(_this.prevStatus.node);
|
|
112
|
+
}
|
|
113
|
+
_this.paused.resume();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
_this.prevStatus.focused = _this.focused;
|
|
117
|
+
_this.prevStatus.node = _this.node;
|
|
118
|
+
};
|
|
119
|
+
_this.focus = function (focused, node, fromMouse) {
|
|
120
|
+
_this.focused = focused;
|
|
121
|
+
_this.node = node;
|
|
122
|
+
_this.fromMouse = fromMouse;
|
|
123
|
+
_this.updateFocus();
|
|
124
|
+
};
|
|
125
|
+
_this.blur = function () {
|
|
126
|
+
if (_this.focused || _this.node) {
|
|
127
|
+
_this.focused = null;
|
|
128
|
+
_this.node = null;
|
|
129
|
+
_this.updateFocus();
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
_this.focusDecorator = function (decorator) {
|
|
133
|
+
_this.focus('decorator', decorator, false);
|
|
134
|
+
};
|
|
135
|
+
_this.focusInput = function (decorator, fromMouse) {
|
|
136
|
+
_this.focus('input', decorator.querySelector('input'), fromMouse);
|
|
137
|
+
};
|
|
138
|
+
_this.onBlur = function (ev) {
|
|
139
|
+
if (!_this.props.autoFocus) {
|
|
140
|
+
if (isBubbling(ev)) {
|
|
141
|
+
if (_spotlight.Spotlight.getPointerMode()) {
|
|
142
|
+
_this.blur();
|
|
143
|
+
forwardBlur(ev, _this.props);
|
|
144
|
+
} else {
|
|
145
|
+
_this.focused = 'decorator';
|
|
146
|
+
_this.node = ev.currentTarget;
|
|
147
|
+
_this.fromMouse = false;
|
|
148
|
+
ev.stopPropagation();
|
|
149
|
+
}
|
|
150
|
+
} else if (!ev.currentTarget.contains(ev.relatedTarget)) {
|
|
151
|
+
// Blurring decorator but not focusing input
|
|
152
|
+
forwardBlur(ev, _this.props);
|
|
153
|
+
_this.blur();
|
|
154
|
+
}
|
|
155
|
+
} else if (isBubbling(ev)) {
|
|
156
|
+
if (_this.focused === 'input' && _this.node === ev.target && ev.currentTarget !== ev.relatedTarget) {
|
|
157
|
+
_this.blur();
|
|
158
|
+
forwardBlur(ev, _this.props);
|
|
159
|
+
} else {
|
|
160
|
+
_this.focusDecorator(ev.currentTarget);
|
|
161
|
+
ev.stopPropagation();
|
|
162
|
+
_this.blur();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
_this.onMouseDown = function (ev) {
|
|
167
|
+
var _this$props = _this.props,
|
|
168
|
+
disabled = _this$props.disabled,
|
|
169
|
+
spotlightDisabled = _this$props.spotlightDisabled;
|
|
170
|
+
_this.setDownTarget(ev);
|
|
171
|
+
// focus the <input> whenever clicking on any part of the component to ensure both that
|
|
172
|
+
// the <input> has focus and Spotlight is paused.
|
|
173
|
+
if (!disabled && !spotlightDisabled) {
|
|
174
|
+
_this.focusInput(ev.currentTarget, true);
|
|
175
|
+
}
|
|
176
|
+
forwardMouseDown(ev, _this.props);
|
|
177
|
+
};
|
|
178
|
+
_this.onFocus = function (ev) {
|
|
179
|
+
forwardFocus(ev, _this.props);
|
|
180
|
+
|
|
181
|
+
// when in autoFocus mode, focusing the decorator directly will cause it to
|
|
182
|
+
// forward the focus onto the <input>
|
|
183
|
+
if (!isBubbling(ev) && _this.props.autoFocus && _this.focused === null && !_spotlight.Spotlight.getPointerMode()) {
|
|
184
|
+
_this.focusInput(ev.currentTarget, false);
|
|
185
|
+
ev.stopPropagation();
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
_this.onKeyUp = function (ev) {
|
|
189
|
+
var dismissOnEnter = _this.props.dismissOnEnter;
|
|
190
|
+
var currentTarget = ev.currentTarget,
|
|
191
|
+
keyCode = ev.keyCode,
|
|
192
|
+
target = ev.target;
|
|
193
|
+
|
|
194
|
+
// verify that we have a matching pair of key down/up events to avoid adjusting focus
|
|
195
|
+
// when the component received focus mid-press
|
|
196
|
+
if (target === _this.downTarget) {
|
|
197
|
+
_this.downTarget = null;
|
|
198
|
+
if (!_this.props.disabled) {
|
|
199
|
+
if (_this.focused === 'input' && dismissOnEnter && (0, _keymap.is)('enter', keyCode)) {
|
|
200
|
+
_this.focusDecorator(currentTarget);
|
|
201
|
+
// prevent Enter onKeyPress which triggers an onMouseDown via Spotlight
|
|
202
|
+
ev.preventDefault();
|
|
203
|
+
} else if (_this.focused !== 'input' && (0, _keymap.is)('enter', keyCode)) {
|
|
204
|
+
_this.focusInput(currentTarget, false);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
forwardKeyUp(ev, _this.props);
|
|
209
|
+
};
|
|
210
|
+
_this.focused = null;
|
|
211
|
+
_this.node = null;
|
|
212
|
+
_this.fromMouse = false;
|
|
213
|
+
_this.paused = new _Pause["default"]('InputSpotlightDecorator');
|
|
214
|
+
_this.handleKeyDown = handleKeyDown.bind(_this);
|
|
215
|
+
_this.prevStatus = {
|
|
216
|
+
focused: null,
|
|
217
|
+
node: null
|
|
218
|
+
};
|
|
219
|
+
return _this;
|
|
220
|
+
}
|
|
221
|
+
_inherits(_Class, _ReactComponent);
|
|
222
|
+
return _createClass(_Class, [{
|
|
223
|
+
key: "componentWillUnmount",
|
|
224
|
+
value: function componentWillUnmount() {
|
|
225
|
+
this.paused.resume();
|
|
226
|
+
if (this.focused === 'input') {
|
|
227
|
+
var onSpotlightDisappear = this.props.onSpotlightDisappear;
|
|
228
|
+
if (onSpotlightDisappear) {
|
|
229
|
+
onSpotlightDisappear();
|
|
230
|
+
}
|
|
231
|
+
if (!noLockPointer) {
|
|
232
|
+
(0, _pointer.releasePointer)(this.node);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}, {
|
|
237
|
+
key: "onKeyDown",
|
|
238
|
+
value: function onKeyDown(ev) {
|
|
239
|
+
var currentTarget = ev.currentTarget,
|
|
240
|
+
keyCode = ev.keyCode,
|
|
241
|
+
target = ev.target;
|
|
242
|
+
|
|
243
|
+
// cache the target if this is the first keyDown event to ensure the component had focus
|
|
244
|
+
// when the key interaction started
|
|
245
|
+
this.setDownTarget(ev);
|
|
246
|
+
if (this.focused === 'input') {
|
|
247
|
+
var isDown = (0, _keymap.is)('down', keyCode);
|
|
248
|
+
var isLeft = (0, _keymap.is)('left', keyCode);
|
|
249
|
+
var isRight = (0, _keymap.is)('right', keyCode);
|
|
250
|
+
var isUp = (0, _keymap.is)('up', keyCode);
|
|
251
|
+
|
|
252
|
+
// move spotlight
|
|
253
|
+
var shouldSpotlightMove =
|
|
254
|
+
// No value exists! (Can happen when disabled)
|
|
255
|
+
target.value == null ||
|
|
256
|
+
// on left + at beginning of selection
|
|
257
|
+
isLeft && isSelectionAtLocation(target, 0) ||
|
|
258
|
+
// on right + at end of selection (note: fails on non-selectable types usually)
|
|
259
|
+
isRight && isSelectionAtLocation(target, target.value.length) ||
|
|
260
|
+
// on up
|
|
261
|
+
isUp ||
|
|
262
|
+
// on down
|
|
263
|
+
isDown;
|
|
264
|
+
|
|
265
|
+
// prevent modifying the value via 5-way for numeric fields
|
|
266
|
+
if ((isUp || isDown) && target.type === 'number') {
|
|
267
|
+
ev.preventDefault();
|
|
268
|
+
}
|
|
269
|
+
if (shouldSpotlightMove) {
|
|
270
|
+
var direction = (0, _spotlight.getDirection)(keyCode);
|
|
271
|
+
var getPointerMode = _spotlight.Spotlight.getPointerMode,
|
|
272
|
+
move = _spotlight.Spotlight.move,
|
|
273
|
+
resetKeyHoldState = _spotlight.Spotlight.resetKeyHoldState,
|
|
274
|
+
setPointerMode = _spotlight.Spotlight.setPointerMode;
|
|
275
|
+
if (getPointerMode()) {
|
|
276
|
+
setPointerMode(false);
|
|
277
|
+
}
|
|
278
|
+
(0, _handle.stopImmediate)(ev);
|
|
279
|
+
this.paused.resume();
|
|
280
|
+
|
|
281
|
+
// Move spotlight in the keypress direction
|
|
282
|
+
if (move(direction)) {
|
|
283
|
+
// if successful, reset the internal state
|
|
284
|
+
this.blur();
|
|
285
|
+
resetKeyHoldState();
|
|
286
|
+
} else {
|
|
287
|
+
// if there is no other spottable elements, focus `InputDecorator` instead
|
|
288
|
+
this.focusDecorator(currentTarget);
|
|
289
|
+
}
|
|
290
|
+
} else if (isLeft || isRight) {
|
|
291
|
+
// prevent 5-way nav for left/right keys within the <input>
|
|
292
|
+
(0, _handle.stopImmediate)(ev);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}, {
|
|
297
|
+
key: "setDownTarget",
|
|
298
|
+
value: function setDownTarget(ev) {
|
|
299
|
+
var repeat = ev.repeat,
|
|
300
|
+
target = ev.target;
|
|
301
|
+
if (!repeat) {
|
|
302
|
+
this.downTarget = target;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}, {
|
|
306
|
+
key: "render",
|
|
307
|
+
value: function render() {
|
|
308
|
+
var props = Object.assign({}, this.props);
|
|
309
|
+
delete props.autoFocus;
|
|
310
|
+
delete props.onActivate;
|
|
311
|
+
delete props.onDeactivate;
|
|
312
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, _objectSpread(_objectSpread({}, props), {}, {
|
|
313
|
+
onBlur: this.onBlur,
|
|
314
|
+
onMouseDown: this.onMouseDown,
|
|
315
|
+
onFocus: this.onFocus,
|
|
316
|
+
onKeyDown: this.handleKeyDown,
|
|
317
|
+
onKeyUp: this.onKeyUp
|
|
318
|
+
}));
|
|
319
|
+
}
|
|
320
|
+
}]);
|
|
321
|
+
}(_react.Component), _Class.displayName = 'InputSpotlightDecorator', _Class.propTypes = /** @lends limestone/Input/InputSpotlightDecorator.InputSpotlightDecorator.prototype */{
|
|
322
|
+
/**
|
|
323
|
+
* Focuses the <input> when the decorator is focused via 5-way.
|
|
324
|
+
*
|
|
325
|
+
* @type {Boolean}
|
|
326
|
+
* @default false
|
|
327
|
+
* @public
|
|
328
|
+
*/
|
|
329
|
+
autoFocus: _propTypes["default"].bool,
|
|
330
|
+
/**
|
|
331
|
+
* Applies a disabled style and the control becomes non-interactive.
|
|
332
|
+
*
|
|
333
|
+
* @type {Boolean}
|
|
334
|
+
* @default false
|
|
335
|
+
* @public
|
|
336
|
+
*/
|
|
337
|
+
disabled: _propTypes["default"].bool,
|
|
338
|
+
/**
|
|
339
|
+
* Blurs the input when the "enter" key is pressed.
|
|
340
|
+
*
|
|
341
|
+
* @type {Boolean}
|
|
342
|
+
* @default false
|
|
343
|
+
* @public
|
|
344
|
+
*/
|
|
345
|
+
dismissOnEnter: _propTypes["default"].bool,
|
|
346
|
+
/**
|
|
347
|
+
* Called when the internal <input> is focused.
|
|
348
|
+
*
|
|
349
|
+
* @type {Function}
|
|
350
|
+
* @param {Object} event
|
|
351
|
+
* @public
|
|
352
|
+
*/
|
|
353
|
+
onActivate: _propTypes["default"].func,
|
|
354
|
+
/**
|
|
355
|
+
* Called when the internal <input> loses focus.
|
|
356
|
+
*
|
|
357
|
+
* @type {Function}
|
|
358
|
+
* @param {Object} event
|
|
359
|
+
* @public
|
|
360
|
+
*/
|
|
361
|
+
onDeactivate: _propTypes["default"].func,
|
|
362
|
+
/**
|
|
363
|
+
* Called when the component is removed while retaining focus.
|
|
364
|
+
*
|
|
365
|
+
* @type {Function}
|
|
366
|
+
* @param {Object} event
|
|
367
|
+
* @public
|
|
368
|
+
*/
|
|
369
|
+
onSpotlightDisappear: _propTypes["default"].func,
|
|
370
|
+
/**
|
|
371
|
+
* Disables spotlight navigation into the component.
|
|
372
|
+
*
|
|
373
|
+
* @type {Boolean}
|
|
374
|
+
* @default false
|
|
375
|
+
* @public
|
|
376
|
+
*/
|
|
377
|
+
spotlightDisabled: _propTypes["default"].bool
|
|
378
|
+
}, _Class;
|
|
379
|
+
});
|
|
380
|
+
var _default = exports["default"] = InputSpotlightDecorator;
|
package/Input/Keypad.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _keymap = require("@enact/core/keymap");
|
|
9
|
+
var _handle = require("@enact/core/handle");
|
|
10
|
+
var _SpotlightContainerDecorator = require("@enact/spotlight/SpotlightContainerDecorator");
|
|
11
|
+
var _Layout = _interopRequireWildcard(require("@enact/ui/Layout"));
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _Button = _interopRequireDefault(require("../Button"));
|
|
14
|
+
var _$L = _interopRequireDefault(require("../internal/$L"));
|
|
15
|
+
var _WindowEventable = _interopRequireDefault(require("../internal/WindowEventable"));
|
|
16
|
+
var _InputModule = _interopRequireDefault(require("./Input.module.css"));
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
var _excluded = ["children"],
|
|
19
|
+
_excluded2 = ["disabled", "onAdd", "onRemove"];
|
|
20
|
+
/*
|
|
21
|
+
* A keypad used to display a sequence of numbers and buttons, like a keyboard.
|
|
22
|
+
*/
|
|
23
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
24
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
25
|
+
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; }
|
|
26
|
+
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; }
|
|
27
|
+
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; }
|
|
28
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
29
|
+
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); }
|
|
30
|
+
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; }
|
|
31
|
+
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; }
|
|
32
|
+
(0, _keymap.add)('number', [48, 49, 50, 51, 52, 53, 54, 55, 56, 57]); // Establish all number keys as 'number' keyword.
|
|
33
|
+
(0, _keymap.add)('backspace', 8);
|
|
34
|
+
var KEY_LIST = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'backspace'];
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* A key used inside a Keypad Layout component.
|
|
38
|
+
*/
|
|
39
|
+
var Key = (0, _kind["default"])({
|
|
40
|
+
name: 'Key',
|
|
41
|
+
propTypes: {
|
|
42
|
+
disabled: _propTypes["default"].bool,
|
|
43
|
+
// Event callback fired when this button is clicked. Includes the 'key' key in its event
|
|
44
|
+
// payload to let the clicker know what was clicked inside their callback.
|
|
45
|
+
onKeyButtonClick: _propTypes["default"].func
|
|
46
|
+
},
|
|
47
|
+
styles: {
|
|
48
|
+
css: _InputModule["default"],
|
|
49
|
+
className: 'key'
|
|
50
|
+
},
|
|
51
|
+
handlers: {
|
|
52
|
+
onClick: (0, _handle.handle)((0, _handle.forward)('onClick'), (0, _handle.forwardCustom)('onKeyButtonClick', function (ev, _ref) {
|
|
53
|
+
var key = _ref.children;
|
|
54
|
+
return {
|
|
55
|
+
key: key
|
|
56
|
+
};
|
|
57
|
+
}))
|
|
58
|
+
},
|
|
59
|
+
render: function render(_ref2) {
|
|
60
|
+
var children = _ref2.children,
|
|
61
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
62
|
+
delete rest.onKeyButtonClick;
|
|
63
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], _objectSpread(_objectSpread({
|
|
64
|
+
css: _InputModule["default"]
|
|
65
|
+
}, rest), {}, {
|
|
66
|
+
size: "large",
|
|
67
|
+
icon: children
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
var Keypad = (0, _kind["default"])({
|
|
72
|
+
name: 'Keypad',
|
|
73
|
+
propTypes: {
|
|
74
|
+
disabled: _propTypes["default"].bool,
|
|
75
|
+
onAdd: _propTypes["default"].func,
|
|
76
|
+
onRemove: _propTypes["default"].func
|
|
77
|
+
},
|
|
78
|
+
styles: {
|
|
79
|
+
css: _InputModule["default"],
|
|
80
|
+
className: 'keypad'
|
|
81
|
+
},
|
|
82
|
+
render: function render(_ref3) {
|
|
83
|
+
var disabled = _ref3.disabled,
|
|
84
|
+
onAdd = _ref3.onAdd,
|
|
85
|
+
onRemove = _ref3.onRemove,
|
|
86
|
+
rest = _objectWithoutProperties(_ref3, _excluded2);
|
|
87
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout["default"], _objectSpread(_objectSpread({
|
|
88
|
+
align: "center end",
|
|
89
|
+
wrap: true
|
|
90
|
+
}, rest), {}, {
|
|
91
|
+
inline: true,
|
|
92
|
+
children: KEY_LIST.map(function (keyText, rowIndex) {
|
|
93
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
94
|
+
className: rowIndex === 0 ? _SpotlightContainerDecorator.spotlightDefaultClass : null,
|
|
95
|
+
"aria-label": keyText === 'backspace' ? (0, _$L["default"])('backspace') : keyText,
|
|
96
|
+
shrink: true,
|
|
97
|
+
component: Key,
|
|
98
|
+
disabled: disabled,
|
|
99
|
+
onKeyButtonClick: keyText === 'backspace' ? onRemove : onAdd,
|
|
100
|
+
children: keyText
|
|
101
|
+
}, "key".concat(rowIndex, "-").concat(keyText));
|
|
102
|
+
})
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// Set up a keypress handler for window that monitors each of the number keys and the backspace key
|
|
108
|
+
var handleWindowKeyPress = (0, _handle.handle)((0, _handle.oneOf)([(0, _handle.forKey)('number'), (0, _handle.forward)('onAdd')], [(0, _handle.forKey)('backspace'), (0, _handle.forward)('onRemove')]));
|
|
109
|
+
var _default = exports["default"] = (0, _WindowEventable["default"])({
|
|
110
|
+
onKeyDown: handleWindowKeyPress
|
|
111
|
+
}, Keypad);
|