@pingux/astro 2.30.0 → 2.30.1-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.
@@ -76,6 +76,7 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
76
76
  selectionMode: 'single',
77
77
  disallowEmptySelection: true
78
78
  }, others));
79
+ var level = 0;
79
80
  var ariaLabel = props['aria-label'];
80
81
  var listBoxOptions = {
81
82
  disabledKeys: disabledKeys,
@@ -100,16 +101,22 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
100
101
  sx: {
101
102
  overflow: 'hidden'
102
103
  }
103
- }, others), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
104
+ }, others), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item, index) {
104
105
  return SectionOrItemRender(item.props.items.length > 0, (0, _react2.jsx)(_index.TreeViewSection, {
105
106
  item: item,
106
107
  items: item.props.items,
107
108
  title: item.props.title,
108
- key: item.props.title
109
+ key: item.props.title,
110
+ level: level + 1,
111
+ setSize: state.collection.size,
112
+ position: index
109
113
  }), (0, _react2.jsx)(_index.TreeViewItem, {
110
114
  item: item,
111
115
  title: item.value.value.title,
112
- key: item.value.value.title
116
+ key: item.value.value.title,
117
+ level: level + 1,
118
+ position: index,
119
+ setSize: state.collection.size
113
120
  }));
114
121
  })));
115
122
  });
@@ -151,6 +151,21 @@ test('disabledKeys prop disables items in the tree -- rendering them unclickable
151
151
  expect(thisItem).not.toHaveClass('is-selected');
152
152
  expect(thisItem).toHaveAttribute('aria-selected', 'false');
153
153
  });
154
+ test('displays correct aria attributes', function () {
155
+ (0, _testWrapper.render)((0, _react2.jsx)(TreeViewComponent, null));
156
+ var listItems = _testWrapper.screen.getAllByRole('treeitem');
157
+ var lastTreeItem = listItems[2];
158
+ expect(lastTreeItem).toHaveAttribute('aria-level', '1');
159
+ expect(lastTreeItem).toHaveAttribute('aria-posinset', '3');
160
+ expect(lastTreeItem).toHaveAttribute('aria-setsize', '3');
161
+ var buttons = _testWrapper.screen.queryAllByRole('button');
162
+ _testWrapper.fireEvent.click(buttons[1]);
163
+ var expandedItems = _testWrapper.screen.getAllByRole('treeitem');
164
+ var nestedItem = expandedItems[2];
165
+ expect(nestedItem).toHaveAttribute('aria-level', '2');
166
+ expect(nestedItem).toHaveAttribute('aria-posinset', '1');
167
+ expect(nestedItem).toHaveAttribute('aria-setsize', '1');
168
+ });
154
169
  var firstJSX = (0, _react2.jsx)("p", null, "first");
155
170
  var secondJSX = (0, _react2.jsx)("p", null, "second");
156
171
  test('Section or Item Render renders first item if condition is true', function () {
@@ -22,7 +22,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
22
22
  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; }
23
23
  var TreeViewItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
24
24
  var item = props.item,
25
- title = props.title;
25
+ title = props.title,
26
+ level = props.level,
27
+ position = props.position,
28
+ setSize = props.setSize;
26
29
  var key = item.key;
27
30
  var treeItemRef = (0, _react.useRef)();
28
31
  /* istanbul ignore next */
@@ -42,7 +45,10 @@ var TreeViewItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
42
45
  as: "li",
43
46
  isRow: true,
44
47
  ref: treeItemRef,
45
- "aria-disabled": isDisabled
48
+ "aria-disabled": isDisabled,
49
+ "aria-level": level,
50
+ "aria-posinset": position + 1,
51
+ "aria-setsize": setSize
46
52
  }, optionProps, {
47
53
  role: "treeitem",
48
54
  sx: {
@@ -67,7 +73,10 @@ TreeViewItem.propTypes = {
67
73
  key: _propTypes["default"].string
68
74
  }),
69
75
  name: _propTypes["default"].string,
70
- title: _propTypes["default"].string
76
+ title: _propTypes["default"].string,
77
+ level: _propTypes["default"].number,
78
+ position: _propTypes["default"].number,
79
+ setSize: _propTypes["default"].number
71
80
  };
72
81
  var _default = TreeViewItem;
73
82
  exports["default"] = _default;
@@ -16,7 +16,7 @@ var _react = _interopRequireWildcard(require("react"));
16
16
  var _listbox = require("@react-aria/listbox");
17
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
18
18
  var _TreeViewContext = require("../../context/TreeViewContext");
19
- var _index = require("../../index");
19
+ var _index2 = require("../../index");
20
20
  var _TreeView = require("./TreeView");
21
21
  var _TreeViewRow = _interopRequireDefault(require("./TreeViewRow"));
22
22
  var _react2 = require("@emotion/react");
@@ -26,7 +26,10 @@ var TreeViewSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
26
26
  var _context;
27
27
  var item = props.item,
28
28
  items = props.items,
29
- title = props.title;
29
+ title = props.title,
30
+ level = props.level,
31
+ position = props.position,
32
+ setSize = props.setSize;
30
33
  var key = item.key;
31
34
  var treeSectionRef = (0, _react.useRef)();
32
35
  /* istanbul ignore next */
@@ -42,7 +45,7 @@ var TreeViewSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
42
45
  isDisabled = _useOption.isDisabled,
43
46
  isSelected = _useOption.isSelected;
44
47
  var isExpanded = state.expandedKeys.has(key);
45
- return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
48
+ return (0, _react2.jsx)(_index2.Box, (0, _extends2["default"])({
46
49
  ref: treeSectionRef,
47
50
  as: "li",
48
51
  sx: {
@@ -51,7 +54,10 @@ var TreeViewSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
51
54
  }
52
55
  },
53
56
  "aria-expanded": isExpanded,
54
- "aria-disabled": isDisabled
57
+ "aria-disabled": isDisabled,
58
+ "aria-level": level,
59
+ "aria-setsize": setSize,
60
+ "aria-posinset": position + 1
55
61
  }, optionProps, {
56
62
  role: "treeitem",
57
63
  "aria-selected": isSelected
@@ -62,24 +68,30 @@ var TreeViewSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
62
68
  isExpanded: isExpanded,
63
69
  isSelected: isSelected,
64
70
  isDisabled: isDisabled
65
- }), isExpanded && (0, _react2.jsx)(_index.Box, {
71
+ }), isExpanded && (0, _react2.jsx)(_index2.Box, {
66
72
  as: "ul",
67
73
  role: "group",
68
74
  key: "".concat(item.key, " ul"),
69
75
  sx: {
70
76
  pl: 'md'
71
77
  }
72
- }, (0, _map["default"])(_context = (0, _from["default"])(items)).call(_context, function (_item) {
78
+ }, (0, _map["default"])(_context = (0, _from["default"])(items)).call(_context, function (_item, _index) {
73
79
  var _item$value$items;
74
80
  return (0, _TreeView.SectionOrItemRender)(((_item$value$items = _item.value.items) === null || _item$value$items === void 0 ? void 0 : _item$value$items.length) > 0, (0, _react2.jsx)(TreeViewSection, {
75
81
  item: _item,
76
82
  items: _item.children,
77
83
  title: _item.value.title,
78
- key: _item.value.title
79
- }), (0, _react2.jsx)(_index.TreeViewItem, {
84
+ key: _item.value.title,
85
+ level: level + 1,
86
+ position: _index,
87
+ setSize: items.length
88
+ }), (0, _react2.jsx)(_index2.TreeViewItem, {
80
89
  item: _item,
81
90
  title: _item.value.title,
82
- key: _item.value.title
91
+ key: _item.value.title,
92
+ level: level + 1,
93
+ position: _index,
94
+ setSize: items.length
83
95
  }));
84
96
  })));
85
97
  });
@@ -88,7 +100,10 @@ TreeViewSection.propTypes = {
88
100
  item: _propTypes["default"].shape({
89
101
  key: _propTypes["default"].string
90
102
  }),
91
- title: _propTypes["default"].string
103
+ title: _propTypes["default"].string,
104
+ level: _propTypes["default"].number,
105
+ position: _propTypes["default"].number,
106
+ setSize: _propTypes["default"].number
92
107
  };
93
108
  var _default = TreeViewSection;
94
109
  exports["default"] = _default;
@@ -65,6 +65,7 @@ var TreeView = /*#__PURE__*/forwardRef(function (props, ref) {
65
65
  selectionMode: 'single',
66
66
  disallowEmptySelection: true
67
67
  }, others));
68
+ var level = 0;
68
69
  var ariaLabel = props['aria-label'];
69
70
  var listBoxOptions = {
70
71
  disabledKeys: disabledKeys,
@@ -89,16 +90,22 @@ var TreeView = /*#__PURE__*/forwardRef(function (props, ref) {
89
90
  sx: {
90
91
  overflow: 'hidden'
91
92
  }
92
- }, others), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item) {
93
+ }, others), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item, index) {
93
94
  return SectionOrItemRender(item.props.items.length > 0, ___EmotionJSX(TreeViewSection, {
94
95
  item: item,
95
96
  items: item.props.items,
96
97
  title: item.props.title,
97
- key: item.props.title
98
+ key: item.props.title,
99
+ level: level + 1,
100
+ setSize: state.collection.size,
101
+ position: index
98
102
  }), ___EmotionJSX(TreeViewItem, {
99
103
  item: item,
100
104
  title: item.value.value.title,
101
- key: item.value.value.title
105
+ key: item.value.value.title,
106
+ level: level + 1,
107
+ position: index,
108
+ setSize: state.collection.size
102
109
  }));
103
110
  })));
104
111
  });
@@ -148,6 +148,21 @@ test('disabledKeys prop disables items in the tree -- rendering them unclickable
148
148
  expect(thisItem).not.toHaveClass('is-selected');
149
149
  expect(thisItem).toHaveAttribute('aria-selected', 'false');
150
150
  });
151
+ test('displays correct aria attributes', function () {
152
+ render(___EmotionJSX(TreeViewComponent, null));
153
+ var listItems = screen.getAllByRole('treeitem');
154
+ var lastTreeItem = listItems[2];
155
+ expect(lastTreeItem).toHaveAttribute('aria-level', '1');
156
+ expect(lastTreeItem).toHaveAttribute('aria-posinset', '3');
157
+ expect(lastTreeItem).toHaveAttribute('aria-setsize', '3');
158
+ var buttons = screen.queryAllByRole('button');
159
+ fireEvent.click(buttons[1]);
160
+ var expandedItems = screen.getAllByRole('treeitem');
161
+ var nestedItem = expandedItems[2];
162
+ expect(nestedItem).toHaveAttribute('aria-level', '2');
163
+ expect(nestedItem).toHaveAttribute('aria-posinset', '1');
164
+ expect(nestedItem).toHaveAttribute('aria-setsize', '1');
165
+ });
151
166
  var firstJSX = ___EmotionJSX("p", null, "first");
152
167
  var secondJSX = ___EmotionJSX("p", null, "second");
153
168
  test('Section or Item Render renders first item if condition is true', function () {
@@ -9,7 +9,10 @@ import TreeViewRow from './TreeViewRow';
9
9
  import { jsx as ___EmotionJSX } from "@emotion/react";
10
10
  var TreeViewItem = /*#__PURE__*/forwardRef(function (props, ref) {
11
11
  var item = props.item,
12
- title = props.title;
12
+ title = props.title,
13
+ level = props.level,
14
+ position = props.position,
15
+ setSize = props.setSize;
13
16
  var key = item.key;
14
17
  var treeItemRef = useRef();
15
18
  /* istanbul ignore next */
@@ -29,7 +32,10 @@ var TreeViewItem = /*#__PURE__*/forwardRef(function (props, ref) {
29
32
  as: "li",
30
33
  isRow: true,
31
34
  ref: treeItemRef,
32
- "aria-disabled": isDisabled
35
+ "aria-disabled": isDisabled,
36
+ "aria-level": level,
37
+ "aria-posinset": position + 1,
38
+ "aria-setsize": setSize
33
39
  }, optionProps, {
34
40
  role: "treeitem",
35
41
  sx: {
@@ -54,6 +60,9 @@ TreeViewItem.propTypes = {
54
60
  key: PropTypes.string
55
61
  }),
56
62
  name: PropTypes.string,
57
- title: PropTypes.string
63
+ title: PropTypes.string,
64
+ level: PropTypes.number,
65
+ position: PropTypes.number,
66
+ setSize: PropTypes.number
58
67
  };
59
68
  export default TreeViewItem;
@@ -13,7 +13,10 @@ var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
13
13
  var _context;
14
14
  var item = props.item,
15
15
  items = props.items,
16
- title = props.title;
16
+ title = props.title,
17
+ level = props.level,
18
+ position = props.position,
19
+ setSize = props.setSize;
17
20
  var key = item.key;
18
21
  var treeSectionRef = useRef();
19
22
  /* istanbul ignore next */
@@ -38,7 +41,10 @@ var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
38
41
  }
39
42
  },
40
43
  "aria-expanded": isExpanded,
41
- "aria-disabled": isDisabled
44
+ "aria-disabled": isDisabled,
45
+ "aria-level": level,
46
+ "aria-setsize": setSize,
47
+ "aria-posinset": position + 1
42
48
  }, optionProps, {
43
49
  role: "treeitem",
44
50
  "aria-selected": isSelected
@@ -56,17 +62,23 @@ var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
56
62
  sx: {
57
63
  pl: 'md'
58
64
  }
59
- }, _mapInstanceProperty(_context = _Array$from(items)).call(_context, function (_item) {
65
+ }, _mapInstanceProperty(_context = _Array$from(items)).call(_context, function (_item, _index) {
60
66
  var _item$value$items;
61
67
  return SectionOrItemRender(((_item$value$items = _item.value.items) === null || _item$value$items === void 0 ? void 0 : _item$value$items.length) > 0, ___EmotionJSX(TreeViewSection, {
62
68
  item: _item,
63
69
  items: _item.children,
64
70
  title: _item.value.title,
65
- key: _item.value.title
71
+ key: _item.value.title,
72
+ level: level + 1,
73
+ position: _index,
74
+ setSize: items.length
66
75
  }), ___EmotionJSX(TreeViewItem, {
67
76
  item: _item,
68
77
  title: _item.value.title,
69
- key: _item.value.title
78
+ key: _item.value.title,
79
+ level: level + 1,
80
+ position: _index,
81
+ setSize: items.length
70
82
  }));
71
83
  })));
72
84
  });
@@ -75,6 +87,9 @@ TreeViewSection.propTypes = {
75
87
  item: PropTypes.shape({
76
88
  key: PropTypes.string
77
89
  }),
78
- title: PropTypes.string
90
+ title: PropTypes.string,
91
+ level: PropTypes.number,
92
+ position: PropTypes.number,
93
+ setSize: PropTypes.number
79
94
  };
80
95
  export default TreeViewSection;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.30.0",
3
+ "version": "2.30.1-alpha.0",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",