@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.
Files changed (140) hide show
  1. package/CHANGELOG.md +517 -0
  2. package/LICENSE +13 -0
  3. package/README.md +16 -0
  4. package/build/tsconfig.json +17 -0
  5. package/codemods/0.8.0-change-css-fn-prop.ts +184 -0
  6. package/codemods/__tests__/0.8.0-change-css-fn-prop.ts +360 -0
  7. package/codemods/helpers/generic.ts +674 -0
  8. package/dist/cjs/common/constants.js +10 -0
  9. package/dist/cjs/common/styles.js +104 -0
  10. package/dist/cjs/components/Footer/index.js +67 -0
  11. package/dist/cjs/components/Header/index.js +73 -0
  12. package/dist/cjs/components/Item/button-item.js +47 -0
  13. package/dist/cjs/components/Item/custom-item.js +52 -0
  14. package/dist/cjs/components/Item/go-back-item.js +65 -0
  15. package/dist/cjs/components/Item/index.js +47 -0
  16. package/dist/cjs/components/Item/link-item.js +47 -0
  17. package/dist/cjs/components/Item/skeleton-item.js +43 -0
  18. package/dist/cjs/components/LoadingItems/index.js +51 -0
  19. package/dist/cjs/components/NavigationContent/index.js +52 -0
  20. package/dist/cjs/components/NavigationContent/styles.js +152 -0
  21. package/dist/cjs/components/NavigationFooter/index.js +27 -0
  22. package/dist/cjs/components/NavigationHeader/index.js +27 -0
  23. package/dist/cjs/components/NestableNavigationContent/context.js +51 -0
  24. package/dist/cjs/components/NestableNavigationContent/index.js +182 -0
  25. package/dist/cjs/components/NestableNavigationContent/nesting-motion.js +40 -0
  26. package/dist/cjs/components/NestingItem/hack-for-ert.js +8 -0
  27. package/dist/cjs/components/NestingItem/index.js +173 -0
  28. package/dist/cjs/components/NestingItem/styles.js +47 -0
  29. package/dist/cjs/components/Section/heading-item.js +35 -0
  30. package/dist/cjs/components/Section/index.js +31 -0
  31. package/dist/cjs/components/Section/section.js +45 -0
  32. package/dist/cjs/components/Section/skeleton-heading-item.js +39 -0
  33. package/dist/cjs/components/SideNavigation/index.js +41 -0
  34. package/dist/cjs/components/index.js +131 -0
  35. package/dist/cjs/index.js +131 -0
  36. package/dist/cjs/version.json +5 -0
  37. package/dist/es2019/common/constants.js +2 -0
  38. package/dist/es2019/common/styles.js +78 -0
  39. package/dist/es2019/components/Footer/index.js +52 -0
  40. package/dist/es2019/components/Header/index.js +46 -0
  41. package/dist/es2019/components/Item/button-item.js +25 -0
  42. package/dist/es2019/components/Item/custom-item.js +31 -0
  43. package/dist/es2019/components/Item/go-back-item.js +34 -0
  44. package/dist/es2019/components/Item/index.js +5 -0
  45. package/dist/es2019/components/Item/link-item.js +25 -0
  46. package/dist/es2019/components/Item/skeleton-item.js +28 -0
  47. package/dist/es2019/components/LoadingItems/index.js +38 -0
  48. package/dist/es2019/components/NavigationContent/index.js +38 -0
  49. package/dist/es2019/components/NavigationContent/styles.js +120 -0
  50. package/dist/es2019/components/NavigationFooter/index.js +18 -0
  51. package/dist/es2019/components/NavigationHeader/index.js +20 -0
  52. package/dist/es2019/components/NestableNavigationContent/context.js +41 -0
  53. package/dist/es2019/components/NestableNavigationContent/index.js +148 -0
  54. package/dist/es2019/components/NestableNavigationContent/nesting-motion.js +21 -0
  55. package/dist/es2019/components/NestingItem/hack-for-ert.js +1 -0
  56. package/dist/es2019/components/NestingItem/index.js +128 -0
  57. package/dist/es2019/components/NestingItem/styles.js +39 -0
  58. package/dist/es2019/components/Section/heading-item.js +22 -0
  59. package/dist/es2019/components/Section/index.js +3 -0
  60. package/dist/es2019/components/Section/section.js +25 -0
  61. package/dist/es2019/components/Section/skeleton-heading-item.js +24 -0
  62. package/dist/es2019/components/SideNavigation/index.js +30 -0
  63. package/dist/es2019/components/index.js +11 -0
  64. package/dist/es2019/index.js +3 -0
  65. package/dist/es2019/version.json +5 -0
  66. package/dist/esm/common/constants.js +2 -0
  67. package/dist/esm/common/styles.js +82 -0
  68. package/dist/esm/components/Footer/index.js +51 -0
  69. package/dist/esm/components/Header/index.js +50 -0
  70. package/dist/esm/components/Item/button-item.js +25 -0
  71. package/dist/esm/components/Item/custom-item.js +31 -0
  72. package/dist/esm/components/Item/go-back-item.js +41 -0
  73. package/dist/esm/components/Item/index.js +5 -0
  74. package/dist/esm/components/Item/link-item.js +25 -0
  75. package/dist/esm/components/Item/skeleton-item.js +29 -0
  76. package/dist/esm/components/LoadingItems/index.js +39 -0
  77. package/dist/esm/components/NavigationContent/index.js +37 -0
  78. package/dist/esm/components/NavigationContent/styles.js +130 -0
  79. package/dist/esm/components/NavigationFooter/index.js +17 -0
  80. package/dist/esm/components/NavigationHeader/index.js +18 -0
  81. package/dist/esm/components/NestableNavigationContent/context.js +36 -0
  82. package/dist/esm/components/NestableNavigationContent/index.js +163 -0
  83. package/dist/esm/components/NestableNavigationContent/nesting-motion.js +28 -0
  84. package/dist/esm/components/NestingItem/hack-for-ert.js +1 -0
  85. package/dist/esm/components/NestingItem/index.js +144 -0
  86. package/dist/esm/components/NestingItem/styles.js +34 -0
  87. package/dist/esm/components/Section/heading-item.js +21 -0
  88. package/dist/esm/components/Section/index.js +3 -0
  89. package/dist/esm/components/Section/section.js +24 -0
  90. package/dist/esm/components/Section/skeleton-heading-item.js +25 -0
  91. package/dist/esm/components/SideNavigation/index.js +28 -0
  92. package/dist/esm/components/index.js +11 -0
  93. package/dist/esm/index.js +3 -0
  94. package/dist/esm/version.json +5 -0
  95. package/dist/types/common/constants.d.ts +2 -0
  96. package/dist/types/common/styles.d.ts +10 -0
  97. package/dist/types/components/Footer/index.d.ts +4 -0
  98. package/dist/types/components/Header/index.d.ts +43 -0
  99. package/dist/types/components/Item/button-item.d.ts +5 -0
  100. package/dist/types/components/Item/custom-item.d.ts +13 -0
  101. package/dist/types/components/Item/go-back-item.d.ts +5 -0
  102. package/dist/types/components/Item/index.d.ts +10 -0
  103. package/dist/types/components/Item/link-item.d.ts +5 -0
  104. package/dist/types/components/Item/skeleton-item.d.ts +4 -0
  105. package/dist/types/components/LoadingItems/index.d.ts +30 -0
  106. package/dist/types/components/NavigationContent/index.d.ts +17 -0
  107. package/dist/types/components/NavigationContent/styles.d.ts +91 -0
  108. package/dist/types/components/NavigationFooter/index.d.ts +7 -0
  109. package/dist/types/components/NavigationHeader/index.d.ts +5 -0
  110. package/dist/types/components/NestableNavigationContent/context.d.ts +20 -0
  111. package/dist/types/components/NestableNavigationContent/index.d.ts +58 -0
  112. package/dist/types/components/NestableNavigationContent/nesting-motion.d.ts +18 -0
  113. package/dist/types/components/NestingItem/hack-for-ert.d.ts +2 -0
  114. package/dist/types/components/NestingItem/index.d.ts +91 -0
  115. package/dist/types/components/NestingItem/styles.d.ts +28 -0
  116. package/dist/types/components/Section/heading-item.d.ts +4 -0
  117. package/dist/types/components/Section/index.d.ts +6 -0
  118. package/dist/types/components/Section/section.d.ts +25 -0
  119. package/dist/types/components/Section/skeleton-heading-item.d.ts +4 -0
  120. package/dist/types/components/SideNavigation/index.d.ts +23 -0
  121. package/dist/types/components/index.d.ts +22 -0
  122. package/dist/types/index.d.ts +4 -0
  123. package/docs/00-intro.tsx +70 -0
  124. package/docs/01-side-navigation.tsx +33 -0
  125. package/docs/02-navigation-header.tsx +39 -0
  126. package/docs/03-navigation-content.tsx +40 -0
  127. package/docs/04-nestable-navigation-content.tsx +95 -0
  128. package/docs/05-navigation-footer.tsx +38 -0
  129. package/docs/99-loading-states.tsx +95 -0
  130. package/docs/button-item.tsx +38 -0
  131. package/docs/custom-item.tsx +45 -0
  132. package/docs/go-back-item.tsx +31 -0
  133. package/docs/heading-item.tsx +30 -0
  134. package/docs/link-item.tsx +39 -0
  135. package/docs/nesting-item.tsx +52 -0
  136. package/docs/section.tsx +40 -0
  137. package/docs/skeleton-heading-item.tsx +30 -0
  138. package/docs/skeleton-item.tsx +30 -0
  139. package/package.json +71 -0
  140. 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;