@pingux/astro 1.4.1 → 1.5.0-alpha.1

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 (57) hide show
  1. package/lib/cjs/components/ListView/ListView.js +12 -13
  2. package/lib/cjs/components/ListView/ListView.test.js +8 -8
  3. package/lib/cjs/components/ListViewItem/ListViewItem.js +0 -2
  4. package/lib/cjs/components/MultiselectFilter/MultiselectFilter.js +143 -0
  5. package/lib/cjs/components/MultiselectFilter/MultiselectFilter.stories.js +283 -0
  6. package/lib/cjs/components/MultiselectFilter/MultiselectFilter.test.js +83 -0
  7. package/lib/cjs/components/MultiselectFilter/index.js +18 -0
  8. package/lib/cjs/components/MultiselectFilterItem/MultiselectFilterItem.js +55 -0
  9. package/lib/cjs/components/MultiselectFilterItem/MultiselectFilterItem.test.js +53 -0
  10. package/lib/cjs/components/MultiselectFilterItem/index.js +18 -0
  11. package/lib/cjs/components/MultiselectListContainer/MultiselectBadge.js +47 -0
  12. package/lib/cjs/components/MultiselectListContainer/MultiselectBadge.test.js +48 -0
  13. package/lib/cjs/components/MultiselectListContainer/MultiselectListContainer.js +157 -0
  14. package/lib/cjs/components/MultiselectListContainer/MultiselectListContainer.test.js +112 -0
  15. package/lib/cjs/components/MultiselectListContainer/index.js +18 -0
  16. package/lib/cjs/components/PopoverMenu/PopoverMenu.js +7 -2
  17. package/lib/cjs/components/Tab/Tab.js +22 -15
  18. package/lib/cjs/components/TabPicker/TabPicker.js +239 -0
  19. package/lib/cjs/components/TabPicker/index.js +18 -0
  20. package/lib/cjs/components/Tabs/Tabs.js +46 -13
  21. package/lib/cjs/components/Tabs/Tabs.stories.js +32 -2
  22. package/lib/cjs/components/Tabs/Tabs.test.js +183 -32
  23. package/lib/cjs/index.js +98 -32
  24. package/lib/cjs/styles/variants/buttons.js +38 -1
  25. package/lib/cjs/styles/variants/multiselectListContainer.js +73 -0
  26. package/lib/cjs/styles/variants/tabs.js +5 -1
  27. package/lib/cjs/styles/variants/text.js +29 -2
  28. package/lib/cjs/styles/variants/variants.js +3 -0
  29. package/lib/components/ListView/ListView.js +12 -13
  30. package/lib/components/ListView/ListView.test.js +8 -8
  31. package/lib/components/ListViewItem/ListViewItem.js +0 -2
  32. package/lib/components/MultiselectFilter/MultiselectFilter.js +118 -0
  33. package/lib/components/MultiselectFilter/MultiselectFilter.stories.js +251 -0
  34. package/lib/components/MultiselectFilter/MultiselectFilter.test.js +69 -0
  35. package/lib/components/MultiselectFilter/index.js +1 -0
  36. package/lib/components/MultiselectFilterItem/MultiselectFilterItem.js +36 -0
  37. package/lib/components/MultiselectFilterItem/MultiselectFilterItem.test.js +37 -0
  38. package/lib/components/MultiselectFilterItem/index.js +1 -0
  39. package/lib/components/MultiselectListContainer/MultiselectBadge.js +31 -0
  40. package/lib/components/MultiselectListContainer/MultiselectBadge.test.js +34 -0
  41. package/lib/components/MultiselectListContainer/MultiselectListContainer.js +123 -0
  42. package/lib/components/MultiselectListContainer/MultiselectListContainer.test.js +81 -0
  43. package/lib/components/MultiselectListContainer/index.js +1 -0
  44. package/lib/components/PopoverMenu/PopoverMenu.js +7 -2
  45. package/lib/components/Tab/Tab.js +14 -8
  46. package/lib/components/TabPicker/TabPicker.js +210 -0
  47. package/lib/components/TabPicker/index.js +1 -0
  48. package/lib/components/Tabs/Tabs.js +44 -11
  49. package/lib/components/Tabs/Tabs.stories.js +27 -0
  50. package/lib/components/Tabs/Tabs.test.js +165 -32
  51. package/lib/index.js +6 -0
  52. package/lib/styles/variants/buttons.js +38 -1
  53. package/lib/styles/variants/multiselectListContainer.js +63 -0
  54. package/lib/styles/variants/tabs.js +5 -1
  55. package/lib/styles/variants/text.js +29 -2
  56. package/lib/styles/variants/variants.js +2 -0
  57. package/package.json +1 -1
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ _Object$defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+
13
+ exports["default"] = void 0;
14
+
15
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
16
+
17
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
+
19
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
20
+
21
+ var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
22
+
23
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
24
+
25
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
26
+
27
+ var _some = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/some"));
28
+
29
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
30
+
31
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
32
+
33
+ var _react = _interopRequireWildcard(require("react"));
34
+
35
+ var _propTypes = _interopRequireDefault(require("prop-types"));
36
+
37
+ var _collections = require("@react-stately/collections");
38
+
39
+ var _ArrowDropUpIcon = _interopRequireDefault(require("mdi-react/ArrowDropUpIcon"));
40
+
41
+ var _ArrowDropDownIcon = _interopRequireDefault(require("mdi-react/ArrowDropDownIcon"));
42
+
43
+ var _hooks = require("../../hooks");
44
+
45
+ var _ = require("../..");
46
+
47
+ var _Tab = require("../Tab");
48
+
49
+ var _react2 = require("@emotion/react");
50
+
51
+ /* istanbul ignore next */
52
+ var TabPicker = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
53
+ var className = _ref.className,
54
+ items = _ref.items,
55
+ state = _ref.state,
56
+ item = _ref.item,
57
+ others = (0, _objectWithoutProperties2["default"])(_ref, ["className", "items", "state", "item"]);
58
+
59
+ var _useState = (0, _react.useState)(false),
60
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
61
+ isOpen = _useState2[0],
62
+ setIsOpen = _useState2[1];
63
+
64
+ var _useState3 = (0, _react.useState)(state.selectedKey),
65
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
66
+ selectedItem = _useState4[0],
67
+ setSelectedItem = _useState4[1];
68
+
69
+ var selectionManager = state.selectionManager;
70
+
71
+ var _useState5 = (0, _react.useState)(selectionManager.focusedKey),
72
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
73
+ focusedItem = _useState6[0],
74
+ setFocusedItem = _useState6[1];
75
+
76
+ var isTabFocused = selectionManager.focusedKey === item.key;
77
+ var isTabSelected = state.selectedKey === item.key;
78
+ var isListItemFocused = (0, _some["default"])(items).call(items, function (el) {
79
+ return el.key === selectionManager.focusedKey;
80
+ });
81
+ var isListItemSelected = (0, _some["default"])(items).call(items, function (el) {
82
+ return el.key === state.selectedKey;
83
+ });
84
+
85
+ var _useMemo = (0, _react.useMemo)(function () {
86
+ var _context, _tabs$prevIndex, _tabs$nextIndex;
87
+
88
+ var tabs = (0, _filter["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (tab) {
89
+ var _tab$value;
90
+
91
+ return !(tab === null || tab === void 0 ? void 0 : (_tab$value = tab.value) === null || _tab$value === void 0 ? void 0 : _tab$value.isListItem);
92
+ });
93
+ var prevIndex = (0, _findIndex["default"])(tabs).call(tabs, function (tab) {
94
+ return tab.key === item.key;
95
+ }) - 1;
96
+ var nextIndex = (0, _findIndex["default"])(tabs).call(tabs, function (tab) {
97
+ return tab.key === item.key;
98
+ }) + 1;
99
+ return {
100
+ prevKey: ((_tabs$prevIndex = tabs[prevIndex]) === null || _tabs$prevIndex === void 0 ? void 0 : _tabs$prevIndex.key) || tabs[tabs.length].key,
101
+ nextKey: ((_tabs$nextIndex = tabs[nextIndex]) === null || _tabs$nextIndex === void 0 ? void 0 : _tabs$nextIndex.key) || tabs[0].key
102
+ };
103
+ }, []),
104
+ prevKey = _useMemo.prevKey,
105
+ nextKey = _useMemo.nextKey;
106
+
107
+ var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
108
+ isSelected: isListItemSelected
109
+ }),
110
+ classNames = _useStatusClasses.classNames;
111
+
112
+ var menuRef = (0, _react.useRef)();
113
+
114
+ var handleSelectedItem = function handleSelectedItem(currentItem) {
115
+ state.setSelectedKey(currentItem);
116
+ setFocusedItem(currentItem);
117
+ };
118
+
119
+ (0, _react.useEffect)(function () {
120
+ if (selectedItem) {
121
+ handleSelectedItem(selectedItem);
122
+ }
123
+ }, [selectedItem]);
124
+ (0, _react.useEffect)(function () {
125
+ if (focusedItem) {
126
+ selectionManager.setFocusedKey(focusedItem);
127
+ }
128
+ }, [focusedItem]);
129
+ (0, _react.useEffect)(function () {
130
+ if (isOpen && (isTabFocused || isListItemSelected) && menuRef.current) {
131
+ if (focusedItem) {
132
+ var _context2;
133
+
134
+ (0, _find["default"])(_context2 = (0, _from["default"])(menuRef.current.children)).call(_context2, function (el) {
135
+ return el.dataset.key === focusedItem;
136
+ }).focus();
137
+ } else {
138
+ menuRef.current.firstChild.focus();
139
+ }
140
+ }
141
+
142
+ if (!isOpen && isTabSelected && !selectedItem) {
143
+ setSelectedItem(selectionManager.focusedKey);
144
+ }
145
+ }, [isOpen]);
146
+ (0, _react.useEffect)(function () {
147
+ if (isOpen && isListItemFocused) {
148
+ setFocusedItem(selectionManager.focusedKey);
149
+ } else if (!isOpen && isListItemFocused) {
150
+ selectionManager.setFocusedKey(item.key);
151
+ }
152
+ }, [selectionManager.focusedKey]);
153
+ (0, _react.useEffect)(function () {
154
+ if (isTabSelected || isTabFocused) {
155
+ if (selectedItem) {
156
+ handleSelectedItem(selectedItem);
157
+ } else if (isListItemSelected && !selectedItem) {
158
+ setSelectedItem(state.selectedKey);
159
+ } else {
160
+ setFocusedItem(items[0].key);
161
+ }
162
+ } else if (!isListItemSelected && !isListItemFocused) {
163
+ setIsOpen(false);
164
+ setSelectedItem(null);
165
+ setFocusedItem(null);
166
+ }
167
+ }, [isTabSelected, isListItemSelected]);
168
+
169
+ var handleKeyNavigation = function handleKeyNavigation(e) {
170
+ switch (e.key) {
171
+ case 'ArrowRight':
172
+ {
173
+ selectionManager.setFocusedKey(nextKey);
174
+ break;
175
+ }
176
+
177
+ case 'ArrowLeft':
178
+ {
179
+ selectionManager.setFocusedKey(prevKey);
180
+ break;
181
+ }
182
+
183
+ default:
184
+ break;
185
+ }
186
+ };
187
+
188
+ var tabProps = others;
189
+ delete tabProps.onPointerDown;
190
+ delete tabProps.onKeyDown;
191
+ return (0, _react2.jsx)(_.PopoverMenu, {
192
+ onOpenChange: setIsOpen,
193
+ isOpen: isOpen,
194
+ isContainFocus: true
195
+ }, (0, _react2.jsx)(_.Button, {
196
+ className: classNames,
197
+ variant: "menuTab",
198
+ onKeyDown: handleKeyNavigation
199
+ }, (0, _react2.jsx)(_.Box, (0, _extends2["default"])({
200
+ className: classNames,
201
+ variant: "tab",
202
+ ref: ref
203
+ }, tabProps), (0, _react2.jsx)(_.Text, {
204
+ variant: "tabLabel"
205
+ }, item.props.name), selectedItem && (0, _react2.jsx)(_Tab.TabLine, null)), (0, _react2.jsx)(_.Icon, {
206
+ icon: isOpen ? _ArrowDropUpIcon["default"] : _ArrowDropDownIcon["default"]
207
+ })), (0, _react2.jsx)(_.Menu, {
208
+ onAction: setSelectedItem,
209
+ selectionMode: "single",
210
+ selectedKeys: [selectionManager.focusedKey],
211
+ ref: menuRef
212
+ }, (0, _map["default"])(items).call(items, function (tab) {
213
+ return (0, _react2.jsx)(_collections.Item, {
214
+ key: tab.key
215
+ }, tab.name);
216
+ })));
217
+ });
218
+ TabPicker.propTypes = {
219
+ item: _propTypes["default"].shape({
220
+ key: _propTypes["default"].string,
221
+ props: _propTypes["default"].shape({
222
+ name: _propTypes["default"].string
223
+ })
224
+ }),
225
+ items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
226
+ key: _propTypes["default"].string
227
+ })),
228
+ state: _propTypes["default"].shape({
229
+ collection: _propTypes["default"].shape({}),
230
+ selectedKey: _propTypes["default"].string,
231
+ setSelectedKey: _propTypes["default"]["function"],
232
+ selectionManager: _propTypes["default"].shape({
233
+ focusedKey: _propTypes["default"].string,
234
+ setFocusedKey: _propTypes["default"]["function"]
235
+ })
236
+ })
237
+ };
238
+ var _default = TabPicker;
239
+ exports["default"] = _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ _Object$defineProperty(exports, "default", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _TabPicker["default"];
15
+ }
16
+ });
17
+
18
+ var _TabPicker = _interopRequireDefault(require("./TabPicker"));
@@ -18,12 +18,8 @@ var _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs3/c
18
18
 
19
19
  var _getOwnPropertyDescriptors = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors"));
20
20
 
21
- var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
22
-
23
21
  var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor"));
24
22
 
25
- var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
26
-
27
23
  var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
28
24
 
29
25
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
@@ -32,10 +28,16 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
32
28
 
33
29
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
34
30
 
35
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
31
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
36
32
 
37
33
  var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
38
34
 
35
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
36
+
37
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
38
+
39
+ var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
40
+
39
41
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
40
42
 
41
43
  var _react = _interopRequireWildcard(require("react"));
@@ -58,22 +60,23 @@ var _react2 = require("@emotion/react");
58
60
 
59
61
  function ownKeys(object, enumerableOnly) { var keys = (0, _keys["default"])(object); if (_getOwnPropertySymbols["default"]) { var symbols = (0, _getOwnPropertySymbols["default"])(object); if (enumerableOnly) symbols = (0, _filter["default"])(symbols).call(symbols, function (sym) { return (0, _getOwnPropertyDescriptor["default"])(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
60
62
 
61
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; (0, _forEach["default"])(_context2 = ownKeys(Object(source), true)).call(_context2, function (key) { (0, _defineProperty3["default"])(target, key, source[key]); }); } else if (_getOwnPropertyDescriptors["default"]) { (0, _defineProperties["default"])(target, (0, _getOwnPropertyDescriptors["default"])(source)); } else { var _context3; (0, _forEach["default"])(_context3 = ownKeys(Object(source))).call(_context3, function (key) { (0, _defineProperty2["default"])(target, key, (0, _getOwnPropertyDescriptor["default"])(source, key)); }); } } return target; }
63
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context6; (0, _forEach["default"])(_context6 = ownKeys(Object(source), true)).call(_context6, function (key) { (0, _defineProperty3["default"])(target, key, source[key]); }); } else if (_getOwnPropertyDescriptors["default"]) { (0, _defineProperties["default"])(target, (0, _getOwnPropertyDescriptors["default"])(source)); } else { var _context7; (0, _forEach["default"])(_context7 = ownKeys(Object(source))).call(_context7, function (key) { (0, _defineProperty2["default"])(target, key, (0, _getOwnPropertyDescriptor["default"])(source, key)); }); } } return target; }
62
64
 
63
65
  var TabsContext = /*#__PURE__*/_react["default"].createContext({});
64
66
 
65
67
  exports.TabsContext = TabsContext;
66
68
  var Tabs = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
67
- var _context;
69
+ var _context4, _context5;
68
70
 
69
71
  var children = props.children,
70
72
  isDisabled = props.isDisabled,
73
+ items = props.items,
71
74
  onSelectionChange = props.onSelectionChange,
72
75
  orientation = props.orientation,
73
76
  mode = props.mode,
74
77
  tabListProps = props.tabListProps,
75
78
  tabPanelProps = props.tabPanelProps,
76
- others = (0, _objectWithoutProperties2["default"])(props, ["children", "isDisabled", "onSelectionChange", "orientation", "mode", "tabListProps", "tabPanelProps"]);
79
+ others = (0, _objectWithoutProperties2["default"])(props, ["children", "isDisabled", "items", "onSelectionChange", "orientation", "mode", "tabListProps", "tabPanelProps"]);
77
80
  var tabListRef = (0, _react.useRef)();
78
81
  (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
79
82
  /* istanbul ignore next */
@@ -87,8 +90,30 @@ var Tabs = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
87
90
  (0, _react.useImperativeHandle)(ref, function () {
88
91
  return tabPanelRef.current;
89
92
  });
93
+ var allItems = [];
94
+
95
+ if (mode === 'list') {
96
+ (0, _forEach["default"])(items).call(items, function (item) {
97
+ var _context;
98
+
99
+ allItems = (0, _concat["default"])(_context = []).call(_context, allItems, [item]);
100
+
101
+ if (item.list) {
102
+ var _context2, _context3;
103
+
104
+ var list = (0, _map["default"])(_context2 = item.list).call(_context2, function (el) {
105
+ return _objectSpread(_objectSpread({}, el), {}, {
106
+ isListItem: true
107
+ });
108
+ });
109
+ allItems = (0, _concat["default"])(_context3 = []).call(_context3, allItems, list);
110
+ }
111
+ });
112
+ }
113
+
90
114
  var state = (0, _tabs2.useTabListState)(_objectSpread(_objectSpread({}, props), {}, {
91
- onSelectionChange: onSelectionChange
115
+ onSelectionChange: onSelectionChange,
116
+ items: mode === 'list' ? allItems : items
92
117
  }));
93
118
 
94
119
  var _useTabList = (0, _tabs.useTabList)(props, state, tabListRef),
@@ -106,7 +131,11 @@ var Tabs = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
106
131
  isRow: orientation === _orientation["default"].HORIZONTAL
107
132
  }, tabListProps, raTabListProps, {
108
133
  ref: tabListRef
109
- }), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
134
+ }), (0, _map["default"])(_context4 = (0, _filter["default"])(_context5 = (0, _from["default"])(state.collection)).call(_context5, function (item) {
135
+ var _item$value;
136
+
137
+ return !(item === null || item === void 0 ? void 0 : (_item$value = item.value) === null || _item$value === void 0 ? void 0 : _item$value.isListItem);
138
+ })).call(_context4, function (item) {
110
139
  var _item$props;
111
140
 
112
141
  return (0, _react2.jsx)(_Tab.CollectionTab, {
@@ -136,7 +165,7 @@ Tabs.propTypes = {
136
165
  orientation: _propTypes["default"].oneOf(['horizontal', 'vertical']),
137
166
 
138
167
  /** Determines the behavior model for the tabs. */
139
- mode: _propTypes["default"].oneOf(['default', 'tooltip']),
168
+ mode: _propTypes["default"].oneOf(['default', 'tooltip', 'list']),
140
169
 
141
170
  /**
142
171
  * *For performance reasons, use this prop instead of Array.map when iteratively rendering Items*.
@@ -154,12 +183,16 @@ Tabs.propTypes = {
154
183
  tabListProps: _propTypes["default"].shape({}),
155
184
 
156
185
  /** Props object that is spread directly into all of the tab panel wrapper elements. */
157
- tabPanelProps: _propTypes["default"].shape({})
186
+ tabPanelProps: _propTypes["default"].shape({}),
187
+
188
+ /** Whether tabs are activated automatically on focus or manually¸ */
189
+ keyboardActivation: _propTypes["default"].oneOf(['automatic', 'manual'])
158
190
  };
159
191
  Tabs.defaultProps = {
160
192
  isDisabled: false,
161
193
  orientation: 'horizontal',
162
- mode: 'default'
194
+ mode: 'default',
195
+ keyboardActivation: 'manual'
163
196
  };
164
197
  Tabs.displayName = 'Tabs';
165
198
  var _default = Tabs;
@@ -10,7 +10,9 @@ _Object$defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
12
 
13
- exports.ContentSlots = exports.TabPanelProps = exports.CustomTabLine = exports.DisabledAllTabs = exports.DisabledSingleTab = exports.Centered = exports.WithTooltips = exports.WithIcon = exports.Controlled = exports.Uncontrolled = exports["default"] = void 0;
13
+ exports.WithList = exports.ContentSlots = exports.TabPanelProps = exports.CustomTabLine = exports.DisabledAllTabs = exports.DisabledSingleTab = exports.Centered = exports.WithTooltips = exports.WithIcon = exports.Controlled = exports.Uncontrolled = exports["default"] = void 0;
14
+
15
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
14
16
 
15
17
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
18
 
@@ -278,4 +280,32 @@ var ContentSlots = function ContentSlots() {
278
280
  }, (0, _react2.jsx)(_Text["default"], null, "Users Matched"))));
279
281
  };
280
282
 
281
- exports.ContentSlots = ContentSlots;
283
+ exports.ContentSlots = ContentSlots;
284
+
285
+ var WithList = function WithList() {
286
+ var _context;
287
+
288
+ var allTabs = (0, _concat["default"])(_context = []).call(_context, tabs, [{
289
+ name: 'Tab 4',
290
+ list: [{
291
+ key: 'tab1list',
292
+ name: 'Tab 1 list',
293
+ children: 'Tab 1 from list'
294
+ }, {
295
+ key: 'tab2list',
296
+ name: 'Tab 2 list',
297
+ children: 'Tab 2 from list'
298
+ }]
299
+ }]);
300
+ return (0, _react2.jsx)(_Tabs["default"], {
301
+ items: allTabs,
302
+ mode: "list"
303
+ }, function (item) {
304
+ return (0, _react2.jsx)(_Tab["default"], (0, _extends2["default"])({
305
+ key: item.name,
306
+ title: item.name
307
+ }, item), item.children);
308
+ });
309
+ };
310
+
311
+ exports.WithList = WithList;