@pingux/astro 2.154.1 → 2.155.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.
- package/lib/cjs/components/Button/Buttons.styles.d.ts +859 -0
- package/lib/cjs/components/Button/Buttons.styles.js +17 -1
- package/lib/cjs/components/Card/Card.mdx +5 -1
- package/lib/cjs/components/Card/Card.stories.d.ts +1 -0
- package/lib/cjs/components/Card/Card.stories.js +11 -2
- package/lib/cjs/components/SearchNav/MoreItemsPopover.d.ts +4 -0
- package/lib/cjs/components/SearchNav/MoreItemsPopover.js +74 -0
- package/lib/cjs/components/SearchNav/SearchNav.chromatic.stories.d.ts +6 -0
- package/lib/cjs/components/SearchNav/SearchNav.chromatic.stories.js +101 -0
- package/lib/cjs/components/SearchNav/SearchNav.d.ts +13 -0
- package/lib/cjs/components/SearchNav/SearchNav.js +218 -0
- package/lib/cjs/components/SearchNav/SearchNav.stories.d.ts +6 -0
- package/lib/cjs/components/SearchNav/SearchNav.stories.js +76 -0
- package/lib/cjs/components/SearchNav/SearchNav.styles.d.ts +33 -0
- package/lib/cjs/components/SearchNav/SearchNav.styles.js +51 -0
- package/lib/cjs/components/SearchNav/SearchNav.test.d.ts +1 -0
- package/lib/cjs/components/SearchNav/SearchNav.test.js +610 -0
- package/lib/cjs/components/SearchNav/SearchNavTab.d.ts +4 -0
- package/lib/cjs/components/SearchNav/SearchNavTab.js +69 -0
- package/lib/cjs/components/SearchNav/index.d.ts +1 -0
- package/lib/cjs/components/SearchNav/index.js +14 -0
- package/lib/cjs/components/Text/Text.styles.d.ts +2548 -0
- package/lib/cjs/components/Text/Text.styles.js +23 -1
- package/lib/cjs/index.d.ts +2 -0
- package/lib/cjs/index.js +45 -26
- package/lib/cjs/styles/colors.d.ts +6 -0
- package/lib/cjs/styles/colors.js +4 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +1 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +2 -1
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +9 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +10 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/cards.d.ts +14 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/cards.js +18 -4
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/text.d.ts +12 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/text.js +12 -0
- package/lib/cjs/styles/themes/next-gen/convertedComponentList.d.ts +1 -0
- package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +3 -2
- package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +37 -2
- package/lib/cjs/styles/themes/next-gen/next-gen.js +3 -0
- package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +9 -0
- package/lib/cjs/styles/themes/next-gen/variants/button.js +10 -0
- package/lib/cjs/styles/themes/next-gen/variants/cards.d.ts +19 -2
- package/lib/cjs/styles/themes/next-gen/variants/cards.js +14 -5
- package/lib/cjs/styles/themes/next-gen/variants/searchNav.d.ts +6 -0
- package/lib/cjs/styles/themes/next-gen/variants/searchNav.js +14 -0
- package/lib/cjs/styles/themes/next-gen/variants/text.d.ts +1 -0
- package/lib/cjs/styles/themes/next-gen/variants/text.js +2 -1
- package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +5 -0
- package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/cjs/styles/variants/variants.js +2 -0
- package/lib/cjs/types/searchNav.d.ts +49 -0
- package/lib/cjs/types/searchNav.js +6 -0
- package/lib/components/Button/Buttons.styles.js +18 -2
- package/lib/components/Card/Card.mdx +5 -1
- package/lib/components/Card/Card.stories.js +8 -0
- package/lib/components/SearchNav/MoreItemsPopover.js +60 -0
- package/lib/components/SearchNav/SearchNav.chromatic.stories.js +86 -0
- package/lib/components/SearchNav/SearchNav.js +203 -0
- package/lib/components/SearchNav/SearchNav.stories.js +61 -0
- package/lib/components/SearchNav/SearchNav.styles.js +43 -0
- package/lib/components/SearchNav/SearchNav.test.js +601 -0
- package/lib/components/SearchNav/SearchNavTab.js +55 -0
- package/lib/components/SearchNav/index.js +1 -0
- package/lib/components/Text/Text.styles.js +21 -1
- package/lib/index.js +2 -0
- package/lib/styles/colors.js +4 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +2 -1
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +10 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/cards.js +18 -4
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/text.js +12 -0
- package/lib/styles/themes/next-gen/convertedComponentList.js +3 -2
- package/lib/styles/themes/next-gen/next-gen.js +3 -0
- package/lib/styles/themes/next-gen/variants/button.js +10 -0
- package/lib/styles/themes/next-gen/variants/cards.js +14 -5
- package/lib/styles/themes/next-gen/variants/searchNav.js +6 -0
- package/lib/styles/themes/next-gen/variants/text.js +2 -1
- package/lib/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/styles/variants/variants.js +2 -0
- package/lib/types/searchNav.js +1 -0
- package/package.json +1 -1
|
@@ -295,6 +295,21 @@ var exampleText = _objectSpread(_objectSpread({}, base), {}, {
|
|
|
295
295
|
var paginationMenu = _objectSpread(_objectSpread({}, link), {}, {
|
|
296
296
|
fontWeight: 0
|
|
297
297
|
});
|
|
298
|
+
var tabLabelButton = _objectSpread(_objectSpread({}, _Text.searchNavTabLabel), {}, {
|
|
299
|
+
backgroundColor: 'transparent',
|
|
300
|
+
mb: '10px',
|
|
301
|
+
p: '0px',
|
|
302
|
+
borderImage: 'none',
|
|
303
|
+
display: 'inline-flex',
|
|
304
|
+
alignItems: 'center',
|
|
305
|
+
'&.is-hovered': {
|
|
306
|
+
color: 'active',
|
|
307
|
+
cursor: 'pointer'
|
|
308
|
+
},
|
|
309
|
+
'&.is-focused': _objectSpread(_objectSpread({}, defaultFocus), {}, {
|
|
310
|
+
borderRadius: '4px'
|
|
311
|
+
})
|
|
312
|
+
});
|
|
298
313
|
var _default = {
|
|
299
314
|
colorBlock: colorBlock,
|
|
300
315
|
colorBlockPrimary: colorBlockPrimary,
|
|
@@ -321,6 +336,7 @@ var _default = {
|
|
|
321
336
|
quiet: quiet,
|
|
322
337
|
success: success,
|
|
323
338
|
withIcon: withIcon,
|
|
324
|
-
filter: filter
|
|
339
|
+
filter: filter,
|
|
340
|
+
searchNavTabLabel: tabLabelButton
|
|
325
341
|
};
|
|
326
342
|
exports["default"] = _default;
|
|
@@ -29,4 +29,8 @@ These keys provide additional functionality to the Interactive Card components.
|
|
|
29
29
|
| Keys | Functions |
|
|
30
30
|
| ---- | --------- |
|
|
31
31
|
| Space or Enter | Selects the button. |
|
|
32
|
-
| Tab | Focuses the button and follows the page tab sequence.|
|
|
32
|
+
| Tab | Focuses the button and follows the page tab sequence.|
|
|
33
|
+
|
|
34
|
+
### Note
|
|
35
|
+
|
|
36
|
+
Use variant "cards.withShadow" to apply box-shadow on Card component.
|
|
@@ -34,3 +34,4 @@ export declare const InteractiveCard: {
|
|
|
34
34
|
};
|
|
35
35
|
export declare const WithInteractiveContent: (args: any) => React.JSX.Element;
|
|
36
36
|
export declare const RadioGroupCard: (args: any) => React.JSX.Element;
|
|
37
|
+
export declare const WithShadow: (args: any) => React.JSX.Element;
|
|
@@ -12,7 +12,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
12
12
|
_Object$defineProperty(exports, "__esModule", {
|
|
13
13
|
value: true
|
|
14
14
|
});
|
|
15
|
-
exports["default"] = exports.WithInteractiveContent = exports.RadioGroupCard = exports.InteractiveCard = exports.HeaderAndFooter = exports.Default = exports.CardWidth = exports.CardRow = void 0;
|
|
15
|
+
exports["default"] = exports.WithShadow = exports.WithInteractiveContent = exports.RadioGroupCard = exports.InteractiveCard = exports.HeaderAndFooter = exports.Default = exports.CardWidth = exports.CardRow = void 0;
|
|
16
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
17
17
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
18
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
@@ -206,4 +206,13 @@ var RadioGroupCard = function RadioGroupCard(args) {
|
|
|
206
206
|
isInteractiveWithin: false
|
|
207
207
|
}), "Active Card");
|
|
208
208
|
};
|
|
209
|
-
exports.RadioGroupCard = RadioGroupCard;
|
|
209
|
+
exports.RadioGroupCard = RadioGroupCard;
|
|
210
|
+
var WithShadow = function WithShadow(args) {
|
|
211
|
+
return (0, _react2.jsx)(_index.Box, {
|
|
212
|
+
bg: "backgroundSecondary",
|
|
213
|
+
p: "40px"
|
|
214
|
+
}, (0, _react2.jsx)(_index.Card, (0, _extends2["default"])({}, args, {
|
|
215
|
+
variant: "cards.withShadow"
|
|
216
|
+
})));
|
|
217
|
+
};
|
|
218
|
+
exports.WithShadow = WithShadow;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports["default"] = void 0;
|
|
12
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
13
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
+
var _ChevronDownIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronDownIcon"));
|
|
17
|
+
var _ChevronUpIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronUpIcon"));
|
|
18
|
+
var _index = require("../../index");
|
|
19
|
+
var _react2 = require("@emotion/react");
|
|
20
|
+
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); }
|
|
21
|
+
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; }
|
|
22
|
+
var MoreItemsPopover = function MoreItemsPopover(props) {
|
|
23
|
+
var buttonRef = props.buttonRef,
|
|
24
|
+
items = props.items,
|
|
25
|
+
moreButtonText = props.moreButtonText,
|
|
26
|
+
onOpenChange = props.onOpenChange,
|
|
27
|
+
popoverButtonProps = props.popoverButtonProps,
|
|
28
|
+
popoverMenuProps = props.popoverMenuProps,
|
|
29
|
+
popoverProps = props.popoverProps,
|
|
30
|
+
setSelectedKey = props.setSelectedKey,
|
|
31
|
+
tabProps = props.tabProps;
|
|
32
|
+
var _useState = (0, _react.useState)(false),
|
|
33
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
34
|
+
isOpen = _useState2[0],
|
|
35
|
+
setIsOpen = _useState2[1];
|
|
36
|
+
(0, _react.useEffect)(function () {
|
|
37
|
+
if (onOpenChange) {
|
|
38
|
+
onOpenChange(isOpen);
|
|
39
|
+
}
|
|
40
|
+
}, [isOpen]);
|
|
41
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
|
42
|
+
role: "listitem",
|
|
43
|
+
variant: "searchNav.tab",
|
|
44
|
+
isRow: true,
|
|
45
|
+
alignItems: "center",
|
|
46
|
+
ml: "sm"
|
|
47
|
+
}, tabProps), (0, _react2.jsx)(_index.PopoverMenu, (0, _extends2["default"])({}, popoverProps, {
|
|
48
|
+
isOpen: isOpen,
|
|
49
|
+
onOpenChange: setIsOpen
|
|
50
|
+
}), (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
|
|
51
|
+
tabIndex: 0,
|
|
52
|
+
variant: "searchNavTabLabel",
|
|
53
|
+
ref: buttonRef
|
|
54
|
+
}, popoverButtonProps), moreButtonText, (0, _react2.jsx)(_index.Icon, {
|
|
55
|
+
icon: isOpen ? _ChevronUpIcon["default"] : _ChevronDownIcon["default"],
|
|
56
|
+
ml: "2px",
|
|
57
|
+
mt: "2px",
|
|
58
|
+
size: 13,
|
|
59
|
+
title: {
|
|
60
|
+
name: 'Add Circle Icon'
|
|
61
|
+
}
|
|
62
|
+
})), (0, _react2.jsx)(_index.Menu, (0, _extends2["default"])({
|
|
63
|
+
onAction: function onAction(e) {
|
|
64
|
+
setSelectedKey(e);
|
|
65
|
+
}
|
|
66
|
+
}, popoverMenuProps), (0, _map["default"])(items).call(items, function (item) {
|
|
67
|
+
return (0, _react2.jsx)(_index.Item, {
|
|
68
|
+
key: item.key,
|
|
69
|
+
textValue: item.text
|
|
70
|
+
}, item.text);
|
|
71
|
+
}))));
|
|
72
|
+
};
|
|
73
|
+
var _default = MoreItemsPopover;
|
|
74
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports["default"] = exports.Default = void 0;
|
|
12
|
+
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _index = require("../../index");
|
|
16
|
+
var _react2 = require("@emotion/react");
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
var _default = {
|
|
20
|
+
title: 'Chromatic Only Search Nav Responsive'
|
|
21
|
+
};
|
|
22
|
+
exports["default"] = _default;
|
|
23
|
+
var items = [{
|
|
24
|
+
text: 'Overview',
|
|
25
|
+
key: 'Overview',
|
|
26
|
+
children: (0, _react2.jsx)(_index.Text, null, "Overview")
|
|
27
|
+
}, {
|
|
28
|
+
text: 'Configuration',
|
|
29
|
+
key: 'Configuration',
|
|
30
|
+
children: (0, _react2.jsx)(_index.Text, null, "Configuration")
|
|
31
|
+
}, {
|
|
32
|
+
text: 'Resources',
|
|
33
|
+
key: 'Resources',
|
|
34
|
+
children: (0, _react2.jsx)(_index.Text, null, "Resources")
|
|
35
|
+
}, {
|
|
36
|
+
text: 'Policies',
|
|
37
|
+
key: 'Policies',
|
|
38
|
+
children: (0, _react2.jsx)(_index.Text, null, "Policies")
|
|
39
|
+
}, {
|
|
40
|
+
text: 'Attribute Mappings',
|
|
41
|
+
key: 'Attribute Mappings',
|
|
42
|
+
children: (0, _react2.jsx)(_index.Text, null, "Attribute body")
|
|
43
|
+
}, {
|
|
44
|
+
text: 'Access',
|
|
45
|
+
key: 'Access',
|
|
46
|
+
children: (0, _react2.jsx)(_index.Text, null, "Access")
|
|
47
|
+
}, {
|
|
48
|
+
text: 'Integration',
|
|
49
|
+
key: 'Integration',
|
|
50
|
+
children: (0, _react2.jsx)(_index.Text, null, "Integration")
|
|
51
|
+
}];
|
|
52
|
+
var Default = function Default() {
|
|
53
|
+
var _items$find, _items$find2, _items$find3;
|
|
54
|
+
var _useState = (0, _react.useState)('Access'),
|
|
55
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
56
|
+
selectedKey = _useState2[0],
|
|
57
|
+
setSelectedKey = _useState2[1];
|
|
58
|
+
var setSelectedKeyCallback = function setSelectedKeyCallback(e) {
|
|
59
|
+
setSelectedKey(e);
|
|
60
|
+
};
|
|
61
|
+
return (0, _react2.jsx)(_index.Box, {
|
|
62
|
+
gap: "md"
|
|
63
|
+
}, (0, _react2.jsx)(_index.Box, {
|
|
64
|
+
maxWidth: "600px"
|
|
65
|
+
}, (0, _react2.jsx)(_index.SearchNav, {
|
|
66
|
+
items: items,
|
|
67
|
+
selectedKey: selectedKey,
|
|
68
|
+
setSelectedKey: function setSelectedKey(e) {
|
|
69
|
+
return setSelectedKeyCallback(e);
|
|
70
|
+
}
|
|
71
|
+
}), (0, _react2.jsx)(_index.Box, {
|
|
72
|
+
p: "sm"
|
|
73
|
+
}, (_items$find = (0, _find["default"])(items).call(items, function (item) {
|
|
74
|
+
return item.key === selectedKey;
|
|
75
|
+
})) === null || _items$find === void 0 ? void 0 : _items$find.children)), (0, _react2.jsx)(_index.Box, {
|
|
76
|
+
maxWidth: "400px"
|
|
77
|
+
}, (0, _react2.jsx)(_index.SearchNav, {
|
|
78
|
+
items: items,
|
|
79
|
+
selectedKey: selectedKey,
|
|
80
|
+
setSelectedKey: function setSelectedKey(e) {
|
|
81
|
+
return setSelectedKeyCallback(e);
|
|
82
|
+
}
|
|
83
|
+
}), (0, _react2.jsx)(_index.Box, {
|
|
84
|
+
p: "sm"
|
|
85
|
+
}, (_items$find2 = (0, _find["default"])(items).call(items, function (item) {
|
|
86
|
+
return item.key === selectedKey;
|
|
87
|
+
})) === null || _items$find2 === void 0 ? void 0 : _items$find2.children)), (0, _react2.jsx)(_index.Box, {
|
|
88
|
+
maxWidth: "200px"
|
|
89
|
+
}, (0, _react2.jsx)(_index.SearchNav, {
|
|
90
|
+
items: items,
|
|
91
|
+
selectedKey: selectedKey,
|
|
92
|
+
setSelectedKey: function setSelectedKey(e) {
|
|
93
|
+
return setSelectedKeyCallback(e);
|
|
94
|
+
}
|
|
95
|
+
}), (0, _react2.jsx)(_index.Box, {
|
|
96
|
+
p: "sm"
|
|
97
|
+
}, (_items$find3 = (0, _find["default"])(items).call(items, function (item) {
|
|
98
|
+
return item.key === selectedKey;
|
|
99
|
+
})) === null || _items$find3 === void 0 ? void 0 : _items$find3.children)));
|
|
100
|
+
};
|
|
101
|
+
exports.Default = Default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SearchNavProps } from '../../types/searchNav';
|
|
3
|
+
/**
|
|
4
|
+
* 1. Measures the width of all items based on their refs.
|
|
5
|
+
*/
|
|
6
|
+
export declare const measureItemWidths: (items: any, measurementRefs: any) => {};
|
|
7
|
+
/**
|
|
8
|
+
* 2. Calculates the number of visible items based on available container width
|
|
9
|
+
* and item widths.
|
|
10
|
+
*/
|
|
11
|
+
export declare const calculateVisibleCount: (containerWidth: any, moreButtonWidth: any, orderedItems: any, itemWidths: any) => number;
|
|
12
|
+
declare const SearchNav: React.ForwardRefExoticComponent<SearchNavProps & React.RefAttributes<HTMLElement>>;
|
|
13
|
+
export default SearchNav;
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports.measureItemWidths = exports["default"] = exports.calculateVisibleCount = void 0;
|
|
12
|
+
var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
|
|
13
|
+
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
14
|
+
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
|
15
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
16
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
17
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
18
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
19
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
var _utils = require("@react-aria/utils");
|
|
22
|
+
var _hooks = require("../../hooks");
|
|
23
|
+
var _useProgressiveState3 = _interopRequireDefault(require("../../hooks/useProgressiveState"));
|
|
24
|
+
var _index = require("../../index");
|
|
25
|
+
var _MoreItemsPopover = _interopRequireDefault(require("./MoreItemsPopover"));
|
|
26
|
+
var _SearchNavTab = _interopRequireDefault(require("./SearchNavTab"));
|
|
27
|
+
var _react2 = require("@emotion/react");
|
|
28
|
+
var _excluded = ["defaultSelectedKey", "items", "labelProps", "moreButtonText", "onSelectionChange", "onOpenChange", "popoverButtonProps", "popoverMenuProps", "popoverProps", "rowProps", "selectedKey", "setSelectedKey", "tabProps"];
|
|
29
|
+
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); }
|
|
30
|
+
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; }
|
|
31
|
+
var TAB_MARGIN_WIDTH = 10; // Example constant value
|
|
32
|
+
var MORE_BUTTON_WIDTH = 60;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 1. Measures the width of all items based on their refs.
|
|
36
|
+
*/
|
|
37
|
+
var measureItemWidths = function measureItemWidths(items, measurementRefs) {
|
|
38
|
+
var widths = {};
|
|
39
|
+
for (var i = 0; i < items.length; i += 1) {
|
|
40
|
+
var item = items[i];
|
|
41
|
+
var itemRef = measurementRefs.current[item.key];
|
|
42
|
+
if (itemRef) {
|
|
43
|
+
widths[item.key] = itemRef.offsetWidth;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return widths;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 2. Calculates the number of visible items based on available container width
|
|
51
|
+
* and item widths.
|
|
52
|
+
*/
|
|
53
|
+
exports.measureItemWidths = measureItemWidths;
|
|
54
|
+
var calculateVisibleCount = function calculateVisibleCount(containerWidth, moreButtonWidth, orderedItems, itemWidths) {
|
|
55
|
+
var totalItemsWidth = 0;
|
|
56
|
+
var visibleCount = 0;
|
|
57
|
+
for (var i = 0; i < orderedItems.length; i += 1) {
|
|
58
|
+
var item = orderedItems[i];
|
|
59
|
+
var itemWidth = itemWidths[item.key] + TAB_MARGIN_WIDTH;
|
|
60
|
+
if (itemWidth) {
|
|
61
|
+
var itemsRemaining = orderedItems.length - (visibleCount + 1);
|
|
62
|
+
// Only require space for 'more' button if there are items that will be hidden
|
|
63
|
+
var requiredSpaceForMoreButton = itemsRemaining > 0 ? moreButtonWidth : 0;
|
|
64
|
+
var widthNeeded = totalItemsWidth + itemWidth + requiredSpaceForMoreButton;
|
|
65
|
+
if (widthNeeded > containerWidth) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
totalItemsWidth += itemWidth;
|
|
69
|
+
visibleCount += 1;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return visibleCount;
|
|
73
|
+
};
|
|
74
|
+
exports.calculateVisibleCount = calculateVisibleCount;
|
|
75
|
+
var SearchNav = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
76
|
+
var defaultSelectedKey = props.defaultSelectedKey,
|
|
77
|
+
items = props.items,
|
|
78
|
+
labelProps = props.labelProps,
|
|
79
|
+
_props$moreButtonText = props.moreButtonText,
|
|
80
|
+
moreButtonText = _props$moreButtonText === void 0 ? 'More' : _props$moreButtonText,
|
|
81
|
+
onSelectionChange = props.onSelectionChange,
|
|
82
|
+
onOpenChange = props.onOpenChange,
|
|
83
|
+
popoverButtonProps = props.popoverButtonProps,
|
|
84
|
+
popoverMenuProps = props.popoverMenuProps,
|
|
85
|
+
popoverProps = props.popoverProps,
|
|
86
|
+
rowProps = props.rowProps,
|
|
87
|
+
selectedKeyProp = props.selectedKey,
|
|
88
|
+
setSelectedKeyProp = props.setSelectedKey,
|
|
89
|
+
tabProps = props.tabProps,
|
|
90
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
91
|
+
var _useProgressiveState = (0, _useProgressiveState3["default"])(selectedKeyProp, defaultSelectedKey),
|
|
92
|
+
_useProgressiveState2 = (0, _slicedToArray2["default"])(_useProgressiveState, 2),
|
|
93
|
+
selectedKey = _useProgressiveState2[0],
|
|
94
|
+
setSelectedKey = _useProgressiveState2[1];
|
|
95
|
+
var _useState = (0, _react.useState)((0, _from["default"])(items)),
|
|
96
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
97
|
+
orderedItems = _useState2[0],
|
|
98
|
+
setOrderedItems = _useState2[1];
|
|
99
|
+
var buttonRef = (0, _react.useRef)(null);
|
|
100
|
+
var measurementRefs = (0, _react.useRef)({});
|
|
101
|
+
var tabListRef = (0, _hooks.useLocalOrForwardRef)(ref);
|
|
102
|
+
var _useState3 = (0, _react.useState)(items.length),
|
|
103
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
104
|
+
numVisibleItems = _useState4[0],
|
|
105
|
+
setNumVisibleItems = _useState4[1];
|
|
106
|
+
(0, _react.useEffect)(function () {
|
|
107
|
+
setOrderedItems(items);
|
|
108
|
+
}, [items]);
|
|
109
|
+
var calculateVisibleItems = function calculateVisibleItems() {
|
|
110
|
+
var _buttonRef$current;
|
|
111
|
+
if (!tabListRef.current) return;
|
|
112
|
+
|
|
113
|
+
// Step 1: Measure (updates itemWidths ref in parent scope if needed, or returns new object)
|
|
114
|
+
var currentItemWidths = measureItemWidths(items, measurementRefs);
|
|
115
|
+
var containerWidth = tabListRef.current.offsetWidth;
|
|
116
|
+
var moreButtonWidth = ((_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.offsetWidth) || MORE_BUTTON_WIDTH;
|
|
117
|
+
|
|
118
|
+
// Step 2: Calculate visible count (pure logic)
|
|
119
|
+
var visibleCount = calculateVisibleCount(containerWidth, moreButtonWidth, orderedItems, currentItemWidths);
|
|
120
|
+
|
|
121
|
+
// Step 3: Update state
|
|
122
|
+
setNumVisibleItems(visibleCount);
|
|
123
|
+
};
|
|
124
|
+
(0, _utils.useResizeObserver)({
|
|
125
|
+
ref: tabListRef,
|
|
126
|
+
onResize: calculateVisibleItems
|
|
127
|
+
});
|
|
128
|
+
var visibleItems = (0, _react.useMemo)(function () {
|
|
129
|
+
return (0, _slice["default"])(orderedItems).call(orderedItems, 0, numVisibleItems);
|
|
130
|
+
}, [orderedItems, numVisibleItems]);
|
|
131
|
+
var hiddenItems = (0, _react.useMemo)(function () {
|
|
132
|
+
return (0, _slice["default"])(orderedItems).call(orderedItems, numVisibleItems);
|
|
133
|
+
}, [orderedItems, numVisibleItems]);
|
|
134
|
+
(0, _react.useEffect)(function () {
|
|
135
|
+
if (onSelectionChange) {
|
|
136
|
+
onSelectionChange(selectedKey);
|
|
137
|
+
}
|
|
138
|
+
}, [selectedKey]);
|
|
139
|
+
(0, _utils.useLayoutEffect)(function () {
|
|
140
|
+
calculateVisibleItems();
|
|
141
|
+
}, [items]);
|
|
142
|
+
var reorderTabs = function reorderTabs() {
|
|
143
|
+
var selectedIndex = (0, _findIndex["default"])(orderedItems).call(orderedItems, function (item) {
|
|
144
|
+
return item.key === selectedKey;
|
|
145
|
+
});
|
|
146
|
+
var isSelectedHidden = selectedIndex >= numVisibleItems;
|
|
147
|
+
if (isSelectedHidden && selectedIndex !== -1 && numVisibleItems > 0) {
|
|
148
|
+
var _context;
|
|
149
|
+
var newOrderedItems = (0, _concat["default"])(_context = []).call(_context, orderedItems);
|
|
150
|
+
var selectedItem = newOrderedItems[selectedIndex];
|
|
151
|
+
var displacedItem = newOrderedItems[numVisibleItems - 1];
|
|
152
|
+
newOrderedItems[numVisibleItems - 1] = selectedItem;
|
|
153
|
+
newOrderedItems[selectedIndex] = displacedItem;
|
|
154
|
+
setOrderedItems(newOrderedItems);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
(0, _react.useEffect)(function () {
|
|
158
|
+
reorderTabs();
|
|
159
|
+
}, [selectedKey, numVisibleItems]);
|
|
160
|
+
var handleSelection = function handleSelection(key) {
|
|
161
|
+
setSelectedKey(key);
|
|
162
|
+
if (setSelectedKeyProp) {
|
|
163
|
+
setSelectedKeyProp(key);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
return (0, _react2.jsx)(_index.Box, {
|
|
167
|
+
maxWidth: "100%",
|
|
168
|
+
role: "navigation"
|
|
169
|
+
}, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
|
170
|
+
role: "list",
|
|
171
|
+
isRow: true,
|
|
172
|
+
ref: tabListRef,
|
|
173
|
+
alignItems: "center",
|
|
174
|
+
variant: "searchNav.list"
|
|
175
|
+
}, others, rowProps), (0, _map["default"])(visibleItems).call(visibleItems, function (item) {
|
|
176
|
+
return (0, _react2.jsx)(_SearchNavTab["default"], {
|
|
177
|
+
key: item.key,
|
|
178
|
+
item: item,
|
|
179
|
+
selectedKey: selectedKey,
|
|
180
|
+
setSelectedKey: handleSelection,
|
|
181
|
+
tabProps: tabProps,
|
|
182
|
+
labelProps: labelProps
|
|
183
|
+
});
|
|
184
|
+
}), hiddenItems.length > 0 && (0, _react2.jsx)(_MoreItemsPopover["default"], {
|
|
185
|
+
onOpenChange: onOpenChange,
|
|
186
|
+
items: hiddenItems,
|
|
187
|
+
setSelectedKey: handleSelection,
|
|
188
|
+
buttonRef: buttonRef,
|
|
189
|
+
tabProps: tabProps,
|
|
190
|
+
popoverProps: popoverProps,
|
|
191
|
+
popoverButtonProps: popoverButtonProps,
|
|
192
|
+
popoverMenuProps: popoverMenuProps,
|
|
193
|
+
moreButtonText: moreButtonText
|
|
194
|
+
})), (0, _react2.jsx)(_index.Box
|
|
195
|
+
// Off-screen positioning to allow measurement without affecting layout
|
|
196
|
+
, {
|
|
197
|
+
sx: {
|
|
198
|
+
position: 'absolute',
|
|
199
|
+
top: 0,
|
|
200
|
+
left: '-9999px',
|
|
201
|
+
overflow: 'hidden'
|
|
202
|
+
}
|
|
203
|
+
}, (0, _map["default"])(items).call(items, function (item) {
|
|
204
|
+
return (0, _react2.jsx)(_index.Box, {
|
|
205
|
+
sx: {
|
|
206
|
+
maxWidth: 'fit-content'
|
|
207
|
+
},
|
|
208
|
+
key: "".concat(item.key, "-box")
|
|
209
|
+
}, (0, _react2.jsx)(_index.Text, {
|
|
210
|
+
key: "hidden-".concat(item.key),
|
|
211
|
+
ref: function ref(el) {
|
|
212
|
+
measurementRefs.current[item.key] = el;
|
|
213
|
+
}
|
|
214
|
+
}, item.text));
|
|
215
|
+
})));
|
|
216
|
+
});
|
|
217
|
+
var _default = SearchNav;
|
|
218
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports["default"] = exports.Default = void 0;
|
|
12
|
+
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _index = require("../../index");
|
|
16
|
+
var _SearchNav = _interopRequireDefault(require("./SearchNav"));
|
|
17
|
+
var _react2 = require("@emotion/react");
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
20
|
+
var _default = {
|
|
21
|
+
title: 'Components/SearchNav'
|
|
22
|
+
};
|
|
23
|
+
exports["default"] = _default;
|
|
24
|
+
var items = [{
|
|
25
|
+
text: 'Overview',
|
|
26
|
+
key: 'Overview',
|
|
27
|
+
children: (0, _react2.jsx)(_index.Text, null, "Overview")
|
|
28
|
+
}, {
|
|
29
|
+
text: 'Configuration',
|
|
30
|
+
key: 'Configuration',
|
|
31
|
+
children: (0, _react2.jsx)(_index.Text, null, "Configuration")
|
|
32
|
+
}, {
|
|
33
|
+
text: 'Resources',
|
|
34
|
+
key: 'Resources',
|
|
35
|
+
children: (0, _react2.jsx)(_index.Text, null, "Resources")
|
|
36
|
+
}, {
|
|
37
|
+
text: 'Policies',
|
|
38
|
+
key: 'Policies',
|
|
39
|
+
children: (0, _react2.jsx)(_index.Text, null, "Policies")
|
|
40
|
+
}, {
|
|
41
|
+
text: 'Attribute Mappings',
|
|
42
|
+
key: 'Attribute Mappings',
|
|
43
|
+
children: (0, _react2.jsx)(_index.Text, null, "Attribute body")
|
|
44
|
+
}, {
|
|
45
|
+
text: 'Access',
|
|
46
|
+
key: 'Access',
|
|
47
|
+
children: (0, _react2.jsx)(_index.Text, null, "Access")
|
|
48
|
+
}, {
|
|
49
|
+
text: 'Integration',
|
|
50
|
+
key: 'Integration',
|
|
51
|
+
children: (0, _react2.jsx)(_index.Text, null, "Integration")
|
|
52
|
+
}];
|
|
53
|
+
var Default = function Default() {
|
|
54
|
+
var _items$find;
|
|
55
|
+
var _useState = (0, _react.useState)('Policies'),
|
|
56
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
57
|
+
selectedKey = _useState2[0],
|
|
58
|
+
setSelectedKey = _useState2[1];
|
|
59
|
+
var setSelectedKeyCallback = function setSelectedKeyCallback(e) {
|
|
60
|
+
setSelectedKey(e);
|
|
61
|
+
};
|
|
62
|
+
return (0, _react2.jsx)(_index.Box, {
|
|
63
|
+
maxWidth: "600px"
|
|
64
|
+
}, (0, _react2.jsx)(_SearchNav["default"], {
|
|
65
|
+
items: items,
|
|
66
|
+
selectedKey: selectedKey,
|
|
67
|
+
setSelectedKey: function setSelectedKey(e) {
|
|
68
|
+
return setSelectedKeyCallback(e);
|
|
69
|
+
}
|
|
70
|
+
}), (0, _react2.jsx)(_index.Box, {
|
|
71
|
+
p: "sm"
|
|
72
|
+
}, (_items$find = (0, _find["default"])(items).call(items, function (item) {
|
|
73
|
+
return item.key === selectedKey;
|
|
74
|
+
})) === null || _items$find === void 0 ? void 0 : _items$find.children));
|
|
75
|
+
};
|
|
76
|
+
exports.Default = Default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
tab: {
|
|
3
|
+
pt: string;
|
|
4
|
+
cursor: string;
|
|
5
|
+
alignItems: string;
|
|
6
|
+
display: string;
|
|
7
|
+
borderBottom: string;
|
|
8
|
+
outline: string;
|
|
9
|
+
marginBottom: string;
|
|
10
|
+
position: string;
|
|
11
|
+
zIndex: string;
|
|
12
|
+
'&.is-focused': {
|
|
13
|
+
'& > span': {
|
|
14
|
+
borderRadius: string;
|
|
15
|
+
outline: string;
|
|
16
|
+
outlineColor: string;
|
|
17
|
+
outlineOffset: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
'&.is-disabled': {
|
|
21
|
+
cursor: string;
|
|
22
|
+
};
|
|
23
|
+
'&.is-selected': {
|
|
24
|
+
borderBottomWidth: string;
|
|
25
|
+
borderBottomColor: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
list: {
|
|
29
|
+
borderBottom: string;
|
|
30
|
+
borderBottomColor: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export default _default;
|