@pingux/astro 2.32.0-alpha.9 → 2.32.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.
Files changed (40) hide show
  1. package/lib/cjs/components/TreeView/TreeView.js +99 -11
  2. package/lib/cjs/components/TreeView/TreeView.stories.js +23 -10
  3. package/lib/cjs/components/TreeView/TreeView.styles.js +22 -2
  4. package/lib/cjs/components/TreeView/TreeView.test.js +91 -11
  5. package/lib/cjs/components/TreeView/TreeViewItem.js +112 -14
  6. package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.js +200 -0
  7. package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.test.js +511 -0
  8. package/lib/cjs/components/TreeView/TreeViewRow.js +20 -5
  9. package/lib/cjs/components/TreeView/TreeViewSection.js +164 -16
  10. package/lib/cjs/components/TreeView/TreeViewWrapper.js +40 -0
  11. package/lib/cjs/hooks/useField/index.d.ts +1 -0
  12. package/lib/cjs/hooks/useField/useField.d.ts +1686 -0
  13. package/lib/cjs/hooks/useField/useField.js +7 -16
  14. package/lib/cjs/hooks/useField/useField.test.d.ts +1 -0
  15. package/lib/cjs/hooks/useField/useField.test.js +6 -6
  16. package/lib/cjs/hooks/useMountTransition/index.d.ts +1 -0
  17. package/lib/cjs/hooks/useMountTransition/useMountTransition.d.ts +14 -0
  18. package/lib/cjs/hooks/useMountTransition/useMountTransition.js +0 -9
  19. package/lib/cjs/hooks/useMountTransition/useMountTransition.test.d.ts +1 -0
  20. package/lib/cjs/hooks/useMountTransition/useMountTransition.test.js +2 -2
  21. package/lib/cjs/hooks/useStatusClasses/index.d.ts +1 -0
  22. package/lib/cjs/hooks/useStatusClasses/useStatusClasses.d.ts +18 -0
  23. package/lib/cjs/hooks/useStatusClasses/useStatusClasses.js +0 -9
  24. package/lib/cjs/hooks/useStatusClasses/useStatusClasses.test.d.ts +1 -0
  25. package/lib/components/TreeView/TreeView.js +100 -12
  26. package/lib/components/TreeView/TreeView.stories.js +23 -10
  27. package/lib/components/TreeView/TreeView.styles.js +22 -2
  28. package/lib/components/TreeView/TreeView.test.js +92 -12
  29. package/lib/components/TreeView/TreeViewItem.js +111 -14
  30. package/lib/components/TreeView/TreeViewKeyboardDelegate.js +176 -0
  31. package/lib/components/TreeView/TreeViewKeyboardDelegate.test.js +496 -0
  32. package/lib/components/TreeView/TreeViewRow.js +20 -5
  33. package/lib/components/TreeView/TreeViewSection.js +161 -16
  34. package/lib/components/TreeView/TreeViewWrapper.js +31 -0
  35. package/lib/hooks/useField/useField.js +7 -16
  36. package/lib/hooks/useField/useField.test.js +6 -6
  37. package/lib/hooks/useMountTransition/useMountTransition.js +0 -10
  38. package/lib/hooks/useMountTransition/useMountTransition.test.js +2 -2
  39. package/lib/hooks/useStatusClasses/useStatusClasses.js +0 -10
  40. package/package.json +1 -1
@@ -0,0 +1,496 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
3
+ import React, { useRef } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { isIterableProp } from '../../utils/devUtils/props/isIterable';
6
+ import { fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
7
+ import { onKeyDownItem } from './TreeViewItem';
8
+ import { onLeftPress } from './TreeViewKeyboardDelegate';
9
+ import { onKeyDownSection } from './TreeViewSection';
10
+ import { jsx as ___EmotionJSX } from "@emotion/react";
11
+ var testId = 'test-keyboard-tree';
12
+ var toggleKey = jest.fn();
13
+ var setSelectedKeys = jest.fn();
14
+ var focusPrevious = jest.fn();
15
+ var focusNext = jest.fn();
16
+ var refFocus = jest.fn();
17
+ var state = {
18
+ toggleKey: toggleKey
19
+ };
20
+ var tree = {
21
+ setSelectedKeys: setSelectedKeys
22
+ };
23
+ var focusManager = {
24
+ focusPrevious: focusPrevious,
25
+ focusNext: focusNext
26
+ };
27
+ export var refArray = [{
28
+ key: 'testprior',
29
+ thisRef: {
30
+ current: {
31
+ focus: refFocus
32
+ }
33
+ }
34
+ }, {
35
+ key: 'test',
36
+ thisRef: {
37
+ current: {
38
+ focus: refFocus
39
+ }
40
+ }
41
+ }, {
42
+ key: 'testsecond',
43
+ thisRef: {
44
+ current: {
45
+ focus: refFocus
46
+ }
47
+ }
48
+ }];
49
+ export var flatKeyArray = [{
50
+ key: 'testprior'
51
+ }, {
52
+ key: 'test'
53
+ }, {
54
+ key: 'testsecond'
55
+ }];
56
+ var defaultProps = {
57
+ 'data-testid': testId,
58
+ focusManager: focusManager,
59
+ state: state,
60
+ tree: tree,
61
+ key: 'test',
62
+ flatKeyArray: flatKeyArray,
63
+ refArray: refArray
64
+ };
65
+ var TestComponent = function TestComponent(props) {
66
+ var focusManagerProp = props.focusManager,
67
+ stateProp = props.state,
68
+ treeProp = props.tree,
69
+ isSelected = props.isSelected,
70
+ isExpanded = props.isExpanded,
71
+ _props$isInRefArray = props.isInRefArray,
72
+ isInRefArray = _props$isInRefArray === void 0 ? true : _props$isInRefArray,
73
+ flatKeyArrayProp = props.flatKeyArray,
74
+ refArrayProp = props.refArray;
75
+ var thisRef = useRef(null);
76
+ var testOnKeyDown = function testOnKeyDown(e) {
77
+ props.onKeyDown(e, stateProp, 'test', treeProp, isSelected, isExpanded, focusManagerProp, flatKeyArrayProp, refArrayProp, 5, true);
78
+ };
79
+ var testOnKeyDownAddRef = function testOnKeyDownAddRef(e) {
80
+ var _context;
81
+ props.onKeyDown(e, stateProp, 'test', treeProp, isSelected, isExpanded, focusManagerProp, flatKeyArrayProp, _concatInstanceProperty(_context = []).call(_context, refArrayProp, [{
82
+ key: 'button',
83
+ thisRef: thisRef
84
+ }]), 5, true);
85
+ };
86
+ return ___EmotionJSX("div", null, ___EmotionJSX("button", {
87
+ ref: thisRef,
88
+ onKeyDown: function onKeyDown(e) {
89
+ return isInRefArray ? testOnKeyDownAddRef(e) : testOnKeyDown(e);
90
+ }
91
+ }, "let us test keypresses"));
92
+ };
93
+ TestComponent.propTypes = {
94
+ isInRefArray: PropTypes.bool,
95
+ isEventTargetAKey: PropTypes.bool,
96
+ state: PropTypes.shape({
97
+ toggleKey: PropTypes.func
98
+ }),
99
+ tree: PropTypes.shape({
100
+ setSelectedKeys: PropTypes.func
101
+ }),
102
+ focusManager: PropTypes.shape({
103
+ focusPrevious: PropTypes.func,
104
+ focusNext: PropTypes.func
105
+ }),
106
+ isExpanded: PropTypes.bool,
107
+ isSelected: PropTypes.bool,
108
+ onKeyDown: PropTypes.func,
109
+ flatKeyArray: isIterableProp,
110
+ refArray: isIterableProp
111
+ };
112
+ var getComponent = function getComponent() {
113
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
114
+ return render(___EmotionJSX(TestComponent, _extends({}, defaultProps, props)));
115
+ };
116
+ afterEach(function () {
117
+ jest.clearAllMocks();
118
+ });
119
+ afterAll(function () {
120
+ jest.restoreAllMocks();
121
+ });
122
+ test('OnEnterPress calls when enter is pressed', function () {
123
+ getComponent({
124
+ onKeyDown: onKeyDownSection
125
+ });
126
+ var button = screen.getByRole('button');
127
+ fireEvent.keyDown(button, {
128
+ key: 'Enter',
129
+ keyCode: 13
130
+ });
131
+ fireEvent.keyUp(button, {
132
+ key: 'Enter',
133
+ keyCode: 13
134
+ });
135
+ expect(toggleKey).toHaveBeenCalled();
136
+ });
137
+ test('onSpacePress calls when space is pressed', function () {
138
+ getComponent({
139
+ onKeyDown: onKeyDownSection
140
+ });
141
+ var button = screen.getByRole('button');
142
+ fireEvent.keyDown(button, {
143
+ key: 'Space',
144
+ keyCode: 32
145
+ });
146
+ fireEvent.keyUp(button, {
147
+ key: 'Space',
148
+ keyCode: 32
149
+ });
150
+ expect(setSelectedKeys).toHaveBeenCalled();
151
+ });
152
+ test('onSpacePress calls when space is pressed, and selected', function () {
153
+ getComponent({
154
+ onKeyDown: onKeyDownSection,
155
+ isSelected: true
156
+ });
157
+ var button = screen.getByRole('button');
158
+ fireEvent.keyDown(button, {
159
+ key: 'Space',
160
+ keyCode: 32
161
+ });
162
+ fireEvent.keyUp(button, {
163
+ key: 'Space',
164
+ keyCode: 32
165
+ });
166
+ expect(setSelectedKeys).toHaveBeenCalled();
167
+ });
168
+ test('onSpacePress calls when space is pressed, item', function () {
169
+ getComponent({
170
+ onKeyDown: onKeyDownItem,
171
+ isInRefArray: false
172
+ });
173
+ var button = screen.getByRole('button');
174
+ fireEvent.keyDown(button, {
175
+ key: 'Space',
176
+ keyCode: 32
177
+ });
178
+ fireEvent.keyUp(button, {
179
+ key: 'Space',
180
+ keyCode: 32
181
+ });
182
+ expect(setSelectedKeys).toHaveBeenCalled();
183
+ });
184
+ test('onLeftPress calls when Left Arrow is pressed and expanded', function () {
185
+ getComponent({
186
+ isExpanded: true,
187
+ onKeyDown: onKeyDownSection,
188
+ isInRefArray: false
189
+ });
190
+ var button = screen.getByRole('button');
191
+ fireEvent.keyDown(button, {
192
+ key: 'ArrowLeft',
193
+ keyCode: 37
194
+ });
195
+ fireEvent.keyUp(button, {
196
+ key: 'ArrowLeft',
197
+ keyCode: 37
198
+ });
199
+ expect(toggleKey).not.toHaveBeenCalled();
200
+ expect(focusPrevious).toHaveBeenCalled();
201
+ });
202
+ test('onLeftPress does not call when Left Arrow is pressed and NOT expanded', function () {
203
+ getComponent({
204
+ onKeyDown: onKeyDownSection
205
+ });
206
+ var button = screen.getByRole('button');
207
+ fireEvent.keyDown(button, {
208
+ key: 'ArrowLeft',
209
+ keyCode: 37
210
+ });
211
+ fireEvent.keyUp(button, {
212
+ key: 'ArrowLeft',
213
+ keyCode: 37
214
+ });
215
+ expect(toggleKey).not.toHaveBeenCalled();
216
+ expect(focusPrevious).not.toHaveBeenCalled();
217
+ });
218
+ test('onRightPress calls when Right Arrow is pressed and NOT expanded', function () {
219
+ getComponent({
220
+ onKeyDown: onKeyDownSection,
221
+ isInRefArray: false
222
+ });
223
+ var button = screen.getByRole('button');
224
+ fireEvent.keyDown(button, {
225
+ key: 'ArrowRight',
226
+ keyCode: 39
227
+ });
228
+ fireEvent.keyUp(button, {
229
+ key: 'ArrowRight',
230
+ keyCode: 39
231
+ });
232
+ expect(toggleKey).toHaveBeenCalled();
233
+ expect(focusNext).not.toHaveBeenCalled();
234
+ });
235
+ test('onRightPress calls correct callback when Right Arrow is pressed and expanded', function () {
236
+ getComponent({
237
+ onKeyDown: onKeyDownSection,
238
+ isExpanded: true,
239
+ isInRefArray: false
240
+ });
241
+ var button = screen.getByRole('button');
242
+ fireEvent.keyDown(button, {
243
+ key: 'ArrowRight',
244
+ keyCode: 39
245
+ });
246
+ fireEvent.keyUp(button, {
247
+ key: 'ArrowRight',
248
+ keyCode: 39
249
+ });
250
+ expect(toggleKey).not.toHaveBeenCalled();
251
+ expect(focusNext).not.toHaveBeenCalled();
252
+ });
253
+ test('onLeftPress calls when Left Arrow is pressed and expanded', function () {
254
+ getComponent({
255
+ isExpanded: true,
256
+ onKeyDown: onKeyDownSection
257
+ });
258
+ var button = screen.getByRole('button');
259
+ fireEvent.keyDown(button, {
260
+ key: 'ArrowRight',
261
+ keyCode: 39
262
+ });
263
+ fireEvent.keyUp(button, {
264
+ key: 'ArrowRight',
265
+ keyCode: 39
266
+ });
267
+ expect(toggleKey).not.toHaveBeenCalled();
268
+ });
269
+ test('onDownPress calls when down Arrow is pressed and expanded', function () {
270
+ getComponent({
271
+ onKeyDown: onKeyDownSection
272
+ });
273
+ var button = screen.getByRole('button');
274
+ fireEvent.keyDown(button, {
275
+ key: 'ArrowDown',
276
+ keyCode: 40
277
+ });
278
+ fireEvent.keyUp(button, {
279
+ key: 'ArrowDown',
280
+ keyCode: 40
281
+ });
282
+ expect(refFocus).toHaveBeenCalled();
283
+ });
284
+ test('onUpPress calls when down Arrow is pressed and expanded', function () {
285
+ getComponent({
286
+ onKeyDown: onKeyDownSection
287
+ });
288
+ var button = screen.getByRole('button');
289
+ fireEvent.keyDown(button, {
290
+ key: 'ArrowUp',
291
+ keyCode: 38
292
+ });
293
+ fireEvent.keyUp(button, {
294
+ key: 'ArrowUp',
295
+ keyCode: 38
296
+ });
297
+ expect(refFocus).toHaveBeenCalled();
298
+ });
299
+ test('onUpPress calls when down Arrow is pressed and expanded for items', function () {
300
+ getComponent({
301
+ onKeyDown: onKeyDownItem
302
+ });
303
+ var button = screen.getByRole('button');
304
+ fireEvent.keyDown(button, {
305
+ key: 'ArrowUp',
306
+ keyCode: 38
307
+ });
308
+ fireEvent.keyUp(button, {
309
+ key: 'ArrowUp',
310
+ keyCode: 38
311
+ });
312
+ expect(refFocus).toHaveBeenCalled();
313
+ });
314
+ test('onPageUpPress calls when page up is pressed', function () {
315
+ getComponent({
316
+ onKeyDown: onKeyDownItem
317
+ });
318
+ var button = screen.getByRole('button');
319
+ fireEvent.keyDown(button, {
320
+ key: 'PageUp',
321
+ keyCode: 33
322
+ });
323
+ fireEvent.keyUp(button, {
324
+ key: 'PageUp',
325
+ keyCode: 33
326
+ });
327
+ expect(refFocus).toHaveBeenCalled();
328
+ });
329
+ test('onPageUpPress calls when page up is pressed, on section', function () {
330
+ getComponent({
331
+ onKeyDown: onKeyDownSection
332
+ });
333
+ var button = screen.getByRole('button');
334
+ fireEvent.keyDown(button, {
335
+ key: 'PageUp',
336
+ keyCode: 33
337
+ });
338
+ fireEvent.keyUp(button, {
339
+ key: 'PageUp',
340
+ keyCode: 33
341
+ });
342
+ expect(refFocus).toHaveBeenCalled();
343
+ });
344
+ test('onPageDownPress calls when page up is pressed', function () {
345
+ getComponent({
346
+ onKeyDown: onKeyDownItem
347
+ });
348
+ var button = screen.getByRole('button');
349
+ fireEvent.keyDown(button, {
350
+ key: 'PageDown',
351
+ keyCode: 34
352
+ });
353
+ fireEvent.keyUp(button, {
354
+ key: 'PageDown',
355
+ keyCode: 34
356
+ });
357
+ expect(refFocus).toHaveBeenCalled();
358
+ });
359
+ test('onPageDownPress calls when page up is pressed, on section', function () {
360
+ getComponent({
361
+ onKeyDown: onKeyDownSection
362
+ });
363
+ var button = screen.getByRole('button');
364
+ fireEvent.keyDown(button, {
365
+ key: 'PageDown',
366
+ keyCode: 34
367
+ });
368
+ fireEvent.keyUp(button, {
369
+ key: 'PageDown',
370
+ keyCode: 34
371
+ });
372
+ expect(refFocus).toHaveBeenCalled();
373
+ });
374
+ test('onDownPress calls when down Arrow is pressed and expanded, for items', function () {
375
+ getComponent({
376
+ onKeyDown: onKeyDownItem
377
+ });
378
+ var button = screen.getByRole('button');
379
+ fireEvent.keyDown(button, {
380
+ key: 'ArrowDown',
381
+ keyCode: 40
382
+ });
383
+ fireEvent.keyUp(button, {
384
+ key: 'ArrowDown',
385
+ keyCode: 40
386
+ });
387
+ expect(refFocus).toHaveBeenCalled();
388
+ });
389
+ test('onTabPress calls correct callbacks', function () {
390
+ getComponent({
391
+ onKeyDown: onKeyDownItem
392
+ });
393
+ var button = screen.getByRole('button');
394
+ fireEvent.keyDown(button, {
395
+ key: 'Tab',
396
+ keyCode: 9
397
+ });
398
+ fireEvent.keyUp(button, {
399
+ key: 'Tab',
400
+ keyCode: 9
401
+ });
402
+ expect(focusNext).not.toHaveBeenCalled();
403
+ });
404
+ test('onTabPress calls correct callbacks', function () {
405
+ getComponent({
406
+ onKeyDown: onKeyDownSection
407
+ });
408
+ var button = screen.getByRole('button');
409
+ fireEvent.keyDown(button, {
410
+ key: 'Tab',
411
+ keyCode: 9
412
+ });
413
+ fireEvent.keyUp(button, {
414
+ key: 'Tab',
415
+ keyCode: 9
416
+ });
417
+ expect(focusNext).toHaveBeenCalled();
418
+ });
419
+ test('onEndPress calls correct callbacks', function () {
420
+ getComponent({
421
+ onKeyDown: onKeyDownSection
422
+ });
423
+ var button = screen.getByRole('button');
424
+ fireEvent.keyDown(button, {
425
+ key: 'End',
426
+ keyCode: 35
427
+ });
428
+ fireEvent.keyUp(button, {
429
+ key: 'End',
430
+ keyCode: 35
431
+ });
432
+ expect(refFocus).toHaveBeenCalled();
433
+ });
434
+ test('onEndPress calls correct callbacks', function () {
435
+ getComponent({
436
+ onKeyDown: onKeyDownItem
437
+ });
438
+ var button = screen.getByRole('button');
439
+ fireEvent.keyDown(button, {
440
+ key: 'End',
441
+ keyCode: 35
442
+ });
443
+ fireEvent.keyUp(button, {
444
+ key: 'End',
445
+ keyCode: 35
446
+ });
447
+ expect(refFocus).toHaveBeenCalled();
448
+ });
449
+ test('onHomePress calls correct callbacks', function () {
450
+ getComponent({
451
+ onKeyDown: onKeyDownSection
452
+ });
453
+ var button = screen.getByRole('button');
454
+ fireEvent.keyDown(button, {
455
+ key: 'Home',
456
+ keyCode: 36
457
+ });
458
+ fireEvent.keyUp(button, {
459
+ key: 'Home',
460
+ keyCode: 36
461
+ });
462
+ expect(refFocus).toHaveBeenCalled();
463
+ });
464
+ test('onHomePress calls correct callbacks', function () {
465
+ getComponent({
466
+ onKeyDown: onKeyDownItem
467
+ });
468
+ var button = screen.getByRole('button');
469
+ fireEvent.keyDown(button, {
470
+ key: 'Home',
471
+ keyCode: 36
472
+ });
473
+ fireEvent.keyUp(button, {
474
+ key: 'Home',
475
+ keyCode: 36
476
+ });
477
+ expect(refFocus).toHaveBeenCalled();
478
+ });
479
+ test('onLeftPress calls correct callbacks, when correct props are provided', function () {
480
+ var thisRefArray = [{
481
+ thisRef: {
482
+ current: 'test target'
483
+ }
484
+ }];
485
+ var thisEvent = {
486
+ target: 'test target',
487
+ preventDefault: function preventDefault() {
488
+ return jest.fn();
489
+ },
490
+ stopPropagation: function stopPropagation() {
491
+ return jest.fn();
492
+ }
493
+ };
494
+ onLeftPress(thisEvent, focusManager, state, 'test', true, thisRefArray);
495
+ expect(toggleKey).toHaveBeenCalled();
496
+ });
@@ -9,7 +9,7 @@ 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 = ["title", "mainIcon", "lastIcon", "item", "items", "isExpanded", "isSelected", "isDisabled", "iconButtonProps"];
12
+ var _excluded = ["title", "mainIcon", "lastIcon", "item", "items", "isExpanded", "isSelected", "isDisabled", "isParentFocused", "iconButtonProps"];
13
13
  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; }
14
14
  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) { _defineProperty(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; }
15
15
  import React, { forwardRef, useImperativeHandle, useRef } from 'react';
@@ -35,6 +35,7 @@ var TreeViewRow = /*#__PURE__*/forwardRef(function (props, ref) {
35
35
  isExpanded = props.isExpanded,
36
36
  isSelected = props.isSelected,
37
37
  isDisabled = props.isDisabled,
38
+ isParentFocused = props.isParentFocused,
38
39
  iconButtonProps = props.iconButtonProps,
39
40
  others = _objectWithoutProperties(props, _excluded);
40
41
  var treeRowRef = useRef();
@@ -73,13 +74,19 @@ var TreeViewRow = /*#__PURE__*/forwardRef(function (props, ref) {
73
74
  }),
74
75
  classNames = _useStatusClasses.classNames;
75
76
  var mergedProps = mergeProps(hoverProps, pressProps, others);
77
+
78
+ // console.log(`ROW: ${key} has parent focus: ${isParentFocused}`)
79
+
76
80
  return ___EmotionJSX(Box, _extends({
77
81
  ref: treeRowRef,
78
82
  isRow: true,
79
83
  alignItems: "center",
80
84
  gap: "xs",
81
85
  sx: {
82
- flexGrow: 1
86
+ flexGrow: 1,
87
+ '& :focus': {
88
+ border: 'none'
89
+ }
83
90
  },
84
91
  className: classNames,
85
92
  key: "".concat(key, " box")
@@ -92,15 +99,22 @@ var TreeViewRow = /*#__PURE__*/forwardRef(function (props, ref) {
92
99
  size: 25,
93
100
  title: "".concat(title, " expand or collapse button")
94
101
  },
95
- buttonProps: {
102
+ buttonProps: _objectSpread(_objectSpread({
96
103
  'aria-label': "".concat(title, " expand or collapse button")
97
- }
104
+ }, isParentFocused && {
105
+ tabIndex: 0
106
+ }), !isParentFocused && {
107
+ tabIndex: -1
108
+ })
98
109
  }), ___EmotionJSX(Box, {
99
110
  isRow: true,
100
111
  className: classNames,
101
112
  alignItems: "center",
102
113
  gap: "xs",
103
- variant: "treeView.treeRow"
114
+ variant: "treeView.treeRow",
115
+ sx: !items && {
116
+ ml: '36px'
117
+ }
104
118
  }, ___EmotionJSX(Icon, {
105
119
  color: "focus",
106
120
  icon: mainIcon,
@@ -121,6 +135,7 @@ TreeViewRow.propTypes = {
121
135
  isSelected: PropTypes.bool,
122
136
  isDisabled: PropTypes.bool,
123
137
  isExpanded: PropTypes.bool,
138
+ isParentFocused: PropTypes.bool,
124
139
  title: PropTypes.string,
125
140
  items: PropTypes.arrayOf(PropTypes.shape({})),
126
141
  iconButtonProps: PropTypes.shape({