@pingux/astro 2.39.0 → 2.40.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _dnd = require("@react-aria/dnd");
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _ = require("../..");
14
+ var _hooks = require("../../hooks");
15
+ var _react2 = require("@emotion/react");
16
+ var InsertionIndicator = function InsertionIndicator(props) {
17
+ var insertRef = _react["default"].useRef(null);
18
+ var target = props.target,
19
+ state = props.dropState;
20
+ var _useDropIndicator = (0, _dnd.useDropIndicator)({
21
+ target: target,
22
+ isPresentationOnly: true
23
+ }, state, {
24
+ ref: insertRef
25
+ }),
26
+ dropIndicatorProps = _useDropIndicator.dropIndicatorProps,
27
+ isHidden = _useDropIndicator.isHidden,
28
+ isDropTarget = _useDropIndicator.isDropTarget;
29
+ var _useStatusClasses = (0, _hooks.useStatusClasses)('', {
30
+ isDropTarget: isDropTarget
31
+ }),
32
+ classNames = _useStatusClasses.classNames;
33
+ if (isHidden) {
34
+ return null;
35
+ }
36
+ return (0, _react2.jsx)(_.Box, (0, _extends2["default"])({
37
+ as: "li"
38
+ }, dropIndicatorProps, {
39
+ role: "option",
40
+ ref: insertRef,
41
+ className: classNames,
42
+ variant: "treeView.insertionIndicator"
43
+ }));
44
+ };
45
+ InsertionIndicator.propTypes = {
46
+ dropState: _propTypes["default"].shape({}),
47
+ target: _propTypes["default"].shape({})
48
+ };
49
+ var _default = InsertionIndicator;
50
+ exports["default"] = _default;
@@ -14,31 +14,41 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
14
14
  _Object$defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- exports["default"] = exports.SectionOrItemRender = void 0;
17
+ exports.insertItemToPosition = exports.insertItem = exports.dropItem = exports["default"] = exports.SectionOrItemRender = void 0;
18
18
  exports.useTreeViewLayout = useTreeViewLayout;
19
19
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
20
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
20
21
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
22
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
23
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
24
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/keys"));
21
25
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
23
26
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
27
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
24
28
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
25
29
  var _react = _interopRequireWildcard(require("react"));
26
- var _reactStately = require("react-stately");
30
+ var _reactAria = require("react-aria");
31
+ var _dnd = require("@react-aria/dnd");
32
+ var _focus = require("@react-aria/focus");
27
33
  var _i18n = require("@react-aria/i18n");
28
34
  var _listbox = require("@react-aria/listbox");
35
+ var _dnd2 = require("@react-stately/dnd");
29
36
  var _layout = require("@react-stately/layout");
37
+ var _tree = require("@react-stately/tree");
30
38
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
39
  var _TreeViewContext = require("../../context/TreeViewContext");
32
40
  var _index = require("../../index");
33
41
  var _isIterable = require("../../utils/devUtils/props/isIterable");
34
42
  var _TreeViewWrapper = _interopRequireDefault(require("./TreeViewWrapper"));
35
43
  var _react2 = require("@emotion/react");
36
- var _excluded = ["tree", "disabledKeys", "onExpandedChange", "onKeyDown", "pageLength"]; // split out and exported for ease of use across components
44
+ var _excluded = ["value"],
45
+ _excluded2 = ["value"],
46
+ _excluded3 = ["tree", "disabledKeys", "onExpandedChange", "onDragStart", "onDrop", "onKeyDown", "pageLength"]; // split out and exported for ease of use across components
37
47
  // and to facilitate easier testing (eliminates redundant conditional renders)
38
48
  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); }
39
49
  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
50
  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; }
41
- 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; }
51
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context6, _context7; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context6 = ownKeys(Object(source), !0)).call(_context6, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context7 = ownKeys(Object(source))).call(_context7, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
42
52
  var SectionOrItemRender = function SectionOrItemRender(condition, SectionComponent, ItemComponent) {
43
53
  if (condition) {
44
54
  return SectionComponent;
@@ -58,23 +68,81 @@ function useTreeViewLayout(state) {
58
68
  layout.disabledKeys = state.disabledKeys;
59
69
  return layout;
60
70
  }
71
+
72
+ // if you are placing the dragged item into another item.
73
+ var insertItem = function insertItem(tree, eventTarget, keyBeingDragged, state) {
74
+ tree.move(keyBeingDragged, eventTarget.key, 0);
75
+ // expand target, if target is closed
76
+ if (!state.expandedKeys.has(eventTarget.key)) {
77
+ state.toggleKey(eventTarget.key);
78
+ }
79
+ };
80
+ exports.insertItem = insertItem;
81
+ var insertItemToPosition = function insertItemToPosition(tree, dropPosition, targetKey, droppedItem) {
82
+ // remove item
83
+ tree.remove(droppedItem.key);
84
+
85
+ // removing value and then spreading it into the top level.
86
+ // this prevents nesting ie value.value.value.... etc.
87
+ var value = droppedItem.value,
88
+ rest = (0, _objectWithoutProperties2["default"])(droppedItem, _excluded);
89
+ var buildNewItemArray = function buildNewItemArray(arr) {
90
+ return (0, _map["default"])(arr).call(arr, function (_item) {
91
+ var _itemValue = _item.value,
92
+ _itemRest = (0, _objectWithoutProperties2["default"])(_item, _excluded2);
93
+ return _objectSpread(_objectSpread({}, _itemValue), {}, {
94
+ _itemRest: _itemRest
95
+ });
96
+ });
97
+ };
98
+ if (dropPosition === 'before') {
99
+ tree.insertBefore(targetKey, _objectSpread(_objectSpread(_objectSpread({}, rest), droppedItem.value), droppedItem.children !== undefined && {
100
+ items: buildNewItemArray(droppedItem.children)
101
+ }));
102
+ } else if (dropPosition === 'after') {
103
+ tree.insertAfter(targetKey, _objectSpread(_objectSpread(_objectSpread({}, rest), droppedItem.value), droppedItem.children !== undefined && {
104
+ items: buildNewItemArray(droppedItem.children)
105
+ }));
106
+ }
107
+ };
108
+
109
+ // split out so that it can be exported and unit tested.
110
+ exports.insertItemToPosition = insertItemToPosition;
111
+ var dropItem = function dropItem(eventTarget, tree, state, droppedItem) {
112
+ // if dropPosition = 'on', just insert as first child, and then open, if closed
113
+ if (eventTarget.dropPosition === 'on') {
114
+ insertItem(tree, eventTarget, droppedItem.key, state);
115
+ } else {
116
+ insertItemToPosition(tree, eventTarget.dropPosition, eventTarget.key, droppedItem);
117
+ }
118
+ };
119
+ exports.dropItem = dropItem;
61
120
  var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
62
- var _tree$items$, _context;
121
+ var _tree$items$, _context5;
63
122
  var tree = props.tree,
64
123
  disabledKeys = props.disabledKeys,
65
124
  onExpandedChange = props.onExpandedChange,
125
+ onDragStartProp = props.onDragStart,
126
+ onDropProp = props.onDrop,
66
127
  onKeyDown = props.onKeyDown,
67
128
  _props$pageLength = props.pageLength,
68
129
  pageLength = _props$pageLength === void 0 ? 5 : _props$pageLength,
69
- others = (0, _objectWithoutProperties2["default"])(props, _excluded);
70
-
130
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded3);
131
+ var _useState = (0, _react.useState)(''),
132
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
133
+ keyBeingDragged = _useState2[0],
134
+ setKeyBeingDragged = _useState2[1];
135
+ var _useState3 = (0, _react.useState)(''),
136
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
137
+ targetKey = _useState4[0],
138
+ setTargetKey = _useState4[1];
71
139
  // we are tracking the last focused item.
72
140
  // this enables us to have focus jump back to the item, after focus
73
141
  // 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];
142
+ var _useState5 = (0, _react.useState)(tree === null || tree === void 0 || (_tree$items$ = tree.items[0]) === null || _tree$items$ === void 0 ? void 0 : _tree$items$.key),
143
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
144
+ lastFocusedItem = _useState6[0],
145
+ setLastFocusedItem = _useState6[1];
78
146
  var level = 0;
79
147
  var treeViewRef = (0, _react.useRef)();
80
148
  var selectedKeys = tree.selectedKeys;
@@ -83,7 +151,7 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
83
151
  (0, _react.useImperativeHandle)(ref, function () {
84
152
  return treeViewRef.current;
85
153
  });
86
- var state = (0, _reactStately.useTreeState)(_objectSpread({
154
+ var state = (0, _tree.useTreeState)(_objectSpread({
87
155
  onExpandedChange: onExpandedChange,
88
156
  disabledKeys: disabledKeys,
89
157
  selectedKeys: selectedKeys,
@@ -93,14 +161,14 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
93
161
  var flattenNestedData = function flattenNestedData(_data) {
94
162
  var returnArray = [];
95
163
  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) {
164
+ var _item$value, _item$children;
165
+ if (((_item$value = item.value) === null || _item$value === void 0 || (_item$value = _item$value.children) === null || _item$value === void 0 ? void 0 : _item$value.length) > 0) {
98
166
  return {
99
167
  isTopLevel: true,
100
168
  hasChildren: true
101
169
  };
102
170
  }
103
- if (((_item$items = item.items) === null || _item$items === void 0 ? void 0 : _item$items.length) > 0) {
171
+ if (((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) > 0) {
104
172
  return {
105
173
  isTopLevel: false,
106
174
  hasChildren: true
@@ -112,12 +180,32 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
112
180
  };
113
181
  };
114
182
  var checkSection = function checkSection(isRendered, hasItems) {
115
- return isRendered && hasItems;
183
+ if (isRendered === true && hasItems) {
184
+ return true;
185
+ }
186
+ return false;
187
+ };
188
+ var buildParentKeys = function buildParentKeys(parentKey, parentKeys) {
189
+ var _context;
190
+ var keyArr = [];
191
+ if (parentKey) {
192
+ keyArr.push(parentKey);
193
+ }
194
+ return (0, _concat["default"])(_context = []).call(_context, keyArr, parentKeys);
116
195
  };
117
- var loop = function loop(data) {
196
+
197
+ // data is the array being looped through
198
+ // parentKey is the immediate parent of the item
199
+ // parenKeys is the key of all the nesting levels, all the way to the root
200
+ var loop = function loop(data, parentKey, parentKeys) {
118
201
  for (var i = 0; i < data.length; i += 1) {
202
+ var _data$i$value;
119
203
  var obj = {
120
- key: data[i].key
204
+ key: data[i].key,
205
+ title: data[i].key,
206
+ items: ((_data$i$value = data[i].value) === null || _data$i$value === void 0 ? void 0 : _data$i$value.children) || data[i].children || null,
207
+ parentKey: parentKey,
208
+ parentKeys: buildParentKeys(parentKey, parentKeys)
121
209
  };
122
210
  returnArray.push(obj);
123
211
  var _checkItemNesting = checkItemNesting(data[i]),
@@ -125,32 +213,64 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
125
213
  isTopLevel = _checkItemNesting.isTopLevel;
126
214
  if (checkSection(state.expandedKeys.has(data[i].key), hasChildren) === true) {
127
215
  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);
216
+ var _data$i$value2;
217
+ loop((_data$i$value2 = data[i].value) === null || _data$i$value2 === void 0 ? void 0 : _data$i$value2.children, data[i].key, buildParentKeys(parentKey, parentKeys));
130
218
  } else {
131
- loop(data[i].items);
219
+ var _context2;
220
+ /* istanbul ignore next */
221
+ loop(data[i].children, data[i].key, (0, _concat["default"])(_context2 = [parentKey]).call(_context2, parentKeys && parentKeys));
132
222
  }
133
223
  }
134
224
  }
135
225
  };
136
- loop(_data);
226
+ loop(_data, undefined, []);
137
227
  return returnArray;
138
228
  };
139
229
 
140
230
  // list of value pairs of keys and refs
141
231
  // 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];
232
+ var _useState7 = (0, _react.useState)([]),
233
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
234
+ refArray = _useState8[0],
235
+ setRefs = _useState8[1];
146
236
 
147
237
  // creates a flattened list of keys for up/down keyboard use
148
238
  // this DOES need to be in the same order as the HTML appears in the DOM.
149
239
  // we are essentially turning all rendered items into a flat list, for up/down
150
240
  var flatKeyArray = (0, _react.useMemo)(function () {
151
- return flattenNestedData(props.items);
152
- }, [state.expandedKeys]);
241
+ return flattenNestedData((0, _from["default"])(state.collection));
242
+ }, [state.expandedKeys, state.collection]);
153
243
  var ariaLabel = props['aria-label'];
244
+ var onItemDrop = function onItemDrop(e) {
245
+ var _context3, _context4;
246
+ var thisItem = tree.getItem(keyBeingDragged);
247
+ var foundDraggingItem = (0, _find["default"])(flatKeyArray).call(flatKeyArray, function (_item) {
248
+ return _item.key === keyBeingDragged;
249
+ });
250
+ var foundTargetItem = (0, _find["default"])(flatKeyArray).call(flatKeyArray, function (_item) {
251
+ return _item.key === e.target.key;
252
+ });
253
+ if ((0, _includes["default"])(_context3 = (0, _from["default"])(state.disabledKeys)).call(_context3, foundTargetItem.key) && e.target.dropPosition === 'on') {
254
+ setKeyBeingDragged('');
255
+ return;
256
+ }
257
+
258
+ // disallow an item from being dropped onto itself, or its children
259
+ if (e.target.key !== keyBeingDragged && !(0, _includes["default"])(_context4 = foundTargetItem.parentKeys).call(_context4, foundDraggingItem.key)) {
260
+ dropItem(e.target, tree, state, thisItem);
261
+ state.selectionManager.state.setFocusedKey(keyBeingDragged);
262
+ if (onDropProp) {
263
+ onDropProp(e);
264
+ }
265
+ }
266
+ setKeyBeingDragged('');
267
+ };
268
+ var dragItemStart = function dragItemStart(e) {
269
+ setKeyBeingDragged((0, _from["default"])((0, _keys["default"])(e))[0]);
270
+ if (onDragStartProp) {
271
+ onDragStartProp(e, (0, _keys["default"])(e)[0]);
272
+ }
273
+ };
154
274
  var listBoxOptions = {
155
275
  disabledKeys: disabledKeys,
156
276
  'aria-label': ariaLabel
@@ -160,6 +280,67 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
160
280
  keyboardDelegate: layout
161
281
  }), state, treeViewRef),
162
282
  listBoxProps = _useListBox.listBoxProps;
283
+ var dropState = (0, _dnd2.useDroppableCollectionState)(_objectSpread(_objectSpread({}, props), {}, {
284
+ onDrop: onItemDrop,
285
+ onDropEnter: function onDropEnter(e) {
286
+ return setTargetKey(e.target.key);
287
+ },
288
+ onDropExit: function onDropExit() {
289
+ return setTargetKey('');
290
+ },
291
+ collection: state.collection,
292
+ selectionManager: state.selectionManager
293
+ }));
294
+ var _useDroppableCollecti = (0, _dnd.useDroppableCollection)(_objectSpread(_objectSpread({}, props), {}, {
295
+ onDrop: onItemDrop,
296
+ disabledKeys: disabledKeys,
297
+ dropTargetDelegate: new _dnd.ListDropTargetDelegate(flatKeyArray, treeViewRef)
298
+ }), dropState, treeViewRef),
299
+ collectionProps = _useDroppableCollecti.collectionProps;
300
+
301
+ // Setup drag state for the collection.
302
+ var dragState = (0, _dnd2.useDraggableCollectionState)(_objectSpread(_objectSpread({}, props), {}, {
303
+ onDragStart: dragItemStart,
304
+ // Collection and selection manager come from list state.
305
+ collection: state.collection,
306
+ selectionManager: state.selectionManager,
307
+ // Provide data for each dragged item. This function could
308
+ getItems: function getItems() {
309
+ return (0, _map["default"])(flatKeyArray).call(flatKeyArray, function (_item) {
310
+ return {
311
+ 'text/plain': _item.key
312
+ };
313
+ });
314
+ }
315
+ }));
316
+ (0, _react.useEffect)(function () {
317
+ if ((0, _find["default"])(refArray).call(refArray, function (item) {
318
+ return item.key === lastFocusedItem;
319
+ })) {
320
+ var _thisRef$current;
321
+ var _refArray$find = (0, _find["default"])(refArray).call(refArray, function (item) {
322
+ return item.key === lastFocusedItem;
323
+ }),
324
+ thisRef = _refArray$find.thisRef;
325
+ thisRef === null || thisRef === void 0 || (_thisRef$current = thisRef.current) === null || _thisRef$current === void 0 ? void 0 : _thisRef$current.focus();
326
+ }
327
+ }, [state.selectionManager.focusedKey]);
328
+ (0, _dnd.useDraggableCollection)(props, dragState, treeViewRef);
329
+ var _useFocusRing = (0, _focus.useFocusRing)({
330
+ within: true
331
+ }),
332
+ focusWithinProps = _useFocusRing.focusProps,
333
+ isFocusedWithin = _useFocusRing.isFocused;
334
+ (0, _react.useEffect)(function () {
335
+ if (isFocusedWithin) {
336
+ var _thisRef$current2;
337
+ var _refArray$find2 = (0, _find["default"])(refArray).call(refArray, function (item) {
338
+ return item.key === lastFocusedItem;
339
+ }),
340
+ thisRef = _refArray$find2.thisRef;
341
+ thisRef === null || thisRef === void 0 || (_thisRef$current2 = thisRef.current) === null || _thisRef$current2 === void 0 ? void 0 : _thisRef$current2.focus();
342
+ }
343
+ }, [isFocusedWithin]);
163
344
  return (0, _react2.jsx)(_TreeViewContext.TreeViewContext.Provider, {
164
345
  value: {
165
346
  state: state,
@@ -167,11 +348,15 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
167
348
  refArray: refArray,
168
349
  setRefs: setRefs,
169
350
  flatKeyArray: flatKeyArray,
351
+ dragState: dragState,
352
+ dropState: dropState,
170
353
  pageLength: pageLength,
171
354
  setLastFocusedItem: setLastFocusedItem,
172
- lastFocusedItem: lastFocusedItem
355
+ lastFocusedItem: lastFocusedItem,
356
+ targetKey: targetKey,
357
+ keyBeingDragged: keyBeingDragged
173
358
  }
174
- }, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, listBoxProps, {
359
+ }, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, (0, _reactAria.mergeProps)(listBoxProps, collectionProps, focusWithinProps), focusWithinProps, {
175
360
  ref: treeViewRef,
176
361
  "aria-label": ariaLabel,
177
362
  role: "treegrid",
@@ -180,10 +365,10 @@ var TreeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
180
365
  p: '5px',
181
366
  border: 'none !important'
182
367
  }
183
- }, others), (0, _react2.jsx)(_TreeViewWrapper["default"], null, (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item, index) {
184
- return SectionOrItemRender(item.props.items.length > 0, (0, _react2.jsx)(_index.TreeViewSection, {
368
+ }, others), (0, _react2.jsx)(_TreeViewWrapper["default"], null, (0, _map["default"])(_context5 = (0, _from["default"])(state.collection)).call(_context5, function (item, index) {
369
+ return SectionOrItemRender(item.value.children.length > 0, (0, _react2.jsx)(_index.TreeViewSection, {
185
370
  item: item,
186
- items: item.props.items,
371
+ items: item.value.children,
187
372
  title: item.props.title,
188
373
  key: item.props.title,
189
374
  onKeyDown: onKeyDown,
@@ -206,6 +391,10 @@ TreeView.propTypes = {
206
391
  this is returned from the useTreeData hook in React-Aria */
207
392
  tree: _propTypes["default"].shape({
208
393
  selectedKeys: _isIterable.isIterableProp,
394
+ move: _propTypes["default"].func,
395
+ remove: _propTypes["default"].func,
396
+ insert: _propTypes["default"].func,
397
+ getItem: _propTypes["default"].func,
209
398
  items: _isIterable.isIterableProp
210
399
  }).isRequired,
211
400
  /** The currently disabled keys in the collection. */
@@ -218,6 +407,10 @@ TreeView.propTypes = {
218
407
  'aria-label': _propTypes["default"].string,
219
408
  /** Handler that is called when a key is pressed. */
220
409
  onKeyDown: _propTypes["default"].func,
410
+ /** Callback that is called when the dragging action starts. */
411
+ onDragStart: _propTypes["default"].func,
412
+ /** Callback that is called when the dropping action occurs. */
413
+ onDrop: _propTypes["default"].func,
221
414
  /** Number of items to move the focus when page up or page down is pressed */
222
415
  pageLength: _propTypes["default"].number
223
416
  };
@@ -79,7 +79,7 @@ var Default = function Default(args) {
79
79
  var tree = (0, _index.useTreeData)({
80
80
  initialItems: data,
81
81
  getKey: function getKey(item) {
82
- return item.title;
82
+ return item.key;
83
83
  },
84
84
  getChildren: function getChildren(item) {
85
85
  return item.items;
@@ -88,7 +88,8 @@ var Default = function Default(args) {
88
88
  return (0, _react2.jsx)(_index.TreeView, (0, _extends2["default"])({}, args, {
89
89
  items: tree.items,
90
90
  tree: tree,
91
- "aria-label": "Example Tree"
91
+ "aria-label": "Example Tree",
92
+ disabledKeys: ['Single Item']
92
93
  }), function (section) {
93
94
  var _section$value;
94
95
  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': {
13
+ '&.is-selected, &.is-hovered, &.is-drop-target': {
14
14
  backgroundColor: 'active',
15
15
  '& span': {
16
16
  color: 'white'
@@ -22,9 +22,6 @@ var treeRow = {
22
22
  fill: 'white'
23
23
  }
24
24
  },
25
- '&.is-expanded': {
26
- marginBottom: 'xs'
27
- },
28
25
  '& :focus': {
29
26
  border: 'none'
30
27
  }
@@ -33,7 +30,7 @@ var wrapper = {
33
30
  '&.is-focused': {
34
31
  boxSizing: 'unset',
35
32
  outline: '1px solid',
36
- outlineColor: 'focus',
33
+ outlineColor: 'blue',
37
34
  outlineOffset: '2px'
38
35
  },
39
36
  width: '100%',
@@ -45,8 +42,31 @@ var wrapper = {
45
42
  },
46
43
  outline: 'none'
47
44
  };
45
+ var rowWrapper = {
46
+ '&.is-focused': {
47
+ boxSizing: 'unset',
48
+ outline: '1px solid',
49
+ outlineColor: 'focus',
50
+ outlineOffset: '2px'
51
+ },
52
+ border: 'none',
53
+ ':focus': {
54
+ border: 'none'
55
+ },
56
+ '&.is-expanded': {
57
+ marginBottom: 'xs'
58
+ },
59
+ outline: 'none'
60
+ };
61
+ var insertionIndicator = {
62
+ width: '100%',
63
+ outline: '1px solid',
64
+ outlineColor: 'active'
65
+ };
48
66
  var _default = {
49
67
  treeRow: treeRow,
50
- wrapper: wrapper
68
+ rowWrapper: rowWrapper,
69
+ wrapper: wrapper,
70
+ insertionIndicator: insertionIndicator
51
71
  };
52
72
  exports["default"] = _default;