@pingux/astro 2.194.1-alpha.0 → 2.195.0-alpha.0

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.
@@ -38,7 +38,7 @@ var _universalFormSubmitTest = require("../../utils/testUtils/universalFormSubmi
38
38
  var _react2 = require("@emotion/react");
39
39
  function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
40
40
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context56, _context57; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty2(_context56 = ownKeys(Object(t), !0)).call(_context56, function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty2(_context57 = ownKeys(Object(t))).call(_context57, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
41
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context57, _context58; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty2(_context57 = ownKeys(Object(t), !0)).call(_context57, function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty2(_context58 = ownKeys(Object(t))).call(_context58, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
42
42
  function _regeneratorRuntime() { "use strict"; var r = _regenerator(), e = r.m(_regeneratorRuntime), t = (_Object$getPrototypeOf ? _Object$getPrototypeOf(e) : e.__proto__).constructor; function n(r) { var e = "function" == typeof r && r.constructor; return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); } var o = { "throw": 1, "return": 2, "break": 3, "continue": 3 }; function a(r) { var e, t; return function (n) { e || (e = { stop: function stop() { return t(n.a, 2); }, "catch": function _catch() { return n.v; }, abrupt: function abrupt(r, e) { return t(n.a, o[r], e); }, delegateYield: function delegateYield(r, o, a) { return e.resultName = o, t(n.d, _regeneratorValues(r), a); }, finish: function finish(r) { return t(n.f, r); } }, t = function t(r, _t, o) { n.p = e.prev, n.n = e.next; try { return r(_t, o); } finally { e.next = n.n; } }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; try { return r.call(this, e); } finally { n.p = e.prev, n.n = e.next; } }; } return (_regeneratorRuntime = function _regeneratorRuntime() { return { wrap: function wrap(e, t, n, o) { return r.w(a(e), t, n, o && _reverseInstanceProperty(o).call(o)); }, isGeneratorFunction: n, mark: r.m, awrap: function awrap(r, e) { return new _OverloadYield(r, e); }, AsyncIterator: _regeneratorAsyncIterator, async: function async(r, e, t, o, u) { return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u); }, keys: _regeneratorKeys, values: _regeneratorValues }; })(); }
43
43
  function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof _Symbol && _Symbol$iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); }
44
44
  function _regeneratorKeys(e) { var n = Object(e), r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; }
@@ -85,6 +85,15 @@ var withSection = [{
85
85
  key: 'Option B3'
86
86
  }]
87
87
  }];
88
+ var longLabelItems = [{
89
+ id: 10,
90
+ name: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit,',
91
+ key: 'LongLabelItem'
92
+ }, {
93
+ id: 11,
94
+ name: 'Short',
95
+ key: 'ShortLabelItem'
96
+ }];
88
97
  var labelText = 'Field Label';
89
98
  var defaultProps = {
90
99
  items: items,
@@ -143,6 +152,21 @@ var getSectionsComponent = function getSectionsComponent() {
143
152
  });
144
153
  })));
145
154
  };
155
+ var getLongLabelComponent = function getLongLabelComponent() {
156
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
157
+ var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
158
+ _ref4$renderFn = _ref4.renderFn,
159
+ renderFn = _ref4$renderFn === void 0 ? _testWrapper.render : _ref4$renderFn;
160
+ return renderFn((0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.MultivaluesField, (0, _extends2["default"])({
161
+ items: longLabelItems,
162
+ label: "Field Label",
163
+ defaultSelectedKeys: ['LongLabelItem', 'ShortLabelItem']
164
+ }, props), function (item) {
165
+ return (0, _react2.jsx)(_index.Item, {
166
+ key: item.key
167
+ }, item.name);
168
+ })));
169
+ };
146
170
  var ComponentOnPrevLoad = function ComponentOnPrevLoad(props) {
147
171
  var _context, _context2;
148
172
  var initialItems = (0, _map["default"])(_context = (0, _fill["default"])(_context2 = new Array(10)).call(_context2, {
@@ -155,13 +179,12 @@ var ComponentOnPrevLoad = function ComponentOnPrevLoad(props) {
155
179
  id: index
156
180
  };
157
181
  });
158
- // eslint-disable-next-line no-unused-vars
159
182
  var _useState = (0, _react.useState)(initialItems),
160
183
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
161
184
  listItems = _useState2[0],
162
185
  setListItems = _useState2[1];
163
186
  var onLoadMore = /*#__PURE__*/function () {
164
- var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
187
+ var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
165
188
  return _regeneratorRuntime().wrap(function _callee$(_context3) {
166
189
  while (1) switch (_context3.prev = _context3.next) {
167
190
  case 0:
@@ -173,11 +196,11 @@ var ComponentOnPrevLoad = function ComponentOnPrevLoad(props) {
173
196
  }, _callee);
174
197
  }));
175
198
  return function onLoadMore() {
176
- return _ref4.apply(this, arguments);
199
+ return _ref5.apply(this, arguments);
177
200
  };
178
201
  }();
179
202
  var onLoadPrev = /*#__PURE__*/function () {
180
- var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
203
+ var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
181
204
  return _regeneratorRuntime().wrap(function _callee2$(_context4) {
182
205
  while (1) switch (_context4.prev = _context4.next) {
183
206
  case 0:
@@ -189,7 +212,7 @@ var ComponentOnPrevLoad = function ComponentOnPrevLoad(props) {
189
212
  }, _callee2);
190
213
  }));
191
214
  return function onLoadPrev() {
192
- return _ref5.apply(this, arguments);
215
+ return _ref6.apply(this, arguments);
193
216
  };
194
217
  }();
195
218
  return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.MultivaluesField, (0, _extends2["default"])({
@@ -1037,11 +1060,11 @@ test('read only keys', function () {
1037
1060
  var firstBadge = _testWrapper.screen.getByText(items[1].name);
1038
1061
  var deleteButton1 = firstBadge.nextSibling;
1039
1062
  expect(firstBadge).toBeInTheDocument();
1040
- expect(deleteButton1).toBeNull();
1063
+ expect(deleteButton1).not.toBeInTheDocument();
1041
1064
  var secondBadge = _testWrapper.screen.getByText(items[2].name);
1042
1065
  expect(secondBadge).toBeInTheDocument();
1043
1066
  var deleteButton2 = firstBadge.nextSibling;
1044
- expect(deleteButton2).toBeNull();
1067
+ expect(deleteButton2).not.toBeInTheDocument();
1045
1068
  });
1046
1069
  test('passing helper text should display it and correct aria attributes on input', function () {
1047
1070
  var testHelperText = 'testHelperText';
@@ -1647,23 +1670,7 @@ test('default selected keys in condensed mode ', function () {
1647
1670
  expect(listbox).not.toBeInTheDocument();
1648
1671
  expect(_testWrapper.screen.getByText('2 Selected')).toBeInTheDocument();
1649
1672
  });
1650
- test('when filtered to one item in condensed mode, it still shows the correct amount of selected items ', function () {
1651
- var onInputChange = jest.fn();
1652
- getComponent({
1653
- mode: 'condensed',
1654
- defaultSelectedKeys: [items[1].key, items[2].key],
1655
- onInputChange: onInputChange
1656
- });
1657
- var input = _testWrapper.screen.getByRole('combobox');
1658
- var value = 'Aardvark';
1659
- _userEvent["default"].type(input, value);
1660
- var listbox = _testWrapper.screen.getByRole('listbox');
1661
- expect(listbox).toBeInTheDocument();
1662
- var options = (0, _testWrapper.within)(listbox).getAllByRole('option');
1663
- expect(options.length).toBe(1);
1664
- expect(_testWrapper.screen.getByText('2 Selected')).toBeInTheDocument();
1665
- });
1666
- test('onInputChange is called in condensed mode ', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee43() {
1673
+ test('when filtered to one item in condensed mode, it still shows the correct amount of selected items ', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee43() {
1667
1674
  var onInputChange, input, value, listbox, options;
1668
1675
  return _regeneratorRuntime().wrap(function _callee43$(_context45) {
1669
1676
  while (1) switch (_context45.prev = _context45.next) {
@@ -1671,6 +1678,7 @@ test('onInputChange is called in condensed mode ', /*#__PURE__*/(0, _asyncToGene
1671
1678
  onInputChange = jest.fn();
1672
1679
  getComponent({
1673
1680
  mode: 'condensed',
1681
+ defaultSelectedKeys: [items[1].key, items[2].key],
1674
1682
  onInputChange: onInputChange
1675
1683
  });
1676
1684
  input = _testWrapper.screen.getByRole('combobox');
@@ -1682,18 +1690,44 @@ test('onInputChange is called in condensed mode ', /*#__PURE__*/(0, _asyncToGene
1682
1690
  expect(listbox).toBeInTheDocument();
1683
1691
  options = (0, _testWrapper.within)(listbox).getAllByRole('option');
1684
1692
  expect(options.length).toBe(1);
1685
- expect(onInputChange).toBeCalledTimes(value.length);
1686
- expect(onInputChange).toHaveBeenCalledWith(value);
1687
- case 12:
1693
+ expect(_testWrapper.screen.getByText('2 Selected')).toBeInTheDocument();
1694
+ case 11:
1688
1695
  case "end":
1689
1696
  return _context45.stop();
1690
1697
  }
1691
1698
  }, _callee43);
1692
1699
  })));
1693
- test('opens listbox on focus and fires "onFocus', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee44() {
1694
- var onFocus, input, options;
1700
+ test('onInputChange is called in condensed mode ', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee44() {
1701
+ var onInputChange, input, value, listbox, options;
1695
1702
  return _regeneratorRuntime().wrap(function _callee44$(_context46) {
1696
1703
  while (1) switch (_context46.prev = _context46.next) {
1704
+ case 0:
1705
+ onInputChange = jest.fn();
1706
+ getComponent({
1707
+ mode: 'condensed',
1708
+ onInputChange: onInputChange
1709
+ });
1710
+ input = _testWrapper.screen.getByRole('combobox');
1711
+ value = 'Aardvark';
1712
+ _context46.next = 6;
1713
+ return _userEvent["default"].type(input, value);
1714
+ case 6:
1715
+ listbox = _testWrapper.screen.getByRole('listbox');
1716
+ expect(listbox).toBeInTheDocument();
1717
+ options = (0, _testWrapper.within)(listbox).getAllByRole('option');
1718
+ expect(options.length).toBe(1);
1719
+ expect(onInputChange).toBeCalledTimes(value.length);
1720
+ expect(onInputChange).toHaveBeenCalledWith(value);
1721
+ case 12:
1722
+ case "end":
1723
+ return _context46.stop();
1724
+ }
1725
+ }, _callee44);
1726
+ })));
1727
+ test('opens listbox on focus and fires "onFocus', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee45() {
1728
+ var onFocus, input, options;
1729
+ return _regeneratorRuntime().wrap(function _callee45$(_context47) {
1730
+ while (1) switch (_context47.prev = _context47.next) {
1697
1731
  case 0:
1698
1732
  onFocus = jest.fn();
1699
1733
  getComponent({
@@ -1701,7 +1735,7 @@ test('opens listbox on focus and fires "onFocus', /*#__PURE__*/(0, _asyncToGener
1701
1735
  onFocus: onFocus
1702
1736
  });
1703
1737
  input = _testWrapper.screen.getByRole('combobox');
1704
- _context46.next = 5;
1738
+ _context47.next = 5;
1705
1739
  return _userEvent["default"].tab();
1706
1740
  case 5:
1707
1741
  expect(input).toHaveFocus();
@@ -1712,14 +1746,14 @@ test('opens listbox on focus and fires "onFocus', /*#__PURE__*/(0, _asyncToGener
1712
1746
  expect(onFocus).toBeCalled();
1713
1747
  case 11:
1714
1748
  case "end":
1715
- return _context46.stop();
1749
+ return _context47.stop();
1716
1750
  }
1717
- }, _callee44);
1751
+ }, _callee45);
1718
1752
  })));
1719
- test('closes listbox on blur and fires "onBlur"', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee45() {
1753
+ test('closes listbox on blur and fires "onBlur"', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee46() {
1720
1754
  var onBlur, input;
1721
- return _regeneratorRuntime().wrap(function _callee45$(_context47) {
1722
- while (1) switch (_context47.prev = _context47.next) {
1755
+ return _regeneratorRuntime().wrap(function _callee46$(_context48) {
1756
+ while (1) switch (_context48.prev = _context48.next) {
1723
1757
  case 0:
1724
1758
  onBlur = jest.fn();
1725
1759
  getComponent({
@@ -1727,7 +1761,7 @@ test('closes listbox on blur and fires "onBlur"', /*#__PURE__*/(0, _asyncToGener
1727
1761
  onBlur: onBlur
1728
1762
  });
1729
1763
  input = _testWrapper.screen.getByRole('combobox');
1730
- _context47.next = 5;
1764
+ _context48.next = 5;
1731
1765
  return _userEvent["default"].tab();
1732
1766
  case 5:
1733
1767
  expect(input).toHaveFocus();
@@ -1739,19 +1773,19 @@ test('closes listbox on blur and fires "onBlur"', /*#__PURE__*/(0, _asyncToGener
1739
1773
  expect(onBlur).toBeCalled();
1740
1774
  case 10:
1741
1775
  case "end":
1742
- return _context47.stop();
1776
+ return _context48.stop();
1743
1777
  }
1744
- }, _callee45);
1778
+ }, _callee46);
1745
1779
  })));
1746
- test('list and button are keyboard accessible', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee46() {
1780
+ test('list and button are keyboard accessible', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee47() {
1747
1781
  var listbox, options, firstOption, secondOption, buttons, button;
1748
- return _regeneratorRuntime().wrap(function _callee46$(_context48) {
1749
- while (1) switch (_context48.prev = _context48.next) {
1782
+ return _regeneratorRuntime().wrap(function _callee47$(_context49) {
1783
+ while (1) switch (_context49.prev = _context49.next) {
1750
1784
  case 0:
1751
1785
  getComponent({
1752
1786
  mode: 'condensed'
1753
1787
  });
1754
- _context48.next = 3;
1788
+ _context49.next = 3;
1755
1789
  return _userEvent["default"].tab();
1756
1790
  case 3:
1757
1791
  listbox = _testWrapper.screen.getByRole('listbox');
@@ -1760,15 +1794,15 @@ test('list and button are keyboard accessible', /*#__PURE__*/(0, _asyncToGenerat
1760
1794
  secondOption = options[1];
1761
1795
  buttons = _testWrapper.screen.getAllByRole('button');
1762
1796
  button = buttons[1];
1763
- _context48.next = 11;
1797
+ _context49.next = 11;
1764
1798
  return _userEvent["default"].tab();
1765
1799
  case 11:
1766
1800
  expect(button).toHaveFocus();
1767
- _context48.next = 14;
1801
+ _context49.next = 14;
1768
1802
  return _userEvent["default"].tab();
1769
1803
  case 14:
1770
1804
  expect(firstOption).toHaveFocus();
1771
- _context48.next = 17;
1805
+ _context49.next = 17;
1772
1806
  return _userEvent["default"].type(firstOption, '{arrowdown}', {
1773
1807
  skipClick: true
1774
1808
  });
@@ -1776,14 +1810,14 @@ test('list and button are keyboard accessible', /*#__PURE__*/(0, _asyncToGenerat
1776
1810
  expect(secondOption).toHaveFocus();
1777
1811
  case 18:
1778
1812
  case "end":
1779
- return _context48.stop();
1813
+ return _context49.stop();
1780
1814
  }
1781
- }, _callee46);
1815
+ }, _callee47);
1782
1816
  })));
1783
- test('popover closes on input blur', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee47() {
1817
+ test('popover closes on input blur', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee48() {
1784
1818
  var input, listbox, options, checkboxes, secondOption, value;
1785
- return _regeneratorRuntime().wrap(function _callee47$(_context49) {
1786
- while (1) switch (_context49.prev = _context49.next) {
1819
+ return _regeneratorRuntime().wrap(function _callee48$(_context50) {
1820
+ while (1) switch (_context50.prev = _context50.next) {
1787
1821
  case 0:
1788
1822
  getComponent({
1789
1823
  mode: 'condensed'
@@ -1791,7 +1825,7 @@ test('popover closes on input blur', /*#__PURE__*/(0, _asyncToGenerator2["defaul
1791
1825
  expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
1792
1826
  expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
1793
1827
  input = _testWrapper.screen.getByRole('combobox');
1794
- _context49.next = 6;
1828
+ _context50.next = 6;
1795
1829
  return _userEvent["default"].click(input);
1796
1830
  case 6:
1797
1831
  listbox = _testWrapper.screen.getByRole('listbox');
@@ -1799,54 +1833,54 @@ test('popover closes on input blur', /*#__PURE__*/(0, _asyncToGenerator2["defaul
1799
1833
  checkboxes = (0, _testWrapper.within)(listbox).getAllByRole('img');
1800
1834
  expect(checkboxes.length).toBe(3);
1801
1835
  secondOption = options[1];
1802
- _context49.next = 13;
1836
+ _context50.next = 13;
1803
1837
  return _userEvent["default"].click(secondOption);
1804
1838
  case 13:
1805
1839
  value = 'Aardvark';
1806
- _context49.next = 16;
1840
+ _context50.next = 16;
1807
1841
  return _userEvent["default"].type(input, value);
1808
1842
  case 16:
1809
- _context49.next = 18;
1843
+ _context50.next = 18;
1810
1844
  return _userEvent["default"].click(document.body);
1811
1845
  case 18:
1812
1846
  expect(input).toHaveValue('');
1813
1847
  expect(listbox).not.toBeInTheDocument();
1814
1848
  case 20:
1815
1849
  case "end":
1816
- return _context49.stop();
1850
+ return _context50.stop();
1817
1851
  }
1818
- }, _callee47);
1852
+ }, _callee48);
1819
1853
  })));
1820
- test('trigger button handles popover open and close in condensed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee48() {
1854
+ test('trigger button handles popover open and close in condensed', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee49() {
1821
1855
  var input;
1822
- return _regeneratorRuntime().wrap(function _callee48$(_context50) {
1823
- while (1) switch (_context50.prev = _context50.next) {
1856
+ return _regeneratorRuntime().wrap(function _callee49$(_context51) {
1857
+ while (1) switch (_context51.prev = _context51.next) {
1824
1858
  case 0:
1825
1859
  getComponent({
1826
1860
  mode: 'condensed'
1827
1861
  });
1828
1862
  expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
1829
1863
  input = _testWrapper.screen.getByRole('combobox');
1830
- _context50.next = 5;
1864
+ _context51.next = 5;
1831
1865
  return _userEvent["default"].click(_testWrapper.screen.getAllByRole('button')[0]);
1832
1866
  case 5:
1833
1867
  expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
1834
1868
  expect(input).toHaveFocus();
1835
- _context50.next = 9;
1869
+ _context51.next = 9;
1836
1870
  return _userEvent["default"].tab();
1837
1871
  case 9:
1838
1872
  _testWrapper.fireEvent.click(_testWrapper.screen.getAllByRole('button')[0]);
1839
1873
  expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
1840
1874
  case 11:
1841
1875
  case "end":
1842
- return _context50.stop();
1876
+ return _context51.stop();
1843
1877
  }
1844
- }, _callee48);
1878
+ }, _callee49);
1845
1879
  })));
1846
- test('renders items with duplicate keys', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee49() {
1880
+ test('renders items with duplicate keys', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee50() {
1847
1881
  var input, options;
1848
- return _regeneratorRuntime().wrap(function _callee49$(_context51) {
1849
- while (1) switch (_context51.prev = _context51.next) {
1882
+ return _regeneratorRuntime().wrap(function _callee50$(_context52) {
1883
+ while (1) switch (_context52.prev = _context52.next) {
1850
1884
  case 0:
1851
1885
  getComponent({
1852
1886
  items: (0, _map["default"])(items).call(items, function (item) {
@@ -1857,7 +1891,7 @@ test('renders items with duplicate keys', /*#__PURE__*/(0, _asyncToGenerator2["d
1857
1891
  mode: 'condensed'
1858
1892
  });
1859
1893
  input = _testWrapper.screen.getByRole('combobox');
1860
- _context51.next = 4;
1894
+ _context52.next = 4;
1861
1895
  return _userEvent["default"].tab();
1862
1896
  case 4:
1863
1897
  expect(input).toHaveFocus();
@@ -1866,20 +1900,20 @@ test('renders items with duplicate keys', /*#__PURE__*/(0, _asyncToGenerator2["d
1866
1900
  expect(options.length).toBe(1);
1867
1901
  case 8:
1868
1902
  case "end":
1869
- return _context51.stop();
1903
+ return _context52.stop();
1870
1904
  }
1871
- }, _callee49);
1905
+ }, _callee50);
1872
1906
  })));
1873
- test('should render items with sections passed in props', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee50() {
1907
+ test('should render items with sections passed in props', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee51() {
1874
1908
  var input;
1875
- return _regeneratorRuntime().wrap(function _callee50$(_context52) {
1876
- while (1) switch (_context52.prev = _context52.next) {
1909
+ return _regeneratorRuntime().wrap(function _callee51$(_context53) {
1910
+ while (1) switch (_context53.prev = _context53.next) {
1877
1911
  case 0:
1878
1912
  getSectionsComponent();
1879
1913
  expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
1880
1914
  expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
1881
1915
  input = _testWrapper.screen.getByRole('combobox');
1882
- _context52.next = 6;
1916
+ _context53.next = 6;
1883
1917
  return _userEvent["default"].click(input);
1884
1918
  case 6:
1885
1919
  expect(_testWrapper.screen.getAllByRole('group')).toHaveLength(2);
@@ -1887,18 +1921,18 @@ test('should render items with sections passed in props', /*#__PURE__*/(0, _asyn
1887
1921
  expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(5);
1888
1922
  case 9:
1889
1923
  case "end":
1890
- return _context52.stop();
1924
+ return _context53.stop();
1891
1925
  }
1892
- }, _callee50);
1926
+ }, _callee51);
1893
1927
  })));
1894
- test('should render the separators', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee51() {
1928
+ test('should render the separators', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee52() {
1895
1929
  var input, groups;
1896
- return _regeneratorRuntime().wrap(function _callee51$(_context53) {
1897
- while (1) switch (_context53.prev = _context53.next) {
1930
+ return _regeneratorRuntime().wrap(function _callee52$(_context54) {
1931
+ while (1) switch (_context54.prev = _context54.next) {
1898
1932
  case 0:
1899
1933
  getSectionsComponent();
1900
1934
  input = _testWrapper.screen.getByRole('combobox');
1901
- _context53.next = 4;
1935
+ _context54.next = 4;
1902
1936
  return _userEvent["default"].click(input);
1903
1937
  case 4:
1904
1938
  expect(_testWrapper.screen.queryAllByRole('separator')).toHaveLength(3);
@@ -1921,14 +1955,14 @@ test('should render the separators', /*#__PURE__*/(0, _asyncToGenerator2["defaul
1921
1955
  });
1922
1956
  case 10:
1923
1957
  case "end":
1924
- return _context53.stop();
1958
+ return _context54.stop();
1925
1959
  }
1926
- }, _callee51);
1960
+ }, _callee52);
1927
1961
  })));
1928
- test('renders duplicate groups for duplicate keys on items group ', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee52() {
1962
+ test('renders duplicate groups for duplicate keys on items group ', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee53() {
1929
1963
  var input;
1930
- return _regeneratorRuntime().wrap(function _callee52$(_context54) {
1931
- while (1) switch (_context54.prev = _context54.next) {
1964
+ return _regeneratorRuntime().wrap(function _callee53$(_context55) {
1965
+ while (1) switch (_context55.prev = _context55.next) {
1932
1966
  case 0:
1933
1967
  getSectionsComponent({
1934
1968
  items: (0, _map["default"])(withSection).call(withSection, function (item) {
@@ -1938,23 +1972,23 @@ test('renders duplicate groups for duplicate keys on items group ', /*#__PURE__*
1938
1972
  })
1939
1973
  });
1940
1974
  input = _testWrapper.screen.getByRole('combobox');
1941
- _context54.next = 4;
1975
+ _context55.next = 4;
1942
1976
  return _userEvent["default"].click(input);
1943
1977
  case 4:
1944
1978
  expect(_testWrapper.screen.getAllByRole('group')).not.toHaveLength(2);
1945
1979
  case 5:
1946
1980
  case "end":
1947
- return _context54.stop();
1981
+ return _context55.stop();
1948
1982
  }
1949
- }, _callee52);
1983
+ }, _callee53);
1950
1984
  })));
1951
- test('onLoadMore and onLoadPrev callbacks are called', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee53() {
1985
+ test('onLoadMore and onLoadPrev callbacks are called', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee54() {
1952
1986
  var listBox;
1953
- return _regeneratorRuntime().wrap(function _callee53$(_context55) {
1954
- while (1) switch (_context55.prev = _context55.next) {
1987
+ return _regeneratorRuntime().wrap(function _callee54$(_context56) {
1988
+ while (1) switch (_context56.prev = _context56.next) {
1955
1989
  case 0:
1956
1990
  (0, _testWrapper.render)((0, _react2.jsx)(ComponentOnPrevLoad, null));
1957
- _context55.next = 3;
1991
+ _context56.next = 3;
1958
1992
  return _userEvent["default"].tab();
1959
1993
  case 3:
1960
1994
  listBox = _testWrapper.screen.getAllByRole('listbox');
@@ -1972,10 +2006,36 @@ test('onLoadMore and onLoadPrev callbacks are called', /*#__PURE__*/(0, _asyncTo
1972
2006
  expect(onLoadPrevFunc).toHaveBeenCalled();
1973
2007
  case 8:
1974
2008
  case "end":
1975
- return _context55.stop();
2009
+ return _context56.stop();
1976
2010
  }
1977
- }, _callee53);
2011
+ }, _callee54);
1978
2012
  })));
2013
+ test('selected badge with a long label renders a tooltip with the full text on hover', function () {
2014
+ getLongLabelComponent();
2015
+ var badge = _testWrapper.screen.getByText('Lorem ipsum dolor sit amet, consectetur adipiscing elit,');
2016
+ expect(badge).toBeInTheDocument();
2017
+ _testWrapper.fireEvent.mouseMove(badge);
2018
+ _testWrapper.fireEvent.mouseEnter(badge);
2019
+ var tooltip = _testWrapper.screen.getByRole('tooltip');
2020
+ expect(tooltip).toBeInTheDocument();
2021
+ expect(tooltip).toHaveTextContent('Lorem ipsum dolor sit amet, consectetur adipiscing elit,');
2022
+ });
2023
+ test('selected badge with a short label does not show a tooltip on hover', function () {
2024
+ getLongLabelComponent();
2025
+ var badge = _testWrapper.screen.getByText('Short');
2026
+ expect(badge).toBeInTheDocument();
2027
+ _testWrapper.fireEvent.mouseMove(badge);
2028
+ _testWrapper.fireEvent.mouseEnter(badge);
2029
+ expect(_testWrapper.screen.queryByRole('tooltip')).not.toBeInTheDocument();
2030
+ });
2031
+ test('hovering delete button does not show tooltip for long label badge', function () {
2032
+ getLongLabelComponent();
2033
+ var deleteButton = _testWrapper.screen.getByLabelText('delete Lorem ipsum dolor sit amet, consectetur adipiscing elit,');
2034
+ expect(deleteButton).toBeInTheDocument();
2035
+ _testWrapper.fireEvent.mouseMove(deleteButton);
2036
+ _testWrapper.fireEvent.mouseEnter(deleteButton);
2037
+ expect(_testWrapper.screen.queryByRole('tooltip')).not.toBeInTheDocument();
2038
+ });
1979
2039
 
1980
2040
  // Needs to be added to each components test file
1981
2041
  (0, _universalComponentTest.universalComponentTests)({
@@ -54,7 +54,15 @@ var selectedItemBadge = _objectSpread(_objectSpread({}, multivaluesBadge), {}, {
54
54
  bg: '#4462ED !important',
55
55
  py: 3,
56
56
  pr: 0,
57
- my: 3
57
+ my: 3,
58
+ maxWidth: '200px',
59
+ '& span': {
60
+ mr: '5px',
61
+ overflow: 'hidden',
62
+ textOverflow: 'ellipsis',
63
+ whiteSpace: 'nowrap',
64
+ flex: '1 1 0%'
65
+ }
58
66
  });
59
67
  var readOnlyBadge = _objectSpread(_objectSpread({}, multivaluesBadge), {}, {
60
68
  p: 2.54,
@@ -0,0 +1,60 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import React, { useRef } from 'react';
3
+ import { mergeProps } from 'react-aria';
4
+ import Clear from '@pingux/mdi-react/CloseIcon';
5
+ import { useHover } from '@react-aria/interactions';
6
+ import { Badge, Box, Icon, IconButton } from '../..';
7
+ import TooltipTrigger, { Tooltip } from '../TooltipTrigger';
8
+ import { jsx as ___EmotionJSX } from "@emotion/react";
9
+ var BADGE_TOOLTIP_CHAR_THRESHOLD = 25;
10
+ var BadgeLabelTooltip = function BadgeLabelTooltip(_ref) {
11
+ var _item$badgeProps;
12
+ var item = _ref.item,
13
+ index = _ref.index,
14
+ deleteItem = _ref.deleteItem,
15
+ closeBadgeRefs = _ref.closeBadgeRefs;
16
+ var isLong = item.name.length > BADGE_TOOLTIP_CHAR_THRESHOLD;
17
+ var _useHover = useHover({}),
18
+ hoverProps = _useHover.hoverProps,
19
+ isHovered = _useHover.isHovered;
20
+ var textProps = mergeProps(((_item$badgeProps = item.badgeProps) === null || _item$badgeProps === void 0 ? void 0 : _item$badgeProps.textProps) || {}, hoverProps);
21
+ var badgeRef = useRef();
22
+ return ___EmotionJSX(Box, {
23
+ as: "li"
24
+ }, ___EmotionJSX(TooltipTrigger, {
25
+ direction: "top",
26
+ isDisabled: !isLong,
27
+ isOpen: isLong && isHovered,
28
+ targetRef: badgeRef
29
+ }, ___EmotionJSX(Badge, _extends({
30
+ ref: badgeRef,
31
+ key: item.key,
32
+ role: "presentation",
33
+ variant: "selectedItemBadge",
34
+ label: item.name,
35
+ slots: item.slots
36
+ }, item.badgeProps, {
37
+ textProps: textProps
38
+ }), ___EmotionJSX(IconButton, _extends({
39
+ "aria-label": "delete ".concat(item.name),
40
+ "data-item": item.name,
41
+ onPress: function onPress(e) {
42
+ return deleteItem(item.key, e);
43
+ },
44
+ ref: function ref(el) {
45
+ return closeBadgeRefs.current[index] = el;
46
+ } // eslint-disable-line
47
+ ,
48
+ variant: "badge.deleteButton",
49
+ "aria-describedby": "selectedKeysState"
50
+ }, item.buttonProps), ___EmotionJSX(Icon, {
51
+ icon: Clear,
52
+ size: 14,
53
+ title: {
54
+ name: 'Clear Icon'
55
+ }
56
+ }))), ___EmotionJSX(Tooltip, {
57
+ variant: "variants.tooltip.badgeTooltipContainer"
58
+ }, item.name)));
59
+ };
60
+ export default BadgeLabelTooltip;
@@ -24,13 +24,12 @@ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance
24
24
  import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
25
25
  import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
26
26
  import { DismissButton, FocusScope, useOverlayPosition } from 'react-aria';
27
- import Clear from '@pingux/mdi-react/CloseIcon';
28
27
  import { useFilter } from '@react-aria/i18n';
29
28
  import { useLayoutEffect, useResizeObserver } from '@react-aria/utils';
30
29
  import { VisuallyHidden } from '@react-aria/visually-hidden';
31
30
  import { useListState } from '@react-stately/list';
32
31
  import PropTypes from 'prop-types';
33
- import { Badge, Box, Icon, IconButton, Loader, PopoverContainer, ScrollBox, Text, TextField } from '../..';
32
+ import { Badge, Box, Loader, PopoverContainer, ScrollBox, Text, TextField } from '../..';
34
33
  import { MultivaluesContext } from '../../context/MultivaluesContext';
35
34
  import { useGetTheme, useInputLoader, usePropWarning } from '../../hooks';
36
35
  import loadingStates from '../../utils/devUtils/constants/loadingStates';
@@ -39,6 +38,7 @@ import { isIterableProp } from '../../utils/devUtils/props/isIterable';
39
38
  import { ariaAttributesBasePropTypes } from '../../utils/docUtils/ariaAttributes';
40
39
  import { inputFieldAttributesBasePropTypes } from '../../utils/docUtils/fieldAttributes';
41
40
  import { statusDefaultProp, statusPropTypes } from '../../utils/docUtils/statusProp';
41
+ import BadgeLabelTooltip from './BadgeLabelTooltip';
42
42
  import ListBox from '../ListBox';
43
43
  import { jsx as ___EmotionJSX } from "@emotion/react";
44
44
  var DefaultMultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
@@ -396,34 +396,13 @@ var DefaultMultivaluesField = /*#__PURE__*/forwardRef(function (props, ref) {
396
396
  return null;
397
397
  });
398
398
  var multivaluesFieldBadge = function multivaluesFieldBadge(item, index) {
399
- return ___EmotionJSX(Box, {
400
- as: "li",
401
- key: "li ".concat(item.key)
402
- }, ___EmotionJSX(Badge, _extends({
403
- key: item.key,
404
- role: "presentation",
405
- variant: "selectedItemBadge",
406
- label: item.name,
407
- slots: item.slots
408
- }, item.badgeProps), ___EmotionJSX(IconButton, _extends({
409
- "aria-label": "delete ".concat(item.name),
410
- "data-item": item.name,
411
- onPress: function onPress(e) {
412
- return deleteItem(item.key, e);
413
- },
414
- ref: function ref(el) {
415
- return closeBadgeRefs.current[index] = el;
416
- } // eslint-disable-line
417
- ,
418
- variant: "badge.deleteButton",
419
- "aria-describedby": "selectedKeysState"
420
- }, item.buttonProps), ___EmotionJSX(Icon, {
421
- icon: Clear,
422
- size: 14,
423
- title: {
424
- name: 'Clear Icon'
425
- }
426
- }))));
399
+ return ___EmotionJSX(BadgeLabelTooltip, {
400
+ key: "tooltip-".concat(item.key),
401
+ item: item,
402
+ index: index,
403
+ deleteItem: deleteItem,
404
+ closeBadgeRefs: closeBadgeRefs
405
+ });
427
406
  };
428
407
  var selectedItems = ___EmotionJSX(React.Fragment, null, _mapInstanceProperty(_context0 = _Array$from(selectionManager.selectedKeys)).call(_context0, function (key, i) {
429
408
  var _context1, _context10;