@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,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("@testing-library/jest-dom");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
5
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
6
|
+
var _Checkbox = _interopRequireWildcard(require("../Checkbox"));
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
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); }
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
11
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
12
|
+
describe('CheckboxItem Specs', function () {
|
|
13
|
+
test('should not include the selected class when not selected', function () {
|
|
14
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxBase, {}));
|
|
15
|
+
var checkboxElement = _react.screen.getByRole('checkbox');
|
|
16
|
+
expect(checkboxElement).not.toHaveClass('selected');
|
|
17
|
+
});
|
|
18
|
+
test('should not be checked', function () {
|
|
19
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxBase, {}));
|
|
20
|
+
var actual = _react.screen.getByRole('checkbox');
|
|
21
|
+
expect(actual).toHaveAttribute('aria-checked', 'false');
|
|
22
|
+
});
|
|
23
|
+
test('should add the selected class when given the selected prop', function () {
|
|
24
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxBase, {
|
|
25
|
+
selected: true
|
|
26
|
+
}));
|
|
27
|
+
var checkboxElement = _react.screen.getByRole('checkbox');
|
|
28
|
+
var expected = 'selected';
|
|
29
|
+
expect(checkboxElement).toHaveClass(expected);
|
|
30
|
+
});
|
|
31
|
+
test('should be checked when initiated with `selected` prop', function () {
|
|
32
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxBase, {
|
|
33
|
+
selected: true
|
|
34
|
+
}));
|
|
35
|
+
var actual = _react.screen.getByRole('checkbox');
|
|
36
|
+
expect(actual).toHaveAttribute('aria-checked', 'true');
|
|
37
|
+
});
|
|
38
|
+
test('should add the indeterminate class when given the indeterminate prop', function () {
|
|
39
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxBase, {
|
|
40
|
+
indeterminate: true
|
|
41
|
+
}));
|
|
42
|
+
var actual = _react.screen.getByRole('checkbox');
|
|
43
|
+
var expected = 'indeterminate';
|
|
44
|
+
expect(actual).toHaveClass(expected);
|
|
45
|
+
});
|
|
46
|
+
test('should not include the indeterminate class when not indeterminate', function () {
|
|
47
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxBase, {}));
|
|
48
|
+
var actual = _react.screen.getByRole('checkbox');
|
|
49
|
+
var expected = 'indeterminate';
|
|
50
|
+
expect(actual).not.toHaveClass(expected);
|
|
51
|
+
});
|
|
52
|
+
test('should prioritize indeterminate over selected', function () {
|
|
53
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.CheckboxBase, {
|
|
54
|
+
indeterminate: true,
|
|
55
|
+
selected: true,
|
|
56
|
+
indeterminateIcon: "Ind"
|
|
57
|
+
}));
|
|
58
|
+
var actual = _react.screen.getByRole('checkbox').textContent;
|
|
59
|
+
var expected = 'Ind';
|
|
60
|
+
expect(actual).toBe(expected);
|
|
61
|
+
});
|
|
62
|
+
test('should check the checkbox with one click', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
63
|
+
var user = _userEvent["default"].setup();
|
|
64
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox["default"], {}));
|
|
65
|
+
var actual = _react.screen.getByRole('checkbox');
|
|
66
|
+
var expected = 'selected';
|
|
67
|
+
yield user.click(actual);
|
|
68
|
+
expect(actual).toHaveClass(expected);
|
|
69
|
+
}));
|
|
70
|
+
test('should uncheck the checkbox with two clicks', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
71
|
+
var user = _userEvent["default"].setup();
|
|
72
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox["default"], {}));
|
|
73
|
+
var actual = _react.screen.getByRole('checkbox');
|
|
74
|
+
var expected = 'selected';
|
|
75
|
+
yield user.click(actual);
|
|
76
|
+
yield user.click(actual);
|
|
77
|
+
expect(actual).not.toHaveClass(expected);
|
|
78
|
+
}));
|
|
79
|
+
});
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Type definitions for limestone/CheckboxItem
|
|
2
|
+
|
|
3
|
+
import { ToggleableProps as ui_Toggleable_ToggleableProps } from "@enact/ui/Toggleable";
|
|
4
|
+
import { ItemProps as limestone_Item_ItemProps } from "limestone/Item";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
|
|
7
|
+
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
8
|
+
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
9
|
+
|
|
10
|
+
export interface CheckboxItemBaseProps
|
|
11
|
+
extends Omit<limestone_Item_ItemProps, "iconComponent"> {
|
|
12
|
+
/**
|
|
13
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
14
|
+
corresponding internal elements and states of this component.
|
|
15
|
+
*
|
|
16
|
+
* The following classes are supported:
|
|
17
|
+
* * `checkboxItem` - The root class name
|
|
18
|
+
*/
|
|
19
|
+
css?: object;
|
|
20
|
+
/**
|
|
21
|
+
* The icon content.
|
|
22
|
+
*
|
|
23
|
+
* May be specified as either:
|
|
24
|
+
* * A string that represents an icon from the ,
|
|
25
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
26
|
+
* * A URL specifying path to an icon image, or
|
|
27
|
+
* * An object representing a resolution independent resource (See )
|
|
28
|
+
*/
|
|
29
|
+
icon?: string | object;
|
|
30
|
+
/**
|
|
31
|
+
* Enables the "indeterminate" state.
|
|
32
|
+
*
|
|
33
|
+
* An indeterminate, mixed, or half-selected state is typically used in a hierarchy or group
|
|
34
|
+
to represent that some, not all, children are selected.
|
|
35
|
+
*
|
|
36
|
+
* NOTE: This does not prevent updating the `selected` state. Applications must control this
|
|
37
|
+
property directly.
|
|
38
|
+
*/
|
|
39
|
+
indeterminate?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The icon to be used in the `indeterminate` state.
|
|
42
|
+
*
|
|
43
|
+
* May be specified as either:
|
|
44
|
+
* * A string that represents an icon from the ,
|
|
45
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
46
|
+
* * A URL specifying path to an icon image, or
|
|
47
|
+
* * An object representing a resolution independent resource (See )
|
|
48
|
+
*/
|
|
49
|
+
indeterminateIcon?: string;
|
|
50
|
+
/**
|
|
51
|
+
* If true the checkbox will be selected.
|
|
52
|
+
*/
|
|
53
|
+
selected?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Nodes to be inserted after the checkbox and before `children` .
|
|
56
|
+
*/
|
|
57
|
+
slotBefore?: React.ReactNode;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A Limestone-styled item with a checkbox component.
|
|
61
|
+
*
|
|
62
|
+
* `CheckboxItem` may be used to allow the user to select a single option or used as part of a
|
|
63
|
+
when multiple are possible.
|
|
64
|
+
*
|
|
65
|
+
* Usage:
|
|
66
|
+
* ```
|
|
67
|
+
<CheckboxItem
|
|
68
|
+
defaultSelected={selected}
|
|
69
|
+
onToggle={handleToggle}
|
|
70
|
+
>
|
|
71
|
+
Item with a Checkbox
|
|
72
|
+
</CheckboxItem>
|
|
73
|
+
```
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
export class CheckboxItemBase extends React.Component<
|
|
77
|
+
Merge<React.HTMLProps<HTMLElement>, CheckboxItemBaseProps>
|
|
78
|
+
> {}
|
|
79
|
+
|
|
80
|
+
export interface CheckboxItemDecoratorProps
|
|
81
|
+
extends ui_Toggleable_ToggleableProps {}
|
|
82
|
+
export function CheckboxItemDecorator<P>(
|
|
83
|
+
Component: React.ComponentType<P> | string,
|
|
84
|
+
): React.ComponentType<P & CheckboxItemDecoratorProps>;
|
|
85
|
+
|
|
86
|
+
export interface CheckboxItemProps
|
|
87
|
+
extends Merge<CheckboxItemBaseProps, CheckboxItemDecoratorProps> {}
|
|
88
|
+
/**
|
|
89
|
+
* A Limestone-styled item with a checkbox component.
|
|
90
|
+
*
|
|
91
|
+
* `CheckboxItem` will manage its `selected` state via unless set
|
|
92
|
+
directly.
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
export class CheckboxItem extends React.Component<
|
|
96
|
+
Merge<React.HTMLProps<HTMLElement>, CheckboxItemProps>
|
|
97
|
+
> {}
|
|
98
|
+
|
|
99
|
+
export default CheckboxItem;
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.CheckboxItemDecorator = exports.CheckboxItemBase = exports.CheckboxItem = void 0;
|
|
7
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _compose = _interopRequireDefault(require("ramda/src/compose"));
|
|
10
|
+
var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
|
|
11
|
+
var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
|
|
12
|
+
var _Toggleable = _interopRequireDefault(require("@enact/ui/Toggleable"));
|
|
13
|
+
var _Checkbox = require("../Checkbox");
|
|
14
|
+
var _Item = require("../Item");
|
|
15
|
+
var _Skinnable = _interopRequireDefault(require("../Skinnable"));
|
|
16
|
+
var _CheckboxItemModule = _interopRequireDefault(require("./CheckboxItem.module.css"));
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
var _excluded = ["children", "css", "icon", "indeterminate", "indeterminateIcon", "selected", "slotBefore"];
|
|
19
|
+
/**
|
|
20
|
+
* Limestone styled item components with a toggleable checkbox.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* <CheckboxItem onToggle={console.log}>
|
|
24
|
+
* Item with a Checkbox
|
|
25
|
+
* </CheckboxItem>
|
|
26
|
+
*
|
|
27
|
+
* @module limestone/CheckboxItem
|
|
28
|
+
* @exports CheckboxItem
|
|
29
|
+
* @exports CheckboxItemBase
|
|
30
|
+
* @exports CheckboxItemDecorator
|
|
31
|
+
*/
|
|
32
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
33
|
+
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; }
|
|
34
|
+
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; }
|
|
35
|
+
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; }
|
|
36
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
37
|
+
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); }
|
|
38
|
+
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; }
|
|
39
|
+
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; }
|
|
40
|
+
var Item = (0, _Item.ItemDecorator)(_Item.ItemBase);
|
|
41
|
+
var Checkbox = (0, _Skinnable["default"])(_Checkbox.CheckboxBase);
|
|
42
|
+
Checkbox.displayName = 'Checkbox';
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* A Limestone-styled item with a checkbox component.
|
|
46
|
+
*
|
|
47
|
+
* `CheckboxItem` may be used to allow the user to select a single option or used as part of a
|
|
48
|
+
* {@link ui/Group|Group} when multiple {@link ui/Group.Group.select|selections} are possible.
|
|
49
|
+
*
|
|
50
|
+
* Usage:
|
|
51
|
+
* ```
|
|
52
|
+
* <CheckboxItem
|
|
53
|
+
* defaultSelected={selected}
|
|
54
|
+
* onToggle={handleToggle}
|
|
55
|
+
* >
|
|
56
|
+
* Item with a Checkbox
|
|
57
|
+
* </CheckboxItem>
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @class CheckboxItemBase
|
|
61
|
+
* @memberof limestone/CheckboxItem
|
|
62
|
+
* @extends limestone/Item.Item
|
|
63
|
+
* @omit iconComponent
|
|
64
|
+
* @ui
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
var CheckboxItemBase = exports.CheckboxItemBase = (0, _kind["default"])({
|
|
68
|
+
name: 'CheckboxItem',
|
|
69
|
+
propTypes: /** @lends limestone/CheckboxItem.CheckboxItemBase.prototype */{
|
|
70
|
+
/**
|
|
71
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
72
|
+
* corresponding internal elements and states of this component.
|
|
73
|
+
*
|
|
74
|
+
* The following classes are supported:
|
|
75
|
+
*
|
|
76
|
+
* * `checkboxItem` - The root class name
|
|
77
|
+
*
|
|
78
|
+
* @type {Object}
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
81
|
+
css: _propTypes["default"].object,
|
|
82
|
+
/**
|
|
83
|
+
* The icon content.
|
|
84
|
+
*
|
|
85
|
+
* May be specified as either:
|
|
86
|
+
*
|
|
87
|
+
* * A string that represents an icon from the {@link limestone/Icon.iconList|iconList},
|
|
88
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
89
|
+
* * A URL specifying path to an icon image, or
|
|
90
|
+
* * An object representing a resolution independent resource (See {@link ui/resolution})
|
|
91
|
+
*
|
|
92
|
+
* @type {String|Object}
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
96
|
+
/**
|
|
97
|
+
* Enables the "indeterminate" state.
|
|
98
|
+
*
|
|
99
|
+
* An indeterminate, mixed, or half-selected state is typically used in a hierarchy or group
|
|
100
|
+
* to represent that some, not all, children are selected.
|
|
101
|
+
*
|
|
102
|
+
* NOTE: This does not prevent updating the `selected` state. Applications must control this
|
|
103
|
+
* property directly.
|
|
104
|
+
*
|
|
105
|
+
* @type {Boolean}
|
|
106
|
+
* @public
|
|
107
|
+
*/
|
|
108
|
+
indeterminate: _propTypes["default"].bool,
|
|
109
|
+
/**
|
|
110
|
+
* The icon to be used in the `indeterminate` state.
|
|
111
|
+
*
|
|
112
|
+
* May be specified as either:
|
|
113
|
+
*
|
|
114
|
+
* * A string that represents an icon from the {@link limestone/Icon.iconList|iconList},
|
|
115
|
+
* * An HTML entity string, Unicode reference or hex value (in the form '0x...'),
|
|
116
|
+
* * A URL specifying path to an icon image, or
|
|
117
|
+
* * An object representing a resolution independent resource (See {@link ui/resolution})
|
|
118
|
+
*
|
|
119
|
+
* @type {String}
|
|
120
|
+
* @public
|
|
121
|
+
*/
|
|
122
|
+
indeterminateIcon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
123
|
+
/**
|
|
124
|
+
* If true the checkbox will be selected.
|
|
125
|
+
*
|
|
126
|
+
* @type {Boolean}
|
|
127
|
+
* @public
|
|
128
|
+
*/
|
|
129
|
+
selected: _propTypes["default"].bool,
|
|
130
|
+
/**
|
|
131
|
+
* Nodes to be inserted after the checkbox and before `children`.
|
|
132
|
+
*
|
|
133
|
+
* @type {Node}
|
|
134
|
+
* @public
|
|
135
|
+
*/
|
|
136
|
+
slotBefore: _propTypes["default"].node
|
|
137
|
+
},
|
|
138
|
+
styles: {
|
|
139
|
+
css: _CheckboxItemModule["default"],
|
|
140
|
+
className: 'checkboxItem',
|
|
141
|
+
publicClassNames: ['checkboxItem', 'bg', 'selected']
|
|
142
|
+
},
|
|
143
|
+
computed: {
|
|
144
|
+
className: function className(_ref) {
|
|
145
|
+
var label = _ref.label,
|
|
146
|
+
styler = _ref.styler;
|
|
147
|
+
return styler.append({
|
|
148
|
+
hasLabel: label != null
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
render: function render(_ref2) {
|
|
153
|
+
var children = _ref2.children,
|
|
154
|
+
css = _ref2.css,
|
|
155
|
+
icon = _ref2.icon,
|
|
156
|
+
indeterminate = _ref2.indeterminate,
|
|
157
|
+
indeterminateIcon = _ref2.indeterminateIcon,
|
|
158
|
+
selected = _ref2.selected,
|
|
159
|
+
slotBefore = _ref2.slotBefore,
|
|
160
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
161
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Item, _objectSpread(_objectSpread({
|
|
162
|
+
"data-webos-voice-intent": "SelectCheckItem",
|
|
163
|
+
role: "checkbox"
|
|
164
|
+
}, rest), {}, {
|
|
165
|
+
"aria-checked": selected,
|
|
166
|
+
css: css,
|
|
167
|
+
selected: selected,
|
|
168
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("slotBefore", {
|
|
169
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Checkbox, {
|
|
170
|
+
className: slotBefore ? css.checkbox : null,
|
|
171
|
+
selected: selected,
|
|
172
|
+
indeterminate: indeterminate,
|
|
173
|
+
indeterminateIcon: indeterminateIcon,
|
|
174
|
+
children: icon
|
|
175
|
+
}), slotBefore]
|
|
176
|
+
}), children]
|
|
177
|
+
}));
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Adds interactive functionality to `CheckboxItem`.
|
|
183
|
+
*
|
|
184
|
+
* @class CheckboxItemDecorator
|
|
185
|
+
* @memberof limestone/CheckboxItem
|
|
186
|
+
* @mixes ui/Toggleable.Toggleable
|
|
187
|
+
* @hoc
|
|
188
|
+
* @public
|
|
189
|
+
*/
|
|
190
|
+
var CheckboxItemDecorator = exports.CheckboxItemDecorator = (0, _compose["default"])((0, _Toggleable["default"])({
|
|
191
|
+
toggleProp: 'onClick'
|
|
192
|
+
}), (0, _Slottable["default"])({
|
|
193
|
+
slots: ['label', 'slotAfter', 'slotBefore']
|
|
194
|
+
}));
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* A Limestone-styled item with a checkbox component.
|
|
198
|
+
*
|
|
199
|
+
* `CheckboxItem` will manage its `selected` state via {@link ui/Toggleable|Toggleable} unless set
|
|
200
|
+
* directly.
|
|
201
|
+
*
|
|
202
|
+
* @class CheckboxItem
|
|
203
|
+
* @memberof limestone/CheckboxItem
|
|
204
|
+
* @extends limestone/CheckboxItem.CheckboxItemBase
|
|
205
|
+
* @mixes limestone/CheckboxItem.CheckboxItemDecorator
|
|
206
|
+
* @ui
|
|
207
|
+
* @public
|
|
208
|
+
*/
|
|
209
|
+
var CheckboxItem = exports.CheckboxItem = (0, _Pure["default"])(CheckboxItemDecorator(CheckboxItemBase));
|
|
210
|
+
var _default = exports["default"] = CheckboxItem;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
.checkboxItem {
|
|
2
|
+
/* Needed to prevent global class being added in the DOM */
|
|
3
|
+
padding: var(--primitive-spacing-36) var(--primitive-spacing-48) var(--primitive-spacing-36) var(--primitive-spacing-60);
|
|
4
|
+
}
|
|
5
|
+
.checkboxItem.selected {
|
|
6
|
+
/* Available for customization */
|
|
7
|
+
}
|
|
8
|
+
:global(.enact-locale-right-to-left) .checkboxItem {
|
|
9
|
+
padding: var(--primitive-spacing-36) var(--primitive-spacing-60) var(--primitive-spacing-36) var(--primitive-spacing-48);
|
|
10
|
+
}
|
|
11
|
+
.checkboxItem .bg {
|
|
12
|
+
/* Available for customization */
|
|
13
|
+
}
|
|
14
|
+
.checkboxItem.hasLabel {
|
|
15
|
+
padding: var(--primitive-spacing-48) var(--primitive-spacing-48) var(--primitive-spacing-48) var(--primitive-spacing-60);
|
|
16
|
+
}
|
|
17
|
+
:global(.enact-locale-right-to-left) .checkboxItem.hasLabel {
|
|
18
|
+
padding: var(--primitive-spacing-48) var(--primitive-spacing-60) var(--primitive-spacing-48) var(--primitive-spacing-48);
|
|
19
|
+
}
|
|
20
|
+
.checkboxItem:global(.neutral).selected .bg {
|
|
21
|
+
background-color: transparent;
|
|
22
|
+
}
|
|
23
|
+
:global(.enact-a11y-high-contrast) .checkboxItem:global(.neutral):global(.highContrast).selected .bg {
|
|
24
|
+
background-color: transparent;
|
|
25
|
+
}
|
|
26
|
+
.checkboxItem:global(.light).selected .bg {
|
|
27
|
+
background-color: transparent;
|
|
28
|
+
}
|
|
29
|
+
.checkboxItem:global(.game) {
|
|
30
|
+
--semantic-color-surface-default: #2d224c;
|
|
31
|
+
--semantic-color-surface-default-focused: #6d2fa1;
|
|
32
|
+
--semantic-color-on-surface-main-focused: #e6e6e6;
|
|
33
|
+
}
|
|
34
|
+
.checkboxItem:global(.game).selected .bg {
|
|
35
|
+
background-color: transparent;
|
|
36
|
+
}
|
|
37
|
+
:global(.green) .checkboxItem:global(.game) {
|
|
38
|
+
--semantic-color-surface-default: #1F2C24;
|
|
39
|
+
--semantic-color-surface-default-focused: #3ea07d;
|
|
40
|
+
}
|
|
41
|
+
:global(.green) .checkboxItem:global(.game).selected .bg {
|
|
42
|
+
background-color: transparent;
|
|
43
|
+
}
|
|
44
|
+
:global(.orange) .checkboxItem:global(.game) {
|
|
45
|
+
--semantic-color-surface-default: #422923;
|
|
46
|
+
--semantic-color-surface-default-focused: #b85f23;
|
|
47
|
+
}
|
|
48
|
+
:global(.orange) .checkboxItem:global(.game).selected .bg {
|
|
49
|
+
background-color: transparent;
|
|
50
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("@testing-library/jest-dom");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
5
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
6
|
+
var _CheckboxItem = _interopRequireWildcard(require("../CheckboxItem"));
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
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); }
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
11
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
12
|
+
describe('CheckboxItem Specs', function () {
|
|
13
|
+
test('should support a custom icon', function () {
|
|
14
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckboxItem.CheckboxItemBase, {
|
|
15
|
+
icon: "trash",
|
|
16
|
+
children: "Hello CheckboxItem"
|
|
17
|
+
}));
|
|
18
|
+
var checkboxItemElement = _react.screen.getAllByRole('checkbox');
|
|
19
|
+
var actual = checkboxItemElement[1].textContent.codePointAt();
|
|
20
|
+
var expected = 983077; // decimal converted charCode of Unicode 'trash' character
|
|
21
|
+
|
|
22
|
+
expect(actual).toBe(expected);
|
|
23
|
+
});
|
|
24
|
+
test('should have correct text', function () {
|
|
25
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckboxItem.CheckboxItemBase, {
|
|
26
|
+
children: "Hello CheckboxItem"
|
|
27
|
+
}));
|
|
28
|
+
var element = _react.screen.getByText(/Hello CheckboxItem/i);
|
|
29
|
+
expect(element).toBeInTheDocument();
|
|
30
|
+
});
|
|
31
|
+
test('should select with click', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
32
|
+
var user = _userEvent["default"].setup();
|
|
33
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckboxItem["default"], {
|
|
34
|
+
children: "Hello CheckboxItem"
|
|
35
|
+
}));
|
|
36
|
+
var checkboxItemElement = _react.screen.getAllByRole('checkbox')[0];
|
|
37
|
+
var expected = 'selected';
|
|
38
|
+
yield user.click(checkboxItemElement);
|
|
39
|
+
expect(checkboxItemElement).toHaveClass(expected);
|
|
40
|
+
}));
|
|
41
|
+
test('should unselect with click twice', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
42
|
+
var user = _userEvent["default"].setup();
|
|
43
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckboxItem["default"], {
|
|
44
|
+
children: "Hello CheckboxItem"
|
|
45
|
+
}));
|
|
46
|
+
var checkboxItemElement = _react.screen.getAllByRole('checkbox')[0];
|
|
47
|
+
var expected = 'selected';
|
|
48
|
+
yield user.click(checkboxItemElement);
|
|
49
|
+
yield user.click(checkboxItemElement);
|
|
50
|
+
expect(checkboxItemElement).not.toHaveClass(expected);
|
|
51
|
+
}));
|
|
52
|
+
});
|