@royaloperahouse/harmonic 1.0.4 → 1.0.5-b
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/CHANGELOG.md +14 -5
- package/README.md +267 -43
- package/dist/components/atoms/Dropdown/Dropdown.d.ts +1 -1
- package/dist/components/atoms/Tab/Tab.d.ts +1 -1
- package/dist/harmonic.cjs.development.css +319 -0
- package/dist/harmonic.cjs.development.js +80 -34
- 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 +91 -42
- package/dist/harmonic.esm.js.map +1 -1
- package/dist/styles/HarmonicThemeProvider/HarmonicThemeProvider.d.ts +1 -0
- package/dist/types/modalWindow.d.ts +4 -0
- package/dist/types/types.d.ts +43 -2
- package/package.json +1 -1
- package/README.GIT +0 -293
|
@@ -2692,6 +2692,7 @@ var Tab = function Tab(_ref) {
|
|
|
2692
2692
|
className = _ref.className,
|
|
2693
2693
|
role = _ref.role,
|
|
2694
2694
|
ariaLabel = _ref.ariaLabel,
|
|
2695
|
+
tabLinkId = _ref.tabLinkId,
|
|
2695
2696
|
color = _ref.color,
|
|
2696
2697
|
dataTestId = _ref.dataTestId,
|
|
2697
2698
|
isOpen = _ref.isOpen;
|
|
@@ -2726,8 +2727,9 @@ var Tab = function Tab(_ref) {
|
|
|
2726
2727
|
className: className,
|
|
2727
2728
|
"data-testid": dataTestId
|
|
2728
2729
|
}, /*#__PURE__*/React__default.createElement(TabText, {
|
|
2729
|
-
|
|
2730
|
+
id: tabLinkId,
|
|
2730
2731
|
trimText: trimText,
|
|
2732
|
+
color: color,
|
|
2731
2733
|
withTextInMobile: withTextInMobile,
|
|
2732
2734
|
"aria-hidden": "true"
|
|
2733
2735
|
}, title), withIcon !== 'none' && /*#__PURE__*/React__default.createElement(Icon, {
|
|
@@ -2757,6 +2759,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2757
2759
|
className = _ref.className,
|
|
2758
2760
|
role = _ref.role,
|
|
2759
2761
|
ariaLabel = _ref.ariaLabel,
|
|
2762
|
+
tabLinkId = _ref.tabLinkId,
|
|
2760
2763
|
trimTabText = _ref.trimTabText;
|
|
2761
2764
|
var node = React.useRef();
|
|
2762
2765
|
var _useState = React.useState(false),
|
|
@@ -2853,6 +2856,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2853
2856
|
};
|
|
2854
2857
|
var renderTab = function renderTab() {
|
|
2855
2858
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Tab, {
|
|
2859
|
+
tabLinkId: tabLinkId,
|
|
2856
2860
|
trimText: trimTabText,
|
|
2857
2861
|
title: title,
|
|
2858
2862
|
titleLink: titleLink,
|
|
@@ -2932,7 +2936,8 @@ var Account = function Account(_ref) {
|
|
|
2932
2936
|
iconName: iconName,
|
|
2933
2937
|
withOptionsInMobile: false,
|
|
2934
2938
|
withIcon: "left",
|
|
2935
|
-
className: className
|
|
2939
|
+
className: className,
|
|
2940
|
+
tabLinkId: "account-link"
|
|
2936
2941
|
});
|
|
2937
2942
|
};
|
|
2938
2943
|
|
|
@@ -5662,6 +5667,7 @@ var Accordion = function Accordion(_ref) {
|
|
|
5662
5667
|
var toggleAccordion = function toggleAccordion() {
|
|
5663
5668
|
if (React__default.Children.count(children) === 0) return;
|
|
5664
5669
|
if (openAccordion) {
|
|
5670
|
+
setIcon(collapsedStateIconData);
|
|
5665
5671
|
setOpenAccordion(false);
|
|
5666
5672
|
setTextHeight('0px');
|
|
5667
5673
|
setIcon(collapsedStateIconData);
|
|
@@ -6014,14 +6020,9 @@ var BodyContent = function BodyContent(_ref2) {
|
|
|
6014
6020
|
_ref2$renderGridItem = _ref2.renderGridItem,
|
|
6015
6021
|
renderGridItem = _ref2$renderGridItem === void 0 ? true : _ref2$renderGridItem;
|
|
6016
6022
|
var textContainerClassName = !renderGrid && !renderGridItem ? className : undefined;
|
|
6017
|
-
var content = /*#__PURE__*/React__default.createElement(
|
|
6018
|
-
tag: "div",
|
|
6019
|
-
size: "large",
|
|
6020
|
-
"data-testid": "text-container",
|
|
6023
|
+
var content = /*#__PURE__*/React__default.createElement(BodyContentTextContainer, {
|
|
6021
6024
|
className: textContainerClassName,
|
|
6022
|
-
|
|
6023
|
-
__html: addTypographyClasses(text)
|
|
6024
|
-
}
|
|
6025
|
+
html: text
|
|
6025
6026
|
});
|
|
6026
6027
|
var gridItemOrContent = renderGridItem ? (/*#__PURE__*/React__default.createElement(GridItem, {
|
|
6027
6028
|
columnStartDesktop: columnStartDesktop,
|
|
@@ -6830,12 +6831,15 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
6830
6831
|
listRoleDescription = _ref.listRoleDescription,
|
|
6831
6832
|
className = _ref.className,
|
|
6832
6833
|
onSelect = _ref.onSelect,
|
|
6834
|
+
onSelectId = _ref.onSelectId,
|
|
6833
6835
|
onApply = _ref.onApply,
|
|
6836
|
+
onApplyIds = _ref.onApplyIds,
|
|
6834
6837
|
onClear = _ref.onClear,
|
|
6835
6838
|
_ref$greyscale = _ref.greyscale,
|
|
6836
6839
|
greyscale = _ref$greyscale === void 0 ? false : _ref$greyscale,
|
|
6837
6840
|
_ref$selectedIndices = _ref.selectedIndices,
|
|
6838
|
-
selectedIndices = _ref$selectedIndices === void 0 ? [] : _ref$selectedIndices
|
|
6841
|
+
selectedIndices = _ref$selectedIndices === void 0 ? [] : _ref$selectedIndices,
|
|
6842
|
+
selectedIds = _ref.selectedIds;
|
|
6839
6843
|
var _useViewport = useViewport(),
|
|
6840
6844
|
isMobile = _useViewport.isMobile;
|
|
6841
6845
|
var castWrapperRef = React.useRef(null);
|
|
@@ -6937,14 +6941,51 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
6937
6941
|
isDraggingRef.current = false;
|
|
6938
6942
|
hasDraggedRef.current = false;
|
|
6939
6943
|
}, [isMobile]);
|
|
6940
|
-
var
|
|
6944
|
+
var getCastItemSelectionId = React.useCallback(function (person) {
|
|
6945
|
+
if (person.id !== undefined && person.id !== null) return String(person.id);
|
|
6946
|
+
if (person.slug !== undefined && person.slug !== null) return String(person.slug);
|
|
6947
|
+
return person.name;
|
|
6948
|
+
}, []);
|
|
6949
|
+
var isIdSelectionMode = selectedIds !== undefined;
|
|
6950
|
+
var selectedIdsSet = React.useMemo(function () {
|
|
6951
|
+
var ids = selectedIds != null ? selectedIds : [];
|
|
6952
|
+
return new Set(ids.map(function (id) {
|
|
6953
|
+
return String(id);
|
|
6954
|
+
}));
|
|
6955
|
+
}, [selectedIds]);
|
|
6956
|
+
var selectedStateIndices = React.useMemo(function () {
|
|
6957
|
+
if (!isIdSelectionMode) return selectedIndices;
|
|
6958
|
+
return cast.flatMap(function (person, index) {
|
|
6959
|
+
var itemId = getCastItemSelectionId(person);
|
|
6960
|
+
return selectedIdsSet.has(itemId) ? [index] : [];
|
|
6961
|
+
});
|
|
6962
|
+
}, [cast, getCastItemSelectionId, isIdSelectionMode, selectedIdsSet, selectedIndices]);
|
|
6963
|
+
var selectedStateIds = React.useMemo(function () {
|
|
6964
|
+
if (isIdSelectionMode) {
|
|
6965
|
+
return cast.filter(function (person) {
|
|
6966
|
+
return selectedIdsSet.has(getCastItemSelectionId(person));
|
|
6967
|
+
}).map(function (person) {
|
|
6968
|
+
return getCastItemSelectionId(person);
|
|
6969
|
+
});
|
|
6970
|
+
}
|
|
6971
|
+
return selectedIndices.map(function (index) {
|
|
6972
|
+
return cast[index];
|
|
6973
|
+
}).filter(function (person) {
|
|
6974
|
+
return person !== undefined;
|
|
6975
|
+
}).map(function (person) {
|
|
6976
|
+
return getCastItemSelectionId(person);
|
|
6977
|
+
});
|
|
6978
|
+
}, [cast, getCastItemSelectionId, isIdSelectionMode, selectedIdsSet, selectedIndices]);
|
|
6979
|
+
var handleClick = React__default.useCallback(function (index, itemId, onClick) {
|
|
6941
6980
|
if (hasDraggedRef.current) return;
|
|
6981
|
+
if (onSelectId) onSelectId(itemId);
|
|
6942
6982
|
if (onSelect) onSelect(index);
|
|
6943
6983
|
if (onClick) onClick();
|
|
6944
|
-
}, [onSelect]);
|
|
6945
|
-
var handlePersonKeydown = React__default.useCallback(function (e, index, onClick) {
|
|
6946
|
-
if (e.key === 'Enter') {
|
|
6947
|
-
|
|
6984
|
+
}, [onSelect, onSelectId]);
|
|
6985
|
+
var handlePersonKeydown = React__default.useCallback(function (e, index, itemId, onClick) {
|
|
6986
|
+
if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {
|
|
6987
|
+
e.preventDefault();
|
|
6988
|
+
handleClick(index, itemId, onClick);
|
|
6948
6989
|
}
|
|
6949
6990
|
}, [handleClick]);
|
|
6950
6991
|
var handleClearKeydown = React__default.useCallback(function (e) {
|
|
@@ -6959,27 +7000,27 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
6959
7000
|
image = person.image,
|
|
6960
7001
|
_onClick = person.onClick,
|
|
6961
7002
|
ariaLabel = person['aria-label'];
|
|
6962
|
-
var
|
|
7003
|
+
var personSelectionId = getCastItemSelectionId(person);
|
|
7004
|
+
var isSelected = isIdSelectionMode ? selectedIdsSet.has(personSelectionId) : selectedIndices.includes(index);
|
|
6963
7005
|
var personImage = image || placeholderImage || defaultPlaceholderImage;
|
|
6964
7006
|
return /*#__PURE__*/React__default.createElement(PersonWrapper, {
|
|
6965
|
-
key:
|
|
7007
|
+
key: personSelectionId,
|
|
6966
7008
|
"aria-selected": isSelected,
|
|
6967
|
-
"aria-label": ariaLabel
|
|
6968
|
-
"aria-posinset": index + 1,
|
|
6969
|
-
"aria-setsize": cast.length,
|
|
7009
|
+
"aria-label": ariaLabel != null ? ariaLabel : name,
|
|
6970
7010
|
role: "option",
|
|
6971
7011
|
tabIndex: 0,
|
|
7012
|
+
onClick: function onClick() {
|
|
7013
|
+
return handleClick(index, personSelectionId, _onClick);
|
|
7014
|
+
},
|
|
6972
7015
|
onKeyDown: function onKeyDown(e) {
|
|
6973
|
-
return handlePersonKeydown(e, index, _onClick);
|
|
7016
|
+
return handlePersonKeydown(e, index, personSelectionId, _onClick);
|
|
6974
7017
|
}
|
|
6975
7018
|
}, /*#__PURE__*/React__default.createElement(PersonToggle, {
|
|
6976
7019
|
isSelected: isSelected,
|
|
6977
|
-
|
|
6978
|
-
return handleClick(index, _onClick);
|
|
6979
|
-
}
|
|
7020
|
+
"aria-hidden": "true"
|
|
6980
7021
|
}, /*#__PURE__*/React__default.createElement(PersonImage, {
|
|
6981
7022
|
src: personImage,
|
|
6982
|
-
alt:
|
|
7023
|
+
alt: "",
|
|
6983
7024
|
draggable: false,
|
|
6984
7025
|
isDefaultPlaceholder: !(!!image || !!placeholderImage),
|
|
6985
7026
|
greyscale: greyscale
|
|
@@ -7015,7 +7056,8 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
7015
7056
|
ref: castWrapperRef,
|
|
7016
7057
|
role: "listbox",
|
|
7017
7058
|
"aria-roledescription": listRoleDescription != null ? listRoleDescription : 'filter list',
|
|
7018
|
-
"aria-
|
|
7059
|
+
"aria-label": "filter list",
|
|
7060
|
+
"aria-multiselectable": "true",
|
|
7019
7061
|
onMouseDown: handleMouseDown,
|
|
7020
7062
|
onMouseMove: handleMouseMove,
|
|
7021
7063
|
onMouseUp: handleMouseUp,
|
|
@@ -7026,14 +7068,15 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
7026
7068
|
ref: swipeRef,
|
|
7027
7069
|
onOverflowChange: handleOverflowChange,
|
|
7028
7070
|
limitDragToNavigableRange: true
|
|
7029
|
-
}, getPersonCards())))), showActionButtonsSection && (/*#__PURE__*/React__default.createElement(ActionButtons, null,
|
|
7071
|
+
}, getPersonCards())))), showActionButtonsSection && (/*#__PURE__*/React__default.createElement(ActionButtons, null, selectedStateIndices.length === 0 && emptySelectionText && (/*#__PURE__*/React__default.createElement(BodyCopyHarmonic, {
|
|
7030
7072
|
size: "medium",
|
|
7031
7073
|
className: "mobile-only"
|
|
7032
|
-
}, emptySelectionText)),
|
|
7074
|
+
}, emptySelectionText)), selectedStateIndices.length === 0 && !emptySelectionText && /*#__PURE__*/React__default.createElement(EmptySelectionTextSpacer, null), selectedStateIndices.length > 0 && (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, (onApply || onApplyIds) && (/*#__PURE__*/React__default.createElement(PrimaryButton, {
|
|
7033
7075
|
onClick: function onClick() {
|
|
7034
|
-
|
|
7076
|
+
if (onApply) onApply(selectedStateIndices);
|
|
7077
|
+
if (onApplyIds) onApplyIds(selectedStateIds);
|
|
7035
7078
|
}
|
|
7036
|
-
}, ctaText != null ? ctaText : 'Apply'), onClear && (/*#__PURE__*/React__default.createElement(TextLink, {
|
|
7079
|
+
}, ctaText != null ? ctaText : 'Apply')), onClear && (/*#__PURE__*/React__default.createElement(TextLink, {
|
|
7037
7080
|
tabIndex: 0,
|
|
7038
7081
|
role: "button",
|
|
7039
7082
|
onClick: onClear,
|
|
@@ -9033,7 +9076,7 @@ var _excluded$l = ["text"],
|
|
|
9033
9076
|
_excluded3$1 = ["text"];
|
|
9034
9077
|
var _buttonTypeToButton$1;
|
|
9035
9078
|
var LENGTH_TEXT$1 = 28;
|
|
9036
|
-
var LENGTH_TEXT_PARAGRAPH =
|
|
9079
|
+
var LENGTH_TEXT_PARAGRAPH = 185;
|
|
9037
9080
|
var buttonTypeToButton$1 = (_buttonTypeToButton$1 = {}, _buttonTypeToButton$1[exports.ButtonType.Primary] = PrimaryButton, _buttonTypeToButton$1[exports.ButtonType.Secondary] = SecondaryButton, _buttonTypeToButton$1[exports.ButtonType.Tertiary] = TertiaryButton, _buttonTypeToButton$1);
|
|
9038
9081
|
var PromoWithTags = function PromoWithTags(_ref) {
|
|
9039
9082
|
var _ref$imagePosition = _ref.imagePosition,
|
|
@@ -12212,7 +12255,7 @@ var CloseButton = /*#__PURE__*/styled__default.button(_templateObject2$19 || (_t
|
|
|
12212
12255
|
var ContentWrapper$3 = /*#__PURE__*/styled__default.div(_templateObject3$V || (_templateObject3$V = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
|
|
12213
12256
|
var Overlay = /*#__PURE__*/styled__default(Grid)(_templateObject4$N || (_templateObject4$N = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n align-content: center;\n background-color: rgba(0, 0, 0, 0.4);\n"])));
|
|
12214
12257
|
|
|
12215
|
-
var _excluded$s = ["isOpen", "setIsOpen", "children", "appElementId"];
|
|
12258
|
+
var _excluded$s = ["isOpen", "setIsOpen", "children", "appElementId", "closeButtonAriaLabel"];
|
|
12216
12259
|
var MAX_Z_INDEX = 9999999999;
|
|
12217
12260
|
if (Modal.defaultStyles.content) {
|
|
12218
12261
|
Modal.defaultStyles.content.position = 'static';
|
|
@@ -12286,6 +12329,8 @@ var ModalWindow = function ModalWindow(_ref) {
|
|
|
12286
12329
|
setIsOpen = _ref.setIsOpen,
|
|
12287
12330
|
children = _ref.children,
|
|
12288
12331
|
appElementId = _ref.appElementId,
|
|
12332
|
+
_ref$closeButtonAriaL = _ref.closeButtonAriaLabel,
|
|
12333
|
+
closeButtonAriaLabel = _ref$closeButtonAriaL === void 0 ? 'Close modal window' : _ref$closeButtonAriaL,
|
|
12289
12334
|
modalProps = _objectWithoutPropertiesLoose(_ref, _excluded$s);
|
|
12290
12335
|
var isMobile = useMobile();
|
|
12291
12336
|
var customStyles = {
|
|
@@ -12318,10 +12363,11 @@ var ModalWindow = function ModalWindow(_ref) {
|
|
|
12318
12363
|
columnSpanSmallDevice: 14
|
|
12319
12364
|
}, /*#__PURE__*/React__default.createElement(InnerModal, null, /*#__PURE__*/React__default.createElement(CloseButton, {
|
|
12320
12365
|
onClick: closeModalHandler,
|
|
12321
|
-
"aria-label":
|
|
12366
|
+
"aria-label": closeButtonAriaLabel,
|
|
12322
12367
|
tabIndex: 0
|
|
12323
12368
|
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
12324
|
-
iconName: "Close"
|
|
12369
|
+
iconName: "Close",
|
|
12370
|
+
"aria-hidden": "true"
|
|
12325
12371
|
})), /*#__PURE__*/React__default.createElement(ContentWrapper$3, null, children))), /*#__PURE__*/React__default.createElement(ScrollLock, null)));
|
|
12326
12372
|
};
|
|
12327
12373
|
|