@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.
Files changed (90) hide show
  1. package/.github/workflows/ci-reusable.yml +2 -2
  2. package/Alert/Alert.d.ts +9 -0
  3. package/Alert/Alert.js +35 -4
  4. package/Alert/Alert.module.css +12 -1
  5. package/Alert/tests/Alert-specs.js +91 -0
  6. package/Button/tests/Button-specs.js +26 -0
  7. package/CHANGELOG.md +34 -0
  8. package/Card/Card.d.ts +4 -4
  9. package/Card/Card.js +7 -8
  10. package/Card/tests/Card-specs.js +39 -5
  11. package/CheckboxItem/CheckboxItem.js +6 -4
  12. package/Chips/Chip.js +12 -6
  13. package/Chips/Chips.js +12 -6
  14. package/Chips/tests/Chip-specs.js +25 -5
  15. package/Chips/tests/Chips-specs.js +12 -2
  16. package/ColorPicker/ColorPicker.js +27 -25
  17. package/ContextualPopupDecorator/ContextualPopupDecorator.js +32 -22
  18. package/DayPicker/DaySelectorDecorator.js +12 -7
  19. package/Dropdown/Dropdown.module.css +4 -0
  20. package/Dropdown/DropdownList.js +74 -53
  21. package/FlexiblePopupPanels/useNavButtonFocus.js +7 -10
  22. package/Heading/Heading.d.ts +1 -1
  23. package/Heading/Heading.js +2 -2
  24. package/Icon/Icon.d.ts +1 -0
  25. package/Icon/Icon.js +1 -0
  26. package/Icon/IconList.js +2 -0
  27. package/IconItem/IconItem.module.css +3 -3
  28. package/IconItem/tests/IconItem-specs.js +30 -1
  29. package/Image/Image.js +6 -4
  30. package/Input/Input.js +12 -1
  31. package/Input/InputField.js +75 -24
  32. package/Input/InputField.module.css +262 -45
  33. package/Input/InputFieldDecoratorIcon.js +1 -0
  34. package/Input/InputFieldSpotlightDecorator.js +53 -8
  35. package/Input/index.d.ts +105 -93
  36. package/Input/tests/Input-specs.js +26 -0
  37. package/Input/tests/InputField-specs.js +149 -3
  38. package/Input/tests/InputPopup-specs.js +1 -1
  39. package/KeyGuide/KeyGuide.js +29 -27
  40. package/MediaOverlay/tests/MediaOverlay-specs.js +29 -0
  41. package/MediaPlayer/tests/util-specs.js +4 -1
  42. package/PageViews/PageViews.js +134 -69
  43. package/PageViews/PageViews.module.css +3 -0
  44. package/PageViews/PageViewsRouter.js +91 -42
  45. package/PageViews/tests/PageViews-specs.js +87 -0
  46. package/Panels/Header.js +6 -4
  47. package/Popup/Popup.js +5 -4
  48. package/PopupTabLayout/PopupTabLayout.js +11 -9
  49. package/RadioItem/RadioItem.js +7 -5
  50. package/Scroller/EditableWrapper.js +17 -14
  51. package/Scroller/Scroller.js +11 -10
  52. package/Scroller/useThemeScroller.js +3 -3
  53. package/Slider/Slider.d.ts +4 -0
  54. package/Slider/Slider.js +40 -16
  55. package/Slider/Slider.module.css +150 -0
  56. package/Slider/SliderBehaviorDecorator.js +16 -14
  57. package/Slider/tests/Slider-specs.js +51 -0
  58. package/Slider/utils.js +23 -7
  59. package/Spinner/Spinner.js +10 -8
  60. package/TabLayout/RefocusDecorator.js +14 -12
  61. package/TabLayout/tests/TabGroup-specs.js +1 -1
  62. package/ThemeDecorator/AccessibilityDecorator.js +12 -11
  63. package/ThemeDecorator/I18nFontDecorator.js +6 -4
  64. package/ThemeDecorator/ThemeDecorator.d.ts +7 -0
  65. package/ThemeDecorator/ThemeDecorator.js +24 -9
  66. package/TimePicker/TimePickerBase.js +5 -3
  67. package/TooltipDecorator/TooltipDecorator.js +12 -7
  68. package/TooltipDecorator/tests/useTooltip-specs.js +5 -2
  69. package/VideoPlayer/VideoPlayer.js +25 -24
  70. package/VirtualList/VirtualList.js +20 -18
  71. package/VirtualList/useSpotlight.js +1 -1
  72. package/fonts/Limestone_Icons.ttf +0 -0
  73. package/internal/AsyncRenderChildren/AsyncRenderChildren.js +9 -5
  74. package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +4 -1
  75. package/internal/DateTime/DateTimeDecorator.js +5 -4
  76. package/internal/Panels/PanelsRouter.js +35 -29
  77. package/internal/Panels/useAutoFocus.js +10 -6
  78. package/internal/Panels/useFocusOnTransition.js +4 -3
  79. package/internal/Picker/Picker.js +7 -5
  80. package/internal/Picker/SpottablePicker.js +15 -13
  81. package/internal/SharedStateDecorator/SharedStateDecorator.js +6 -4
  82. package/package.json +14 -11
  83. package/styles/colors.less +1 -0
  84. package/styles/variables.less +1 -1
  85. package/useScroll/HoverToScroll.js +15 -12
  86. package/useScroll/Scrollbar.js +14 -10
  87. package/useScroll/ScrollbarPlaceholder.js +3 -5
  88. package/useScroll/ScrollbarTrack.js +7 -5
  89. package/useScroll/useEvent.js +7 -2
  90. 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, _react.useRef)(index);
40
- var reverse = (0, _react.useRef)(rtl);
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
- var prev = {
43
- reverseTransition: reverse.current,
44
- prevIndex: prevIndex.current
45
- };
46
- if (prevIndex.current !== index) {
47
- reverse.current = rtl ? index > prevIndex.current : index < prevIndex.current;
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 prev;
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 PanelsProvider = function PanelsProvider(_ref) {
70
- var _ref$autoFocus = _ref.autoFocus,
71
- autoFocus = _ref$autoFocus === void 0 ? 'default-element' : _ref$autoFocus,
72
- children = _ref.children,
73
- componentRef = _ref.componentRef,
74
- spotlightId = _ref['data-spotlight-id'],
75
- _ref$index = _ref.index,
76
- index = _ref$index === void 0 ? 0 : _ref$index,
77
- onTransition = _ref.onTransition,
78
- onWillTransition = _ref.onWillTransition,
79
- rtl = _ref.rtl,
80
- _ref$subtitle = _ref.subtitle,
81
- subtitle = _ref$subtitle === void 0 ? '' : _ref$subtitle,
82
- _ref$title = _ref.title,
83
- title = _ref$title === void 0 ? '' : _ref$title,
84
- rest = _objectWithoutProperties(_ref, _excluded);
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
- PanelsProvider.propTypes = /** @lends limestone/internal/Panels.PanelsRouter.prototype */{
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 PanelsProvider;
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(_ref2) {
73
- var _ref2$autoFocus = _ref2.autoFocus,
74
- autoFocus = _ref2$autoFocus === void 0 ? 'last-focused' : _ref2$autoFocus,
75
- componentRef = _ref2.componentRef,
76
- hideChildren = _ref2.hideChildren,
77
- rest = _objectWithoutProperties(_ref2, _excluded);
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 _useRef = (0, _react.useRef)({
36
+ var current = (0, _react.useMemo)(function () {
37
+ return {
37
38
  timerId: null
38
- }),
39
- current = _useRef.current;
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 DivComponent = function DivComponent(_ref) {
67
- var ref = _ref.ref,
68
- rest = _objectWithoutProperties(_ref, _excluded);
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
- DivComponent.propTypes = {
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"])(DivComponent);
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 DivComponent = function DivComponent(_ref) {
23
- var innerRef = _ref.innerRef,
24
- rest = _objectWithoutProperties(_ref, _excluded);
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
- DivComponent.propTypes = {
31
+ _DivComponent.propTypes = {
30
32
  innerRef: _propTypes["default"].ref
31
33
  };
32
- var Div = (0, _Spottable["default"])(DivComponent);
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(_ref2) {
43
- var changedBy = _ref2.changedBy,
44
- disabled = _ref2.disabled,
45
- pickerOrientation = _ref2.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(_ref3) {
51
- var containerRef = _ref3.containerRef,
52
- selectionKeys = _ref3.selectionKeys,
53
- rest = _objectWithoutProperties(_ref3, _excluded2);
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 SharedStateDecorator = function SharedStateDecorator(props) {
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
- SharedStateDecorator.displayName = 'SharedStateDecorator';
132
- SharedStateDecorator.propTypes = {
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 SharedStateDecorator;
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.9.3",
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.4.3",
43
- "@enact/i18n": "^5.4.3",
44
- "@enact/spotlight": "^5.4.3",
45
- "@enact/ui": "^5.4.3",
46
- "@enact/webos": "^5.4.3",
47
- "@enovaui/core-tokens": "^0.14.0",
48
- "@enovaui/webos-tokens": "^0.14.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.5",
55
- "react-dom": "^19.2.5",
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",
@@ -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);
@@ -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 HoverToScrollBase = function HoverToScrollBase(props) {
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 = false;
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
- HoverToScrollBase.displayName = 'HoverToScrollBase';
236
- HoverToScrollBase.propTypes = /** @lends limestone/useScroll.HoverToScroll.HoverToScrollBase.prototype */{
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 HoverToScroll = exports.HoverToScroll = function HoverToScroll(_ref2) {
250
- var scrollContainerHandle = _ref2.scrollContainerHandle,
251
- rest = _objectWithoutProperties(_ref2, _excluded);
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)(HoverToScrollBase, _objectSpread(_objectSpread({
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)(HoverToScrollBase, _objectSpread(_objectSpread({
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
- HoverToScroll.displayName = 'HoverToScroll';
265
- HoverToScroll.propTypes = /** @lends limestone/useScroll.HoverToScroll.prototype */{
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"] = HoverToScroll;
271
+ var _default = exports["default"] = _HoverToScroll;
@@ -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 (_ref) {
96
- var _ref$css = _ref.css,
97
- css = _ref$css === void 0 ? _ScrollbarModule["default"] : _ref$css,
98
- _ref$minThumbSize = _ref.minThumbSize,
99
- minThumbSize = _ref$minThumbSize === void 0 ? 120 : _ref$minThumbSize,
100
- _ref$vertical = _ref.vertical,
101
- vertical = _ref$vertical === void 0 ? true : _ref$vertical,
102
- rest = _objectWithoutProperties(_ref, _excluded3);
103
- var props = _objectSpread({
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(props),
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
- (0, _react.useEffect)(function () {
34
- if (showPlaceholder) {
35
- setShowPlaceholder(false);
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 ScrollbarTrack = exports.ScrollbarTrackBase = exports.ScrollbarTrack = function ScrollbarTrack(props) {
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
- ScrollbarTrack.displayName = 'ScrollbarTrack';
136
- ScrollbarTrack.propTypes = /** @lends limestone/useScroll.ScrollbarTrack.prototype */{
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
- ScrollbarTrack.defaultProps = {
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"] = ScrollbarTrack;
211
+ var _default = exports["default"] = _ScrollbarTrack;
@@ -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
- scrollContainerHandle.current.lastInputType = 'pageKey';
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;
@@ -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
- scrollContainerHandle.current.lastInputType = inputType;
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
- scrollContainerHandle.current.bounds.scrollHeight = scrollContainerHandle.current.getScrollBounds().scrollHeight;
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
  });