@instructure/ui-top-nav-bar 10.26.1-snapshot-2 → 10.26.2
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/CHANGELOG.md +5 -18
- package/es/TopNavBar/TopNavBarActionItems/index.js +5 -5
- package/es/TopNavBar/TopNavBarActionItems/props.js +12 -1
- package/es/TopNavBar/TopNavBarBrand/index.js +5 -5
- package/es/TopNavBar/TopNavBarBrand/props.js +11 -1
- package/es/TopNavBar/TopNavBarBreadcrumb/index.js +5 -6
- package/es/TopNavBar/TopNavBarBreadcrumb/props.js +9 -1
- package/es/TopNavBar/TopNavBarItem/index.js +6 -6
- package/es/TopNavBar/TopNavBarItem/props.js +44 -1
- package/es/TopNavBar/TopNavBarLayout/DesktopLayout/index.js +5 -5
- package/es/TopNavBar/TopNavBarLayout/DesktopLayout/props.js +7 -2
- package/es/TopNavBar/TopNavBarLayout/SmallViewportLayout/index.js +5 -5
- package/es/TopNavBar/TopNavBarLayout/SmallViewportLayout/props.js +7 -2
- package/es/TopNavBar/TopNavBarLayout/index.js +6 -5
- package/es/TopNavBar/TopNavBarLayout/props.js +45 -1
- package/es/TopNavBar/TopNavBarMenuItems/index.js +7 -8
- package/es/TopNavBar/TopNavBarMenuItems/props.js +11 -1
- package/es/TopNavBar/TopNavBarUser/index.js +5 -5
- package/es/TopNavBar/TopNavBarUser/props.js +8 -1
- package/es/TopNavBar/index.js +6 -18
- package/es/TopNavBar/props.js +9 -1
- package/es/TopNavBar/utils/mapItemsForDrilldown.js +1 -2
- package/lib/TopNavBar/TopNavBarActionItems/index.js +4 -4
- package/lib/TopNavBar/TopNavBarActionItems/props.js +13 -1
- package/lib/TopNavBar/TopNavBarBrand/index.js +4 -4
- package/lib/TopNavBar/TopNavBarBrand/props.js +12 -1
- package/lib/TopNavBar/TopNavBarBreadcrumb/index.js +4 -5
- package/lib/TopNavBar/TopNavBarBreadcrumb/props.js +10 -1
- package/lib/TopNavBar/TopNavBarItem/index.js +5 -5
- package/lib/TopNavBar/TopNavBarItem/props.js +45 -1
- package/lib/TopNavBar/TopNavBarLayout/DesktopLayout/index.js +4 -4
- package/lib/TopNavBar/TopNavBarLayout/DesktopLayout/props.js +6 -1
- package/lib/TopNavBar/TopNavBarLayout/SmallViewportLayout/index.js +4 -4
- package/lib/TopNavBar/TopNavBarLayout/SmallViewportLayout/props.js +6 -1
- package/lib/TopNavBar/TopNavBarLayout/index.js +5 -4
- package/lib/TopNavBar/TopNavBarLayout/props.js +47 -1
- package/lib/TopNavBar/TopNavBarMenuItems/index.js +6 -7
- package/lib/TopNavBar/TopNavBarMenuItems/props.js +12 -1
- package/lib/TopNavBar/TopNavBarUser/index.js +4 -4
- package/lib/TopNavBar/TopNavBarUser/props.js +9 -1
- package/lib/TopNavBar/index.js +5 -19
- package/lib/TopNavBar/props.js +10 -1
- package/lib/TopNavBar/utils/mapItemsForDrilldown.js +1 -2
- package/package.json +31 -28
- package/src/TopNavBar/TopNavBarActionItems/index.tsx +8 -2
- package/src/TopNavBar/TopNavBarActionItems/props.ts +22 -1
- package/src/TopNavBar/TopNavBarBrand/index.tsx +5 -6
- package/src/TopNavBar/TopNavBarBrand/props.ts +16 -1
- package/src/TopNavBar/TopNavBarBreadcrumb/index.tsx +9 -13
- package/src/TopNavBar/TopNavBarBreadcrumb/props.ts +15 -3
- package/src/TopNavBar/TopNavBarItem/index.tsx +5 -6
- package/src/TopNavBar/TopNavBarItem/props.ts +51 -1
- package/src/TopNavBar/TopNavBarLayout/DesktopLayout/index.tsx +4 -2
- package/src/TopNavBar/TopNavBarLayout/DesktopLayout/props.ts +19 -3
- package/src/TopNavBar/TopNavBarLayout/SmallViewportLayout/index.tsx +4 -2
- package/src/TopNavBar/TopNavBarLayout/SmallViewportLayout/props.ts +18 -3
- package/src/TopNavBar/TopNavBarLayout/index.tsx +5 -1
- package/src/TopNavBar/TopNavBarLayout/props.ts +60 -1
- package/src/TopNavBar/TopNavBarMenuItems/index.tsx +5 -10
- package/src/TopNavBar/TopNavBarMenuItems/props.ts +19 -1
- package/src/TopNavBar/TopNavBarUser/index.tsx +4 -2
- package/src/TopNavBar/TopNavBarUser/props.ts +14 -1
- package/src/TopNavBar/index.tsx +4 -2
- package/src/TopNavBar/props.ts +17 -2
- package/src/TopNavBar/utils/mapItemsForDrilldown.tsx +1 -1
- package/tsconfig.build.json +3 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/types/TopNavBar/TopNavBarActionItems/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarActionItems/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarActionItems/props.d.ts +3 -2
- package/types/TopNavBar/TopNavBarActionItems/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarBrand/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarBrand/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarBrand/props.d.ts +3 -2
- package/types/TopNavBar/TopNavBarBrand/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarBreadcrumb/index.d.ts +5 -0
- package/types/TopNavBar/TopNavBarBreadcrumb/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarBreadcrumb/props.d.ts +3 -2
- package/types/TopNavBar/TopNavBarBreadcrumb/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarItem/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarItem/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarItem/props.d.ts +13 -2
- package/types/TopNavBar/TopNavBarItem/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarLayout/DesktopLayout/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarLayout/DesktopLayout/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarLayout/DesktopLayout/props.d.ts +3 -2
- package/types/TopNavBar/TopNavBarLayout/DesktopLayout/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarLayout/SmallViewportLayout/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarLayout/SmallViewportLayout/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarLayout/SmallViewportLayout/props.d.ts +3 -2
- package/types/TopNavBar/TopNavBarLayout/SmallViewportLayout/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarLayout/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarLayout/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarLayout/props.d.ts +6 -2
- package/types/TopNavBar/TopNavBarLayout/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarMenuItems/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarMenuItems/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarMenuItems/props.d.ts +3 -2
- package/types/TopNavBar/TopNavBarMenuItems/props.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarUser/index.d.ts +1 -0
- package/types/TopNavBar/TopNavBarUser/index.d.ts.map +1 -1
- package/types/TopNavBar/TopNavBarUser/props.d.ts +3 -2
- package/types/TopNavBar/TopNavBarUser/props.d.ts.map +1 -1
- package/types/TopNavBar/index.d.ts +1 -0
- package/types/TopNavBar/index.d.ts.map +1 -1
- package/types/TopNavBar/props.d.ts +3 -2
- package/types/TopNavBar/props.d.ts.map +1 -1
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.smallViewportAllowedProps = exports.desktopAllowedProps = exports.commonAllowedProps = exports.allowedProps = void 0;
|
|
7
|
+
exports.smallViewportPropTypes = exports.smallViewportAllowedProps = exports.propTypes = exports.desktopPropTypes = exports.desktopAllowedProps = exports.commonPropTypes = exports.commonAllowedProps = exports.allowedProps = void 0;
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Children = require("@instructure/ui-prop-types/lib/Children.js");
|
|
10
|
+
var _element = require("@instructure/ui-prop-types/lib/element.js");
|
|
11
|
+
var _TopNavBarActionItems = require("../TopNavBarActionItems");
|
|
12
|
+
var _TopNavBarBrand = require("../TopNavBarBrand");
|
|
13
|
+
var _TopNavBarMenuItems = require("../TopNavBarMenuItems");
|
|
14
|
+
var _TopNavBarUser = require("../TopNavBarUser");
|
|
15
|
+
var _props = require("../TopNavBarItem/props");
|
|
16
|
+
var _TopNavBarBreadcrumb = require("../TopNavBarBreadcrumb");
|
|
7
17
|
/*
|
|
8
18
|
* The MIT License (MIT)
|
|
9
19
|
*
|
|
@@ -28,6 +38,42 @@ exports.smallViewportAllowedProps = exports.desktopAllowedProps = exports.common
|
|
|
28
38
|
* SOFTWARE.
|
|
29
39
|
*/
|
|
30
40
|
|
|
41
|
+
const commonPropTypes = exports.commonPropTypes = {
|
|
42
|
+
renderBrand: _Children.Children.oneOf([_TopNavBarBrand.TopNavBarBrand]),
|
|
43
|
+
renderMenuItems: _Children.Children.oneOf([_TopNavBarMenuItems.TopNavBarMenuItems]),
|
|
44
|
+
renderActionItems: _Children.Children.oneOf([_TopNavBarActionItems.TopNavBarActionItems]),
|
|
45
|
+
renderUser: _Children.Children.oneOf([_TopNavBarUser.TopNavBarUser]),
|
|
46
|
+
renderBreadcrumb: _Children.Children.oneOf([_TopNavBarBreadcrumb.TopNavBarBreadcrumb]),
|
|
47
|
+
navLabel: _propTypes.default.string,
|
|
48
|
+
elementRef: _propTypes.default.func
|
|
49
|
+
};
|
|
50
|
+
const desktopPropTypes = exports.desktopPropTypes = {
|
|
51
|
+
hideActionsUserSeparator: _propTypes.default.bool
|
|
52
|
+
};
|
|
53
|
+
const smallViewportPropTypes = exports.smallViewportPropTypes = {
|
|
54
|
+
dropdownMenuToggleButtonLabel: _propTypes.default.string.isRequired,
|
|
55
|
+
dropdownMenuToggleButtonTooltip: _props.topNavBarItemTooltipPropType,
|
|
56
|
+
dropdownMenuLabel: _propTypes.default.string,
|
|
57
|
+
alternativeTitle: _propTypes.default.node,
|
|
58
|
+
renderInPlaceDialogConfig: _propTypes.default.shape({
|
|
59
|
+
open: _propTypes.default.bool.isRequired,
|
|
60
|
+
onClose: _propTypes.default.func.isRequired,
|
|
61
|
+
closeButtonLabel: _propTypes.default.string.isRequired,
|
|
62
|
+
content: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
|
|
63
|
+
returnFocusElement: _propTypes.default.func,
|
|
64
|
+
shouldContainFocus: _propTypes.default.bool,
|
|
65
|
+
shouldCloseOnDocumentClick: _propTypes.default.bool,
|
|
66
|
+
shouldCloseOnEscape: _propTypes.default.bool
|
|
67
|
+
}),
|
|
68
|
+
trayMountNode: _propTypes.default.oneOfType([_element.element, _propTypes.default.func]),
|
|
69
|
+
onDropdownMenuToggle: _propTypes.default.func,
|
|
70
|
+
onDropdownMenuSelect: _propTypes.default.func,
|
|
71
|
+
renderNavbarStartDangerousHack: _propTypes.default.node
|
|
72
|
+
};
|
|
73
|
+
const propTypes = exports.propTypes = {
|
|
74
|
+
...commonPropTypes,
|
|
75
|
+
smallViewportConfig: _propTypes.default.shape(smallViewportPropTypes).isRequired
|
|
76
|
+
};
|
|
31
77
|
const commonAllowedProps = exports.commonAllowedProps = ['renderBrand', 'renderMenuItems', 'renderActionItems', 'renderUser', 'renderBreadcrumb', 'navLabel', 'elementRef'];
|
|
32
78
|
const desktopAllowedProps = exports.desktopAllowedProps = ['hideActionsUserSeparator'];
|
|
33
79
|
const smallViewportAllowedProps = exports.smallViewportAllowedProps = ['dropdownMenuToggleButtonLabel', 'dropdownMenuToggleButtonTooltip', 'dropdownMenuLabel', 'alternativeTitle', 'renderInPlaceDialogConfig', 'trayMountNode', 'onDropdownMenuToggle', 'onDropdownMenuSelect'];
|
|
@@ -10,6 +10,7 @@ var _omitProps = require("@instructure/ui-react-utils/lib/omitProps.js");
|
|
|
10
10
|
var _safeCloneElement = require("@instructure/ui-react-utils/lib/safeCloneElement.js");
|
|
11
11
|
var _withDeterministicId = require("@instructure/ui-react-utils/lib/DeterministicIdContext/withDeterministicId.js");
|
|
12
12
|
var _console = require("@instructure/console");
|
|
13
|
+
var _testable = require("@instructure/ui-testable/lib/testable.js");
|
|
13
14
|
var _emotion = require("@instructure/emotion");
|
|
14
15
|
var _Drilldown = require("@instructure/ui-drilldown/lib/Drilldown");
|
|
15
16
|
var _TruncateList = require("@instructure/ui-truncate-list/lib/TruncateList");
|
|
@@ -21,7 +22,7 @@ var _theme = _interopRequireDefault(require("./theme"));
|
|
|
21
22
|
var _props = require("./props");
|
|
22
23
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
23
24
|
var _react2 = require("@emotion/react");
|
|
24
|
-
var _dec, _dec2, _class, _TopNavBarMenuItems, _span;
|
|
25
|
+
var _dec, _dec2, _dec3, _class, _TopNavBarMenuItems, _span;
|
|
25
26
|
/*
|
|
26
27
|
* The MIT License (MIT)
|
|
27
28
|
*
|
|
@@ -52,7 +53,7 @@ id: TopNavBar.MenuItems
|
|
|
52
53
|
---
|
|
53
54
|
@module TopNavBarMenuItems
|
|
54
55
|
**/
|
|
55
|
-
let TopNavBarMenuItems = exports.TopNavBarMenuItems = (_dec = (0, _withDeterministicId.withDeterministicId)(), _dec2 = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = _dec2(_class = (_TopNavBarMenuItems = class TopNavBarMenuItems extends _react.Component {
|
|
56
|
+
let TopNavBarMenuItems = exports.TopNavBarMenuItems = (_dec = (0, _withDeterministicId.withDeterministicId)(), _dec2 = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec3 = (0, _testable.testable)(), _dec(_class = _dec2(_class = _dec3(_class = (_TopNavBarMenuItems = class TopNavBarMenuItems extends _react.Component {
|
|
56
57
|
constructor(props) {
|
|
57
58
|
super(props);
|
|
58
59
|
this._hiddenMenuItemsMenuTriggerId = void 0;
|
|
@@ -132,8 +133,7 @@ let TopNavBarMenuItems = exports.TopNavBarMenuItems = (_dec = (0, _withDetermini
|
|
|
132
133
|
const _child$props = child.props,
|
|
133
134
|
id = _child$props.id,
|
|
134
135
|
status = _child$props.status,
|
|
135
|
-
|
|
136
|
-
variant = _child$props$variant === void 0 ? 'default' : _child$props$variant,
|
|
136
|
+
variant = _child$props.variant,
|
|
137
137
|
renderSubmenu = _child$props.renderSubmenu,
|
|
138
138
|
renderAvatar = _child$props.renderAvatar;
|
|
139
139
|
const isCurrentPage = currentPageId === id;
|
|
@@ -190,9 +190,8 @@ let TopNavBarMenuItems = exports.TopNavBarMenuItems = (_dec = (0, _withDetermini
|
|
|
190
190
|
...((styles === null || styles === void 0 ? void 0 : styles.itemSpacing) && {
|
|
191
191
|
itemSpacing: styles.itemSpacing
|
|
192
192
|
}),
|
|
193
|
-
"aria-label": listLabel
|
|
194
|
-
"data-cid": "TopNavBarMenuItems"
|
|
193
|
+
"aria-label": listLabel
|
|
195
194
|
}, this.renderChildren());
|
|
196
195
|
}
|
|
197
|
-
}, _TopNavBarMenuItems.displayName = "TopNavBarMenuItems", _TopNavBarMenuItems.componentId = 'TopNavBar.MenuItems', _TopNavBarMenuItems.allowedProps = _props.allowedProps, _TopNavBarMenuItems.defaultProps = {}, _TopNavBarMenuItems.contextType = _TopNavBarContext.TopNavBarContext, _TopNavBarMenuItems)) || _class) || _class);
|
|
196
|
+
}, _TopNavBarMenuItems.displayName = "TopNavBarMenuItems", _TopNavBarMenuItems.componentId = 'TopNavBar.MenuItems', _TopNavBarMenuItems.propTypes = _props.propTypes, _TopNavBarMenuItems.allowedProps = _props.allowedProps, _TopNavBarMenuItems.defaultProps = {}, _TopNavBarMenuItems.contextType = _TopNavBarContext.TopNavBarContext, _TopNavBarMenuItems)) || _class) || _class) || _class);
|
|
198
197
|
var _default = exports.default = TopNavBarMenuItems;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.allowedProps = void 0;
|
|
7
|
+
exports.propTypes = exports.allowedProps = void 0;
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Children = require("@instructure/ui-prop-types/lib/Children.js");
|
|
10
|
+
var _TopNavBarItem = require("../TopNavBarItem");
|
|
7
11
|
/*
|
|
8
12
|
* The MIT License (MIT)
|
|
9
13
|
*
|
|
@@ -28,4 +32,11 @@ exports.allowedProps = void 0;
|
|
|
28
32
|
* SOFTWARE.
|
|
29
33
|
*/
|
|
30
34
|
|
|
35
|
+
const propTypes = exports.propTypes = {
|
|
36
|
+
children: _Children.Children.oneOf([_TopNavBarItem.TopNavBarItem]),
|
|
37
|
+
currentPageId: _propTypes.default.string,
|
|
38
|
+
renderHiddenItemsMenuTriggerLabel: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]).isRequired,
|
|
39
|
+
listLabel: _propTypes.default.string,
|
|
40
|
+
elementRef: _propTypes.default.func
|
|
41
|
+
};
|
|
31
42
|
const allowedProps = exports.allowedProps = ['children', 'currentPageId', 'renderHiddenItemsMenuTriggerLabel', 'listLabel', 'elementRef'];
|
|
@@ -8,12 +8,13 @@ exports.default = exports.TopNavBarUser = void 0;
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _console = require("@instructure/console");
|
|
10
10
|
var _omitProps = require("@instructure/ui-react-utils/lib/omitProps.js");
|
|
11
|
+
var _testable = require("@instructure/ui-testable/lib/testable.js");
|
|
11
12
|
var _emotion = require("@instructure/emotion");
|
|
12
13
|
var _TopNavBarContext = require("../TopNavBarContext");
|
|
13
14
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
14
15
|
var _props = require("./props");
|
|
15
16
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
16
|
-
var _dec, _class, _TopNavBarUser;
|
|
17
|
+
var _dec, _dec2, _class, _TopNavBarUser;
|
|
17
18
|
/*
|
|
18
19
|
* The MIT License (MIT)
|
|
19
20
|
*
|
|
@@ -44,7 +45,7 @@ id: TopNavBar.User
|
|
|
44
45
|
---
|
|
45
46
|
@module TopNavBarUser
|
|
46
47
|
**/
|
|
47
|
-
let TopNavBarUser = exports.TopNavBarUser = (_dec = (0, _emotion.withStyle)(_styles.default, null), _dec(_class = (_TopNavBarUser = class TopNavBarUser extends _react.Component {
|
|
48
|
+
let TopNavBarUser = exports.TopNavBarUser = (_dec = (0, _emotion.withStyle)(_styles.default, null), _dec2 = (0, _testable.testable)(), _dec(_class = _dec2(_class = (_TopNavBarUser = class TopNavBarUser extends _react.Component {
|
|
48
49
|
constructor(...args) {
|
|
49
50
|
super(...args);
|
|
50
51
|
this.ref = null;
|
|
@@ -91,9 +92,8 @@ let TopNavBarUser = exports.TopNavBarUser = (_dec = (0, _emotion.withStyle)(_sty
|
|
|
91
92
|
...(0, _omitProps.omitProps)(this.props, _props.allowedProps),
|
|
92
93
|
ref: this.handleRef,
|
|
93
94
|
css: styles === null || styles === void 0 ? void 0 : styles.topNavBarUser,
|
|
94
|
-
"data-cid": "TopNavBarUser",
|
|
95
95
|
children: this.content
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
-
}, _TopNavBarUser.displayName = "TopNavBarUser", _TopNavBarUser.componentId = 'TopNavBar.User', _TopNavBarUser.allowedProps = _props.allowedProps, _TopNavBarUser.defaultProps = {}, _TopNavBarUser.contextType = _TopNavBarContext.TopNavBarContext, _TopNavBarUser)) || _class);
|
|
98
|
+
}, _TopNavBarUser.displayName = "TopNavBarUser", _TopNavBarUser.componentId = 'TopNavBar.User', _TopNavBarUser.propTypes = _props.propTypes, _TopNavBarUser.allowedProps = _props.allowedProps, _TopNavBarUser.defaultProps = {}, _TopNavBarUser.contextType = _TopNavBarContext.TopNavBarContext, _TopNavBarUser)) || _class) || _class);
|
|
99
99
|
var _default = exports.default = TopNavBarUser;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.allowedProps = void 0;
|
|
7
|
+
exports.propTypes = exports.allowedProps = void 0;
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Children = require("@instructure/ui-prop-types/lib/Children.js");
|
|
10
|
+
var _TopNavBarItem = require("../TopNavBarItem");
|
|
7
11
|
/*
|
|
8
12
|
* The MIT License (MIT)
|
|
9
13
|
*
|
|
@@ -28,4 +32,8 @@ exports.allowedProps = void 0;
|
|
|
28
32
|
* SOFTWARE.
|
|
29
33
|
*/
|
|
30
34
|
|
|
35
|
+
const propTypes = exports.propTypes = {
|
|
36
|
+
children: _Children.Children.oneOf([_TopNavBarItem.TopNavBarItem]).isRequired,
|
|
37
|
+
elementRef: _propTypes.default.func
|
|
38
|
+
};
|
|
31
39
|
const allowedProps = exports.allowedProps = ['children', 'elementRef'];
|
package/lib/TopNavBar/index.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.TopNavBar = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _console = require("@instructure/console");
|
|
9
|
+
var _testable = require("@instructure/ui-testable/lib/testable.js");
|
|
9
10
|
var _px = require("@instructure/ui-utils/lib/px.js");
|
|
10
11
|
var _matchComponentTypes = require("@instructure/ui-react-utils/lib/matchComponentTypes.js");
|
|
11
12
|
var _Responsive = require("@instructure/ui-responsive/lib/Responsive");
|
|
@@ -19,6 +20,7 @@ var _TopNavBarBreadcrumb = require("./TopNavBarBreadcrumb");
|
|
|
19
20
|
var _TopNavBarContext = require("./TopNavBarContext");
|
|
20
21
|
var _props2 = require("./props");
|
|
21
22
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
23
|
+
var _dec, _class, _TopNavBar;
|
|
22
24
|
/*
|
|
23
25
|
* The MIT License (MIT)
|
|
24
26
|
*
|
|
@@ -42,13 +44,12 @@ var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
|
42
44
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
43
45
|
* SOFTWARE.
|
|
44
46
|
*/
|
|
45
|
-
|
|
46
47
|
/**
|
|
47
48
|
---
|
|
48
49
|
category: components
|
|
49
50
|
---
|
|
50
51
|
**/
|
|
51
|
-
class TopNavBar extends _react.Component {
|
|
52
|
+
let TopNavBar = exports.TopNavBar = (_dec = (0, _testable.testable)(), _dec(_class = (_TopNavBar = class TopNavBar extends _react.Component {
|
|
52
53
|
constructor(...args) {
|
|
53
54
|
super(...args);
|
|
54
55
|
this.ref = null;
|
|
@@ -69,7 +70,6 @@ class TopNavBar extends _react.Component {
|
|
|
69
70
|
mediaQueryMatch = _this$props.mediaQueryMatch,
|
|
70
71
|
inverseColor = _this$props.inverseColor;
|
|
71
72
|
return (0, _jsxRuntime.jsx)(_Responsive.Responsive, {
|
|
72
|
-
"data-cid": "TopNavBar",
|
|
73
73
|
elementRef: this.handleRef,
|
|
74
74
|
match: mediaQueryMatch,
|
|
75
75
|
query: {
|
|
@@ -100,23 +100,9 @@ class TopNavBar extends _react.Component {
|
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
|
-
}
|
|
104
|
-
exports.TopNavBar = TopNavBar;
|
|
105
|
-
TopNavBar.displayName = "TopNavBar";
|
|
106
|
-
TopNavBar.componentId = 'TopNavBar';
|
|
107
|
-
// TODO: mention subcomponent registration in "new component" docs
|
|
108
|
-
TopNavBar.ActionItems = _TopNavBarActionItems.TopNavBarActionItems;
|
|
109
|
-
TopNavBar.Brand = _TopNavBarBrand.TopNavBarBrand;
|
|
110
|
-
TopNavBar.Item = _TopNavBarItem.TopNavBarItem;
|
|
111
|
-
TopNavBar.Layout = _TopNavBarLayout.TopNavBarLayout;
|
|
112
|
-
TopNavBar.MenuItems = _TopNavBarMenuItems.TopNavBarMenuItems;
|
|
113
|
-
TopNavBar.User = _TopNavBarUser.TopNavBarUser;
|
|
114
|
-
TopNavBar.Breadcrumb = _TopNavBarBreadcrumb.TopNavBarBreadcrumb;
|
|
115
|
-
TopNavBar.contextType = _TopNavBarContext.TopNavBarContext;
|
|
116
|
-
TopNavBar.allowedProps = _props2.allowedProps;
|
|
117
|
-
TopNavBar.defaultProps = {
|
|
103
|
+
}, _TopNavBar.displayName = "TopNavBar", _TopNavBar.componentId = 'TopNavBar', _TopNavBar.ActionItems = _TopNavBarActionItems.TopNavBarActionItems, _TopNavBar.Brand = _TopNavBarBrand.TopNavBarBrand, _TopNavBar.Item = _TopNavBarItem.TopNavBarItem, _TopNavBar.Layout = _TopNavBarLayout.TopNavBarLayout, _TopNavBar.MenuItems = _TopNavBarMenuItems.TopNavBarMenuItems, _TopNavBar.User = _TopNavBarUser.TopNavBarUser, _TopNavBar.Breadcrumb = _TopNavBarBreadcrumb.TopNavBarBreadcrumb, _TopNavBar.contextType = _TopNavBarContext.TopNavBarContext, _TopNavBar.propTypes = _props2.propTypes, _TopNavBar.allowedProps = _props2.allowedProps, _TopNavBar.defaultProps = {
|
|
118
104
|
breakpoint: 1024,
|
|
119
105
|
mediaQueryMatch: 'media',
|
|
120
106
|
inverseColor: false
|
|
121
|
-
};
|
|
107
|
+
}, _TopNavBar)) || _class);
|
|
122
108
|
var _default = exports.default = TopNavBar;
|
package/lib/TopNavBar/props.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.allowedProps = void 0;
|
|
7
|
+
exports.propTypes = exports.allowedProps = void 0;
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
7
9
|
/*
|
|
8
10
|
* The MIT License (MIT)
|
|
9
11
|
*
|
|
@@ -28,4 +30,11 @@ exports.allowedProps = void 0;
|
|
|
28
30
|
* SOFTWARE.
|
|
29
31
|
*/
|
|
30
32
|
|
|
33
|
+
const propTypes = exports.propTypes = {
|
|
34
|
+
children: _propTypes.default.func,
|
|
35
|
+
breakpoint: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
|
|
36
|
+
mediaQueryMatch: _propTypes.default.oneOf(['element', 'media']),
|
|
37
|
+
inverseColor: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func]),
|
|
38
|
+
elementRef: _propTypes.default.func
|
|
39
|
+
};
|
|
31
40
|
const allowedProps = exports.allowedProps = ['children', 'breakpoint', 'mediaQueryMatch', 'inverseColor', 'elementRef'];
|
|
@@ -49,8 +49,7 @@ const mapItemsForDrilldown = (itemList, options = {}) => {
|
|
|
49
49
|
id = _item$props.id,
|
|
50
50
|
children = _item$props.children,
|
|
51
51
|
status = _item$props.status,
|
|
52
|
-
|
|
53
|
-
variant = _item$props$variant === void 0 ? 'default' : _item$props$variant,
|
|
52
|
+
variant = _item$props.variant,
|
|
54
53
|
href = _item$props.href,
|
|
55
54
|
onClick = _item$props.onClick,
|
|
56
55
|
shouldCloseOnClick = _item$props.shouldCloseOnClick;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/ui-top-nav-bar",
|
|
3
|
-
"version": "10.26.
|
|
3
|
+
"version": "10.26.2",
|
|
4
4
|
"description": "A UI component library made by Instructure Inc.",
|
|
5
5
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
6
6
|
"module": "./es/index.js",
|
|
@@ -24,40 +24,43 @@
|
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@babel/runtime": "^7.27.6",
|
|
27
|
-
"@instructure/console": "10.26.
|
|
28
|
-
"@instructure/emotion": "10.26.
|
|
29
|
-
"@instructure/shared-types": "10.26.
|
|
30
|
-
"@instructure/ui-a11y-content": "10.26.
|
|
31
|
-
"@instructure/ui-avatar": "10.26.
|
|
32
|
-
"@instructure/ui-breadcrumb": "10.26.
|
|
33
|
-
"@instructure/ui-buttons": "10.26.
|
|
34
|
-
"@instructure/ui-dialog": "10.26.
|
|
35
|
-
"@instructure/ui-dom-utils": "10.26.
|
|
36
|
-
"@instructure/ui-drilldown": "10.26.
|
|
37
|
-
"@instructure/ui-icons": "10.26.
|
|
38
|
-
"@instructure/ui-link": "10.26.
|
|
39
|
-
"@instructure/ui-popover": "10.26.
|
|
40
|
-
"@instructure/ui-
|
|
41
|
-
"@instructure/ui-
|
|
42
|
-
"@instructure/ui-
|
|
43
|
-
"@instructure/ui-
|
|
44
|
-
"@instructure/ui-
|
|
45
|
-
"@instructure/ui-
|
|
46
|
-
"@instructure/ui-
|
|
27
|
+
"@instructure/console": "10.26.2",
|
|
28
|
+
"@instructure/emotion": "10.26.2",
|
|
29
|
+
"@instructure/shared-types": "10.26.2",
|
|
30
|
+
"@instructure/ui-a11y-content": "10.26.2",
|
|
31
|
+
"@instructure/ui-avatar": "10.26.2",
|
|
32
|
+
"@instructure/ui-breadcrumb": "10.26.2",
|
|
33
|
+
"@instructure/ui-buttons": "10.26.2",
|
|
34
|
+
"@instructure/ui-dialog": "10.26.2",
|
|
35
|
+
"@instructure/ui-dom-utils": "10.26.2",
|
|
36
|
+
"@instructure/ui-drilldown": "10.26.2",
|
|
37
|
+
"@instructure/ui-icons": "10.26.2",
|
|
38
|
+
"@instructure/ui-link": "10.26.2",
|
|
39
|
+
"@instructure/ui-popover": "10.26.2",
|
|
40
|
+
"@instructure/ui-prop-types": "10.26.2",
|
|
41
|
+
"@instructure/ui-react-utils": "10.26.2",
|
|
42
|
+
"@instructure/ui-responsive": "10.26.2",
|
|
43
|
+
"@instructure/ui-testable": "10.26.2",
|
|
44
|
+
"@instructure/ui-tooltip": "10.26.2",
|
|
45
|
+
"@instructure/ui-tray": "10.26.2",
|
|
46
|
+
"@instructure/ui-truncate-list": "10.26.2",
|
|
47
|
+
"@instructure/ui-utils": "10.26.2",
|
|
48
|
+
"@instructure/ui-view": "10.26.2",
|
|
49
|
+
"prop-types": "^15.8.1"
|
|
47
50
|
},
|
|
48
51
|
"devDependencies": {
|
|
49
|
-
"@instructure/ui-axe-check": "10.26.
|
|
50
|
-
"@instructure/ui-babel-preset": "10.26.
|
|
51
|
-
"@instructure/ui-color-utils": "10.26.
|
|
52
|
-
"@instructure/ui-scripts": "10.26.
|
|
53
|
-
"@instructure/ui-themes": "10.26.
|
|
52
|
+
"@instructure/ui-axe-check": "10.26.2",
|
|
53
|
+
"@instructure/ui-babel-preset": "10.26.2",
|
|
54
|
+
"@instructure/ui-color-utils": "10.26.2",
|
|
55
|
+
"@instructure/ui-scripts": "10.26.2",
|
|
56
|
+
"@instructure/ui-themes": "10.26.2",
|
|
54
57
|
"@testing-library/jest-dom": "^6.6.3",
|
|
55
|
-
"@testing-library/react": "
|
|
58
|
+
"@testing-library/react": "^16.0.1",
|
|
56
59
|
"@testing-library/user-event": "^14.6.1",
|
|
57
60
|
"vitest": "^3.2.2"
|
|
58
61
|
},
|
|
59
62
|
"peerDependencies": {
|
|
60
|
-
"react": ">=
|
|
63
|
+
"react": ">=16.14 <=18"
|
|
61
64
|
},
|
|
62
65
|
"publishConfig": {
|
|
63
66
|
"access": "public"
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
safeCloneElement,
|
|
31
31
|
withDeterministicId
|
|
32
32
|
} from '@instructure/ui-react-utils'
|
|
33
|
+
import { testable } from '@instructure/ui-testable'
|
|
33
34
|
import { warn, error } from '@instructure/console'
|
|
34
35
|
|
|
35
36
|
import { withStyle } from '@instructure/emotion'
|
|
@@ -52,7 +53,11 @@ import { TopNavBarContext } from '../TopNavBarContext'
|
|
|
52
53
|
import generateStyle from './styles'
|
|
53
54
|
import generateComponentTheme from './theme'
|
|
54
55
|
|
|
55
|
-
import {
|
|
56
|
+
import {
|
|
57
|
+
propTypes,
|
|
58
|
+
allowedProps,
|
|
59
|
+
TopNavBarActionItemsStyleProps
|
|
60
|
+
} from './props'
|
|
56
61
|
import type {
|
|
57
62
|
TopNavBarActionItemsProps,
|
|
58
63
|
TopNavBarActionItemsState
|
|
@@ -67,12 +72,14 @@ id: TopNavBar.ActionItems
|
|
|
67
72
|
**/
|
|
68
73
|
@withDeterministicId()
|
|
69
74
|
@withStyle(generateStyle, generateComponentTheme)
|
|
75
|
+
@testable()
|
|
70
76
|
class TopNavBarActionItems extends Component<
|
|
71
77
|
TopNavBarActionItemsProps,
|
|
72
78
|
TopNavBarActionItemsState
|
|
73
79
|
> {
|
|
74
80
|
static readonly componentId = 'TopNavBar.ActionItems'
|
|
75
81
|
|
|
82
|
+
static propTypes = propTypes
|
|
76
83
|
static allowedProps = allowedProps
|
|
77
84
|
static defaultProps = {}
|
|
78
85
|
|
|
@@ -277,7 +284,6 @@ class TopNavBarActionItems extends Component<
|
|
|
277
284
|
ref={this.handleRef}
|
|
278
285
|
css={styles?.topNavBarActionItems}
|
|
279
286
|
aria-label={listLabel}
|
|
280
|
-
data-cid="TopNavBarActionItems"
|
|
281
287
|
>
|
|
282
288
|
{this.childrenArray.map((item) => (
|
|
283
289
|
<li css={styles?.listItem} key={item.props.id}>
|
|
@@ -23,14 +23,20 @@
|
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
25
|
import React from 'react'
|
|
26
|
+
import PropTypes from 'prop-types'
|
|
27
|
+
|
|
28
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types'
|
|
26
29
|
import type { WithStyleProps, ComponentStyle } from '@instructure/emotion'
|
|
27
30
|
import type { WithDeterministicIdProps } from '@instructure/ui-react-utils'
|
|
28
31
|
import type {
|
|
29
32
|
TopNavBarActionItemsTheme,
|
|
30
33
|
OtherHTMLAttributes,
|
|
34
|
+
PropValidators,
|
|
31
35
|
ChildrenOfType
|
|
32
36
|
} from '@instructure/shared-types'
|
|
33
37
|
|
|
38
|
+
import { TopNavBarItem } from '../TopNavBarItem'
|
|
39
|
+
import { topNavBarItemTooltipPropType } from '../TopNavBarItem/props'
|
|
34
40
|
import type {
|
|
35
41
|
ItemChild,
|
|
36
42
|
TopNavBarItemTooltipType
|
|
@@ -112,6 +118,21 @@ type TopNavBarActionItemsState = {
|
|
|
112
118
|
type TopNavBarActionItemsStyleProps = {
|
|
113
119
|
layout?: TopNavBarContextType['layout']
|
|
114
120
|
}
|
|
121
|
+
|
|
122
|
+
const propTypes: PropValidators<PropKeys> = {
|
|
123
|
+
children: ChildrenPropTypes.oneOf([TopNavBarItem]),
|
|
124
|
+
listLabel: PropTypes.string,
|
|
125
|
+
renderHiddenItemsMenuTriggerLabel: PropTypes.oneOfType([
|
|
126
|
+
PropTypes.string,
|
|
127
|
+
PropTypes.func
|
|
128
|
+
]).isRequired,
|
|
129
|
+
renderHiddenItemsMenuTriggerTooltip: PropTypes.oneOfType([
|
|
130
|
+
topNavBarItemTooltipPropType,
|
|
131
|
+
PropTypes.func
|
|
132
|
+
]),
|
|
133
|
+
elementRef: PropTypes.func
|
|
134
|
+
}
|
|
135
|
+
|
|
115
136
|
const allowedProps: AllowedPropKeys = [
|
|
116
137
|
'children',
|
|
117
138
|
'listLabel',
|
|
@@ -128,4 +149,4 @@ export type {
|
|
|
128
149
|
TopNavBarActionItemsStyleProps,
|
|
129
150
|
TopNavBarActionItemsStyle
|
|
130
151
|
}
|
|
131
|
-
export { allowedProps }
|
|
152
|
+
export { propTypes, allowedProps }
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
import { Component } from 'react'
|
|
26
26
|
|
|
27
27
|
import { getElementType, omitProps } from '@instructure/ui-react-utils'
|
|
28
|
+
import { testable } from '@instructure/ui-testable'
|
|
28
29
|
|
|
29
30
|
import { withStyle } from '@instructure/emotion'
|
|
30
31
|
|
|
@@ -36,7 +37,7 @@ import { TopNavBarContext } from '../TopNavBarContext'
|
|
|
36
37
|
import generateStyle from './styles'
|
|
37
38
|
import generateComponentTheme from './theme'
|
|
38
39
|
|
|
39
|
-
import { allowedProps } from './props'
|
|
40
|
+
import { propTypes, allowedProps } from './props'
|
|
40
41
|
import type { TopNavBarBrandProps, TopNavBarBrandStyleProps } from './props'
|
|
41
42
|
|
|
42
43
|
/**
|
|
@@ -47,10 +48,12 @@ id: TopNavBar.Brand
|
|
|
47
48
|
@module TopNavBarBrand
|
|
48
49
|
**/
|
|
49
50
|
@withStyle(generateStyle, generateComponentTheme)
|
|
51
|
+
@testable()
|
|
50
52
|
class TopNavBarBrand extends Component<TopNavBarBrandProps> {
|
|
51
53
|
static readonly componentId = 'TopNavBar.Brand'
|
|
52
54
|
// TODO: add to the docs: making it static on parent and jsdocs parent/module settings, dont export child on its own
|
|
53
55
|
|
|
56
|
+
static propTypes = propTypes
|
|
54
57
|
static allowedProps = allowedProps
|
|
55
58
|
static defaultProps = {}
|
|
56
59
|
|
|
@@ -103,11 +106,7 @@ class TopNavBarBrand extends Component<TopNavBarBrandProps> {
|
|
|
103
106
|
const ElementType = getElementType(TopNavBarBrand, this.props)
|
|
104
107
|
|
|
105
108
|
return (
|
|
106
|
-
<div
|
|
107
|
-
ref={this.handleRef}
|
|
108
|
-
css={styles?.topNavBarBrand}
|
|
109
|
-
data-cid="TopNavBarBrand"
|
|
110
|
-
>
|
|
109
|
+
<div ref={this.handleRef} css={styles?.topNavBarBrand}>
|
|
111
110
|
{renderIcon && (
|
|
112
111
|
<View
|
|
113
112
|
{...omitProps(this.props, allowedProps)}
|
|
@@ -23,13 +23,17 @@
|
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
25
|
import React from 'react'
|
|
26
|
+
import PropTypes from 'prop-types'
|
|
27
|
+
|
|
26
28
|
import type { WithStyleProps, ComponentStyle } from '@instructure/emotion'
|
|
27
29
|
import type {
|
|
28
30
|
TopNavBarBrandTheme,
|
|
29
31
|
OtherHTMLAttributes,
|
|
32
|
+
PropValidators,
|
|
30
33
|
AsElementType
|
|
31
34
|
} from '@instructure/shared-types'
|
|
32
35
|
import type { ViewOwnProps } from '@instructure/ui-view'
|
|
36
|
+
|
|
33
37
|
import type { TopNavBarContextType } from '../TopNavBarContext'
|
|
34
38
|
|
|
35
39
|
import { TopNavBarBrand } from './index'
|
|
@@ -91,6 +95,17 @@ type TopNavBarBrandStyle = ComponentStyle<
|
|
|
91
95
|
type TopNavBarBrandStyleProps = {
|
|
92
96
|
layout: TopNavBarContextType['layout']
|
|
93
97
|
}
|
|
98
|
+
|
|
99
|
+
const propTypes: PropValidators<PropKeys> = {
|
|
100
|
+
screenReaderLabel: PropTypes.string.isRequired,
|
|
101
|
+
renderIcon: PropTypes.node,
|
|
102
|
+
iconBackground: PropTypes.string,
|
|
103
|
+
href: PropTypes.string,
|
|
104
|
+
onClick: PropTypes.func,
|
|
105
|
+
as: PropTypes.elementType,
|
|
106
|
+
elementRef: PropTypes.func
|
|
107
|
+
}
|
|
108
|
+
|
|
94
109
|
const allowedProps: AllowedPropKeys = [
|
|
95
110
|
'screenReaderLabel',
|
|
96
111
|
'renderIcon',
|
|
@@ -108,4 +123,4 @@ export type {
|
|
|
108
123
|
TopNavBarBrandStyle,
|
|
109
124
|
TopNavBarBrandStyleProps
|
|
110
125
|
}
|
|
111
|
-
export { allowedProps }
|
|
126
|
+
export { propTypes, allowedProps }
|
|
@@ -26,11 +26,13 @@ import { Children, Component, ReactElement } from 'react'
|
|
|
26
26
|
import {
|
|
27
27
|
TopNavBarBreadcrumbProps,
|
|
28
28
|
TopNavBarBreadcrumbState,
|
|
29
|
-
allowedProps
|
|
29
|
+
allowedProps,
|
|
30
|
+
propTypes
|
|
30
31
|
} from './props'
|
|
31
32
|
import TopNavBar from '../index'
|
|
32
33
|
import { withStyle } from '@instructure/emotion'
|
|
33
34
|
import generateStyle from '../TopNavBarBreadcrumb/styles'
|
|
35
|
+
import { testable } from '@instructure/ui-testable'
|
|
34
36
|
import {
|
|
35
37
|
IconArrowOpenStartLine,
|
|
36
38
|
IconHamburgerLine
|
|
@@ -47,10 +49,12 @@ id: TopNavBar.Breadcrumb
|
|
|
47
49
|
@module TopNavBarBreadcrumb
|
|
48
50
|
**/
|
|
49
51
|
@withStyle(generateStyle, null)
|
|
52
|
+
@testable()
|
|
50
53
|
class TopNavBarBreadcrumb extends Component<
|
|
51
54
|
TopNavBarBreadcrumbProps,
|
|
52
55
|
TopNavBarBreadcrumbState
|
|
53
56
|
> {
|
|
57
|
+
static propTypes = propTypes
|
|
54
58
|
static allowedProps = allowedProps
|
|
55
59
|
static defaultProps = {}
|
|
56
60
|
|
|
@@ -103,29 +107,21 @@ class TopNavBarBreadcrumb extends Component<
|
|
|
103
107
|
)
|
|
104
108
|
}
|
|
105
109
|
|
|
106
|
-
const breadcrumbElement = Children.toArray(children)[0] as ReactElement
|
|
110
|
+
const breadcrumbElement = Children.toArray(children)[0] as ReactElement
|
|
107
111
|
const breadCrumbLinks = breadcrumbElement.props.children
|
|
108
112
|
const lastButOneLink = Children.toArray(breadCrumbLinks)[
|
|
109
113
|
Children.count(breadCrumbLinks) - 2
|
|
110
|
-
] as ReactElement
|
|
114
|
+
] as ReactElement
|
|
111
115
|
|
|
112
116
|
return (
|
|
113
117
|
this.context.inverseColor &&
|
|
114
118
|
(this.context.layout === 'desktop' ? (
|
|
115
|
-
<div
|
|
116
|
-
ref={this.handleRef}
|
|
117
|
-
css={styles?.topNavBarBreadcrumb}
|
|
118
|
-
data-cid="TopNavBarBreadcrumb"
|
|
119
|
-
>
|
|
119
|
+
<div ref={this.handleRef} css={styles?.topNavBarBreadcrumb}>
|
|
120
120
|
<div css={styles?.iconContainer}>{this.renderMenu()}</div>
|
|
121
121
|
<div css={styles?.breadcrumbContainer}>{children}</div>
|
|
122
122
|
</div>
|
|
123
123
|
) : (
|
|
124
|
-
<div
|
|
125
|
-
ref={this.handleRef}
|
|
126
|
-
css={styles?.topNavBarBreadcrumb}
|
|
127
|
-
data-cid="TopNavBarBreadcrumb"
|
|
128
|
-
>
|
|
124
|
+
<div ref={this.handleRef} css={styles?.topNavBarBreadcrumb}>
|
|
129
125
|
<div css={styles?.linkContainer}>
|
|
130
126
|
{lastButOneLink && (
|
|
131
127
|
<Link
|
|
@@ -26,9 +26,14 @@ import { ComponentElement } from 'react'
|
|
|
26
26
|
import type { ViewOwnProps } from '@instructure/ui-view'
|
|
27
27
|
import type { ComponentStyle, WithStyleProps } from '@instructure/emotion'
|
|
28
28
|
import { TopNavBarContextType } from '../TopNavBarContext'
|
|
29
|
-
import {
|
|
29
|
+
import {
|
|
30
|
+
ChildrenOfType,
|
|
31
|
+
OtherHTMLAttributes,
|
|
32
|
+
PropValidators
|
|
33
|
+
} from '@instructure/shared-types'
|
|
30
34
|
import TopNavBarBreadcrumb from './index'
|
|
31
|
-
|
|
35
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types'
|
|
36
|
+
import PropTypes from 'prop-types'
|
|
32
37
|
import { Breadcrumb } from '@instructure/ui-breadcrumb'
|
|
33
38
|
import type { BreadcrumbProps } from '@instructure/ui-breadcrumb'
|
|
34
39
|
|
|
@@ -77,6 +82,13 @@ type TopNavBarBreadcrumbStyleProps = {
|
|
|
77
82
|
type PropKeys = keyof TopNavBarBreadcrumbOwnProps
|
|
78
83
|
|
|
79
84
|
type AllowedPropKeys = Readonly<Array<PropKeys>>
|
|
85
|
+
|
|
86
|
+
const propTypes: PropValidators<PropKeys> = {
|
|
87
|
+
onClick: PropTypes.func,
|
|
88
|
+
elementRef: PropTypes.func,
|
|
89
|
+
children: ChildrenPropTypes.oneOf([Breadcrumb])
|
|
90
|
+
}
|
|
91
|
+
|
|
80
92
|
const allowedProps: AllowedPropKeys = ['children', 'onClick', 'elementRef']
|
|
81
93
|
|
|
82
94
|
export type {
|
|
@@ -87,4 +99,4 @@ export type {
|
|
|
87
99
|
BreadcrumbChild
|
|
88
100
|
}
|
|
89
101
|
|
|
90
|
-
export { allowedProps }
|
|
102
|
+
export { propTypes, allowedProps }
|