@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
package/Panels/Header.js
ADDED
|
@@ -0,0 +1,599 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.HeaderBase = exports.Header = void 0;
|
|
7
|
+
var _handle = require("@enact/core/handle");
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
|
|
9
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
10
|
+
var _util = require("@enact/i18n/util");
|
|
11
|
+
var _SpotlightContainerDecorator = _interopRequireDefault(require("@enact/spotlight/SpotlightContainerDecorator"));
|
|
12
|
+
var _Layout = require("@enact/ui/Layout");
|
|
13
|
+
var _Measurable = require("@enact/ui/Measurable");
|
|
14
|
+
var _resolution = require("@enact/ui/resolution");
|
|
15
|
+
var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
|
|
16
|
+
var _ViewManager = _interopRequireWildcard(require("@enact/ui/ViewManager"));
|
|
17
|
+
var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
18
|
+
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
19
|
+
var _react = require("react");
|
|
20
|
+
var _$L = _interopRequireDefault(require("../internal/$L"));
|
|
21
|
+
var _Button = _interopRequireDefault(require("../Button"));
|
|
22
|
+
var _Heading = _interopRequireDefault(require("../Heading"));
|
|
23
|
+
var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
24
|
+
var _Panels = require("../internal/Panels");
|
|
25
|
+
var _util2 = require("../internal/Panels/util");
|
|
26
|
+
var _HeaderModule = _interopRequireDefault(require("./Header.module.css"));
|
|
27
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
|
+
var _excluded = ["backButtonAriaLabel", "backButtonAvailable", "backButtonBackgroundOpacity", "centered", "children", "closeButtonAriaLabel", "closeButtonBackgroundOpacity", "css", "noBackButton", "noCloseButton", "onBack", "onClose", "shadowed", "slotAbove", "slotAfter", "slotAfterRef", "slotBefore", "slotBeforeRef", "slotSize", "titleCell", "type"];
|
|
29
|
+
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); }
|
|
30
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
31
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
32
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
33
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
34
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
36
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
37
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
38
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
39
|
+
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; }
|
|
40
|
+
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; }
|
|
41
|
+
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; }
|
|
42
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
43
|
+
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); }
|
|
44
|
+
var hasChildren = function hasChildren(children) {
|
|
45
|
+
return _react.Children.toArray(children).filter(Boolean).length > 0;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* A header component for a Panel with a `title` and `subtitle`, supporting several configurable
|
|
50
|
+
* {@link ui/Slottable.Slottable|slots} for components.
|
|
51
|
+
*
|
|
52
|
+
* @class Header
|
|
53
|
+
* @memberof limestone/Panels
|
|
54
|
+
* @ui
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
var HeaderBase = exports.HeaderBase = (0, _kind["default"])({
|
|
58
|
+
name: 'Header',
|
|
59
|
+
propTypes: /** @lends limestone/Panels.Header.prototype */{
|
|
60
|
+
/**
|
|
61
|
+
* The animation arranger used to transition title and subtitle changes.
|
|
62
|
+
*
|
|
63
|
+
* Only supported when `type="wizard"`.
|
|
64
|
+
*
|
|
65
|
+
* @type {ui/ViewManager.Arranger}
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
arranger: _ViewManager.shape,
|
|
69
|
+
/**
|
|
70
|
+
* Sets the hint string read when focusing the back button.
|
|
71
|
+
*
|
|
72
|
+
* @type {String}
|
|
73
|
+
* @default 'go to previous'
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
backButtonAriaLabel: _propTypes2["default"].string,
|
|
77
|
+
/**
|
|
78
|
+
* Informs Header that the back button as allowed to be shown.
|
|
79
|
+
*
|
|
80
|
+
* This does not represent whether it is showing, just whether it can or not.
|
|
81
|
+
*
|
|
82
|
+
* @type {Boolean}
|
|
83
|
+
* @default false
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
backButtonAvailable: _propTypes2["default"].bool,
|
|
87
|
+
/**
|
|
88
|
+
* Background opacity of the application back button.
|
|
89
|
+
*
|
|
90
|
+
* @type {('opaque'|'transparent')}
|
|
91
|
+
* @default 'transparent'
|
|
92
|
+
* @public
|
|
93
|
+
*/
|
|
94
|
+
backButtonBackgroundOpacity: _propTypes2["default"].oneOf(['opaque', 'transparent']),
|
|
95
|
+
/**
|
|
96
|
+
* Centers the contents of the Header.
|
|
97
|
+
*
|
|
98
|
+
* This setting does not affect `slotBefore` or `slotAfter`.
|
|
99
|
+
*
|
|
100
|
+
* @type {Boolean}
|
|
101
|
+
* @default false
|
|
102
|
+
* @public
|
|
103
|
+
*/
|
|
104
|
+
centered: _propTypes2["default"].bool,
|
|
105
|
+
/**
|
|
106
|
+
* Children provided are added to the header-components area.
|
|
107
|
+
*
|
|
108
|
+
* A space for controls which live in the header, apart from the body of the panel view.
|
|
109
|
+
*
|
|
110
|
+
* @type {Element|Element[]}
|
|
111
|
+
*/
|
|
112
|
+
children: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].arrayOf(_propTypes2["default"].element)]),
|
|
113
|
+
/**
|
|
114
|
+
* Hint string read when focusing the application close button.
|
|
115
|
+
*
|
|
116
|
+
* @type {String}
|
|
117
|
+
* @default 'Exit app'
|
|
118
|
+
* @public
|
|
119
|
+
*/
|
|
120
|
+
closeButtonAriaLabel: _propTypes2["default"].string,
|
|
121
|
+
/**
|
|
122
|
+
* Background opacity of the application close button.
|
|
123
|
+
*
|
|
124
|
+
* @type {('opaque'|'transparent')}
|
|
125
|
+
* @default 'transparent'
|
|
126
|
+
* @public
|
|
127
|
+
*/
|
|
128
|
+
closeButtonBackgroundOpacity: _propTypes2["default"].oneOf(['opaque', 'transparent']),
|
|
129
|
+
/**
|
|
130
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
131
|
+
* corresponding internal elements and states of this component.
|
|
132
|
+
*
|
|
133
|
+
* The following classes are supported:
|
|
134
|
+
*
|
|
135
|
+
* * `header` - The root class name
|
|
136
|
+
*
|
|
137
|
+
* @type {Object}
|
|
138
|
+
* @public
|
|
139
|
+
*/
|
|
140
|
+
css: _propTypes2["default"].object,
|
|
141
|
+
/**
|
|
142
|
+
* Determines what triggers the header content to start its animation.
|
|
143
|
+
*
|
|
144
|
+
* @type {('focus'|'hover'|'render')}
|
|
145
|
+
* @default 'render'
|
|
146
|
+
* @public
|
|
147
|
+
*/
|
|
148
|
+
marqueeOn: _propTypes2["default"].oneOf(['focus', 'hover', 'render']),
|
|
149
|
+
/**
|
|
150
|
+
* Omits the back button.
|
|
151
|
+
*
|
|
152
|
+
* @type {Boolean}
|
|
153
|
+
* @default false
|
|
154
|
+
* @public
|
|
155
|
+
*/
|
|
156
|
+
noBackButton: _propTypes2["default"].bool,
|
|
157
|
+
/**
|
|
158
|
+
* Omits the close button.
|
|
159
|
+
*
|
|
160
|
+
* @type {Boolean}
|
|
161
|
+
* @default false
|
|
162
|
+
* @public
|
|
163
|
+
*/
|
|
164
|
+
noCloseButton: _propTypes2["default"].bool,
|
|
165
|
+
/**
|
|
166
|
+
* Omits the subtitle area.
|
|
167
|
+
*
|
|
168
|
+
* @type {Boolean}
|
|
169
|
+
* @default false
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
172
|
+
noSubtitle: _propTypes2["default"].bool,
|
|
173
|
+
/**
|
|
174
|
+
* Called with cancel/back key events.
|
|
175
|
+
*
|
|
176
|
+
* @type {Function}
|
|
177
|
+
* @public
|
|
178
|
+
*/
|
|
179
|
+
onBack: _propTypes2["default"].func,
|
|
180
|
+
/**
|
|
181
|
+
* Called when the app close button is clicked.
|
|
182
|
+
*
|
|
183
|
+
* @type {Function}
|
|
184
|
+
* @public
|
|
185
|
+
*/
|
|
186
|
+
onClose: _propTypes2["default"].func,
|
|
187
|
+
/**
|
|
188
|
+
* Adds shadow to the text contents.
|
|
189
|
+
*
|
|
190
|
+
* @type {Boolean}
|
|
191
|
+
* @public
|
|
192
|
+
*/
|
|
193
|
+
shadowed: _propTypes2["default"].bool,
|
|
194
|
+
/**
|
|
195
|
+
* A location for arbitrary elements to be placed above the title
|
|
196
|
+
*
|
|
197
|
+
* This is a {@link ui/Slottable.Slottable|slot}, so it can be used as a tag-name inside
|
|
198
|
+
* this component.
|
|
199
|
+
*
|
|
200
|
+
* ```
|
|
201
|
+
* <Header>
|
|
202
|
+
* <slotAbove><Button /></slotAbove>
|
|
203
|
+
* <title>My Title</title>
|
|
204
|
+
* </Header>
|
|
205
|
+
* ```
|
|
206
|
+
*
|
|
207
|
+
* @type {Node}
|
|
208
|
+
* @public
|
|
209
|
+
*/
|
|
210
|
+
slotAbove: _propTypes2["default"].node,
|
|
211
|
+
/**
|
|
212
|
+
* A location for arbitrary elements to be placed to the right the title in LTR locales and
|
|
213
|
+
* to the left in RTL locales
|
|
214
|
+
*
|
|
215
|
+
* This is a {@link ui/Slottable.Slottable|slot}, so it can be used as a tag-name inside
|
|
216
|
+
* this component.
|
|
217
|
+
*
|
|
218
|
+
* ```
|
|
219
|
+
* <Header>
|
|
220
|
+
* <title>My Title</title>
|
|
221
|
+
* <slotAfter><Button /></slotAfter>
|
|
222
|
+
* </Header>
|
|
223
|
+
* ```
|
|
224
|
+
*
|
|
225
|
+
* @type {Node}
|
|
226
|
+
* @public
|
|
227
|
+
*/
|
|
228
|
+
slotAfter: _propTypes2["default"].node,
|
|
229
|
+
/**
|
|
230
|
+
* The method which receives the reference node to the slotAfter element, used to determine
|
|
231
|
+
* the `slotSize`.
|
|
232
|
+
*
|
|
233
|
+
* @type {Function|Object}
|
|
234
|
+
* @private
|
|
235
|
+
*/
|
|
236
|
+
slotAfterRef: _propTypes["default"].ref,
|
|
237
|
+
/**
|
|
238
|
+
* A location for arbitrary elements to be placed to the left the title in LTR locales and
|
|
239
|
+
* to the right in RTL locales
|
|
240
|
+
*
|
|
241
|
+
* This is a {@link ui/Slottable.Slottable|slot}, so it can be used as a tag-name inside
|
|
242
|
+
* this component.
|
|
243
|
+
*
|
|
244
|
+
* ```
|
|
245
|
+
* <Header>
|
|
246
|
+
* <slotBefore><Button /></slotBefore>
|
|
247
|
+
* <title>My Title</title>
|
|
248
|
+
* </Header>
|
|
249
|
+
* ```
|
|
250
|
+
*
|
|
251
|
+
* @type {Node}
|
|
252
|
+
* @public
|
|
253
|
+
*/
|
|
254
|
+
slotBefore: _propTypes2["default"].node,
|
|
255
|
+
/**
|
|
256
|
+
* The method which receives the reference node to the slotBefore element, used to determine
|
|
257
|
+
* the `slotSize`.
|
|
258
|
+
*
|
|
259
|
+
* @type {Function|Object}
|
|
260
|
+
* @private
|
|
261
|
+
*/
|
|
262
|
+
slotBeforeRef: _propTypes["default"].ref,
|
|
263
|
+
/**
|
|
264
|
+
* The size for slotBefore and slotAfter.
|
|
265
|
+
* This size is set by HeaderMeasurementDecorator for consistent title centering.
|
|
266
|
+
*
|
|
267
|
+
* @type {String}
|
|
268
|
+
* @private
|
|
269
|
+
*/
|
|
270
|
+
slotSize: _propTypes2["default"].string,
|
|
271
|
+
/**
|
|
272
|
+
* Text displayed below the title.
|
|
273
|
+
*
|
|
274
|
+
* This is a {@link ui/Slottable.Slottable|slot}, so it can be used as a tag-name inside
|
|
275
|
+
* this component.
|
|
276
|
+
* If {@link limestone/Panels.Header.noSubtitle|noSubtitle} is `true`, this prop is ignored.
|
|
277
|
+
*
|
|
278
|
+
* @type {String|String[]}
|
|
279
|
+
*/
|
|
280
|
+
subtitle: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].arrayOf(_propTypes2["default"].string)]),
|
|
281
|
+
/**
|
|
282
|
+
* Subtitle id of the header.
|
|
283
|
+
*
|
|
284
|
+
* @type {String}
|
|
285
|
+
* @private
|
|
286
|
+
*/
|
|
287
|
+
subtitleId: _propTypes2["default"].string,
|
|
288
|
+
/**
|
|
289
|
+
* Title of the header.
|
|
290
|
+
*
|
|
291
|
+
* This is a {@link ui/Slottable.Slottable|slot}, so it can be used as a tag-name inside
|
|
292
|
+
* this component.
|
|
293
|
+
*
|
|
294
|
+
* Example:
|
|
295
|
+
* ```
|
|
296
|
+
* <Header>
|
|
297
|
+
* <title>Example Header Title</title>
|
|
298
|
+
* <subtitle>The Adventure Continues</subtitle>
|
|
299
|
+
* </Header>
|
|
300
|
+
* ```
|
|
301
|
+
*
|
|
302
|
+
* @type {String|String[]}
|
|
303
|
+
*/
|
|
304
|
+
title: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].arrayOf(_propTypes2["default"].string)]),
|
|
305
|
+
/**
|
|
306
|
+
* Title id of the header.
|
|
307
|
+
*
|
|
308
|
+
* @type {String}
|
|
309
|
+
* @private
|
|
310
|
+
*/
|
|
311
|
+
titleId: _propTypes2["default"].string,
|
|
312
|
+
/**
|
|
313
|
+
* Set the type of header to be used.
|
|
314
|
+
*
|
|
315
|
+
* @type {('compact'|'mini'|'standard'|'wizard')}
|
|
316
|
+
* @default 'standard'
|
|
317
|
+
*/
|
|
318
|
+
type: _propTypes2["default"].oneOf(['compact', 'mini', 'standard', 'wizard'])
|
|
319
|
+
},
|
|
320
|
+
defaultProps: {
|
|
321
|
+
backButtonBackgroundOpacity: 'transparent',
|
|
322
|
+
closeButtonBackgroundOpacity: 'transparent',
|
|
323
|
+
marqueeOn: 'render',
|
|
324
|
+
noSubtitle: false,
|
|
325
|
+
type: 'standard'
|
|
326
|
+
},
|
|
327
|
+
styles: {
|
|
328
|
+
css: _HeaderModule["default"],
|
|
329
|
+
className: 'header',
|
|
330
|
+
publicClassNames: ['header']
|
|
331
|
+
},
|
|
332
|
+
computed: {
|
|
333
|
+
className: function className(_ref) {
|
|
334
|
+
var backButtonAvailable = _ref.backButtonAvailable,
|
|
335
|
+
centered = _ref.centered,
|
|
336
|
+
children = _ref.children,
|
|
337
|
+
noBackButton = _ref.noBackButton,
|
|
338
|
+
noCloseButton = _ref.noCloseButton,
|
|
339
|
+
noSubtitle = _ref.noSubtitle,
|
|
340
|
+
type = _ref.type,
|
|
341
|
+
shadowed = _ref.shadowed,
|
|
342
|
+
slotAfter = _ref.slotAfter,
|
|
343
|
+
slotBefore = _ref.slotBefore,
|
|
344
|
+
styler = _ref.styler,
|
|
345
|
+
subtitle = _ref.subtitle;
|
|
346
|
+
return styler.append({
|
|
347
|
+
centered: centered,
|
|
348
|
+
noSubtitle: noSubtitle,
|
|
349
|
+
shadowed: shadowed,
|
|
350
|
+
slotAfter: slotAfter || !noCloseButton,
|
|
351
|
+
slotBefore: slotBefore || backButtonAvailable && !noBackButton,
|
|
352
|
+
// This likely doesn't need to be as verbose as it is, with the first 2 conditionals
|
|
353
|
+
withChildren: hasChildren(children),
|
|
354
|
+
withSubtitle: subtitle
|
|
355
|
+
}, type);
|
|
356
|
+
},
|
|
357
|
+
titleCell: function titleCell(_ref2) {
|
|
358
|
+
var arranger = _ref2.arranger,
|
|
359
|
+
centered = _ref2.centered,
|
|
360
|
+
css = _ref2.css,
|
|
361
|
+
marqueeOn = _ref2.marqueeOn,
|
|
362
|
+
noSubtitle = _ref2.noSubtitle,
|
|
363
|
+
slotSize = _ref2.slotSize,
|
|
364
|
+
subtitle = _ref2.subtitle,
|
|
365
|
+
subtitleId = _ref2.subtitleId,
|
|
366
|
+
title = _ref2.title,
|
|
367
|
+
titleId = _ref2.titleId,
|
|
368
|
+
type = _ref2.type;
|
|
369
|
+
var direction = (0, _util.isRtlText)(title) || (0, _util.isRtlText)(subtitle) ? 'rtl' : 'ltr';
|
|
370
|
+
var titleHeading = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], _objectSpread(_objectSpread({}, centered ? {
|
|
371
|
+
slotSize: slotSize
|
|
372
|
+
} : {}), {}, {
|
|
373
|
+
id: titleId,
|
|
374
|
+
size: "title",
|
|
375
|
+
spacing: "auto",
|
|
376
|
+
marqueeOn: marqueeOn,
|
|
377
|
+
forceDirection: direction,
|
|
378
|
+
alignment: centered ? 'center' : null,
|
|
379
|
+
className: css.title,
|
|
380
|
+
children: title
|
|
381
|
+
}));
|
|
382
|
+
var subtitleHeading = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], _objectSpread(_objectSpread({}, centered ? {
|
|
383
|
+
slotSize: slotSize
|
|
384
|
+
} : {}), {}, {
|
|
385
|
+
id: subtitleId,
|
|
386
|
+
size: "subtitle",
|
|
387
|
+
spacing: "auto",
|
|
388
|
+
marqueeOn: marqueeOn,
|
|
389
|
+
forceDirection: direction,
|
|
390
|
+
alignment: centered ? 'center' : null,
|
|
391
|
+
className: css.subtitle,
|
|
392
|
+
children: subtitle
|
|
393
|
+
}));
|
|
394
|
+
|
|
395
|
+
// WizardPanels uses an animated title but that isn't supported for other types
|
|
396
|
+
if (arranger && type === 'wizard') {
|
|
397
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
398
|
+
className: css.titleCell,
|
|
399
|
+
component: _ViewManager["default"],
|
|
400
|
+
arranger: arranger,
|
|
401
|
+
duration: 500,
|
|
402
|
+
index: 0,
|
|
403
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
404
|
+
className: css.titleContainer,
|
|
405
|
+
children: [titleHeading, noSubtitle ? null : subtitleHeading]
|
|
406
|
+
}, title + subtitle)
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Cell, {
|
|
410
|
+
className: css.titleCell,
|
|
411
|
+
children: [titleHeading, noSubtitle ? null : subtitleHeading]
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
handlers: {
|
|
416
|
+
onBack: (0, _handle.forwardCustom)('onBack'),
|
|
417
|
+
onClose: (0, _handle.forwardCustom)('onClose')
|
|
418
|
+
},
|
|
419
|
+
render: function render(_ref3) {
|
|
420
|
+
var _slotBefore$props, _slotAfter$props;
|
|
421
|
+
var backButtonAriaLabel = _ref3.backButtonAriaLabel,
|
|
422
|
+
backButtonAvailable = _ref3.backButtonAvailable,
|
|
423
|
+
backButtonBackgroundOpacity = _ref3.backButtonBackgroundOpacity,
|
|
424
|
+
centered = _ref3.centered,
|
|
425
|
+
children = _ref3.children,
|
|
426
|
+
closeButtonAriaLabel = _ref3.closeButtonAriaLabel,
|
|
427
|
+
closeButtonBackgroundOpacity = _ref3.closeButtonBackgroundOpacity,
|
|
428
|
+
css = _ref3.css,
|
|
429
|
+
noBackButton = _ref3.noBackButton,
|
|
430
|
+
noCloseButton = _ref3.noCloseButton,
|
|
431
|
+
onBack = _ref3.onBack,
|
|
432
|
+
onClose = _ref3.onClose,
|
|
433
|
+
shadowed = _ref3.shadowed,
|
|
434
|
+
slotAbove = _ref3.slotAbove,
|
|
435
|
+
slotAfter = _ref3.slotAfter,
|
|
436
|
+
slotAfterRef = _ref3.slotAfterRef,
|
|
437
|
+
slotBefore = _ref3.slotBefore,
|
|
438
|
+
slotBeforeRef = _ref3.slotBeforeRef,
|
|
439
|
+
slotSize = _ref3.slotSize,
|
|
440
|
+
titleCell = _ref3.titleCell,
|
|
441
|
+
type = _ref3.type,
|
|
442
|
+
rest = _objectWithoutProperties(_ref3, _excluded);
|
|
443
|
+
delete rest.arranger;
|
|
444
|
+
delete rest.marqueeOn;
|
|
445
|
+
delete rest.noSubtitle;
|
|
446
|
+
delete rest.subtitle;
|
|
447
|
+
delete rest.subtitleId;
|
|
448
|
+
delete rest.title;
|
|
449
|
+
delete rest.titleId;
|
|
450
|
+
|
|
451
|
+
// Set up the back button
|
|
452
|
+
var backButton = backButtonAvailable && !noBackButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
453
|
+
"aria-label": backButtonAriaLabel == null ? (0, _$L["default"])('go to previous') : backButtonAriaLabel,
|
|
454
|
+
backgroundOpacity: backButtonBackgroundOpacity,
|
|
455
|
+
className: css.back,
|
|
456
|
+
icon: "arrowhookleft",
|
|
457
|
+
iconFlip: "auto",
|
|
458
|
+
onClick: onBack,
|
|
459
|
+
shadowed: shadowed
|
|
460
|
+
}) : null;
|
|
461
|
+
|
|
462
|
+
// Set up the close button
|
|
463
|
+
var closeButton = !noCloseButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
464
|
+
"aria-label": closeButtonAriaLabel == null ? (0, _$L["default"])('Exit app') : closeButtonAriaLabel,
|
|
465
|
+
backgroundOpacity: closeButtonBackgroundOpacity,
|
|
466
|
+
className: css.close,
|
|
467
|
+
icon: "closex",
|
|
468
|
+
onClick: onClose,
|
|
469
|
+
shadowed: shadowed
|
|
470
|
+
}) : null;
|
|
471
|
+
|
|
472
|
+
// Only provide the synced cell size if the title should be centered, beyond that case,
|
|
473
|
+
// the cell sizes don't need to be synced.
|
|
474
|
+
var syncCellSize = centered ? slotSize : null;
|
|
475
|
+
|
|
476
|
+
// Hide slots for the first render to avoid unexpected positioning when 'centered' is given.
|
|
477
|
+
// After the first render, HeaderMeasurementDecorator measures widths of slots and set right 'slotSize'.
|
|
478
|
+
var hideSlots = {
|
|
479
|
+
opacity: centered && slotSize === '0rem' ? '0' : null
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
// The side Cells are always present, even if empty, to support the measurement ref.
|
|
483
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("header", _objectSpread(_objectSpread({}, rest), {}, {
|
|
484
|
+
children: [slotAbove ? /*#__PURE__*/(0, _jsxRuntime.jsx)("nav", {
|
|
485
|
+
className: css.slotAbove,
|
|
486
|
+
children: slotAbove
|
|
487
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Row, {
|
|
488
|
+
className: css.titlesRow,
|
|
489
|
+
align: "center",
|
|
490
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
491
|
+
className: css.slotBefore,
|
|
492
|
+
shrink: !syncCellSize,
|
|
493
|
+
size: syncCellSize,
|
|
494
|
+
style: hideSlots,
|
|
495
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
496
|
+
ref: slotBeforeRef,
|
|
497
|
+
className: css.slotSizer,
|
|
498
|
+
children: [backButton, slotBefore]
|
|
499
|
+
})
|
|
500
|
+
}), type === 'wizard' && (slotBefore !== null && slotBefore !== void 0 && (_slotBefore$props = slotBefore.props) !== null && _slotBefore$props !== void 0 && _slotBefore$props.visible || slotAfter !== null && slotAfter !== void 0 && (_slotAfter$props = slotAfter.props) !== null && _slotAfter$props !== void 0 && _slotAfter$props.visible) && slotSize === '0rem' ? null : titleCell, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
|
|
501
|
+
className: css.slotAfter,
|
|
502
|
+
shrink: !syncCellSize,
|
|
503
|
+
size: syncCellSize,
|
|
504
|
+
style: hideSlots,
|
|
505
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
506
|
+
ref: slotAfterRef,
|
|
507
|
+
className: css.slotSizer,
|
|
508
|
+
children: [slotAfter, closeButton]
|
|
509
|
+
})
|
|
510
|
+
})]
|
|
511
|
+
}), hasChildren(children) ? /*#__PURE__*/(0, _jsxRuntime.jsx)("nav", {
|
|
512
|
+
className: css.slotBelow,
|
|
513
|
+
children: children
|
|
514
|
+
}) : null]
|
|
515
|
+
}));
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
|
|
519
|
+
// Customized ContextAsDefaults HOC to incorporate the backButtonAvailable prop feature
|
|
520
|
+
var ContextAsDefaultsHeader = function ContextAsDefaultsHeader(Wrapped) {
|
|
521
|
+
// eslint-disable-next-line no-shadow
|
|
522
|
+
function ContextAsDefaultsHeader(props) {
|
|
523
|
+
var _useContextAsDefaults = (0, _util2.useContextAsDefaults)(props),
|
|
524
|
+
contextProps = _useContextAsDefaults.contextProps,
|
|
525
|
+
provideContextAsDefaults = _useContextAsDefaults.provideContextAsDefaults;
|
|
526
|
+
var _use = (0, _react.use)(_Panels.PanelsStateContext),
|
|
527
|
+
panelsType = _use.type;
|
|
528
|
+
var index = props['data-index'];
|
|
529
|
+
var backButtonAvailable = index > 0 && panelsType !== 'wizard' || panelsType === 'flexiblePopup';
|
|
530
|
+
return provideContextAsDefaults(/*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread(_objectSpread({}, contextProps), props), {}, {
|
|
531
|
+
backButtonAvailable: backButtonAvailable
|
|
532
|
+
})));
|
|
533
|
+
}
|
|
534
|
+
ContextAsDefaultsHeader.propTypes = {
|
|
535
|
+
/**
|
|
536
|
+
* Used internally to render back button.
|
|
537
|
+
*
|
|
538
|
+
* @type {Number}
|
|
539
|
+
* @private
|
|
540
|
+
*/
|
|
541
|
+
'data-index': _propTypes2["default"].number
|
|
542
|
+
};
|
|
543
|
+
return ContextAsDefaultsHeader;
|
|
544
|
+
};
|
|
545
|
+
var HeaderMeasurementDecorator = function HeaderMeasurementDecorator(Wrapped) {
|
|
546
|
+
return function HeaderMeasurementDecorator(props) {
|
|
547
|
+
// eslint-disable-line no-shadow
|
|
548
|
+
var _ref4 = (0, _Measurable.useMeasurable)() || {},
|
|
549
|
+
slotBeforeRef = _ref4.ref,
|
|
550
|
+
_ref4$measurement = _ref4.measurement,
|
|
551
|
+
_ref4$measurement2 = _ref4$measurement === void 0 ? {} : _ref4$measurement,
|
|
552
|
+
_ref4$measurement2$wi = _ref4$measurement2.width,
|
|
553
|
+
slotBeforeWidth = _ref4$measurement2$wi === void 0 ? 0 : _ref4$measurement2$wi;
|
|
554
|
+
var _ref5 = (0, _Measurable.useMeasurable)() || {},
|
|
555
|
+
slotAfterRef = _ref5.ref,
|
|
556
|
+
_ref5$measurement = _ref5.measurement,
|
|
557
|
+
_ref5$measurement2 = _ref5$measurement === void 0 ? {} : _ref5$measurement,
|
|
558
|
+
_ref5$measurement2$wi = _ref5$measurement2.width,
|
|
559
|
+
slotAfterWidth = _ref5$measurement2$wi === void 0 ? 0 : _ref5$measurement2$wi;
|
|
560
|
+
var _useState = (0, _react.useState)({}),
|
|
561
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
562
|
+
_useState2$ = _useState2[0],
|
|
563
|
+
slotSize = _useState2$.slotSize,
|
|
564
|
+
prevSlotBeforeWidth = _useState2$.prevSlotBeforeWidth,
|
|
565
|
+
prevSlotAfterWidth = _useState2$.prevSlotAfterWidth,
|
|
566
|
+
setSlotSize = _useState2[1];
|
|
567
|
+
|
|
568
|
+
// If the slot width has changed, re-run this.
|
|
569
|
+
if (slotBeforeWidth !== prevSlotBeforeWidth || slotAfterWidth !== prevSlotAfterWidth) {
|
|
570
|
+
var largestSlotSize = Math.max(slotBeforeWidth, slotAfterWidth);
|
|
571
|
+
|
|
572
|
+
// And only do this the largest slot is a different value this time around.
|
|
573
|
+
if (slotSize !== largestSlotSize) {
|
|
574
|
+
setSlotSize({
|
|
575
|
+
slotSize: largestSlotSize,
|
|
576
|
+
prevSlotBeforeWidth: slotBeforeWidth,
|
|
577
|
+
prevSlotAfterWidth: slotAfterWidth
|
|
578
|
+
});
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
var measurableProps = {
|
|
582
|
+
slotBeforeRef: slotBeforeRef,
|
|
583
|
+
slotAfterRef: slotAfterRef,
|
|
584
|
+
slotSize: (0, _resolution.unit)(slotSize, 'rem')
|
|
585
|
+
};
|
|
586
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread({}, props), measurableProps));
|
|
587
|
+
};
|
|
588
|
+
};
|
|
589
|
+
var HeaderDecorator = (0, _compose["default"])(_SpotlightContainerDecorator["default"], (0, _Slottable["default"])({
|
|
590
|
+
slots: ['title', 'subtitle', 'slotAbove', 'slotAfter', 'slotBefore']
|
|
591
|
+
}), ContextAsDefaultsHeader, HeaderMeasurementDecorator, _Skinnable["default"]);
|
|
592
|
+
|
|
593
|
+
// Note that we only export this (even as HeaderBase). HeaderBase is not useful on its own.
|
|
594
|
+
var Header = exports.Header = HeaderDecorator(HeaderBase);
|
|
595
|
+
|
|
596
|
+
// Set up Header so when it's used in a slottable layout (like Panel), it is automatically
|
|
597
|
+
// recognized as this specific slot.
|
|
598
|
+
Header.defaultSlot = 'header';
|
|
599
|
+
var _default = exports["default"] = Header;
|