@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,605 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PopupTabLayoutDecorator = exports.PopupTabLayoutBase = exports.PopupTabLayout = void 0;
|
|
7
|
+
Object.defineProperty(exports, "Tab", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _TabLayout.Tab;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports["default"] = exports.TabPanelsBase = exports.TabPanels = exports.TabPanel = void 0;
|
|
14
|
+
var _handle = require("@enact/core/handle");
|
|
15
|
+
var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
|
|
16
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
17
|
+
var _useHandlers = _interopRequireDefault(require("@enact/core/useHandlers"));
|
|
18
|
+
var _util = require("@enact/core/util");
|
|
19
|
+
var _I18nDecorator = require("@enact/i18n/I18nDecorator");
|
|
20
|
+
var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
|
|
21
|
+
var _Pause = _interopRequireDefault(require("@enact/spotlight/Pause"));
|
|
22
|
+
var _SpotlightContainerDecorator = _interopRequireDefault(require("@enact/spotlight/SpotlightContainerDecorator"));
|
|
23
|
+
var _container = require("@enact/spotlight/src/container");
|
|
24
|
+
var _target = require("@enact/spotlight/src/target");
|
|
25
|
+
var _IdProvider = require("@enact/ui/internal/IdProvider");
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
+
var _react = require("react");
|
|
28
|
+
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
29
|
+
var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
30
|
+
var _Panels = _interopRequireWildcard(require("../Panels"));
|
|
31
|
+
var _TabLayout = _interopRequireWildcard(require("../TabLayout"));
|
|
32
|
+
var _Popup = _interopRequireDefault(require("../Popup"));
|
|
33
|
+
var _PopupTabLayoutModule = _interopRequireDefault(require("./PopupTabLayout.module.css"));
|
|
34
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
|
+
var _excluded = ["children", "css", "optimized", "PopupComponent"],
|
|
36
|
+
_excluded2 = ["rtl"],
|
|
37
|
+
_excluded3 = ["spotlightId"];
|
|
38
|
+
/**
|
|
39
|
+
* Provides a floating component suitable for grouping collections of managed views.
|
|
40
|
+
*
|
|
41
|
+
* @module limestone/PopupTabLayout
|
|
42
|
+
* @exports PopupTabLayout
|
|
43
|
+
* @exports Tab
|
|
44
|
+
* @exports TabPanels
|
|
45
|
+
* @exports TabPanelsBase
|
|
46
|
+
* @exports TabPanel
|
|
47
|
+
*/
|
|
48
|
+
// List all the props from PopupTabLayout that we want to move from this component's root onto PopupTabLayout.
|
|
49
|
+
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); }
|
|
50
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
51
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
52
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
53
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
54
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
55
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
56
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
57
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
58
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
59
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
60
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
61
|
+
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; }
|
|
62
|
+
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; }
|
|
63
|
+
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; }
|
|
64
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
65
|
+
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); }
|
|
66
|
+
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; }
|
|
67
|
+
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; }
|
|
68
|
+
var popupPropList = ['noAutoDismiss', 'onHide', 'onKeyDown', 'onShow', 'open', 'position', 'scrimType', 'spotlightId', 'spotlightRestrict', 'id', 'className', 'style', 'noAnimation', 'onClose'];
|
|
69
|
+
var OptimizedContainer = (0, _SpotlightContainerDecorator["default"])({
|
|
70
|
+
enterTo: 'default-element',
|
|
71
|
+
preserveId: true
|
|
72
|
+
}, 'div');
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Tabbed Layout component in a floating Popup.
|
|
76
|
+
*
|
|
77
|
+
* @class PopupTabLayoutBase
|
|
78
|
+
* @memberof limestone/PopupTabLayout
|
|
79
|
+
* @extends limestone/Popup.Popup
|
|
80
|
+
* @extends limestone/TabLayout.TabLayout
|
|
81
|
+
* @ui
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
var PopupTabLayoutBase = exports.PopupTabLayoutBase = (0, _kind["default"])({
|
|
85
|
+
name: 'PopupTabLayout',
|
|
86
|
+
propTypes: /** @lends limestone/PopupTabLayout.PopupTabLayoutBase.prototype */{
|
|
87
|
+
/**
|
|
88
|
+
* Collection of {@link limestone/PopupTabLayout.Tab|Tabs} to render.
|
|
89
|
+
*
|
|
90
|
+
* @type {Node}
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
children: _propTypes["default"].node,
|
|
94
|
+
/**
|
|
95
|
+
* Collapses the vertical tab list into icons only.
|
|
96
|
+
*
|
|
97
|
+
* Only applies to `orientation="vertical"`. If the tabs do not include icons, a single
|
|
98
|
+
* collapsed icon will be shown.
|
|
99
|
+
*
|
|
100
|
+
* @type {Boolean}
|
|
101
|
+
* @public
|
|
102
|
+
*/
|
|
103
|
+
collapsed: _propTypes["default"].bool,
|
|
104
|
+
/**
|
|
105
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
106
|
+
* corresponding internal elements and states of this component.
|
|
107
|
+
*
|
|
108
|
+
* @type {Object}
|
|
109
|
+
* @private
|
|
110
|
+
*/
|
|
111
|
+
css: _propTypes["default"].object,
|
|
112
|
+
/**
|
|
113
|
+
* Specify dimensions for the layout areas.
|
|
114
|
+
*
|
|
115
|
+
* All 4 combinations must be supplied: each of the elements, tabs and content in both
|
|
116
|
+
* collapsed and expanded state.
|
|
117
|
+
*
|
|
118
|
+
* @type {{tabs: {collapsed: Number, normal: Number}, content: {expanded: number, normal: number}}}
|
|
119
|
+
* @default {
|
|
120
|
+
* tabs: {
|
|
121
|
+
* collapsed: 236,
|
|
122
|
+
* normal: 660
|
|
123
|
+
* },
|
|
124
|
+
* content: {
|
|
125
|
+
* expanded: 1320,
|
|
126
|
+
* normal: 1320
|
|
127
|
+
* }
|
|
128
|
+
* }
|
|
129
|
+
* @private
|
|
130
|
+
*/
|
|
131
|
+
dimensions: _propTypes["default"].shape({
|
|
132
|
+
content: _propTypes["default"].shape({
|
|
133
|
+
expanded: _propTypes["default"].number.isRequired,
|
|
134
|
+
normal: _propTypes["default"].number.isRequired
|
|
135
|
+
}).isRequired,
|
|
136
|
+
tabs: _propTypes["default"].shape({
|
|
137
|
+
collapsed: _propTypes["default"].number.isRequired,
|
|
138
|
+
normal: _propTypes["default"].number.isRequired
|
|
139
|
+
}).isRequired
|
|
140
|
+
}),
|
|
141
|
+
/**
|
|
142
|
+
* The currently selected tab.
|
|
143
|
+
*
|
|
144
|
+
* @type {Number}
|
|
145
|
+
* @public
|
|
146
|
+
*/
|
|
147
|
+
index: _propTypes["default"].number,
|
|
148
|
+
/**
|
|
149
|
+
* Disables transition animation.
|
|
150
|
+
*
|
|
151
|
+
* @type {Boolean}
|
|
152
|
+
* @public
|
|
153
|
+
*/
|
|
154
|
+
noAnimation: _propTypes["default"].bool,
|
|
155
|
+
/**
|
|
156
|
+
* Called when the tabs are collapsed.
|
|
157
|
+
*
|
|
158
|
+
* @type {Function}
|
|
159
|
+
* @public
|
|
160
|
+
*/
|
|
161
|
+
onCollapse: _propTypes["default"].func,
|
|
162
|
+
/**
|
|
163
|
+
* Called when the tabs are expanded.
|
|
164
|
+
*
|
|
165
|
+
* @type {Function}
|
|
166
|
+
* @public
|
|
167
|
+
*/
|
|
168
|
+
onExpand: _propTypes["default"].func,
|
|
169
|
+
/**
|
|
170
|
+
* Called after the popup's "hide" transition finishes.
|
|
171
|
+
*
|
|
172
|
+
* @type {Function}
|
|
173
|
+
* @public
|
|
174
|
+
*/
|
|
175
|
+
onHide: _propTypes["default"].func,
|
|
176
|
+
/**
|
|
177
|
+
* Called when a tab is selected
|
|
178
|
+
*
|
|
179
|
+
* @type {Function}
|
|
180
|
+
* @public
|
|
181
|
+
*/
|
|
182
|
+
onSelect: _propTypes["default"].func,
|
|
183
|
+
/**
|
|
184
|
+
* Called after the popup's "show" transition finishes.
|
|
185
|
+
*
|
|
186
|
+
* @type {Function}
|
|
187
|
+
* @public
|
|
188
|
+
*/
|
|
189
|
+
onShow: _propTypes["default"].func,
|
|
190
|
+
/**
|
|
191
|
+
* Called when the tab collapse or expand animation completes.
|
|
192
|
+
*
|
|
193
|
+
* Event payload includes:
|
|
194
|
+
* * `type` - Always set to "onTabAnimationEnd"
|
|
195
|
+
* * `collapsed` - `true` when the tabs are collapsed
|
|
196
|
+
*
|
|
197
|
+
* @type {Function}
|
|
198
|
+
* @public
|
|
199
|
+
*/
|
|
200
|
+
onTabAnimationEnd: _propTypes["default"].func,
|
|
201
|
+
/**
|
|
202
|
+
* Controls the visibility of the Popup.
|
|
203
|
+
*
|
|
204
|
+
* By default, the Popup and its contents are not rendered until `open`.
|
|
205
|
+
*
|
|
206
|
+
* @type {Boolean}
|
|
207
|
+
* @public
|
|
208
|
+
*/
|
|
209
|
+
open: _propTypes["default"].bool,
|
|
210
|
+
/**
|
|
211
|
+
* Optimizes PopupTabLayout without Popup when true.
|
|
212
|
+
*
|
|
213
|
+
* @type {Boolean}
|
|
214
|
+
* @private
|
|
215
|
+
*/
|
|
216
|
+
optimized: _propTypes["default"].bool,
|
|
217
|
+
/**
|
|
218
|
+
* Orientation of the tabs.
|
|
219
|
+
*
|
|
220
|
+
* @type {('vertical')}
|
|
221
|
+
* @private
|
|
222
|
+
*/
|
|
223
|
+
orientation: _propTypes["default"].oneOf(['vertical']),
|
|
224
|
+
/**
|
|
225
|
+
* Position of the Popup on the screen.
|
|
226
|
+
*
|
|
227
|
+
* @type {'left'}
|
|
228
|
+
* @default 'left'
|
|
229
|
+
* @private
|
|
230
|
+
*/
|
|
231
|
+
position: _propTypes["default"].oneOf(['left']),
|
|
232
|
+
/**
|
|
233
|
+
* Scrim type.
|
|
234
|
+
*
|
|
235
|
+
* * Values: `'transparent'`, `'translucent'`, or `'none'`.
|
|
236
|
+
*
|
|
237
|
+
* `'none'` is not compatible with `spotlightRestrict` of `'self-only'`, use a transparent scrim
|
|
238
|
+
* to prevent mouse focus when using popup.
|
|
239
|
+
*
|
|
240
|
+
* @type {('transparent'|'translucent'|'none')}
|
|
241
|
+
* @default 'translucent'
|
|
242
|
+
* @public
|
|
243
|
+
*/
|
|
244
|
+
scrimType: _propTypes["default"].oneOf(['transparent', 'translucent', 'none']),
|
|
245
|
+
/**
|
|
246
|
+
* The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
|
|
247
|
+
*
|
|
248
|
+
* @type {String}
|
|
249
|
+
* @public
|
|
250
|
+
*/
|
|
251
|
+
spotlightId: _propTypes["default"].string,
|
|
252
|
+
/**
|
|
253
|
+
* Restricts or prioritizes navigation when focus attempts to leave the popup.
|
|
254
|
+
*
|
|
255
|
+
* It can be either `'none'`, `'self-first'`, or `'self-only'`.
|
|
256
|
+
*
|
|
257
|
+
* Note: The ready-to-use {@link limestone/Popup.Popup|Popup} component only supports
|
|
258
|
+
* `'self-first'` and `'self-only'`.
|
|
259
|
+
*
|
|
260
|
+
* @type {('none'|'self-first'|'self-only')}
|
|
261
|
+
* @public
|
|
262
|
+
*/
|
|
263
|
+
spotlightRestrict: _propTypes["default"].oneOf(['none', 'self-first', 'self-only'])
|
|
264
|
+
},
|
|
265
|
+
defaultProps: {
|
|
266
|
+
dimensions: {
|
|
267
|
+
tabs: {
|
|
268
|
+
collapsed: 216,
|
|
269
|
+
normal: 660
|
|
270
|
+
},
|
|
271
|
+
content: {
|
|
272
|
+
expanded: 1320,
|
|
273
|
+
normal: 1320
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
orientation: 'vertical',
|
|
277
|
+
position: 'left',
|
|
278
|
+
scrimType: 'translucent'
|
|
279
|
+
},
|
|
280
|
+
styles: {
|
|
281
|
+
css: _PopupTabLayoutModule["default"],
|
|
282
|
+
className: 'popupTabLayout',
|
|
283
|
+
publicClassNames: ['bg', 'button', 'collapsed', 'content', 'panels', 'popupTabLayout', 'scrimTranslucent', 'selected', 'tab', 'tabGroup', 'tabLayout', 'tabs', 'tabsExpanded', 'vertical']
|
|
284
|
+
},
|
|
285
|
+
computed: {
|
|
286
|
+
className: function className(_ref) {
|
|
287
|
+
var collapsed = _ref.collapsed,
|
|
288
|
+
optimized = _ref.optimized,
|
|
289
|
+
scrimType = _ref.scrimType,
|
|
290
|
+
styler = _ref.styler;
|
|
291
|
+
return styler.append({
|
|
292
|
+
collapsed: collapsed,
|
|
293
|
+
optimized: optimized
|
|
294
|
+
}, "scrim".concat((0, _util.cap)(scrimType)));
|
|
295
|
+
},
|
|
296
|
+
noAnimation: function noAnimation(_ref2) {
|
|
297
|
+
var _noAnimation = _ref2.noAnimation;
|
|
298
|
+
return typeof ENACT_PACK_NO_ANIMATION !== 'undefined' && ENACT_PACK_NO_ANIMATION || _noAnimation;
|
|
299
|
+
},
|
|
300
|
+
PopupComponent: function PopupComponent(_ref3) {
|
|
301
|
+
var optimized = _ref3.optimized;
|
|
302
|
+
return optimized ? OptimizedContainer : _Popup["default"];
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
render: function render(_ref4) {
|
|
306
|
+
var children = _ref4.children,
|
|
307
|
+
css = _ref4.css,
|
|
308
|
+
optimized = _ref4.optimized,
|
|
309
|
+
PopupComponent = _ref4.PopupComponent,
|
|
310
|
+
rest = _objectWithoutProperties(_ref4, _excluded);
|
|
311
|
+
// Extract all relevant popup props
|
|
312
|
+
var popupProps = {};
|
|
313
|
+
for (var prop in rest) {
|
|
314
|
+
if (popupPropList.indexOf(prop) >= 0) {
|
|
315
|
+
popupProps[prop] = rest[prop];
|
|
316
|
+
delete rest[prop];
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
if (!optimized) {
|
|
320
|
+
popupProps.noAlertRole = true;
|
|
321
|
+
popupProps.noOutline = true;
|
|
322
|
+
popupProps.css = css;
|
|
323
|
+
} else {
|
|
324
|
+
delete popupProps.noAnimation;
|
|
325
|
+
delete popupProps.noAutoDismiss;
|
|
326
|
+
delete popupProps.onHide;
|
|
327
|
+
delete popupProps.onShow;
|
|
328
|
+
delete popupProps.scrimType;
|
|
329
|
+
}
|
|
330
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PopupComponent, _objectSpread(_objectSpread({}, popupProps), {}, {
|
|
331
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabLayout["default"], _objectSpread(_objectSpread({}, rest), {}, {
|
|
332
|
+
css: css,
|
|
333
|
+
align: "start",
|
|
334
|
+
anchorTo: "left",
|
|
335
|
+
type: "popup",
|
|
336
|
+
children: children
|
|
337
|
+
}))
|
|
338
|
+
}));
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
var OptimizedFocusDecorator = (0, _hoc["default"])(function (config, Wrapped) {
|
|
342
|
+
var _Class;
|
|
343
|
+
return _Class = /*#__PURE__*/function (_Component) {
|
|
344
|
+
function _Class(props) {
|
|
345
|
+
var _this;
|
|
346
|
+
_classCallCheck(this, _Class);
|
|
347
|
+
_this = _callSuper(this, _Class, [props]);
|
|
348
|
+
if (props.optimized) {
|
|
349
|
+
_this.paused = new _Pause["default"]('PopupTabLayout');
|
|
350
|
+
if (props.open) {
|
|
351
|
+
_this.paused.pause();
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return _this;
|
|
355
|
+
}
|
|
356
|
+
_inherits(_Class, _Component);
|
|
357
|
+
return _createClass(_Class, [{
|
|
358
|
+
key: "componentDidMount",
|
|
359
|
+
value: function componentDidMount() {
|
|
360
|
+
if (this.props.optimized && this.props.open) {
|
|
361
|
+
this.paused.resume();
|
|
362
|
+
_spotlight["default"].focus(this.props.spotlightId);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}, {
|
|
366
|
+
key: "componentDidUpdate",
|
|
367
|
+
value: function componentDidUpdate(prevProps) {
|
|
368
|
+
if (this.props.optimized && this.props.open !== prevProps.open) {
|
|
369
|
+
if (this.props.open) {
|
|
370
|
+
_spotlight["default"].focus(this.props.spotlightId);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}, {
|
|
375
|
+
key: "render",
|
|
376
|
+
value: function render() {
|
|
377
|
+
if (this.props.optimized) {
|
|
378
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread({}, this.props), {}, {
|
|
379
|
+
style: !this.props.open ? {
|
|
380
|
+
display: 'none'
|
|
381
|
+
} : null
|
|
382
|
+
}));
|
|
383
|
+
} else {
|
|
384
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread({}, this.props));
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}]);
|
|
388
|
+
}(_react.Component), _Class.displayName = 'OptimizedFocusDecorator', _Class.propTypes = /** @lends sandstone/PopupTabLayout.OptimizedFocusDecorator.prototype */{
|
|
389
|
+
/**
|
|
390
|
+
* Controls the visibility of the PopupTabLayout.
|
|
391
|
+
*
|
|
392
|
+
* @type {Boolean}
|
|
393
|
+
* @private
|
|
394
|
+
*/
|
|
395
|
+
open: _propTypes["default"].bool,
|
|
396
|
+
/**
|
|
397
|
+
* Optimizes PopupTabLayout without Popup when true.
|
|
398
|
+
*
|
|
399
|
+
* @type {Boolean}
|
|
400
|
+
* @private
|
|
401
|
+
*/
|
|
402
|
+
optimized: _propTypes["default"].bool,
|
|
403
|
+
/**
|
|
404
|
+
* The container id.
|
|
405
|
+
*
|
|
406
|
+
* @type {String}
|
|
407
|
+
* @private
|
|
408
|
+
*/
|
|
409
|
+
spotlightId: _propTypes["default"].string
|
|
410
|
+
}, _Class;
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Add behaviors to PopupTabLayout.
|
|
415
|
+
*
|
|
416
|
+
* @class PopupTabLayoutDecorator
|
|
417
|
+
* @memberof limestone/PopupTabLayout
|
|
418
|
+
* @mixes limestone/Skinnable.Skinnable
|
|
419
|
+
* @hoc
|
|
420
|
+
* @public
|
|
421
|
+
*/
|
|
422
|
+
var PopupTabLayoutDecorator = exports.PopupTabLayoutDecorator = (0, _compose["default"])((0, _IdProvider.IdProvider)({
|
|
423
|
+
idProp: 'spotlightId',
|
|
424
|
+
prefix: 'lime-popuptablayout-',
|
|
425
|
+
generateProp: null
|
|
426
|
+
}), OptimizedFocusDecorator, _Skinnable["default"]);
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* An instance of {@link limestone/Popup.Popup|Popup} which restricts the `TabLayout` content to
|
|
430
|
+
* the left side of the screen. The content of `TabLayout` can flex vertically, but not horizontally
|
|
431
|
+
* (fixed width). This is typically used to switch between several collections of managed views
|
|
432
|
+
* (`TabPanels` and `TabPanel`, also exported from this module).
|
|
433
|
+
*
|
|
434
|
+
* Example:
|
|
435
|
+
*
|
|
436
|
+
* ```jsx
|
|
437
|
+
* <PopupTabLayout>
|
|
438
|
+
* <Tab title="Tab One">
|
|
439
|
+
* <TabPanels>
|
|
440
|
+
* <TabPanel>
|
|
441
|
+
* <Header title="First Panel" type="compact" />
|
|
442
|
+
* <Item>Item 1 in Panel 1</Item>
|
|
443
|
+
* <Item>Item 2 in Panel 1</Item>
|
|
444
|
+
* </TabPanel>
|
|
445
|
+
* <TabPanel>
|
|
446
|
+
* <Header title="Second Panel" type="compact" />
|
|
447
|
+
* <Item>Item 1 in Panel 2</Item>
|
|
448
|
+
* <Item>Item 2 in Panel 2</Item>
|
|
449
|
+
* </TabPanel>
|
|
450
|
+
* </TabPanels>
|
|
451
|
+
* </Tab>
|
|
452
|
+
* <Tab title="Tab Two">
|
|
453
|
+
* <Item>Goodbye</Item>
|
|
454
|
+
* </Tab>
|
|
455
|
+
* </PopupTabLayout>
|
|
456
|
+
* ```
|
|
457
|
+
*
|
|
458
|
+
* @class PopupTabLayout
|
|
459
|
+
* @memberof limestone/PopupTabLayout
|
|
460
|
+
* @ui
|
|
461
|
+
* @public
|
|
462
|
+
*/
|
|
463
|
+
var PopupTabLayout = exports.PopupTabLayout = PopupTabLayoutDecorator(PopupTabLayoutBase);
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* A shortcut to access {@link limestone/PopupTabLayout.Tab}
|
|
467
|
+
*
|
|
468
|
+
* @name Tab
|
|
469
|
+
* @type {limestone/PopupTabLayout.Tab}
|
|
470
|
+
* @memberof limestone/PopupTabLayout.PopupTabLayout
|
|
471
|
+
* @extends limestone/TabLayout.Tab
|
|
472
|
+
*/
|
|
473
|
+
PopupTabLayout.Tab = _TabLayout.Tab;
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* A Tab for use inside this component.
|
|
477
|
+
*
|
|
478
|
+
* @class Tab
|
|
479
|
+
* @memberof limestone/PopupTabLayout
|
|
480
|
+
* @extends limestone/TabLayout.Tab
|
|
481
|
+
* @ui
|
|
482
|
+
*/
|
|
483
|
+
|
|
484
|
+
var tabPanelsHandlers = {
|
|
485
|
+
onTransition: (0, _handle.handle)((0, _handle.forward)('onTransition'), function (ev, props, _ref5) {
|
|
486
|
+
var onTransition = _ref5.onTransition;
|
|
487
|
+
onTransition(ev);
|
|
488
|
+
}),
|
|
489
|
+
onKeyDown: (0, _handle.handle)((0, _handle.forward)('onKeyDown'), function (_ref6) {
|
|
490
|
+
var target = _ref6.target;
|
|
491
|
+
return target.tagName !== 'INPUT';
|
|
492
|
+
}, (0, _handle.forProp)('rtl', false), (0, _handle.forKey)('left'), function (ev, _ref7) {
|
|
493
|
+
var index = _ref7.index;
|
|
494
|
+
return index > 0;
|
|
495
|
+
}, function (_ref8) {
|
|
496
|
+
var target = _ref8.target;
|
|
497
|
+
var next = (0, _target.getTargetByDirectionFromElement)('left', target);
|
|
498
|
+
if (next === null || next && !(0, _container.getContainerNode)((0, _container.getContainersForNode)(target).pop()).contains(next)) {
|
|
499
|
+
return true;
|
|
500
|
+
}
|
|
501
|
+
return false;
|
|
502
|
+
}, function (ev) {
|
|
503
|
+
if ((0, _container.getContainerNode)((0, _container.getContainersForNode)(ev.target).pop()).tagName === 'HEADER') {
|
|
504
|
+
ev.stopPropagation();
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
return document.querySelector("section.".concat(_PopupTabLayoutModule["default"].body)).contains(ev.target);
|
|
508
|
+
}, (0, _handle.forwardCustom)('onBack'), function () {
|
|
509
|
+
_spotlight["default"].setPointerMode(false);
|
|
510
|
+
return true;
|
|
511
|
+
}, _handle.preventDefault, _handle.stop)
|
|
512
|
+
};
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* A base component for {@link limestone/PopupTabLayout.TabPanels|TabPanels} which has
|
|
516
|
+
* left key handler to navigate panels.
|
|
517
|
+
*
|
|
518
|
+
* @class TabPanelsBase
|
|
519
|
+
* @memberof limestone/PopupTabLayout
|
|
520
|
+
* @extends limestone/Panels.Panels
|
|
521
|
+
* @ui
|
|
522
|
+
* @public
|
|
523
|
+
*/
|
|
524
|
+
var TabPanelsBase = exports.TabPanelsBase = function TabPanelsBase(_ref9) {
|
|
525
|
+
var rtl = _ref9.rtl,
|
|
526
|
+
rest = _objectWithoutProperties(_ref9, _excluded2);
|
|
527
|
+
var onTransition = (0, _react.use)(_TabLayout.TabLayoutContext);
|
|
528
|
+
var handlers = (0, _useHandlers["default"])(tabPanelsHandlers, _objectSpread({
|
|
529
|
+
rtl: rtl
|
|
530
|
+
}, rest), {
|
|
531
|
+
onTransition: onTransition
|
|
532
|
+
});
|
|
533
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Panels["default"], _objectSpread(_objectSpread({
|
|
534
|
+
noCloseButton: true
|
|
535
|
+
}, rest), {}, {
|
|
536
|
+
css: _PopupTabLayoutModule["default"]
|
|
537
|
+
}, handlers));
|
|
538
|
+
};
|
|
539
|
+
TabPanelsBase.propTypes = {
|
|
540
|
+
rtl: _propTypes["default"].bool
|
|
541
|
+
};
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* A customized version of Panels for use inside this component.
|
|
545
|
+
*
|
|
546
|
+
* @class TabPanels
|
|
547
|
+
* @memberof limestone/PopupTabLayout
|
|
548
|
+
* @extends limestone/PopupTabLayout.TabPanelsBase
|
|
549
|
+
* @ui
|
|
550
|
+
* @public
|
|
551
|
+
*/
|
|
552
|
+
var TabPanels = exports.TabPanels = (0, _I18nDecorator.I18nContextDecorator)({
|
|
553
|
+
rtlProp: 'rtl'
|
|
554
|
+
}, TabPanelsBase);
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* Omits the close button.
|
|
558
|
+
*
|
|
559
|
+
* Unlike most components, this prop defaults to `true`. To show the close button, the prop must
|
|
560
|
+
* explicitly set it to `false`:
|
|
561
|
+
*
|
|
562
|
+
* ```
|
|
563
|
+
* <TabPanels noCloseButton={false} />
|
|
564
|
+
* ```
|
|
565
|
+
*
|
|
566
|
+
* @name noCloseButton
|
|
567
|
+
* @memberof limestone/PopupTabLayout.TabPanels.prototype
|
|
568
|
+
* @type {Boolean}
|
|
569
|
+
* @default true
|
|
570
|
+
* @public
|
|
571
|
+
*/
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* A customized version of Panel for use inside this component.
|
|
575
|
+
*
|
|
576
|
+
* @class TabPanel
|
|
577
|
+
* @memberof limestone/PopupTabLayout
|
|
578
|
+
* @extends limestone/Panels.Panel
|
|
579
|
+
* @ui
|
|
580
|
+
* @public
|
|
581
|
+
*/
|
|
582
|
+
var TabPanel = exports.TabPanel = function TabPanel(_ref0) {
|
|
583
|
+
var spotlightId = _ref0.spotlightId,
|
|
584
|
+
rest = _objectWithoutProperties(_ref0, _excluded3);
|
|
585
|
+
(0, _react.useEffect)(function () {
|
|
586
|
+
_spotlight["default"].set(spotlightId, {
|
|
587
|
+
partition: true
|
|
588
|
+
});
|
|
589
|
+
}, [spotlightId]);
|
|
590
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Panels.Panel, _objectSpread(_objectSpread({}, rest), {}, {
|
|
591
|
+
css: _PopupTabLayoutModule["default"],
|
|
592
|
+
hideChildren: false,
|
|
593
|
+
spotlightId: spotlightId
|
|
594
|
+
}));
|
|
595
|
+
};
|
|
596
|
+
TabPanel.propTypes = {
|
|
597
|
+
/**
|
|
598
|
+
* The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
|
|
599
|
+
*
|
|
600
|
+
* @type {String}
|
|
601
|
+
* @private
|
|
602
|
+
*/
|
|
603
|
+
spotlightId: _propTypes["default"].string
|
|
604
|
+
};
|
|
605
|
+
var _default = exports["default"] = PopupTabLayout;
|