@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,661 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Tab", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _Tab["default"];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
exports["default"] = exports.TabLayoutDecorator = exports.TabLayoutContext = exports.TabLayoutBase = exports.TabLayout = void 0;
|
|
13
|
+
var _handle = require("@enact/core/handle");
|
|
14
|
+
var _keymap = require("@enact/core/keymap");
|
|
15
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
16
|
+
var _util = require("@enact/core/util");
|
|
17
|
+
var _I18nDecorator = require("@enact/i18n/I18nDecorator");
|
|
18
|
+
var _spotlight = _interopRequireWildcard(require("@enact/spotlight"));
|
|
19
|
+
var _target = require("@enact/spotlight/src/target");
|
|
20
|
+
var _SpotlightContainerDecorator = _interopRequireDefault(require("@enact/spotlight/SpotlightContainerDecorator"));
|
|
21
|
+
var _Changeable = require("@enact/ui/Changeable");
|
|
22
|
+
var _Layout = require("@enact/ui/Layout");
|
|
23
|
+
var _resolution = _interopRequireWildcard(require("@enact/ui/resolution"));
|
|
24
|
+
var _Toggleable = _interopRequireDefault(require("@enact/ui/Toggleable"));
|
|
25
|
+
var _Touchable = _interopRequireDefault(require("@enact/ui/Touchable"));
|
|
26
|
+
var _ViewManager = _interopRequireDefault(require("@enact/ui/ViewManager"));
|
|
27
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
28
|
+
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
29
|
+
var _react = require("react");
|
|
30
|
+
var _ThemeDecorator = require("../ThemeDecorator");
|
|
31
|
+
var _RefocusDecorator = _interopRequireWildcard(require("./RefocusDecorator"));
|
|
32
|
+
var _TabGroup = _interopRequireDefault(require("./TabGroup"));
|
|
33
|
+
var _Tab = _interopRequireDefault(require("./Tab"));
|
|
34
|
+
var _TabLayoutModule = _interopRequireDefault(require("./TabLayout.module.css"));
|
|
35
|
+
var _PopupTabLayoutModule = _interopRequireDefault(require("../PopupTabLayout/PopupTabLayout.module.css"));
|
|
36
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
37
|
+
var _excluded = ["children", "collapsed", "css", "data-spotlight-id", "primaryIndex", "dimensions", "handleClick", "handleEnter", "handleFlick", "handleFocus", "handleTabsTransitionEnd", "index", "onCollapse", "onScrollStop", "onSelect", "orientation", "scrollable", "scrollPosition", "size", "tabOrientation", "tabs", "type"];
|
|
38
|
+
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); }
|
|
39
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
40
|
+
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; }
|
|
41
|
+
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; }
|
|
42
|
+
function _readOnlyError(r) { throw new TypeError('"' + r + '" is read-only'); }
|
|
43
|
+
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; }
|
|
44
|
+
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; }
|
|
45
|
+
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; }
|
|
46
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
47
|
+
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); } /**
|
|
48
|
+
* Provides a Limestone-themed TabLayout.
|
|
49
|
+
*
|
|
50
|
+
* @module limestone/TabLayout
|
|
51
|
+
* @exports TabLayout
|
|
52
|
+
* @exports TabLayoutBase
|
|
53
|
+
* @exports TabLayoutContext
|
|
54
|
+
* @exports TabLayoutDecorator
|
|
55
|
+
* @exports Tab
|
|
56
|
+
*/
|
|
57
|
+
var MAX_TABS_BEFORE_VERTICAL_SCROLLING = 8;
|
|
58
|
+
var TAB_SPACING = 48;
|
|
59
|
+
var TabLayoutContext = exports.TabLayoutContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
60
|
+
var TouchableCell = (0, _Touchable["default"])(_Layout.Cell);
|
|
61
|
+
var isTouchMode = function isTouchMode() {
|
|
62
|
+
return (0, _ThemeDecorator.getLastInputType)() === 'touch';
|
|
63
|
+
};
|
|
64
|
+
var getHorizontalTabWidth = function getHorizontalTabWidth(dataSize, size, tabSize) {
|
|
65
|
+
var widths;
|
|
66
|
+
if (tabSize) {
|
|
67
|
+
return tabSize;
|
|
68
|
+
}
|
|
69
|
+
if (size === 'small') {
|
|
70
|
+
widths = [540, 420, 420];
|
|
71
|
+
} else {
|
|
72
|
+
widths = [852, 672, 552];
|
|
73
|
+
}
|
|
74
|
+
if (dataSize < 5) {
|
|
75
|
+
return widths[0];
|
|
76
|
+
} else if (dataSize < 6) {
|
|
77
|
+
return widths[1];
|
|
78
|
+
} else {
|
|
79
|
+
return widths[2];
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
var isHorizontalScrollableTabs = function isHorizontalScrollableTabs(dataSize, offset, size, tabSize) {
|
|
83
|
+
var _window;
|
|
84
|
+
var totalTabsWidth = dataSize * getHorizontalTabWidth(dataSize, size, tabSize) + TAB_SPACING * (dataSize - 1) + 2 * offset;
|
|
85
|
+
return typeof window !== 'undefined' && (_window = window) !== null && _window !== void 0 && _window.innerWidth ? window.innerWidth < _resolution["default"].scale(totalTabsWidth) : false;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Tabbed Layout component.
|
|
90
|
+
*
|
|
91
|
+
* Example:
|
|
92
|
+
*
|
|
93
|
+
* ```jsx
|
|
94
|
+
* <TabLayout>
|
|
95
|
+
* <Tab title="Tab One">
|
|
96
|
+
* <Item>Hello</Item>
|
|
97
|
+
* </Tab>
|
|
98
|
+
* <Tab title="Tab Two">
|
|
99
|
+
* <Item>Goodbye</Item>
|
|
100
|
+
* </Tab>
|
|
101
|
+
* </TabLayout>
|
|
102
|
+
* ```
|
|
103
|
+
*
|
|
104
|
+
* @class TabLayout
|
|
105
|
+
* @memberof limestone/TabLayout
|
|
106
|
+
* @ui
|
|
107
|
+
* @public
|
|
108
|
+
*/
|
|
109
|
+
var TabLayoutBase = exports.TabLayoutBase = (0, _kind["default"])({
|
|
110
|
+
name: 'TabLayout',
|
|
111
|
+
propTypes: /** @lends limestone/TabLayout.TabLayout.prototype */{
|
|
112
|
+
/**
|
|
113
|
+
* Sets where this component should attach its tabs and animations.
|
|
114
|
+
*
|
|
115
|
+
* "left" and "right" represent true screen left and screen right, while "start" represents
|
|
116
|
+
* screen left in LTR and screen right in RTL. "end" is the reverse: screen right for LTR
|
|
117
|
+
* and screen left for RTL.
|
|
118
|
+
*
|
|
119
|
+
* @type {('left'|'right'|'start'|'end')}
|
|
120
|
+
* @default 'start'
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
anchorTo: _propTypes["default"].oneOf(['left', 'right', 'start', 'end']),
|
|
124
|
+
/**
|
|
125
|
+
* Prevents the tab list from automatically collapsing when the screen orientation changes to portrait mode.
|
|
126
|
+
*
|
|
127
|
+
* Only applies to `orientation="vertical".
|
|
128
|
+
*
|
|
129
|
+
* @type {Boolean}
|
|
130
|
+
* @public
|
|
131
|
+
*/
|
|
132
|
+
blockCollapseOnPortrait: _propTypes["default"].bool,
|
|
133
|
+
/**
|
|
134
|
+
* Collection of {@link limestone/TabLayout.Tab|Tabs} to render.
|
|
135
|
+
*
|
|
136
|
+
* @type {Node}
|
|
137
|
+
* @public
|
|
138
|
+
*/
|
|
139
|
+
children: _propTypes["default"].node,
|
|
140
|
+
/**
|
|
141
|
+
* Collapses the vertical tab list into icons only.
|
|
142
|
+
*
|
|
143
|
+
* Only applies to `orientation="vertical"`. If the tabs do not include icons, a single
|
|
144
|
+
* collapsed icon will be shown.
|
|
145
|
+
*
|
|
146
|
+
* @type {Boolean}
|
|
147
|
+
* @public
|
|
148
|
+
*/
|
|
149
|
+
collapsed: _propTypes["default"].bool,
|
|
150
|
+
/**
|
|
151
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
152
|
+
* corresponding internal elements and states of this component.
|
|
153
|
+
*
|
|
154
|
+
* The following classes are supported:
|
|
155
|
+
*
|
|
156
|
+
* @type {Object}
|
|
157
|
+
* @public
|
|
158
|
+
*/
|
|
159
|
+
css: _propTypes["default"].object,
|
|
160
|
+
'data-spotlight-id': _propTypes["default"].string,
|
|
161
|
+
/**
|
|
162
|
+
* Specify dimensions for the layout areas.
|
|
163
|
+
*
|
|
164
|
+
* All 4 combinations must be supplied: each of the elements, tabs and content in both
|
|
165
|
+
* collapsed and expanded state.
|
|
166
|
+
*
|
|
167
|
+
* @type {{tabs: {collapsed: Number, normal: Number}, content: {expanded: number, normal: number}}}
|
|
168
|
+
* @default {
|
|
169
|
+
* tabs: {
|
|
170
|
+
* collapsed: 228,
|
|
171
|
+
* normal: 882
|
|
172
|
+
* },
|
|
173
|
+
* content: {
|
|
174
|
+
* expanded: null,
|
|
175
|
+
* normal: null
|
|
176
|
+
* }
|
|
177
|
+
* }
|
|
178
|
+
* @private
|
|
179
|
+
*/
|
|
180
|
+
dimensions: _propTypes["default"].shape({
|
|
181
|
+
content: _propTypes["default"].shape({
|
|
182
|
+
expanded: _propTypes["default"].number,
|
|
183
|
+
normal: _propTypes["default"].number
|
|
184
|
+
}).isRequired,
|
|
185
|
+
tabs: _propTypes["default"].shape({
|
|
186
|
+
collapsed: _propTypes["default"].number,
|
|
187
|
+
normal: _propTypes["default"].number
|
|
188
|
+
}).isRequired
|
|
189
|
+
}),
|
|
190
|
+
/**
|
|
191
|
+
* The currently selected tab.
|
|
192
|
+
*
|
|
193
|
+
* @type {Number}
|
|
194
|
+
* @default 0
|
|
195
|
+
* @public
|
|
196
|
+
*/
|
|
197
|
+
index: _propTypes["default"].number,
|
|
198
|
+
/**
|
|
199
|
+
* The offset of the tabs area from the left and right edges of the screen.
|
|
200
|
+
* This option is only applicable when `orientation` is set to `horizontal`.
|
|
201
|
+
* The default value set to `36` to have the right position of the tabs in the normal panel.
|
|
202
|
+
* If the tabs are supposed to scroll, this value should be set to `132` and the panel should have no padding.
|
|
203
|
+
*
|
|
204
|
+
* @type {Number}
|
|
205
|
+
* @default 36
|
|
206
|
+
* @public
|
|
207
|
+
*/
|
|
208
|
+
offset: _propTypes["default"].number,
|
|
209
|
+
/**
|
|
210
|
+
* Called when the tabs are collapsed.
|
|
211
|
+
*
|
|
212
|
+
* @type {Function}
|
|
213
|
+
* @public
|
|
214
|
+
*/
|
|
215
|
+
onCollapse: _propTypes["default"].func,
|
|
216
|
+
/**
|
|
217
|
+
* Called when the tabs are expanded.
|
|
218
|
+
*
|
|
219
|
+
* @type {Function}
|
|
220
|
+
* @public
|
|
221
|
+
*/
|
|
222
|
+
onExpand: _propTypes["default"].func,
|
|
223
|
+
/**
|
|
224
|
+
* Called when a tab is selected
|
|
225
|
+
*
|
|
226
|
+
* @type {Function}
|
|
227
|
+
* @public
|
|
228
|
+
*/
|
|
229
|
+
onSelect: _propTypes["default"].func,
|
|
230
|
+
/**
|
|
231
|
+
* Called when the tab collapse or expand animation completes.
|
|
232
|
+
*
|
|
233
|
+
* Event payload includes:
|
|
234
|
+
* * `type` - Always set to "onTabAnimationEnd"
|
|
235
|
+
* * `collapsed` - `true` when the tabs are collapsed
|
|
236
|
+
*
|
|
237
|
+
* @type {Function}
|
|
238
|
+
* @public
|
|
239
|
+
*/
|
|
240
|
+
onTabAnimationEnd: _propTypes["default"].func,
|
|
241
|
+
/**
|
|
242
|
+
* Orientation of the tabs.
|
|
243
|
+
*
|
|
244
|
+
* @type {('horizontal'|'vertical')}
|
|
245
|
+
* @default 'vertical'
|
|
246
|
+
* @public
|
|
247
|
+
*/
|
|
248
|
+
orientation: _propTypes["default"].oneOf(['horizontal', 'vertical']),
|
|
249
|
+
/**
|
|
250
|
+
* The index of the primary tab.
|
|
251
|
+
* When this prop is set, the initial focus will be on the primary tab when rendered.
|
|
252
|
+
* Also, when pressing the back key from other tabs, the focus will be moved to the primary tab.
|
|
253
|
+
* If the `primaryIndex` is not provided, the initial focus will default to the first tab during the initial render.
|
|
254
|
+
*
|
|
255
|
+
* @type {Number}
|
|
256
|
+
* @default null
|
|
257
|
+
* @public
|
|
258
|
+
*/
|
|
259
|
+
primaryIndex: _propTypes["default"].number,
|
|
260
|
+
/**
|
|
261
|
+
* Indicates the content's text direction is right-to-left.
|
|
262
|
+
*
|
|
263
|
+
* @type {Boolean}
|
|
264
|
+
* @private
|
|
265
|
+
*/
|
|
266
|
+
rtl: _propTypes["default"].bool,
|
|
267
|
+
/**
|
|
268
|
+
* The scroll position of the tab list.
|
|
269
|
+
* This property maintains the vertical scroll position of the tabs when they are scrollable and collapsed.
|
|
270
|
+
*
|
|
271
|
+
* @type {{x: number, y: number}}
|
|
272
|
+
* @default {x: 0, y: 0}
|
|
273
|
+
* @private
|
|
274
|
+
*/
|
|
275
|
+
scrollPosition: _propTypes["default"].object,
|
|
276
|
+
/**
|
|
277
|
+
* The size of the horizontal tab.
|
|
278
|
+
*
|
|
279
|
+
* @type {('small'|'large')}
|
|
280
|
+
* @default 'large'
|
|
281
|
+
* @public
|
|
282
|
+
*/
|
|
283
|
+
size: _propTypes["default"].oneOf(['small', 'large']),
|
|
284
|
+
/**
|
|
285
|
+
* Assign a custom size to horizontal tabs.
|
|
286
|
+
*
|
|
287
|
+
* Tabs in the horizontal orientation automatically stretch to fill the available width.
|
|
288
|
+
* Leave this prop blank to use the default auto-sizing behavior.
|
|
289
|
+
* Tabs may also be set to a finite width using this property. This accepts numeric pixel
|
|
290
|
+
* values. Be mindful of the value you provide as values that are too wide will run off the
|
|
291
|
+
* edge of the screen.
|
|
292
|
+
*
|
|
293
|
+
* Only applies to `orientation="horizontal"` at this time.
|
|
294
|
+
*
|
|
295
|
+
* @type {Number}
|
|
296
|
+
* @public
|
|
297
|
+
*/
|
|
298
|
+
tabSize: _propTypes["default"].number,
|
|
299
|
+
/**
|
|
300
|
+
* Type of TabLayout.
|
|
301
|
+
*
|
|
302
|
+
* @type {('normal'|'popup')}
|
|
303
|
+
* @default 'normal'
|
|
304
|
+
* @private
|
|
305
|
+
*/
|
|
306
|
+
type: _propTypes["default"].oneOf(['normal', 'popup'])
|
|
307
|
+
},
|
|
308
|
+
defaultProps: {
|
|
309
|
+
anchorTo: 'start',
|
|
310
|
+
dimensions: {
|
|
311
|
+
tabs: {
|
|
312
|
+
collapsed: 216,
|
|
313
|
+
normal: 888
|
|
314
|
+
},
|
|
315
|
+
content: {
|
|
316
|
+
expanded: null,
|
|
317
|
+
normal: null
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
index: null,
|
|
321
|
+
primaryIndex: null,
|
|
322
|
+
offset: 36,
|
|
323
|
+
orientation: 'vertical',
|
|
324
|
+
scrollPosition: {
|
|
325
|
+
x: 0,
|
|
326
|
+
y: 0
|
|
327
|
+
},
|
|
328
|
+
size: 'large',
|
|
329
|
+
type: 'normal'
|
|
330
|
+
},
|
|
331
|
+
styles: {
|
|
332
|
+
css: _TabLayoutModule["default"],
|
|
333
|
+
className: 'tabLayout',
|
|
334
|
+
publicClassNames: ['bg', 'button', 'client', 'collapsed', 'content', 'selected', 'tab', 'tabGroup', 'tabLayout', 'tabs', 'tabsExpanded', 'vertical']
|
|
335
|
+
},
|
|
336
|
+
handlers: {
|
|
337
|
+
onKeyDown: function onKeyDown(ev, props) {
|
|
338
|
+
var keyCode = ev.keyCode,
|
|
339
|
+
target = ev.target;
|
|
340
|
+
var collapsed = props.collapsed,
|
|
341
|
+
orientation = props.orientation,
|
|
342
|
+
spotlightId = props['data-spotlight-id'];
|
|
343
|
+
var direction = (0, _spotlight.getDirection)(keyCode);
|
|
344
|
+
if ((0, _handle.forwardWithPrevent)('onKeyDown', ev, props) && direction && collapsed && orientation === 'vertical' && document.querySelector("[data-spotlight-id='".concat(spotlightId, "']")).contains(target) && target.tagName !== 'INPUT') {
|
|
345
|
+
_spotlight["default"].setPointerMode(false);
|
|
346
|
+
ev.preventDefault();
|
|
347
|
+
_spotlight["default"].set(spotlightId, {
|
|
348
|
+
navigableFilter: null
|
|
349
|
+
});
|
|
350
|
+
var nextTarget = (0, _target.getTargetByDirectionFromElement)(direction, target);
|
|
351
|
+
var isNextTargetInTabs = nextTarget && document.querySelector(".".concat(_TabLayoutModule["default"].tabs)).contains(nextTarget);
|
|
352
|
+
_spotlight["default"].set(spotlightId, {
|
|
353
|
+
navigableFilter: (0, _RefocusDecorator.getNavigableFilter)(spotlightId, collapsed)
|
|
354
|
+
});
|
|
355
|
+
if (!isNextTargetInTabs && _spotlight["default"].move(direction)) {
|
|
356
|
+
ev.stopPropagation();
|
|
357
|
+
} else if (isNextTargetInTabs && document.querySelector("[data-spotlight-id='".concat(spotlightId, "'] .").concat(_TabLayoutModule["default"].content)).contains(target)) {
|
|
358
|
+
(0, _handle.forward)('onExpand', ev, props);
|
|
359
|
+
}
|
|
360
|
+
} else if ((0, _keymap.is)('enter')(keyCode) && !collapsed && document.querySelector("[data-spotlight-id='".concat(spotlightId, "-tabs-expanded']")).contains(target) && target.tagName !== 'INPUT') {
|
|
361
|
+
ev.stopPropagation();
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
onKeyUp: function onKeyUp(ev, props) {
|
|
365
|
+
var keyCode = ev.keyCode,
|
|
366
|
+
target = ev.target;
|
|
367
|
+
var anchorTo = props.anchorTo,
|
|
368
|
+
collapsed = props.collapsed,
|
|
369
|
+
orientation = props.orientation,
|
|
370
|
+
primaryIndex = props.primaryIndex,
|
|
371
|
+
spotlightId = props['data-spotlight-id'],
|
|
372
|
+
rtl = props.rtl,
|
|
373
|
+
type = props.type;
|
|
374
|
+
var popupPanelRef = document.querySelector("[data-spotlight-id='".concat(spotlightId, "'] .").concat(_PopupTabLayoutModule["default"].panel));
|
|
375
|
+
var tabLayoutContentRef = document.querySelector("[data-spotlight-id='".concat(spotlightId, "'] .").concat(_TabLayoutModule["default"].content));
|
|
376
|
+
var tabsExpandedSpotlightId = "".concat(spotlightId, "-tabs-expanded");
|
|
377
|
+
if ((0, _handle.forwardWithPrevent)('onKeyUp', ev, props) && (0, _keymap.is)('cancel')(keyCode)) {
|
|
378
|
+
if (type === 'popup' && popupPanelRef !== null && popupPanelRef !== void 0 && popupPanelRef.contains(target) && (popupPanelRef === null || popupPanelRef === void 0 ? void 0 : popupPanelRef.dataset.index) === '0' || type === 'normal' && !_spotlight["default"].getPointerMode() && tabLayoutContentRef !== null && tabLayoutContentRef !== void 0 && tabLayoutContentRef.contains(target)) {
|
|
379
|
+
if (collapsed) {
|
|
380
|
+
(0, _handle.forward)('onExpand', ev, props);
|
|
381
|
+
}
|
|
382
|
+
_spotlight["default"].focus("[data-spotlight-id='".concat(tabsExpandedSpotlightId, "']"));
|
|
383
|
+
ev.stopPropagation();
|
|
384
|
+
} else if (primaryIndex !== null) {
|
|
385
|
+
_spotlight["default"].focus("[data-spotlight-id='".concat(tabsExpandedSpotlightId, "-primary-tab']"));
|
|
386
|
+
ev.stopPropagation();
|
|
387
|
+
}
|
|
388
|
+
} else if ((0, _keymap.is)('enter')(keyCode) && !collapsed && document.querySelector("[data-spotlight-id='".concat(tabsExpandedSpotlightId, "']")).contains(target) && target.tagName !== 'INPUT') {
|
|
389
|
+
_spotlight["default"].setPointerMode(false);
|
|
390
|
+
var moveTo;
|
|
391
|
+
if (orientation === 'vertical') {
|
|
392
|
+
if (anchorTo === 'left') {
|
|
393
|
+
moveTo = 'right';
|
|
394
|
+
} else if (anchorTo === 'right') {
|
|
395
|
+
moveTo = 'left';
|
|
396
|
+
} else if (anchorTo === 'start') {
|
|
397
|
+
if (rtl) {
|
|
398
|
+
moveTo = 'left';
|
|
399
|
+
} else {
|
|
400
|
+
moveTo = 'right';
|
|
401
|
+
}
|
|
402
|
+
} else if (anchorTo === 'end') {
|
|
403
|
+
if (!rtl) {
|
|
404
|
+
moveTo = 'left';
|
|
405
|
+
} else {
|
|
406
|
+
moveTo = 'right';
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
} else {
|
|
410
|
+
moveTo = 'down';
|
|
411
|
+
}
|
|
412
|
+
_spotlight["default"].move(moveTo);
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
onScrollStop: (0, _handle.handle)((0, _handle.forProp)('collapsed', false), (0, _handle.forProp)('orientation', 'vertical'), (0, _handle.forwardCustom)('onScrollStop', function (_ref) {
|
|
416
|
+
var scrollLeft = _ref.scrollLeft,
|
|
417
|
+
scrollTop = _ref.scrollTop;
|
|
418
|
+
return {
|
|
419
|
+
scrollPosition: {
|
|
420
|
+
x: scrollLeft,
|
|
421
|
+
y: scrollTop
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
})),
|
|
425
|
+
onSelect: (0, _handle.handle)((0, _handle.forwardCustom)('onSelect', function (_ref2) {
|
|
426
|
+
var selected = _ref2.selected;
|
|
427
|
+
return {
|
|
428
|
+
index: selected
|
|
429
|
+
};
|
|
430
|
+
})),
|
|
431
|
+
handleTabsTransitionEnd: (0, _handle.handle)((0, _handle.forward)('onTransitionEnd'), (0, _handle.forProp)('orientation', 'vertical'),
|
|
432
|
+
// Validate the transition is from the root node
|
|
433
|
+
function (ev) {
|
|
434
|
+
return ev.target.classList.contains(_TabLayoutModule["default"].tabs);
|
|
435
|
+
}, (0, _handle.forwardCustom)('onTabAnimationEnd', function (ev, _ref3) {
|
|
436
|
+
var collapsed = _ref3.collapsed;
|
|
437
|
+
return {
|
|
438
|
+
collapsed: Boolean(collapsed)
|
|
439
|
+
};
|
|
440
|
+
})),
|
|
441
|
+
handleFlick: function handleFlick(_ref4, _ref5) {
|
|
442
|
+
var direction = _ref4.direction,
|
|
443
|
+
velocityX = _ref4.velocityX;
|
|
444
|
+
var collapsed = _ref5.collapsed,
|
|
445
|
+
onCollapse = _ref5.onCollapse,
|
|
446
|
+
onExpand = _ref5.onExpand;
|
|
447
|
+
// See the global class 'spotlight-input-touch' to check the input type is touch
|
|
448
|
+
if (isTouchMode() && direction === 'horizontal') {
|
|
449
|
+
if (!collapsed && velocityX < 0) {
|
|
450
|
+
onCollapse();
|
|
451
|
+
} else if (collapsed && velocityX > 0) {
|
|
452
|
+
onExpand();
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
},
|
|
456
|
+
handleClick: (0, _handle.handle)(isTouchMode, (0, _handle.forward)('onExpand')),
|
|
457
|
+
handleFocus: (0, _handle.handle)((0, _handle.not)(isTouchMode), (0, _handle.forward)('onExpand')),
|
|
458
|
+
handleEnter: function handleEnter(ev, props) {
|
|
459
|
+
var index = ev.index,
|
|
460
|
+
previousIndex = ev.previousIndex;
|
|
461
|
+
if (index > previousIndex) {
|
|
462
|
+
(0, _handle.forward)('onCollapse', ev, props);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
computed: {
|
|
467
|
+
children: function children(_ref6) {
|
|
468
|
+
var _children = _ref6.children;
|
|
469
|
+
return (0, _util.mapAndFilterChildren)(_children, function (child) {
|
|
470
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Fragment, {
|
|
471
|
+
children: child.props.children
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
},
|
|
475
|
+
className: function className(_ref7) {
|
|
476
|
+
var collapsed = _ref7.collapsed,
|
|
477
|
+
anchorTo = _ref7.anchorTo,
|
|
478
|
+
orientation = _ref7.orientation,
|
|
479
|
+
styler = _ref7.styler;
|
|
480
|
+
return styler.append({
|
|
481
|
+
collapsed: orientation === 'vertical' && collapsed
|
|
482
|
+
}, "anchor".concat((0, _util.cap)(anchorTo)), orientation);
|
|
483
|
+
},
|
|
484
|
+
scrollable: function scrollable(_ref8) {
|
|
485
|
+
var children = _ref8.children,
|
|
486
|
+
offset = _ref8.offset,
|
|
487
|
+
orientation = _ref8.orientation,
|
|
488
|
+
size = _ref8.size,
|
|
489
|
+
tabSize = _ref8.tabSize;
|
|
490
|
+
var isVertical = orientation === 'vertical';
|
|
491
|
+
return isVertical ? children.length > MAX_TABS_BEFORE_VERTICAL_SCROLLING : isHorizontalScrollableTabs(children.length, offset, size, tabSize);
|
|
492
|
+
},
|
|
493
|
+
style: function style(_ref9) {
|
|
494
|
+
var children = _ref9.children,
|
|
495
|
+
dimensions = _ref9.dimensions,
|
|
496
|
+
offset = _ref9.offset,
|
|
497
|
+
orientation = _ref9.orientation,
|
|
498
|
+
size = _ref9.size,
|
|
499
|
+
_style = _ref9.style,
|
|
500
|
+
tabSize = _ref9.tabSize;
|
|
501
|
+
var isVertical = orientation === 'vertical';
|
|
502
|
+
var scrollable = isVertical ? children.length > MAX_TABS_BEFORE_VERTICAL_SCROLLING : isHorizontalScrollableTabs(children.length, offset, size, tabSize);
|
|
503
|
+
var tabSizeValue = !isVertical ? getHorizontalTabWidth(children.length, size, tabSize) : null;
|
|
504
|
+
var totalTabsWidth = _resolution["default"].scaleToRem(tabSizeValue * children.length + TAB_SPACING * (children.length - 1));
|
|
505
|
+
return _objectSpread(_objectSpread({}, _style), {}, {
|
|
506
|
+
'--offset': (0, _resolution.scaleToRem)(offset),
|
|
507
|
+
'--scrollable': scrollable ? '1' : '0',
|
|
508
|
+
'--tabs-width': !isVertical ? totalTabsWidth : '100%',
|
|
509
|
+
'--tab-width': (0, _resolution.scaleToRem)(tabSizeValue),
|
|
510
|
+
'--tablayout-expand-collapse-diff': orientation === 'vertical' ? (0, _resolution.scaleToRem)(dimensions.tabs.normal - dimensions.tabs.collapsed) : 0
|
|
511
|
+
});
|
|
512
|
+
},
|
|
513
|
+
index: function index(_ref0) {
|
|
514
|
+
var _ref1;
|
|
515
|
+
var _index = _ref0.index,
|
|
516
|
+
primaryIndex = _ref0.primaryIndex;
|
|
517
|
+
// If `index` is not provided, it defaults to `primaryIndex` or 0.
|
|
518
|
+
return (_ref1 = _index !== null && _index !== void 0 ? _index : primaryIndex) !== null && _ref1 !== void 0 ? _ref1 : 0;
|
|
519
|
+
},
|
|
520
|
+
tabOrientation: function tabOrientation(_ref10) {
|
|
521
|
+
var orientation = _ref10.orientation;
|
|
522
|
+
return orientation === 'vertical' ? 'horizontal' : 'vertical';
|
|
523
|
+
},
|
|
524
|
+
tabs: function tabs(_ref11) {
|
|
525
|
+
var children = _ref11.children;
|
|
526
|
+
var tabs = (0, _util.mapAndFilterChildren)(children, function (child) {
|
|
527
|
+
return Object.keys(child.props).filter(function (prop) {
|
|
528
|
+
return prop !== 'children' && prop !== 'id';
|
|
529
|
+
}).reduce(function (obj, key) {
|
|
530
|
+
return _objectSpread(_objectSpread({}, obj), {}, _defineProperty({}, key, child.props[key]));
|
|
531
|
+
}, {});
|
|
532
|
+
});
|
|
533
|
+
return tabs;
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
render: function render(_ref12) {
|
|
537
|
+
var children = _ref12.children,
|
|
538
|
+
collapsed = _ref12.collapsed,
|
|
539
|
+
css = _ref12.css,
|
|
540
|
+
spotlightId = _ref12['data-spotlight-id'],
|
|
541
|
+
primaryIndex = _ref12.primaryIndex,
|
|
542
|
+
dimensions = _ref12.dimensions,
|
|
543
|
+
handleClick = _ref12.handleClick,
|
|
544
|
+
handleEnter = _ref12.handleEnter,
|
|
545
|
+
handleFlick = _ref12.handleFlick,
|
|
546
|
+
handleFocus = _ref12.handleFocus,
|
|
547
|
+
handleTabsTransitionEnd = _ref12.handleTabsTransitionEnd,
|
|
548
|
+
index = _ref12.index,
|
|
549
|
+
onCollapse = _ref12.onCollapse,
|
|
550
|
+
onScrollStop = _ref12.onScrollStop,
|
|
551
|
+
onSelect = _ref12.onSelect,
|
|
552
|
+
orientation = _ref12.orientation,
|
|
553
|
+
scrollable = _ref12.scrollable,
|
|
554
|
+
scrollPosition = _ref12.scrollPosition,
|
|
555
|
+
size = _ref12.size,
|
|
556
|
+
tabOrientation = _ref12.tabOrientation,
|
|
557
|
+
tabs = _ref12.tabs,
|
|
558
|
+
type = _ref12.type,
|
|
559
|
+
rest = _objectWithoutProperties(_ref12, _excluded);
|
|
560
|
+
delete rest.anchorTo;
|
|
561
|
+
delete rest.blockCollapseOnPortrait;
|
|
562
|
+
delete rest.onExpand;
|
|
563
|
+
delete rest.offset;
|
|
564
|
+
delete rest.onTabAnimationEnd;
|
|
565
|
+
delete rest.rtl;
|
|
566
|
+
delete rest.tabSize;
|
|
567
|
+
var contentSize = collapsed ? dimensions.content.expanded : dimensions.content.normal;
|
|
568
|
+
var isVertical = orientation === 'vertical';
|
|
569
|
+
var ContentCell = isVertical ? TouchableCell : _Layout.Cell;
|
|
570
|
+
var contentCellProps = isVertical ? {
|
|
571
|
+
onFlick: handleFlick
|
|
572
|
+
} : null;
|
|
573
|
+
|
|
574
|
+
// Props that are shared between both of the rendered TabGroup components
|
|
575
|
+
var tabGroupProps = {
|
|
576
|
+
css: css,
|
|
577
|
+
primaryIndex: primaryIndex,
|
|
578
|
+
onClick: collapsed ? handleClick : null,
|
|
579
|
+
onFocus: collapsed ? handleFocus : null,
|
|
580
|
+
onFocusTab: onSelect,
|
|
581
|
+
onSelect: onSelect,
|
|
582
|
+
orientation: orientation,
|
|
583
|
+
selectedIndex: index,
|
|
584
|
+
tabs: tabs
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
// In vertical orientation, render two sets of tabs, one just icons, one with icons and text.
|
|
588
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(TabLayoutContext, {
|
|
589
|
+
value: handleEnter,
|
|
590
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Layout, _objectSpread(_objectSpread({}, rest), {}, {
|
|
591
|
+
orientation: tabOrientation,
|
|
592
|
+
"data-spotlight-id": spotlightId,
|
|
593
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
594
|
+
className: css.tabs,
|
|
595
|
+
shrink: true,
|
|
596
|
+
onTransitionEnd: handleTabsTransitionEnd,
|
|
597
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabGroup["default"], _objectSpread(_objectSpread({}, tabGroupProps), {}, {
|
|
598
|
+
collapsed: isVertical,
|
|
599
|
+
scrollPosition: scrollPosition,
|
|
600
|
+
scrollable: scrollable,
|
|
601
|
+
size: size,
|
|
602
|
+
spotlightDisabled: !collapsed && isVertical,
|
|
603
|
+
spotlightId: (0, _RefocusDecorator.getTabsSpotlightId)(spotlightId, isVertical)
|
|
604
|
+
}))
|
|
605
|
+
}), isVertical ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
606
|
+
className: css.tabs + ' ' + css.tabsExpanded,
|
|
607
|
+
size: dimensions.tabs.normal,
|
|
608
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabGroup["default"], _objectSpread(_objectSpread({}, tabGroupProps), {}, {
|
|
609
|
+
onScrollStop: onScrollStop,
|
|
610
|
+
scrollable: scrollable,
|
|
611
|
+
spotlightDisabled: collapsed,
|
|
612
|
+
spotlightId: (0, _RefocusDecorator.getTabsSpotlightId)(spotlightId, false)
|
|
613
|
+
}))
|
|
614
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(ContentCell, _objectSpread(_objectSpread({
|
|
615
|
+
size: isVertical ? contentSize : null,
|
|
616
|
+
className: css.content,
|
|
617
|
+
component: _ViewManager["default"],
|
|
618
|
+
index: index,
|
|
619
|
+
noAnimation: true,
|
|
620
|
+
onFocus: type === 'normal' && !collapsed ? onCollapse : null,
|
|
621
|
+
orientation: orientation
|
|
622
|
+
}, contentCellProps), {}, {
|
|
623
|
+
children: children
|
|
624
|
+
}))]
|
|
625
|
+
}))
|
|
626
|
+
});
|
|
627
|
+
}
|
|
628
|
+
});
|
|
629
|
+
var TabLayoutDecorator = exports.TabLayoutDecorator = (0, _compose["default"])((0, _Toggleable["default"])({
|
|
630
|
+
prop: 'collapsed',
|
|
631
|
+
activate: 'onCollapse',
|
|
632
|
+
deactivate: 'onExpand'
|
|
633
|
+
}), (0, _Changeable.Changeable)({
|
|
634
|
+
prop: 'index',
|
|
635
|
+
change: 'onSelect'
|
|
636
|
+
}), (0, _Changeable.Changeable)({
|
|
637
|
+
prop: 'scrollPosition',
|
|
638
|
+
change: 'onScrollStop'
|
|
639
|
+
}), _RefocusDecorator["default"], (0, _SpotlightContainerDecorator["default"])({
|
|
640
|
+
// using last-focused so we return to the last focused if it exists but fall through to
|
|
641
|
+
// default element if no focus has occurred yet (e.g. on mount)
|
|
642
|
+
enterTo: 'last-focused',
|
|
643
|
+
// favor the content when collapsed and the tabs otherwise
|
|
644
|
+
defaultElement: [".".concat(_TabLayoutModule["default"].horizontal, " .").concat(_TabLayoutModule["default"].tabs, " *"), ".".concat(_TabLayoutModule["default"].collapsed, " .").concat(_TabLayoutModule["default"].content, " *"), ".".concat(_TabLayoutModule["default"].tabsExpanded, " *")]
|
|
645
|
+
}), (0, _I18nDecorator.I18nContextDecorator)({
|
|
646
|
+
rtlProp: 'rtl'
|
|
647
|
+
}));
|
|
648
|
+
|
|
649
|
+
// Currently not documenting the base output since it's not exported
|
|
650
|
+
var TabLayout = exports.TabLayout = TabLayoutDecorator(TabLayoutBase);
|
|
651
|
+
|
|
652
|
+
/**
|
|
653
|
+
* A shortcut to access {@link limestone/TabLayout.Tab}
|
|
654
|
+
*
|
|
655
|
+
* @name Tab
|
|
656
|
+
* @type {limestone/TabLayout.Tab}
|
|
657
|
+
* @static
|
|
658
|
+
* @memberof limestone/TabLayout.TabLayout
|
|
659
|
+
*/
|
|
660
|
+
TabLayout.Tab = _Tab["default"];
|
|
661
|
+
var _default = exports["default"] = TabLayout;
|