@royaloperahouse/chord 0.7.22 → 0.7.23

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 CHANGED
@@ -1,5 +1,8 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## [0.7.23]
4
+ - Accordion: make accordion keyboard-navigable
5
+
3
6
  ## [0.7.22]
4
7
  - Add new AnnouncementBanner component
5
8
 
@@ -4659,7 +4659,16 @@ var Accordion = function Accordion(_ref) {
4659
4659
 
4660
4660
  var _useState3 = React.useState(initOpen ? 'Detract' : 'Expand'),
4661
4661
  iconName = _useState3[0],
4662
- setIconName = _useState3[1];
4662
+ setIconName = _useState3[1]; // Contents children visibility is set to prevent it from being keyboard tabbable when the accordion is closed
4663
+
4664
+
4665
+ var _useState4 = React.useState(initOpen ? {
4666
+ visibility: 'visible'
4667
+ } : {
4668
+ visibility: 'hidden'
4669
+ }),
4670
+ childrenVisibility = _useState4[0],
4671
+ setChildrenVisibility = _useState4[1];
4663
4672
 
4664
4673
  var content = React.useRef(null);
4665
4674
  React.useEffect(function () {
@@ -4672,10 +4681,23 @@ var Accordion = function Accordion(_ref) {
4672
4681
  setOpenAccordion(!openAccordion);
4673
4682
  setTextHeight(openAccordion ? '0px' : content.current.scrollHeight + "px");
4674
4683
  setIconName(openAccordion ? 'Expand' : 'Detract');
4684
+ setChildrenVisibility(openAccordion ? {
4685
+ visibility: 'hidden'
4686
+ } : {
4687
+ visibility: 'visible'
4688
+ });
4689
+ };
4690
+
4691
+ var keyDown = function keyDown(e) {
4692
+ if (e.key === 'Enter' || e.key === 'Space') {
4693
+ toggleAccordion();
4694
+ }
4675
4695
  };
4676
4696
 
4677
4697
  return /*#__PURE__*/React__default.createElement(AccordionContainer, null, /*#__PURE__*/React__default.createElement(LineContainer, null), /*#__PURE__*/React__default.createElement(TitleContainer$1, {
4678
- onClick: toggleAccordion
4698
+ onClick: toggleAccordion,
4699
+ onKeyDown: keyDown,
4700
+ tabIndex: 0
4679
4701
  }, /*#__PURE__*/React__default.createElement("a", null, title), /*#__PURE__*/React__default.createElement(Icon, {
4680
4702
  iconName: iconName
4681
4703
  })), /*#__PURE__*/React__default.createElement(ContentContainer, {
@@ -4684,7 +4706,9 @@ var Accordion = function Accordion(_ref) {
4684
4706
  style: {
4685
4707
  maxHeight: "" + textHeight
4686
4708
  }
4687
- }, /*#__PURE__*/React__default.createElement(ChildrenContainer, null, children)), showLine && /*#__PURE__*/React__default.createElement(LineContainer, null));
4709
+ }, /*#__PURE__*/React__default.createElement(ChildrenContainer, {
4710
+ style: childrenVisibility
4711
+ }, children)), showLine && /*#__PURE__*/React__default.createElement(LineContainer, null));
4688
4712
  };
4689
4713
 
4690
4714
  var _templateObject$C;