@pingux/astro 2.32.0-alpha.1 → 2.32.0-alpha.11

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.
Files changed (143) hide show
  1. package/lib/cjs/components/AccordionGroup/AccordionGroup.stories.js +1 -1
  2. package/lib/cjs/components/Badge/Badge.stories.js +1 -1
  3. package/lib/cjs/components/Badge/Convenience/ConvenienceBadges.stories.js +1 -1
  4. package/lib/cjs/components/Bracket/Bracket.stories.js +1 -1
  5. package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +1 -1
  6. package/lib/cjs/components/Button/Button.stories.d.ts +1 -1
  7. package/lib/cjs/components/Button/Button.stories.js +1 -1
  8. package/lib/cjs/components/Calendar/Calendar.stories.js +1 -1
  9. package/lib/cjs/components/Calendar/Calendar.test.js +9 -32
  10. package/lib/cjs/components/Callout/Callout.stories.js +1 -1
  11. package/lib/cjs/components/Card/Card.stories.js +1 -1
  12. package/lib/cjs/components/CodeView/CodeView.stories.js +1 -1
  13. package/lib/cjs/components/CollapsiblePanel/CollapsiblePanel.stories.js +1 -1
  14. package/lib/cjs/components/CopyText/CopyText.stories.js +1 -1
  15. package/lib/cjs/components/HelpHint/HelpHint.stories.js +1 -1
  16. package/lib/cjs/components/Icon/Icon.stories.js +1 -1
  17. package/lib/cjs/components/IconBadge/IconBadge.stories.js +1 -1
  18. package/lib/cjs/components/IconButton/IconButton.stories.js +1 -1
  19. package/lib/cjs/components/ImageUploadField/ImageUploadField.test.js +47 -14
  20. package/lib/cjs/components/Label/Label.test.js +10 -7
  21. package/lib/cjs/components/Link/Link.stories.js +1 -1
  22. package/lib/cjs/components/Loader/Loader.stories.js +1 -1
  23. package/lib/cjs/components/Menu/Menu.stories.js +1 -1
  24. package/lib/cjs/components/Messages/Messages.js +42 -9
  25. package/lib/cjs/components/Messages/Messages.stories.js +1 -1
  26. package/lib/cjs/components/Messages/Messages.test.js +7 -4
  27. package/lib/cjs/components/Modal/Modal.stories.js +1 -1
  28. package/lib/cjs/components/NavBar/NavBar.stories.js +1 -1
  29. package/lib/cjs/components/OverlayPanel/OverlayPanel.stories.js +3 -17
  30. package/lib/cjs/components/PanelHeader/PanelHeader.stories.js +1 -1
  31. package/lib/cjs/components/PanelHeader/PanelHeader.test.js +7 -3
  32. package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.js +1 -1
  33. package/lib/cjs/components/RequirementsList/RequirementsList.stories.js +1 -1
  34. package/lib/cjs/components/ScrollBox/ScrollBox.stories.js +1 -1
  35. package/lib/cjs/components/Separator/Separator.stories.js +1 -1
  36. package/lib/cjs/components/Stepper/Stepper.stories.js +1 -1
  37. package/lib/cjs/components/TreeView/TreeView.js +99 -11
  38. package/lib/cjs/components/TreeView/TreeView.stories.js +23 -10
  39. package/lib/cjs/components/TreeView/TreeView.styles.js +22 -2
  40. package/lib/cjs/components/TreeView/TreeView.test.js +91 -11
  41. package/lib/cjs/components/TreeView/TreeViewItem.js +112 -14
  42. package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.js +200 -0
  43. package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.test.js +511 -0
  44. package/lib/cjs/components/TreeView/TreeViewRow.js +20 -5
  45. package/lib/cjs/components/TreeView/TreeViewSection.js +164 -16
  46. package/lib/cjs/components/TreeView/TreeViewWrapper.js +40 -0
  47. package/lib/cjs/hooks/useComponentToggle/index.d.ts +1 -0
  48. package/lib/cjs/hooks/useComponentToggle/useComponentToggle.d.ts +32 -0
  49. package/lib/cjs/hooks/useComponentToggle/useComponentToggle.js +4 -20
  50. package/lib/cjs/hooks/useComponentToggle/useComponentToggle.test.d.ts +1 -0
  51. package/lib/cjs/hooks/useComponentToggle/useComponentToggle.test.js +8 -9
  52. package/lib/cjs/hooks/useFallbackImage/index.d.ts +1 -0
  53. package/lib/cjs/hooks/useFallbackImage/useFallbackImage.d.ts +10 -0
  54. package/lib/cjs/hooks/useFallbackImage/useFallbackImage.js +1 -2
  55. package/lib/cjs/hooks/useFallbackImage/useFallbackImage.test.d.ts +1 -0
  56. package/lib/cjs/hooks/useFallbackImage/useFallbackImage.test.js +9 -9
  57. package/lib/cjs/hooks/useImageUploadState/index.d.ts +1 -0
  58. package/lib/cjs/hooks/useImageUploadState/useImageUploadState.d.ts +28 -0
  59. package/lib/cjs/hooks/useImageUploadState/useImageUploadState.js +9 -6
  60. package/lib/cjs/hooks/useModalState/index.d.ts +1 -0
  61. package/lib/cjs/hooks/useModalState/useModalState.d.ts +21 -0
  62. package/lib/cjs/hooks/useModalState/useModalState.js +0 -9
  63. package/lib/cjs/hooks/useModalState/useModalState.test.d.ts +1 -0
  64. package/lib/cjs/recipes/AttributeMapping.stories.js +1 -1
  65. package/lib/cjs/recipes/ConditionFilter.stories.js +1 -1
  66. package/lib/cjs/recipes/MaskedValue.stories.js +1 -1
  67. package/lib/cjs/recipes/MultipagePopup.stories.js +1 -1
  68. package/lib/cjs/recipes/OneWayToBidirectionalArrow.stories.js +1 -1
  69. package/lib/cjs/recipes/PanelContent.stories.js +1 -1
  70. package/lib/cjs/recipes/Slider.stories.js +1 -1
  71. package/lib/cjs/recipes/TrialExperienceIndustryButtons.stories.js +1 -1
  72. package/lib/cjs/recipes/TrialExperienceStatusBar.stories.js +1 -1
  73. package/lib/cjs/utils/designUtils/figmaLinks.d.ts +7 -0
  74. package/lib/cjs/utils/testUtils/setupTests.d.ts +4 -0
  75. package/lib/cjs/utils/testUtils/testAxe.d.ts +2 -0
  76. package/lib/cjs/utils/testUtils/testTheme.d.ts +21 -0
  77. package/lib/cjs/utils/testUtils/testWrapper.d.ts +5 -0
  78. package/lib/cjs/utils/testUtils/testWrapper.js +3 -2
  79. package/lib/cjs/utils/testUtils/universalComponentTest.d.ts +5 -0
  80. package/lib/cjs/utils/testUtils/universalComponentTest.js +86 -0
  81. package/lib/components/AccordionGroup/AccordionGroup.stories.js +1 -1
  82. package/lib/components/Badge/Badge.stories.js +1 -1
  83. package/lib/components/Badge/Convenience/ConvenienceBadges.stories.js +1 -1
  84. package/lib/components/Bracket/Bracket.stories.js +1 -1
  85. package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +1 -1
  86. package/lib/components/Button/Button.stories.js +1 -1
  87. package/lib/components/Calendar/Calendar.stories.js +1 -1
  88. package/lib/components/Calendar/Calendar.test.js +9 -32
  89. package/lib/components/Callout/Callout.stories.js +1 -1
  90. package/lib/components/Card/Card.stories.js +1 -1
  91. package/lib/components/CodeView/CodeView.stories.js +1 -1
  92. package/lib/components/CollapsiblePanel/CollapsiblePanel.stories.js +1 -1
  93. package/lib/components/CopyText/CopyText.stories.js +1 -1
  94. package/lib/components/HelpHint/HelpHint.stories.js +1 -1
  95. package/lib/components/Icon/Icon.stories.js +1 -1
  96. package/lib/components/IconBadge/IconBadge.stories.js +1 -1
  97. package/lib/components/IconButton/IconButton.stories.js +1 -1
  98. package/lib/components/ImageUploadField/ImageUploadField.test.js +47 -14
  99. package/lib/components/Label/Label.test.js +8 -5
  100. package/lib/components/Link/Link.stories.js +1 -1
  101. package/lib/components/Loader/Loader.stories.js +1 -1
  102. package/lib/components/Menu/Menu.stories.js +1 -1
  103. package/lib/components/Messages/Messages.js +47 -15
  104. package/lib/components/Messages/Messages.stories.js +1 -1
  105. package/lib/components/Messages/Messages.test.js +7 -4
  106. package/lib/components/Modal/Modal.stories.js +1 -1
  107. package/lib/components/NavBar/NavBar.stories.js +1 -1
  108. package/lib/components/OverlayPanel/OverlayPanel.stories.js +4 -18
  109. package/lib/components/PanelHeader/PanelHeader.stories.js +1 -1
  110. package/lib/components/PanelHeader/PanelHeader.test.js +7 -3
  111. package/lib/components/PopoverMenu/PopoverMenu.stories.js +1 -1
  112. package/lib/components/RequirementsList/RequirementsList.stories.js +1 -1
  113. package/lib/components/ScrollBox/ScrollBox.stories.js +1 -1
  114. package/lib/components/Separator/Separator.stories.js +1 -1
  115. package/lib/components/Stepper/Stepper.stories.js +1 -1
  116. package/lib/components/TreeView/TreeView.js +100 -12
  117. package/lib/components/TreeView/TreeView.stories.js +23 -10
  118. package/lib/components/TreeView/TreeView.styles.js +22 -2
  119. package/lib/components/TreeView/TreeView.test.js +92 -12
  120. package/lib/components/TreeView/TreeViewItem.js +111 -14
  121. package/lib/components/TreeView/TreeViewKeyboardDelegate.js +176 -0
  122. package/lib/components/TreeView/TreeViewKeyboardDelegate.test.js +496 -0
  123. package/lib/components/TreeView/TreeViewRow.js +20 -5
  124. package/lib/components/TreeView/TreeViewSection.js +161 -16
  125. package/lib/components/TreeView/TreeViewWrapper.js +31 -0
  126. package/lib/hooks/useComponentToggle/useComponentToggle.js +4 -21
  127. package/lib/hooks/useComponentToggle/useComponentToggle.test.js +8 -9
  128. package/lib/hooks/useFallbackImage/useFallbackImage.js +1 -2
  129. package/lib/hooks/useFallbackImage/useFallbackImage.test.js +6 -6
  130. package/lib/hooks/useImageUploadState/useImageUploadState.js +9 -6
  131. package/lib/hooks/useModalState/useModalState.js +0 -10
  132. package/lib/recipes/AttributeMapping.stories.js +1 -1
  133. package/lib/recipes/ConditionFilter.stories.js +1 -1
  134. package/lib/recipes/MaskedValue.stories.js +1 -1
  135. package/lib/recipes/MultipagePopup.stories.js +1 -1
  136. package/lib/recipes/OneWayToBidirectionalArrow.stories.js +1 -1
  137. package/lib/recipes/PanelContent.stories.js +1 -1
  138. package/lib/recipes/Slider.stories.js +1 -1
  139. package/lib/recipes/TrialExperienceIndustryButtons.stories.js +1 -1
  140. package/lib/recipes/TrialExperienceStatusBar.stories.js +1 -1
  141. package/lib/utils/testUtils/testWrapper.js +3 -2
  142. package/lib/utils/testUtils/universalComponentTest.js +74 -0
  143. package/package.json +5 -1
@@ -3,7 +3,7 @@
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
4
  var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
5
5
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
6
- var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _filterInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
7
7
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
8
  var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
9
9
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
@@ -15,12 +15,16 @@ _Object$defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
17
  exports["default"] = void 0;
18
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
19
18
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
19
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
20
+ var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
21
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
21
22
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
23
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
24
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
22
25
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
23
26
  var _react = _interopRequireWildcard(require("react"));
27
+ var _collections = require("@react-stately/collections");
24
28
  var _list = require("@react-stately/list");
25
29
  var _propTypes = _interopRequireDefault(require("prop-types"));
26
30
  var _statusProp = require("../../utils/docUtils/statusProp");
@@ -30,22 +34,51 @@ var _react2 = require("@emotion/react");
30
34
  var _excluded = ["items", "onClose"];
31
35
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
37
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
35
39
  var Messages = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
36
- var _context;
37
40
  var items = props.items,
38
41
  onClose = props.onClose,
39
42
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
40
- var state = (0, _list.useListState)(props);
43
+ var _useState = (0, _react.useState)([]),
44
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
45
+ messages = _useState2[0],
46
+ setMessages = _useState2[1];
47
+ var factory = (0, _react.useCallback)(function (nodes) {
48
+ return new _list.ListCollection(nodes);
49
+ }, []);
50
+ var collection = (0, _collections.useCollection)(props, factory);
51
+ (0, _react.useEffect)(function () {
52
+ setMessages((0, _from["default"])(collection));
53
+ }, [collection]);
54
+ var removeMessage = function removeMessage(key) {
55
+ setMessages((0, _map["default"])(messages).call(messages, function (item) {
56
+ return item.key === key ? _objectSpread(_objectSpread({}, item), {}, {
57
+ props: _objectSpread(_objectSpread({}, item.props), {}, {
58
+ isHidden: true
59
+ })
60
+ }) : item;
61
+ }));
62
+ (0, _setTimeout2["default"])(function () {
63
+ return setMessages((0, _filter["default"])(messages).call(messages, function (item) {
64
+ return item.key !== key;
65
+ }));
66
+ }, 200);
67
+ };
68
+ var onCloseHandler = function onCloseHandler(key) {
69
+ if (onClose) {
70
+ onClose(key);
71
+ }
72
+ removeMessage(key);
73
+ };
41
74
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
42
75
  ref: ref,
43
76
  variant: "message.wrapper"
44
- }, others), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
77
+ }, others), (0, _map["default"])(messages).call(messages, function (item) {
45
78
  return (0, _react2.jsx)(_Message["default"], {
46
79
  key: item.key,
47
80
  item: item,
48
- onClose: onClose
81
+ onClose: onCloseHandler
49
82
  });
50
83
  }));
51
84
  });
@@ -29,7 +29,7 @@ var _AccountIcon = _interopRequireDefault(require("@pingux/mdi-react/AccountIcon
29
29
  var _storybookAddonDesigns = require("storybook-addon-designs");
30
30
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
31
31
  var _index = require("../../index");
32
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
32
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
33
33
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
34
34
  var _index2 = require("./index");
35
35
  var _Messages = _interopRequireDefault(require("./Messages.mdx"));
@@ -5,11 +5,11 @@ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
5
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
7
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
- var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
9
8
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
10
9
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
11
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
11
  var _react = _interopRequireDefault(require("react"));
12
+ var _testUtils = require("react-dom/test-utils");
13
13
  var _reactStately = require("react-stately");
14
14
  var _AccountIcon = _interopRequireDefault(require("@pingux/mdi-react/AccountIcon"));
15
15
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
@@ -101,14 +101,17 @@ test('`onClose` get as first arg key of message', function () {
101
101
  expect(onClose).toHaveBeenCalledWith('message1');
102
102
  });
103
103
  test('click on close button removes message after delay', function () {
104
+ (0, _testUtils.act)(function () {
105
+ global.setTimeout = jest.fn(function (cb) {
106
+ return cb();
107
+ });
108
+ });
104
109
  getComponent();
105
110
  var messages = _testWrapper.screen.getByTestId(testId);
106
111
  expect(messages.childElementCount).toBe(2);
107
112
  var buttons = _testWrapper.screen.getAllByRole('button');
108
113
  _userEvent["default"].click(buttons[0]);
109
- (0, _setTimeout2["default"])(function () {
110
- expect(messages.childElementCount).toBe(1);
111
- }, 200);
114
+ expect(messages.childElementCount).toBe(1);
112
115
  });
113
116
  test('Item accepts a data-id and the data-id can be found in the DOM', function () {
114
117
  getComponent();
@@ -12,7 +12,7 @@ var _storybookAddonDesigns = require("storybook-addon-designs");
12
12
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
13
13
  var _hooks = require("../../hooks");
14
14
  var _index = require("../../index");
15
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
15
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
16
16
  var _modalSizes = require("../../utils/devUtils/constants/modalSizes");
17
17
  var _Modal = _interopRequireDefault(require("./Modal.mdx"));
18
18
  var _react2 = require("@emotion/react");
@@ -25,7 +25,7 @@ var _ViewGridPlusOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react
25
25
  var _storybookAddonDesigns = require("storybook-addon-designs");
26
26
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
27
27
  var _index = require("../../index");
28
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
28
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
29
29
  var _NavBar = _interopRequireDefault(require("./NavBar.mdx"));
30
30
  var _react2 = require("@emotion/react");
31
31
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -172,7 +172,7 @@ var Expandable = function Expandable() {
172
172
  fontSize: 'sm',
173
173
  fontWeight: 500,
174
174
  color: 'text.secondary',
175
- '> div': {
175
+ '& > div:first-child': {
176
176
  order: 2
177
177
  }
178
178
  },
@@ -184,15 +184,6 @@ var Expandable = function Expandable() {
184
184
  gap: 'md',
185
185
  width: isExpanded ? '100%' : '400px',
186
186
  transition: 'width 500ms'
187
- },
188
- footer: {
189
- marginTop: 'auto',
190
- padding: '15px 25px',
191
- button: {
192
- width: '65px',
193
- height: '38px',
194
- border: '0 !important'
195
- }
196
187
  }
197
188
  };
198
189
  var multivaluesFieldItems = [{
@@ -346,17 +337,12 @@ var Expandable = function Expandable() {
346
337
  label: "Log field Description",
347
338
  defaultValue: "The Value of the Text Input"
348
339
  }));
349
- var footer = (0, _react2.jsx)(_index.Box, {
350
- isRow: true,
351
- sx: sx.footer
352
- }, (0, _react2.jsx)(_index.Button, {
340
+ var footer = (0, _react2.jsx)(_index.ButtonBar, null, (0, _react2.jsx)(_index.Button, {
353
341
  onPress: onCloseHandler,
354
- sx: sx.footer.button,
355
342
  variant: "primary"
356
343
  }, "Save"), (0, _react2.jsx)(_index.Button, {
357
344
  onPress: onCloseHandler,
358
- sx: sx.footer.button,
359
- variant: "text"
345
+ variant: "link"
360
346
  }, "Cancel"));
361
347
  return (
362
348
  // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
@@ -13,7 +13,7 @@ var _AccountIcon = _interopRequireDefault(require("@pingux/mdi-react/AccountIcon
13
13
  var _ChevronRightIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronRightIcon"));
14
14
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
15
15
  var _index = require("../../index");
16
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
16
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
17
17
  var _images = require("../../utils/devUtils/constants/images");
18
18
  var _listViewItemAttributes = require("../ListViewItem/listViewItemAttributes");
19
19
  var _PanelHeader = _interopRequireDefault(require("./PanelHeader.mdx"));
@@ -17,8 +17,8 @@ var _AccountIcon = _interopRequireDefault(require("@pingux/mdi-react/AccountIcon
17
17
  var _react2 = require("@testing-library/react");
18
18
  var _index = require("../../index");
19
19
  var _images = require("../../utils/devUtils/constants/images");
20
- var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
21
20
  var _testWrapper = require("../../utils/testUtils/testWrapper");
21
+ var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
22
22
  var _PanelHeader = require("./PanelHeader");
23
23
  var _react3 = require("@emotion/react");
24
24
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -47,8 +47,12 @@ jest.mock('../../hooks/useFallbackImage', function () {
47
47
  };
48
48
  });
49
49
 
50
- // Need to be added to each test file to test accessibility using axe.
51
- (0, _testAxe["default"])(getComponent);
50
+ // Needs to be added to each components test file
51
+ (0, _universalComponentTest.universalComponentTests)({
52
+ renderComponent: function renderComponent(props) {
53
+ return (0, _react3.jsx)(_index.PanelHeader, (0, _extends2["default"])({}, defaultProps, props));
54
+ }
55
+ });
52
56
  describe('PanelHeader', function () {
53
57
  test('renders data', function () {
54
58
  var _context;
@@ -15,7 +15,7 @@ var _addonActions = require("@storybook/addon-actions");
15
15
  var _storybookAddonDesigns = require("storybook-addon-designs");
16
16
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
17
17
  var _index = require("../../index");
18
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
18
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
19
19
  var _PopoverMenu = _interopRequireDefault(require("./PopoverMenu.mdx"));
20
20
  var _react2 = require("@emotion/react");
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -10,7 +10,7 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _storybookAddonDesigns = require("storybook-addon-designs");
11
11
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
12
12
  var _index = require("../../index");
13
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
13
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
14
14
  var _RequirementsList = _interopRequireDefault(require("./RequirementsList.mdx"));
15
15
  var _react2 = require("@emotion/react");
16
16
  var _default = {
@@ -11,7 +11,7 @@ var _react = _interopRequireDefault(require("react"));
11
11
  var _storybookAddonDesigns = require("storybook-addon-designs");
12
12
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
13
13
  var _index = require("../../index");
14
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
14
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
15
15
  var _ScrollBox = _interopRequireDefault(require("./ScrollBox.mdx"));
16
16
  var _react2 = require("@emotion/react");
17
17
  var _default = {
@@ -12,7 +12,7 @@ var _react = _interopRequireDefault(require("react"));
12
12
  var _storybookAddonDesigns = require("storybook-addon-designs");
13
13
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
14
14
  var _index = require("../../index");
15
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
15
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
16
16
  var _Separator = _interopRequireDefault(require("./Separator.mdx"));
17
17
  var _react2 = require("@emotion/react");
18
18
  var _default = {
@@ -15,7 +15,7 @@ var _reactStately = require("react-stately");
15
15
  var _storybookAddonDesigns = require("storybook-addon-designs");
16
16
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
17
17
  var _index = require("../../index");
18
- var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
18
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks.ts");
19
19
  var _Stepper = _interopRequireDefault(require("./Stepper.mdx"));
20
20
  var _react2 = require("@emotion/react");
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -20,6 +20,7 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
20
20
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
21
21
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
22
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
23
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
23
24
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
24
25
  var _react = _interopRequireWildcard(require("react"));
25
26
  var _reactStately = require("react-stately");
@@ -30,8 +31,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
30
31
  var _TreeViewContext = require("../../context/TreeViewContext");
31
32
  var _index = require("../../index");
32
33
  var _isIterable = require("../../utils/devUtils/props/isIterable");
34
+ var _TreeViewWrapper = _interopRequireDefault(require("./TreeViewWrapper"));
33
35
  var _react2 = require("@emotion/react");
34
- var _excluded = ["tree", "disabledKeys", "onExpandedChange"]; // split out and exported for ease of use across components
36
+ var _excluded = ["tree", "disabledKeys", "onExpandedChange", "onKeyDown", "pageLength"]; // split out and exported for ease of use across components
35
37
  // and to facilitate easier testing (eliminates redundant conditional renders)
36
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
39
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -57,11 +59,23 @@ function useTreeViewLayout(state) {
57
59
  return layout;
58
60
  }
59
61
  var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
60
- var _context;
62
+ var _tree$items$, _context;
61
63
  var tree = props.tree,
62
64
  disabledKeys = props.disabledKeys,
63
65
  onExpandedChange = props.onExpandedChange,
66
+ onKeyDown = props.onKeyDown,
67
+ _props$pageLength = props.pageLength,
68
+ pageLength = _props$pageLength === void 0 ? 5 : _props$pageLength,
64
69
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
70
+
71
+ // we are tracking the last focused item.
72
+ // this enables us to have focus jump back to the item, after focus
73
+ // leaves the tree, and then returns.
74
+ var _useState = (0, _react.useState)(tree === null || tree === void 0 || (_tree$items$ = tree.items[0]) === null || _tree$items$ === void 0 ? void 0 : _tree$items$.key),
75
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
76
+ lastFocusedItem = _useState2[0],
77
+ setLastFocusedItem = _useState2[1];
78
+ var level = 0;
65
79
  var treeViewRef = (0, _react.useRef)();
66
80
  var selectedKeys = tree.selectedKeys;
67
81
 
@@ -76,7 +90,66 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
76
90
  selectionMode: 'single',
77
91
  disallowEmptySelection: true
78
92
  }, others));
79
- var level = 0;
93
+ var flattenNestedData = function flattenNestedData(_data) {
94
+ var returnArray = [];
95
+ var checkItemNesting = function checkItemNesting(item) {
96
+ var _item$value, _item$items;
97
+ if (((_item$value = item.value) === null || _item$value === void 0 || (_item$value = _item$value.items) === null || _item$value === void 0 ? void 0 : _item$value.length) > 0) {
98
+ return {
99
+ isTopLevel: true,
100
+ hasChildren: true
101
+ };
102
+ }
103
+ if (((_item$items = item.items) === null || _item$items === void 0 ? void 0 : _item$items.length) > 0) {
104
+ return {
105
+ isTopLevel: false,
106
+ hasChildren: true
107
+ };
108
+ }
109
+ return {
110
+ isTopLevel: false,
111
+ hasChildren: false
112
+ };
113
+ };
114
+ var checkSection = function checkSection(isRendered, hasItems) {
115
+ return isRendered && hasItems;
116
+ };
117
+ var loop = function loop(data) {
118
+ for (var i = 0; i < data.length; i += 1) {
119
+ var obj = {
120
+ key: data[i].key
121
+ };
122
+ returnArray.push(obj);
123
+ var _checkItemNesting = checkItemNesting(data[i]),
124
+ hasChildren = _checkItemNesting.hasChildren,
125
+ isTopLevel = _checkItemNesting.isTopLevel;
126
+ if (checkSection(state.expandedKeys.has(data[i].key), hasChildren) === true) {
127
+ if (isTopLevel) {
128
+ var _data$i$value;
129
+ loop((_data$i$value = data[i].value) === null || _data$i$value === void 0 ? void 0 : _data$i$value.items);
130
+ } else {
131
+ loop(data[i].items);
132
+ }
133
+ }
134
+ }
135
+ };
136
+ loop(_data);
137
+ return returnArray;
138
+ };
139
+
140
+ // list of value pairs of keys and refs
141
+ // does not need to be in order, because they are values pairs
142
+ var _useState3 = (0, _react.useState)([]),
143
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
144
+ refArray = _useState4[0],
145
+ setRefs = _useState4[1];
146
+
147
+ // creates a flattened list of keys for up/down keyboard use
148
+ // this DOES need to be in the same order as the HTML appears in the DOM.
149
+ // we are essentially turning all rendered items into a flat list, for up/down
150
+ var flatKeyArray = (0, _react.useMemo)(function () {
151
+ return flattenNestedData(props.items);
152
+ }, [state.expandedKeys]);
80
153
  var ariaLabel = props['aria-label'];
81
154
  var listBoxOptions = {
82
155
  disabledKeys: disabledKeys,
@@ -90,7 +163,13 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
90
163
  return (0, _react2.jsx)(_TreeViewContext.TreeViewContext.Provider, {
91
164
  value: {
92
165
  state: state,
93
- tree: tree
166
+ tree: tree,
167
+ refArray: refArray,
168
+ setRefs: setRefs,
169
+ flatKeyArray: flatKeyArray,
170
+ pageLength: pageLength,
171
+ setLastFocusedItem: setLastFocusedItem,
172
+ lastFocusedItem: lastFocusedItem
94
173
  }
95
174
  }, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
96
175
  as: "ul"
@@ -99,14 +178,17 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
99
178
  "aria-label": ariaLabel,
100
179
  role: "treegrid",
101
180
  sx: {
102
- overflow: 'hidden'
181
+ overflow: 'hidden',
182
+ p: '5px',
183
+ border: 'none !important'
103
184
  }
104
- }, others), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item, index) {
185
+ }, others), (0, _react2.jsx)(_TreeViewWrapper["default"], null, (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item, index) {
105
186
  return SectionOrItemRender(item.props.items.length > 0, (0, _react2.jsx)(_index.TreeViewSection, {
106
187
  item: item,
107
188
  items: item.props.items,
108
189
  title: item.props.title,
109
190
  key: item.props.title,
191
+ onKeyDown: onKeyDown,
110
192
  level: level + 1,
111
193
  setSize: state.collection.size,
112
194
  position: index
@@ -114,17 +196,19 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
114
196
  item: item,
115
197
  title: item.value.value.title,
116
198
  key: item.value.value.title,
199
+ onKeyDown: onKeyDown,
117
200
  level: level + 1,
118
- position: index,
119
- setSize: state.collection.size
201
+ setSize: state.collection.size,
202
+ position: index
120
203
  }));
121
- })));
204
+ }))));
122
205
  });
123
206
  TreeView.propTypes = {
124
207
  /** data object prop that is required to make the tree function
125
208
  this is returned from the useTreeData hook in React-Aria */
126
209
  tree: _propTypes["default"].shape({
127
- selectedKeys: _isIterable.isIterableProp
210
+ selectedKeys: _isIterable.isIterableProp,
211
+ items: _isIterable.isIterableProp
128
212
  }).isRequired,
129
213
  /** The currently disabled keys in the collection. */
130
214
  disabledKeys: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object])),
@@ -133,7 +217,11 @@ TreeView.propTypes = {
133
217
  /** The list of TreeView items. */
134
218
  items: _isIterable.isIterableProp,
135
219
  /** String that describes the treeview when using a screen reader. */
136
- 'aria-label': _propTypes["default"].string
220
+ 'aria-label': _propTypes["default"].string,
221
+ /** Handler that is called when a key is pressed. */
222
+ onKeyDown: _propTypes["default"].func,
223
+ /** Number of items to move the focus when page up or page down is pressed */
224
+ pageLength: _propTypes["default"].number
137
225
  };
138
226
  var _default = TreeView;
139
227
  exports["default"] = _default;
@@ -29,36 +29,50 @@ var _default = {
29
29
  exports["default"] = _default;
30
30
  var data = [{
31
31
  title: 'Policies',
32
+ key: 'Policies',
32
33
  items: [{
33
34
  title: 'Registration',
35
+ key: 'Registration',
34
36
  items: [{
35
- title: 'Registration A'
37
+ title: 'Registration A',
38
+ key: 'Registration A'
36
39
  }, {
37
40
  title: 'Registration B',
41
+ key: 'Registration B',
38
42
  items: [{
39
- title: 'Registration B1'
43
+ title: 'Registration B1',
44
+ key: 'Registration B1'
40
45
  }, {
41
- title: 'Registration B2'
46
+ title: 'Registration B2',
47
+ key: 'Registration B2'
42
48
  }]
43
49
  }, {
44
- title: 'Registration C'
50
+ title: 'Registration C',
51
+ key: 'Registration C'
45
52
  }, {
46
- title: 'Registration D'
53
+ title: 'Registration D',
54
+ key: 'Registration D'
47
55
  }]
48
56
  }, {
49
57
  title: 'Authentication',
58
+ key: 'Authentication',
50
59
  items: [{
51
- title: 'Authentication A'
60
+ title: 'Authentication A',
61
+ key: 'Authentication A'
52
62
  }, {
53
- title: 'Authentication B'
63
+ title: 'Authentication B',
64
+ key: 'Authentication B'
54
65
  }]
55
66
  }]
56
67
  }, {
57
68
  title: 'Other',
69
+ key: 'Other',
58
70
  items: [{
59
- title: 'Other A'
71
+ title: 'Other A',
72
+ key: 'Other A'
60
73
  }]
61
74
  }, {
75
+ key: 'Single Item',
62
76
  title: 'Single Item'
63
77
  }];
64
78
  var Default = function Default(args) {
@@ -74,8 +88,7 @@ var Default = function Default(args) {
74
88
  return (0, _react2.jsx)(_index.TreeView, (0, _extends2["default"])({}, args, {
75
89
  items: tree.items,
76
90
  tree: tree,
77
- "aria-label": "Example Tree",
78
- disabledKeys: ['Single Item']
91
+ "aria-label": "Example Tree"
79
92
  }), function (section) {
80
93
  var _section$value;
81
94
  return (0, _react2.jsx)(_index.Item, {
@@ -10,7 +10,7 @@ var treeRow = {
10
10
  cursor: 'pointer',
11
11
  height: '31px',
12
12
  outline: 'none',
13
- '&.is-selected, &.is-hovered, &.is-focused': {
13
+ '&.is-selected, &.is-hovered': {
14
14
  backgroundColor: 'active',
15
15
  '& span': {
16
16
  color: 'white'
@@ -24,9 +24,29 @@ var treeRow = {
24
24
  },
25
25
  '&.is-expanded': {
26
26
  marginBottom: 'xs'
27
+ },
28
+ '& :focus': {
29
+ border: 'none'
27
30
  }
28
31
  };
32
+ var wrapper = {
33
+ '&.is-focused': {
34
+ boxSizing: 'unset',
35
+ outline: '1px solid',
36
+ outlineColor: 'focus',
37
+ outlineOffset: '2px'
38
+ },
39
+ width: '100%',
40
+ ':not(:last-child)': {
41
+ mb: 'sm'
42
+ },
43
+ ':focus': {
44
+ border: 'none'
45
+ },
46
+ outline: 'none'
47
+ };
29
48
  var _default = {
30
- treeRow: treeRow
49
+ treeRow: treeRow,
50
+ wrapper: wrapper
31
51
  };
32
52
  exports["default"] = _default;