@royaloperahouse/harmonic 0.15.0-d → 0.15.0-e

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.
@@ -3474,7 +3474,87 @@ var ButtonsContainer = /*#__PURE__*/styled.div(_templateObject$f || (_templateOb
3474
3474
  var BaseIconWrapper = /*#__PURE__*/styled.div(_templateObject2$9 || (_templateObject2$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n justify-content: center;\n display: flex;\n align-items: center;\n width: var(--rotator-button-width);\n height: var(--rotator-button-width);\n\n svg {\n width: var(--rotator-button-icon-width);\n height: var(--rotator-button-icon-width);\n }\n"])));
3475
3475
  var IconWrapper$1 = /*#__PURE__*/styled(BaseIconWrapper)(_templateObject3$5 || (_templateObject3$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--rotator-button-bg-color);\n color: var(--rotator-button-color);\n\n svg path {\n fill: var(--rotator-button-color);\n }\n\n :hover {\n cursor: pointer;\n background-color: var(--rotator-button-hover-bg-color);\n\n && svg path {\n fill: var(--rotator-button-hover-color);\n }\n }\n"])));
3476
3476
  var IconUnavailableWrapper = /*#__PURE__*/styled(BaseIconWrapper)(_templateObject4$3 || (_templateObject4$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--color-state-disabled);\n color: var(--color-primary-black);\n opacity: 0.2;\n\n svg path {\n fill: var(--color-primary-black);\n }\n\n @media ", " {\n pointer-events: none;\n }\n"])), devices.mobile);
3477
- var FullscreenIconWrapper = /*#__PURE__*/styled(IconWrapper$1)(_templateObject5$2 || (_templateObject5$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-left: 20px;\n\n @media ", " {\n display: none;\n pointer-events: none;\n }\n"])), devices.mobileAndTablet);
3477
+ var FullscreenIconWrapper = /*#__PURE__*/styled(IconWrapper$1)(_templateObject5$2 || (_templateObject5$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-left: 20px;\n"])));
3478
+
3479
+ // WARNING: Do not use this on server side rendering, it may throw an error.
3480
+ var isIOS = function isIOS() {
3481
+ try {
3482
+ console.warn('Do not use this on server side rendering, it may throw an error.');
3483
+ if (typeof navigator === undefined) return false;
3484
+ return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||
3485
+ // iPad on iOS 13 detection
3486
+ navigator.userAgent.includes('Mac') && 'ontouchend' in document;
3487
+ } catch (e) {
3488
+ console.warn('Error checking if device is iOS.', e);
3489
+ return false;
3490
+ }
3491
+ };
3492
+ // React hook version of isIOS (for server side rendering)
3493
+ var useIOS = function useIOS() {
3494
+ var _useState = useState(false),
3495
+ IOS = _useState[0],
3496
+ setIOS = _useState[1];
3497
+ useEffect(function () {
3498
+ if (typeof navigator === undefined) return;
3499
+ setIOS(isIOS());
3500
+ }, []);
3501
+ return IOS;
3502
+ };
3503
+ // Checks device size based on window width
3504
+ var isMobile = function isMobile() {
3505
+ try {
3506
+ console.warn('Do not use this on server side rendering, it may throw an error.');
3507
+ if (typeof window === undefined) return false;
3508
+ return window.innerWidth < breakpoints.sm;
3509
+ } catch (e) {
3510
+ console.warn('Error checking if device is mobile.', e);
3511
+ return false;
3512
+ }
3513
+ };
3514
+ // React hook version of isMobile (for server side rendering)
3515
+ var useMobile = function useMobile() {
3516
+ var _useState2 = useState(false),
3517
+ mobile = _useState2[0],
3518
+ setMobile = _useState2[1];
3519
+ useEffect(function () {
3520
+ if (typeof window === undefined) return;
3521
+ setMobile(isMobile());
3522
+ }, []);
3523
+ return mobile;
3524
+ };
3525
+ var useViewport = function useViewport() {
3526
+ var _useState3 = useState(false),
3527
+ hydrated = _useState3[0],
3528
+ setHydrated = _useState3[1];
3529
+ var _useState4 = useState({
3530
+ width: 0,
3531
+ isMobile: false,
3532
+ isTablet: false,
3533
+ isDesktop: false
3534
+ }),
3535
+ viewport = _useState4[0],
3536
+ setViewport = _useState4[1];
3537
+ useEffect(function () {
3538
+ if (typeof window === 'undefined') return undefined;
3539
+ var handleResize = function handleResize() {
3540
+ setViewport({
3541
+ width: window.innerWidth,
3542
+ isMobile: window.innerWidth < breakpoints.sm,
3543
+ isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
3544
+ isDesktop: window.innerWidth >= breakpoints.md
3545
+ });
3546
+ };
3547
+ handleResize();
3548
+ setHydrated(true);
3549
+ window.addEventListener('resize', handleResize);
3550
+ return function () {
3551
+ return window.removeEventListener('resize', handleResize);
3552
+ };
3553
+ }, []);
3554
+ return _extends({}, viewport, {
3555
+ hydrated: hydrated
3556
+ });
3557
+ };
3478
3558
 
3479
3559
  var RotatorButtons = function RotatorButtons(_ref) {
3480
3560
  var onClickPrev = _ref.onClickPrev,
@@ -3489,6 +3569,11 @@ var RotatorButtons = function RotatorButtons(_ref) {
3489
3569
  _ref$isFullscreen = _ref.isFullscreen,
3490
3570
  isFullscreen = _ref$isFullscreen === void 0 ? false : _ref$isFullscreen,
3491
3571
  className = _ref.className;
3572
+ var _useViewport = useViewport(),
3573
+ isMobile = _useViewport.isMobile,
3574
+ isTablet = _useViewport.isTablet,
3575
+ hydrated = _useViewport.hydrated;
3576
+ if (!hydrated) return null;
3492
3577
  var onClickLeftHandler = function onClickLeftHandler() {
3493
3578
  if (onClickPrev) {
3494
3579
  onClickPrev();
@@ -3559,7 +3644,7 @@ var RotatorButtons = function RotatorButtons(_ref) {
3559
3644
  role: "button"
3560
3645
  }, renderNextIcon())) : (/*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
3561
3646
  "data-testid": "iconnextnoavailable"
3562
- }, renderNextIcon())), showFullscreen && (/*#__PURE__*/React__default.createElement(FullscreenIconWrapper, {
3647
+ }, renderNextIcon())), showFullscreen && !isMobile && !isTablet && (/*#__PURE__*/React__default.createElement(FullscreenIconWrapper, {
3563
3648
  onClick: onClickFullscreenHandler,
3564
3649
  onKeyDown: onFullscreenKeyDownHandler,
3565
3650
  tabIndex: 0,
@@ -4972,86 +5057,6 @@ var _templateObject$w, _templateObject2$n;
4972
5057
  var MediaLinksWrapper = /*#__PURE__*/styled.div(_templateObject$w || (_templateObject$w = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: var(--footer-media-gap);\n"])));
4973
5058
  var MediaIconWrapper = /*#__PURE__*/styled.a(_templateObject2$n || (_templateObject2$n = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: var(--footer-media-icon-height);\n width: var(--footer-media-icon-width);\n\n &:focus {\n outline: 2px solid var(--color-base-white);\n }\n"])));
4974
5059
 
4975
- // WARNING: Do not use this on server side rendering, it may throw an error.
4976
- var isIOS = function isIOS() {
4977
- try {
4978
- console.warn('Do not use this on server side rendering, it may throw an error.');
4979
- if (typeof navigator === undefined) return false;
4980
- return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||
4981
- // iPad on iOS 13 detection
4982
- navigator.userAgent.includes('Mac') && 'ontouchend' in document;
4983
- } catch (e) {
4984
- console.warn('Error checking if device is iOS.', e);
4985
- return false;
4986
- }
4987
- };
4988
- // React hook version of isIOS (for server side rendering)
4989
- var useIOS = function useIOS() {
4990
- var _useState = useState(false),
4991
- IOS = _useState[0],
4992
- setIOS = _useState[1];
4993
- useEffect(function () {
4994
- if (typeof navigator === undefined) return;
4995
- setIOS(isIOS());
4996
- }, []);
4997
- return IOS;
4998
- };
4999
- // Checks device size based on window width
5000
- var isMobile = function isMobile() {
5001
- try {
5002
- console.warn('Do not use this on server side rendering, it may throw an error.');
5003
- if (typeof window === undefined) return false;
5004
- return window.innerWidth < breakpoints.sm;
5005
- } catch (e) {
5006
- console.warn('Error checking if device is mobile.', e);
5007
- return false;
5008
- }
5009
- };
5010
- // React hook version of isMobile (for server side rendering)
5011
- var useMobile = function useMobile() {
5012
- var _useState2 = useState(false),
5013
- mobile = _useState2[0],
5014
- setMobile = _useState2[1];
5015
- useEffect(function () {
5016
- if (typeof window === undefined) return;
5017
- setMobile(isMobile());
5018
- }, []);
5019
- return mobile;
5020
- };
5021
- var useViewport = function useViewport() {
5022
- var _useState3 = useState(false),
5023
- hydrated = _useState3[0],
5024
- setHydrated = _useState3[1];
5025
- var _useState4 = useState({
5026
- width: 0,
5027
- isMobile: false,
5028
- isTablet: false,
5029
- isDesktop: false
5030
- }),
5031
- viewport = _useState4[0],
5032
- setViewport = _useState4[1];
5033
- useEffect(function () {
5034
- if (typeof window === 'undefined') return undefined;
5035
- var handleResize = function handleResize() {
5036
- setViewport({
5037
- width: window.innerWidth,
5038
- isMobile: window.innerWidth < breakpoints.sm,
5039
- isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
5040
- isDesktop: window.innerWidth >= breakpoints.md
5041
- });
5042
- };
5043
- handleResize();
5044
- setHydrated(true);
5045
- window.addEventListener('resize', handleResize);
5046
- return function () {
5047
- return window.removeEventListener('resize', handleResize);
5048
- };
5049
- }, []);
5050
- return _extends({}, viewport, {
5051
- hydrated: hydrated
5052
- });
5053
- };
5054
-
5055
5060
  var SocialLinks = function SocialLinks(_ref) {
5056
5061
  var items = _ref.items;
5057
5062
  var _useViewport = useViewport(),