@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.
- package/dist/components/atoms/RotatorButtons/RotatorButtons.d.ts +1 -1
- package/dist/harmonic.cjs.development.js +87 -82
- package/dist/harmonic.cjs.development.js.map +1 -1
- package/dist/harmonic.cjs.production.min.js +1 -1
- package/dist/harmonic.cjs.production.min.js.map +1 -1
- package/dist/harmonic.esm.js +87 -82
- package/dist/harmonic.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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(),
|