@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,372 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.RangePickerBase = exports.RangePicker = void 0;
|
|
7
|
+
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
8
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
9
|
+
var _util = require("@enact/core/util");
|
|
10
|
+
var _Changeable = _interopRequireDefault(require("@enact/ui/Changeable"));
|
|
11
|
+
var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _Heading = _interopRequireDefault(require("../Heading"));
|
|
14
|
+
var _Picker = require("../internal/Picker");
|
|
15
|
+
var _validators = require("../internal/validators");
|
|
16
|
+
var _RangePickerModule = _interopRequireDefault(require("./RangePicker.module.css"));
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
var _excluded = ["css", "label", "inlineTitle", "title", "value", "voiceLabel"];
|
|
19
|
+
/**
|
|
20
|
+
* A component for selecting a number from a range of numbers.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* <RangePicker defaultValue={70} min={0} max={100}></RangePicker>
|
|
24
|
+
*
|
|
25
|
+
* @module limestone/RangePicker
|
|
26
|
+
* @exports RangePicker
|
|
27
|
+
* @exports RangePickerBase
|
|
28
|
+
*/
|
|
29
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
30
|
+
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; }
|
|
31
|
+
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; }
|
|
32
|
+
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; }
|
|
33
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
34
|
+
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); }
|
|
35
|
+
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; }
|
|
36
|
+
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; }
|
|
37
|
+
var digits = function digits(num) {
|
|
38
|
+
// minor optimization
|
|
39
|
+
return num > -10 && num < 10 && 1 || num > -100 && num < 100 && 2 || num > -1000 && num < 1000 && 3 || Math.floor(Math.log(Math.abs(num)) * Math.LOG10E) + 1;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* RangePicker base component.
|
|
44
|
+
*
|
|
45
|
+
* @class RangePickerBase
|
|
46
|
+
* @memberof limestone/RangePicker
|
|
47
|
+
* @ui
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
var RangePickerBase = exports.RangePickerBase = (0, _kind["default"])({
|
|
51
|
+
name: 'RangePicker',
|
|
52
|
+
propTypes: /** @lends limestone/RangePicker.RangePickerBase.prototype */{
|
|
53
|
+
/**
|
|
54
|
+
* The maximum value selectable by the picker (inclusive).
|
|
55
|
+
*
|
|
56
|
+
* The range between `min` and `max` should be evenly divisible by
|
|
57
|
+
* {@link limestone/RangePicker.RangePickerBase.step|step}.
|
|
58
|
+
*
|
|
59
|
+
* @type {Number}
|
|
60
|
+
* @required
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
max: _propTypes["default"].number.isRequired,
|
|
64
|
+
/**
|
|
65
|
+
* The minimum value selectable by the picker (inclusive).
|
|
66
|
+
*
|
|
67
|
+
* The range between `min` and `max` should be evenly divisible by
|
|
68
|
+
* {@link limestone/RangePicker.RangePickerBase.step|step}.
|
|
69
|
+
*
|
|
70
|
+
* @type {Number}
|
|
71
|
+
* @required
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
min: _propTypes["default"].number.isRequired,
|
|
75
|
+
/**
|
|
76
|
+
* Current value.
|
|
77
|
+
*
|
|
78
|
+
* @type {Number}
|
|
79
|
+
* @required
|
|
80
|
+
* @public
|
|
81
|
+
*/
|
|
82
|
+
value: _propTypes["default"].number.isRequired,
|
|
83
|
+
/**
|
|
84
|
+
* The `aria-valuetext` for the picker.
|
|
85
|
+
*
|
|
86
|
+
* By default, `aria-valuetext` is set to the current selected child value.
|
|
87
|
+
*
|
|
88
|
+
* @type {String}
|
|
89
|
+
* @memberof limestone/RangePicker.RangePickerBase.prototype
|
|
90
|
+
* @public
|
|
91
|
+
*/
|
|
92
|
+
'aria-valuetext': _propTypes["default"].string,
|
|
93
|
+
/**
|
|
94
|
+
* Determines which key to adjust the picker's value for the joined horizontal one.
|
|
95
|
+
*
|
|
96
|
+
* * `'enter'` allows the user to use the enter key to adjust the picker's value
|
|
97
|
+
* * `'arrow'` allows the user to use the left or right keys to adjust the picker's value.
|
|
98
|
+
*
|
|
99
|
+
* The default value for joined horizontal picker is `'enter'`.
|
|
100
|
+
* If {@link limestone/RangePicker.RangePickerBase.orientation|orientation} is `'vertical'` or
|
|
101
|
+
* {@link limestone/RangePicker.RangePickerBase.joined|joined} is undefined or is `false`, this prop is ignored.
|
|
102
|
+
*
|
|
103
|
+
* @type {('enter'|'arrow')}
|
|
104
|
+
* @public
|
|
105
|
+
*/
|
|
106
|
+
changedBy: _propTypes["default"].oneOf(['enter', 'arrow']),
|
|
107
|
+
/**
|
|
108
|
+
* Children from which to pick.
|
|
109
|
+
*
|
|
110
|
+
* @type {Node}
|
|
111
|
+
* @public
|
|
112
|
+
*/
|
|
113
|
+
children: _propTypes["default"].node,
|
|
114
|
+
/**
|
|
115
|
+
* Class name for component.
|
|
116
|
+
*
|
|
117
|
+
* @type {String}
|
|
118
|
+
* @public
|
|
119
|
+
*/
|
|
120
|
+
className: _propTypes["default"].string,
|
|
121
|
+
/**
|
|
122
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
123
|
+
* corresponding internal elements and states of this component.
|
|
124
|
+
*
|
|
125
|
+
* The following classes are supported:
|
|
126
|
+
*
|
|
127
|
+
* * `title` - The title component class
|
|
128
|
+
* * `inlineTitle` - The title component class when `inlineTitle` is true
|
|
129
|
+
*
|
|
130
|
+
* @type {Object}
|
|
131
|
+
* @public
|
|
132
|
+
*/
|
|
133
|
+
css: _propTypes["default"].object,
|
|
134
|
+
/**
|
|
135
|
+
* A custom icon for the decrementer.
|
|
136
|
+
*
|
|
137
|
+
* All strings supported by {@link limestone/Icon.Icon|Icon} are supported. Without a
|
|
138
|
+
* custom icon, the default is used, and is automatically changed when the
|
|
139
|
+
* {@link limestone/RangePicker.RangePickerBase.orientation|orientation} is changed.
|
|
140
|
+
*
|
|
141
|
+
* @type {string}
|
|
142
|
+
* @public
|
|
143
|
+
*/
|
|
144
|
+
decrementIcon: _propTypes["default"].string,
|
|
145
|
+
/**
|
|
146
|
+
* Disables the picker.
|
|
147
|
+
*
|
|
148
|
+
* @type {Boolean}
|
|
149
|
+
* @public
|
|
150
|
+
*/
|
|
151
|
+
disabled: _propTypes["default"].bool,
|
|
152
|
+
/**
|
|
153
|
+
* A custom icon for the incrementer.
|
|
154
|
+
*
|
|
155
|
+
* All strings supported by {@link limestone/Icon.Icon|Icon} are supported. Without a
|
|
156
|
+
* custom icon, the default is used, and is automatically changed when the
|
|
157
|
+
* {@link limestone/RangePicker.RangePickerBase.orientation|orientation} is changed.
|
|
158
|
+
*
|
|
159
|
+
* @type {String}
|
|
160
|
+
* @public
|
|
161
|
+
*/
|
|
162
|
+
incrementIcon: _propTypes["default"].string,
|
|
163
|
+
/**
|
|
164
|
+
* Applies inline styling to the title.
|
|
165
|
+
*
|
|
166
|
+
* @type {Boolean}
|
|
167
|
+
* @public
|
|
168
|
+
*/
|
|
169
|
+
inlineTitle: _propTypes["default"].bool,
|
|
170
|
+
/**
|
|
171
|
+
* Allows the user can use the arrow keys or enter key to adjust the picker's value.
|
|
172
|
+
*
|
|
173
|
+
* The user may no longer use those arrow keys to navigate while this control is focused.
|
|
174
|
+
* A default control allows full navigation, but requires individual ENTER presses on the
|
|
175
|
+
* incrementer and decrementer buttons. Pointer interaction is the same for both formats.
|
|
176
|
+
*
|
|
177
|
+
* @type {Boolean}
|
|
178
|
+
* @public
|
|
179
|
+
*/
|
|
180
|
+
joined: _propTypes["default"].bool,
|
|
181
|
+
/**
|
|
182
|
+
* Disables animation.
|
|
183
|
+
*
|
|
184
|
+
* By default, the picker will animate transitions between items, provided a `width` is
|
|
185
|
+
* defined.
|
|
186
|
+
*
|
|
187
|
+
* @type {Boolean}
|
|
188
|
+
* @public
|
|
189
|
+
*/
|
|
190
|
+
noAnimation: _propTypes["default"].bool,
|
|
191
|
+
/**
|
|
192
|
+
* Called when `value` changes.
|
|
193
|
+
*
|
|
194
|
+
* @type {Function}
|
|
195
|
+
* @public
|
|
196
|
+
*/
|
|
197
|
+
onChange: _propTypes["default"].func,
|
|
198
|
+
/**
|
|
199
|
+
* Orientation of the picker.
|
|
200
|
+
*
|
|
201
|
+
* Controls whether the buttons are arranged horizontally or vertically around the value.
|
|
202
|
+
*
|
|
203
|
+
* * Values: `'horizontal'`, `'vertical'`
|
|
204
|
+
*
|
|
205
|
+
* @type {'horizontal'|'vertical'}
|
|
206
|
+
* @default 'horizontal'
|
|
207
|
+
* @public
|
|
208
|
+
*/
|
|
209
|
+
orientation: _propTypes["default"].oneOf(['horizontal', 'vertical']),
|
|
210
|
+
/**
|
|
211
|
+
* Pads the display value with zeros up to the number of digits of `min` or max`, whichever
|
|
212
|
+
* is greater.
|
|
213
|
+
*
|
|
214
|
+
* @type {Boolean}
|
|
215
|
+
* @public
|
|
216
|
+
*/
|
|
217
|
+
padded: _propTypes["default"].bool,
|
|
218
|
+
/**
|
|
219
|
+
* The smallest value change allowed for the picker.
|
|
220
|
+
*
|
|
221
|
+
* For example, a step of `2` would cause the picker to increment from 0 to 2 to 4, etc.
|
|
222
|
+
* It must evenly divide into the range designated by `min` and `max`.
|
|
223
|
+
*
|
|
224
|
+
* @type {Number}
|
|
225
|
+
* @default 1
|
|
226
|
+
* @public
|
|
227
|
+
*/
|
|
228
|
+
step: _propTypes["default"].number,
|
|
229
|
+
/**
|
|
230
|
+
* The primary text of the `Picker`.
|
|
231
|
+
*
|
|
232
|
+
* @type {String}
|
|
233
|
+
* @public
|
|
234
|
+
*/
|
|
235
|
+
title: _propTypes["default"].string,
|
|
236
|
+
/**
|
|
237
|
+
* The width of the picker.
|
|
238
|
+
*
|
|
239
|
+
* A number can be used to set the minimum number of characters to be shown. Setting a
|
|
240
|
+
* number to less than the number of characters in the longest value will cause the width to
|
|
241
|
+
* grow for the longer values.
|
|
242
|
+
*
|
|
243
|
+
* A string can be used to select from pre-defined widths:
|
|
244
|
+
*
|
|
245
|
+
* * `'small'` - numeric values
|
|
246
|
+
* * `'medium'` - single or short words
|
|
247
|
+
* * `'large'` - maximum-sized pickers taking full width of its parent
|
|
248
|
+
*
|
|
249
|
+
* By default, the picker will size according to the longest valid value.
|
|
250
|
+
*
|
|
251
|
+
* @type {('small'|'medium'|'large'|Number)}
|
|
252
|
+
* @public
|
|
253
|
+
*/
|
|
254
|
+
width: _propTypes["default"].oneOfType([_propTypes["default"].oneOf([null, 'small', 'medium', 'large']), _propTypes["default"].number]),
|
|
255
|
+
/**
|
|
256
|
+
* Allows picker to continue from the start of the list after it reaches the end and
|
|
257
|
+
* vice versa.
|
|
258
|
+
*
|
|
259
|
+
* @type {Boolean}
|
|
260
|
+
* @public
|
|
261
|
+
*/
|
|
262
|
+
wrap: _propTypes["default"].bool
|
|
263
|
+
},
|
|
264
|
+
defaultProps: {
|
|
265
|
+
orientation: 'horizontal'
|
|
266
|
+
},
|
|
267
|
+
styles: {
|
|
268
|
+
css: _RangePickerModule["default"],
|
|
269
|
+
className: 'rangePicker',
|
|
270
|
+
publicClassNames: ['inlineTitle', 'title']
|
|
271
|
+
},
|
|
272
|
+
computed: {
|
|
273
|
+
disabled: function disabled(_ref) {
|
|
274
|
+
var _disabled = _ref.disabled,
|
|
275
|
+
max = _ref.max,
|
|
276
|
+
min = _ref.min;
|
|
277
|
+
return min >= max ? true : _disabled;
|
|
278
|
+
},
|
|
279
|
+
label: function label(_ref2) {
|
|
280
|
+
var max = _ref2.max,
|
|
281
|
+
min = _ref2.min,
|
|
282
|
+
padded = _ref2.padded,
|
|
283
|
+
value = _ref2.value;
|
|
284
|
+
value = (0, _util.clamp)(min, max, value);
|
|
285
|
+
if (padded) {
|
|
286
|
+
var maxDigits = digits(Math.max(Math.abs(min), Math.abs(max)));
|
|
287
|
+
var valueDigits = digits(value);
|
|
288
|
+
var start = value < 0 ? 0 : 1;
|
|
289
|
+
var padding = '-00000000000000000000';
|
|
290
|
+
return padding.slice(start, maxDigits - valueDigits + start) + Math.abs(value);
|
|
291
|
+
}
|
|
292
|
+
return value;
|
|
293
|
+
},
|
|
294
|
+
width: function width(_ref3) {
|
|
295
|
+
var max = _ref3.max,
|
|
296
|
+
min = _ref3.min,
|
|
297
|
+
_width = _ref3.width;
|
|
298
|
+
return _width || Math.max(max.toString().length, min.toString().length);
|
|
299
|
+
},
|
|
300
|
+
value: function value(_ref4) {
|
|
301
|
+
var min = _ref4.min,
|
|
302
|
+
max = _ref4.max,
|
|
303
|
+
_value = _ref4.value;
|
|
304
|
+
if (process.env.NODE_ENV !== "production") {
|
|
305
|
+
(0, _validators.validateRange)(_value, min, max, 'RangePicker');
|
|
306
|
+
}
|
|
307
|
+
return (0, _util.clamp)(min, max, _value);
|
|
308
|
+
},
|
|
309
|
+
voiceLabel: function voiceLabel(_ref5) {
|
|
310
|
+
var min = _ref5.min,
|
|
311
|
+
max = _ref5.max;
|
|
312
|
+
return JSON.stringify([min, max]);
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
render: function render(_ref6) {
|
|
316
|
+
var css = _ref6.css,
|
|
317
|
+
label = _ref6.label,
|
|
318
|
+
inlineTitle = _ref6.inlineTitle,
|
|
319
|
+
title = _ref6.title,
|
|
320
|
+
value = _ref6.value,
|
|
321
|
+
voiceLabel = _ref6.voiceLabel,
|
|
322
|
+
rest = _objectWithoutProperties(_ref6, _excluded);
|
|
323
|
+
delete rest.padded;
|
|
324
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
325
|
+
children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
|
|
326
|
+
css: css,
|
|
327
|
+
className: (0, _classnames2["default"])(css.title, _defineProperty({}, css.inlineTitle, inlineTitle)),
|
|
328
|
+
size: "tiny",
|
|
329
|
+
children: title
|
|
330
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.Picker, _objectSpread(_objectSpread({}, rest), {}, {
|
|
331
|
+
css: css,
|
|
332
|
+
"data-webos-voice-labels-ext": voiceLabel,
|
|
333
|
+
index: 0,
|
|
334
|
+
reverse: false,
|
|
335
|
+
type: "number",
|
|
336
|
+
value: value,
|
|
337
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerItem, {
|
|
338
|
+
marqueeDisabled: true,
|
|
339
|
+
style: {
|
|
340
|
+
direction: 'ltr'
|
|
341
|
+
},
|
|
342
|
+
children: label
|
|
343
|
+
}, value)
|
|
344
|
+
}))]
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* A component that lets the user select a number from a range of numbers.
|
|
351
|
+
*
|
|
352
|
+
* By default, `RangePicker` maintains the state of its `value` property. Supply the `defaultValue`
|
|
353
|
+
* property to control its initial value. If you wish to directly control updates to the component,
|
|
354
|
+
* supply a value to `value` at creation time and update it in response to `onChange` events.
|
|
355
|
+
*
|
|
356
|
+
* @class RangePicker
|
|
357
|
+
* @memberof limestone/RangePicker
|
|
358
|
+
* @mixes ui/Changeable.Changeable
|
|
359
|
+
* @ui
|
|
360
|
+
* @public
|
|
361
|
+
*/
|
|
362
|
+
var RangePicker = exports.RangePicker = (0, _Pure["default"])((0, _Changeable["default"])(RangePickerBase));
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Default value
|
|
366
|
+
*
|
|
367
|
+
* @name defaultValue
|
|
368
|
+
* @memberof limestone/RangePicker.RangePicker.prototype
|
|
369
|
+
* @type {Number}
|
|
370
|
+
* @public
|
|
371
|
+
*/
|
|
372
|
+
var _default = exports["default"] = RangePicker;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
.rangePicker .valueWrapper {
|
|
2
|
+
font-family: "Limestone Number";
|
|
3
|
+
}
|
|
4
|
+
:global(.enact-locale-non-latin) .rangePicker .valueWrapper {
|
|
5
|
+
font-family: "Limestone Number";
|
|
6
|
+
}
|
|
7
|
+
.rangePicker.joined.horizontal:not(.arrow) .valueWrapper {
|
|
8
|
+
margin-bottom: 0;
|
|
9
|
+
}
|
|
10
|
+
.title {
|
|
11
|
+
margin-left: 1.875rem;
|
|
12
|
+
margin-right: var(--primitive-spacing-24);
|
|
13
|
+
}
|
|
14
|
+
:global(.enact-locale-right-to-left) .title {
|
|
15
|
+
margin-left: var(--primitive-spacing-24);
|
|
16
|
+
margin-right: 1.875rem;
|
|
17
|
+
}
|
|
18
|
+
.title.inlineTitle {
|
|
19
|
+
display: inline-block;
|
|
20
|
+
max-width: 10rem;
|
|
21
|
+
line-height: 1.5rem;
|
|
22
|
+
padding-bottom: 0;
|
|
23
|
+
margin-bottom: 0;
|
|
24
|
+
}
|
|
25
|
+
.heading:global(.neutral).tiny {
|
|
26
|
+
color: var(--semantic-color-on-background-main);
|
|
27
|
+
}
|
|
28
|
+
:global(.enact-a11y-high-contrast) .heading:global(.neutral):global(.highContrast).tiny {
|
|
29
|
+
color: var(--semantic-color-on-background-main);
|
|
30
|
+
}
|
|
31
|
+
.heading:global(.light).tiny {
|
|
32
|
+
color: var(--semantic-color-on-background-main);
|
|
33
|
+
}
|
|
34
|
+
.heading:global(.game) {
|
|
35
|
+
--semantic-color-surface-default: #2d224c;
|
|
36
|
+
--semantic-color-surface-default-focused: #6d2fa1;
|
|
37
|
+
--semantic-color-on-surface-main-focused: #e6e6e6;
|
|
38
|
+
}
|
|
39
|
+
.heading:global(.game).tiny {
|
|
40
|
+
color: var(--semantic-color-on-background-main);
|
|
41
|
+
}
|
|
42
|
+
:global(.green) .heading:global(.game) {
|
|
43
|
+
--semantic-color-surface-default: #1F2C24;
|
|
44
|
+
--semantic-color-surface-default-focused: #3ea07d;
|
|
45
|
+
}
|
|
46
|
+
:global(.green) .heading:global(.game).tiny {
|
|
47
|
+
color: var(--semantic-color-on-background-main);
|
|
48
|
+
}
|
|
49
|
+
:global(.orange) .heading:global(.game) {
|
|
50
|
+
--semantic-color-surface-default: #422923;
|
|
51
|
+
--semantic-color-surface-default-focused: #b85f23;
|
|
52
|
+
}
|
|
53
|
+
:global(.orange) .heading:global(.game).tiny {
|
|
54
|
+
color: var(--semantic-color-on-background-main);
|
|
55
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("@testing-library/jest-dom");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
5
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
6
|
+
var _RangePicker = require("../RangePicker");
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
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); }
|
|
10
|
+
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); }); }; }
|
|
11
|
+
describe('RangePicker Specs', function () {
|
|
12
|
+
test('should render a single child with the current value', function () {
|
|
13
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
|
|
14
|
+
min: -10,
|
|
15
|
+
max: 20,
|
|
16
|
+
value: 10
|
|
17
|
+
}));
|
|
18
|
+
var textField = _react.screen.getByText('10');
|
|
19
|
+
var expected = 'item';
|
|
20
|
+
expect(textField).toBeInTheDocument();
|
|
21
|
+
expect(textField).toHaveClass(expected);
|
|
22
|
+
});
|
|
23
|
+
test('should increase by step amount on increment press', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
24
|
+
var user = _userEvent["default"].setup();
|
|
25
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
|
|
26
|
+
min: 0,
|
|
27
|
+
max: 100,
|
|
28
|
+
defaultValue: 10,
|
|
29
|
+
step: 1,
|
|
30
|
+
noAnimation: true
|
|
31
|
+
}));
|
|
32
|
+
var incrementButton = _react.screen.getByText('▶');
|
|
33
|
+
yield user.click(incrementButton);
|
|
34
|
+
var textField = _react.screen.getByText('11');
|
|
35
|
+
var expected = 'item';
|
|
36
|
+
expect(textField).toBeInTheDocument();
|
|
37
|
+
expect(textField).toHaveClass(expected);
|
|
38
|
+
}));
|
|
39
|
+
test('should decrease by step amount on decrement press', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
40
|
+
var user = _userEvent["default"].setup();
|
|
41
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
|
|
42
|
+
min: 0,
|
|
43
|
+
max: 100,
|
|
44
|
+
defaultValue: 10,
|
|
45
|
+
step: 1,
|
|
46
|
+
noAnimation: true
|
|
47
|
+
}));
|
|
48
|
+
var decrementButton = _react.screen.getByText('◀');
|
|
49
|
+
yield user.click(decrementButton);
|
|
50
|
+
var textField = _react.screen.getByText('9');
|
|
51
|
+
var expected = 'item';
|
|
52
|
+
expect(textField).toBeInTheDocument();
|
|
53
|
+
expect(textField).toHaveClass(expected);
|
|
54
|
+
}));
|
|
55
|
+
test('should pad the value', function () {
|
|
56
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
|
|
57
|
+
min: 0,
|
|
58
|
+
max: 100,
|
|
59
|
+
value: 10,
|
|
60
|
+
step: 1,
|
|
61
|
+
padded: true
|
|
62
|
+
}));
|
|
63
|
+
var textField = _react.screen.getByText('010');
|
|
64
|
+
var expected = 'item';
|
|
65
|
+
expect(textField).toBeInTheDocument();
|
|
66
|
+
expect(textField).toHaveClass(expected);
|
|
67
|
+
});
|
|
68
|
+
test('should pad the value when min has more digits than max', function () {
|
|
69
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
|
|
70
|
+
min: -1000,
|
|
71
|
+
max: 100,
|
|
72
|
+
value: 10,
|
|
73
|
+
step: 1,
|
|
74
|
+
padded: true
|
|
75
|
+
}));
|
|
76
|
+
var textField = _react.screen.getByText('0010');
|
|
77
|
+
var expected = 'item';
|
|
78
|
+
expect(textField).toBeInTheDocument();
|
|
79
|
+
expect(textField).toHaveClass(expected);
|
|
80
|
+
});
|
|
81
|
+
test('should be disabled when limited to a single value', function () {
|
|
82
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePickerBase, {
|
|
83
|
+
"data-testid": "rangePicker",
|
|
84
|
+
min: 0,
|
|
85
|
+
max: 0,
|
|
86
|
+
value: 0
|
|
87
|
+
}));
|
|
88
|
+
var rangePicker = _react.screen.getByTestId('rangePicker');
|
|
89
|
+
var expectedAttribute = 'aria-disabled';
|
|
90
|
+
var expectedValue = 'true';
|
|
91
|
+
expect(rangePicker).toHaveAttribute(expectedAttribute, expectedValue);
|
|
92
|
+
});
|
|
93
|
+
test('should have an heading element when \'title\'', function () {
|
|
94
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePickerBase, {
|
|
95
|
+
min: 0,
|
|
96
|
+
max: 0,
|
|
97
|
+
value: 0,
|
|
98
|
+
title: "title text"
|
|
99
|
+
}));
|
|
100
|
+
var title = _react.screen.getByText('title text');
|
|
101
|
+
var expected = 'heading';
|
|
102
|
+
var actual = title.parentElement.parentElement;
|
|
103
|
+
expect(title).toBeInTheDocument();
|
|
104
|
+
expect(actual).toHaveClass(expected);
|
|
105
|
+
});
|
|
106
|
+
test('should have an heading element with inline class when \'title\' and \'inlineTitle\'', function () {
|
|
107
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePickerBase, {
|
|
108
|
+
inlineTitle: true,
|
|
109
|
+
min: 0,
|
|
110
|
+
max: 0,
|
|
111
|
+
value: 0,
|
|
112
|
+
title: "title text"
|
|
113
|
+
}));
|
|
114
|
+
var title = _react.screen.getByText('title text');
|
|
115
|
+
var expectedInline = 'inlineTitle';
|
|
116
|
+
var expectedHeader = 'heading';
|
|
117
|
+
var actual = title.parentElement.parentElement;
|
|
118
|
+
expect(title).toBeInTheDocument();
|
|
119
|
+
expect(actual).toHaveClass(expectedInline);
|
|
120
|
+
expect(actual).toHaveClass(expectedHeader);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Type definitions for limestone/Region
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
6
|
+
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
7
|
+
|
|
8
|
+
export interface RegionProps {
|
|
9
|
+
/**
|
|
10
|
+
* Title placed within an instance of before the
|
|
11
|
+
children.
|
|
12
|
+
*/
|
|
13
|
+
title: string;
|
|
14
|
+
/**
|
|
15
|
+
* The aria-label for the region.
|
|
16
|
+
*
|
|
17
|
+
* If unset, it defaults to the value of `title`
|
|
18
|
+
*/
|
|
19
|
+
"aria-label"?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Contents of the region.
|
|
22
|
+
*/
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A component for grouping other components.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
export class Region extends React.Component<
|
|
30
|
+
Merge<React.HTMLProps<HTMLElement>, RegionProps>
|
|
31
|
+
> {}
|
|
32
|
+
|
|
33
|
+
export default Region;
|
package/Region/Region.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.RegionBase = exports.Region = void 0;
|
|
7
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Heading = _interopRequireDefault(require("../Heading"));
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
var _excluded = ["aria-label", "children", "title"];
|
|
12
|
+
/**
|
|
13
|
+
* This component provides a labeled region to a group of components.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <Region title="Select an Option">
|
|
17
|
+
* </Region>
|
|
18
|
+
*
|
|
19
|
+
* @module limestone/Region
|
|
20
|
+
* @exports Region
|
|
21
|
+
* @exports RegionBase
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* A component for grouping other components.
|
|
25
|
+
*
|
|
26
|
+
* @class Region
|
|
27
|
+
* @memberof limestone/Region
|
|
28
|
+
* @ui
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
32
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
33
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
34
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
35
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
36
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
37
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
38
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
39
|
+
var RegionBase = exports.RegionBase = exports.Region = (0, _kind["default"])({
|
|
40
|
+
name: 'Region',
|
|
41
|
+
propTypes: /** @lends limestone/Region.Region.prototype */{
|
|
42
|
+
/**
|
|
43
|
+
* Title placed within an instance of {@link limestone/Heading.Heading|Heading} before the
|
|
44
|
+
* children.
|
|
45
|
+
*
|
|
46
|
+
* @type {String}
|
|
47
|
+
* @required
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
title: _propTypes["default"].string.isRequired,
|
|
51
|
+
/**
|
|
52
|
+
* The aria-label for the region.
|
|
53
|
+
*
|
|
54
|
+
* If unset, it defaults to the value of `title`
|
|
55
|
+
*
|
|
56
|
+
* @memberof limestone/Region.Region.prototype
|
|
57
|
+
* @type {String}
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
'aria-label': _propTypes["default"].string,
|
|
61
|
+
/**
|
|
62
|
+
* Contents of the region.
|
|
63
|
+
*
|
|
64
|
+
* @type {Node}
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
children: _propTypes["default"].node
|
|
68
|
+
},
|
|
69
|
+
computed: {
|
|
70
|
+
'aria-label': function ariaLabel(_ref) {
|
|
71
|
+
var _ariaLabel = _ref['aria-label'],
|
|
72
|
+
title = _ref.title;
|
|
73
|
+
return _ariaLabel || title;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
render: function render(_ref2) {
|
|
77
|
+
var ariaLabel = _ref2['aria-label'],
|
|
78
|
+
children = _ref2.children,
|
|
79
|
+
title = _ref2.title,
|
|
80
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
81
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
82
|
+
role: "region",
|
|
83
|
+
"aria-label": ariaLabel,
|
|
84
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
|
|
85
|
+
showLine: true,
|
|
86
|
+
children: title
|
|
87
|
+
}), children]
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
var _default = exports["default"] = RegionBase;
|