@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,252 @@
|
|
|
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 _Button = _interopRequireWildcard(require("../Button"));
|
|
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('Button', function () {
|
|
13
|
+
test('should have \'disabled\' HTML attribute when \'disabled\' prop is provided', function () {
|
|
14
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
15
|
+
disabled: true,
|
|
16
|
+
children: "I am a disabled Button"
|
|
17
|
+
}));
|
|
18
|
+
var button = _react.screen.getByRole('button');
|
|
19
|
+
expect(button).toHaveAttribute('disabled');
|
|
20
|
+
});
|
|
21
|
+
test('should have default backgroundOpacity opaque', function () {
|
|
22
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
|
|
23
|
+
var button = _react.screen.getByRole('button');
|
|
24
|
+
var expected = 'opaque';
|
|
25
|
+
expect(button).toHaveClass(expected);
|
|
26
|
+
});
|
|
27
|
+
test('should expand by default', function () {
|
|
28
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
|
|
29
|
+
var button = _react.screen.getByRole('button');
|
|
30
|
+
var expected = 'focusExpand';
|
|
31
|
+
expect(button).toHaveClass(expected);
|
|
32
|
+
});
|
|
33
|
+
test('should be able to disable the expand focus effect', function () {
|
|
34
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
|
|
35
|
+
focusEffect: "static"
|
|
36
|
+
}));
|
|
37
|
+
var button = _react.screen.getByRole('button');
|
|
38
|
+
var expected = 'focusStatic';
|
|
39
|
+
expect(button).toHaveClass(expected);
|
|
40
|
+
});
|
|
41
|
+
test('should have default minWidth', function () {
|
|
42
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
|
|
43
|
+
var button = _react.screen.getByRole('button');
|
|
44
|
+
var expected = 'minWidth';
|
|
45
|
+
expect(button).toHaveClass(expected);
|
|
46
|
+
});
|
|
47
|
+
test('should have default size large', function () {
|
|
48
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
|
|
49
|
+
var button = _react.screen.getByRole('button');
|
|
50
|
+
var expected = 'large';
|
|
51
|
+
expect(button).toHaveClass(expected);
|
|
52
|
+
});
|
|
53
|
+
describe('with no minWidth', function () {
|
|
54
|
+
test('should not have minWidth class', function () {
|
|
55
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
|
|
56
|
+
minWidth: false
|
|
57
|
+
}));
|
|
58
|
+
var button = _react.screen.getByRole('button');
|
|
59
|
+
var expected = 'minWidth';
|
|
60
|
+
expect(button).not.toHaveClass(expected);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('with transparent backgroundOpacity', function () {
|
|
64
|
+
test('should have transparent class', function () {
|
|
65
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
|
|
66
|
+
backgroundOpacity: "transparent"
|
|
67
|
+
}));
|
|
68
|
+
var button = _react.screen.getByRole('button');
|
|
69
|
+
var expected = 'transparent';
|
|
70
|
+
expect(button).toHaveClass(expected);
|
|
71
|
+
});
|
|
72
|
+
test('should not have have opaque class', function () {
|
|
73
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
|
|
74
|
+
backgroundOpacity: "transparent"
|
|
75
|
+
}));
|
|
76
|
+
var button = _react.screen.getByRole('button');
|
|
77
|
+
var expected = 'opaque';
|
|
78
|
+
expect(button).not.toHaveClass(expected);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('with icon', function () {
|
|
82
|
+
test('should have check icon when specified', function () {
|
|
83
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
84
|
+
icon: "checkmark",
|
|
85
|
+
children: "abc"
|
|
86
|
+
}));
|
|
87
|
+
var icon = _react.screen.getByText('✓');
|
|
88
|
+
expect(icon).toBeInTheDocument();
|
|
89
|
+
expect(icon).toHaveClass('icon');
|
|
90
|
+
});
|
|
91
|
+
test('should not have minWidth class with only icon', function () {
|
|
92
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
93
|
+
icon: "check"
|
|
94
|
+
}));
|
|
95
|
+
var button = _react.screen.getByRole('button');
|
|
96
|
+
var expected = 'minWidth';
|
|
97
|
+
expect(button).not.toHaveClass(expected);
|
|
98
|
+
});
|
|
99
|
+
test('should have iconAfter class with text and icon', function () {
|
|
100
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
101
|
+
icon: "check",
|
|
102
|
+
iconPosition: "after",
|
|
103
|
+
children: "text"
|
|
104
|
+
}));
|
|
105
|
+
var button = _react.screen.getByRole('button');
|
|
106
|
+
var expected = 'iconAfter';
|
|
107
|
+
expect(button).toHaveClass(expected);
|
|
108
|
+
});
|
|
109
|
+
test('should have iconBefore class with text and icon', function () {
|
|
110
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
111
|
+
icon: "check",
|
|
112
|
+
iconPosition: "before",
|
|
113
|
+
children: "text"
|
|
114
|
+
}));
|
|
115
|
+
var button = _react.screen.getByRole('button');
|
|
116
|
+
var expected = 'iconBefore';
|
|
117
|
+
expect(button).toHaveClass(expected);
|
|
118
|
+
});
|
|
119
|
+
test('should not have iconPosition classes with only icon', function () {
|
|
120
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
121
|
+
icon: "check"
|
|
122
|
+
}));
|
|
123
|
+
var button = _react.screen.getByRole('button');
|
|
124
|
+
expect(button).not.toHaveClass('iconBefore');
|
|
125
|
+
expect(button).not.toHaveClass('iconAfter');
|
|
126
|
+
});
|
|
127
|
+
test('should have iconOnly class when there is no children', function () {
|
|
128
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
129
|
+
icon: "check"
|
|
130
|
+
}));
|
|
131
|
+
var button = _react.screen.getByRole('button');
|
|
132
|
+
var expected = 'iconOnly';
|
|
133
|
+
expect(button).toHaveClass(expected);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
describe('with color', function () {
|
|
137
|
+
test('should have hasColor class when a color is specified', function () {
|
|
138
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
139
|
+
color: "red",
|
|
140
|
+
children: "abc"
|
|
141
|
+
}));
|
|
142
|
+
var button = _react.screen.getByRole('button');
|
|
143
|
+
var expected = 'hasColor';
|
|
144
|
+
expect(button).toHaveClass(expected);
|
|
145
|
+
});
|
|
146
|
+
test('should not have hasColor when no color is specified', function () {
|
|
147
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
148
|
+
children: "abc"
|
|
149
|
+
}));
|
|
150
|
+
var button = _react.screen.getByRole('button');
|
|
151
|
+
var expected = 'hasColor';
|
|
152
|
+
expect(button).not.toHaveClass(expected);
|
|
153
|
+
});
|
|
154
|
+
test('should have red class', function () {
|
|
155
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
156
|
+
color: "red",
|
|
157
|
+
children: "abc"
|
|
158
|
+
}));
|
|
159
|
+
var button = _react.screen.getByRole('button');
|
|
160
|
+
var expected = 'red';
|
|
161
|
+
expect(button).toHaveClass(expected);
|
|
162
|
+
});
|
|
163
|
+
test('should have blue class', function () {
|
|
164
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
165
|
+
color: "blue",
|
|
166
|
+
children: "abc"
|
|
167
|
+
}));
|
|
168
|
+
var button = _react.screen.getByRole('button');
|
|
169
|
+
var expected = 'blue';
|
|
170
|
+
expect(button).toHaveClass(expected);
|
|
171
|
+
});
|
|
172
|
+
test('should have yellow class', function () {
|
|
173
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
174
|
+
color: "yellow",
|
|
175
|
+
children: "abc"
|
|
176
|
+
}));
|
|
177
|
+
var button = _react.screen.getByRole('button');
|
|
178
|
+
var expected = 'yellow';
|
|
179
|
+
expect(button).toHaveClass(expected);
|
|
180
|
+
});
|
|
181
|
+
test('should have green class', function () {
|
|
182
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
183
|
+
color: "green",
|
|
184
|
+
children: "abc"
|
|
185
|
+
}));
|
|
186
|
+
var button = _react.screen.getByRole('button');
|
|
187
|
+
var expected = 'green';
|
|
188
|
+
expect(button).toHaveClass(expected);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe('with shadowed', function () {
|
|
192
|
+
test('should have shadowed class when the background is transparent', function () {
|
|
193
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
194
|
+
shadowed: true,
|
|
195
|
+
backgroundOpacity: "transparent"
|
|
196
|
+
}));
|
|
197
|
+
var button = _react.screen.getByRole('button');
|
|
198
|
+
var expected = 'shadowed';
|
|
199
|
+
expect(button).toHaveClass(expected);
|
|
200
|
+
});
|
|
201
|
+
test('should have shadowed class when the background is undefined and has icon only', function () {
|
|
202
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
203
|
+
shadowed: true,
|
|
204
|
+
icon: "check"
|
|
205
|
+
}));
|
|
206
|
+
var button = _react.screen.getByRole('button');
|
|
207
|
+
var expected = 'shadowed';
|
|
208
|
+
expect(button).toHaveClass(expected);
|
|
209
|
+
});
|
|
210
|
+
test('should not have shadowed class when the background is not transparent', function () {
|
|
211
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
212
|
+
shadowed: true,
|
|
213
|
+
backgroundOpacity: "opaque"
|
|
214
|
+
}));
|
|
215
|
+
var button = _react.screen.getByRole('button');
|
|
216
|
+
var expected = 'shadowed';
|
|
217
|
+
expect(button).not.toHaveClass(expected);
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
describe('events', function () {
|
|
221
|
+
test('should call onClick when not disabled', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
222
|
+
var handleClick = jest.fn();
|
|
223
|
+
var user = _userEvent["default"].setup();
|
|
224
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
225
|
+
onClick: handleClick,
|
|
226
|
+
children: "I am not a disabled Button"
|
|
227
|
+
}));
|
|
228
|
+
var button = _react.screen.getByText('I am not a disabled Button');
|
|
229
|
+
yield user.click(button);
|
|
230
|
+
expect(handleClick).toHaveBeenCalled();
|
|
231
|
+
}));
|
|
232
|
+
test('should not call onClick when disabled', /*#__PURE__*/_asyncToGenerator(function* () {
|
|
233
|
+
var handleClick = jest.fn();
|
|
234
|
+
var user = _userEvent["default"].setup();
|
|
235
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
236
|
+
disabled: true,
|
|
237
|
+
onClick: handleClick,
|
|
238
|
+
children: "I am a disabled Button"
|
|
239
|
+
}));
|
|
240
|
+
var button = _react.screen.getByText('I am a disabled Button');
|
|
241
|
+
yield user.click(button);
|
|
242
|
+
expect(handleClick).not.toHaveBeenCalled();
|
|
243
|
+
}));
|
|
244
|
+
test('should have "Select" voice intent in the node of "role=button"', function () {
|
|
245
|
+
(0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
246
|
+
children: "Hello"
|
|
247
|
+
}));
|
|
248
|
+
var button = _react.screen.getByRole('button');
|
|
249
|
+
expect(button).toHaveAttribute('data-webos-voice-intent', 'Select');
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
});
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
The following is a curated list of changes in the Enact limestone module, newest changes on the top.
|
|
4
|
+
|
|
5
|
+
## [1.3.0] - 2025-08-08
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `limestone/Card` prop `imageSize` to set the size of card image
|
|
10
|
+
- `limestone/Icon` supported icon list, adding new icons
|
|
11
|
+
- `limestone/Input` prop `buttons`
|
|
12
|
+
- `limestone/MediaPlayer.Times` prop `includeHour` to conditionally show hour for current and total time
|
|
13
|
+
- `limestone/VideoPlayer` prop `includeTimeHour` to conditionally show hour for current and total time
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- All components in `light` skin and high-contrast mode styling to match the latest GUI
|
|
18
|
+
- `limestone/Card` to display `captions` on focus
|
|
19
|
+
- `limestone/CheckboxItem` styling to match the latest GUI
|
|
20
|
+
- `limestone/FlexiblePopupPanels` styling to match the latest GUI
|
|
21
|
+
- `limestone/FormCheckboxItem` styling to match the latest GUI
|
|
22
|
+
- `limestone/MediaOverlay` styling to match the latest GUI
|
|
23
|
+
- `limestone/RadioItem` styling to match the latest GUI
|
|
24
|
+
- `limestone/TabLayout` vertical to be collapsed in portrait mode
|
|
25
|
+
- `limestone/Tooltip` styling to match the latest GUI
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- `limestone/Card` for `focusRing` mode
|
|
30
|
+
- `limestone/Card` `background` for captions
|
|
31
|
+
- `limestone/Icon` medium size
|
|
32
|
+
- `limestone/Popup` to restore focus properly when popup hides
|
|
33
|
+
- `limestone/QuickGuidePanels` navigation buttons position
|
|
34
|
+
- `limestone/Scroller` to prevent the native scrolling behavior caused by keydown events only when a popup is open
|
|
35
|
+
- `limestone/Scroller` to restore focus when focus is lost after scroll by voice control
|
|
36
|
+
- `limestone/Scroller` with `editable` prop to work properly with deployed apps
|
|
37
|
+
- `limestone/Scroller` with `editable` prop to recognize button if clickEvent is triggered for `Button` background
|
|
38
|
+
- `limestone/TabLayout` to maintain the same scroller position when `Tabs` are collapsed or expanded
|
|
39
|
+
- `limestone/VideoPlayer` size of the icons from the control buttons
|
|
40
|
+
|
|
41
|
+
## [1.2.0] - 2025-07-11
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- `limestone/Chip` prop `id` to manage focus properly
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
- `limestone/ActionGuide` styling to match the latest GUI
|
|
50
|
+
- `limestone/IconItem` styling to match the latest GUI
|
|
51
|
+
- `limestone/ImageItem` styling to match the latest GUI
|
|
52
|
+
- `limestone/KeyGuide` styling to match the latest GUI
|
|
53
|
+
- `limestone/Slider` styling to match the latest GUI
|
|
54
|
+
- `limestone/Spinner` styling to match the latest GUI
|
|
55
|
+
- `limestone/TimePicker` styling to match the latest GUI
|
|
56
|
+
- `limestone/VideoPlayer` styling to match the latest GUI
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- `limestone/Chips` to handle focus properly when `children` changes
|
|
61
|
+
- `limestone/FixedPopupPanels` to work with `noAnimation`
|
|
62
|
+
- `limestone/FlexiblePopupPanels` to work with `noAnimation`
|
|
63
|
+
- `limestone/InputPopup` prop `defaultValue` to be displayed when it's set
|
|
64
|
+
- `limestone/TooltipDecorator` to change position if wrapped component changes size
|
|
65
|
+
- `limestone/WizardPanels` title visibility when `prevButton` or `nextButton` are set to `false`
|
|
66
|
+
|
|
67
|
+
## [1.1.0] - 2025-06-25
|
|
68
|
+
|
|
69
|
+
### Added
|
|
70
|
+
|
|
71
|
+
- `limestone/ContextualPopup` `large` type `offset`
|
|
72
|
+
- `limestone/Icon` supported icon list, adding new icons
|
|
73
|
+
- `limestone/ImageItem` prop `wideImage` to support wide image
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
|
|
77
|
+
- `limestone/Alert` styling to match the latest GUI
|
|
78
|
+
- `limestone/Button` styling to match the latest GUI
|
|
79
|
+
- `limestone/Button` font-size for non-latin locale
|
|
80
|
+
- `limestone/Dropdown` styling to match the latest GUI
|
|
81
|
+
- `limestone/ImageItem` styling to match the latest GUI
|
|
82
|
+
- `limestone/Input` styling to match the latest GUI
|
|
83
|
+
- `limestone/PageViews` indicator styling to match the latest GUI
|
|
84
|
+
|
|
85
|
+
### Fixed
|
|
86
|
+
|
|
87
|
+
- `limestone/Button` min-width for `iconOnly` button in large text mode
|
|
88
|
+
- `limestone/ImageItem` props `children` and `label` to accept node type
|
|
89
|
+
- `limestone/TimePicker` flickering on the hour picker when the meridiem value change
|
|
90
|
+
|
|
91
|
+
## [1.0.0] - 2025-06-13
|
|
92
|
+
|
|
93
|
+
### Added
|
|
94
|
+
|
|
95
|
+
- `limestone/Chips`, a new container component that groups and manages multiple `limestone/Chips.Chip` for improved layout and interaction
|
|
96
|
+
|
|
97
|
+
### Changed
|
|
98
|
+
|
|
99
|
+
- `limestone/Chips.Chip` styling to match the latest GUI
|
|
100
|
+
- `limestone/TabLayout` styling to match the latest GUI
|
|
101
|
+
|
|
102
|
+
## [1.0.0-rc.2] - 2025-06-04
|
|
103
|
+
|
|
104
|
+
### Changed
|
|
105
|
+
|
|
106
|
+
- `limestone/ContextualMenuDecorator` styling to match the latest GUI
|
|
107
|
+
- `limestone/FixedPopupPanels` styling to match the latest GUI
|
|
108
|
+
|
|
109
|
+
### Fixed
|
|
110
|
+
|
|
111
|
+
- `limestone/TabLayout` to focus to the last focused tab when focus enters to the tab group
|
|
112
|
+
|
|
113
|
+
## [1.0.0-rc.1] - 2025-05-29
|
|
114
|
+
|
|
115
|
+
### Added
|
|
116
|
+
|
|
117
|
+
- `limestone/Icon` supported icon list, adding new icons
|
|
118
|
+
- `limestone/TabLayout` prop `primaryIndex` to focus primary tab when pressing back key from other tabs or initial rendering
|
|
119
|
+
|
|
120
|
+
### Changed
|
|
121
|
+
|
|
122
|
+
- `limestone/BodyText` styling to match the latest GUI
|
|
123
|
+
- `limestone/DatePicker` styling to match the latest GUI
|
|
124
|
+
- `limestone/DayPicker` styling to match the latest GUI
|
|
125
|
+
- `limestone/Heading` prop `size` default value to `tiny` and styling to match the latest GUI
|
|
126
|
+
- `limestone/PageViews` styling to match the latest GUI
|
|
127
|
+
- `limestone/Panels` styling to match the latest GUI
|
|
128
|
+
- `limestone/Panels.Header` styling to match the latest GUI
|
|
129
|
+
- `limestone/PopupTabLayout` styling to match the latest GUI
|
|
130
|
+
- `limestone/ProgressButton` styling to match the latest GUI
|
|
131
|
+
- `limestone/Steps` styling to match the latest GUI
|
|
132
|
+
- `limestone/Switch` styling to match the latest GUI
|
|
133
|
+
- `limestone/SwitchItem` styling to match the latest GUI
|
|
134
|
+
- `limestone/WizardPanels` styling to match the latest GUI
|
|
135
|
+
|
|
136
|
+
### Fixed
|
|
137
|
+
|
|
138
|
+
- `limestone/ContextualPopupDecorator` to update popup position properly when Wrapped component updated
|
|
139
|
+
- `limestone/Input.InputField` to receive focus properly when navigating with directional keys
|
|
140
|
+
- `limestone/Input.InputField` to receive focus properly when not contained in the same SpotlightContainer
|
|
141
|
+
|
|
142
|
+
## [1.0.0-beta.1] - 2025-04-29
|
|
143
|
+
|
|
144
|
+
### Added
|
|
145
|
+
|
|
146
|
+
- `limestone/Card` prop `secondaryLabel`
|
|
147
|
+
|
|
148
|
+
### Changed
|
|
149
|
+
|
|
150
|
+
- `limestone/Button` styling to match the latest GUI
|
|
151
|
+
- `limestone/Checkbox` styling to match the latest GUI
|
|
152
|
+
- `limestone/Dropdown` styling to match the latest GUI
|
|
153
|
+
- `limestone/Input.InputField` styling to match the latest GUI
|
|
154
|
+
- `limestone/Item` styling to match the latest GUI
|
|
155
|
+
- `limestone/Picker` styling to match the latest GUI
|
|
156
|
+
- `limestone/ProgressBar` styling to match the latest GUI
|
|
157
|
+
- `limestone/RadioItem` styling to match the latest GUI
|
|
158
|
+
- `limestone/Scroller` styling to match the latest GUI
|
|
159
|
+
- `limestone/Tab` styling to match the latest GUI
|
|
160
|
+
- `limestone/VirtualList` styling to match the latest GUI
|
|
161
|
+
- `limestone/WizardPanels` to marquee subtitle
|
|
162
|
+
|
|
163
|
+
### Fixed
|
|
164
|
+
|
|
165
|
+
- `limestone/ContextualPopupDecorator` to focus content only after the state has been updated when popup opens
|
|
166
|
+
- `limestone/Scroller` with `editable` prop to not move hidden items
|
|
167
|
+
|
|
168
|
+
## [1.0.0-alpha.1] - 2025-04-04
|
|
169
|
+
|
|
170
|
+
Initial alpha release.
|
package/Card/Card.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// Type definitions for limestone/Card
|
|
2
|
+
|
|
3
|
+
import { MarqueeControllerProps as limestone_Marquee_MarqueeControllerProps } from "limestone/Marquee";
|
|
4
|
+
import { SpottableProps as spotlight_Spottable_SpottableProps } from "@enact/spotlight/Spottable";
|
|
5
|
+
import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
|
|
6
|
+
import { CardProps as ui_Card_CardProps } from "@enact/ui/Card";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
|
|
9
|
+
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
|
10
|
+
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
11
|
+
|
|
12
|
+
export interface CardBaseProps extends ui_Card_CardProps {
|
|
13
|
+
/**
|
|
14
|
+
* The primary caption displayed with the image.
|
|
15
|
+
*/
|
|
16
|
+
children: string;
|
|
17
|
+
/**
|
|
18
|
+
* Source for the image.
|
|
19
|
+
String value or Object of values used to determine which image will appear on
|
|
20
|
+
a specific screenSize.
|
|
21
|
+
*/
|
|
22
|
+
src: string | object;
|
|
23
|
+
/**
|
|
24
|
+
* Determines whether the caption will be placed over the image or not.
|
|
25
|
+
It only applies when `orientation` is `'vertical'` .
|
|
26
|
+
*/
|
|
27
|
+
captionOverlay?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Determines whether the caption will be placed over the image and shown only on card focus.
|
|
30
|
+
It only applies when `orientation` is `'vertical'` .
|
|
31
|
+
*/
|
|
32
|
+
captionOverlayOnFocus?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Centers the captions when `imageIconSrc` is not provided.
|
|
35
|
+
*/
|
|
36
|
+
centered?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Customizes the component by mapping the supplied collection of CSS class names to the
|
|
39
|
+
corresponding internal elements and states of this component.
|
|
40
|
+
*/
|
|
41
|
+
css?: object;
|
|
42
|
+
/**
|
|
43
|
+
* Disables Card and becomes non-interactive.
|
|
44
|
+
*/
|
|
45
|
+
disabled?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Set to `true` to display a container with background color.
|
|
48
|
+
When `orientation` is `'horizontal'` , this prop is always `true` and provided value will be ignored.
|
|
49
|
+
*/
|
|
50
|
+
hasContainer?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Source for the image icon.
|
|
53
|
+
*
|
|
54
|
+
* String value or Object of values used to determine which image will appear on
|
|
55
|
+
a specific screenSize. This prop is only used when `orientation` is `'vertical'` .
|
|
56
|
+
*/
|
|
57
|
+
imageIconSrc?: string | object;
|
|
58
|
+
/**
|
|
59
|
+
* The size of the image.
|
|
60
|
+
*
|
|
61
|
+
* The following properties should be provided:
|
|
62
|
+
* * `height` - The height of the image
|
|
63
|
+
* * `width` - The width of the image
|
|
64
|
+
*/
|
|
65
|
+
imageSize?: object;
|
|
66
|
+
/**
|
|
67
|
+
* A secondary caption displayed with the image.
|
|
68
|
+
*/
|
|
69
|
+
label?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The layout orientation of the component.
|
|
72
|
+
*/
|
|
73
|
+
orientation?: "horizontal" | "vertical";
|
|
74
|
+
/**
|
|
75
|
+
* A placeholder image to be displayed before the image is loaded.
|
|
76
|
+
*/
|
|
77
|
+
placeholder?: string;
|
|
78
|
+
/**
|
|
79
|
+
* The primary badge image source.
|
|
80
|
+
*/
|
|
81
|
+
primaryBadgeSrc?: string | object;
|
|
82
|
+
/**
|
|
83
|
+
* Set to `true` to display the image with rounded corners.
|
|
84
|
+
*/
|
|
85
|
+
roundedImage?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* The secondary badge image source.
|
|
88
|
+
*/
|
|
89
|
+
secondaryBadgeSrc?: string | object;
|
|
90
|
+
/**
|
|
91
|
+
* A ternary caption displayed with the image.
|
|
92
|
+
*/
|
|
93
|
+
secondaryLabel?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Applies a selected visual effect to the image.
|
|
96
|
+
*/
|
|
97
|
+
selected?: boolean;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* A Limestone styled base component for .
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
export class CardBase extends React.Component<
|
|
104
|
+
Merge<React.HTMLProps<HTMLElement>, CardBaseProps>
|
|
105
|
+
> {}
|
|
106
|
+
|
|
107
|
+
export interface CardDecoratorProps
|
|
108
|
+
extends Merge<
|
|
109
|
+
Merge<
|
|
110
|
+
limestone_Marquee_MarqueeControllerProps,
|
|
111
|
+
spotlight_Spottable_SpottableProps
|
|
112
|
+
>,
|
|
113
|
+
limestone_Skinnable_SkinnableProps
|
|
114
|
+
> {}
|
|
115
|
+
export function CardDecorator<P>(
|
|
116
|
+
Component: React.ComponentType<P> | string,
|
|
117
|
+
): React.ComponentType<P & CardDecoratorProps>;
|
|
118
|
+
|
|
119
|
+
export interface CardProps extends Merge<CardBaseProps, CardDecoratorProps> {}
|
|
120
|
+
/**
|
|
121
|
+
* A Limestone-styled Card.
|
|
122
|
+
*
|
|
123
|
+
* Usage:
|
|
124
|
+
* ```
|
|
125
|
+
<Card
|
|
126
|
+
src="https://placehold.co/100x100/9037ab/ffffff/png?text=Image0"
|
|
127
|
+
label="A secondary caption"
|
|
128
|
+
>
|
|
129
|
+
The primary caption
|
|
130
|
+
</Card>
|
|
131
|
+
```
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
export class Card extends React.Component<
|
|
135
|
+
Merge<React.HTMLProps<HTMLElement>, CardProps>
|
|
136
|
+
> {}
|
|
137
|
+
|
|
138
|
+
export default Card;
|