@micromag/viewer 0.3.603 → 0.3.605

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/es/index.js CHANGED
@@ -17,7 +17,7 @@ import { Helmet } from 'react-helmet';
17
17
  import { useIntl, FormattedMessage } from 'react-intl';
18
18
  import EventEmitter from 'wolfy87-eventemitter';
19
19
  import { Label, CloseIcon, ScreenPreview, Screen, ArrowIcon, Button as Button$1, PlayIcon, Spinner, UnmuteIcon, MuteIcon, PauseIcon, Meta, FontFaces } from '@micromag/core/components';
20
- import { useDimensionObserver, useTrackEvent, useDragProgress, useMediaProgress, useMediaCurrentTime, useMediaDuration, useMediaReady, useMediaState, useParsedStory, useLoadedFonts, useTrackScreenView, useScreenSizeFromElement, useFullscreen } from '@micromag/core/hooks';
20
+ import { useIsVisible, useDimensionObserver, useTrackEvent, useDragProgress, useMediaProgress, useMediaCurrentTime, useMediaDuration, useMediaReady, useMediaState, useParsedStory, useLoadedFonts, useTrackScreenView, useScreenSizeFromElement, useFullscreen } from '@micromag/core/hooks';
21
21
  import { getStyleFromColor, easings, getStyleFromText, getColorAsString, getDeviceScreens } from '@micromag/core/utils';
22
22
  import { ShareIncentive } from '@micromag/elements/all';
23
23
  import FocusLock from 'react-focus-lock';
@@ -896,7 +896,7 @@ var StackIcon = function StackIcon(_ref) {
896
896
  StackIcon.propTypes = propTypes$g;
897
897
  StackIcon.defaultProps = defaultProps$g;
898
898
 
899
- var styles$b = {"button":"micromag-viewer-menus-menu-screen-button","container":"micromag-viewer-menus-menu-screen-container","isCurrent":"micromag-viewer-menus-menu-screen-isCurrent","inner":"micromag-viewer-menus-menu-screen-inner","subScreenBadge":"micromag-viewer-menus-menu-screen-subScreenBadge","subScreenCount":"micromag-viewer-menus-menu-screen-subScreenCount","subScreenIcon":"micromag-viewer-menus-menu-screen-subScreenIcon","screen":"micromag-viewer-menus-menu-screen-screen","pulse":"micromag-viewer-menus-menu-screen-pulse"};
899
+ var styles$b = {"button":"micromag-viewer-menus-menu-screen-button","container":"micromag-viewer-menus-menu-screen-container","isCurrent":"micromag-viewer-menus-menu-screen-isCurrent","inner":"micromag-viewer-menus-menu-screen-inner","subScreenBadge":"micromag-viewer-menus-menu-screen-subScreenBadge","subScreenCount":"micromag-viewer-menus-menu-screen-subScreenCount","subScreenIcon":"micromag-viewer-menus-menu-screen-subScreenIcon","screen":"micromag-viewer-menus-menu-screen-screen","intro":"micromag-viewer-menus-menu-screen-intro","pulse":"micromag-viewer-menus-menu-screen-pulse"};
900
900
 
901
901
  var propTypes$f = {
902
902
  className: PropTypes.string,
@@ -904,6 +904,7 @@ var propTypes$f = {
904
904
  index: PropTypes.number,
905
905
  onClick: PropTypes.func,
906
906
  screenSize: PropTypes$1.screenSize,
907
+ alwaysRender: PropTypes.bool,
907
908
  focusable: PropTypes.bool
908
909
  };
909
910
  var defaultProps$f = {
@@ -912,6 +913,7 @@ var defaultProps$f = {
912
913
  index: 0,
913
914
  onClick: null,
914
915
  screenSize: null,
916
+ alwaysRender: false,
915
917
  focusable: true
916
918
  };
917
919
  var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
@@ -920,6 +922,7 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
920
922
  index = _ref.index,
921
923
  _onClick = _ref.onClick,
922
924
  screenSize = _ref.screenSize,
925
+ alwaysRender = _ref.alwaysRender,
923
926
  focusable = _ref.focusable;
924
927
  var intl = useIntl();
925
928
  var _ref2 = item || {},
@@ -931,6 +934,13 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
931
934
  var _ref3 = screenSize || {},
932
935
  screenWidth = _ref3.width,
933
936
  screenHeight = _ref3.height;
937
+ var _useIsVisible = useIsVisible({
938
+ rootMargin: '100px',
939
+ persist: false
940
+ }),
941
+ refVisible = _useIsVisible.ref,
942
+ _useIsVisible$visible = _useIsVisible.visible,
943
+ visible = _useIsVisible$visible === void 0 ? false : _useIsVisible$visible;
934
944
  var screenAriaLabel = "".concat(intl.formatMessage({
935
945
  id: "LkVfwW",
936
946
  defaultMessage: [{
@@ -953,7 +963,8 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
953
963
  className: classNames([styles$b.container, _defineProperty(_defineProperty({}, className, className !== null), styles$b.isCurrent, current)]),
954
964
  style: {
955
965
  paddingBottom: "".concat(screenHeight / screenWidth * 100, "%")
956
- }
966
+ },
967
+ ref: refVisible
957
968
  }, /*#__PURE__*/React.createElement("button", {
958
969
  type: "button",
959
970
  className: styles$b.button,
@@ -976,7 +987,7 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
976
987
  className: styles$b.subScreenCount
977
988
  }, count), /*#__PURE__*/React.createElement(StackIcon, {
978
989
  className: styles$b.subScreenIcon
979
- })) : null, screenWidth > 0 && screenHeight > 0 ? /*#__PURE__*/React.createElement(ScreenPreview, {
990
+ })) : null, screenWidth > 0 && screenHeight > 0 && (visible || alwaysRender) ? /*#__PURE__*/React.createElement(ScreenPreview, {
980
991
  className: styles$b.screen,
981
992
  screenWidth: screenWidth,
982
993
  screenHeight: screenHeight,
@@ -1076,10 +1087,7 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
1076
1087
  var otherTitleStyles = _objectWithoutProperties(_ref6, _excluded$4);
1077
1088
  var finalTitleStyles = titleStyles !== null ? getStyleFromText(otherTitleStyles) : null;
1078
1089
  // const { url: brandLogoUrl = null } = brandLogo || {};
1079
- var _useState = useState([]),
1080
- _useState2 = _slicedToArray(_useState, 2),
1081
- screensMounted = _useState2[0],
1082
- setScreensMounted = _useState2[1];
1090
+
1083
1091
  var hasTitle = title !== null;
1084
1092
 
1085
1093
  // @todo optimize all of this the proper way
@@ -1088,17 +1096,6 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
1088
1096
  // [items, focusable],
1089
1097
  // );
1090
1098
 
1091
- useEffect(function () {
1092
- if (items.length === screensMounted.length) {
1093
- return function () {};
1094
- }
1095
- var timeout = setTimeout(function () {
1096
- setScreensMounted([].concat(_toConsumableArray(screensMounted), [true]));
1097
- }, 40);
1098
- return function () {
1099
- clearTimeout(timeout);
1100
- };
1101
- }, [items, screensMounted, setScreensMounted]);
1102
1099
  var menuPaddingTop = paddingTop + 10;
1103
1100
  return /*#__PURE__*/React.createElement("div", {
1104
1101
  className: classNames([styles$a.container, _defineProperty({}, className, className !== null)]),
@@ -1141,7 +1138,6 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
1141
1138
  var _ref9 = screenSize || {},
1142
1139
  screenWidth = _ref9.width,
1143
1140
  screenHeight = _ref9.height;
1144
- var screenMounted = screensMounted[index] || false;
1145
1141
  return /*#__PURE__*/React.createElement("li", {
1146
1142
  key: "item-".concat(screenId),
1147
1143
  className: styles$a.item,
@@ -1149,18 +1145,18 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
1149
1145
  }, /*#__PURE__*/React.createElement("div", {
1150
1146
  className: styles$a.inner
1151
1147
  }, /*#__PURE__*/React.createElement("div", {
1152
- className: classNames([styles$a.frame, _defineProperty({}, styles$a.isLoading, !screenMounted)]),
1148
+ className: classNames([styles$a.frame, _defineProperty({}, styles$a.isLoading, false)]),
1153
1149
  style: {
1154
1150
  paddingBottom: "".concat(screenHeight / screenWidth * 100, "%")
1155
1151
  }
1156
- }, screenMounted ? /*#__PURE__*/React.createElement(ViewerMenuScreen, {
1152
+ }, /*#__PURE__*/React.createElement(ViewerMenuScreen, {
1157
1153
  className: styles$a.screen,
1158
1154
  item: item,
1159
1155
  index: index,
1160
1156
  screenSize: screenSize,
1161
1157
  onClick: onClickScreen,
1162
1158
  focusable: focusable
1163
- }) : null)));
1159
+ }))));
1164
1160
  }))), footer)));
1165
1161
  };
1166
1162
  ViewerMenuPreview.propTypes = propTypes$e;
@@ -1343,7 +1339,7 @@ var ViewerMenuShare = function ViewerMenuShare(_ref) {
1343
1339
  ViewerMenuShare.propTypes = propTypes$c;
1344
1340
  ViewerMenuShare.defaultProps = defaultProps$c;
1345
1341
 
1346
- var styles$7 = {"container":"micromag-viewer-container","screenContainer":"micromag-viewer-screenContainer","screensFrame":"micromag-viewer-screensFrame","menuShare":"micromag-viewer-menuShare","menuPreview":"micromag-viewer-menuPreview","menuContainer":"micromag-viewer-menuContainer","landscape":"micromag-viewer-landscape","hideMenu":"micromag-viewer-hideMenu","menuNavContainer":"micromag-viewer-menuNavContainer","menuTopContainer":"micromag-viewer-menuTopContainer","dots":"micromag-viewer-dots","disableMenu":"micromag-viewer-disableMenu","content":"micromag-viewer-content","withoutGestures":"micromag-viewer-withoutGestures","ariaAnnouncement":"micromag-viewer-ariaAnnouncement","accessibilityLinks":"micromag-viewer-accessibilityLinks","accessibilityButton":"micromag-viewer-accessibilityButton","disabled":"micromag-viewer-disabled","tooltip":"micromag-viewer-tooltip","fadeMenu":"micromag-viewer-fadeMenu","withShadow":"micromag-viewer-withShadow","isOpened":"micromag-viewer-isOpened","menuItem":"micromag-viewer-menuItem","menuButton":"micromag-viewer-menuButton","slidingButton":"micromag-viewer-slidingButton","screensMenuButtonToggled":"micromag-viewer-screensMenuButtonToggled","navButton":"micromag-viewer-navButton","previous":"micromag-viewer-previous","next":"micromag-viewer-next","screen":"micromag-viewer-screen","current":"micromag-viewer-current","playbackControls":"micromag-viewer-playbackControls","navigationHint":"micromag-viewer-navigationHint","webView":"micromag-viewer-webView","shareIncentiveContainer":"micromag-viewer-shareIncentiveContainer","shareIncentive":"micromag-viewer-shareIncentive","shareIncentiveVisible":"micromag-viewer-shareIncentiveVisible"};
1342
+ var styles$7 = {"container":"micromag-viewer-container","screenContainer":"micromag-viewer-screenContainer","screensFrame":"micromag-viewer-screensFrame","menuShare":"micromag-viewer-menuShare","menuPreview":"micromag-viewer-menuPreview","menuContainer":"micromag-viewer-menuContainer","landscape":"micromag-viewer-landscape","hideMenu":"micromag-viewer-hideMenu","menuNavContainer":"micromag-viewer-menuNavContainer","menuTopContainer":"micromag-viewer-menuTopContainer","dots":"micromag-viewer-dots","disableMenu":"micromag-viewer-disableMenu","content":"micromag-viewer-content","withoutGestures":"micromag-viewer-withoutGestures","ariaAnnouncement":"micromag-viewer-ariaAnnouncement","accessibilityLinks":"micromag-viewer-accessibilityLinks","accessibilityButton":"micromag-viewer-accessibilityButton","disabled":"micromag-viewer-disabled","tooltip":"micromag-viewer-tooltip","fadeMenu":"micromag-viewer-fadeMenu","withShadow":"micromag-viewer-withShadow","isOpened":"micromag-viewer-isOpened","menuItem":"micromag-viewer-menuItem","menuButton":"micromag-viewer-menuButton","slidingButton":"micromag-viewer-slidingButton","screensMenuButtonToggled":"micromag-viewer-screensMenuButtonToggled","navButton":"micromag-viewer-navButton","previous":"micromag-viewer-previous","next":"micromag-viewer-next","screen":"micromag-viewer-screen","visible":"micromag-viewer-visible","current":"micromag-viewer-current","playbackControls":"micromag-viewer-playbackControls","navigationHint":"micromag-viewer-navigationHint","webView":"micromag-viewer-webView","shareIncentiveContainer":"micromag-viewer-shareIncentiveContainer","shareIncentive":"micromag-viewer-shareIncentive","shareIncentiveVisible":"micromag-viewer-shareIncentiveVisible"};
1347
1343
 
1348
1344
  var propTypes$b = {
1349
1345
  story: PropTypes$1.story.isRequired,
@@ -1943,7 +1939,55 @@ var ArrowHint = function ArrowHint(_ref) {
1943
1939
  ArrowHint.propTypes = propTypes$8;
1944
1940
  ArrowHint.defaultProps = defaultProps$8;
1945
1941
 
1946
- var styles$3 = {"track":"micromag-viewer-partials-seek-bar-track","progress":"micromag-viewer-partials-seek-bar-progress","inner":"micromag-viewer-partials-seek-bar-inner","progressBarContainer":"micromag-viewer-partials-seek-bar-progressBarContainer","progressBar":"micromag-viewer-partials-seek-bar-progressBar","playHead":"micromag-viewer-partials-seek-bar-playHead","withSeekHead":"micromag-viewer-partials-seek-bar-withSeekHead","scrubbedTime":"micromag-viewer-partials-seek-bar-scrubbedTime","showTimestamp":"micromag-viewer-partials-seek-bar-showTimestamp"};
1942
+ var styles$3 = {"container":"micromag-viewer-partials-hand-tap-container","circle":"micromag-viewer-partials-hand-tap-circle","pulse":"micromag-viewer-partials-hand-tap-pulse","hand":"micromag-viewer-partials-hand-tap-hand","panY":"micromag-viewer-partials-hand-tap-panY","inner":"micromag-viewer-partials-hand-tap-inner","shadowFade":"micromag-viewer-partials-hand-tap-shadowFade"};
1943
+
1944
+ var propTypes$7 = {
1945
+ color: PropTypes.string,
1946
+ className: PropTypes.string
1947
+ };
1948
+ var defaultProps$7 = {
1949
+ color: 'currentColor',
1950
+ className: null
1951
+ };
1952
+ var HandIcon = function HandIcon(_ref) {
1953
+ var color = _ref.color,
1954
+ className = _ref.className;
1955
+ return /*#__PURE__*/React.createElement("svg", {
1956
+ className: className,
1957
+ xmlns: "http://www.w3.org/2000/svg",
1958
+ viewBox: "0 0 367.24 482.87"
1959
+ }, /*#__PURE__*/React.createElement("path", {
1960
+ d: "M488.84,255.91a44.68,44.68,0,0,0-19.15,4.3A44.77,44.77,0,0,0,406,226.49a44.75,44.75,0,0,0-62.67-32.66V105.4a44.81,44.81,0,1,0-89.61,0V265.17l-1.15-2.7a44.78,44.78,0,1,0-82.84,34.06l64.87,157.76.34.73a156.29,156.29,0,0,0,141.42,88.44c86.7,0,157.24-70.53,157.24-157.26V300.7a44.82,44.82,0,0,0-44.78-44.79ZM507.46,386.2c0,72.3-58.78,131.1-131.07,131.1a130.29,130.29,0,0,1-117.73-73.36L193.93,286.61a18.64,18.64,0,1,1,34.53-14.07L279.91,394V105.4a18.64,18.64,0,1,1,37.28,0v196a13.08,13.08,0,0,0,26.16,0V234.56a18.64,18.64,0,0,1,37.27,0v89.95a13.07,13.07,0,1,0,26.13,0V266.86a18.64,18.64,0,1,1,37.28,0v80.71h0s0,.08,0,.11a13.08,13.08,0,0,0,26.15,0v-47a18.63,18.63,0,1,1,37.26,0v85.5Z",
1961
+ transform: "translate(-166.38 -60.59)",
1962
+ fill: color,
1963
+ fillRule: "evenodd"
1964
+ }));
1965
+ };
1966
+ HandIcon.propTypes = propTypes$7;
1967
+ HandIcon.defaultProps = defaultProps$7;
1968
+
1969
+ var propTypes$6 = {
1970
+ className: PropTypes.string
1971
+ };
1972
+ var defaultProps$6 = {
1973
+ className: null
1974
+ };
1975
+ var HandTap = function HandTap(_ref) {
1976
+ var className = _ref.className;
1977
+ return /*#__PURE__*/React.createElement("div", {
1978
+ className: classNames([styles$3.container, _defineProperty({}, className, className !== null)])
1979
+ }, /*#__PURE__*/React.createElement("div", {
1980
+ className: styles$3.inner
1981
+ }, /*#__PURE__*/React.createElement("div", {
1982
+ className: styles$3.circle
1983
+ }), /*#__PURE__*/React.createElement(HandIcon, {
1984
+ className: styles$3.hand
1985
+ })));
1986
+ };
1987
+ HandTap.propTypes = propTypes$6;
1988
+ HandTap.defaultProps = defaultProps$6;
1989
+
1990
+ var styles$2 = {"track":"micromag-viewer-partials-seek-bar-track","progress":"micromag-viewer-partials-seek-bar-progress","inner":"micromag-viewer-partials-seek-bar-inner","progressBarContainer":"micromag-viewer-partials-seek-bar-progressBarContainer","progressBar":"micromag-viewer-partials-seek-bar-progressBar","playHead":"micromag-viewer-partials-seek-bar-playHead","withSeekHead":"micromag-viewer-partials-seek-bar-withSeekHead","scrubbedTime":"micromag-viewer-partials-seek-bar-scrubbedTime","showTimestamp":"micromag-viewer-partials-seek-bar-showTimestamp"};
1947
1991
 
1948
1992
  var stopDragEventsPropagation = {
1949
1993
  onTouchMove: function onTouchMove(e) {
@@ -1983,7 +2027,7 @@ function getFormattedTimestamp() {
1983
2027
  }
1984
2028
  var SHOW_MILLISECONDS_THRESHOLD = 5; // show milliseconds when scrubbing if length of video is shorter than 5 seconds
1985
2029
 
1986
- var propTypes$7 = {
2030
+ var propTypes$5 = {
1987
2031
  media: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
1988
2032
  current: PropTypes.any
1989
2033
  }) // eslint-disable-line
@@ -2000,7 +2044,7 @@ var propTypes$7 = {
2000
2044
  className: PropTypes.string,
2001
2045
  withSeekHead: PropTypes.bool
2002
2046
  };
2003
- var defaultProps$7 = {
2047
+ var defaultProps$5 = {
2004
2048
  media: null,
2005
2049
  playing: false,
2006
2050
  backgroundColor: null,
@@ -2100,29 +2144,29 @@ var SeekBar = function SeekBar(_ref3) {
2100
2144
  }
2101
2145
  });
2102
2146
  return /*#__PURE__*/React.createElement("div", Object.assign({
2103
- className: classNames([styles$3.container, _defineProperty(_defineProperty(_defineProperty({}, className, className !== null), styles$3.withSeekHead, withSeekHead), styles$3.showTimestamp, showTimestamp)])
2147
+ className: classNames([styles$2.container, _defineProperty(_defineProperty(_defineProperty({}, className, className !== null), styles$2.withSeekHead, withSeekHead), styles$2.showTimestamp, showTimestamp)])
2104
2148
  }, stopDragEventsPropagation), /*#__PURE__*/React.createElement("div", {
2105
- className: styles$3.inner
2149
+ className: styles$2.inner
2106
2150
  }, /*#__PURE__*/React.createElement("div", {
2107
- className: styles$3.progressBarContainer
2151
+ className: styles$2.progressBarContainer
2108
2152
  }, /*#__PURE__*/React.createElement("div", {
2109
- className: styles$3.progressBar,
2153
+ className: styles$2.progressBar,
2110
2154
  style: {
2111
2155
  backgroundColor: backgroundColor
2112
2156
  }
2113
2157
  }), /*#__PURE__*/React.createElement("div", {
2114
- className: styles$3.playHead,
2158
+ className: styles$2.playHead,
2115
2159
  style: {
2116
2160
  left: "".concat(progress * 100, "%"),
2117
2161
  backgroundColor: progressColor
2118
2162
  }
2119
2163
  }, /*#__PURE__*/React.createElement("div", {
2120
- className: styles$3.scrubbedTime,
2164
+ className: styles$2.scrubbedTime,
2121
2165
  style: {
2122
2166
  borderColor: progressColor
2123
2167
  }
2124
2168
  }, getFormattedTimestamp(currentTime, duration < SHOW_MILLISECONDS_THRESHOLD))), /*#__PURE__*/React.createElement("div", {
2125
- className: styles$3.progress,
2169
+ className: styles$2.progress,
2126
2170
  style: {
2127
2171
  transform: "scaleX(".concat(progress, ")"),
2128
2172
  backgroundColor: progressColor
@@ -2150,7 +2194,7 @@ var SeekBar = function SeekBar(_ref3) {
2150
2194
  duration: getFormattedTimestamp(duration, duration < SHOW_MILLISECONDS_THRESHOLD)
2151
2195
  }),
2152
2196
  "data-draggable": true,
2153
- className: styles$3.track,
2197
+ className: styles$2.track,
2154
2198
  title: intl.formatMessage({
2155
2199
  id: "G1Gyjn",
2156
2200
  defaultMessage: [{
@@ -2168,12 +2212,12 @@ var SeekBar = function SeekBar(_ref3) {
2168
2212
  tabIndex: focusable ? '0' : '-1'
2169
2213
  }))));
2170
2214
  };
2171
- SeekBar.propTypes = propTypes$7;
2172
- SeekBar.defaultProps = defaultProps$7;
2215
+ SeekBar.propTypes = propTypes$5;
2216
+ SeekBar.defaultProps = defaultProps$5;
2173
2217
 
2174
- var styles$2 = {"suggest":"micromag-viewer-partials-playback-controls-suggest","playPauseButton":"micromag-viewer-partials-playback-controls-playPauseButton","muteButton":"micromag-viewer-partials-playback-controls-muteButton","container":"micromag-viewer-partials-playback-controls-container","icon":"micromag-viewer-partials-playback-controls-icon","offset":"micromag-viewer-partials-playback-controls-offset","spinner":"micromag-viewer-partials-playback-controls-spinner","withPlayPause":"micromag-viewer-partials-playback-controls-withPlayPause","withSuggestPlay":"micromag-viewer-partials-playback-controls-withSuggestPlay","isCollapsed":"micromag-viewer-partials-playback-controls-isCollapsed","loading":"micromag-viewer-partials-playback-controls-loading","hidden":"micromag-viewer-partials-playback-controls-hidden","notPlaying":"micromag-viewer-partials-playback-controls-notPlaying","isMuted":"micromag-viewer-partials-playback-controls-isMuted","withMute":"micromag-viewer-partials-playback-controls-withMute","withSeekBar":"micromag-viewer-partials-playback-controls-withSeekBar","seekBar":"micromag-viewer-partials-playback-controls-seekBar","withSeekBarOnly":"micromag-viewer-partials-playback-controls-withSeekBarOnly"};
2218
+ var styles$1 = {"suggest":"micromag-viewer-partials-playback-controls-suggest","playPauseButton":"micromag-viewer-partials-playback-controls-playPauseButton","muteButton":"micromag-viewer-partials-playback-controls-muteButton","container":"micromag-viewer-partials-playback-controls-container","icon":"micromag-viewer-partials-playback-controls-icon","offset":"micromag-viewer-partials-playback-controls-offset","spinner":"micromag-viewer-partials-playback-controls-spinner","withPlayPause":"micromag-viewer-partials-playback-controls-withPlayPause","withSuggestPlay":"micromag-viewer-partials-playback-controls-withSuggestPlay","isCollapsed":"micromag-viewer-partials-playback-controls-isCollapsed","loading":"micromag-viewer-partials-playback-controls-loading","hidden":"micromag-viewer-partials-playback-controls-hidden","notPlaying":"micromag-viewer-partials-playback-controls-notPlaying","isMuted":"micromag-viewer-partials-playback-controls-isMuted","withMute":"micromag-viewer-partials-playback-controls-withMute","withSeekBar":"micromag-viewer-partials-playback-controls-withSeekBar","seekBar":"micromag-viewer-partials-playback-controls-seekBar","withSeekBarOnly":"micromag-viewer-partials-playback-controls-withSeekBarOnly"};
2175
2219
 
2176
- var propTypes$6 = {
2220
+ var propTypes$4 = {
2177
2221
  defaultColor: PropTypes.shape({
2178
2222
  color: PropTypes.string,
2179
2223
  alpha: PropTypes.number
@@ -2186,7 +2230,7 @@ var propTypes$6 = {
2186
2230
  className: PropTypes.string,
2187
2231
  collapsedClassName: PropTypes.string
2188
2232
  };
2189
- var defaultProps$6 = {
2233
+ var defaultProps$4 = {
2190
2234
  defaultColor: {
2191
2235
  color: '#FFFFFF',
2192
2236
  alpha: 1
@@ -2333,21 +2377,21 @@ function PlaybackControls(_ref) {
2333
2377
  seekBarOnly = _ref3.seekBarOnly;
2334
2378
  var isCollapsed = controls && !controlsVisible && playing || !controls && mediaHasAudio;
2335
2379
  var playIcon = playing ? /*#__PURE__*/React.createElement(PauseIcon, {
2336
- className: styles$2.icon
2380
+ className: styles$1.icon
2337
2381
  }) : /*#__PURE__*/React.createElement(PlayIcon, {
2338
- className: styles$2.icon
2382
+ className: styles$1.icon
2339
2383
  });
2340
2384
  return /*#__PURE__*/React.createElement("div", {
2341
- className: classNames([styles$2.container, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, className, className !== null), styles$2.withPlayPause, controls && !seekBarOnly), styles$2.withSuggestPlay, controlsSuggestPlay), styles$2.withMute, hasMedia || controls), styles$2.withSeekBar, controls), styles$2.withSeekBarOnly, seekBarOnly), styles$2.isCollapsed, isCollapsed), styles$2.isMuted, muted), collapsedClassName, collapsedClassName !== null && isCollapsed)])
2385
+ className: classNames([styles$1.container, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, className, className !== null), styles$1.withPlayPause, controls && !seekBarOnly), styles$1.withSuggestPlay, controlsSuggestPlay), styles$1.withMute, hasMedia || controls), styles$1.withSeekBar, controls), styles$1.withSeekBarOnly, seekBarOnly), styles$1.isCollapsed, isCollapsed), styles$1.isMuted, muted), collapsedClassName, collapsedClassName !== null && isCollapsed)])
2342
2386
  }, controlsSuggestPlay && !finalShowLoading ? /*#__PURE__*/React.createElement(Button$1, {
2343
- className: classNames([styles$2.suggest]),
2387
+ className: classNames([styles$1.suggest]),
2344
2388
  style: {
2345
2389
  color: color
2346
2390
  },
2347
2391
  onClick: playing ? onPause : onPlay,
2348
2392
  focusable: controlsVisible,
2349
2393
  icon: /*#__PURE__*/React.createElement(PlayIcon, {
2350
- className: classNames([styles$2.icon, styles$2.offset])
2394
+ className: classNames([styles$1.icon, styles$1.offset])
2351
2395
  }),
2352
2396
  "aria-pressed": !playing,
2353
2397
  "aria-label": intl.formatMessage({
@@ -2359,7 +2403,7 @@ function PlaybackControls(_ref) {
2359
2403
  }),
2360
2404
  withoutBootstrapStyles: true
2361
2405
  }) : null, /*#__PURE__*/React.createElement(Button$1, {
2362
- className: classNames([styles$2.playPauseButton, _defineProperty(_defineProperty({}, styles$2.hidden, controlsSuggestPlay && !controls), styles$2.loading, finalShowLoading)]),
2406
+ className: classNames([styles$1.playPauseButton, _defineProperty(_defineProperty({}, styles$1.hidden, controlsSuggestPlay && !controls), styles$1.loading, finalShowLoading)]),
2363
2407
  style: {
2364
2408
  color: color
2365
2409
  },
@@ -2367,7 +2411,7 @@ function PlaybackControls(_ref) {
2367
2411
  focusable: controls && controlsVisible && (!seekBarOnly || !playing),
2368
2412
  disabled: finalShowLoading,
2369
2413
  icon: finalShowLoading ? /*#__PURE__*/React.createElement(Spinner, {
2370
- className: classNames([styles$2.spinner, styles$2.offset])
2414
+ className: classNames([styles$1.spinner, styles$1.offset])
2371
2415
  }) : playIcon,
2372
2416
  "aria-pressed": !playing,
2373
2417
  "aria-label": finalShowLoading ? intl.formatMessage({
@@ -2385,7 +2429,7 @@ function PlaybackControls(_ref) {
2385
2429
  }),
2386
2430
  withoutBootstrapStyles: true
2387
2431
  }), /*#__PURE__*/React.createElement(SeekBar, {
2388
- className: styles$2.seekBar,
2432
+ className: styles$1.seekBar,
2389
2433
  media: mediaElement,
2390
2434
  playing: playing,
2391
2435
  onClick: onSeekClick,
@@ -2398,16 +2442,16 @@ function PlaybackControls(_ref) {
2398
2442
  backgroundColor: color,
2399
2443
  progressColor: progressColor
2400
2444
  }), /*#__PURE__*/React.createElement(Button$1, {
2401
- className: styles$2.muteButton,
2445
+ className: styles$1.muteButton,
2402
2446
  style: {
2403
2447
  color: color
2404
2448
  },
2405
2449
  onClick: muted ? onUnmute : onMute,
2406
2450
  focusable: controlsVisible || mediaHasAudio,
2407
2451
  icon: muted ? /*#__PURE__*/React.createElement(UnmuteIcon, {
2408
- className: styles$2.icon
2452
+ className: styles$1.icon
2409
2453
  }) : /*#__PURE__*/React.createElement(MuteIcon, {
2410
- className: styles$2.icon
2454
+ className: styles$1.icon
2411
2455
  }),
2412
2456
  "aria-pressed": !muted,
2413
2457
  "aria-label": intl.formatMessage({
@@ -2420,18 +2464,18 @@ function PlaybackControls(_ref) {
2420
2464
  withoutBootstrapStyles: true
2421
2465
  }));
2422
2466
  }
2423
- PlaybackControls.propTypes = propTypes$6;
2424
- PlaybackControls.defaultProps = defaultProps$6;
2467
+ PlaybackControls.propTypes = propTypes$4;
2468
+ PlaybackControls.defaultProps = defaultProps$4;
2425
2469
 
2426
- var styles$1 = {"container":"micromag-viewer-partials-web-view-container","focusLock":"micromag-viewer-partials-web-view-focusLock","opened":"micromag-viewer-partials-web-view-opened"};
2470
+ var styles = {"container":"micromag-viewer-partials-web-view-container","focusLock":"micromag-viewer-partials-web-view-focusLock","opened":"micromag-viewer-partials-web-view-opened"};
2427
2471
 
2428
2472
  var _excluded$2 = ["opened", "close", "open", "update", "url"];
2429
- var propTypes$5 = {
2473
+ var propTypes$3 = {
2430
2474
  onChange: PropTypes.func,
2431
2475
  className: PropTypes.string,
2432
2476
  style: PropTypes.object
2433
2477
  };
2434
- var defaultProps$5 = {
2478
+ var defaultProps$3 = {
2435
2479
  onChange: null,
2436
2480
  className: null,
2437
2481
  style: null
@@ -2505,7 +2549,7 @@ function WebViewContainer(_ref) {
2505
2549
  }, [close]);
2506
2550
  useKeyboardShortcuts(keyboardShortcuts);
2507
2551
  return /*#__PURE__*/React.createElement("div", {
2508
- className: classNames([styles$1.container, _defineProperty(_defineProperty({}, styles$1.opened, opened), className, className !== null)]),
2552
+ className: classNames([styles.container, _defineProperty(_defineProperty({}, styles.opened, opened), className, className !== null)]),
2509
2553
  style: style,
2510
2554
  onTransitionEnd: onTransitionEnd,
2511
2555
  ref: ref
@@ -2514,60 +2558,12 @@ function WebViewContainer(_ref) {
2514
2558
  }, webViewProps, {
2515
2559
  closeable: opened,
2516
2560
  focusable: opened,
2517
- className: styles$1.webView,
2561
+ className: styles.webView,
2518
2562
  onClose: close
2519
2563
  })));
2520
2564
  }
2521
- WebViewContainer.propTypes = propTypes$5;
2522
- WebViewContainer.defaultProps = defaultProps$5;
2523
-
2524
- var styles = {"container":"micromag-viewer-partials-hand-tap-container","circle":"micromag-viewer-partials-hand-tap-circle","pulse":"micromag-viewer-partials-hand-tap-pulse","hand":"micromag-viewer-partials-hand-tap-hand","panY":"micromag-viewer-partials-hand-tap-panY","inner":"micromag-viewer-partials-hand-tap-inner","shadowFade":"micromag-viewer-partials-hand-tap-shadowFade"};
2525
-
2526
- var propTypes$4 = {
2527
- color: PropTypes.string,
2528
- className: PropTypes.string
2529
- };
2530
- var defaultProps$4 = {
2531
- color: 'currentColor',
2532
- className: null
2533
- };
2534
- var HandIcon = function HandIcon(_ref) {
2535
- var color = _ref.color,
2536
- className = _ref.className;
2537
- return /*#__PURE__*/React.createElement("svg", {
2538
- className: className,
2539
- xmlns: "http://www.w3.org/2000/svg",
2540
- viewBox: "0 0 367.24 482.87"
2541
- }, /*#__PURE__*/React.createElement("path", {
2542
- d: "M488.84,255.91a44.68,44.68,0,0,0-19.15,4.3A44.77,44.77,0,0,0,406,226.49a44.75,44.75,0,0,0-62.67-32.66V105.4a44.81,44.81,0,1,0-89.61,0V265.17l-1.15-2.7a44.78,44.78,0,1,0-82.84,34.06l64.87,157.76.34.73a156.29,156.29,0,0,0,141.42,88.44c86.7,0,157.24-70.53,157.24-157.26V300.7a44.82,44.82,0,0,0-44.78-44.79ZM507.46,386.2c0,72.3-58.78,131.1-131.07,131.1a130.29,130.29,0,0,1-117.73-73.36L193.93,286.61a18.64,18.64,0,1,1,34.53-14.07L279.91,394V105.4a18.64,18.64,0,1,1,37.28,0v196a13.08,13.08,0,0,0,26.16,0V234.56a18.64,18.64,0,0,1,37.27,0v89.95a13.07,13.07,0,1,0,26.13,0V266.86a18.64,18.64,0,1,1,37.28,0v80.71h0s0,.08,0,.11a13.08,13.08,0,0,0,26.15,0v-47a18.63,18.63,0,1,1,37.26,0v85.5Z",
2543
- transform: "translate(-166.38 -60.59)",
2544
- fill: color,
2545
- fillRule: "evenodd"
2546
- }));
2547
- };
2548
- HandIcon.propTypes = propTypes$4;
2549
- HandIcon.defaultProps = defaultProps$4;
2550
-
2551
- var propTypes$3 = {
2552
- className: PropTypes.string
2553
- };
2554
- var defaultProps$3 = {
2555
- className: null
2556
- };
2557
- var HandTap = function HandTap(_ref) {
2558
- var className = _ref.className;
2559
- return /*#__PURE__*/React.createElement("div", {
2560
- className: classNames([styles.container, _defineProperty({}, className, className !== null)])
2561
- }, /*#__PURE__*/React.createElement("div", {
2562
- className: styles.inner
2563
- }, /*#__PURE__*/React.createElement("div", {
2564
- className: styles.circle
2565
- }), /*#__PURE__*/React.createElement(HandIcon, {
2566
- className: styles.hand
2567
- })));
2568
- };
2569
- HandTap.propTypes = propTypes$3;
2570
- HandTap.defaultProps = defaultProps$3;
2565
+ WebViewContainer.propTypes = propTypes$3;
2566
+ WebViewContainer.defaultProps = defaultProps$3;
2571
2567
 
2572
2568
  // @todo export from somewhere else; or use as props in possible component for screen transitions
2573
2569
  var SPRING_CONFIG_TIGHT = {
@@ -3223,6 +3219,11 @@ var Viewer = function Viewer(_ref) {
3223
3219
  bottomHeight = playbackControlsContainerHeight / screenScale;
3224
3220
  }
3225
3221
  var NavigationHint = withNavigationHint === 'hand' ? HandTap : ArrowHint;
3222
+ console.log({
3223
+ screenIndex: screenIndex,
3224
+ transitionDirection: transitionDirection,
3225
+ transitioned: transitioned
3226
+ });
3226
3227
  return /*#__PURE__*/React.createElement(StoryProvider, {
3227
3228
  story: parsedStory
3228
3229
  }, /*#__PURE__*/React.createElement(ScreenSizeProvider, {
@@ -3364,13 +3365,14 @@ var Viewer = function Viewer(_ref) {
3364
3365
  var active = current || isInActiveRange || isNext;
3365
3366
  var preload = current || preloadNeighbors && (isAfter && isInPreloadRange || neighborPreloadBackward && isBefore && isInPreloadRange) || isNext;
3366
3367
  var screenStyles = getScreenStylesByIndex(i, progressSpring);
3368
+ var isVisible = current || isDragging && isNext || transitionDirection !== 0 && !isDragging && i === screenIndex - transitionDirection || withNeighborScreens && active;
3367
3369
  return /*#__PURE__*/React.createElement(animated.div, {
3368
3370
  key: "screen-viewer-".concat(screen.id || '', "-").concat(i + 1),
3369
3371
  id: current ? 'content' : null,
3370
3372
  "aria-hidden": !current,
3371
3373
  style: screenStyles,
3372
3374
  tabIndex: current ? 0 : -1,
3373
- className: classNames([styles$7.screenContainer, _defineProperty({}, styles$7.current, current)])
3375
+ className: classNames([styles$7.screenContainer, _defineProperty(_defineProperty({}, styles$7.visible, isVisible), styles$7.current, current)])
3374
3376
  }, screen !== null ? /*#__PURE__*/React.createElement(ViewerScreen, {
3375
3377
  className: styles$7.screen,
3376
3378
  screen: screen,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/viewer",
3
- "version": "0.3.603",
3
+ "version": "0.3.605",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -64,14 +64,14 @@
64
64
  "dependencies": {
65
65
  "@babel/runtime": "^7.13.10",
66
66
  "@folklore/routes": "^0.2.27",
67
- "@micromag/core": "^0.3.601",
68
- "@micromag/element-badge": "^0.3.601",
69
- "@micromag/element-scroll": "^0.3.601",
70
- "@micromag/element-share-options": "^0.3.601",
71
- "@micromag/element-webview": "^0.3.601",
72
- "@micromag/elements": "^0.3.601",
73
- "@micromag/intl": "^0.3.601",
74
- "@micromag/screens": "^0.3.602",
67
+ "@micromag/core": "^0.3.605",
68
+ "@micromag/element-badge": "^0.3.605",
69
+ "@micromag/element-scroll": "^0.3.605",
70
+ "@micromag/element-share-options": "^0.3.605",
71
+ "@micromag/element-webview": "^0.3.605",
72
+ "@micromag/elements": "^0.3.605",
73
+ "@micromag/intl": "^0.3.605",
74
+ "@micromag/screens": "^0.3.605",
75
75
  "@react-spring/core": "^9.6.1",
76
76
  "@react-spring/web": "^9.6.1",
77
77
  "@use-gesture/react": "^10.3.0",
@@ -91,5 +91,5 @@
91
91
  "access": "public",
92
92
  "registry": "https://registry.npmjs.org/"
93
93
  },
94
- "gitHead": "7e0e4119372d527cdf48101bf285ded765c1d8c9"
94
+ "gitHead": "6cdf9b727b794de87e0cfe2e7cf437859661d6b8"
95
95
  }