@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,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.DaySelectorDecorator = void 0;
|
|
7
|
+
exports.getSelectedDayString = getSelectedDayString;
|
|
8
|
+
var _handle = require("@enact/core/handle");
|
|
9
|
+
var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
|
|
10
|
+
var _util = require("@enact/core/util");
|
|
11
|
+
var _i18n = _interopRequireDefault(require("@enact/i18n"));
|
|
12
|
+
var _DateFmt = _interopRequireDefault(require("ilib/lib/DateFmt"));
|
|
13
|
+
var _LocaleInfo = _interopRequireDefault(require("ilib/lib/LocaleInfo"));
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
var _react = require("react");
|
|
16
|
+
var _$L = _interopRequireDefault(require("../internal/$L"));
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
var _excluded = ["dayNameLength", "locale", "selected"];
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
20
|
+
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; }
|
|
21
|
+
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; }
|
|
22
|
+
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; }
|
|
23
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
24
|
+
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); }
|
|
25
|
+
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; }
|
|
26
|
+
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; }
|
|
27
|
+
var SELECTED_DAY_TYPES = {
|
|
28
|
+
EVERY_DAY: 0,
|
|
29
|
+
EVERY_WEEKDAY: 1,
|
|
30
|
+
EVERY_WEEKEND: 2,
|
|
31
|
+
SELECTED_DAYS: 3,
|
|
32
|
+
SELECTED_NONE: 4
|
|
33
|
+
};
|
|
34
|
+
function localizeDay(day, firstDayOfWeek) {
|
|
35
|
+
return (day - firstDayOfWeek + 7) % 7;
|
|
36
|
+
}
|
|
37
|
+
function generalizeDay(day, firstDayOfWeek) {
|
|
38
|
+
return (day + firstDayOfWeek) % 7;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Accepts a localized array with "firstDayOfWeek" at index 0 and returns a
|
|
42
|
+
// "Sunday at index 0" array.
|
|
43
|
+
function generalizeSelected(selected, state) {
|
|
44
|
+
if (state.firstDayOfWeek === 0 || !selected) {
|
|
45
|
+
return selected;
|
|
46
|
+
}
|
|
47
|
+
return selected.map(function (v) {
|
|
48
|
+
return generalizeDay(v, state.firstDayOfWeek);
|
|
49
|
+
}).sort();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Accepts a "Sunday at index 0" selected array or number and returns a
|
|
53
|
+
// localized array or number.
|
|
54
|
+
function localizeSelected(selected, state) {
|
|
55
|
+
if (state.firstDayOfWeek === 0 || selected == null) {
|
|
56
|
+
return selected;
|
|
57
|
+
}
|
|
58
|
+
if (typeof selected === 'number') {
|
|
59
|
+
return localizeDay(selected, state.firstDayOfWeek);
|
|
60
|
+
}
|
|
61
|
+
return selected.map(function (v) {
|
|
62
|
+
return localizeDay(v, state.firstDayOfWeek);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
var memoLocaleState = (0, _util.memoize)(function (key, dayNameLength) {
|
|
66
|
+
var df = new _DateFmt["default"]({
|
|
67
|
+
length: 'full'
|
|
68
|
+
});
|
|
69
|
+
var sdf = new _DateFmt["default"]({
|
|
70
|
+
length: dayNameLength
|
|
71
|
+
});
|
|
72
|
+
var li = new _LocaleInfo["default"](_i18n["default"].getLocale());
|
|
73
|
+
var daysOfWeek = df.getDaysOfWeek();
|
|
74
|
+
var days = sdf.getDaysOfWeek();
|
|
75
|
+
var firstDayOfWeek = li.getFirstDayOfWeek();
|
|
76
|
+
var state = {
|
|
77
|
+
abbreviatedDayNames: days,
|
|
78
|
+
firstDayOfWeek: firstDayOfWeek,
|
|
79
|
+
fullDayNames: daysOfWeek,
|
|
80
|
+
weekendEnd: 0,
|
|
81
|
+
weekendStart: 6
|
|
82
|
+
};
|
|
83
|
+
if (li.getWeekEndStart) {
|
|
84
|
+
state.weekendStart = li.getWeekEndStart();
|
|
85
|
+
}
|
|
86
|
+
if (li.getWeekEndEnd) {
|
|
87
|
+
state.weekendEnd = li.getWeekEndEnd();
|
|
88
|
+
}
|
|
89
|
+
return state;
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// Accepts an array of names in "sunday at index 0" and returns a localized array
|
|
93
|
+
function orderDays(names, state) {
|
|
94
|
+
var result = [];
|
|
95
|
+
for (var i = 0; i < 7; i++) {
|
|
96
|
+
var index = generalizeDay(i, state.firstDayOfWeek);
|
|
97
|
+
result[i] = names[index];
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
function getLocaleState(dayNameLength, locale) {
|
|
102
|
+
if (typeof window === 'undefined') {
|
|
103
|
+
return {
|
|
104
|
+
abbreviatedDayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
|
105
|
+
firstDayOfWeek: 0,
|
|
106
|
+
fullDayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
|
107
|
+
weekendEnd: 0,
|
|
108
|
+
weekendStart: 6
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return memoLocaleState(dayNameLength + locale, dayNameLength);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/*
|
|
115
|
+
* Determines which day type should be returned, based on the selected indices.
|
|
116
|
+
*
|
|
117
|
+
* @param {Number[]} [selected] Array of day indexes
|
|
118
|
+
* @param {String[]} [dayNameLength] The format for names of days
|
|
119
|
+
* @param {String[]} [locale]
|
|
120
|
+
*
|
|
121
|
+
* @returns {Number}
|
|
122
|
+
*/
|
|
123
|
+
function calcSelectedDayType(selected, state) {
|
|
124
|
+
if (selected == null || !Array.isArray(selected)) return SELECTED_DAY_TYPES.SELECTED_NONE;
|
|
125
|
+
var weekendStart = false,
|
|
126
|
+
weekendEnd = false,
|
|
127
|
+
index;
|
|
128
|
+
var length = selected.length,
|
|
129
|
+
weekendLength = state.weekendStart === state.weekendEnd ? 1 : 2;
|
|
130
|
+
if (length === 0) return SELECTED_DAY_TYPES.SELECTED_NONE;
|
|
131
|
+
if (length === 7) return SELECTED_DAY_TYPES.EVERY_DAY;
|
|
132
|
+
for (var i = 0; i < length; i++) {
|
|
133
|
+
index = selected[i];
|
|
134
|
+
weekendStart = weekendStart || state.weekendStart === index;
|
|
135
|
+
weekendEnd = weekendEnd || state.weekendEnd === index;
|
|
136
|
+
}
|
|
137
|
+
if (weekendStart && weekendEnd && length === weekendLength) {
|
|
138
|
+
return SELECTED_DAY_TYPES.EVERY_WEEKEND;
|
|
139
|
+
} else if (!weekendStart && !weekendEnd && length === 7 - weekendLength) {
|
|
140
|
+
return SELECTED_DAY_TYPES.EVERY_WEEKDAY;
|
|
141
|
+
} else {
|
|
142
|
+
return SELECTED_DAY_TYPES.SELECTED_DAYS;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Determines whether it should return "Every Day", "Every Weekend", "Every Weekday" or list of
|
|
148
|
+
* days for a given selected day type.
|
|
149
|
+
*
|
|
150
|
+
* @memberof limestone/DayPicker
|
|
151
|
+
* @param {(Number|Number[])?} selected Selected day(s)
|
|
152
|
+
* @param {String} [noneText] String to be returned when no days are selected
|
|
153
|
+
* @param {String} [dayNameLength] The format for names of days
|
|
154
|
+
*
|
|
155
|
+
* @returns {String} "Every Day", "Every Weekend", "Every Week", list of days or `noneText`
|
|
156
|
+
*/
|
|
157
|
+
function getSelectedDayString(selected) {
|
|
158
|
+
var noneText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
159
|
+
var dayNameLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'long';
|
|
160
|
+
var everyDayText = (0, _$L["default"])('Every Day'),
|
|
161
|
+
everyWeekdayText = (0, _$L["default"])('Every Weekday'),
|
|
162
|
+
everyWeekendText = (0, _$L["default"])('Every Weekend'),
|
|
163
|
+
locale = _i18n["default"].getLocale();
|
|
164
|
+
var state = getLocaleState(dayNameLength, locale);
|
|
165
|
+
if (selected != null) {
|
|
166
|
+
selected = (0, _util.coerceArray)(selected);
|
|
167
|
+
}
|
|
168
|
+
var type = calcSelectedDayType(selected, state);
|
|
169
|
+
var format = function format(list) {
|
|
170
|
+
var separator = locale === 'fa-IR' ? '، ' : ', ';
|
|
171
|
+
|
|
172
|
+
// sort the selected array with firstDayOfWeek first before mapping to text
|
|
173
|
+
return list.slice().sort(function (a, b) {
|
|
174
|
+
return localizeDay(a, state.firstDayOfWeek) - localizeDay(b, state.firstDayOfWeek);
|
|
175
|
+
}).map(function (dayIndex) {
|
|
176
|
+
return state.abbreviatedDayNames[dayIndex];
|
|
177
|
+
}).join(separator);
|
|
178
|
+
};
|
|
179
|
+
switch (type) {
|
|
180
|
+
case SELECTED_DAY_TYPES.EVERY_DAY:
|
|
181
|
+
return everyDayText;
|
|
182
|
+
case SELECTED_DAY_TYPES.EVERY_WEEKEND:
|
|
183
|
+
return everyWeekendText;
|
|
184
|
+
case SELECTED_DAY_TYPES.EVERY_WEEKDAY:
|
|
185
|
+
return everyWeekdayText;
|
|
186
|
+
case SELECTED_DAY_TYPES.SELECTED_DAYS:
|
|
187
|
+
return format(selected);
|
|
188
|
+
case SELECTED_DAY_TYPES.SELECTED_NONE:
|
|
189
|
+
return noneText;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
var daySelectorDecoratorDefaultProps = {
|
|
193
|
+
dayNameLength: 'long',
|
|
194
|
+
disabled: false
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Applies Limestone specific behaviors to {@link limestone/DayPicker.DayPicker|DayPicker}.
|
|
199
|
+
*
|
|
200
|
+
* @hoc
|
|
201
|
+
* @memberof limestone/DayPicker
|
|
202
|
+
* @mixes ui/Changeable.Changeable
|
|
203
|
+
* @mixes limestone/Skinnable.Skinnable
|
|
204
|
+
* @omit onChange
|
|
205
|
+
* @omit value
|
|
206
|
+
* @omit defaultValue
|
|
207
|
+
* @private
|
|
208
|
+
*/
|
|
209
|
+
var DaySelectorDecorator = exports.DaySelectorDecorator = (0, _hoc["default"])(function (config, Wrapped) {
|
|
210
|
+
var DaySelector = function DaySelector(props) {
|
|
211
|
+
var daySelectorDecoratorProps = (0, _util.setDefaultProps)(props, daySelectorDecoratorDefaultProps);
|
|
212
|
+
var dayNameLength = daySelectorDecoratorProps.dayNameLength,
|
|
213
|
+
locale = daySelectorDecoratorProps.locale,
|
|
214
|
+
selected = daySelectorDecoratorProps.selected,
|
|
215
|
+
rest = _objectWithoutProperties(daySelectorDecoratorProps, _excluded);
|
|
216
|
+
var state = getLocaleState(dayNameLength, locale);
|
|
217
|
+
var localSelected = localizeSelected(selected, state);
|
|
218
|
+
var abbreviatedDayNames = orderDays(state.abbreviatedDayNames, state);
|
|
219
|
+
var fullDayNames = orderDays(state.fullDayNames, state);
|
|
220
|
+
var handleSelect = (0, _react.useCallback)(function (_ref) {
|
|
221
|
+
var selectedDay = _ref.selected;
|
|
222
|
+
// adjust the selected value beforehand so getSelectedDayString always operates on the
|
|
223
|
+
// standard, "Sunday as index 0" format
|
|
224
|
+
var generalSelected = generalizeSelected(selectedDay, state);
|
|
225
|
+
var content = getSelectedDayString(generalSelected, '', dayNameLength);
|
|
226
|
+
(0, _handle.forwardCustom)('onSelect', function () {
|
|
227
|
+
return {
|
|
228
|
+
selected: generalSelected,
|
|
229
|
+
content: content
|
|
230
|
+
};
|
|
231
|
+
})(null, daySelectorDecoratorProps);
|
|
232
|
+
}, [dayNameLength, daySelectorDecoratorProps, state]);
|
|
233
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread({}, rest), {}, {
|
|
234
|
+
onSelect: handleSelect,
|
|
235
|
+
selected: localSelected,
|
|
236
|
+
children: abbreviatedDayNames.map(function (children, index) {
|
|
237
|
+
return {
|
|
238
|
+
children: children,
|
|
239
|
+
// "short" dayNameLength can result in the same name so adding index
|
|
240
|
+
key: "".concat(index, " ").concat(children),
|
|
241
|
+
'aria-label': fullDayNames[index]
|
|
242
|
+
};
|
|
243
|
+
})
|
|
244
|
+
}));
|
|
245
|
+
};
|
|
246
|
+
DaySelector.displayName = 'DaySelectorDecorator';
|
|
247
|
+
DaySelector.propTypes = /** @lends limestone/DayPicker.DaySelectorDecorator.prototype */{
|
|
248
|
+
/**
|
|
249
|
+
* The "aria-label" for the selector.
|
|
250
|
+
*
|
|
251
|
+
* @memberof limestone/DayPicker.DaySelectorDecorator.prototype
|
|
252
|
+
* @type {String}
|
|
253
|
+
* @private
|
|
254
|
+
*/
|
|
255
|
+
'aria-label': _propTypes["default"].string,
|
|
256
|
+
/**
|
|
257
|
+
* The format for names of days.
|
|
258
|
+
*
|
|
259
|
+
* @type {('short'|'medium'|'long'|'full')}
|
|
260
|
+
* @default 'long'
|
|
261
|
+
* @public
|
|
262
|
+
*/
|
|
263
|
+
dayNameLength: _propTypes["default"].oneOf(['short', 'medium', 'long', 'full']),
|
|
264
|
+
/**
|
|
265
|
+
* Applies a disabled style and prevents interacting with the component.
|
|
266
|
+
*
|
|
267
|
+
* @type {Boolean}
|
|
268
|
+
* @default false
|
|
269
|
+
* @public
|
|
270
|
+
*/
|
|
271
|
+
disabled: _propTypes["default"].bool,
|
|
272
|
+
/**
|
|
273
|
+
* Current locale.
|
|
274
|
+
*
|
|
275
|
+
* @type {String}
|
|
276
|
+
* @public
|
|
277
|
+
*/
|
|
278
|
+
locale: _propTypes["default"].string,
|
|
279
|
+
/**
|
|
280
|
+
* Called when a day is selected or unselected.
|
|
281
|
+
*
|
|
282
|
+
* The event payload will be an object with the following members:
|
|
283
|
+
* * `selected` - An array of numbers representing the selected days, 0 indexed
|
|
284
|
+
* * `content` - Localized string representing the selected days
|
|
285
|
+
*
|
|
286
|
+
* @type {Function}
|
|
287
|
+
* @public
|
|
288
|
+
*/
|
|
289
|
+
onSelect: _propTypes["default"].func,
|
|
290
|
+
/**
|
|
291
|
+
* An array of numbers (0-indexed) representing the selected days of the week.
|
|
292
|
+
*
|
|
293
|
+
* @type {Number|Number[]}
|
|
294
|
+
* @public
|
|
295
|
+
*/
|
|
296
|
+
selected: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].arrayOf(_propTypes["default"].number)])
|
|
297
|
+
};
|
|
298
|
+
DaySelector.defaultPropValues = daySelectorDecoratorDefaultProps;
|
|
299
|
+
return DaySelector;
|
|
300
|
+
});
|
|
301
|
+
var _default = exports["default"] = DaySelectorDecorator;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _i18n = _interopRequireDefault(require("@enact/i18n"));
|
|
4
|
+
require("@testing-library/jest-dom");
|
|
5
|
+
var _react = require("@testing-library/react");
|
|
6
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
7
|
+
var _DayPicker = _interopRequireWildcard(require("../DayPicker"));
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
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); }
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
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); }
|
|
12
|
+
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); }); }; }
|
|
13
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
describe('DayPicker', function () {
|
|
17
|
+
test('should not select any item when there is no passed prop `selected`', function () {
|
|
18
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPicker["default"], {}));
|
|
19
|
+
var allDays = _react.screen.getAllByRole('checkbox');
|
|
20
|
+
var _iterator = _createForOfIteratorHelper(allDays),
|
|
21
|
+
_step;
|
|
22
|
+
try {
|
|
23
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
24
|
+
var day = _step.value;
|
|
25
|
+
expect(day).toHaveAttribute('aria-checked', 'false');
|
|
26
|
+
}
|
|
27
|
+
} catch (err) {
|
|
28
|
+
_iterator.e(err);
|
|
29
|
+
} finally {
|
|
30
|
+
_iterator.f();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
test('should select day when passed prop \'selected\'', function () {
|
|
34
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPicker["default"], {
|
|
35
|
+
selected: [1]
|
|
36
|
+
}));
|
|
37
|
+
var selectedDay = _react.screen.getAllByRole('checkbox')[2];
|
|
38
|
+
var expected = 'selected';
|
|
39
|
+
expect(selectedDay).toHaveClass(expected);
|
|
40
|
+
});
|
|
41
|
+
test('should select day when passed prop \'selected\' as a number', function () {
|
|
42
|
+
// We need to change the locale to firstDayOfWeek !== 0.
|
|
43
|
+
// If firstDayOfWeek === 0, the number type check conditional statement
|
|
44
|
+
// is skipped due to the fast execution path of localizeSelected(), which
|
|
45
|
+
// reduces code coverage.
|
|
46
|
+
_i18n["default"].setLocale('es-ES');
|
|
47
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPicker["default"], {
|
|
48
|
+
locale: "es-ES",
|
|
49
|
+
selected: 1
|
|
50
|
+
}));
|
|
51
|
+
var selectedDay = _react.screen.getAllByRole('checkbox')[1];
|
|
52
|
+
var expected = 'selected';
|
|
53
|
+
expect(selectedDay).toHaveClass(expected);
|
|
54
|
+
});
|
|
55
|
+
test('should emit an onSelect event with \'onSelect\' type when selecting days', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
56
|
+
_i18n["default"].setLocale('en-US');
|
|
57
|
+
var handleSelect = jest.fn();
|
|
58
|
+
var user = _userEvent["default"].setup();
|
|
59
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPicker["default"], {
|
|
60
|
+
onSelect: handleSelect
|
|
61
|
+
}));
|
|
62
|
+
var item = _react.screen.getAllByRole('checkbox')[2];
|
|
63
|
+
yield user.click(item);
|
|
64
|
+
expect(handleSelect).toHaveBeenCalledWith({
|
|
65
|
+
content: 'Mon',
|
|
66
|
+
selected: [1],
|
|
67
|
+
type: 'onSelect'
|
|
68
|
+
});
|
|
69
|
+
}));
|
|
70
|
+
test('should include \'content\' in onSelect event payload which respects dayNameLength', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
71
|
+
var handleSelect = jest.fn();
|
|
72
|
+
var user = _userEvent["default"].setup();
|
|
73
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPicker["default"], {
|
|
74
|
+
onSelect: handleSelect,
|
|
75
|
+
dayNameLength: "short"
|
|
76
|
+
}));
|
|
77
|
+
|
|
78
|
+
// select Monday
|
|
79
|
+
var item = _react.screen.getByText('Monday');
|
|
80
|
+
yield user.click(item);
|
|
81
|
+
var expected = {
|
|
82
|
+
// M is the "short" value from ilib for Monday
|
|
83
|
+
content: 'M'
|
|
84
|
+
};
|
|
85
|
+
var actual = handleSelect.mock.calls[0][0];
|
|
86
|
+
expect(actual).toMatchObject(expected);
|
|
87
|
+
}));
|
|
88
|
+
test('should return \'None\' when selected is null', function () {
|
|
89
|
+
var label = (0, _DayPicker.getSelectedDayString)(null, 'None');
|
|
90
|
+
var expected = 'None';
|
|
91
|
+
expect(label).toBe(expected);
|
|
92
|
+
});
|
|
93
|
+
test('should return \'None\' when selected is empty', function () {
|
|
94
|
+
var label = (0, _DayPicker.getSelectedDayString)([], 'None');
|
|
95
|
+
var expected = 'None';
|
|
96
|
+
expect(label).toBe(expected);
|
|
97
|
+
});
|
|
98
|
+
test('should return \'Every Weekend\' when all selected', function () {
|
|
99
|
+
var selected = [0, 6];
|
|
100
|
+
var label = (0, _DayPicker.getSelectedDayString)(selected);
|
|
101
|
+
var expected = 'Every Weekend';
|
|
102
|
+
expect(label).toBe(expected);
|
|
103
|
+
});
|
|
104
|
+
test('should return \'Every Weekday\' when all selected', function () {
|
|
105
|
+
var selected = [1, 2, 3, 4, 5];
|
|
106
|
+
var label = (0, _DayPicker.getSelectedDayString)(selected);
|
|
107
|
+
var expected = 'Every Weekday';
|
|
108
|
+
expect(label).toBe(expected);
|
|
109
|
+
});
|
|
110
|
+
test('should return \'Every Day\' when all selected', function () {
|
|
111
|
+
var selected = [0, 1, 2, 3, 4, 5, 6];
|
|
112
|
+
var label = (0, _DayPicker.getSelectedDayString)(selected);
|
|
113
|
+
var expected = 'Every Day';
|
|
114
|
+
expect(label).toBe(expected);
|
|
115
|
+
});
|
|
116
|
+
describe('with alternate first day of week', function () {
|
|
117
|
+
test('should accept and emit a generalized selected array', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
118
|
+
_i18n["default"].setLocale('es-ES');
|
|
119
|
+
var handleSelect = jest.fn();
|
|
120
|
+
var user = _userEvent["default"].setup();
|
|
121
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DayPicker["default"], {
|
|
122
|
+
defaultSelected: [0],
|
|
123
|
+
locale: "es-ES",
|
|
124
|
+
onSelect: handleSelect
|
|
125
|
+
}));
|
|
126
|
+
|
|
127
|
+
// select Lunes (Monday) which is the first day of the week for es-ES
|
|
128
|
+
var item = _react.screen.getAllByRole('checkbox')[0];
|
|
129
|
+
yield user.click(item);
|
|
130
|
+
var expected = {
|
|
131
|
+
// Expect Sunday (0) and Monday (1) to be selected
|
|
132
|
+
selected: [0, 1]
|
|
133
|
+
};
|
|
134
|
+
var actual = handleSelect.mock.calls[0][0];
|
|
135
|
+
expect(actual).toMatchObject(expected);
|
|
136
|
+
}));
|
|
137
|
+
});
|
|
138
|
+
});
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// Type definitions for limestone/Dropdown
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { ChangeableProps as ui_Changeable_ChangeableProps } from "@enact/ui/Changeable";
|
|
5
|
+
import { ToggleableProps as ui_Toggleable_ToggleableProps } from "@enact/ui/Toggleable";
|
|
6
|
+
import { SpotlightContainerDecoratorProps as spotlight_SpotlightContainerDecorator_SpotlightContainerDecoratorProps } from "@enact/spotlight/SpotlightContainerDecorator";
|
|
7
|
+
import { ButtonProps as limestone_Button_ButtonProps } from "limestone/Button";
|
|
8
|
+
import { ContextualPopupDecoratorProps as limestone_ContextualPopupDecorator_ContextualPopupDecoratorProps } from "limestone/ContextualPopupDecorator";
|
|
9
|
+
|
|
10
|
+
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
11
|
+
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
12
|
+
|
|
13
|
+
export interface DropdownBaseProps
|
|
14
|
+
extends Omit<
|
|
15
|
+
Merge<
|
|
16
|
+
limestone_Button_ButtonProps,
|
|
17
|
+
limestone_ContextualPopupDecorator_ContextualPopupDecoratorProps
|
|
18
|
+
>,
|
|
19
|
+
"popupComponent"
|
|
20
|
+
> {
|
|
21
|
+
/**
|
|
22
|
+
* The "aria-label" for the Dropdown.
|
|
23
|
+
*/
|
|
24
|
+
"aria-label"?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Items to be displayed in the `Dropdown` when `open` .
|
|
27
|
+
*
|
|
28
|
+
* Takes either an array of strings or an array of objects. When strings, the values will be
|
|
29
|
+
used in the generated components as the readable text. When objects, the properties will
|
|
30
|
+
be passed onto an `Item` component; `children` as well as a unique `key` properties are
|
|
31
|
+
required.
|
|
32
|
+
*/
|
|
33
|
+
children?:
|
|
34
|
+
| string[]
|
|
35
|
+
| {
|
|
36
|
+
key: number | string;
|
|
37
|
+
children: string | React.ComponentType;
|
|
38
|
+
[propName: string]: any;
|
|
39
|
+
}[];
|
|
40
|
+
/**
|
|
41
|
+
* Placement of the Dropdown.
|
|
42
|
+
*/
|
|
43
|
+
direction?: "above" | "below";
|
|
44
|
+
/**
|
|
45
|
+
* Disables Dropdown, making it non-interactive.
|
|
46
|
+
*/
|
|
47
|
+
disabled?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Called when the Dropdown is closing.
|
|
50
|
+
*/
|
|
51
|
+
onClose?: Function;
|
|
52
|
+
/**
|
|
53
|
+
* Called when the Dropdown is opening.
|
|
54
|
+
*/
|
|
55
|
+
onOpen?: Function;
|
|
56
|
+
/**
|
|
57
|
+
* Called when an item is selected.
|
|
58
|
+
*
|
|
59
|
+
* The event payload will be an object with the following members:
|
|
60
|
+
* * `data` - The value for the option as received in the `children` prop
|
|
61
|
+
* * `selected` - Number representing the selected option, 0 indexed
|
|
62
|
+
*/
|
|
63
|
+
onSelect?: Function;
|
|
64
|
+
/**
|
|
65
|
+
* Displays the items.
|
|
66
|
+
*/
|
|
67
|
+
open?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Text displayed in the Dropdown when nothing is selected.
|
|
70
|
+
*
|
|
71
|
+
* The placeholder will be replaced by the selected item.
|
|
72
|
+
*/
|
|
73
|
+
placeholder?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Index of the selected item.
|
|
76
|
+
*/
|
|
77
|
+
selected?: number;
|
|
78
|
+
/**
|
|
79
|
+
* The size of the Dropdown's component.
|
|
80
|
+
*/
|
|
81
|
+
size?: "large" | "small";
|
|
82
|
+
/**
|
|
83
|
+
* Primary title text of the Dropdown.
|
|
84
|
+
*/
|
|
85
|
+
title?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Width of the Dropdown.
|
|
88
|
+
*/
|
|
89
|
+
width?: "huge" | "large" | "x-large" | "medium" | "small" | "tiny" | number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* A stateless Dropdown component.
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
export class DropdownBase extends React.Component<
|
|
96
|
+
Merge<React.HTMLProps<HTMLElement>, DropdownBaseProps>
|
|
97
|
+
> {}
|
|
98
|
+
|
|
99
|
+
export interface DropdownDecoratorProps
|
|
100
|
+
extends Merge<
|
|
101
|
+
Merge<ui_Changeable_ChangeableProps, ui_Toggleable_ToggleableProps>,
|
|
102
|
+
spotlight_SpotlightContainerDecorator_SpotlightContainerDecoratorProps
|
|
103
|
+
> {
|
|
104
|
+
/**
|
|
105
|
+
* Displays the items.
|
|
106
|
+
*/
|
|
107
|
+
open?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Index of the selected item.
|
|
110
|
+
*/
|
|
111
|
+
selected?: number;
|
|
112
|
+
/**
|
|
113
|
+
* The initial selected index when `selected` is not defined.
|
|
114
|
+
*/
|
|
115
|
+
defaultSelected?: number;
|
|
116
|
+
}
|
|
117
|
+
export function DropdownDecorator<P>(
|
|
118
|
+
Component: React.ComponentType<P> | string,
|
|
119
|
+
): React.ComponentType<P & DropdownDecoratorProps>;
|
|
120
|
+
|
|
121
|
+
export interface DropdownProps extends DropdownBaseProps {}
|
|
122
|
+
/**
|
|
123
|
+
* A Limestone Dropdown component.
|
|
124
|
+
*
|
|
125
|
+
* By default, `Dropdown` maintains the state of its `selected` property. Supply the
|
|
126
|
+
`defaultSelected` property to control its initial value. If you wish to directly control updates
|
|
127
|
+
to the component, supply a value to `selected` at creation time and update it in response to
|
|
128
|
+
`onSelect` events.
|
|
129
|
+
*/
|
|
130
|
+
|
|
131
|
+
export class Dropdown extends React.Component<
|
|
132
|
+
Merge<React.HTMLProps<HTMLElement>, DropdownProps>
|
|
133
|
+
> {}
|
|
134
|
+
|
|
135
|
+
export default Dropdown;
|