@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.
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import type { RotatorButtonsProps } from '../../../types/buttonTypes';
3
- declare const RotatorButtons: ({ onClickPrev, onClickNext, availablePrev, availableNext, showFullscreen, onClickFullscreen, isFullscreen, className, }: RotatorButtonsProps) => React.JSX.Element;
3
+ declare const RotatorButtons: ({ onClickPrev, onClickNext, availablePrev, availableNext, showFullscreen, onClickFullscreen, isFullscreen, className, }: RotatorButtonsProps) => React.JSX.Element | null;
4
4
  export default RotatorButtons;
@@ -3450,7 +3450,87 @@ var ButtonsContainer = /*#__PURE__*/styled__default.div(_templateObject$f || (_t
3450
3450
  var BaseIconWrapper = /*#__PURE__*/styled__default.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"])));
3451
3451
  var IconWrapper$1 = /*#__PURE__*/styled__default(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"])));
3452
3452
  var IconUnavailableWrapper = /*#__PURE__*/styled__default(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);
3453
- var FullscreenIconWrapper = /*#__PURE__*/styled__default(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);
3453
+ var FullscreenIconWrapper = /*#__PURE__*/styled__default(IconWrapper$1)(_templateObject5$2 || (_templateObject5$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-left: 20px;\n"])));
3454
+
3455
+ // WARNING: Do not use this on server side rendering, it may throw an error.
3456
+ var isIOS = function isIOS() {
3457
+ try {
3458
+ console.warn('Do not use this on server side rendering, it may throw an error.');
3459
+ if (typeof navigator === undefined) return false;
3460
+ return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||
3461
+ // iPad on iOS 13 detection
3462
+ navigator.userAgent.includes('Mac') && 'ontouchend' in document;
3463
+ } catch (e) {
3464
+ console.warn('Error checking if device is iOS.', e);
3465
+ return false;
3466
+ }
3467
+ };
3468
+ // React hook version of isIOS (for server side rendering)
3469
+ var useIOS = function useIOS() {
3470
+ var _useState = React.useState(false),
3471
+ IOS = _useState[0],
3472
+ setIOS = _useState[1];
3473
+ React.useEffect(function () {
3474
+ if (typeof navigator === undefined) return;
3475
+ setIOS(isIOS());
3476
+ }, []);
3477
+ return IOS;
3478
+ };
3479
+ // Checks device size based on window width
3480
+ var isMobile = function isMobile() {
3481
+ try {
3482
+ console.warn('Do not use this on server side rendering, it may throw an error.');
3483
+ if (typeof window === undefined) return false;
3484
+ return window.innerWidth < breakpoints.sm;
3485
+ } catch (e) {
3486
+ console.warn('Error checking if device is mobile.', e);
3487
+ return false;
3488
+ }
3489
+ };
3490
+ // React hook version of isMobile (for server side rendering)
3491
+ var useMobile = function useMobile() {
3492
+ var _useState2 = React.useState(false),
3493
+ mobile = _useState2[0],
3494
+ setMobile = _useState2[1];
3495
+ React.useEffect(function () {
3496
+ if (typeof window === undefined) return;
3497
+ setMobile(isMobile());
3498
+ }, []);
3499
+ return mobile;
3500
+ };
3501
+ var useViewport = function useViewport() {
3502
+ var _useState3 = React.useState(false),
3503
+ hydrated = _useState3[0],
3504
+ setHydrated = _useState3[1];
3505
+ var _useState4 = React.useState({
3506
+ width: 0,
3507
+ isMobile: false,
3508
+ isTablet: false,
3509
+ isDesktop: false
3510
+ }),
3511
+ viewport = _useState4[0],
3512
+ setViewport = _useState4[1];
3513
+ React.useEffect(function () {
3514
+ if (typeof window === 'undefined') return undefined;
3515
+ var handleResize = function handleResize() {
3516
+ setViewport({
3517
+ width: window.innerWidth,
3518
+ isMobile: window.innerWidth < breakpoints.sm,
3519
+ isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
3520
+ isDesktop: window.innerWidth >= breakpoints.md
3521
+ });
3522
+ };
3523
+ handleResize();
3524
+ setHydrated(true);
3525
+ window.addEventListener('resize', handleResize);
3526
+ return function () {
3527
+ return window.removeEventListener('resize', handleResize);
3528
+ };
3529
+ }, []);
3530
+ return _extends({}, viewport, {
3531
+ hydrated: hydrated
3532
+ });
3533
+ };
3454
3534
 
3455
3535
  var RotatorButtons = function RotatorButtons(_ref) {
3456
3536
  var onClickPrev = _ref.onClickPrev,
@@ -3465,6 +3545,11 @@ var RotatorButtons = function RotatorButtons(_ref) {
3465
3545
  _ref$isFullscreen = _ref.isFullscreen,
3466
3546
  isFullscreen = _ref$isFullscreen === void 0 ? false : _ref$isFullscreen,
3467
3547
  className = _ref.className;
3548
+ var _useViewport = useViewport(),
3549
+ isMobile = _useViewport.isMobile,
3550
+ isTablet = _useViewport.isTablet,
3551
+ hydrated = _useViewport.hydrated;
3552
+ if (!hydrated) return null;
3468
3553
  var onClickLeftHandler = function onClickLeftHandler() {
3469
3554
  if (onClickPrev) {
3470
3555
  onClickPrev();
@@ -3535,7 +3620,7 @@ var RotatorButtons = function RotatorButtons(_ref) {
3535
3620
  role: "button"
3536
3621
  }, renderNextIcon())) : (/*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
3537
3622
  "data-testid": "iconnextnoavailable"
3538
- }, renderNextIcon())), showFullscreen && (/*#__PURE__*/React__default.createElement(FullscreenIconWrapper, {
3623
+ }, renderNextIcon())), showFullscreen && !isMobile && !isTablet && (/*#__PURE__*/React__default.createElement(FullscreenIconWrapper, {
3539
3624
  onClick: onClickFullscreenHandler,
3540
3625
  onKeyDown: onFullscreenKeyDownHandler,
3541
3626
  tabIndex: 0,
@@ -4947,86 +5032,6 @@ var _templateObject$w, _templateObject2$n;
4947
5032
  var MediaLinksWrapper = /*#__PURE__*/styled__default.div(_templateObject$w || (_templateObject$w = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: var(--footer-media-gap);\n"])));
4948
5033
  var MediaIconWrapper = /*#__PURE__*/styled__default.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"])));
4949
5034
 
4950
- // WARNING: Do not use this on server side rendering, it may throw an error.
4951
- var isIOS = function isIOS() {
4952
- try {
4953
- console.warn('Do not use this on server side rendering, it may throw an error.');
4954
- if (typeof navigator === undefined) return false;
4955
- return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||
4956
- // iPad on iOS 13 detection
4957
- navigator.userAgent.includes('Mac') && 'ontouchend' in document;
4958
- } catch (e) {
4959
- console.warn('Error checking if device is iOS.', e);
4960
- return false;
4961
- }
4962
- };
4963
- // React hook version of isIOS (for server side rendering)
4964
- var useIOS = function useIOS() {
4965
- var _useState = React.useState(false),
4966
- IOS = _useState[0],
4967
- setIOS = _useState[1];
4968
- React.useEffect(function () {
4969
- if (typeof navigator === undefined) return;
4970
- setIOS(isIOS());
4971
- }, []);
4972
- return IOS;
4973
- };
4974
- // Checks device size based on window width
4975
- var isMobile = function isMobile() {
4976
- try {
4977
- console.warn('Do not use this on server side rendering, it may throw an error.');
4978
- if (typeof window === undefined) return false;
4979
- return window.innerWidth < breakpoints.sm;
4980
- } catch (e) {
4981
- console.warn('Error checking if device is mobile.', e);
4982
- return false;
4983
- }
4984
- };
4985
- // React hook version of isMobile (for server side rendering)
4986
- var useMobile = function useMobile() {
4987
- var _useState2 = React.useState(false),
4988
- mobile = _useState2[0],
4989
- setMobile = _useState2[1];
4990
- React.useEffect(function () {
4991
- if (typeof window === undefined) return;
4992
- setMobile(isMobile());
4993
- }, []);
4994
- return mobile;
4995
- };
4996
- var useViewport = function useViewport() {
4997
- var _useState3 = React.useState(false),
4998
- hydrated = _useState3[0],
4999
- setHydrated = _useState3[1];
5000
- var _useState4 = React.useState({
5001
- width: 0,
5002
- isMobile: false,
5003
- isTablet: false,
5004
- isDesktop: false
5005
- }),
5006
- viewport = _useState4[0],
5007
- setViewport = _useState4[1];
5008
- React.useEffect(function () {
5009
- if (typeof window === 'undefined') return undefined;
5010
- var handleResize = function handleResize() {
5011
- setViewport({
5012
- width: window.innerWidth,
5013
- isMobile: window.innerWidth < breakpoints.sm,
5014
- isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
5015
- isDesktop: window.innerWidth >= breakpoints.md
5016
- });
5017
- };
5018
- handleResize();
5019
- setHydrated(true);
5020
- window.addEventListener('resize', handleResize);
5021
- return function () {
5022
- return window.removeEventListener('resize', handleResize);
5023
- };
5024
- }, []);
5025
- return _extends({}, viewport, {
5026
- hydrated: hydrated
5027
- });
5028
- };
5029
-
5030
5035
  var SocialLinks = function SocialLinks(_ref) {
5031
5036
  var items = _ref.items;
5032
5037
  var _useViewport = useViewport(),