@deque/cauldron-react 6.18.0 → 6.18.1-canary.cad74a2e

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,5 +1,7 @@
1
1
  import React from 'react';
2
- type ActionMenuTriggerProps = Pick<React.HTMLAttributes<HTMLButtonElement>, 'onClick' | 'onKeyDown' | 'aria-expanded' | 'aria-haspopup'>;
2
+ type ActionMenuTriggerProps = Pick<React.HTMLAttributes<HTMLButtonElement>, 'onClick' | 'onKeyDown' | 'aria-expanded' | 'aria-haspopup'> & {
3
+ ref: React.RefObject<HTMLButtonElement>;
4
+ };
3
5
  type ActionMenuTriggerFunction = (props: ActionMenuTriggerProps, open: boolean) => React.ReactElement;
4
6
  declare const ActionMenu: React.ForwardRefExoticComponent<{
5
7
  children: React.ReactElement;
@@ -12,7 +12,6 @@ export default class TopBar extends React.Component<MenuBarProps, MenuBarState>
12
12
  thin: boolean;
13
13
  hasTrigger: boolean;
14
14
  };
15
- private menuItems;
16
15
  constructor(props: MenuBarProps);
17
16
  componentDidMount(): void;
18
17
  componentWillUnmount(): void;
@@ -7,6 +7,7 @@ interface MenuItemProps extends React.HTMLAttributes<HTMLLIElement> {
7
7
  autoClickLink?: boolean;
8
8
  }
9
9
  export default class MenuItem extends Component<MenuItemProps> {
10
+ static displayName: string;
10
11
  static defaultProps: {
11
12
  menuItemRef: () => void;
12
13
  onClick: () => void;
package/lib/index.js CHANGED
@@ -628,6 +628,7 @@ var MenuItem = /** @class */ (function (_super) {
628
628
  setRef(menuItemRef, item);
629
629
  }, onClick: this.onClick, onKeyDown: this.onKeyDown }), children));
630
630
  };
631
+ MenuItem.displayName = 'MenuItem';
631
632
  MenuItem.defaultProps = {
632
633
  // eslint-disable-next-line @typescript-eslint/no-empty-function
633
634
  menuItemRef: function () { },
@@ -659,7 +660,6 @@ var TopBar$1 = /** @class */ (function (_super) {
659
660
  tslib.__extends(TopBar, _super);
660
661
  function TopBar(props) {
661
662
  var _this = _super.call(this, props) || this;
662
- _this.menuItems = [];
663
663
  _this.onResize = function () {
664
664
  var wide = isWide();
665
665
  if (wide === _this.state.wide) {
@@ -683,27 +683,7 @@ var TopBar$1 = /** @class */ (function (_super) {
683
683
  }
684
684
  return React.cloneElement(child, {
685
685
  key: index,
686
- onKeyDown: function () {
687
- var _a;
688
- var args = [];
689
- for (var _i = 0; _i < arguments.length; _i++) {
690
- args[_i] = arguments[_i];
691
- }
692
- // @ts-ignore we're just spreading the original args
693
- _this.onKeyDown.apply(_this, tslib.__spreadArray([], tslib.__read(args), false));
694
- if (child.props.onKeyDown) {
695
- (_a = child.props).onKeyDown.apply(_a, tslib.__spreadArray([], tslib.__read(args), false));
696
- }
697
- },
698
- tabIndex: 0,
699
- menuItemRef: function (menuItem) {
700
- if (menuItem) {
701
- _this.menuItems.push(menuItem);
702
- }
703
- if (child.props.menuItemRef) {
704
- child.props.menuItemRef(menuItem);
705
- }
706
- }
686
+ tabIndex: typeof child.props.tabIndex === 'undefined' ? 0 : child.props.tabIndex
707
687
  });
708
688
  };
709
689
  var wide = isWide();
@@ -728,7 +708,11 @@ var TopBar$1 = /** @class */ (function (_super) {
728
708
  };
729
709
  TopBar.prototype.onKeyDown = function (e) {
730
710
  var key = keyname__default["default"](e.which);
731
- var menuItems = tslib.__spreadArray([], tslib.__read(this.menuItems), false);
711
+ // This is a temporary workaround until have an opportunity to refactor or replace menubar
712
+ // see: https://github.com/dequelabs/cauldron/issues/1934
713
+ // eslint-disable-next-line react/no-find-dom-node
714
+ var menuBarElement = reactDom.findDOMNode(this);
715
+ var menuItems = Array.from(menuBarElement.children);
732
716
  // account for hidden side bar trigger (hamburger)
733
717
  if (this.state.wide && this.props.hasTrigger) {
734
718
  menuItems.shift();
@@ -751,11 +735,10 @@ var TopBar$1 = /** @class */ (function (_super) {
751
735
  menuItems[adjacentIndex].focus();
752
736
  };
753
737
  TopBar.prototype.render = function () {
754
- this.menuItems = [];
755
738
  // disabling no-unused-vars to prevent thin/hasTrigger from being passed through to div
756
739
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
757
740
  var _a = this.props, children = _a.children, className = _a.className; _a.thin; _a.hasTrigger; tslib.__rest(_a, ["children", "className", "thin", "hasTrigger"]);
758
- return (React__default["default"].createElement("ul", { role: "menubar", className: className }, React.Children.map(children, this.renderChild)));
741
+ return (React__default["default"].createElement("ul", { role: "menubar", onKeyDown: this.onKeyDown, className: className }, React.Children.map(children, this.renderChild)));
759
742
  };
760
743
  TopBar.defaultProps = {
761
744
  thin: false,
@@ -4704,9 +4687,6 @@ var TextEllipsis = React__default["default"].forwardRef(function (_a, ref) {
4704
4687
  props.style = tslib.__assign({ WebkitLineClamp: maxLines || 2 }, props.style);
4705
4688
  }
4706
4689
  React.useEffect(function () {
4707
- if (hideTooltip) {
4708
- return;
4709
- }
4710
4690
  var listener = function () {
4711
4691
  requestAnimationFrame(function () {
4712
4692
  var overflowElement = sharedRef.current;
@@ -4723,12 +4703,12 @@ var TextEllipsis = React__default["default"].forwardRef(function (_a, ref) {
4723
4703
  return function () {
4724
4704
  observer === null || observer === void 0 ? void 0 : observer.disconnect();
4725
4705
  };
4726
- }, [hideTooltip]);
4706
+ }, []);
4727
4707
  React.useEffect(function () {
4728
4708
  if (typeof onOverflowChange === 'function') {
4729
4709
  onOverflowChange(hasOverflow);
4730
4710
  }
4731
- }, [hasOverflow]);
4711
+ }, [onOverflowChange, hasOverflow]);
4732
4712
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
4733
4713
  React__default["default"].createElement(Element, tslib.__assign({ className: classNames__default["default"]('TextEllipsis', className, {
4734
4714
  'TextEllipsis--multiline': !!maxLines
@@ -5155,7 +5135,7 @@ var ActionMenu = React.forwardRef(function (_a, ref) {
5155
5135
  }
5156
5136
  }, [open]);
5157
5137
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
5158
- React__default["default"].createElement(ClickOutsideListener$1, { onClickOutside: handleClickOutside, mouseEvent: open ? undefined : false, touchEvent: open ? undefined : false }, actionMenuTrigger),
5138
+ React__default["default"].createElement(ClickOutsideListener$1, { onClickOutside: handleClickOutside, mouseEvent: open ? undefined : false, touchEvent: open ? undefined : false, target: triggerProps.ref }, actionMenuTrigger),
5159
5139
  React__default["default"].createElement(AnchoredOverlay, tslib.__assign({ ref: actionMenuRef, role: "presentation", className: classNames__default["default"]('ActionMenu', className), open: open, onOpenChange: setOpen, target: triggerRef, placement: placement, offset: 4, portal: portal, style: tslib.__assign({ display: !open ? 'none' : undefined }, style) }, props), React__default["default"].cloneElement(actionMenuList, {
5160
5140
  ref: actionMenuListRef,
5161
5141
  role: 'menu',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-react",
3
- "version": "6.18.0",
3
+ "version": "6.18.1-canary.cad74a2e",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Fully accessible react components library for Deque Cauldron",
6
6
  "homepage": "https://cauldron.dequelabs.com/",