@atlaskit/side-navigation 1.1.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 +517 -0
- package/LICENSE +13 -0
- package/README.md +16 -0
- package/build/tsconfig.json +17 -0
- package/codemods/0.8.0-change-css-fn-prop.ts +184 -0
- package/codemods/__tests__/0.8.0-change-css-fn-prop.ts +360 -0
- package/codemods/helpers/generic.ts +674 -0
- package/dist/cjs/common/constants.js +10 -0
- package/dist/cjs/common/styles.js +104 -0
- package/dist/cjs/components/Footer/index.js +67 -0
- package/dist/cjs/components/Header/index.js +73 -0
- package/dist/cjs/components/Item/button-item.js +47 -0
- package/dist/cjs/components/Item/custom-item.js +52 -0
- package/dist/cjs/components/Item/go-back-item.js +65 -0
- package/dist/cjs/components/Item/index.js +47 -0
- package/dist/cjs/components/Item/link-item.js +47 -0
- package/dist/cjs/components/Item/skeleton-item.js +43 -0
- package/dist/cjs/components/LoadingItems/index.js +51 -0
- package/dist/cjs/components/NavigationContent/index.js +52 -0
- package/dist/cjs/components/NavigationContent/styles.js +152 -0
- package/dist/cjs/components/NavigationFooter/index.js +27 -0
- package/dist/cjs/components/NavigationHeader/index.js +27 -0
- package/dist/cjs/components/NestableNavigationContent/context.js +51 -0
- package/dist/cjs/components/NestableNavigationContent/index.js +182 -0
- package/dist/cjs/components/NestableNavigationContent/nesting-motion.js +40 -0
- package/dist/cjs/components/NestingItem/hack-for-ert.js +8 -0
- package/dist/cjs/components/NestingItem/index.js +173 -0
- package/dist/cjs/components/NestingItem/styles.js +47 -0
- package/dist/cjs/components/Section/heading-item.js +35 -0
- package/dist/cjs/components/Section/index.js +31 -0
- package/dist/cjs/components/Section/section.js +45 -0
- package/dist/cjs/components/Section/skeleton-heading-item.js +39 -0
- package/dist/cjs/components/SideNavigation/index.js +41 -0
- package/dist/cjs/components/index.js +131 -0
- package/dist/cjs/index.js +131 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/common/constants.js +2 -0
- package/dist/es2019/common/styles.js +78 -0
- package/dist/es2019/components/Footer/index.js +52 -0
- package/dist/es2019/components/Header/index.js +46 -0
- package/dist/es2019/components/Item/button-item.js +25 -0
- package/dist/es2019/components/Item/custom-item.js +31 -0
- package/dist/es2019/components/Item/go-back-item.js +34 -0
- package/dist/es2019/components/Item/index.js +5 -0
- package/dist/es2019/components/Item/link-item.js +25 -0
- package/dist/es2019/components/Item/skeleton-item.js +28 -0
- package/dist/es2019/components/LoadingItems/index.js +38 -0
- package/dist/es2019/components/NavigationContent/index.js +38 -0
- package/dist/es2019/components/NavigationContent/styles.js +120 -0
- package/dist/es2019/components/NavigationFooter/index.js +18 -0
- package/dist/es2019/components/NavigationHeader/index.js +20 -0
- package/dist/es2019/components/NestableNavigationContent/context.js +41 -0
- package/dist/es2019/components/NestableNavigationContent/index.js +148 -0
- package/dist/es2019/components/NestableNavigationContent/nesting-motion.js +21 -0
- package/dist/es2019/components/NestingItem/hack-for-ert.js +1 -0
- package/dist/es2019/components/NestingItem/index.js +128 -0
- package/dist/es2019/components/NestingItem/styles.js +39 -0
- package/dist/es2019/components/Section/heading-item.js +22 -0
- package/dist/es2019/components/Section/index.js +3 -0
- package/dist/es2019/components/Section/section.js +25 -0
- package/dist/es2019/components/Section/skeleton-heading-item.js +24 -0
- package/dist/es2019/components/SideNavigation/index.js +30 -0
- package/dist/es2019/components/index.js +11 -0
- package/dist/es2019/index.js +3 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/common/constants.js +2 -0
- package/dist/esm/common/styles.js +82 -0
- package/dist/esm/components/Footer/index.js +51 -0
- package/dist/esm/components/Header/index.js +50 -0
- package/dist/esm/components/Item/button-item.js +25 -0
- package/dist/esm/components/Item/custom-item.js +31 -0
- package/dist/esm/components/Item/go-back-item.js +41 -0
- package/dist/esm/components/Item/index.js +5 -0
- package/dist/esm/components/Item/link-item.js +25 -0
- package/dist/esm/components/Item/skeleton-item.js +29 -0
- package/dist/esm/components/LoadingItems/index.js +39 -0
- package/dist/esm/components/NavigationContent/index.js +37 -0
- package/dist/esm/components/NavigationContent/styles.js +130 -0
- package/dist/esm/components/NavigationFooter/index.js +17 -0
- package/dist/esm/components/NavigationHeader/index.js +18 -0
- package/dist/esm/components/NestableNavigationContent/context.js +36 -0
- package/dist/esm/components/NestableNavigationContent/index.js +163 -0
- package/dist/esm/components/NestableNavigationContent/nesting-motion.js +28 -0
- package/dist/esm/components/NestingItem/hack-for-ert.js +1 -0
- package/dist/esm/components/NestingItem/index.js +144 -0
- package/dist/esm/components/NestingItem/styles.js +34 -0
- package/dist/esm/components/Section/heading-item.js +21 -0
- package/dist/esm/components/Section/index.js +3 -0
- package/dist/esm/components/Section/section.js +24 -0
- package/dist/esm/components/Section/skeleton-heading-item.js +25 -0
- package/dist/esm/components/SideNavigation/index.js +28 -0
- package/dist/esm/components/index.js +11 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/common/constants.d.ts +2 -0
- package/dist/types/common/styles.d.ts +10 -0
- package/dist/types/components/Footer/index.d.ts +4 -0
- package/dist/types/components/Header/index.d.ts +43 -0
- package/dist/types/components/Item/button-item.d.ts +5 -0
- package/dist/types/components/Item/custom-item.d.ts +13 -0
- package/dist/types/components/Item/go-back-item.d.ts +5 -0
- package/dist/types/components/Item/index.d.ts +10 -0
- package/dist/types/components/Item/link-item.d.ts +5 -0
- package/dist/types/components/Item/skeleton-item.d.ts +4 -0
- package/dist/types/components/LoadingItems/index.d.ts +30 -0
- package/dist/types/components/NavigationContent/index.d.ts +17 -0
- package/dist/types/components/NavigationContent/styles.d.ts +91 -0
- package/dist/types/components/NavigationFooter/index.d.ts +7 -0
- package/dist/types/components/NavigationHeader/index.d.ts +5 -0
- package/dist/types/components/NestableNavigationContent/context.d.ts +20 -0
- package/dist/types/components/NestableNavigationContent/index.d.ts +58 -0
- package/dist/types/components/NestableNavigationContent/nesting-motion.d.ts +18 -0
- package/dist/types/components/NestingItem/hack-for-ert.d.ts +2 -0
- package/dist/types/components/NestingItem/index.d.ts +91 -0
- package/dist/types/components/NestingItem/styles.d.ts +28 -0
- package/dist/types/components/Section/heading-item.d.ts +4 -0
- package/dist/types/components/Section/index.d.ts +6 -0
- package/dist/types/components/Section/section.d.ts +25 -0
- package/dist/types/components/Section/skeleton-heading-item.d.ts +4 -0
- package/dist/types/components/SideNavigation/index.d.ts +23 -0
- package/dist/types/components/index.d.ts +22 -0
- package/dist/types/index.d.ts +4 -0
- package/docs/00-intro.tsx +70 -0
- package/docs/01-side-navigation.tsx +33 -0
- package/docs/02-navigation-header.tsx +39 -0
- package/docs/03-navigation-content.tsx +40 -0
- package/docs/04-nestable-navigation-content.tsx +95 -0
- package/docs/05-navigation-footer.tsx +38 -0
- package/docs/99-loading-states.tsx +95 -0
- package/docs/button-item.tsx +38 -0
- package/docs/custom-item.tsx +45 -0
- package/docs/go-back-item.tsx +31 -0
- package/docs/heading-item.tsx +30 -0
- package/docs/link-item.tsx +39 -0
- package/docs/nesting-item.tsx +52 -0
- package/docs/section.tsx +40 -0
- package/docs/skeleton-heading-item.tsx +30 -0
- package/docs/skeleton-item.tsx +30 -0
- package/package.json +71 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _menu = require("@atlaskit/menu");
|
|
19
|
+
|
|
20
|
+
var _styles = require("../../common/styles");
|
|
21
|
+
|
|
22
|
+
var _context = require("../NestableNavigationContent/context");
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
var LinkItem = /*#__PURE__*/(0, _react.forwardRef)( // Type needed on props to extract types with extract react types.
|
|
29
|
+
function (_ref, ref) {
|
|
30
|
+
var cssFn = _ref.cssFn,
|
|
31
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, ["cssFn"]);
|
|
32
|
+
|
|
33
|
+
var _useShouldNestedEleme = (0, _context.useShouldNestedElementRender)(),
|
|
34
|
+
shouldRender = _useShouldNestedEleme.shouldRender;
|
|
35
|
+
|
|
36
|
+
if (!shouldRender) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
var cssOverride = (0, _styles.overrideStyleFunction)(_styles.baseSideNavItemStyle, cssFn);
|
|
41
|
+
return /*#__PURE__*/_react.default.createElement(_menu.LinkItem, (0, _extends2.default)({
|
|
42
|
+
ref: ref,
|
|
43
|
+
cssFn: cssOverride
|
|
44
|
+
}, rest));
|
|
45
|
+
});
|
|
46
|
+
var _default = LinkItem;
|
|
47
|
+
exports.default = _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _menu = require("@atlaskit/menu");
|
|
15
|
+
|
|
16
|
+
var _styles = require("../../common/styles");
|
|
17
|
+
|
|
18
|
+
var _context = require("../NestableNavigationContent/context");
|
|
19
|
+
|
|
20
|
+
var SkeletonItem = function SkeletonItem(props) {
|
|
21
|
+
var _useShouldNestedEleme = (0, _context.useShouldNestedElementRender)(),
|
|
22
|
+
shouldRender = _useShouldNestedEleme.shouldRender;
|
|
23
|
+
|
|
24
|
+
if (!shouldRender) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return /*#__PURE__*/_react.default.createElement(_menu.SkeletonItem, (0, _extends2.default)({
|
|
29
|
+
cssFn: function cssFn() {
|
|
30
|
+
return {
|
|
31
|
+
paddingLeft: _styles.ITEM_SIDE_PADDING,
|
|
32
|
+
paddingRight: _styles.ITEM_SIDE_PADDING,
|
|
33
|
+
'&&::before': {
|
|
34
|
+
// This doubles up & to get a higher specificity as well as to not overwite the base styles.
|
|
35
|
+
marginRight: 18
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}, props));
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var _default = SkeletonItem;
|
|
43
|
+
exports.default = _default;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _core = require("@emotion/core");
|
|
13
|
+
|
|
14
|
+
var _motion = require("@atlaskit/motion");
|
|
15
|
+
|
|
16
|
+
var _context = require("../NestableNavigationContent/context");
|
|
17
|
+
|
|
18
|
+
/** @jsx jsx */
|
|
19
|
+
var LoadingItems = function LoadingItems(_ref) {
|
|
20
|
+
var children = _ref.children,
|
|
21
|
+
isLoading = _ref.isLoading,
|
|
22
|
+
fallback = _ref.fallback,
|
|
23
|
+
testId = _ref.testId;
|
|
24
|
+
|
|
25
|
+
var _useShouldNestedEleme = (0, _context.useShouldNestedElementRender)(),
|
|
26
|
+
shouldRender = _useShouldNestedEleme.shouldRender;
|
|
27
|
+
|
|
28
|
+
if (!shouldRender) {
|
|
29
|
+
return children;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return (0, _core.jsx)(_motion.ExitingPersistence, null, (0, _core.jsx)(_motion.FadeIn, {
|
|
33
|
+
key: "loading-section-".concat(isLoading),
|
|
34
|
+
duration: _motion.mediumDurationMs
|
|
35
|
+
}, function (motion, state) {
|
|
36
|
+
return (0, _core.jsx)("span", (0, _extends2.default)({}, motion, {
|
|
37
|
+
"data-testid": testId && "".concat(testId, "--").concat(state),
|
|
38
|
+
css: {
|
|
39
|
+
// Used to have the exiting section appear above the entering one.
|
|
40
|
+
position: state === 'entering' ? undefined : 'absolute',
|
|
41
|
+
zIndex: state === 'entering' ? 2 : 1,
|
|
42
|
+
top: 0,
|
|
43
|
+
left: 0,
|
|
44
|
+
right: 0
|
|
45
|
+
}
|
|
46
|
+
}), isLoading ? fallback : children);
|
|
47
|
+
}));
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
var _default = LoadingItems;
|
|
51
|
+
exports.default = _default;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _core = require("@emotion/core");
|
|
13
|
+
|
|
14
|
+
var _useScrollbarWidth = _interopRequireDefault(require("@atlaskit/ds-lib/use-scrollbar-width"));
|
|
15
|
+
|
|
16
|
+
var _context = require("../NestableNavigationContent/context");
|
|
17
|
+
|
|
18
|
+
var _styles = require("./styles");
|
|
19
|
+
|
|
20
|
+
/** @jsx jsx */
|
|
21
|
+
var NavigationContent = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
22
|
+
var showTopScrollIndicator = props.showTopScrollIndicator,
|
|
23
|
+
children = props.children;
|
|
24
|
+
|
|
25
|
+
var _useShouldNestedEleme = (0, _context.useShouldNestedElementRender)(),
|
|
26
|
+
shouldRender = _useShouldNestedEleme.shouldRender;
|
|
27
|
+
|
|
28
|
+
var scrollbar = (0, _useScrollbarWidth.default)();
|
|
29
|
+
|
|
30
|
+
if (!shouldRender) {
|
|
31
|
+
return children;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return (0, _core.jsx)("div", {
|
|
35
|
+
ref: ref,
|
|
36
|
+
css: (0, _styles.outerContainerCSS)({
|
|
37
|
+
showTopScrollIndicator: showTopScrollIndicator,
|
|
38
|
+
scrollbarWidth: scrollbar.width
|
|
39
|
+
})
|
|
40
|
+
}, (0, _core.jsx)("div", {
|
|
41
|
+
ref: scrollbar.ref,
|
|
42
|
+
css: (0, _styles.innerContainerCSS)({
|
|
43
|
+
showTopScrollIndicator: showTopScrollIndicator
|
|
44
|
+
})
|
|
45
|
+
}, (0, _core.jsx)("div", {
|
|
46
|
+
css: (0, _styles.containerCSS)({
|
|
47
|
+
showTopScrollIndicator: showTopScrollIndicator
|
|
48
|
+
})
|
|
49
|
+
}, children)));
|
|
50
|
+
});
|
|
51
|
+
var _default = NavigationContent;
|
|
52
|
+
exports.default = _default;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.containerCSS = exports.innerContainerCSS = exports.outerContainerCSS = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
13
|
+
|
|
14
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
15
|
+
|
|
16
|
+
var _typography = require("@atlaskit/theme/typography");
|
|
17
|
+
|
|
18
|
+
var _tokens = require("@atlaskit/tokens");
|
|
19
|
+
|
|
20
|
+
var _constants2 = require("../../common/constants");
|
|
21
|
+
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
+
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
25
|
+
|
|
26
|
+
var scrollIndicatorMaskZIndex = 2;
|
|
27
|
+
var scrollIndicatorZIndex = 1;
|
|
28
|
+
var scrollIndicatorHeight = 2;
|
|
29
|
+
var scrollIndicatorBorderRadius = 1;
|
|
30
|
+
var containerPadding = (0, _constants.gridSize)();
|
|
31
|
+
var itemHeadingTopMargin = containerPadding * 2.5;
|
|
32
|
+
var itemHeadingBottomMargin = containerPadding * 0.75; // Skeleton content is slightly shorter than the real content.
|
|
33
|
+
// Because of that we slightly increase the top margin to offset this so the
|
|
34
|
+
// containing size both real and skeleton always equal approx 30px.
|
|
35
|
+
|
|
36
|
+
var itemHeadingContentHeight = _typography.headingSizes.h100.lineHeight;
|
|
37
|
+
var skeletonHeadingHeight = containerPadding;
|
|
38
|
+
var skeletonHeadingMarginOffset = 3;
|
|
39
|
+
var skeletonHeadingTopMargin = itemHeadingTopMargin + (itemHeadingContentHeight - skeletonHeadingHeight) - skeletonHeadingMarginOffset; // We want to move the entire body up by 3px without affecting the height of the skeleton container.
|
|
40
|
+
|
|
41
|
+
var skeletonHeadingBottomMargin = itemHeadingBottomMargin + skeletonHeadingMarginOffset;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* This outer container css contains the "real" scroll indicators which are
|
|
45
|
+
* always rendered to the screen.
|
|
46
|
+
* They are "conditionally" shown from the users perspective using the inner container CSS
|
|
47
|
+
* which has other pseudo elements which "mask" the "real" scroll indicators.
|
|
48
|
+
*/
|
|
49
|
+
var outerContainerCSS = function outerContainerCSS(opts) {
|
|
50
|
+
return {
|
|
51
|
+
// Flex is needed to ensure the overflow indicators are positioned correctly.
|
|
52
|
+
display: 'flex',
|
|
53
|
+
height: '100%',
|
|
54
|
+
overflow: 'hidden',
|
|
55
|
+
position: 'relative',
|
|
56
|
+
'&::before': {
|
|
57
|
+
content: "''",
|
|
58
|
+
display: 'block',
|
|
59
|
+
left: containerPadding,
|
|
60
|
+
right: containerPadding + opts.scrollbarWidth,
|
|
61
|
+
height: scrollIndicatorHeight,
|
|
62
|
+
borderRadius: scrollIndicatorBorderRadius,
|
|
63
|
+
backgroundColor: "var(".concat(_constants2.VAR_SEPARATOR_COLOR, ", ").concat((0, _tokens.token)('color.border.neutral', _colors.N30), ")"),
|
|
64
|
+
position: 'absolute',
|
|
65
|
+
zIndex: scrollIndicatorZIndex
|
|
66
|
+
},
|
|
67
|
+
'&::after': {
|
|
68
|
+
content: "''",
|
|
69
|
+
position: 'absolute',
|
|
70
|
+
display: 'block',
|
|
71
|
+
borderRadius: scrollIndicatorBorderRadius,
|
|
72
|
+
flexShrink: 0,
|
|
73
|
+
height: scrollIndicatorHeight,
|
|
74
|
+
left: containerPadding,
|
|
75
|
+
right: containerPadding + opts.scrollbarWidth,
|
|
76
|
+
bottom: 0,
|
|
77
|
+
zIndex: scrollIndicatorZIndex,
|
|
78
|
+
backgroundColor: "var(".concat(_constants2.VAR_SEPARATOR_COLOR, ", ").concat((0, _tokens.token)('color.border.neutral', _colors.N30), ")")
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* This inner container css contains the "mask" logic for the scroll indicators.
|
|
84
|
+
* Essentially they cover (mask) the "real" scroll indicators when the user is scrolled
|
|
85
|
+
* to the top or bottom of the container.
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
exports.outerContainerCSS = outerContainerCSS;
|
|
90
|
+
|
|
91
|
+
var innerContainerCSS = function innerContainerCSS(opts) {
|
|
92
|
+
return _objectSpread(_objectSpread({
|
|
93
|
+
display: 'flex',
|
|
94
|
+
overflow: 'auto',
|
|
95
|
+
width: '100%',
|
|
96
|
+
position: 'relative',
|
|
97
|
+
boxSizing: 'border-box',
|
|
98
|
+
flexDirection: 'column'
|
|
99
|
+
}, !opts.showTopScrollIndicator && {
|
|
100
|
+
'&::before': {
|
|
101
|
+
borderRadius: scrollIndicatorBorderRadius,
|
|
102
|
+
content: "''",
|
|
103
|
+
left: 0,
|
|
104
|
+
right: 0,
|
|
105
|
+
height: scrollIndicatorHeight,
|
|
106
|
+
backgroundColor: "var(".concat(_constants2.VAR_SCROLL_INDICATOR_COLOR, ", ").concat((0, _tokens.token)('color.background.default', _colors.N10), ")"),
|
|
107
|
+
position: 'absolute',
|
|
108
|
+
display: 'block',
|
|
109
|
+
zIndex: scrollIndicatorMaskZIndex
|
|
110
|
+
}
|
|
111
|
+
}), {}, {
|
|
112
|
+
// This after pseudo element abuses being a flex child and pushes itself down to the
|
|
113
|
+
// very bottom of the container - doing so ends up "masking" the actual scroll indicator.
|
|
114
|
+
'&::after': {
|
|
115
|
+
borderRadius: scrollIndicatorBorderRadius,
|
|
116
|
+
content: "''",
|
|
117
|
+
display: 'block',
|
|
118
|
+
flexShrink: 0,
|
|
119
|
+
height: scrollIndicatorHeight,
|
|
120
|
+
// This is used to "push" the element to the bottom of the flex container.
|
|
121
|
+
marginTop: 'auto',
|
|
122
|
+
position: 'relative',
|
|
123
|
+
zIndex: scrollIndicatorMaskZIndex,
|
|
124
|
+
backgroundColor: "var(".concat(_constants2.VAR_SCROLL_INDICATOR_COLOR, ", ").concat((0, _tokens.token)('color.background.default', _colors.N10), ")")
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
exports.innerContainerCSS = innerContainerCSS;
|
|
130
|
+
|
|
131
|
+
var containerCSS = function containerCSS(opts) {
|
|
132
|
+
return {
|
|
133
|
+
// When the scroll indicator is always shown we need to add some padding
|
|
134
|
+
// so the spacing between matches what it would be if the indicator was a "block" element.
|
|
135
|
+
// We use margin here so any child absolutely positioned elements are positioned correctly.
|
|
136
|
+
marginTop: opts.showTopScrollIndicator ? scrollIndicatorHeight : 0,
|
|
137
|
+
marginLeft: containerPadding,
|
|
138
|
+
marginRight: containerPadding,
|
|
139
|
+
// Enables child absolutely positioned elements to be positioned relative to this element.
|
|
140
|
+
position: 'relative',
|
|
141
|
+
'& [data-ds--menu--heading-item]': {
|
|
142
|
+
marginTop: itemHeadingTopMargin,
|
|
143
|
+
marginBottom: itemHeadingBottomMargin
|
|
144
|
+
},
|
|
145
|
+
'& [data-ds--menu--skeleton-heading-item]': {
|
|
146
|
+
marginTop: skeletonHeadingTopMargin,
|
|
147
|
+
marginBottom: skeletonHeadingBottomMargin
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
exports.containerCSS = containerCSS;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _core = require("@emotion/core");
|
|
9
|
+
|
|
10
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
11
|
+
|
|
12
|
+
/** @jsx jsx */
|
|
13
|
+
var footerCSS = {
|
|
14
|
+
position: 'relative',
|
|
15
|
+
padding: (0, _constants.gridSize)(),
|
|
16
|
+
paddingBottom: (0, _constants.gridSize)() * 1.75
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
var NavigationFooter = function NavigationFooter(_ref) {
|
|
20
|
+
var children = _ref.children;
|
|
21
|
+
return (0, _core.jsx)("div", {
|
|
22
|
+
css: footerCSS
|
|
23
|
+
}, children);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var _default = NavigationFooter;
|
|
27
|
+
exports.default = _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _core = require("@emotion/core");
|
|
9
|
+
|
|
10
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
11
|
+
|
|
12
|
+
/** @jsx jsx */
|
|
13
|
+
var NavigationHeader = function NavigationHeader(props) {
|
|
14
|
+
var children = props.children;
|
|
15
|
+
return (0, _core.jsx)("div", {
|
|
16
|
+
"data-navheader": true,
|
|
17
|
+
css: {
|
|
18
|
+
paddingTop: (0, _constants.gridSize)() * 3,
|
|
19
|
+
paddingBottom: (0, _constants.gridSize)(),
|
|
20
|
+
paddingLeft: (0, _constants.gridSize)(),
|
|
21
|
+
paddingRight: (0, _constants.gridSize)()
|
|
22
|
+
}
|
|
23
|
+
}, children);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var _default = NavigationHeader;
|
|
27
|
+
exports.default = _default;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useShouldNestedElementRender = exports.useNestedContext = exports.NestedContext = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var NestedContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
11
|
+
exports.NestedContext = NestedContext;
|
|
12
|
+
|
|
13
|
+
var useNestedContext = function useNestedContext() {
|
|
14
|
+
var context = (0, _react.useContext)(NestedContext);
|
|
15
|
+
|
|
16
|
+
if (!context) {
|
|
17
|
+
var error = '';
|
|
18
|
+
|
|
19
|
+
if (process.env.NODE_ENV === 'development') {
|
|
20
|
+
error = "\nTo use a <NestingItem /> it needs to be a descendant of <NestableNavigationContent>.\nYou probably need to replace your <NavigationContent> with <NestableNavigationContent>.\n\nimport { NestableNavigationContent } from '@atlaskit/side-navigation';\n ";
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
throw new Error(error);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return context;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Used by children of the NestableNavigationContent component to see if they should render or not.
|
|
30
|
+
* If `shouldRender` returns `true` - return your nodes.
|
|
31
|
+
* If it returns `false` - either return `null` or `children` if you have children.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
exports.useNestedContext = useNestedContext;
|
|
36
|
+
|
|
37
|
+
var useShouldNestedElementRender = function useShouldNestedElementRender() {
|
|
38
|
+
var context = (0, _react.useContext)(NestedContext);
|
|
39
|
+
|
|
40
|
+
if (!context) {
|
|
41
|
+
return {
|
|
42
|
+
shouldRender: true
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return {
|
|
47
|
+
shouldRender: context.currentStackId === context.parentId
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports.useShouldNestedElementRender = useShouldNestedElementRender;
|