@enact/limestone 1.3.0 → 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 (200) hide show
  1. package/.github/workflows/ci-branch.yml +21 -0
  2. package/.github/workflows/ci-pull-request.yml +16 -0
  3. package/.github/workflows/ci-reusable.yml +73 -0
  4. package/ActionGuide/ActionGuide.d.ts +5 -4
  5. package/ActionGuide/ActionGuide.module.css +1 -1
  6. package/Alert/Alert.d.ts +13 -2
  7. package/Alert/Alert.js +39 -5
  8. package/Alert/Alert.module.css +48 -1
  9. package/Alert/tests/Alert-specs.js +91 -0
  10. package/BodyText/BodyText.d.ts +5 -4
  11. package/BodyText/BodyText.module.css +7 -7
  12. package/Button/Button.d.ts +17 -12
  13. package/Button/Button.js +1 -1
  14. package/Button/Button.module.css +195 -268
  15. package/Button/tests/Button-specs.js +26 -0
  16. package/CHANGELOG.md +254 -0
  17. package/Card/Card.d.ts +40 -12
  18. package/Card/Card.js +164 -28
  19. package/Card/Card.module.css +277 -58
  20. package/Card/tests/Card-specs.js +67 -3
  21. package/Checkbox/Checkbox.d.ts +8 -7
  22. package/Checkbox/Checkbox.js +3 -1
  23. package/Checkbox/Checkbox.module.css +213 -120
  24. package/Checkbox/tests/Checkbox-specs.js +1 -1
  25. package/CheckboxItem/CheckboxItem.d.ts +22 -7
  26. package/CheckboxItem/CheckboxItem.js +71 -4
  27. package/Chips/Chip.js +72 -13
  28. package/Chips/Chip.module.css +3 -3
  29. package/Chips/Chips.js +37 -17
  30. package/Chips/Chips.module.css +1 -1
  31. package/Chips/tests/Chip-specs.js +43 -13
  32. package/Chips/tests/Chips-specs.js +31 -21
  33. package/ColorPicker/ColorPicker.js +27 -25
  34. package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +4 -5
  35. package/ContextualPopupDecorator/ContextualPopup.module.css +34 -34
  36. package/ContextualPopupDecorator/ContextualPopupDecorator.js +567 -549
  37. package/DatePicker/DatePicker.d.ts +4 -5
  38. package/DayPicker/DayPicker.d.ts +8 -7
  39. package/DayPicker/DaySelectorDecorator.js +12 -7
  40. package/Dropdown/Dropdown.d.ts +11 -13
  41. package/Dropdown/Dropdown.module.css +13 -9
  42. package/Dropdown/DropdownList.js +80 -54
  43. package/FixedPopupPanels/FixedPopupPanels.d.ts +4 -2
  44. package/FixedPopupPanels/FixedPopupPanels.module.css +18 -18
  45. package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +23 -23
  46. package/FlexiblePopupPanels/useNavButtonFocus.js +7 -10
  47. package/FormCheckboxItem/FormCheckboxItem.d.ts +5 -4
  48. package/Heading/Heading.d.ts +9 -8
  49. package/Heading/Heading.js +2 -2
  50. package/Heading/Heading.module.css +5 -5
  51. package/Icon/Icon.d.ts +15 -4
  52. package/Icon/Icon.js +49 -2
  53. package/Icon/Icon.module.css +1 -1
  54. package/Icon/IconList.js +27 -1
  55. package/IconItem/IconItem.d.ts +13 -12
  56. package/IconItem/IconItem.js +15 -0
  57. package/IconItem/IconItem.module.css +107 -1
  58. package/IconItem/tests/IconItem-specs.js +30 -1
  59. package/Image/Image.d.ts +5 -4
  60. package/Image/Image.js +6 -4
  61. package/ImageItem/ImageItem.d.ts +11 -10
  62. package/ImageItem/ImageItem.js +37 -31
  63. package/ImageItem/ImageItem.module.css +30 -30
  64. package/ImageItem/tests/ImageItem-specs.js +3 -10
  65. package/Input/Input.js +21 -3
  66. package/Input/Input.module.css +37 -8
  67. package/Input/InputField.js +79 -24
  68. package/Input/InputField.module.css +273 -41
  69. package/Input/InputFieldDecoratorIcon.js +1 -0
  70. package/Input/InputFieldSpotlightDecorator.js +257 -228
  71. package/Input/index.d.ts +120 -111
  72. package/Input/tests/Input-specs.js +26 -0
  73. package/Input/tests/InputField-specs.js +170 -3
  74. package/Input/tests/InputPopup-specs.js +1 -1
  75. package/Item/Item.d.ts +16 -9
  76. package/Item/Item.js +20 -2
  77. package/Item/Item.module.css +1 -1
  78. package/KeyGuide/KeyGuide.d.ts +8 -7
  79. package/KeyGuide/KeyGuide.js +29 -27
  80. package/KeyGuide/KeyGuide.module.css +25 -1
  81. package/Marquee/Marquee.d.ts +2 -4
  82. package/MediaOverlay/MediaOverlay.d.ts +12 -11
  83. package/MediaOverlay/MediaOverlay.js +43 -21
  84. package/MediaOverlay/MediaOverlay.module.css +114 -15
  85. package/MediaOverlay/tests/MediaOverlay-specs.js +29 -0
  86. package/MediaPlayer/MediaControls.js +195 -13
  87. package/MediaPlayer/MediaControls.module.css +3 -2
  88. package/MediaPlayer/MediaSlider.module.css +7 -20
  89. package/MediaPlayer/index.d.ts +59 -7
  90. package/MediaPlayer/tests/util-specs.js +4 -1
  91. package/PageViews/PageViews.js +232 -82
  92. package/PageViews/PageViews.module.css +3 -0
  93. package/PageViews/PageViewsRouter.js +100 -42
  94. package/PageViews/tests/PageViews-specs.js +171 -0
  95. package/Panels/Header.js +54 -34
  96. package/Panels/Header.module.css +83 -31
  97. package/Panels/Panel.module.css +1 -1
  98. package/Panels/index.d.ts +7 -8
  99. package/Picker/Picker.d.ts +4 -5
  100. package/Picker/Picker.module.css +2 -2
  101. package/Popup/Popup.js +245 -242
  102. package/Popup/Popup.module.css +24 -24
  103. package/PopupTabLayout/PopupTabLayout.d.ts +5 -7
  104. package/PopupTabLayout/PopupTabLayout.js +26 -18
  105. package/PopupTabLayout/PopupTabLayout.module.css +53 -16
  106. package/PopupTabLayout/PopupTabLayoutStateContext.js +8 -0
  107. package/ProgressBar/ProgressBar.d.ts +5 -4
  108. package/ProgressBar/ProgressBarTooltip.module.css +12 -12
  109. package/ProgressButton/ProgressButton.d.ts +4 -5
  110. package/QuickGuidePanels/QuickGuidePanels.module.css +2 -2
  111. package/RadioItem/RadioItem.d.ts +18 -5
  112. package/RadioItem/RadioItem.js +69 -2
  113. package/RadioItem/RadioItem.module.css +36 -36
  114. package/RangePicker/RangePicker.module.css +2 -2
  115. package/Scroller/EditableWrapper.js +28 -18
  116. package/Scroller/Scroller.d.ts +20 -16
  117. package/Scroller/Scroller.js +20 -13
  118. package/Scroller/Scroller.module.css +4 -4
  119. package/Scroller/useThemeScroller.js +3 -3
  120. package/Slider/Slider.d.ts +20 -14
  121. package/Slider/Slider.js +71 -14
  122. package/Slider/Slider.module.css +464 -91
  123. package/Slider/SliderBehaviorDecorator.js +16 -14
  124. package/Slider/tests/Slider-specs.js +53 -1
  125. package/Slider/utils.js +23 -7
  126. package/Spinner/Spinner.d.ts +5 -4
  127. package/Spinner/Spinner.js +10 -8
  128. package/Spinner/Spinner.module.css +9 -9
  129. package/Steps/Steps.d.ts +5 -4
  130. package/Steps/Steps.js +9 -5
  131. package/Switch/Switch.d.ts +8 -7
  132. package/Switch/Switch.module.css +100 -13
  133. package/SwitchItem/SwitchItem.d.ts +9 -6
  134. package/TabLayout/RefocusDecorator.js +26 -18
  135. package/TabLayout/TabGroup.js +3 -2
  136. package/TabLayout/TabGroup.module.css +2 -2
  137. package/TabLayout/TabLayout.d.ts +6 -0
  138. package/TabLayout/TabLayout.js +11 -1
  139. package/TabLayout/TabLayout.module.css +18 -0
  140. package/TabLayout/tests/TabGroup-specs.js +1 -1
  141. package/TabLayout/tests/TabLayout-specs.js +52 -0
  142. package/ThemeDecorator/AccessibilityDecorator.js +12 -11
  143. package/ThemeDecorator/I18nFontDecorator.js +6 -4
  144. package/ThemeDecorator/ThemeDecorator.d.ts +16 -10
  145. package/ThemeDecorator/ThemeDecorator.js +24 -9
  146. package/ThemeDecorator/fontGenerator.js +1 -1
  147. package/ThemeDecorator/screenTypes.json +1 -0
  148. package/TimePicker/TimePicker.module.css +1 -1
  149. package/TimePicker/TimePickerBase.js +5 -3
  150. package/TooltipDecorator/Tooltip.module.css +1 -2
  151. package/TooltipDecorator/TooltipDecorator.js +12 -7
  152. package/TooltipDecorator/tests/useTooltip-specs.js +5 -2
  153. package/TooltipDecorator/tests/util-specs.js +12 -0
  154. package/TooltipDecorator/useTooltip.js +1 -1
  155. package/TooltipDecorator/util.js +18 -11
  156. package/VideoPlayer/Feedback.js +3 -0
  157. package/VideoPlayer/Feedback.module.css +5 -9
  158. package/VideoPlayer/FeedbackIcons.js +1 -1
  159. package/VideoPlayer/FeedbackTooltip.module.css +55 -11
  160. package/VideoPlayer/VideoPlayer.d.ts +44 -18
  161. package/VideoPlayer/VideoPlayer.js +153 -47
  162. package/VideoPlayer/VideoPlayer.module.css +28 -11
  163. package/VirtualList/VirtualList.d.ts +9 -2
  164. package/VirtualList/VirtualList.js +51 -24
  165. package/VirtualList/tests/VirtualGridList-translate-specs.js +3 -0
  166. package/VirtualList/tests/VirtualList-specs.js +28 -1
  167. package/VirtualList/tests/VirtualList-translate-specs.js +4 -1
  168. package/VirtualList/useSpotlight.js +1 -1
  169. package/WizardPanels/WizardPanels.module.css +2 -2
  170. package/WizardPanels/index.d.ts +4 -2
  171. package/fonts/Limestone_Icons.ttf +0 -0
  172. package/internal/$L/$L.js +3 -3
  173. package/internal/AsyncRenderChildren/AsyncRenderChildren.js +9 -5
  174. package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +4 -1
  175. package/internal/DateComponentPicker/DateComponentPicker.module.css +2 -2
  176. package/internal/DateTime/DateTime.module.css +1 -0
  177. package/internal/DateTime/DateTimeDecorator.js +5 -4
  178. package/internal/Panels/PanelsRouter.js +48 -31
  179. package/internal/Panels/useAutoFocus.js +10 -6
  180. package/internal/Panels/useFocusOnTransition.js +4 -3
  181. package/internal/Picker/Picker.js +7 -5
  182. package/internal/Picker/Picker.module.css +2 -2
  183. package/internal/Picker/SpottablePicker.js +15 -13
  184. package/internal/SharedStateDecorator/SharedStateDecorator.js +78 -99
  185. package/internal/validators/validators.js +21 -2
  186. package/package.json +18 -15
  187. package/styles/colors-highcontrast.less +9 -1
  188. package/styles/colors.less +12 -7
  189. package/styles/motion-mixins.less +66 -0
  190. package/styles/motions.less +78 -0
  191. package/styles/variables.less +176 -150
  192. package/useScroll/HoverToScroll.js +23 -17
  193. package/useScroll/Scrollbar.js +14 -10
  194. package/useScroll/ScrollbarPlaceholder.js +3 -5
  195. package/useScroll/ScrollbarTrack.js +7 -5
  196. package/useScroll/ScrollbarTrack.module.css +8 -8
  197. package/useScroll/useEvent.js +14 -3
  198. package/useScroll/useScroll.js +12 -2
  199. package/useScroll/useScroll.module.css +6 -6
  200. package/.travis.yml +0 -40
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "Video", {
12
12
  exports["default"] = exports.VideoPlayerBase = exports.VideoPlayer = void 0;
13
13
  var _ApiDecorator = _interopRequireDefault(require("@enact/core/internal/ApiDecorator"));
14
14
  var _dispatcher = require("@enact/core/dispatcher");
15
+ var _deprecate = _interopRequireDefault(require("@enact/core/internal/deprecate"));
15
16
  var _util = require("@enact/core/util");
16
17
  var _handle = require("@enact/core/handle");
17
18
  var _keymap = require("@enact/core/keymap");
@@ -107,14 +108,15 @@ var calcNumberValueOfPlaybackRate = function calcNumberValueOfPlaybackRate(rate)
107
108
  var pbArray = String(rate).split('/');
108
109
  return pbArray.length > 1 ? parseInt(pbArray[0]) / parseInt(pbArray[1]) : parseFloat(rate);
109
110
  };
110
- var RootComponent = function RootComponent(_ref4) {
111
- var playerRef = _ref4.playerRef,
112
- rest = _objectWithoutProperties(_ref4, _excluded);
111
+ var _RootComponent = function RootComponent(props) {
112
+ (0, _util.checkPropTypes)(_RootComponent, props);
113
+ var playerRef = props.playerRef,
114
+ rest = _objectWithoutProperties(props, _excluded);
113
115
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread({
114
116
  ref: playerRef
115
117
  }, rest));
116
118
  };
117
- RootComponent.propTypes = {
119
+ _RootComponent.propTypes = {
118
120
  /*
119
121
  * Called with the reference to the mediaControls node.
120
122
  *
@@ -127,7 +129,7 @@ var SpottableDiv = (0, _Touchable["default"])((0, _Spottable.Spottable)('div'));
127
129
  var RootContainer = (0, _SpotlightContainerDecorator.SpotlightContainerDecorator)({
128
130
  enterTo: 'default-element',
129
131
  defaultElement: [".".concat(_VideoPlayerModule["default"].controlsHandleAbove), ".".concat(_VideoPlayerModule["default"].controlsFrame)]
130
- }, RootComponent);
132
+ }, _RootComponent);
131
133
  var ControlsContainer = (0, _SpotlightContainerDecorator.SpotlightContainerDecorator)({
132
134
  enterTo: 'default-element',
133
135
  straightOnly: true
@@ -167,6 +169,10 @@ var forwardJumpBackward = forwardWithState('onJumpBackward');
167
169
  var forwardWillJumpBackward = forwardWithState('onWillJumpBackward');
168
170
  var forwardJumpForward = forwardWithState('onJumpForward');
169
171
  var forwardWillJumpForward = forwardWithState('onWillJumpForward');
172
+ var forwardPrevious = forwardWithState('onPrevious');
173
+ var forwardWillPrevious = forwardWithState('onWillPrevious');
174
+ var forwardNext = forwardWithState('onNext');
175
+ var forwardWillNext = forwardWithState('onWillNext');
170
176
  var AnnounceState = {
171
177
  // Video is loaded but additional announcements have not been made
172
178
  READY: 0,
@@ -179,6 +185,10 @@ var AnnounceState = {
179
185
  // All announcements have been made
180
186
  DONE: 4
181
187
  };
188
+ var warnedOnJumpBackward = false;
189
+ var warnedOnJumpForward = false;
190
+ var warnedOnWillJumpBackward = false;
191
+ var warnedOnWillJumpForward = false;
182
192
 
183
193
  /**
184
194
  * Every callback sent by {@link limestone/VideoPlayer|VideoPlayer} receives a status package,
@@ -291,8 +301,8 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
291
301
  }
292
302
  _this.startDelayedFeedbackHide();
293
303
  _this.startDelayedTitleHide();
294
- _this.setState(function (_ref5) {
295
- var announce = _ref5.announce;
304
+ _this.setState(function (_ref4) {
305
+ var announce = _ref4.announce;
296
306
  if (announce === AnnounceState.READY) {
297
307
  // if we haven't read the title yet, do so this time
298
308
  announce = AnnounceState.TITLE;
@@ -351,9 +361,9 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
351
361
  _this.doAutoClose = function () {
352
362
  _this.stopDelayedFeedbackHide();
353
363
  _this.stopDelayedTitleHide();
354
- _this.setState(function (_ref6) {
355
- var mediaSliderVisible = _ref6.mediaSliderVisible,
356
- miniFeedbackVisible = _ref6.miniFeedbackVisible;
364
+ _this.setState(function (_ref5) {
365
+ var mediaSliderVisible = _ref5.mediaSliderVisible,
366
+ miniFeedbackVisible = _ref5.miniFeedbackVisible;
357
367
  return {
358
368
  feedbackVisible: false,
359
369
  mediaControlsVisible: false,
@@ -394,10 +404,10 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
394
404
  } else {
395
405
  var shouldShowSlider = _this.pulsedPlaybackState !== null || calcNumberValueOfPlaybackRate(_this.playbackRate) !== 1;
396
406
  if (_this.showMiniFeedback && (!_this.state.miniFeedbackVisible || _this.state.mediaSliderVisible !== shouldShowSlider)) {
397
- _this.setState(function (_ref7) {
398
- var loading = _ref7.loading,
399
- duration = _ref7.duration,
400
- error = _ref7.error;
407
+ _this.setState(function (_ref6) {
408
+ var loading = _ref6.loading,
409
+ duration = _ref6.duration,
410
+ error = _ref6.error;
401
411
  return {
402
412
  mediaSliderVisible: shouldShowSlider && !_this.props.noMediaSliderFeedback,
403
413
  miniFeedbackVisible: !(loading || !duration || error)
@@ -481,8 +491,8 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
481
491
  _this.handleFastForward = _this.handle(forwardWillFastForward, _this.shouldShowMiniFeedback, function () {
482
492
  return _this.fastForward();
483
493
  }, forwardFastForward);
484
- _this.handleJump = function (_ref8) {
485
- var keyCode = _ref8.keyCode;
494
+ _this.handleJump = function (_ref7) {
495
+ var keyCode = _ref7.keyCode;
486
496
  if (_this.props.seekDisabled) {
487
497
  (0, _handle.forwardCustom)('onSeekFailed')(null, _this.props);
488
498
  } else {
@@ -502,31 +512,31 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
502
512
  _this.handleControlsHandleAboveHold = function () {
503
513
  if (shouldJump(_this.props, _this.state)) {
504
514
  _this.handleJump({
505
- keyCode: _this.jumpButtonPressed === -1 ? jumpBackKeyCode : jumpForwardKeyCode
515
+ keyCode: _this.jumpKeyPressed === -1 ? jumpBackKeyCode : jumpForwardKeyCode
506
516
  });
507
517
  }
508
518
  };
509
- _this.handleControlsHandleAboveKeyDown = function (_ref9) {
510
- var keyCode = _ref9.keyCode;
519
+ _this.handleControlsHandleAboveKeyDown = function (_ref8) {
520
+ var keyCode = _ref8.keyCode;
511
521
  if (isEnter(keyCode)) {
512
- _this.jumpButtonPressed = 0;
522
+ _this.jumpKeyPressed = 0;
513
523
  } else if (isLeft(keyCode)) {
514
- _this.jumpButtonPressed = -1;
524
+ _this.jumpKeyPressed = -1;
515
525
  } else if (isRight(keyCode)) {
516
- _this.jumpButtonPressed = 1;
526
+ _this.jumpKeyPressed = 1;
517
527
  }
518
528
  };
519
- _this.handleControlsHandleAboveKeyUp = function (_ref0) {
520
- var keyCode = _ref0.keyCode;
529
+ _this.handleControlsHandleAboveKeyUp = function (_ref9) {
530
+ var keyCode = _ref9.keyCode;
521
531
  if (isEnter(keyCode) || isLeft(keyCode) || isRight(keyCode)) {
522
- _this.jumpButtonPressed = null;
532
+ _this.jumpKeyPressed = null;
523
533
  }
524
534
  };
525
535
  _this.handleControlsHandleAboveDown = function () {
526
- if (_this.jumpButtonPressed === 0) {
536
+ if (_this.jumpKeyPressed === 0) {
527
537
  _this.showControls();
528
- } else if (_this.jumpButtonPressed === -1 || _this.jumpButtonPressed === 1) {
529
- var keyCode = _this.jumpButtonPressed === -1 ? jumpBackKeyCode : jumpForwardKeyCode;
538
+ } else if (_this.jumpKeyPressed === -1 || _this.jumpKeyPressed === 1) {
539
+ var keyCode = _this.jumpKeyPressed === -1 ? jumpBackKeyCode : jumpForwardKeyCode;
530
540
  if (shouldJump(_this.props, _this.state)) {
531
541
  _this.handleJump({
532
542
  keyCode: keyCode
@@ -694,6 +704,14 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
694
704
  _this.startDelayedMiniFeedbackHide();
695
705
  return true;
696
706
  };
707
+ _this.next = function () {
708
+ // next api will be implemented in 2.0.0.
709
+ return true;
710
+ };
711
+ _this.previous = function () {
712
+ // previous api will be implemented in 2.0.0.
713
+ return true;
714
+ };
697
715
  /**
698
716
  * Fast forwards the current media for seeking.
699
717
  * This function changes the playback rate.
@@ -980,8 +998,8 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
980
998
  _this.onVideoClick = function () {
981
999
  _this.toggleControls();
982
1000
  };
983
- _this.onSliderChange = function (_ref1) {
984
- var value = _ref1.value;
1001
+ _this.onSliderChange = function (_ref0) {
1002
+ var value = _ref0.value;
985
1003
  var time = value * _this.state.duration;
986
1004
  if (_this.preventTimeChange(time)) return;
987
1005
  _this.seek(time);
@@ -1066,6 +1084,12 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1066
1084
  _this.onJumpForward = _this.handle(forwardWillJumpForward, function () {
1067
1085
  return _this.jump(_this.props.jumpBy);
1068
1086
  }, forwardJumpForward);
1087
+ _this.onNext = _this.props.onWillNext || _this.props.onNext ? _this.handle(forwardWillNext,
1088
+ // () => this.next(),
1089
+ forwardNext) : null;
1090
+ _this.onPrevious = _this.props.onWillPrevious || _this.props.onPrevious ? _this.handle(forwardWillPrevious,
1091
+ // () => this.previous(),
1092
+ forwardPrevious) : null;
1069
1093
  _this.handleToggleMore = function (ev) {
1070
1094
  var showMoreComponents = ev.showMoreComponents,
1071
1095
  liftDistance = ev.liftDistance;
@@ -1079,8 +1103,8 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1079
1103
  _this.stopDelayedTitleHide();
1080
1104
  }
1081
1105
  _this.playerRef.current.style.setProperty('--liftDistance', "".concat(liftDistance, "px"));
1082
- _this.setState(function (_ref10) {
1083
- var announce = _ref10.announce;
1106
+ _this.setState(function (_ref1) {
1107
+ var announce = _ref1.announce;
1084
1108
  return {
1085
1109
  infoVisible: showMoreComponents,
1086
1110
  titleVisible: true,
@@ -1112,7 +1136,7 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1112
1136
  _this.selectPlaybackRates('fastForward');
1113
1137
  _this.sliderKnobProportion = 0;
1114
1138
  _this.mediaControlsSpotlightId = _props.spotlightId + '_mediaControls';
1115
- _this.jumpButtonPressed = null;
1139
+ _this.jumpKeyPressed = null;
1116
1140
  _this.playerRef = /*#__PURE__*/(0, _react.createRef)();
1117
1141
  _this.playbackRate = 1;
1118
1142
 
@@ -1221,8 +1245,8 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1221
1245
  var _current = _spotlight.Spotlight.getCurrent();
1222
1246
  if (!_current || this.playerRef.current.contains(_current)) {
1223
1247
  // Set focus within media controls when they become visible.
1224
- if (_spotlight.Spotlight.focus(this.mediaControlsSpotlightId) && this.jumpButtonPressed === 0) {
1225
- this.jumpButtonPressed = null;
1248
+ if (_spotlight.Spotlight.focus(this.mediaControlsSpotlightId) && this.jumpKeyPressed === 0) {
1249
+ this.jumpKeyPressed = null;
1226
1250
  }
1227
1251
  }
1228
1252
  }
@@ -1327,6 +1351,38 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1327
1351
  title = _this$props.title,
1328
1352
  VideoComponent = _this$props.videoComponent,
1329
1353
  mediaProps = _objectWithoutProperties(_this$props, _excluded2);
1354
+ if (!warnedOnJumpBackward && mediaProps.onJumpBackward) {
1355
+ (0, _deprecate["default"])({
1356
+ name: '`onJumpBackward`',
1357
+ until: '2.0.0',
1358
+ message: 'Use `onPrevious` instead'
1359
+ });
1360
+ warnedOnJumpBackward = true;
1361
+ }
1362
+ if (!warnedOnJumpForward && mediaProps.onJumpForward) {
1363
+ (0, _deprecate["default"])({
1364
+ name: '`onJumpForward`',
1365
+ until: '2.0.0',
1366
+ message: 'Use `onNext` instead'
1367
+ });
1368
+ warnedOnJumpForward = true;
1369
+ }
1370
+ if (!warnedOnWillJumpBackward && mediaProps.onWillJumpBackward) {
1371
+ (0, _deprecate["default"])({
1372
+ name: '`onWillJumpBackward`',
1373
+ until: '2.0.0',
1374
+ message: 'Use `onWillPrevious` instead'
1375
+ });
1376
+ warnedOnWillJumpBackward = true;
1377
+ }
1378
+ if (!warnedOnWillJumpForward && mediaProps.onWillJumpForward) {
1379
+ (0, _deprecate["default"])({
1380
+ name: '`onWillJumpForward`',
1381
+ until: '2.0.0',
1382
+ message: 'Use `onWillPrevious` instead'
1383
+ });
1384
+ warnedOnWillJumpForward = true;
1385
+ }
1330
1386
  delete mediaProps.announce;
1331
1387
  delete mediaProps.autoCloseTimeout;
1332
1388
  delete mediaProps.children;
@@ -1340,14 +1396,18 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1340
1396
  delete mediaProps.onFastForward;
1341
1397
  delete mediaProps.onJumpBackward;
1342
1398
  delete mediaProps.onJumpForward;
1399
+ delete mediaProps.onNext;
1343
1400
  delete mediaProps.onPause;
1344
1401
  delete mediaProps.onPlay;
1402
+ delete mediaProps.onPrevious;
1345
1403
  delete mediaProps.onRewind;
1346
1404
  delete mediaProps.onWillFastForward;
1347
1405
  delete mediaProps.onWillJumpBackward;
1348
1406
  delete mediaProps.onWillJumpForward;
1407
+ delete mediaProps.onWillNext;
1349
1408
  delete mediaProps.onWillPause;
1350
1409
  delete mediaProps.onWillPlay;
1410
+ delete mediaProps.onWillPrevious;
1351
1411
  delete mediaProps.onWillRewind;
1352
1412
  delete mediaProps.onScrub;
1353
1413
  delete mediaProps.onSeekFailed;
@@ -1402,19 +1462,20 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1402
1462
  className: _VideoPlayerModule["default"].back,
1403
1463
  icon: "arrowhookleft",
1404
1464
  iconFlip: "auto",
1405
- onClick: this.handleBack
1406
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(ControlsContainer, {
1465
+ onClick: this.handleBack,
1466
+ size: "small"
1467
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_FeedbackContent["default"], {
1468
+ className: _VideoPlayerModule["default"].miniFeedback,
1469
+ playbackRate: this.pulsedPlaybackRate || this.selectPlaybackRate(this.speedIndex),
1470
+ playbackState: this.pulsedPlaybackState || this.prevCommand,
1471
+ visible: this.state.miniFeedbackVisible && !noMiniFeedback,
1472
+ children: (0, _MediaPlayer.secondsToTime)(this.state.sliderTooltipTime, durFmt, {
1473
+ includeHour: false
1474
+ })
1475
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(ControlsContainer, {
1407
1476
  className: _VideoPlayerModule["default"].bottom + (this.state.mediaControlsVisible ? '' : ' ' + _VideoPlayerModule["default"].hidden) + (this.state.infoVisible ? ' ' + _VideoPlayerModule["default"].lift : ''),
1408
1477
  spotlightDisabled: spotlightDisabled || !this.state.mediaControlsVisible,
1409
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FeedbackContent["default"], {
1410
- className: _VideoPlayerModule["default"].miniFeedback,
1411
- playbackRate: this.pulsedPlaybackRate || this.selectPlaybackRate(this.speedIndex),
1412
- playbackState: this.pulsedPlaybackState || this.prevCommand,
1413
- visible: this.state.miniFeedbackVisible && !noMiniFeedback,
1414
- children: (0, _MediaPlayer.secondsToTime)(this.state.sliderTooltipTime, durFmt, {
1415
- includeHour: true
1416
- })
1417
- }), this.state.mediaSliderVisible ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
1478
+ children: [this.state.mediaSliderVisible ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
1418
1479
  className: _VideoPlayerModule["default"].infoFrame,
1419
1480
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaTitle["default"], {
1420
1481
  id: "".concat(this.id, "_mediaTitle"),
@@ -1437,6 +1498,7 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1437
1498
  formatter: durFmt,
1438
1499
  includeHour: includeTimeHour
1439
1500
  }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaPlayer.MediaSlider, {
1501
+ "aria-valuetext": " ",
1440
1502
  backgroundProgress: this.state.proportionLoaded,
1441
1503
  disabled: disabled || this.state.sourceUnavailable,
1442
1504
  forcePressed: this.state.slider5WayPressed,
@@ -1477,8 +1539,10 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1477
1539
  onFastForward: this.handleFastForward,
1478
1540
  onJumpBackwardButtonClick: this.onJumpBackward,
1479
1541
  onJumpForwardButtonClick: this.onJumpForward,
1542
+ onNextButtonClick: this.onNext,
1480
1543
  onPause: this.handlePause,
1481
1544
  onPlay: this.handlePlay,
1545
+ onPreviousButtonClick: this.onPrevious,
1482
1546
  onRewind: this.handleRewind,
1483
1547
  onToggleMore: this.handleToggleMore,
1484
1548
  paused: this.state.paused,
@@ -1627,8 +1691,10 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1627
1691
  * * `onJumpBackwardButtonClick` - Called when the jump backward button is pressed
1628
1692
  * * `onJumpForwardButtonClick` - Called when the jump forward button is pressed
1629
1693
  * * `onKeyDown` - Called when a key is pressed
1694
+ * * `onNextButtonClick` - Called when the next button is pressed
1630
1695
  * * `onPause` - Called when the media is paused via a key event
1631
1696
  * * `onPlay` - Called when the media is played via a key event
1697
+ * * `onPreviousButtonClick` - Called when the previous button is pressed
1632
1698
  * * `onRewind` - Called when the media is rewound via a key event
1633
1699
  * * `onToggleMore` - Called when the more components are hidden or shown
1634
1700
  * * `paused` - `true` when the media is paused
@@ -1748,6 +1814,7 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1748
1814
  * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1749
1815
  *
1750
1816
  * @type {Function}
1817
+ * @deprecated Will be removed in 2.0.0. Use `onPrevious` instead.
1751
1818
  * @public
1752
1819
  */
1753
1820
  onJumpBackward: _propTypes2["default"].func,
@@ -1757,9 +1824,19 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1757
1824
  * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1758
1825
  *
1759
1826
  * @type {Function}
1827
+ * @deprecated Will be removed in 2.0.0. Use `onNext` instead.
1760
1828
  * @public
1761
1829
  */
1762
1830
  onJumpForward: _propTypes2["default"].func,
1831
+ /**
1832
+ * Called when the user clicks the next button.
1833
+ *
1834
+ * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1835
+ *
1836
+ * @type {Function}
1837
+ * @public
1838
+ */
1839
+ onNext: _propTypes2["default"].func,
1763
1840
  /**
1764
1841
  * Called when the video has been paused.
1765
1842
  *
@@ -1774,6 +1851,15 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1774
1851
  * @public
1775
1852
  */
1776
1853
  onPlay: _propTypes2["default"].func,
1854
+ /**
1855
+ * Called when the user clicks the previous button.
1856
+ *
1857
+ * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1858
+ *
1859
+ * @type {Function}
1860
+ * @public
1861
+ */
1862
+ onPrevious: _propTypes2["default"].func,
1777
1863
  /**
1778
1864
  * Called when the video has been rewound.
1779
1865
  *
@@ -1835,6 +1921,7 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1835
1921
  * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1836
1922
  *
1837
1923
  * @type {Function}
1924
+ * @deprecated Will be removed in 2.0.0. Use `onWillPrevious` instead.
1838
1925
  * @public
1839
1926
  */
1840
1927
  onWillJumpBackward: _propTypes2["default"].func,
@@ -1844,9 +1931,19 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1844
1931
  * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1845
1932
  *
1846
1933
  * @type {Function}
1934
+ * @deprecated Will be removed in 2.0.0. Use `onWillNext` instead.
1847
1935
  * @public
1848
1936
  */
1849
1937
  onWillJumpForward: _propTypes2["default"].func,
1938
+ /**
1939
+ * Called once before playing the next video in the playlist.
1940
+ *
1941
+ * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1942
+ *
1943
+ * @type {Function}
1944
+ * @public
1945
+ */
1946
+ onWillNext: _propTypes2["default"].func,
1850
1947
  /**
1851
1948
  * Called once before the video is paused.
1852
1949
  *
@@ -1861,6 +1958,15 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
1861
1958
  * @public
1862
1959
  */
1863
1960
  onWillPlay: _propTypes2["default"].func,
1961
+ /**
1962
+ * Called once before playing the previous video in the playlist.
1963
+ *
1964
+ * Is passed a {@link limestone/VideoPlayer.videoStatus} as the first argument.
1965
+ *
1966
+ * @type {Function}
1967
+ * @public
1968
+ */
1969
+ onWillPrevious: _propTypes2["default"].func,
1864
1970
  /**
1865
1971
  * Called once before the video is rewound.
1866
1972
  *
@@ -2105,7 +2211,7 @@ var VideoPlayerBase = exports.VideoPlayerBase = (_Class = /*#__PURE__*/function
2105
2211
  * @public
2106
2212
  */
2107
2213
  var VideoPlayer = exports.VideoPlayer = (0, _ApiDecorator["default"])({
2108
- api: ['areControlsVisible', 'fastForward', 'getMediaState', 'getVideoNode', 'hideControls', 'jump', 'pause', 'play', 'rewind', 'seek', 'setPlaybackSpeed', 'showControls', 'showFeedback', 'toggleControls']
2214
+ api: ['areControlsVisible', 'fastForward', 'getMediaState', 'getVideoNode', 'hideControls', 'jump', 'next', 'pause', 'play', 'previous', 'rewind', 'seek', 'setPlaybackSpeed', 'showControls', 'showFeedback', 'toggleControls']
2109
2215
  }, (0, _I18nDecorator.I18nContextDecorator)({
2110
2216
  localeProp: 'locale'
2111
2217
  }, (0, _Slottable["default"])({
@@ -27,34 +27,45 @@
27
27
  transform-origin: bottom;
28
28
  }
29
29
  .videoPlayer .fullscreen .miniFeedback {
30
+ position: absolute;
30
31
  display: inline-flex;
31
32
  align-items: center;
32
- font-size: var(--primitive-font-size-60);
33
+ justify-content: center;
34
+ font-size: var(--primitive-font-size-66);
33
35
  font-weight: var(--primitive-font-weight-regular);
34
- height: 3.5rem;
35
- line-height: 1.4em;
36
- margin-bottom: 1.5rem;
37
- z-index: 50;
36
+ height: 1.75rem;
37
+ padding: var(--primitive-spacing-18) var(--primitive-spacing-60);
38
+ line-height: 1.75rem;
39
+ margin-bottom: var(--primitive-spacing-72);
40
+ z-index: 100;
41
+ top: var(--primitive-spacing-102);
38
42
  bottom: auto;
39
43
  pointer-events: none;
44
+ left: 5.75rem;
45
+ right: initial;
46
+ }
47
+ :global(.enact-locale-right-to-left) .videoPlayer .fullscreen .miniFeedback {
48
+ left: initial;
49
+ right: 5.75rem;
40
50
  }
41
51
  .videoPlayer .fullscreen .back {
52
+ margin: 0;
42
53
  position: absolute;
43
54
  z-index: 100;
44
- top: 2.125rem;
45
- left: 2.75rem;
55
+ top: var(--primitive-spacing-102);
56
+ left: var(--primitive-spacing-132);
46
57
  right: initial;
47
58
  }
48
59
  :global(.enact-locale-right-to-left) .videoPlayer .fullscreen .back {
49
60
  left: initial;
50
- right: 2.75rem;
61
+ right: var(--primitive-spacing-132);
51
62
  }
52
63
  .videoPlayer .fullscreen .bottom {
53
64
  position: absolute;
54
65
  z-index: 100;
55
66
  bottom: 0;
56
- left: 2.75rem;
57
- right: 2.75rem;
67
+ left: var(--primitive-spacing-132);
68
+ right: var(--primitive-spacing-132);
58
69
  }
59
70
  .videoPlayer .fullscreen .bottom.lift {
60
71
  transform: translateY(calc(var(--liftDistance) * -1));
@@ -73,7 +84,7 @@
73
84
  .videoPlayer .fullscreen .bottom .infoFrame {
74
85
  display: flex;
75
86
  padding: var(--primitive-spacing-72) var(--primitive-spacing-48) 0;
76
- margin-bottom: 1.25rem;
87
+ margin-bottom: var(--primitive-spacing-60);
77
88
  }
78
89
  .videoPlayer .fullscreen .bottom .sliderContainer {
79
90
  display: flex;
@@ -96,6 +107,7 @@
96
107
  left: 0;
97
108
  }
98
109
  .videoPlayer:global(.neutral) .fullscreen .miniFeedback {
110
+ background-color: color(from var(--semantic-color-surface-overlay-default) srgb r g b / 0.5);
99
111
  color: var(--semantic-color-on-background-main);
100
112
  }
101
113
  .videoPlayer:global(.neutral) .fullscreen .bottom {
@@ -105,6 +117,7 @@
105
117
  background: linear-gradient(180deg, transparent 0%, #000 100%);
106
118
  }
107
119
  :global(.enact-a11y-high-contrast) .videoPlayer:global(.neutral):global(.highContrast) .fullscreen .miniFeedback {
120
+ background-color: color(from var(--semantic-color-surface-overlay-default) srgb r g b / 0.5);
108
121
  color: var(--semantic-color-on-background-main);
109
122
  }
110
123
  :global(.enact-a11y-high-contrast) .videoPlayer:global(.neutral):global(.highContrast) .fullscreen .bottom {
@@ -114,6 +127,7 @@
114
127
  background: linear-gradient(180deg, transparent 0%, #000 100%);
115
128
  }
116
129
  .videoPlayer:global(.light) .fullscreen .miniFeedback {
130
+ background-color: color(from var(--semantic-color-surface-overlay-default) srgb r g b / 0.5);
117
131
  color: var(--semantic-color-on-background-main);
118
132
  }
119
133
  .videoPlayer:global(.light) .fullscreen .bottom {
@@ -128,6 +142,7 @@
128
142
  --semantic-color-on-surface-main-focused: #e6e6e6;
129
143
  }
130
144
  .videoPlayer:global(.game) .fullscreen .miniFeedback {
145
+ background-color: color(from var(--semantic-color-surface-overlay-default) srgb r g b / 0.5);
131
146
  color: var(--semantic-color-on-background-main);
132
147
  }
133
148
  .videoPlayer:global(.game) .fullscreen .bottom {
@@ -141,6 +156,7 @@
141
156
  --semantic-color-surface-default-focused: #3ea07d;
142
157
  }
143
158
  :global(.green) .videoPlayer:global(.game) .fullscreen .miniFeedback {
159
+ background-color: color(from var(--semantic-color-surface-overlay-default) srgb r g b / 0.5);
144
160
  color: var(--semantic-color-on-background-main);
145
161
  }
146
162
  :global(.green) .videoPlayer:global(.game) .fullscreen .bottom {
@@ -154,6 +170,7 @@
154
170
  --semantic-color-surface-default-focused: #b85f23;
155
171
  }
156
172
  :global(.orange) .videoPlayer:global(.game) .fullscreen .miniFeedback {
173
+ background-color: color(from var(--semantic-color-surface-overlay-default) srgb r g b / 0.5);
157
174
  color: var(--semantic-color-on-background-main);
158
175
  }
159
176
  :global(.orange) .videoPlayer:global(.game) .fullscreen .bottom {
@@ -50,6 +50,10 @@ this.scrollTo({align: 'top'}); // scroll to the top
50
50
  ```
51
51
  */
52
52
  cbScrollTo?: Function;
53
+ /**
54
+ * When this value is `true` , scrolling in a VirtualList with holding a 5-way key continues to outer Scoller.
55
+ */
56
+ continue5WayHold?: boolean;
53
57
  /**
54
58
  * Disable voice control feature of component.
55
59
  */
@@ -201,8 +205,7 @@ export class VirtualList extends React.Component<
201
205
  Merge<React.HTMLProps<HTMLElement>, VirtualListProps>
202
206
  > {}
203
207
 
204
- export interface VirtualGridListProps
205
- extends ui_VirtualList_VirtualListBasicProps {
208
+ export interface VirtualGridListProps extends ui_VirtualList_VirtualListBasicProps {
206
209
  /**
207
210
  * Size of an item for the VirtualGridList; valid value is an object that has `minWidth`
208
211
  and `minHeight` as properties.
@@ -247,6 +250,10 @@ this.scrollTo({align: 'top'}); // scroll to the top
247
250
  ```
248
251
  */
249
252
  cbScrollTo?: Function;
253
+ /**
254
+ * When this value is `true` , scrolling in a VirtualGridList with holding a 5-way key continues to outer Scroller.
255
+ */
256
+ continue5WayHold?: boolean;
250
257
  /**
251
258
  * Disable voice control feature of component.
252
259
  */