@enact/limestone 1.9.3 → 1.10.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/workflows/ci-reusable.yml +2 -2
- package/Alert/Alert.d.ts +9 -0
- package/Alert/Alert.js +35 -4
- package/Alert/Alert.module.css +12 -1
- package/Alert/tests/Alert-specs.js +91 -0
- package/Button/tests/Button-specs.js +26 -0
- package/CHANGELOG.md +34 -0
- package/Card/Card.d.ts +4 -4
- package/Card/Card.js +7 -8
- package/Card/tests/Card-specs.js +39 -5
- package/CheckboxItem/CheckboxItem.js +6 -4
- package/Chips/Chip.js +12 -6
- package/Chips/Chips.js +12 -6
- package/Chips/tests/Chip-specs.js +25 -5
- package/Chips/tests/Chips-specs.js +12 -2
- package/ColorPicker/ColorPicker.js +27 -25
- package/ContextualPopupDecorator/ContextualPopupDecorator.js +32 -22
- package/DayPicker/DaySelectorDecorator.js +12 -7
- package/Dropdown/Dropdown.module.css +4 -0
- package/Dropdown/DropdownList.js +74 -53
- package/FlexiblePopupPanels/useNavButtonFocus.js +7 -10
- package/Heading/Heading.d.ts +1 -1
- package/Heading/Heading.js +2 -2
- package/Icon/Icon.d.ts +1 -0
- package/Icon/Icon.js +1 -0
- package/Icon/IconList.js +2 -0
- package/IconItem/IconItem.module.css +3 -3
- package/IconItem/tests/IconItem-specs.js +30 -1
- package/Image/Image.js +6 -4
- package/Input/Input.js +12 -1
- package/Input/InputField.js +75 -24
- package/Input/InputField.module.css +262 -45
- package/Input/InputFieldDecoratorIcon.js +1 -0
- package/Input/InputFieldSpotlightDecorator.js +53 -8
- package/Input/index.d.ts +105 -93
- package/Input/tests/Input-specs.js +26 -0
- package/Input/tests/InputField-specs.js +149 -3
- package/Input/tests/InputPopup-specs.js +1 -1
- package/KeyGuide/KeyGuide.js +29 -27
- package/MediaOverlay/tests/MediaOverlay-specs.js +29 -0
- package/MediaPlayer/tests/util-specs.js +4 -1
- package/PageViews/PageViews.js +134 -69
- package/PageViews/PageViews.module.css +3 -0
- package/PageViews/PageViewsRouter.js +91 -42
- package/PageViews/tests/PageViews-specs.js +87 -0
- package/Panels/Header.js +6 -4
- package/Popup/Popup.js +5 -4
- package/PopupTabLayout/PopupTabLayout.js +11 -9
- package/RadioItem/RadioItem.js +7 -5
- package/Scroller/EditableWrapper.js +17 -14
- package/Scroller/Scroller.js +11 -10
- package/Scroller/useThemeScroller.js +3 -3
- package/Slider/Slider.d.ts +4 -0
- package/Slider/Slider.js +40 -16
- package/Slider/Slider.module.css +150 -0
- package/Slider/SliderBehaviorDecorator.js +16 -14
- package/Slider/tests/Slider-specs.js +51 -0
- package/Slider/utils.js +23 -7
- package/Spinner/Spinner.js +10 -8
- package/TabLayout/RefocusDecorator.js +14 -12
- package/TabLayout/tests/TabGroup-specs.js +1 -1
- package/ThemeDecorator/AccessibilityDecorator.js +12 -11
- package/ThemeDecorator/I18nFontDecorator.js +6 -4
- package/ThemeDecorator/ThemeDecorator.d.ts +7 -0
- package/ThemeDecorator/ThemeDecorator.js +24 -9
- package/TimePicker/TimePickerBase.js +5 -3
- package/TooltipDecorator/TooltipDecorator.js +12 -7
- package/TooltipDecorator/tests/useTooltip-specs.js +5 -2
- package/VideoPlayer/VideoPlayer.js +25 -24
- package/VirtualList/VirtualList.js +20 -18
- package/VirtualList/useSpotlight.js +1 -1
- package/fonts/Limestone_Icons.ttf +0 -0
- package/internal/AsyncRenderChildren/AsyncRenderChildren.js +9 -5
- package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +4 -1
- package/internal/DateTime/DateTimeDecorator.js +5 -4
- package/internal/Panels/PanelsRouter.js +35 -29
- package/internal/Panels/useAutoFocus.js +10 -6
- package/internal/Panels/useFocusOnTransition.js +4 -3
- package/internal/Picker/Picker.js +7 -5
- package/internal/Picker/SpottablePicker.js +15 -13
- package/internal/SharedStateDecorator/SharedStateDecorator.js +6 -4
- package/package.json +14 -11
- package/styles/colors.less +1 -0
- package/styles/variables.less +1 -1
- package/useScroll/HoverToScroll.js +15 -12
- package/useScroll/Scrollbar.js +14 -10
- package/useScroll/ScrollbarPlaceholder.js +3 -5
- package/useScroll/ScrollbarTrack.js +7 -5
- package/useScroll/useEvent.js +7 -2
- package/useScroll/useScroll.js +10 -2
|
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = exports.PanelsRouter = exports.PanelsContext = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
7
|
var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
|
|
9
8
|
var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
|
|
10
9
|
var _useChainRefs = _interopRequireDefault(require("@enact/core/useChainRefs"));
|
|
10
|
+
var _util = require("@enact/core/util");
|
|
11
11
|
var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _react = require("react");
|
|
12
13
|
var _useAutoFocus = _interopRequireDefault(require("./useAutoFocus"));
|
|
13
14
|
var _useFocusOnTransition2 = _interopRequireDefault(require("./useFocusOnTransition"));
|
|
14
15
|
var _useToggleRole2 = _interopRequireDefault(require("./useToggleRole"));
|
|
@@ -36,18 +37,20 @@ var PanelsContext = exports.PanelsContext = /*#__PURE__*/(0, _react.createContex
|
|
|
36
37
|
function useReverseTransition() {
|
|
37
38
|
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
|
|
38
39
|
var rtl = arguments.length > 1 ? arguments[1] : undefined;
|
|
39
|
-
var prevIndex = (0,
|
|
40
|
-
|
|
40
|
+
var prevIndex = (0, _util.usePrevious)(index);
|
|
41
|
+
|
|
41
42
|
// If the index was changed, the panel transition occurs on the next cycle by `Panel`
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
prevIndex.current = index;
|
|
43
|
+
if (prevIndex !== index) {
|
|
44
|
+
var reverse = rtl ? index > prevIndex : index < prevIndex;
|
|
45
|
+
return {
|
|
46
|
+
reverseTransition: reverse,
|
|
47
|
+
prevIndex: index
|
|
48
|
+
};
|
|
49
49
|
}
|
|
50
|
-
return
|
|
50
|
+
return {
|
|
51
|
+
reverseTransition: rtl,
|
|
52
|
+
prevIndex: index
|
|
53
|
+
};
|
|
51
54
|
}
|
|
52
55
|
var defaultConfig = {
|
|
53
56
|
type: 'wizard'
|
|
@@ -66,22 +69,25 @@ var defaultConfig = {
|
|
|
66
69
|
* @private
|
|
67
70
|
*/
|
|
68
71
|
var PanelsRouter = exports.PanelsRouter = (0, _hoc["default"])(defaultConfig, function (config, Wrapped) {
|
|
69
|
-
var
|
|
70
|
-
var
|
|
71
|
-
autoFocus
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
72
|
+
var _PanelsProvider = function PanelsProvider(props) {
|
|
73
|
+
var panelsProviderProps = (0, _util.setDefaultProps)(props, {
|
|
74
|
+
autoFocus: 'default-element',
|
|
75
|
+
index: 0,
|
|
76
|
+
subtitle: '',
|
|
77
|
+
title: ''
|
|
78
|
+
});
|
|
79
|
+
(0, _util.checkPropTypes)(_PanelsProvider, panelsProviderProps);
|
|
80
|
+
var autoFocus = panelsProviderProps.autoFocus,
|
|
81
|
+
children = panelsProviderProps.children,
|
|
82
|
+
componentRef = panelsProviderProps.componentRef,
|
|
83
|
+
spotlightId = panelsProviderProps['data-spotlight-id'],
|
|
84
|
+
index = panelsProviderProps.index,
|
|
85
|
+
onTransition = panelsProviderProps.onTransition,
|
|
86
|
+
onWillTransition = panelsProviderProps.onWillTransition,
|
|
87
|
+
rtl = panelsProviderProps.rtl,
|
|
88
|
+
subtitle = panelsProviderProps.subtitle,
|
|
89
|
+
title = panelsProviderProps.title,
|
|
90
|
+
rest = _objectWithoutProperties(panelsProviderProps, _excluded);
|
|
85
91
|
var _useState = (0, _react.useState)(null),
|
|
86
92
|
_useState2 = _slicedToArray(_useState, 2),
|
|
87
93
|
panel = _useState2[0],
|
|
@@ -140,7 +146,7 @@ var PanelsRouter = exports.PanelsRouter = (0, _hoc["default"])(defaultConfig, fu
|
|
|
140
146
|
}))]
|
|
141
147
|
});
|
|
142
148
|
};
|
|
143
|
-
|
|
149
|
+
_PanelsProvider.propTypes = /** @lends limestone/internal/Panels.PanelsRouter.prototype */{
|
|
144
150
|
/**
|
|
145
151
|
* Sets the strategy used to automatically focus an element within the Panels upon render.
|
|
146
152
|
* When set to 'none', focus is not set only on the first render.
|
|
@@ -229,6 +235,6 @@ var PanelsRouter = exports.PanelsRouter = (0, _hoc["default"])(defaultConfig, fu
|
|
|
229
235
|
*/
|
|
230
236
|
title: _propTypes2["default"].string
|
|
231
237
|
};
|
|
232
|
-
return
|
|
238
|
+
return _PanelsProvider;
|
|
233
239
|
});
|
|
234
240
|
var _default = exports["default"] = PanelsRouter;
|
|
@@ -8,6 +8,7 @@ exports.useAutoFocus = useAutoFocus;
|
|
|
8
8
|
var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
|
|
10
10
|
var _useChainRefs = _interopRequireDefault(require("@enact/core/useChainRefs"));
|
|
11
|
+
var _util = require("@enact/core/util");
|
|
11
12
|
var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
|
|
12
13
|
var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
13
14
|
var _react = require("react");
|
|
@@ -69,12 +70,15 @@ function useAutoFocus(_ref) {
|
|
|
69
70
|
}
|
|
70
71
|
var AutoFocusDecorator = exports.AutoFocusDecorator = (0, _hoc["default"])(function (config, Wrapped) {
|
|
71
72
|
// eslint-disable-next-line no-shadow
|
|
72
|
-
function AutoFocusDecorator(
|
|
73
|
-
var
|
|
74
|
-
autoFocus
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
function AutoFocusDecorator(props) {
|
|
74
|
+
var autoFocusDecoratorProps = (0, _util.setDefaultProps)(props, {
|
|
75
|
+
autoFocus: 'last-focused'
|
|
76
|
+
});
|
|
77
|
+
(0, _util.checkPropTypes)(AutoFocusDecorator, autoFocusDecoratorProps);
|
|
78
|
+
var autoFocus = autoFocusDecoratorProps.autoFocus,
|
|
79
|
+
componentRef = autoFocusDecoratorProps.componentRef,
|
|
80
|
+
hideChildren = autoFocusDecoratorProps.hideChildren,
|
|
81
|
+
rest = _objectWithoutProperties(autoFocusDecoratorProps, _excluded);
|
|
78
82
|
var hook = useAutoFocus({
|
|
79
83
|
autoFocus: autoFocus,
|
|
80
84
|
hideChildren: hideChildren
|
|
@@ -33,10 +33,11 @@ var transitionHandlers = {
|
|
|
33
33
|
})
|
|
34
34
|
};
|
|
35
35
|
function useFocusOnTransition(config) {
|
|
36
|
-
var
|
|
36
|
+
var current = (0, _react.useMemo)(function () {
|
|
37
|
+
return {
|
|
37
38
|
timerId: null
|
|
38
|
-
}
|
|
39
|
-
|
|
39
|
+
};
|
|
40
|
+
}, []);
|
|
40
41
|
var handlers = (0, _useHandlers["default"])(transitionHandlers, config, {
|
|
41
42
|
current: current
|
|
42
43
|
});
|
|
@@ -63,14 +63,15 @@ var isEnter = (0, _keymap.is)('enter');
|
|
|
63
63
|
var isLeft = (0, _keymap.is)('left');
|
|
64
64
|
var isRight = (0, _keymap.is)('right');
|
|
65
65
|
var isUp = (0, _keymap.is)('up');
|
|
66
|
-
var
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
var _DivComponent = function DivComponent(props) {
|
|
67
|
+
(0, _util.checkPropTypes)(_DivComponent, props);
|
|
68
|
+
var ref = props.ref,
|
|
69
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
69
70
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread({
|
|
70
71
|
ref: ref
|
|
71
72
|
}, rest));
|
|
72
73
|
};
|
|
73
|
-
|
|
74
|
+
_DivComponent.propTypes = {
|
|
74
75
|
/**
|
|
75
76
|
* Called with the reference to the current node.
|
|
76
77
|
*
|
|
@@ -79,7 +80,7 @@ DivComponent.propTypes = {
|
|
|
79
80
|
*/
|
|
80
81
|
ref: _propTypes["default"].ref
|
|
81
82
|
};
|
|
82
|
-
var Div = (0, _Touchable["default"])(
|
|
83
|
+
var Div = (0, _Touchable["default"])(_DivComponent);
|
|
83
84
|
var SpottableDiv = (0, _Touchable["default"])((0, _ForwardRef["default"])({
|
|
84
85
|
prop: 'containerRef'
|
|
85
86
|
}, _SpottablePicker["default"]));
|
|
@@ -118,6 +119,7 @@ var allowedClassNames = ['picker', 'valueWrapper', 'joined', 'horizontal', 'vert
|
|
|
118
119
|
* @private
|
|
119
120
|
*/
|
|
120
121
|
var _PickerBase = function PickerBase(props) {
|
|
122
|
+
(0, _util.checkPropTypes)(_PickerBase, props);
|
|
121
123
|
// Set to `true` onFocus and `false` onBlur to prevent setting aria-valuetext (which
|
|
122
124
|
// will notify the user) when the component does not have focus
|
|
123
125
|
var _useState = (0, _react.useState)(false),
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = exports.SpottablePicker = void 0;
|
|
7
7
|
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _util = require("@enact/core/util");
|
|
8
9
|
var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
|
|
9
10
|
var _propTypes2 = _interopRequireDefault(require("prop-types"));
|
|
10
11
|
var _Spottable = _interopRequireDefault(require("@enact/spotlight/Spottable"));
|
|
@@ -19,17 +20,18 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
19
20
|
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); }
|
|
20
21
|
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; }
|
|
21
22
|
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; }
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
var _DivComponent = function DivComponent(props) {
|
|
24
|
+
(0, _util.checkPropTypes)(_DivComponent, props);
|
|
25
|
+
var innerRef = props.innerRef,
|
|
26
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
25
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
26
28
|
ref: innerRef
|
|
27
29
|
}));
|
|
28
30
|
};
|
|
29
|
-
|
|
31
|
+
_DivComponent.propTypes = {
|
|
30
32
|
innerRef: _propTypes["default"].ref
|
|
31
33
|
};
|
|
32
|
-
var Div = (0, _Spottable["default"])(
|
|
34
|
+
var Div = (0, _Spottable["default"])(_DivComponent);
|
|
33
35
|
var SpottablePicker = exports.SpottablePicker = (0, _kind["default"])({
|
|
34
36
|
name: 'SpottablePicker',
|
|
35
37
|
propTypes: {
|
|
@@ -39,18 +41,18 @@ var SpottablePicker = exports.SpottablePicker = (0, _kind["default"])({
|
|
|
39
41
|
pickerOrientation: _propTypes2["default"].string
|
|
40
42
|
},
|
|
41
43
|
computed: {
|
|
42
|
-
selectionKeys: function selectionKeys(
|
|
43
|
-
var changedBy =
|
|
44
|
-
disabled =
|
|
45
|
-
pickerOrientation =
|
|
44
|
+
selectionKeys: function selectionKeys(_ref) {
|
|
45
|
+
var changedBy = _ref.changedBy,
|
|
46
|
+
disabled = _ref.disabled,
|
|
47
|
+
pickerOrientation = _ref.pickerOrientation;
|
|
46
48
|
if (disabled || pickerOrientation === 'horizontal' && changedBy === 'enter') return;
|
|
47
49
|
return pickerOrientation === 'horizontal' ? [37, 39] : [38, 40];
|
|
48
50
|
}
|
|
49
51
|
},
|
|
50
|
-
render: function render(
|
|
51
|
-
var containerRef =
|
|
52
|
-
selectionKeys =
|
|
53
|
-
rest = _objectWithoutProperties(
|
|
52
|
+
render: function render(_ref2) {
|
|
53
|
+
var containerRef = _ref2.containerRef,
|
|
54
|
+
selectionKeys = _ref2.selectionKeys,
|
|
55
|
+
rest = _objectWithoutProperties(_ref2, _excluded2);
|
|
54
56
|
delete rest.changedBy;
|
|
55
57
|
delete rest.pickerOrientation;
|
|
56
58
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = exports.SharedStateDecorator = exports.SharedState = void 0;
|
|
7
7
|
var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
|
|
8
|
+
var _util = require("@enact/core/util");
|
|
8
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
10
|
var _react = require("react");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -60,7 +61,8 @@ var SharedStateDecorator = exports.SharedStateDecorator = (0, _hoc["default"])(d
|
|
|
60
61
|
updateOnMount = config.updateOnMount;
|
|
61
62
|
|
|
62
63
|
// eslint-disable-next-line no-shadow
|
|
63
|
-
var
|
|
64
|
+
var _SharedStateDecorator = function SharedStateDecorator(props) {
|
|
65
|
+
(0, _util.checkPropTypes)(_SharedStateDecorator, props);
|
|
64
66
|
var context = (0, _react.useContext)(SharedState);
|
|
65
67
|
var data = (0, _react.useRef)({});
|
|
66
68
|
var _useState = (0, _react.useState)(false),
|
|
@@ -128,8 +130,8 @@ var SharedStateDecorator = exports.SharedStateDecorator = (0, _hoc["default"])(d
|
|
|
128
130
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread({}, wrappedComponentProps))
|
|
129
131
|
});
|
|
130
132
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
+
_SharedStateDecorator.displayName = 'SharedStateDecorator';
|
|
134
|
+
_SharedStateDecorator.propTypes = {
|
|
133
135
|
/**
|
|
134
136
|
* Prevents the component from setting or restoring any framework shared state.
|
|
135
137
|
*
|
|
@@ -139,6 +141,6 @@ var SharedStateDecorator = exports.SharedStateDecorator = (0, _hoc["default"])(d
|
|
|
139
141
|
*/
|
|
140
142
|
noSharedState: _propTypes["default"].bool
|
|
141
143
|
};
|
|
142
|
-
return
|
|
144
|
+
return _SharedStateDecorator;
|
|
143
145
|
});
|
|
144
146
|
var _default = exports["default"] = SharedStateDecorator;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enact/limestone",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Large-screen/TV support library for Enact, containing a variety of UI components.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,20 +39,20 @@
|
|
|
39
39
|
"screenTypes": "ThemeDecorator/screenTypes.json"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@enact/core": "^5.
|
|
43
|
-
"@enact/i18n": "^5.
|
|
44
|
-
"@enact/spotlight": "^5.
|
|
45
|
-
"@enact/ui": "^5.
|
|
46
|
-
"@enact/webos": "^5.
|
|
47
|
-
"@enovaui/core-tokens": "^0.
|
|
48
|
-
"@enovaui/webos-tokens": "^0.
|
|
42
|
+
"@enact/core": "^5.5.0",
|
|
43
|
+
"@enact/i18n": "^5.5.0",
|
|
44
|
+
"@enact/spotlight": "^5.5.0",
|
|
45
|
+
"@enact/ui": "^5.5.0",
|
|
46
|
+
"@enact/webos": "^5.5.0",
|
|
47
|
+
"@enovaui/core-tokens": "^0.15.0",
|
|
48
|
+
"@enovaui/webos-tokens": "^0.15.0",
|
|
49
49
|
"classnames": "^2.5.1",
|
|
50
50
|
"ilib": "^14.21.3",
|
|
51
51
|
"invariant": "^2.2.4",
|
|
52
52
|
"prop-types": "^15.8.1",
|
|
53
53
|
"ramda": "^0.32.0",
|
|
54
|
-
"react": "^19.2.
|
|
55
|
-
"react-dom": "^19.2.
|
|
54
|
+
"react": "^19.2.6",
|
|
55
|
+
"react-dom": "^19.2.6",
|
|
56
56
|
"warning": "^4.0.3"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
@@ -60,7 +60,10 @@
|
|
|
60
60
|
},
|
|
61
61
|
"overrides": {
|
|
62
62
|
"autolinker": "^4.0.0",
|
|
63
|
-
"vue-template-compiler": "@vue/compiler-sfc@3.4.31"
|
|
63
|
+
"vue-template-compiler": "@vue/compiler-sfc@3.4.31",
|
|
64
|
+
"prop-types": {
|
|
65
|
+
"react-is": "^19.2.3"
|
|
66
|
+
}
|
|
64
67
|
},
|
|
65
68
|
"devDependencies": {
|
|
66
69
|
"@enact/docs-utils": "^0.4.17",
|
package/styles/colors.less
CHANGED
|
@@ -374,6 +374,7 @@
|
|
|
374
374
|
@lime-slider-track-active-color: var(--semantic-color-surface-accent);
|
|
375
375
|
@lime-slider-track-active-focused-color: var(--semantic-color-surface-accent);
|
|
376
376
|
@lime-slider-handle-color: var(--semantic-color-surface-default-handle);
|
|
377
|
+
@lime-slider-handle-colorPicker-focused-color: var(--semantic-color-surface-white);
|
|
377
378
|
@lime-slider-handle-border-color: transparent;
|
|
378
379
|
@lime-slider-handle-focused-border-color: @lime-slider-handle-border-color;
|
|
379
380
|
@lime-slider-handle-focused-color: var(--semantic-color-surface-default-focused);
|
package/styles/variables.less
CHANGED
|
@@ -335,6 +335,7 @@
|
|
|
335
335
|
@lime-alert-overlay-body-padding: 0 var(--primitive-spacing-84);
|
|
336
336
|
@lime-alert-overlay-image-padding: 0 var(--primitive-spacing-84);
|
|
337
337
|
@lime-alert-overlay-width: 1128px;
|
|
338
|
+
@lime-alert-overlay-max-width: calc(100vw - 2 * @lime-popup-position-corner-margin);
|
|
338
339
|
|
|
339
340
|
// AlertImage
|
|
340
341
|
// ---------------------------------------
|
|
@@ -1054,7 +1055,6 @@
|
|
|
1054
1055
|
@lime-slider-knob-height: @lime-slider-knob-width;
|
|
1055
1056
|
@lime-slider-knob-height-large: @lime-slider-knob-height;
|
|
1056
1057
|
@lime-slider-tooltip-offset: (@lime-slider-knob-height / 2);
|
|
1057
|
-
@lime-slider-knob-resting-state-scale: 1;
|
|
1058
1058
|
@lime-slider-min-max-margin-top: var(--primitive-spacing-24);
|
|
1059
1059
|
@lime-slider-min-max-font-size: var(--primitive-font-size-48);
|
|
1060
1060
|
@lime-slider-min-max-font-weight: var(--primitive-font-weight-regular);
|
|
@@ -71,7 +71,8 @@ var directionToFocus = {
|
|
|
71
71
|
* @ui
|
|
72
72
|
* @private
|
|
73
73
|
*/
|
|
74
|
-
var
|
|
74
|
+
var _HoverToScrollBase = function HoverToScrollBase(props) {
|
|
75
|
+
(0, _util.checkPropTypes)(_HoverToScrollBase, props);
|
|
75
76
|
var direction = props.direction,
|
|
76
77
|
scrollContainer = props.scrollContainerHandle.current,
|
|
77
78
|
_props$scrollObserver = props.scrollObserver,
|
|
@@ -150,7 +151,8 @@ var HoverToScrollBase = function HoverToScrollBase(props) {
|
|
|
150
151
|
hoverToScrollMultiplier[direction]; // a scrolling speed factor
|
|
151
152
|
var startTime = (0, _util.perfNow)();
|
|
152
153
|
mutableRef.current.hoveredPosition = position;
|
|
153
|
-
mutableRef.current.stopScrollByHover =
|
|
154
|
+
mutableRef.current.stopScrollByHover = scrollContainer.scrolling; // stop scrollByHover when it is in scrolling
|
|
155
|
+
|
|
154
156
|
var _scrollByHover = function scrollByHover(currentTime) {
|
|
155
157
|
if (!mutableRef.current.stopScrollByHover) {
|
|
156
158
|
var elapsed = (currentTime - startTime) / 1000;
|
|
@@ -232,8 +234,8 @@ var HoverToScrollBase = function HoverToScrollBase(props) {
|
|
|
232
234
|
children: [before ? renderHoverArea('before') : null, after ? renderHoverArea('after') : null]
|
|
233
235
|
});
|
|
234
236
|
};
|
|
235
|
-
|
|
236
|
-
|
|
237
|
+
_HoverToScrollBase.displayName = 'HoverToScrollBase';
|
|
238
|
+
_HoverToScrollBase.propTypes = /** @lends limestone/useScroll.HoverToScroll.HoverToScrollBase.prototype */{
|
|
237
239
|
direction: _propTypes["default"].string,
|
|
238
240
|
scrollContainerHandle: _propTypes["default"].object
|
|
239
241
|
};
|
|
@@ -246,23 +248,24 @@ HoverToScrollBase.propTypes = /** @lends limestone/useScroll.HoverToScroll.Hover
|
|
|
246
248
|
* @ui
|
|
247
249
|
* @private
|
|
248
250
|
*/
|
|
249
|
-
var
|
|
250
|
-
|
|
251
|
-
|
|
251
|
+
var _HoverToScroll = exports.HoverToScroll = function HoverToScroll(props) {
|
|
252
|
+
(0, _util.checkPropTypes)(_HoverToScroll, props);
|
|
253
|
+
var scrollContainerHandle = props.scrollContainerHandle,
|
|
254
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
252
255
|
return scrollContainerHandle ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
253
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
256
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_HoverToScrollBase, _objectSpread(_objectSpread({
|
|
254
257
|
scrollContainerHandle: scrollContainerHandle
|
|
255
258
|
}, rest), {}, {
|
|
256
259
|
direction: "horizontal"
|
|
257
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
260
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_HoverToScrollBase, _objectSpread(_objectSpread({
|
|
258
261
|
scrollContainerHandle: scrollContainerHandle
|
|
259
262
|
}, rest), {}, {
|
|
260
263
|
direction: "vertical"
|
|
261
264
|
}))]
|
|
262
265
|
}) : null;
|
|
263
266
|
};
|
|
264
|
-
|
|
265
|
-
|
|
267
|
+
_HoverToScroll.displayName = 'HoverToScroll';
|
|
268
|
+
_HoverToScroll.propTypes = /** @lends limestone/useScroll.HoverToScroll.prototype */{
|
|
266
269
|
scrollContainerHandle: _propTypes["default"].object
|
|
267
270
|
};
|
|
268
|
-
var _default = exports["default"] =
|
|
271
|
+
var _default = exports["default"] = _HoverToScroll;
|
package/useScroll/Scrollbar.js
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = exports.ScrollbarBase = exports.Scrollbar = void 0;
|
|
7
7
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
|
+
var _util = require("@enact/core/util");
|
|
8
9
|
var _Scrollbar = require("@enact/ui/useScroll/Scrollbar");
|
|
9
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
11
|
var _react = require("react");
|
|
@@ -92,20 +93,23 @@ var useThemeScrollbar = function useThemeScrollbar(props) {
|
|
|
92
93
|
* @ui
|
|
93
94
|
* @private
|
|
94
95
|
*/
|
|
95
|
-
var ScrollbarBase = exports.ScrollbarBase = /*#__PURE__*/(0, _react.memo)(function (
|
|
96
|
-
var
|
|
97
|
-
css
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
96
|
+
var ScrollbarBase = exports.ScrollbarBase = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
97
|
+
var scrollbarBaseProps = (0, _util.setDefaultProps)(props, {
|
|
98
|
+
css: _ScrollbarModule["default"],
|
|
99
|
+
minThumbSize: 120,
|
|
100
|
+
vertical: true
|
|
101
|
+
});
|
|
102
|
+
(0, _util.checkPropTypes)(ScrollbarBase, scrollbarBaseProps);
|
|
103
|
+
var css = scrollbarBaseProps.css,
|
|
104
|
+
minThumbSize = scrollbarBaseProps.minThumbSize,
|
|
105
|
+
vertical = scrollbarBaseProps.vertical,
|
|
106
|
+
rest = _objectWithoutProperties(scrollbarBaseProps, _excluded3);
|
|
107
|
+
var propsForHook = _objectSpread({
|
|
104
108
|
css: css,
|
|
105
109
|
minThumbSize: minThumbSize,
|
|
106
110
|
vertical: vertical
|
|
107
111
|
}, rest);
|
|
108
|
-
var _useThemeScrollbar = useThemeScrollbar(
|
|
112
|
+
var _useThemeScrollbar = useThemeScrollbar(propsForHook),
|
|
109
113
|
restProps = _useThemeScrollbar.restProps,
|
|
110
114
|
scrollbarProps = _useThemeScrollbar.scrollbarProps,
|
|
111
115
|
scrollbarTrackProps = _useThemeScrollbar.scrollbarTrackProps;
|
|
@@ -30,11 +30,9 @@ var ScrollbarPlaceholder = exports.ScrollbarPlaceholder = function ScrollbarPlac
|
|
|
30
30
|
_useState2 = _slicedToArray(_useState, 2),
|
|
31
31
|
showPlaceholder = _useState2[0],
|
|
32
32
|
setShowPlaceholder = _useState2[1];
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
}, [showPlaceholder]);
|
|
33
|
+
if (showPlaceholder) {
|
|
34
|
+
setShowPlaceholder(false);
|
|
35
|
+
}
|
|
38
36
|
var resetFocus = (0, _react.useCallback)(function () {
|
|
39
37
|
setTimeout(function () {
|
|
40
38
|
if (!_spotlight["default"].getPointerMode() && !_spotlight["default"].getCurrent()) {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports["default"] = exports.ScrollbarTrackBase = exports.ScrollbarTrack = void 0;
|
|
7
7
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
8
|
var _keymap = require("@enact/core/keymap");
|
|
9
|
+
var _util = require("@enact/core/util");
|
|
9
10
|
var _Accelerator = _interopRequireDefault(require("@enact/spotlight/Accelerator"));
|
|
10
11
|
var _Spottable = _interopRequireDefault(require("@enact/spotlight/Spottable"));
|
|
11
12
|
var _AnnounceDecorator = require("@enact/ui/AnnounceDecorator");
|
|
@@ -43,7 +44,8 @@ var SpottableDiv = (0, _Spottable["default"])('div');
|
|
|
43
44
|
* @ui
|
|
44
45
|
* @private
|
|
45
46
|
*/
|
|
46
|
-
var
|
|
47
|
+
var _ScrollbarTrack = exports.ScrollbarTrackBase = exports.ScrollbarTrack = function ScrollbarTrack(props) {
|
|
48
|
+
(0, _util.checkPropTypes)(_ScrollbarTrack, props);
|
|
47
49
|
var ariaLabel = props['aria-label'],
|
|
48
50
|
cbAlertScrollbarTrack = props.cbAlertScrollbarTrack,
|
|
49
51
|
focusableScrollbar = props.focusableScrollbar,
|
|
@@ -132,8 +134,8 @@ var ScrollbarTrack = exports.ScrollbarTrackBase = exports.ScrollbarTrack = funct
|
|
|
132
134
|
}, "announce")]
|
|
133
135
|
}));
|
|
134
136
|
};
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
_ScrollbarTrack.displayName = 'ScrollbarTrack';
|
|
138
|
+
_ScrollbarTrack.propTypes = /** @lends limestone/useScroll.ScrollbarTrack.prototype */{
|
|
137
139
|
/**
|
|
138
140
|
* The aria label for the component.
|
|
139
141
|
*
|
|
@@ -199,11 +201,11 @@ ScrollbarTrack.propTypes = /** @lends limestone/useScroll.ScrollbarTrack.prototy
|
|
|
199
201
|
*/
|
|
200
202
|
vertical: _propTypes["default"].bool
|
|
201
203
|
};
|
|
202
|
-
|
|
204
|
+
_ScrollbarTrack.defaultProps = {
|
|
203
205
|
cbAlertScrollbarTrack: nop,
|
|
204
206
|
focusableScrollbar: false,
|
|
205
207
|
onInteractionForScroll: nop,
|
|
206
208
|
rtl: false,
|
|
207
209
|
vertical: true
|
|
208
210
|
};
|
|
209
|
-
var _default = exports["default"] =
|
|
211
|
+
var _default = exports["default"] = _ScrollbarTrack;
|
package/useScroll/useEvent.js
CHANGED
|
@@ -348,10 +348,12 @@ var useEventMonitor = exports.useEventMonitor = function useEventMonitor(props,
|
|
|
348
348
|
scrollByPageOnPointerMode: scrollByPageOnPointerMode
|
|
349
349
|
}
|
|
350
350
|
});
|
|
351
|
-
lastPointer = lastPointerProp;
|
|
352
351
|
|
|
353
352
|
// Hooks
|
|
354
353
|
|
|
354
|
+
(0, _react.useEffect)(function () {
|
|
355
|
+
lastPointer = lastPointerProp;
|
|
356
|
+
}, [lastPointerProp]);
|
|
355
357
|
(0, _react.useEffect)(function () {
|
|
356
358
|
var setMonitorEventTarget = function setMonitorEventTarget(target) {
|
|
357
359
|
scrollers.set(mutableRef.current.pageKeyHandlerObj, target);
|
|
@@ -516,7 +518,10 @@ var useEventVoice = exports.useEventVoice = function useEventVoice(props, instan
|
|
|
516
518
|
scrollVertically = verticalDirection.includes(scroll),
|
|
517
519
|
direction = directionFactor ? -1 : 1,
|
|
518
520
|
pageDistance = direction * (scrollVertically ? bounds.clientHeight : bounds.clientWidth) * paginationPageMultiplier;
|
|
519
|
-
|
|
521
|
+
var handleRef = scrollContainerHandle;
|
|
522
|
+
if (handleRef.current) {
|
|
523
|
+
handleRef.current.lastInputType = 'pageKey';
|
|
524
|
+
}
|
|
520
525
|
if (direction !== scrollContainerHandle.current.wheelDirection) {
|
|
521
526
|
scrollContainerHandle.current.isScrollAnimationTargetAccumulated = false;
|
|
522
527
|
scrollContainerHandle.current.wheelDirection = direction;
|
package/useScroll/useScroll.js
CHANGED
|
@@ -182,7 +182,10 @@ var useThemeScroll = function useThemeScroll(props, instances) {
|
|
|
182
182
|
direction = isForward ? 1 : -1,
|
|
183
183
|
pageSize = isVerticalScrollBar ? bounds.clientHeight : bounds.clientWidth,
|
|
184
184
|
distance = pageSize * (isPagination ? paginationPageMultiplier : arrowKeyMultiplier);
|
|
185
|
-
|
|
185
|
+
var handleRef = scrollContainerHandle;
|
|
186
|
+
if (handleRef.current) {
|
|
187
|
+
handleRef.current.lastInputType = inputType;
|
|
188
|
+
}
|
|
186
189
|
if (direction !== wheelDirection) {
|
|
187
190
|
scrollContainerHandle.current.isScrollAnimationTargetAccumulated = false;
|
|
188
191
|
scrollContainerHandle.current.wheelDirection = direction;
|
|
@@ -258,7 +261,10 @@ var useThemeScroll = function useThemeScroll(props, instances) {
|
|
|
258
261
|
// oddly, Scroller manages scrollContainerHandle.current.bounds so if we don't update it here (it is also
|
|
259
262
|
// updated in calculateAndScrollTo, but we might not have made it to that point), it will be
|
|
260
263
|
// out of date when we land back in this method next time.
|
|
261
|
-
|
|
264
|
+
var handleRef = scrollContainerHandle;
|
|
265
|
+
if (handleRef.current) {
|
|
266
|
+
handleRef.current.bounds.scrollHeight = scrollContainerHandle.current.getScrollBounds().scrollHeight;
|
|
267
|
+
}
|
|
262
268
|
}
|
|
263
269
|
function handleResizeWindow() {
|
|
264
270
|
var focusedItem = _spotlight["default"].getCurrent();
|
|
@@ -468,6 +474,7 @@ var useScroll = exports.useScroll = function useScroll(props) {
|
|
|
468
474
|
scrollContentWrapper = _useScrollBase.scrollContentWrapper,
|
|
469
475
|
scrollObserver = _useScrollBase.scrollObserver;
|
|
470
476
|
assignProperties('scrollContainerProps', {
|
|
477
|
+
// eslint-disable-line react-hooks/refs
|
|
471
478
|
className: [className, _useScrollModule["default"].scroll, _OverscrollEffectModule["default"].scroll, focusableScrollbar ? _useScrollModule["default"].focusableScrollbar : null, focusableScrollbar && isVerticalScrollbarVisible ? _useScrollModule["default"].verticalPadding : null, isVerticalScrollbarVisible && isHorizontalScrollbarVisible ? _useScrollModule["default"].bidirectional : null],
|
|
472
479
|
style: style,
|
|
473
480
|
'data-spotlight-container': spotlightContainer,
|
|
@@ -512,6 +519,7 @@ var useScroll = exports.useScroll = function useScroll(props) {
|
|
|
512
519
|
scrollbarHandle: verticalScrollbarHandle
|
|
513
520
|
}));
|
|
514
521
|
assignProperties('hoverToScrollProps', {
|
|
522
|
+
// eslint-disable-line react-hooks/refs
|
|
515
523
|
scrollContainerHandle: scrollContainerHandle,
|
|
516
524
|
scrollObserver: scrollObserver
|
|
517
525
|
});
|