@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,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _ilib = _interopRequireDefault(require("ilib"));
|
|
4
|
+
require("@testing-library/jest-dom");
|
|
5
|
+
var _react = require("@testing-library/react");
|
|
6
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
7
|
+
var _TimePicker = _interopRequireWildcard(require("../TimePicker"));
|
|
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); }); }; } // Note: Tests pass 'locale' because there's no I18nDecorator to provide a value via context and
|
|
13
|
+
// otherwise, nothing renders in the label.
|
|
14
|
+
describe('TimePicker', function () {
|
|
15
|
+
// Suite-wide setup
|
|
16
|
+
|
|
17
|
+
test('should emit an onChange event when changing the hour', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
18
|
+
var handleChange = jest.fn();
|
|
19
|
+
var user = _userEvent["default"].setup();
|
|
20
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
21
|
+
onChange: handleChange,
|
|
22
|
+
value: new Date(2000, 6, 15, 3, 30),
|
|
23
|
+
locale: "en-US"
|
|
24
|
+
}));
|
|
25
|
+
var hourPicker = _react.screen.getAllByText('▲')[0];
|
|
26
|
+
yield user.click(hourPicker);
|
|
27
|
+
var expected = 1;
|
|
28
|
+
var expectedType = {
|
|
29
|
+
type: 'onChange',
|
|
30
|
+
value: new Date(2000, 6, 15, 4, 30)
|
|
31
|
+
};
|
|
32
|
+
var actual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
|
|
33
|
+
expect(handleChange).toHaveBeenCalledTimes(expected);
|
|
34
|
+
expect(actual).toMatchObject(expectedType);
|
|
35
|
+
}));
|
|
36
|
+
test('should emit an onChange event when changing the minute', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
37
|
+
var handleChange = jest.fn();
|
|
38
|
+
var user = _userEvent["default"].setup();
|
|
39
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
40
|
+
onChange: handleChange,
|
|
41
|
+
value: new Date(2000, 6, 15, 3, 30),
|
|
42
|
+
locale: "en-US"
|
|
43
|
+
}));
|
|
44
|
+
var minutePicker = _react.screen.getAllByText('▲')[1];
|
|
45
|
+
yield user.click(minutePicker);
|
|
46
|
+
var expected = 1;
|
|
47
|
+
var expectedType = {
|
|
48
|
+
type: 'onChange',
|
|
49
|
+
value: new Date(2000, 6, 15, 3, 31)
|
|
50
|
+
};
|
|
51
|
+
var actual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
|
|
52
|
+
expect(handleChange).toHaveBeenCalledTimes(expected);
|
|
53
|
+
expect(actual).toMatchObject(expectedType);
|
|
54
|
+
}));
|
|
55
|
+
test('should emit an onChange event when changing the meridiem', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
56
|
+
var handleChange = jest.fn();
|
|
57
|
+
var user = _userEvent["default"].setup();
|
|
58
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
59
|
+
onChange: handleChange,
|
|
60
|
+
value: new Date(2000, 6, 15, 3, 30),
|
|
61
|
+
locale: "en-US"
|
|
62
|
+
}));
|
|
63
|
+
var meridiemPicker = _react.screen.getAllByText('▲')[2];
|
|
64
|
+
yield user.click(meridiemPicker);
|
|
65
|
+
var expected = 1;
|
|
66
|
+
var expectedType = {
|
|
67
|
+
type: 'onChange',
|
|
68
|
+
value: new Date(2000, 6, 15, 15, 30)
|
|
69
|
+
};
|
|
70
|
+
var actual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
|
|
71
|
+
expect(handleChange).toHaveBeenCalledTimes(expected);
|
|
72
|
+
expect(actual).toMatchObject(expectedType);
|
|
73
|
+
}));
|
|
74
|
+
test('should fire onComplete event with type when enter key pressed from the last picker', function () {
|
|
75
|
+
var handleComplete = jest.fn();
|
|
76
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
77
|
+
onComplete: handleComplete,
|
|
78
|
+
value: new Date(2000, 6, 15, 3, 30),
|
|
79
|
+
locale: "en-US"
|
|
80
|
+
}));
|
|
81
|
+
var meridiemPicker = _react.screen.getByLabelText('AM change a value with up down button');
|
|
82
|
+
(0, _react.act)(function () {
|
|
83
|
+
return meridiemPicker.focus();
|
|
84
|
+
});
|
|
85
|
+
_react.fireEvent.keyDown(meridiemPicker, {
|
|
86
|
+
which: 13,
|
|
87
|
+
keyCode: 13,
|
|
88
|
+
code: 13
|
|
89
|
+
});
|
|
90
|
+
var expected = {
|
|
91
|
+
type: 'onComplete',
|
|
92
|
+
value: new Date(2000, 6, 15, 3, 30)
|
|
93
|
+
};
|
|
94
|
+
var actual = handleComplete.mock.calls.length && handleComplete.mock.calls[0][0];
|
|
95
|
+
expect(actual).toMatchObject(expected);
|
|
96
|
+
});
|
|
97
|
+
test('should accept a JavaScript Date for its value prop', function () {
|
|
98
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
99
|
+
value: new Date(2000, 0, 1, 12, 30),
|
|
100
|
+
locale: "en-US"
|
|
101
|
+
}));
|
|
102
|
+
var minutePicker = _react.screen.getByText('30');
|
|
103
|
+
var expected = 'item';
|
|
104
|
+
expect(minutePicker).toHaveClass(expected);
|
|
105
|
+
});
|
|
106
|
+
test('should set \'hourAriaLabel\' to hour picker', function () {
|
|
107
|
+
var label = 'custom hour aria-label';
|
|
108
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
109
|
+
hourAriaLabel: label,
|
|
110
|
+
value: new Date(2000, 0, 1, 12, 30)
|
|
111
|
+
}));
|
|
112
|
+
var hourPicker = _react.screen.getByLabelText(label);
|
|
113
|
+
var expected = 'hourPicker';
|
|
114
|
+
expect(hourPicker).toBeInTheDocument();
|
|
115
|
+
expect(hourPicker).toHaveClass(expected);
|
|
116
|
+
});
|
|
117
|
+
test('should set \'meridiemAriaLabel\' to meridiem picker', function () {
|
|
118
|
+
var label = 'custom meridiem aria-label';
|
|
119
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
120
|
+
meridiemAriaLabel: label,
|
|
121
|
+
value: new Date(2000, 0, 1, 12, 30)
|
|
122
|
+
}));
|
|
123
|
+
var meridiemPicker = _react.screen.getByLabelText(label);
|
|
124
|
+
var expected = 'meridiemPicker';
|
|
125
|
+
expect(meridiemPicker).toBeInTheDocument();
|
|
126
|
+
expect(meridiemPicker).toHaveClass(expected);
|
|
127
|
+
});
|
|
128
|
+
test('should set \'minuteAriaLabel\' to minute picker', function () {
|
|
129
|
+
var label = 'custom minute aria-label';
|
|
130
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
131
|
+
minuteAriaLabel: label,
|
|
132
|
+
value: new Date(2000, 0, 1, 12, 30)
|
|
133
|
+
}));
|
|
134
|
+
var minutePicker = _react.screen.getByLabelText(label);
|
|
135
|
+
var expected = 'minutePicker';
|
|
136
|
+
expect(minutePicker).toBeInTheDocument();
|
|
137
|
+
expect(minutePicker).toHaveClass(expected);
|
|
138
|
+
});
|
|
139
|
+
test('should set \'data-webos-voice-disabled\' to hour picker when voice control is disabled', function () {
|
|
140
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
141
|
+
value: new Date(2000, 0, 1, 12, 30),
|
|
142
|
+
"data-webos-voice-disabled": true
|
|
143
|
+
}));
|
|
144
|
+
var hourPicker = _react.screen.getByLabelText('12 hour change a value with up down button');
|
|
145
|
+
var expected = 'data-webos-voice-disabled';
|
|
146
|
+
expect(hourPicker).toHaveAttribute(expected);
|
|
147
|
+
});
|
|
148
|
+
test('should set \'data-webos-voice-disabled\' to meridiem picker when voice control is disabled', function () {
|
|
149
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
150
|
+
value: new Date(2000, 0, 1, 12, 30),
|
|
151
|
+
"data-webos-voice-disabled": true
|
|
152
|
+
}));
|
|
153
|
+
var merdiemPicker = _react.screen.getByLabelText('AM change a value with up down button');
|
|
154
|
+
var expected = 'data-webos-voice-disabled';
|
|
155
|
+
expect(merdiemPicker).toHaveAttribute(expected);
|
|
156
|
+
});
|
|
157
|
+
test('should set \'data-webos-voice-disabled\' to minute picker when voice control is disabled', function () {
|
|
158
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
159
|
+
value: new Date(2000, 0, 1, 12, 30),
|
|
160
|
+
"data-webos-voice-disabled": true
|
|
161
|
+
}));
|
|
162
|
+
var minutePicker = _react.screen.getByLabelText('0 minute change a value with up down button');
|
|
163
|
+
// The minute is 0 because it does not change based on props, this needs to be fixed in timePicker
|
|
164
|
+
|
|
165
|
+
var expected = 'data-webos-voice-disabled';
|
|
166
|
+
expect(minutePicker).toHaveAttribute(expected);
|
|
167
|
+
});
|
|
168
|
+
test('should format a date the same as the label', function () {
|
|
169
|
+
var time = new Date(2000, 0, 1, 12, 30);
|
|
170
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
171
|
+
value: time,
|
|
172
|
+
locale: "en-US"
|
|
173
|
+
}));
|
|
174
|
+
var header = _react.screen.getByText((0, _TimePicker.timeToLocaleString)(time), {
|
|
175
|
+
collapseWhitespace: false
|
|
176
|
+
}).parentElement.parentElement;
|
|
177
|
+
var expected = 'heading';
|
|
178
|
+
expect(header).toHaveClass(expected);
|
|
179
|
+
});
|
|
180
|
+
test('should format a date the same as the label in another locale', function () {
|
|
181
|
+
_ilib["default"].setLocale('ar-SA');
|
|
182
|
+
var time = new Date(2000, 0, 1, 12, 30);
|
|
183
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
184
|
+
value: time,
|
|
185
|
+
locale: "ar-SA"
|
|
186
|
+
}));
|
|
187
|
+
var header = _react.screen.getByText((0, _TimePicker.timeToLocaleString)(time), {
|
|
188
|
+
collapseWhitespace: false
|
|
189
|
+
}).parentElement.parentElement;
|
|
190
|
+
var expected = 'heading';
|
|
191
|
+
expect(header).toHaveClass(expected);
|
|
192
|
+
});
|
|
193
|
+
test('should not display Heading', function () {
|
|
194
|
+
_ilib["default"].setLocale('en-US');
|
|
195
|
+
var time = new Date(2000, 0, 1, 12, 30);
|
|
196
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
197
|
+
value: time,
|
|
198
|
+
locale: "en-US",
|
|
199
|
+
noLabel: true
|
|
200
|
+
}));
|
|
201
|
+
var header = _react.screen.queryByText((0, _TimePicker.timeToLocaleString)(time), {
|
|
202
|
+
collapseWhitespace: false
|
|
203
|
+
});
|
|
204
|
+
expect(header).toBeNull();
|
|
205
|
+
});
|
|
206
|
+
test('should change the meridiem to reflect the hour change', function () {
|
|
207
|
+
var time = new Date(2000, 0, 1, 12, 30);
|
|
208
|
+
var secondTime = new Date(2000, 0, 1, 11, 30);
|
|
209
|
+
var _render = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
210
|
+
locale: "en-US",
|
|
211
|
+
value: time
|
|
212
|
+
})),
|
|
213
|
+
rerender = _render.rerender;
|
|
214
|
+
var firstTimeDisplayed = _react.screen.queryByText('12:30 PM');
|
|
215
|
+
rerender(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
216
|
+
locale: "en-US",
|
|
217
|
+
value: secondTime
|
|
218
|
+
}));
|
|
219
|
+
var secondTimeDisplayed = _react.screen.queryByText('11:30 AM');
|
|
220
|
+
expect(firstTimeDisplayed).not.toBeNull();
|
|
221
|
+
expect(secondTimeDisplayed).not.toBeNull();
|
|
222
|
+
});
|
|
223
|
+
test('check that the date is displayed correctly for cases of more than 2 meridiems', function () {
|
|
224
|
+
_ilib["default"].setLocale('am-ET');
|
|
225
|
+
var time = new Date(2000, 0, 1, 12, 30);
|
|
226
|
+
var secondTime = new Date(2000, 0, 1, 11, 30);
|
|
227
|
+
var _render2 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
228
|
+
locale: "am-ET",
|
|
229
|
+
value: time
|
|
230
|
+
})),
|
|
231
|
+
rerender = _render2.rerender;
|
|
232
|
+
var firstTimeDisplayed = _react.screen.queryByText('6:30 ከሰዓት');
|
|
233
|
+
rerender(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
|
|
234
|
+
locale: "am-ET",
|
|
235
|
+
value: secondTime
|
|
236
|
+
}));
|
|
237
|
+
var secondTimeDisplayed = _react.screen.queryByText('5:30 ጥዋት');
|
|
238
|
+
expect(firstTimeDisplayed).not.toBeNull();
|
|
239
|
+
expect(secondTimeDisplayed).not.toBeNull();
|
|
240
|
+
});
|
|
241
|
+
describe('#timeToLocaleString', function () {
|
|
242
|
+
test('method should return \'null\' for an \'undefined\' time', function () {
|
|
243
|
+
var time = (0, _TimePicker.timeToLocaleString)(undefined); // eslint-disable-line no-undefined
|
|
244
|
+
|
|
245
|
+
expect(time).toBeNull();
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
});
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.TooltipBase = exports.Tooltip = void 0;
|
|
7
|
+
exports.defaultArrowAnchor = defaultArrowAnchor;
|
|
8
|
+
exports.defaultDirection = defaultDirection;
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
|
|
10
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
11
|
+
var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
13
|
+
var _TooltipLabel = _interopRequireDefault(require("./TooltipLabel"));
|
|
14
|
+
var _TooltipModule = _interopRequireDefault(require("./Tooltip.module.css"));
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
var _excluded = ["arrowAnchor", "children", "css", "tooltipRef", "width", "labelOffset", "marquee"];
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
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); } // Set the default Arrow Anchor value based on the type of tooltip
|
|
25
|
+
function defaultArrowAnchor(type) {
|
|
26
|
+
return type === 'transparent' ? 'center' : 'right';
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Set the default Direction of tooltip based on the type of tooltip
|
|
30
|
+
function defaultDirection(type) {
|
|
31
|
+
return type === 'transparent' ? 'below' : 'above';
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A stateless tooltip component with Limestone styling applied.
|
|
36
|
+
*
|
|
37
|
+
* @class TooltipBase
|
|
38
|
+
* @memberof limestone/TooltipDecorator
|
|
39
|
+
* @ui
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
var TooltipBase = exports.TooltipBase = (0, _kind["default"])({
|
|
43
|
+
name: 'Tooltip',
|
|
44
|
+
propTypes: /** @lends limestone/TooltipDecorator.TooltipBase.prototype */{
|
|
45
|
+
/**
|
|
46
|
+
* The node to be displayed as the main content of the tooltip.
|
|
47
|
+
*
|
|
48
|
+
* @type {Node}
|
|
49
|
+
* @required
|
|
50
|
+
*/
|
|
51
|
+
children: _propTypes2["default"].node.isRequired,
|
|
52
|
+
/**
|
|
53
|
+
* Position of tooltip arrow in relation to the activator.
|
|
54
|
+
*
|
|
55
|
+
* Note that `'left'`, `'center'`, `'right'` are applicable when direction is in vertical
|
|
56
|
+
* orientation (i.e. `'above'`, `'below'`), and `'top'`, `'middle'`, and `'bottom'` are
|
|
57
|
+
* applicable when direction is in horizontal orientation (i.e. `'left'`, `'right'`)
|
|
58
|
+
*
|
|
59
|
+
* For `type="balloon"`, the default is `"right"`
|
|
60
|
+
* For `type="transparent"`, the default is `"center"` (The arrow will not be visible)
|
|
61
|
+
*
|
|
62
|
+
* @type {('left'|'center'|'right'|'top'|'middle'|'bottom')}
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
arrowAnchor: _propTypes2["default"].oneOf(['left', 'center', 'right', 'top', 'middle', 'bottom']),
|
|
66
|
+
/**
|
|
67
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
68
|
+
* corresponding internal elements and states of this component.
|
|
69
|
+
*
|
|
70
|
+
* The following classes are supported:
|
|
71
|
+
*
|
|
72
|
+
* * `tooltip` - The root component class
|
|
73
|
+
* * `tooltipLabel` - Applied the label node
|
|
74
|
+
*
|
|
75
|
+
* @type {Object}
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
css: _propTypes2["default"].object,
|
|
79
|
+
/**
|
|
80
|
+
* Direction of label in relation to the activator.
|
|
81
|
+
*
|
|
82
|
+
* For `type="balloon"`, the default is `"above"`
|
|
83
|
+
* For `type="transparent"`, the default is `"below"`
|
|
84
|
+
*
|
|
85
|
+
* @type {('above'|'below'|'left'|'right')}
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
direction: _propTypes2["default"].oneOf(['above', 'below', 'left', 'right']),
|
|
89
|
+
/**
|
|
90
|
+
* A value representing the amount to offset the label portion of the tooltip.
|
|
91
|
+
*
|
|
92
|
+
* In a "center" aligned tooltip, the label may be desirable to offset to one side or the
|
|
93
|
+
* other. This prop accepts a value between -0.5 and 0.5 (representing 50% to the left or
|
|
94
|
+
* right). This defaults to 0 offset (centered). It also automatically caps the value so it
|
|
95
|
+
* never positions the tooltip label past the anchored arrow. If the tooltip label or arrow
|
|
96
|
+
* has non-rectangular geometry (rounded corners, a wide tail, etc.), you'll need to manually
|
|
97
|
+
* account for that in your provided offset value.
|
|
98
|
+
*
|
|
99
|
+
* @type {Number}
|
|
100
|
+
* @default 0
|
|
101
|
+
* @public
|
|
102
|
+
*/
|
|
103
|
+
labelOffset: _propTypes2["default"].number,
|
|
104
|
+
/**
|
|
105
|
+
* Allows the tooltip to marquee.
|
|
106
|
+
*
|
|
107
|
+
* Specifying a {@link limestone/TooltipDecorator.TooltipBase.width|width} restricts
|
|
108
|
+
* the marquee to that size.
|
|
109
|
+
*
|
|
110
|
+
* @type {Boolean}
|
|
111
|
+
* @public
|
|
112
|
+
*/
|
|
113
|
+
marquee: _propTypes2["default"].bool,
|
|
114
|
+
/**
|
|
115
|
+
* Style object for tooltip position.
|
|
116
|
+
*
|
|
117
|
+
* @type {Object}
|
|
118
|
+
* @public
|
|
119
|
+
*/
|
|
120
|
+
position: _propTypes2["default"].shape({
|
|
121
|
+
bottom: _propTypes2["default"].number,
|
|
122
|
+
left: _propTypes2["default"].number,
|
|
123
|
+
right: _propTypes2["default"].number,
|
|
124
|
+
top: _propTypes2["default"].number
|
|
125
|
+
}),
|
|
126
|
+
/**
|
|
127
|
+
* Anchors the tooltip relative to its container.
|
|
128
|
+
*
|
|
129
|
+
* Reconfigures the component to anchor itself to the designated edge of its container.
|
|
130
|
+
* When this is not specified, the implication is that the component is "absolutely"
|
|
131
|
+
* positioned, relative to the viewport, rather than its parent layer.
|
|
132
|
+
*
|
|
133
|
+
* @type {Boolean}
|
|
134
|
+
* @public
|
|
135
|
+
*/
|
|
136
|
+
relative: _propTypes2["default"].bool,
|
|
137
|
+
/**
|
|
138
|
+
* Called when the tooltip mounts/unmounts, giving a reference to the DOM.
|
|
139
|
+
*
|
|
140
|
+
* @type {Object|Function}
|
|
141
|
+
* @public
|
|
142
|
+
*/
|
|
143
|
+
tooltipRef: _propTypes["default"].ref,
|
|
144
|
+
/**
|
|
145
|
+
* Type of tooltip.
|
|
146
|
+
*
|
|
147
|
+
* | *Value* | *Tooltip Appearance* |
|
|
148
|
+
* |---|---|
|
|
149
|
+
* | `'balloon'` | Tooltip with a border, background and arrow to the activator |
|
|
150
|
+
* | `'transparent'` | Text only without any of the decorations above |
|
|
151
|
+
*
|
|
152
|
+
* @type {('balloon'|'transparent')}
|
|
153
|
+
* @default 'balloon'
|
|
154
|
+
* @public
|
|
155
|
+
*/
|
|
156
|
+
type: _propTypes2["default"].oneOf(['balloon', 'transparent']),
|
|
157
|
+
/**
|
|
158
|
+
* The width of tooltip content.
|
|
159
|
+
*
|
|
160
|
+
* Value expects a number of pixels, which will be automatically scaled to the appropriate
|
|
161
|
+
* size given the current screen resolution, or a string value containing a measurement and
|
|
162
|
+
* a valid CSS unit included.
|
|
163
|
+
* If the content goes over the given width, it will automatically wrap, or marquee if
|
|
164
|
+
* `marquee` is enabled.
|
|
165
|
+
*
|
|
166
|
+
* When `null`, content will auto-size and not wrap. If `marquee` is also enabled,
|
|
167
|
+
* marqueeing will begin when the width is greater than the default (theme specified) width.
|
|
168
|
+
*
|
|
169
|
+
* @type {Number|String}
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
172
|
+
width: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string])
|
|
173
|
+
},
|
|
174
|
+
defaultProps: {
|
|
175
|
+
type: 'balloon',
|
|
176
|
+
labelOffset: 0
|
|
177
|
+
},
|
|
178
|
+
styles: {
|
|
179
|
+
css: _TooltipModule["default"],
|
|
180
|
+
className: 'tooltip',
|
|
181
|
+
publicClassNames: ['tooltip', 'tooltipLabel']
|
|
182
|
+
},
|
|
183
|
+
computed: {
|
|
184
|
+
labelOffset: function labelOffset(_ref) {
|
|
185
|
+
var _labelOffset = _ref.labelOffset;
|
|
186
|
+
if (_labelOffset) {
|
|
187
|
+
var cappedPosition = Math.max(-0.5, Math.min(0.5, _labelOffset));
|
|
188
|
+
return {
|
|
189
|
+
transform: "translateX(".concat(cappedPosition * 100, "%)")
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
className: function className(_ref2) {
|
|
194
|
+
var direction = _ref2.direction,
|
|
195
|
+
arrowAnchor = _ref2.arrowAnchor,
|
|
196
|
+
relative = _ref2.relative,
|
|
197
|
+
type = _ref2.type,
|
|
198
|
+
styler = _ref2.styler;
|
|
199
|
+
return styler.append(direction || defaultDirection(type), "".concat(arrowAnchor || defaultArrowAnchor(type), "Arrow"), {
|
|
200
|
+
relative: relative,
|
|
201
|
+
absolute: !relative
|
|
202
|
+
}, type);
|
|
203
|
+
},
|
|
204
|
+
style: function style(_ref3) {
|
|
205
|
+
var position = _ref3.position,
|
|
206
|
+
_style = _ref3.style;
|
|
207
|
+
return _objectSpread(_objectSpread({}, _style), position);
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
render: function render(_ref4) {
|
|
211
|
+
var arrowAnchor = _ref4.arrowAnchor,
|
|
212
|
+
children = _ref4.children,
|
|
213
|
+
css = _ref4.css,
|
|
214
|
+
tooltipRef = _ref4.tooltipRef,
|
|
215
|
+
width = _ref4.width,
|
|
216
|
+
labelOffset = _ref4.labelOffset,
|
|
217
|
+
marquee = _ref4.marquee,
|
|
218
|
+
rest = _objectWithoutProperties(_ref4, _excluded);
|
|
219
|
+
delete rest.labelOffset;
|
|
220
|
+
delete rest.direction;
|
|
221
|
+
delete rest.position;
|
|
222
|
+
delete rest.relative;
|
|
223
|
+
delete rest.type;
|
|
224
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
225
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
226
|
+
className: css.tooltipAnchor,
|
|
227
|
+
ref: tooltipRef,
|
|
228
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
229
|
+
className: css.tooltipArrow
|
|
230
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipLabel["default"], {
|
|
231
|
+
className: css.tooltipLabel,
|
|
232
|
+
marquee: marquee,
|
|
233
|
+
centered: arrowAnchor === 'center',
|
|
234
|
+
width: width,
|
|
235
|
+
style: labelOffset,
|
|
236
|
+
children: children
|
|
237
|
+
})]
|
|
238
|
+
})
|
|
239
|
+
}));
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* A tooltip component with Limestone styling applied.
|
|
245
|
+
*
|
|
246
|
+
* @class Tooltip
|
|
247
|
+
* @memberof limestone/TooltipDecorator
|
|
248
|
+
* @ui
|
|
249
|
+
* @public
|
|
250
|
+
*/
|
|
251
|
+
var Tooltip = exports.Tooltip = (0, _Skinnable["default"])(TooltipBase);
|
|
252
|
+
var _default = exports["default"] = Tooltip;
|