@pingux/astro 2.27.0-alpha.4 → 2.27.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.
@@ -15,6 +15,7 @@ _Object$defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
17
  exports["default"] = exports.SectionOrItemRender = void 0;
18
+ exports.useTreeViewLayout = useTreeViewLayout;
18
19
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
19
20
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
20
21
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
@@ -22,12 +23,15 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
22
23
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
23
24
  var _react = _interopRequireWildcard(require("react"));
24
25
  var _reactStately = require("react-stately");
26
+ var _i18n = require("@react-aria/i18n");
27
+ var _listbox = require("@react-aria/listbox");
28
+ var _layout = require("@react-stately/layout");
25
29
  var _propTypes = _interopRequireDefault(require("prop-types"));
26
30
  var _TreeViewContext = require("../../context/TreeViewContext");
27
31
  var _index = require("../../index");
28
32
  var _isIterable = require("../../utils/devUtils/props/isIterable");
29
33
  var _react2 = require("@emotion/react");
30
- var _excluded = ["tree", "onExpandedChange"]; // split out and exported for ease of use across components
34
+ var _excluded = ["tree", "disabledKeys", "onExpandedChange"]; // split out and exported for ease of use across components
31
35
  // and to facilitate easier testing (eliminates redundant conditional renders)
32
36
  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); }
33
37
  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; }
@@ -40,35 +44,64 @@ var SectionOrItemRender = function SectionOrItemRender(condition, SectionCompone
40
44
  return ItemComponent;
41
45
  };
42
46
  exports.SectionOrItemRender = SectionOrItemRender;
47
+ function useTreeViewLayout(state) {
48
+ var collator = (0, _i18n.useCollator)({
49
+ usage: 'search',
50
+ sensitivity: 'base'
51
+ });
52
+ var layout = (0, _react.useMemo)(function () {
53
+ return new _layout.ListLayout();
54
+ }, [collator]);
55
+ layout.collection = state.collection;
56
+ layout.disabledKeys = state.disabledKeys;
57
+ return layout;
58
+ }
43
59
  var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
44
- var _labelRef$current, _context;
60
+ var _context;
45
61
  var tree = props.tree,
62
+ disabledKeys = props.disabledKeys,
46
63
  onExpandedChange = props.onExpandedChange,
47
64
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
48
- var labelRef = (0, _react.useRef)();
49
65
  var treeViewRef = (0, _react.useRef)();
66
+ var selectedKeys = tree.selectedKeys;
67
+
50
68
  /* istanbul ignore next */
51
69
  (0, _react.useImperativeHandle)(ref, function () {
52
70
  return treeViewRef.current;
53
71
  });
54
72
  var state = (0, _reactStately.useTreeState)(_objectSpread({
55
- onExpandedChange: onExpandedChange
73
+ onExpandedChange: onExpandedChange,
74
+ disabledKeys: disabledKeys,
75
+ selectedKeys: selectedKeys,
76
+ selectionMode: 'single',
77
+ disallowEmptySelection: true
56
78
  }, others));
79
+ var ariaLabel = props['aria-label'];
80
+ var listBoxOptions = {
81
+ disabledKeys: disabledKeys,
82
+ 'aria-label': ariaLabel
83
+ };
84
+ var layout = useTreeViewLayout(state);
85
+ var _useListBox = (0, _listbox.useListBox)(_objectSpread(_objectSpread({}, listBoxOptions), {}, {
86
+ keyboardDelegate: layout
87
+ }), state, treeViewRef),
88
+ listBoxProps = _useListBox.listBoxProps;
57
89
  return (0, _react2.jsx)(_TreeViewContext.TreeViewContext.Provider, {
58
90
  value: {
59
91
  state: state,
60
92
  tree: tree
61
93
  }
62
94
  }, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
63
- as: "ul",
64
- role: "tree",
95
+ as: "ul"
96
+ }, listBoxProps, {
65
97
  ref: treeViewRef,
66
- "aria-labelledby": labelRef === null || labelRef === void 0 || (_labelRef$current = labelRef.current) === null || _labelRef$current === void 0 ? void 0 : _labelRef$current.id,
98
+ "aria-label": ariaLabel,
99
+ role: "treegrid",
67
100
  sx: {
68
101
  overflow: 'hidden'
69
102
  }
70
103
  }, others), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
71
- return SectionOrItemRender(item.type === 'section', (0, _react2.jsx)(_index.TreeViewSection, {
104
+ return SectionOrItemRender(item.props.items.length > 0, (0, _react2.jsx)(_index.TreeViewSection, {
72
105
  item: item,
73
106
  items: item.props.items,
74
107
  title: item.props.title,
@@ -80,13 +113,12 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
80
113
  }));
81
114
  })));
82
115
  });
83
- TreeView.defaultProps = {
84
- 'aria-label': 'tree'
85
- };
86
116
  TreeView.propTypes = {
87
117
  /** data object prop that is required to make the tree function
88
118
  this is returned from the useTreeData hook in React-Aria */
89
- tree: _propTypes["default"].shape({}).isRequired,
119
+ tree: _propTypes["default"].shape({
120
+ selectedKeys: _isIterable.isIterableProp
121
+ }).isRequired,
90
122
  /** The currently disabled keys in the collection. */
91
123
  disabledKeys: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object])),
92
124
  /** Callback function that is called when items are expanded or collapsed. */
@@ -10,8 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
12
12
  var _index = require("../../index");
13
- var _TreeView = require("./TreeView");
14
- var _TreeView2 = _interopRequireDefault(require("./TreeView.mdx"));
13
+ var _TreeView = _interopRequireDefault(require("./TreeView.mdx"));
15
14
  var _react2 = require("@emotion/react");
16
15
  var _default = {
17
16
  title: 'Experimental/TreeView',
@@ -19,7 +18,7 @@ var _default = {
19
18
  parameters: {
20
19
  docs: {
21
20
  page: function page() {
22
- return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_TreeView2["default"], null), (0, _react2.jsx)(_storybookDocsLayout["default"], null));
21
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_TreeView["default"], null), (0, _react2.jsx)(_storybookDocsLayout["default"], null));
23
22
  },
24
23
  source: {
25
24
  type: 'code'
@@ -74,16 +73,16 @@ var Default = function Default(args) {
74
73
  });
75
74
  return (0, _react2.jsx)(_index.TreeView, (0, _extends2["default"])({}, args, {
76
75
  items: tree.items,
77
- tree: tree
76
+ tree: tree,
77
+ "aria-label": "Example Tree",
78
+ disabledKeys: ['Single Item']
78
79
  }), function (section) {
79
- return (0, _TreeView.SectionOrItemRender)(section.children.length > 0, (0, _react2.jsx)(_index.Section, {
80
+ var _section$value;
81
+ return (0, _react2.jsx)(_index.Item, {
80
82
  key: section.key,
81
83
  items: section.children,
82
- title: section.value.title
83
- }), (0, _react2.jsx)(_index.Item, {
84
- key: section.key,
85
- title: section.title
86
- }));
84
+ title: (_section$value = section.value) === null || _section$value === void 0 ? void 0 : _section$value.title
85
+ });
87
86
  });
88
87
  };
89
88
  exports.Default = Default;
@@ -11,34 +11,37 @@ var _ = _interopRequireDefault(require("."));
11
11
  var _react2 = require("@emotion/react");
12
12
  var testId = 'test-TreeView';
13
13
  var defaultProps = {
14
- 'data-testid': testId
14
+ 'data-testid': testId,
15
+ label: 'example tree'
15
16
  };
16
17
  var data = [{
17
- title: 'People',
18
+ title: 'Policies',
18
19
  items: [{
19
- title: 'David',
20
- customProp: 1
21
- }, {
22
- title: 'Sam'
23
- }, {
24
- title: 'Jane'
25
- }]
26
- }, {
27
- title: 'Animals',
28
- items: [{
29
- title: 'Bears',
20
+ title: 'Registration',
30
21
  items: [{
31
- title: 'Black Bear'
22
+ title: 'Registration A'
23
+ }, {
24
+ title: 'Registration B'
25
+ }, {
26
+ title: 'Registration C'
32
27
  }, {
33
- title: 'Brown Bear'
28
+ title: 'Registration D'
34
29
  }]
35
30
  }, {
36
- title: 'Kangaroo'
37
- }, {
38
- title: 'Snake'
31
+ title: 'Authentication',
32
+ items: [{
33
+ title: 'Authentication A'
34
+ }, {
35
+ title: 'Authentication B'
36
+ }]
37
+ }]
38
+ }, {
39
+ title: 'Other',
40
+ items: [{
41
+ title: 'Other A'
39
42
  }]
40
43
  }, {
41
- title: 'Plant'
44
+ title: 'Single Item'
42
45
  }];
43
46
  var TreeViewComponent = function TreeViewComponent(props) {
44
47
  var tree = (0, _reactStately.useTreeData)({
@@ -52,36 +55,62 @@ var TreeViewComponent = function TreeViewComponent(props) {
52
55
  });
53
56
  return (0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props, {
54
57
  items: tree.items,
55
- tree: tree
56
- }), function (section) {
57
- var _section$children;
58
- return (0, _TreeView.SectionOrItemRender)(((_section$children = section.children) === null || _section$children === void 0 ? void 0 : _section$children.length) > 0, (0, _react2.jsx)(_index.Section, {
59
- key: section.key,
60
- items: section.children,
61
- title: section.key,
62
- customProp: {
63
- testp: 1
64
- }
65
- }), (0, _react2.jsx)(_index.Item, {
66
- key: section.key,
67
- title: section.key
68
- }));
58
+ tree: tree,
59
+ "aria-label": "Example Tree"
60
+ }), function (item) {
61
+ return (0, _react2.jsx)(_index.Item, {
62
+ key: item.key,
63
+ items: item.children,
64
+ title: item.key
65
+ });
69
66
  });
70
67
  };
68
+ var offsetWidth;
69
+ var offsetHeight;
70
+ var scrollHeight;
71
+ var onSelectionChange = jest.fn();
72
+ beforeAll(function () {
73
+ offsetWidth = jest.spyOn(window.HTMLElement.prototype, 'clientWidth', 'get').mockImplementation(function () {
74
+ return 1000;
75
+ });
76
+ offsetHeight = jest.spyOn(window.HTMLElement.prototype, 'clientHeight', 'get').mockImplementation(function () {
77
+ return 1000;
78
+ });
79
+ scrollHeight = jest.spyOn(window.HTMLElement.prototype, 'scrollHeight', 'get').mockImplementation(function () {
80
+ return 48;
81
+ });
82
+ jest.spyOn(window, 'requestAnimationFrame').mockImplementation(function (cb) {
83
+ return cb();
84
+ });
85
+ jest.useFakeTimers();
86
+ });
87
+ afterEach(function () {
88
+ onSelectionChange.mockClear();
89
+ });
90
+ afterAll(function () {
91
+ offsetWidth.mockReset();
92
+ offsetHeight.mockReset();
93
+ scrollHeight.mockReset();
94
+ });
95
+ test('TreeView component does load', function () {
96
+ (0, _testWrapper.render)((0, _react2.jsx)(TreeViewComponent, null));
97
+ var element = _testWrapper.screen.queryByRole('treegrid');
98
+ expect(element).toBeInTheDocument();
99
+ });
71
100
  test('Can select an Item using the mouse', function () {
72
101
  (0, _testWrapper.render)((0, _react2.jsx)(TreeViewComponent, null));
73
- var element = _testWrapper.screen.getByTestId(testId);
102
+ var element = _testWrapper.screen.queryByRole('treegrid');
74
103
  expect(element).toBeInTheDocument();
75
- var peopleElement = _testWrapper.screen.getByText('People');
104
+ var peopleElement = _testWrapper.screen.queryByText('Single Item');
76
105
  expect(peopleElement).not.toHaveClass('is-selected');
77
106
  _testWrapper.fireEvent.click(peopleElement);
78
107
  expect(peopleElement).toHaveClass('is-selected');
79
108
  });
80
109
  test('Renders both Sections and Items', function () {
81
110
  (0, _testWrapper.render)((0, _react2.jsx)(TreeViewComponent, null));
82
- var peopleElement = _testWrapper.screen.getByText('People');
111
+ var peopleElement = _testWrapper.screen.getByText('Single Item');
83
112
  expect(peopleElement).toBeInTheDocument();
84
- var plantElement = _testWrapper.screen.getByText('Plant');
113
+ var plantElement = _testWrapper.screen.getByText('Other');
85
114
  expect(plantElement).toBeInTheDocument();
86
115
  var allListItems = _testWrapper.screen.getAllByRole('treeitem');
87
116
  expect(allListItems).toHaveLength(3);
@@ -111,9 +140,9 @@ test('onExpandedChange change prop calls when used', function () {
111
140
  });
112
141
  test('disabledKeys prop disables items in the tree -- rendering them unclickable', function () {
113
142
  (0, _testWrapper.render)((0, _react2.jsx)(TreeViewComponent, {
114
- disabledKeys: ['Plant']
143
+ disabledKeys: ['Single Item']
115
144
  }));
116
- var listItems = _testWrapper.screen.getAllByRole('treeitem');
145
+ var listItems = _testWrapper.screen.queryAllByRole('treeitem');
117
146
  var thisItem = listItems[2];
118
147
  expect(thisItem).not.toHaveClass('is-selected');
119
148
  expect(thisItem).toHaveAttribute('aria-disabled', 'true');
@@ -121,4 +150,18 @@ test('disabledKeys prop disables items in the tree -- rendering them unclickable
121
150
  _testWrapper.fireEvent.mouseUp(thisItem);
122
151
  expect(thisItem).not.toHaveClass('is-selected');
123
152
  expect(thisItem).toHaveAttribute('aria-selected', 'false');
153
+ });
154
+ var firstJSX = (0, _react2.jsx)("p", null, "first");
155
+ var secondJSX = (0, _react2.jsx)("p", null, "second");
156
+ test('Section or Item Render renders first item if condition is true', function () {
157
+ (0, _testWrapper.render)((0, _react2.jsx)("div", null, (0, _TreeView.SectionOrItemRender)(true, firstJSX, secondJSX)));
158
+ var thisItem = _testWrapper.screen.getByText('first');
159
+ expect(thisItem).toBeInTheDocument();
160
+ expect(_testWrapper.screen.queryByText('second')).not.toBeInTheDocument();
161
+ });
162
+ test('Section or Item Render renders second item if condition is false', function () {
163
+ (0, _testWrapper.render)((0, _react2.jsx)("div", null, (0, _TreeView.SectionOrItemRender)(false, firstJSX, secondJSX)));
164
+ var thisItem = _testWrapper.screen.getByText('second');
165
+ expect(thisItem).toBeInTheDocument();
166
+ expect(_testWrapper.screen.queryByText('first')).not.toBeInTheDocument();
124
167
  });
@@ -9,10 +9,10 @@ _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
11
  exports["default"] = void 0;
12
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
13
- var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
13
  var _react = _interopRequireWildcard(require("react"));
15
14
  var _FileIcon = _interopRequireDefault(require("@pingux/mdi-react/FileIcon"));
15
+ var _listbox = require("@react-aria/listbox");
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
  var _TreeViewContext = require("../../context/TreeViewContext");
18
18
  var _index = require("../../index");
@@ -21,40 +21,39 @@ 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); }
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
- var _context, _context2, _context3;
25
24
  var item = props.item,
26
25
  title = props.title;
26
+ var key = item.key;
27
27
  var treeItemRef = (0, _react.useRef)();
28
28
  /* istanbul ignore next */
29
29
  (0, _react.useImperativeHandle)(ref, function () {
30
30
  return treeItemRef.current;
31
31
  });
32
32
  var _useTreeViewContext = (0, _TreeViewContext.useTreeViewContext)(),
33
- state = _useTreeViewContext.state,
34
- tree = _useTreeViewContext.tree;
35
- var isExpanded = (0, _includes["default"])(_context = (0, _from["default"])(state.expandedKeys)).call(_context, item.key);
36
- var isSelected = (0, _includes["default"])(_context2 = (0, _from["default"])(tree.selectedKeys)).call(_context2, item.key);
37
- var isDisabled = (0, _includes["default"])(_context3 = (0, _from["default"])(state.disabledKeys)).call(_context3, item.key);
38
-
39
- // this component may seem unnecessary, but it will be where the
40
- // useOption and dragAndDrop stuff will go
41
- // this comment will be removed at that time.
42
-
43
- return (0, _react2.jsx)(_index.Box, {
33
+ state = _useTreeViewContext.state;
34
+ var _useOption = (0, _listbox.useOption)({
35
+ key: key
36
+ }, state, treeItemRef),
37
+ optionProps = _useOption.optionProps,
38
+ isSelected = _useOption.isSelected,
39
+ isDisabled = _useOption.isDisabled;
40
+ var isExpanded = state.expandedKeys.has(key);
41
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
44
42
  as: "li",
45
43
  isRow: true,
46
44
  ref: treeItemRef,
45
+ "aria-disabled": isDisabled
46
+ }, optionProps, {
47
47
  role: "treeitem",
48
- "aria-selected": isSelected,
49
- "aria-disabled": isDisabled,
50
48
  sx: {
51
49
  width: '100%',
52
50
  ml: '36px',
53
51
  ':not(:last-child)': {
54
52
  pb: 'sm'
55
53
  }
56
- }
57
- }, (0, _react2.jsx)(_TreeViewRow["default"], {
54
+ },
55
+ "aria-selected": isSelected
56
+ }), (0, _react2.jsx)(_TreeViewRow["default"], {
58
57
  item: item,
59
58
  title: title,
60
59
  mainIcon: _FileIcon["default"],
@@ -9,10 +9,11 @@ _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
11
  exports["default"] = void 0;
12
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
13
- var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
13
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
14
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
15
15
  var _react = _interopRequireWildcard(require("react"));
16
+ var _listbox = require("@react-aria/listbox");
16
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
18
  var _TreeViewContext = require("../../context/TreeViewContext");
18
19
  var _index = require("../../index");
@@ -22,22 +23,26 @@ var _react2 = require("@emotion/react");
22
23
  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); }
23
24
  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; }
24
25
  var TreeViewSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
25
- var _context, _context2, _context3, _context4;
26
+ var _context;
26
27
  var item = props.item,
27
28
  items = props.items,
28
29
  title = props.title;
30
+ var key = item.key;
29
31
  var treeSectionRef = (0, _react.useRef)();
30
32
  /* istanbul ignore next */
31
33
  (0, _react.useImperativeHandle)(ref, function () {
32
34
  return treeSectionRef.current;
33
35
  });
34
36
  var _useTreeViewContext = (0, _TreeViewContext.useTreeViewContext)(),
35
- state = _useTreeViewContext.state,
36
- tree = _useTreeViewContext.tree;
37
- var isExpanded = (0, _includes["default"])(_context = (0, _from["default"])(state.expandedKeys)).call(_context, item.key);
38
- var isSelected = (0, _includes["default"])(_context2 = (0, _from["default"])(tree.selectedKeys)).call(_context2, item.key);
39
- var isDisabled = (0, _includes["default"])(_context3 = (0, _from["default"])(state.disabledKeys)).call(_context3, item.key);
40
- return (0, _react2.jsx)(_index.Box, {
37
+ state = _useTreeViewContext.state;
38
+ var _useOption = (0, _listbox.useOption)({
39
+ key: key
40
+ }, state, treeSectionRef),
41
+ optionProps = _useOption.optionProps,
42
+ isDisabled = _useOption.isDisabled,
43
+ isSelected = _useOption.isSelected;
44
+ var isExpanded = state.expandedKeys.has(key);
45
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
41
46
  ref: treeSectionRef,
42
47
  as: "li",
43
48
  sx: {
@@ -45,11 +50,12 @@ var TreeViewSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
45
50
  pb: 'sm'
46
51
  }
47
52
  },
48
- role: "treeitem",
49
53
  "aria-expanded": isExpanded,
50
- "aria-selected": isSelected,
51
54
  "aria-disabled": isDisabled
52
- }, (0, _react2.jsx)(_TreeViewRow["default"], {
55
+ }, optionProps, {
56
+ role: "treeitem",
57
+ "aria-selected": isSelected
58
+ }), (0, _react2.jsx)(_TreeViewRow["default"], {
53
59
  item: item,
54
60
  title: title,
55
61
  items: items,
@@ -63,7 +69,7 @@ var TreeViewSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
63
69
  sx: {
64
70
  pl: 'md'
65
71
  }
66
- }, (0, _map["default"])(_context4 = (0, _from["default"])(items)).call(_context4, function (_item) {
72
+ }, (0, _map["default"])(_context = (0, _from["default"])(items)).call(_context, function (_item) {
67
73
  var _item$value$items;
68
74
  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, {
69
75
  item: _item,
@@ -9,13 +9,16 @@ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object
9
9
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
10
10
  import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
11
11
  import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
12
- var _excluded = ["tree", "onExpandedChange"];
12
+ var _excluded = ["tree", "disabledKeys", "onExpandedChange"];
13
13
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
14
14
  import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
15
15
  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; }
16
16
  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) { _defineProperty(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; }
17
- import React, { forwardRef, useImperativeHandle, useRef } from 'react';
17
+ import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';
18
18
  import { useTreeState } from 'react-stately';
19
+ import { useCollator } from '@react-aria/i18n';
20
+ import { useListBox } from '@react-aria/listbox';
21
+ import { ListLayout } from '@react-stately/layout';
19
22
  import PropTypes from 'prop-types';
20
23
  import { TreeViewContext } from '../../context/TreeViewContext';
21
24
  import { Box, TreeViewItem, TreeViewSection } from '../../index';
@@ -30,35 +33,64 @@ export var SectionOrItemRender = function SectionOrItemRender(condition, Section
30
33
  }
31
34
  return ItemComponent;
32
35
  };
36
+ export function useTreeViewLayout(state) {
37
+ var collator = useCollator({
38
+ usage: 'search',
39
+ sensitivity: 'base'
40
+ });
41
+ var layout = useMemo(function () {
42
+ return new ListLayout();
43
+ }, [collator]);
44
+ layout.collection = state.collection;
45
+ layout.disabledKeys = state.disabledKeys;
46
+ return layout;
47
+ }
33
48
  var TreeView = /*#__PURE__*/forwardRef(function (props, ref) {
34
- var _labelRef$current, _context;
49
+ var _context;
35
50
  var tree = props.tree,
51
+ disabledKeys = props.disabledKeys,
36
52
  onExpandedChange = props.onExpandedChange,
37
53
  others = _objectWithoutProperties(props, _excluded);
38
- var labelRef = useRef();
39
54
  var treeViewRef = useRef();
55
+ var selectedKeys = tree.selectedKeys;
56
+
40
57
  /* istanbul ignore next */
41
58
  useImperativeHandle(ref, function () {
42
59
  return treeViewRef.current;
43
60
  });
44
61
  var state = useTreeState(_objectSpread({
45
- onExpandedChange: onExpandedChange
62
+ onExpandedChange: onExpandedChange,
63
+ disabledKeys: disabledKeys,
64
+ selectedKeys: selectedKeys,
65
+ selectionMode: 'single',
66
+ disallowEmptySelection: true
46
67
  }, others));
68
+ var ariaLabel = props['aria-label'];
69
+ var listBoxOptions = {
70
+ disabledKeys: disabledKeys,
71
+ 'aria-label': ariaLabel
72
+ };
73
+ var layout = useTreeViewLayout(state);
74
+ var _useListBox = useListBox(_objectSpread(_objectSpread({}, listBoxOptions), {}, {
75
+ keyboardDelegate: layout
76
+ }), state, treeViewRef),
77
+ listBoxProps = _useListBox.listBoxProps;
47
78
  return ___EmotionJSX(TreeViewContext.Provider, {
48
79
  value: {
49
80
  state: state,
50
81
  tree: tree
51
82
  }
52
83
  }, ___EmotionJSX(Box, _extends({
53
- as: "ul",
54
- role: "tree",
84
+ as: "ul"
85
+ }, listBoxProps, {
55
86
  ref: treeViewRef,
56
- "aria-labelledby": labelRef === null || labelRef === void 0 || (_labelRef$current = labelRef.current) === null || _labelRef$current === void 0 ? void 0 : _labelRef$current.id,
87
+ "aria-label": ariaLabel,
88
+ role: "treegrid",
57
89
  sx: {
58
90
  overflow: 'hidden'
59
91
  }
60
92
  }, others), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item) {
61
- return SectionOrItemRender(item.type === 'section', ___EmotionJSX(TreeViewSection, {
93
+ return SectionOrItemRender(item.props.items.length > 0, ___EmotionJSX(TreeViewSection, {
62
94
  item: item,
63
95
  items: item.props.items,
64
96
  title: item.props.title,
@@ -70,13 +102,12 @@ var TreeView = /*#__PURE__*/forwardRef(function (props, ref) {
70
102
  }));
71
103
  })));
72
104
  });
73
- TreeView.defaultProps = {
74
- 'aria-label': 'tree'
75
- };
76
105
  TreeView.propTypes = {
77
106
  /** data object prop that is required to make the tree function
78
107
  this is returned from the useTreeData hook in React-Aria */
79
- tree: PropTypes.shape({}).isRequired,
108
+ tree: PropTypes.shape({
109
+ selectedKeys: isIterableProp
110
+ }).isRequired,
80
111
  /** The currently disabled keys in the collection. */
81
112
  disabledKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.object])),
82
113
  /** Callback function that is called when items are expanded or collapsed. */
@@ -1,8 +1,7 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
2
  import React from 'react';
3
3
  import DocsLayout from '../../../.storybook/storybookDocsLayout';
4
- import { Item, Section, TreeView, useTreeData } from '../../index';
5
- import { SectionOrItemRender } from './TreeView';
4
+ import { Item, TreeView, useTreeData } from '../../index';
6
5
  import TreeViewReadMe from './TreeView.mdx';
7
6
  import { jsx as ___EmotionJSX } from "@emotion/react";
8
7
  export default {
@@ -65,15 +64,15 @@ export var Default = function Default(args) {
65
64
  });
66
65
  return ___EmotionJSX(TreeView, _extends({}, args, {
67
66
  items: tree.items,
68
- tree: tree
67
+ tree: tree,
68
+ "aria-label": "Example Tree",
69
+ disabledKeys: ['Single Item']
69
70
  }), function (section) {
70
- return SectionOrItemRender(section.children.length > 0, ___EmotionJSX(Section, {
71
+ var _section$value;
72
+ return ___EmotionJSX(Item, {
71
73
  key: section.key,
72
74
  items: section.children,
73
- title: section.value.title
74
- }), ___EmotionJSX(Item, {
75
- key: section.key,
76
- title: section.title
77
- }));
75
+ title: (_section$value = section.value) === null || _section$value === void 0 ? void 0 : _section$value.title
76
+ });
78
77
  });
79
78
  };
@@ -1,41 +1,44 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
2
  import React from 'react';
3
3
  import { useTreeData } from 'react-stately';
4
- import { Item, Section } from '../../index';
4
+ import { Item } from '../../index';
5
5
  import { fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
6
6
  import { SectionOrItemRender } from './TreeView';
7
7
  import TreeView from '.';
8
8
  import { jsx as ___EmotionJSX } from "@emotion/react";
9
9
  var testId = 'test-TreeView';
10
10
  var defaultProps = {
11
- 'data-testid': testId
11
+ 'data-testid': testId,
12
+ label: 'example tree'
12
13
  };
13
14
  var data = [{
14
- title: 'People',
15
+ title: 'Policies',
15
16
  items: [{
16
- title: 'David',
17
- customProp: 1
18
- }, {
19
- title: 'Sam'
20
- }, {
21
- title: 'Jane'
22
- }]
23
- }, {
24
- title: 'Animals',
25
- items: [{
26
- title: 'Bears',
17
+ title: 'Registration',
27
18
  items: [{
28
- title: 'Black Bear'
19
+ title: 'Registration A'
20
+ }, {
21
+ title: 'Registration B'
22
+ }, {
23
+ title: 'Registration C'
29
24
  }, {
30
- title: 'Brown Bear'
25
+ title: 'Registration D'
31
26
  }]
32
27
  }, {
33
- title: 'Kangaroo'
34
- }, {
35
- title: 'Snake'
28
+ title: 'Authentication',
29
+ items: [{
30
+ title: 'Authentication A'
31
+ }, {
32
+ title: 'Authentication B'
33
+ }]
34
+ }]
35
+ }, {
36
+ title: 'Other',
37
+ items: [{
38
+ title: 'Other A'
36
39
  }]
37
40
  }, {
38
- title: 'Plant'
41
+ title: 'Single Item'
39
42
  }];
40
43
  var TreeViewComponent = function TreeViewComponent(props) {
41
44
  var tree = useTreeData({
@@ -49,36 +52,62 @@ var TreeViewComponent = function TreeViewComponent(props) {
49
52
  });
50
53
  return ___EmotionJSX(TreeView, _extends({}, defaultProps, props, {
51
54
  items: tree.items,
52
- tree: tree
53
- }), function (section) {
54
- var _section$children;
55
- return SectionOrItemRender(((_section$children = section.children) === null || _section$children === void 0 ? void 0 : _section$children.length) > 0, ___EmotionJSX(Section, {
56
- key: section.key,
57
- items: section.children,
58
- title: section.key,
59
- customProp: {
60
- testp: 1
61
- }
62
- }), ___EmotionJSX(Item, {
63
- key: section.key,
64
- title: section.key
65
- }));
55
+ tree: tree,
56
+ "aria-label": "Example Tree"
57
+ }), function (item) {
58
+ return ___EmotionJSX(Item, {
59
+ key: item.key,
60
+ items: item.children,
61
+ title: item.key
62
+ });
66
63
  });
67
64
  };
65
+ var offsetWidth;
66
+ var offsetHeight;
67
+ var scrollHeight;
68
+ var onSelectionChange = jest.fn();
69
+ beforeAll(function () {
70
+ offsetWidth = jest.spyOn(window.HTMLElement.prototype, 'clientWidth', 'get').mockImplementation(function () {
71
+ return 1000;
72
+ });
73
+ offsetHeight = jest.spyOn(window.HTMLElement.prototype, 'clientHeight', 'get').mockImplementation(function () {
74
+ return 1000;
75
+ });
76
+ scrollHeight = jest.spyOn(window.HTMLElement.prototype, 'scrollHeight', 'get').mockImplementation(function () {
77
+ return 48;
78
+ });
79
+ jest.spyOn(window, 'requestAnimationFrame').mockImplementation(function (cb) {
80
+ return cb();
81
+ });
82
+ jest.useFakeTimers();
83
+ });
84
+ afterEach(function () {
85
+ onSelectionChange.mockClear();
86
+ });
87
+ afterAll(function () {
88
+ offsetWidth.mockReset();
89
+ offsetHeight.mockReset();
90
+ scrollHeight.mockReset();
91
+ });
92
+ test('TreeView component does load', function () {
93
+ render(___EmotionJSX(TreeViewComponent, null));
94
+ var element = screen.queryByRole('treegrid');
95
+ expect(element).toBeInTheDocument();
96
+ });
68
97
  test('Can select an Item using the mouse', function () {
69
98
  render(___EmotionJSX(TreeViewComponent, null));
70
- var element = screen.getByTestId(testId);
99
+ var element = screen.queryByRole('treegrid');
71
100
  expect(element).toBeInTheDocument();
72
- var peopleElement = screen.getByText('People');
101
+ var peopleElement = screen.queryByText('Single Item');
73
102
  expect(peopleElement).not.toHaveClass('is-selected');
74
103
  fireEvent.click(peopleElement);
75
104
  expect(peopleElement).toHaveClass('is-selected');
76
105
  });
77
106
  test('Renders both Sections and Items', function () {
78
107
  render(___EmotionJSX(TreeViewComponent, null));
79
- var peopleElement = screen.getByText('People');
108
+ var peopleElement = screen.getByText('Single Item');
80
109
  expect(peopleElement).toBeInTheDocument();
81
- var plantElement = screen.getByText('Plant');
110
+ var plantElement = screen.getByText('Other');
82
111
  expect(plantElement).toBeInTheDocument();
83
112
  var allListItems = screen.getAllByRole('treeitem');
84
113
  expect(allListItems).toHaveLength(3);
@@ -108,9 +137,9 @@ test('onExpandedChange change prop calls when used', function () {
108
137
  });
109
138
  test('disabledKeys prop disables items in the tree -- rendering them unclickable', function () {
110
139
  render(___EmotionJSX(TreeViewComponent, {
111
- disabledKeys: ['Plant']
140
+ disabledKeys: ['Single Item']
112
141
  }));
113
- var listItems = screen.getAllByRole('treeitem');
142
+ var listItems = screen.queryAllByRole('treeitem');
114
143
  var thisItem = listItems[2];
115
144
  expect(thisItem).not.toHaveClass('is-selected');
116
145
  expect(thisItem).toHaveAttribute('aria-disabled', 'true');
@@ -118,4 +147,18 @@ test('disabledKeys prop disables items in the tree -- rendering them unclickable
118
147
  fireEvent.mouseUp(thisItem);
119
148
  expect(thisItem).not.toHaveClass('is-selected');
120
149
  expect(thisItem).toHaveAttribute('aria-selected', 'false');
150
+ });
151
+ var firstJSX = ___EmotionJSX("p", null, "first");
152
+ var secondJSX = ___EmotionJSX("p", null, "second");
153
+ test('Section or Item Render renders first item if condition is true', function () {
154
+ render(___EmotionJSX("div", null, SectionOrItemRender(true, firstJSX, secondJSX)));
155
+ var thisItem = screen.getByText('first');
156
+ expect(thisItem).toBeInTheDocument();
157
+ expect(screen.queryByText('second')).not.toBeInTheDocument();
158
+ });
159
+ test('Section or Item Render renders second item if condition is false', function () {
160
+ render(___EmotionJSX("div", null, SectionOrItemRender(false, firstJSX, secondJSX)));
161
+ var thisItem = screen.getByText('second');
162
+ expect(thisItem).toBeInTheDocument();
163
+ expect(screen.queryByText('first')).not.toBeInTheDocument();
121
164
  });
@@ -1,47 +1,46 @@
1
- import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
2
- import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
3
2
  import React, { forwardRef, useImperativeHandle, useRef } from 'react';
4
3
  import FileIcon from '@pingux/mdi-react/FileIcon';
4
+ import { useOption } from '@react-aria/listbox';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useTreeViewContext } from '../../context/TreeViewContext';
7
7
  import { Box } from '../../index';
8
8
  import TreeViewRow from './TreeViewRow';
9
9
  import { jsx as ___EmotionJSX } from "@emotion/react";
10
10
  var TreeViewItem = /*#__PURE__*/forwardRef(function (props, ref) {
11
- var _context, _context2, _context3;
12
11
  var item = props.item,
13
12
  title = props.title;
13
+ var key = item.key;
14
14
  var treeItemRef = useRef();
15
15
  /* istanbul ignore next */
16
16
  useImperativeHandle(ref, function () {
17
17
  return treeItemRef.current;
18
18
  });
19
19
  var _useTreeViewContext = useTreeViewContext(),
20
- state = _useTreeViewContext.state,
21
- tree = _useTreeViewContext.tree;
22
- var isExpanded = _includesInstanceProperty(_context = _Array$from(state.expandedKeys)).call(_context, item.key);
23
- var isSelected = _includesInstanceProperty(_context2 = _Array$from(tree.selectedKeys)).call(_context2, item.key);
24
- var isDisabled = _includesInstanceProperty(_context3 = _Array$from(state.disabledKeys)).call(_context3, item.key);
25
-
26
- // this component may seem unnecessary, but it will be where the
27
- // useOption and dragAndDrop stuff will go
28
- // this comment will be removed at that time.
29
-
30
- return ___EmotionJSX(Box, {
20
+ state = _useTreeViewContext.state;
21
+ var _useOption = useOption({
22
+ key: key
23
+ }, state, treeItemRef),
24
+ optionProps = _useOption.optionProps,
25
+ isSelected = _useOption.isSelected,
26
+ isDisabled = _useOption.isDisabled;
27
+ var isExpanded = state.expandedKeys.has(key);
28
+ return ___EmotionJSX(Box, _extends({
31
29
  as: "li",
32
30
  isRow: true,
33
31
  ref: treeItemRef,
32
+ "aria-disabled": isDisabled
33
+ }, optionProps, {
34
34
  role: "treeitem",
35
- "aria-selected": isSelected,
36
- "aria-disabled": isDisabled,
37
35
  sx: {
38
36
  width: '100%',
39
37
  ml: '36px',
40
38
  ':not(:last-child)': {
41
39
  pb: 'sm'
42
40
  }
43
- }
44
- }, ___EmotionJSX(TreeViewRow, {
41
+ },
42
+ "aria-selected": isSelected
43
+ }), ___EmotionJSX(TreeViewRow, {
45
44
  item: item,
46
45
  title: title,
47
46
  mainIcon: FileIcon,
@@ -1,7 +1,8 @@
1
- import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
2
- import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
3
2
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
3
+ import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
4
4
  import React, { forwardRef, useImperativeHandle, useRef } from 'react';
5
+ import { useOption } from '@react-aria/listbox';
5
6
  import PropTypes from 'prop-types';
6
7
  import { useTreeViewContext } from '../../context/TreeViewContext';
7
8
  import { Box, TreeViewItem } from '../../index';
@@ -9,22 +10,26 @@ import { SectionOrItemRender } from './TreeView';
9
10
  import TreeViewRow from './TreeViewRow';
10
11
  import { jsx as ___EmotionJSX } from "@emotion/react";
11
12
  var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
12
- var _context, _context2, _context3, _context4;
13
+ var _context;
13
14
  var item = props.item,
14
15
  items = props.items,
15
16
  title = props.title;
17
+ var key = item.key;
16
18
  var treeSectionRef = useRef();
17
19
  /* istanbul ignore next */
18
20
  useImperativeHandle(ref, function () {
19
21
  return treeSectionRef.current;
20
22
  });
21
23
  var _useTreeViewContext = useTreeViewContext(),
22
- state = _useTreeViewContext.state,
23
- tree = _useTreeViewContext.tree;
24
- var isExpanded = _includesInstanceProperty(_context = _Array$from(state.expandedKeys)).call(_context, item.key);
25
- var isSelected = _includesInstanceProperty(_context2 = _Array$from(tree.selectedKeys)).call(_context2, item.key);
26
- var isDisabled = _includesInstanceProperty(_context3 = _Array$from(state.disabledKeys)).call(_context3, item.key);
27
- return ___EmotionJSX(Box, {
24
+ state = _useTreeViewContext.state;
25
+ var _useOption = useOption({
26
+ key: key
27
+ }, state, treeSectionRef),
28
+ optionProps = _useOption.optionProps,
29
+ isDisabled = _useOption.isDisabled,
30
+ isSelected = _useOption.isSelected;
31
+ var isExpanded = state.expandedKeys.has(key);
32
+ return ___EmotionJSX(Box, _extends({
28
33
  ref: treeSectionRef,
29
34
  as: "li",
30
35
  sx: {
@@ -32,11 +37,12 @@ var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
32
37
  pb: 'sm'
33
38
  }
34
39
  },
35
- role: "treeitem",
36
40
  "aria-expanded": isExpanded,
37
- "aria-selected": isSelected,
38
41
  "aria-disabled": isDisabled
39
- }, ___EmotionJSX(TreeViewRow, {
42
+ }, optionProps, {
43
+ role: "treeitem",
44
+ "aria-selected": isSelected
45
+ }), ___EmotionJSX(TreeViewRow, {
40
46
  item: item,
41
47
  title: title,
42
48
  items: items,
@@ -50,7 +56,7 @@ var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
50
56
  sx: {
51
57
  pl: 'md'
52
58
  }
53
- }, _mapInstanceProperty(_context4 = _Array$from(items)).call(_context4, function (_item) {
59
+ }, _mapInstanceProperty(_context = _Array$from(items)).call(_context, function (_item) {
54
60
  var _item$value$items;
55
61
  return SectionOrItemRender(((_item$value$items = _item.value.items) === null || _item$value$items === void 0 ? void 0 : _item$value$items.length) > 0, ___EmotionJSX(TreeViewSection, {
56
62
  item: _item,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.27.0-alpha.4",
3
+ "version": "2.27.1-alpha.0",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",