@atlaskit/navigation-system 6.4.0 → 7.1.0

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 (47) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/constellation/layout/code.mdx +3 -3
  3. package/constellation/layout/examples.mdx +3 -3
  4. package/dist/cjs/entry-points/layout/side-nav.js +2 -2
  5. package/dist/cjs/index.js +2 -2
  6. package/dist/cjs/ui/page-layout/constants.js +2 -8
  7. package/dist/cjs/ui/page-layout/root.compiled.css +0 -1
  8. package/dist/cjs/ui/page-layout/root.js +1 -5
  9. package/dist/cjs/ui/page-layout/side-nav/side-nav-content.compiled.css +1 -2
  10. package/dist/cjs/ui/page-layout/side-nav/side-nav-content.js +3 -22
  11. package/dist/cjs/ui/page-layout/side-nav/side-nav-header.js +0 -17
  12. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +1 -1
  13. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -3
  14. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +3 -11
  15. package/dist/es2019/entry-points/layout/side-nav.js +1 -1
  16. package/dist/es2019/index.js +1 -1
  17. package/dist/es2019/ui/page-layout/constants.js +1 -7
  18. package/dist/es2019/ui/page-layout/root.compiled.css +0 -1
  19. package/dist/es2019/ui/page-layout/root.js +1 -5
  20. package/dist/es2019/ui/page-layout/side-nav/side-nav-content.compiled.css +1 -2
  21. package/dist/es2019/ui/page-layout/side-nav/side-nav-content.js +2 -22
  22. package/dist/es2019/ui/page-layout/side-nav/side-nav-header.js +0 -17
  23. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +1 -1
  24. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -3
  25. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +4 -12
  26. package/dist/esm/entry-points/layout/side-nav.js +1 -1
  27. package/dist/esm/index.js +1 -1
  28. package/dist/esm/ui/page-layout/constants.js +1 -7
  29. package/dist/esm/ui/page-layout/root.compiled.css +0 -1
  30. package/dist/esm/ui/page-layout/root.js +1 -5
  31. package/dist/esm/ui/page-layout/side-nav/side-nav-content.compiled.css +1 -2
  32. package/dist/esm/ui/page-layout/side-nav/side-nav-content.js +2 -21
  33. package/dist/esm/ui/page-layout/side-nav/side-nav-header.js +0 -17
  34. package/dist/esm/ui/page-layout/side-nav/side-nav.js +1 -1
  35. package/dist/esm/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -3
  36. package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +4 -12
  37. package/dist/types/entry-points/layout/side-nav.d.ts +1 -1
  38. package/dist/types/index.d.ts +1 -1
  39. package/dist/types/ui/page-layout/constants.d.ts +0 -5
  40. package/dist/types/ui/page-layout/side-nav/side-nav-content.d.ts +1 -1
  41. package/dist/types/ui/page-layout/side-nav/side-nav.d.ts +2 -2
  42. package/dist/types-ts4.5/entry-points/layout/side-nav.d.ts +1 -1
  43. package/dist/types-ts4.5/index.d.ts +1 -1
  44. package/dist/types-ts4.5/ui/page-layout/constants.d.ts +0 -5
  45. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav-content.d.ts +1 -1
  46. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav.d.ts +2 -2
  47. package/package.json +7 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @atlassian/navigation-system
2
2
 
3
+ ## 7.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`15acec25cc47f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/15acec25cc47f) -
8
+ Cleans up the `platform_dst_nav4_fhs_feedback_1` feature gate. Scroll lines are now removed, as
9
+ well as other minor visual changes.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 7.0.0
16
+
17
+ ### Major Changes
18
+
19
+ - [`f48c03e011b92`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f48c03e011b92) -
20
+ Renamed `SideNavContent` to `SideNavBody` to align with other slot component naming.
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies
25
+
3
26
  ## 6.4.0
4
27
 
5
28
  ### Minor Changes
@@ -13,7 +13,7 @@ props:
13
13
  - TopNavEnd
14
14
  - SideNav
15
15
  - SideNavHeader
16
- - SideNavContent
16
+ - SideNavBody
17
17
  - SideNavFooter
18
18
  - Main
19
19
  - MainStickyHeader
@@ -79,11 +79,11 @@ The top part of the side nav.
79
79
 
80
80
  <TSMorphProps exportName="SideNavHeader" packageName="@atlaskit/navigation-system" />
81
81
 
82
- ### SideNavContent
82
+ ### SideNavBody
83
83
 
84
84
  The main content of the side nav, filling up the middle section. It acts as a scroll container.
85
85
 
86
- <TSMorphProps exportName="SideNavContent" packageName="@atlaskit/navigation-system" />
86
+ <TSMorphProps exportName="SideNavBody" packageName="@atlaskit/navigation-system" />
87
87
 
88
88
  ### SideNavFooter
89
89
 
@@ -72,12 +72,12 @@ The `SideNav` has three layout components that you can use to position component
72
72
  nav flexbox.
73
73
 
74
74
  - `SideNavHeader`. The top part of the side nav.
75
- - `SideNavContent`. The middle part of the side nav. It acts as a scroll container. It will grow to
75
+ - `SideNavBody`. The middle part of the side nav. It acts as a scroll container. It will grow to
76
76
  take up the available space — this is used to push the footer to the bottom of the side nav.
77
77
  - `SideNavFooter`. The bottom part of the side nav.
78
78
 
79
- Note: make sure to render `SideNavContent` to ensure that the footer is positioned at the bottom of
80
- the side nav, simulating a sticky footer.
79
+ Note: make sure to render `SideNavBody` to ensure that the footer is positioned at the bottom of the
80
+ side nav, simulating a sticky footer.
81
81
 
82
82
  #### Side nav collapse/expand
83
83
 
@@ -9,10 +9,10 @@ Object.defineProperty(exports, "SideNav", {
9
9
  return _sideNav.SideNav;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "SideNavContent", {
12
+ Object.defineProperty(exports, "SideNavBody", {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _sideNavContent.SideNavContent;
15
+ return _sideNavContent.SideNavBody;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "SideNavFooter", {
package/dist/cjs/index.js CHANGED
@@ -141,10 +141,10 @@ Object.defineProperty(exports, "SideNav", {
141
141
  return _sideNav.SideNav;
142
142
  }
143
143
  });
144
- Object.defineProperty(exports, "SideNavContent", {
144
+ Object.defineProperty(exports, "SideNavBody", {
145
145
  enumerable: true,
146
146
  get: function get() {
147
- return _sideNavContent.SideNavContent;
147
+ return _sideNavContent.SideNavBody;
148
148
  }
149
149
  });
150
150
  Object.defineProperty(exports, "SideNavFooter", {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.topNavMountedVar = exports.sideNavVar = exports.sideNavPanelSplitterId = exports.sideNavLiveWidthVar = exports.sideNavContentScrollTimelineVar = exports.ribbonVar = exports.panelVar = exports.panelPanelSplitterId = exports.openLayerObserverTopNavStartNamespace = exports.openLayerObserverTopNavMiddleNamespace = exports.openLayerObserverTopNavEndNamespace = exports.openLayerObserverSideNavNamespace = exports.localSlotLayers = exports.contentInsetBlockStart = exports.contentHeightWhenFixed = exports.bannerMountedVar = exports.asideVar = exports.asidePanelSplitterId = exports.UNSAFE_topNavVar = exports.UNSAFE_sideNavLayoutVar = exports.UNSAFE_ribbonVar = exports.UNSAFE_panelLayoutVar = exports.UNSAFE_bannerVar = exports.UNSAFE_asideLayoutVar = exports.UNSAFE_MAIN_INLINE_START_FOR_LEGACY_PAGES_ONLY = exports.UNSAFE_MAIN_INLINE_END_FOR_LEGACY_PAGES_ONLY = exports.UNSAFE_MAIN_BLOCK_START_FOR_LEGACY_PAGES_ONLY = void 0;
6
+ exports.topNavMountedVar = exports.sideNavVar = exports.sideNavPanelSplitterId = exports.sideNavLiveWidthVar = exports.ribbonVar = exports.panelVar = exports.panelPanelSplitterId = exports.openLayerObserverTopNavStartNamespace = exports.openLayerObserverTopNavMiddleNamespace = exports.openLayerObserverTopNavEndNamespace = exports.openLayerObserverSideNavNamespace = exports.localSlotLayers = exports.contentInsetBlockStart = exports.contentHeightWhenFixed = exports.bannerMountedVar = exports.asideVar = exports.asidePanelSplitterId = exports.UNSAFE_topNavVar = exports.UNSAFE_sideNavLayoutVar = exports.UNSAFE_ribbonVar = exports.UNSAFE_panelLayoutVar = exports.UNSAFE_bannerVar = exports.UNSAFE_asideLayoutVar = exports.UNSAFE_MAIN_INLINE_START_FOR_LEGACY_PAGES_ONLY = exports.UNSAFE_MAIN_INLINE_END_FOR_LEGACY_PAGES_ONLY = exports.UNSAFE_MAIN_BLOCK_START_FOR_LEGACY_PAGES_ONLY = void 0;
7
7
  /**
8
8
  * These variables are shared across the different page layout slots.
9
9
  * This violates the [UI styling standard](https://atlassian.design/components/eslint-plugin-ui-styling-standard/no-imported-style-values/usage).
@@ -76,10 +76,4 @@ var openLayerObserverSideNavNamespace = exports.openLayerObserverSideNavNamespac
76
76
  // namespaces.
77
77
  var openLayerObserverTopNavStartNamespace = exports.openLayerObserverTopNavStartNamespace = 'top-nav-start';
78
78
  var openLayerObserverTopNavMiddleNamespace = exports.openLayerObserverTopNavMiddleNamespace = 'top-nav-middle';
79
- var openLayerObserverTopNavEndNamespace = exports.openLayerObserverTopNavEndNamespace = 'top-nav-end';
80
-
81
- /**
82
- * CSS scroll timeline variable for the side nav content scroll indicator.
83
- * The scroll timeline is created in SideNavContent, and then used by TopNavStart to apply the scroll indicator line.
84
- */
85
- var sideNavContentScrollTimelineVar = exports.sideNavContentScrollTimelineVar = '--sNcst';
79
+ var openLayerObserverTopNavEndNamespace = exports.openLayerObserverTopNavEndNamespace = 'top-nav-end';
@@ -1,4 +1,3 @@
1
- ._10iwgc9s{timeline-scope:--sNcst}
2
1
  ._1ciragmp >:not([data-layout-slot]){display:none!important}
3
2
  ._1e0c11p5{display:grid}
4
3
  ._1lmcq9em{grid-template-areas:"banner" "top-bar" "main" "aside"}
@@ -14,8 +14,6 @@ var _openLayerObserver = require("@atlaskit/layering/experimental/open-layer-obs
14
14
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
15
  var _skipLinksProvider = require("../../context/skip-links/skip-links-provider");
16
16
  var _topNavStartContextProvider = require("../../context/top-nav-start/top-nav-start-context-provider");
17
- var _useIsFhsEnabled = require("../fhs-rollout/use-is-fhs-enabled");
18
- var _constants = require("./constants");
19
17
  var _hoistSlotSizesContext = require("./hoist-slot-sizes-context");
20
18
  var _elementContext = require("./side-nav/element-context");
21
19
  var _isSideNavShortcutEnabledContext = require("./side-nav/is-side-nav-shortcut-enabled-context");
@@ -26,7 +24,6 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
26
24
  var gridRootId = exports.gridRootId = 'unsafe-design-system-page-layout-root';
27
25
  var styles = {
28
26
  root: "_1e0c11p5 _1tke1kxc _1lmcq9em _yv0ei47z _2z0516ab _1ciragmp _12fkuz0r _12qzrxre _1rqt70if _xkmgbaui _jbc7rxre _tyve1jg8",
29
- sideNavScrollTimeline: "_10iwgc9s",
30
27
  ribbon: "_12fk1aio _12qzrxre _1rqteala _xkmgks3h _jbc7rxre _tyve1nco"
31
28
  };
32
29
 
@@ -46,7 +43,6 @@ function Root(_ref) {
46
43
  _ref$isSideNavShortcu = _ref.isSideNavShortcutEnabled,
47
44
  isSideNavShortcutEnabled = _ref$isSideNavShortcu === void 0 ? false : _ref$isSideNavShortcu;
48
45
  var ref = (0, _react.useRef)(null);
49
- var isFhsEnabled = (0, _useIsFhsEnabled.useIsFhsEnabled)();
50
46
  (0, _react.useEffect)(function () {
51
47
  if (process.env.NODE_ENV !== 'production') {
52
48
  var IGNORED_ELEMENTS = ['SCRIPT', 'STYLE'];
@@ -71,7 +67,7 @@ function Root(_ref) {
71
67
  testId: testId
72
68
  }, /*#__PURE__*/_react.default.createElement("div", {
73
69
  ref: ref,
74
- className: (0, _runtime.ax)([styles.root, isFhsEnabled && !(0, _platformFeatureFlags.fg)('platform_dst_nav4_fhs_feedback_1') && styles.sideNavScrollTimeline, (0, _platformFeatureFlags.fg)('platform_dst_nav4_ribbon_slot') && styles.ribbon, xcss]),
70
+ className: (0, _runtime.ax)([styles.root, (0, _platformFeatureFlags.fg)('platform_dst_nav4_ribbon_slot') && styles.ribbon, xcss]),
75
71
  id: gridRootId,
76
72
  "data-testid": testId
77
73
  }, children)))))))));
@@ -6,5 +6,4 @@
6
6
  ._85i5utpp{padding-block-end:var(--ds-space-150,9pt)}
7
7
  ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
8
8
  ._i0dlf1ug{flex-basis:0%}
9
- ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
10
- @media (min-width:64rem){@supports (scroll-timeline-axis:block){._1sfqgc9s{scroll-timeline-name:--sNcst}._1q1x1ule{scroll-timeline-axis:block}html:has([data-private-side-nav-header]) ._8pm2gc9s{animation-timeline:--sNcst}html:has([data-private-side-nav-header]) ._1gd94n8p{animation-name:k1gwhnxc}}@supports (scroll-timeline-axis:block){@keyframes k1gwhnxc{0%{box-shadow:none}0.1%{box-shadow:0 -1px var(--ds-border,#0b120e24)}to{box-shadow:0 -1px var(--ds-border,#0b120e24)}}}}
9
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
@@ -6,15 +6,12 @@ var _typeof = require("@babel/runtime/helpers/typeof");
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.SideNavContent = void 0;
9
+ exports.SideNavBody = void 0;
10
10
  require("./side-nav-content.compiled.css");
11
11
  var _runtime = require("@compiled/react/runtime");
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _mergeRefs = _interopRequireDefault(require("@atlaskit/ds-lib/merge-refs"));
14
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
14
  var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
16
- var _constants = require("../constants");
17
- var _useSideNavVisibility2 = require("./use-side-nav-visibility");
18
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
16
  /**
20
17
  * The main content of the side nav, filling up the middle section. It acts as a scroll container.
@@ -22,27 +19,13 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
22
19
  * It will grow to take up the available space in the side nav — this is used to push the footer to the
23
20
  * bottom of the side nav.
24
21
  */
25
- var SideNavContent = exports.SideNavContent = /*#__PURE__*/(0, _react.forwardRef)(_SideNavContent);
22
+ var SideNavBody = exports.SideNavBody = /*#__PURE__*/(0, _react.forwardRef)(_SideNavContent);
26
23
 
27
24
  // Placing this const below the function breaks Compiled!
28
25
  var styles = {
29
26
  scrollContainer: "_16jlkb7n _1o9zkb7n _i0dlf1ug _1reo1wug _18m91wug",
30
27
  paddingContainer: "_1q51utpp _y4tiutpp _85i5utpp _bozgutpp"
31
28
  };
32
-
33
- /**
34
- * Using CSS scroll-driven animations to apply a scrolled indicator border.
35
- *
36
- * This approach is better for SSR, as some apps like Confluence will apply the
37
- * initial scroll position of the side nav content using JS before hydration.
38
- *
39
- * If we applied the border through React state it would only appear after hydration,
40
- * whereas this CSS approach should show even before hydration.
41
- */
42
- var scrolledBorder = null;
43
- var fullHeightSidebarStyles = {
44
- scrollContainer: "_1sfqgc9s _1q1x1ule _8pm2gc9s _1gd94n8p"
45
- };
46
29
  function _SideNavContent(_ref, forwardedRef) {
47
30
  var children = _ref.children,
48
31
  testId = _ref.testId;
@@ -51,12 +34,10 @@ function _SideNavContent(_ref, forwardedRef) {
51
34
  var mergedRef = (0, _react.useMemo)(function () {
52
35
  return (0, _mergeRefs.default)([internalRef, forwardedRef]);
53
36
  }, [forwardedRef]);
54
- var _useSideNavVisibility = (0, _useSideNavVisibility2.useSideNavVisibility)(),
55
- isExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop;
56
37
  return /*#__PURE__*/_react.default.createElement("div", {
57
38
  ref: isFhsEnabled ? mergedRef : forwardedRef,
58
39
  "data-testid": testId,
59
- className: (0, _runtime.ax)([styles.scrollContainer, isFhsEnabled && isExpandedOnDesktop && !(0, _platformFeatureFlags.fg)('platform_dst_nav4_fhs_feedback_1') && fullHeightSidebarStyles.scrollContainer])
40
+ className: (0, _runtime.ax)([styles.scrollContainer])
60
41
  }, /*#__PURE__*/_react.default.createElement("div", {
61
42
  className: (0, _runtime.ax)([styles.paddingContainer])
62
43
  }, children));
@@ -9,7 +9,6 @@ exports.SideNavHeader = void 0;
9
9
  require("./side-nav-header.compiled.css");
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _runtime = require("@compiled/react/runtime");
12
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
12
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
13
  var styles = {
15
14
  root: "_18zrutpp _1q51utpp _85i51b66"
@@ -21,22 +20,6 @@ var styles = {
21
20
  var SideNavHeader = exports.SideNavHeader = function SideNavHeader(_ref) {
22
21
  var children = _ref.children;
23
22
  return /*#__PURE__*/React.createElement("div", {
24
- /**
25
- * This attribute is used to identify whether the SideNavHeader is mounted, to determine where the
26
- * SideNavContent's scroll indicator line should be applied. This is for layering reasons -
27
- * if the scroll indicator line intersects with the top nav, it could incorrectly be hidden beneath
28
- * the top nav (depending on if a layer is open, which raises the top nav'z z-index).
29
- *
30
- * We are using a data attribute and CSS for this logic to ensure it is SSR safe.
31
- *
32
- * - If SideNavHeader exists, the scroll indicator line is applied to the SideNavContent. This is safe
33
- * because the SideNavHeader is between the SideNavContent and TopNavStart, so the scroll indicator line
34
- * will not intersect with the top nav.
35
- *
36
- * - If SideNavHeader does not exist, the scroll indicator line is applied to TopNavStart. This ensures
37
- * the scroll indicator line is visible even when the top nav has a z-index higher than the side nav.
38
- */
39
- "data-private-side-nav-header": (0, _platformFeatureFlags.fg)('platform_dst_nav4_fhs_feedback_1') ? undefined : 'true',
40
23
  className: (0, _runtime.ax)([styles.root])
41
24
  }, children);
42
25
  };
@@ -788,7 +788,7 @@ function SideNavInternal(_ref) {
788
788
  /**
789
789
  * The side navigation layout area. It will show on the left (inline start) of the screen.
790
790
  *
791
- * Use the side nav area components (`SideNavHeader`, `SideNavContent`, `SideNavFooter`) to position
791
+ * Use the side nav area components (`SideNavHeader`, `SideNavBody`, `SideNavFooter`) to position
792
792
  * content within areas of the side nav.
793
793
  *
794
794
  * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
@@ -12,6 +12,5 @@
12
12
  ._vchhusvi{box-sizing:border-box}
13
13
  [dir=rtl] ._65m41mrw{--animation-direction:-1}
14
14
  @media (prefers-reduced-motion:no-preference){._10t81e03{transition-property:transform}._10t81rjc{transition-property:transform,opacity}._1xq51ytf{transition-timing-function:ease-in-out}._1xq55ucs{transition-timing-function:ease}._mjvc1efy{transform:translateX(calc(100%*var(--animation-direction)))}._bgpzidpf{opacity:0}._mjvc1p9u{transform:translateX(calc(-100%*var(--animation-direction)))}._mjvco0k7{transform:translateX(calc((-2rem + var(--ds-space-050, 4px)*-1)*var(--animation-direction)))}._mjvcyrjp{transform:translateX(calc((2rem + var(--ds-space-050, 4px))*var(--animation-direction)))}._mjvcz12g{transform:translateX(0)}._xrrpfnf5{transition-duration:.2s}._bgpzkb7n{opacity:1}}
15
- @media (min-width:64rem){._13wnh2mm{position:relative}._1l3vb3bt:after{content:""}._juxdstnw:after{position:absolute}._1vinidpf:after{inset-block-start:0}._1719idpf:after{inset-block-end:0}._e6znidpf:after{inset-inline-end:0}._1kyhe4h9:after{border-inline-end-width:var(--ds-border-width,1px)}._4cwynqa1:after{border-inline-end-style:solid}._435s1l7x:after{border-inline-end-color:var(--ds-border,#0b120e24)}._m7c3idpf:after{opacity:0}._15rin7od{min-width:unset}._glte1osq{width:100%}._exxmutpp{padding-inline-end:var(--ds-space-150,9pt)}._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._glte93mn{width:var(--n_sNvlw,100%)}._exxmpxbi{padding-inline-end:var(--ds-space-200,1pc)}._4ap3vuon{background-color:var(--ds-surface,#fff)}._m7c3kb7n:after{opacity:1}}
16
- @media (prefers-reduced-motion:no-preference) and (min-width:64rem){._n8qabrmi:after{transition-property:opacity}._wc72fnf5:after{transition-duration:.2s}._j3mr1v42:after{transition-timing-function:ease-in}}
17
- @supports (scroll-timeline-axis:block){@keyframes khj1qz3{0%{box-shadow:inset 0 -1px 0 0 transparent}0.1%{box-shadow:inset 0 -1px 0 0 var(--ds-border,#0b120e24)}to{box-shadow:inset 0 -1px 0 0 var(--ds-border,#0b120e24)}}html:not(:has([data-private-side-nav-header])) ._5gdsgc9s{animation-timeline:--sNcst}html:not(:has([data-private-side-nav-header])) ._53fr1ybg{animation-name:khj1qz3}html:not(:has([data-private-side-nav-header])) ._bt1c1hrf{animation-fill-mode:both}}
15
+ @media (min-width:64rem){._13wnh2mm{position:relative}._1l3vb3bt:after{content:""}._juxdstnw:after{position:absolute}._1vinidpf:after{inset-block-start:0}._1719idpf:after{inset-block-end:0}._e6znidpf:after{inset-inline-end:0}._1kyhe4h9:after{border-inline-end-width:var(--ds-border-width,1px)}._4cwynqa1:after{border-inline-end-style:solid}._435s1l7x:after{border-inline-end-color:var(--ds-border,#0b120e24)}._m7c3idpf:after{opacity:0}._15rin7od{min-width:unset}._glte1osq{width:100%}._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._glte93mn{width:var(--n_sNvlw,100%)}._exxmutpp{padding-inline-end:var(--ds-space-150,9pt)}._4ap3vuon{background-color:var(--ds-surface,#fff)}._m7c3kb7n:after{opacity:1}}
16
+ @media (prefers-reduced-motion:no-preference) and (min-width:64rem){._n8qabrmi:after{transition-property:opacity}._wc72fnf5:after{transition-duration:.2s}._j3mr1v42:after{transition-timing-function:ease-in}}
@@ -44,12 +44,6 @@ var innerStyles = {
44
44
  fullHeightSidebarExpanded: "_15rin7od _glte1osq"
45
45
  };
46
46
 
47
- /**
48
- * The scroll indicator is usually applied in SideNavContent, but if there is no SideNavHeader it is
49
- * applied in TopNavStart instead for layering reasons. See the comment in SideNavHeader for more details.
50
- */
51
- var scrolledShadow = null;
52
-
53
47
  /**
54
48
  * Styles for the outer element, that does not have re-enabled pointer events and spans the entire
55
49
  * width of the TopNavStart area.
@@ -58,10 +52,8 @@ var scrolledShadow = null;
58
52
  */
59
53
  var wrapperStyles = {
60
54
  root: "_vchhusvi _bozgutpp _4t3i1osq _13wnh2mm _1l3vb3bt _juxdstnw _1vinidpf _1719idpf _e6znidpf _1kyhe4h9 _4cwynqa1 _435s1l7x _m7c3idpf",
61
- fullHeightSidebarExpanded: "_glte93mn _exxmpxbi _4ap3vuon _m7c3kb7n",
62
- fullHeightSidebarExpandedScrollTimeline: "_5gdsgc9s _53fr1ybg _bt1c1hrf",
63
- fullHeightSidebarBorderTransition: "_n8qabrmi _wc72fnf5 _j3mr1v42",
64
- fullHeightSidebarExpandedWithFeedback: "_exxmutpp"
55
+ fullHeightSidebarExpanded: "_glte93mn _exxmutpp _4ap3vuon _m7c3kb7n",
56
+ fullHeightSidebarBorderTransition: "_n8qabrmi _wc72fnf5 _j3mr1v42"
65
57
  };
66
58
 
67
59
  /**
@@ -143,7 +135,7 @@ var TopNavStartInnerFHS = /*#__PURE__*/(0, _react.forwardRef)(function TopNavSta
143
135
  }
144
136
  }, [sideNavState]);
145
137
  return /*#__PURE__*/_react.default.createElement("div", {
146
- className: (0, _runtime.ax)([wrapperStyles.root, isExpandedOnDesktop && wrapperStyles.fullHeightSidebarExpanded, isExpandedOnDesktop && (0, _platformFeatureFlags.fg)('platform_dst_nav4_fhs_feedback_1') && wrapperStyles.fullHeightSidebarExpandedWithFeedback, !isFirstRenderRef.current && isExpandedOnDesktop && wrapperStyles.fullHeightSidebarBorderTransition, isExpandedOnDesktop && !(0, _platformFeatureFlags.fg)('platform_dst_nav4_fhs_feedback_1') && wrapperStyles.fullHeightSidebarExpandedScrollTimeline])
138
+ className: (0, _runtime.ax)([wrapperStyles.root, isExpandedOnDesktop && wrapperStyles.fullHeightSidebarExpanded, !isFirstRenderRef.current && isExpandedOnDesktop && wrapperStyles.fullHeightSidebarBorderTransition])
147
139
  }, /*#__PURE__*/_react.default.createElement("div", {
148
140
  ref: ref,
149
141
  "data-testid": testId,
@@ -1,6 +1,6 @@
1
1
  export { SideNav } from '../../ui/page-layout/side-nav/side-nav';
2
2
  export { SideNavHeader } from '../../ui/page-layout/side-nav/side-nav-header';
3
- export { SideNavContent } from '../../ui/page-layout/side-nav/side-nav-content';
3
+ export { SideNavBody } from '../../ui/page-layout/side-nav/side-nav-content';
4
4
  export { SideNavFooter } from '../../ui/page-layout/side-nav/side-nav-footer';
5
5
  export { SideNavToggleButton } from '../../ui/page-layout/side-nav/toggle-button';
6
6
  export { useToggleSideNav } from '../../ui/page-layout/side-nav/use-toggle-side-nav';
@@ -12,7 +12,7 @@ export { MainStickyHeader } from './ui/page-layout/main/main-sticky-header';
12
12
  export { SideNavToggleButton } from './ui/page-layout/side-nav/toggle-button';
13
13
  export { useToggleSideNav } from './ui/page-layout/side-nav/use-toggle-side-nav';
14
14
  export { SideNavHeader } from './ui/page-layout/side-nav/side-nav-header';
15
- export { SideNavContent } from './ui/page-layout/side-nav/side-nav-content';
15
+ export { SideNavBody } from './ui/page-layout/side-nav/side-nav-content';
16
16
  export { SideNavFooter } from './ui/page-layout/side-nav/side-nav-footer';
17
17
  export { PanelSplitter } from './ui/page-layout/panel-splitter/panel-splitter';
18
18
  export { PanelSplitterProvider } from './ui/page-layout/panel-splitter/provider';
@@ -70,10 +70,4 @@ export const openLayerObserverSideNavNamespace = 'side-nav';
70
70
  // namespaces.
71
71
  export const openLayerObserverTopNavStartNamespace = 'top-nav-start';
72
72
  export const openLayerObserverTopNavMiddleNamespace = 'top-nav-middle';
73
- export const openLayerObserverTopNavEndNamespace = 'top-nav-end';
74
-
75
- /**
76
- * CSS scroll timeline variable for the side nav content scroll indicator.
77
- * The scroll timeline is created in SideNavContent, and then used by TopNavStart to apply the scroll indicator line.
78
- */
79
- export const sideNavContentScrollTimelineVar = '--sNcst';
73
+ export const openLayerObserverTopNavEndNamespace = 'top-nav-end';
@@ -1,4 +1,3 @@
1
- ._10iwgc9s{timeline-scope:--sNcst}
2
1
  ._1ciragmp >:not([data-layout-slot]){display:none!important}
3
2
  ._1e0c11p5{display:grid}
4
3
  ._1lmcq9em{grid-template-areas:"banner" "top-bar" "main" "aside"}
@@ -6,8 +6,6 @@ import { OpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-ob
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
7
  import { SkipLinksProvider } from '../../context/skip-links/skip-links-provider';
8
8
  import { TopNavStartProvider } from '../../context/top-nav-start/top-nav-start-context-provider';
9
- import { useIsFhsEnabled } from '../fhs-rollout/use-is-fhs-enabled';
10
- import { sideNavContentScrollTimelineVar } from './constants';
11
9
  import { DangerouslyHoistSlotSizes } from './hoist-slot-sizes-context';
12
10
  import { SideNavElementProvider } from './side-nav/element-context';
13
11
  import { IsSideNavShortcutEnabledProvider } from './side-nav/is-side-nav-shortcut-enabled-context';
@@ -18,7 +16,6 @@ import { SideNavVisibilityProvider } from './side-nav/visibility-provider';
18
16
  export const gridRootId = 'unsafe-design-system-page-layout-root';
19
17
  const styles = {
20
18
  root: "_1e0c11p5 _1tke1kxc _1lmcq9em _yv0ei47z _2z0516ab _1ciragmp _12fkuz0r _12qzrxre _1rqt70if _xkmgbaui _jbc7rxre _tyve1jg8",
21
- sideNavScrollTimeline: "_10iwgc9s",
22
19
  ribbon: "_12fk1aio _12qzrxre _1rqteala _xkmgks3h _jbc7rxre _tyve1nco"
23
20
  };
24
21
 
@@ -36,7 +33,6 @@ export function Root({
36
33
  isSideNavShortcutEnabled = false
37
34
  }) {
38
35
  const ref = useRef(null);
39
- const isFhsEnabled = useIsFhsEnabled();
40
36
  useEffect(() => {
41
37
  if (process.env.NODE_ENV !== 'production') {
42
38
  const IGNORED_ELEMENTS = ['SCRIPT', 'STYLE'];
@@ -70,7 +66,7 @@ This message will not be displayed in production.
70
66
  testId: testId
71
67
  }, /*#__PURE__*/React.createElement("div", {
72
68
  ref: ref,
73
- className: ax([styles.root, isFhsEnabled && !fg('platform_dst_nav4_fhs_feedback_1') && styles.sideNavScrollTimeline, fg('platform_dst_nav4_ribbon_slot') && styles.ribbon, xcss]),
69
+ className: ax([styles.root, fg('platform_dst_nav4_ribbon_slot') && styles.ribbon, xcss]),
74
70
  id: gridRootId,
75
71
  "data-testid": testId
76
72
  }, children)))))))));
@@ -6,5 +6,4 @@
6
6
  ._85i5utpp{padding-block-end:var(--ds-space-150,9pt)}
7
7
  ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
8
8
  ._i0dlf1ug{flex-basis:0%}
9
- ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
10
- @media (min-width:64rem){@supports (scroll-timeline-axis:block){._1sfqgc9s{scroll-timeline-name:--sNcst}._1q1x1ule{scroll-timeline-axis:block}html:has([data-private-side-nav-header]) ._8pm2gc9s{animation-timeline:--sNcst}html:has([data-private-side-nav-header]) ._1gd913ly{animation-name:k1ywrstg}}@supports (scroll-timeline-axis:block){@keyframes k1ywrstg{0%{box-shadow:none}0.1%{box-shadow:0 -1px var(--ds-border,#0b120e24)}to{box-shadow:0 -1px var(--ds-border,#0b120e24)}}}}
9
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
@@ -3,10 +3,7 @@ import "./side-nav-content.compiled.css";
3
3
  import { ax, ix } from "@compiled/react/runtime";
4
4
  import React, { forwardRef, useMemo, useRef } from 'react';
5
5
  import mergeRefs from '@atlaskit/ds-lib/merge-refs';
6
- import { fg } from '@atlaskit/platform-feature-flags';
7
6
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
8
- import { sideNavContentScrollTimelineVar } from '../constants';
9
- import { useSideNavVisibility } from './use-side-nav-visibility';
10
7
 
11
8
  /**
12
9
  * The main content of the side nav, filling up the middle section. It acts as a scroll container.
@@ -14,27 +11,13 @@ import { useSideNavVisibility } from './use-side-nav-visibility';
14
11
  * It will grow to take up the available space in the side nav — this is used to push the footer to the
15
12
  * bottom of the side nav.
16
13
  */
17
- export const SideNavContent = /*#__PURE__*/forwardRef(_SideNavContent);
14
+ export const SideNavBody = /*#__PURE__*/forwardRef(_SideNavContent);
18
15
 
19
16
  // Placing this const below the function breaks Compiled!
20
17
  const styles = {
21
18
  scrollContainer: "_16jlkb7n _1o9zkb7n _i0dlf1ug _1reo1wug _18m91wug",
22
19
  paddingContainer: "_1q51utpp _y4tiutpp _85i5utpp _bozgutpp"
23
20
  };
24
-
25
- /**
26
- * Using CSS scroll-driven animations to apply a scrolled indicator border.
27
- *
28
- * This approach is better for SSR, as some apps like Confluence will apply the
29
- * initial scroll position of the side nav content using JS before hydration.
30
- *
31
- * If we applied the border through React state it would only appear after hydration,
32
- * whereas this CSS approach should show even before hydration.
33
- */
34
- const scrolledBorder = null;
35
- const fullHeightSidebarStyles = {
36
- scrollContainer: "_1sfqgc9s _1q1x1ule _8pm2gc9s _1gd913ly"
37
- };
38
21
  function _SideNavContent({
39
22
  children,
40
23
  testId
@@ -42,13 +25,10 @@ function _SideNavContent({
42
25
  const isFhsEnabled = useIsFhsEnabled();
43
26
  const internalRef = useRef(null);
44
27
  const mergedRef = useMemo(() => mergeRefs([internalRef, forwardedRef]), [forwardedRef]);
45
- const {
46
- isExpandedOnDesktop
47
- } = useSideNavVisibility();
48
28
  return /*#__PURE__*/React.createElement("div", {
49
29
  ref: isFhsEnabled ? mergedRef : forwardedRef,
50
30
  "data-testid": testId,
51
- className: ax([styles.scrollContainer, isFhsEnabled && isExpandedOnDesktop && !fg('platform_dst_nav4_fhs_feedback_1') && fullHeightSidebarStyles.scrollContainer])
31
+ className: ax([styles.scrollContainer])
52
32
  }, /*#__PURE__*/React.createElement("div", {
53
33
  className: ax([styles.paddingContainer])
54
34
  }, children));
@@ -2,7 +2,6 @@
2
2
  import "./side-nav-header.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
- import { fg } from '@atlaskit/platform-feature-flags';
6
5
  const styles = {
7
6
  root: "_18zrutpp _1q51utpp _85i51b66"
8
7
  };
@@ -14,22 +13,6 @@ export const SideNavHeader = ({
14
13
  children
15
14
  }) => {
16
15
  return /*#__PURE__*/React.createElement("div", {
17
- /**
18
- * This attribute is used to identify whether the SideNavHeader is mounted, to determine where the
19
- * SideNavContent's scroll indicator line should be applied. This is for layering reasons -
20
- * if the scroll indicator line intersects with the top nav, it could incorrectly be hidden beneath
21
- * the top nav (depending on if a layer is open, which raises the top nav'z z-index).
22
- *
23
- * We are using a data attribute and CSS for this logic to ensure it is SSR safe.
24
- *
25
- * - If SideNavHeader exists, the scroll indicator line is applied to the SideNavContent. This is safe
26
- * because the SideNavHeader is between the SideNavContent and TopNavStart, so the scroll indicator line
27
- * will not intersect with the top nav.
28
- *
29
- * - If SideNavHeader does not exist, the scroll indicator line is applied to TopNavStart. This ensures
30
- * the scroll indicator line is visible even when the top nav has a z-index higher than the side nav.
31
- */
32
- "data-private-side-nav-header": fg('platform_dst_nav4_fhs_feedback_1') ? undefined : 'true',
33
16
  className: ax([styles.root])
34
17
  }, children);
35
18
  };
@@ -784,7 +784,7 @@ function SideNavInternal({
784
784
  /**
785
785
  * The side navigation layout area. It will show on the left (inline start) of the screen.
786
786
  *
787
- * Use the side nav area components (`SideNavHeader`, `SideNavContent`, `SideNavFooter`) to position
787
+ * Use the side nav area components (`SideNavHeader`, `SideNavBody`, `SideNavFooter`) to position
788
788
  * content within areas of the side nav.
789
789
  *
790
790
  * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
@@ -12,6 +12,5 @@
12
12
  ._vchhusvi{box-sizing:border-box}
13
13
  [dir=rtl] ._65m41mrw{--animation-direction:-1}
14
14
  @media (prefers-reduced-motion:no-preference){._10t81e03{transition-property:transform}._10t81rjc{transition-property:transform,opacity}._1xq51ytf{transition-timing-function:ease-in-out}._1xq55ucs{transition-timing-function:ease}._mjvc1efy{transform:translateX(calc(100%*var(--animation-direction)))}._bgpzidpf{opacity:0}._mjvc1p9u{transform:translateX(calc(-100%*var(--animation-direction)))}._mjvco0k7{transform:translateX(calc((-2rem + var(--ds-space-050, 4px)*-1)*var(--animation-direction)))}._mjvcyrjp{transform:translateX(calc((2rem + var(--ds-space-050, 4px))*var(--animation-direction)))}._mjvcz12g{transform:translateX(0)}._xrrpfnf5{transition-duration:.2s}._bgpzkb7n{opacity:1}}
15
- @media (min-width:64rem){._13wnh2mm{position:relative}._1l3vb3bt:after{content:""}._juxdstnw:after{position:absolute}._1vinidpf:after{inset-block-start:0}._1719idpf:after{inset-block-end:0}._e6znidpf:after{inset-inline-end:0}._1kyhe4h9:after{border-inline-end-width:var(--ds-border-width,1px)}._4cwynqa1:after{border-inline-end-style:solid}._435s1l7x:after{border-inline-end-color:var(--ds-border,#0b120e24)}._m7c3idpf:after{opacity:0}._15rin7od{min-width:unset}._glte1osq{width:100%}._exxmutpp{padding-inline-end:var(--ds-space-150,9pt)}._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._glte93mn{width:var(--n_sNvlw,100%)}._exxmpxbi{padding-inline-end:var(--ds-space-200,1pc)}._4ap3vuon{background-color:var(--ds-surface,#fff)}._m7c3kb7n:after{opacity:1}}
16
- @media (prefers-reduced-motion:no-preference) and (min-width:64rem){._n8qabrmi:after{transition-property:opacity}._wc72fnf5:after{transition-duration:.2s}._j3mr1v42:after{transition-timing-function:ease-in}}
17
- @supports (scroll-timeline-axis:block){@keyframes k1rswljm{0%{box-shadow:inset 0 -1px 0 0 transparent}0.1%{box-shadow:inset 0 -1px 0 0 var(--ds-border,#0b120e24)}to{box-shadow:inset 0 -1px 0 0 var(--ds-border,#0b120e24)}}html:not(:has([data-private-side-nav-header])) ._5gdsgc9s{animation-timeline:--sNcst}html:not(:has([data-private-side-nav-header])) ._53frsjnm{animation-name:k1rswljm}html:not(:has([data-private-side-nav-header])) ._bt1c1hrf{animation-fill-mode:both}}
15
+ @media (min-width:64rem){._13wnh2mm{position:relative}._1l3vb3bt:after{content:""}._juxdstnw:after{position:absolute}._1vinidpf:after{inset-block-start:0}._1719idpf:after{inset-block-end:0}._e6znidpf:after{inset-inline-end:0}._1kyhe4h9:after{border-inline-end-width:var(--ds-border-width,1px)}._4cwynqa1:after{border-inline-end-style:solid}._435s1l7x:after{border-inline-end-color:var(--ds-border,#0b120e24)}._m7c3idpf:after{opacity:0}._15rin7od{min-width:unset}._glte1osq{width:100%}._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._glte93mn{width:var(--n_sNvlw,100%)}._exxmutpp{padding-inline-end:var(--ds-space-150,9pt)}._4ap3vuon{background-color:var(--ds-surface,#fff)}._m7c3kb7n:after{opacity:1}}
16
+ @media (prefers-reduced-motion:no-preference) and (min-width:64rem){._n8qabrmi:after{transition-property:opacity}._wc72fnf5:after{transition-duration:.2s}._j3mr1v42:after{transition-timing-function:ease-in}}
@@ -8,7 +8,7 @@ import { fg } from '@atlaskit/platform-feature-flags';
8
8
  import { UNSAFE_useMediaQuery } from '@atlaskit/primitives/compiled';
9
9
  import { TopNavStartAttachRef } from '../../../context/top-nav-start/top-nav-start-context';
10
10
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
11
- import { openLayerObserverTopNavStartNamespace, sideNavContentScrollTimelineVar } from '../constants';
11
+ import { openLayerObserverTopNavStartNamespace } from '../constants';
12
12
  import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
13
13
  import { SideNavVisibilityState } from '../side-nav/visibility-context';
14
14
 
@@ -35,12 +35,6 @@ const innerStyles = {
35
35
  fullHeightSidebarExpanded: "_15rin7od _glte1osq"
36
36
  };
37
37
 
38
- /**
39
- * The scroll indicator is usually applied in SideNavContent, but if there is no SideNavHeader it is
40
- * applied in TopNavStart instead for layering reasons. See the comment in SideNavHeader for more details.
41
- */
42
- const scrolledShadow = null;
43
-
44
38
  /**
45
39
  * Styles for the outer element, that does not have re-enabled pointer events and spans the entire
46
40
  * width of the TopNavStart area.
@@ -49,10 +43,8 @@ const scrolledShadow = null;
49
43
  */
50
44
  const wrapperStyles = {
51
45
  root: "_vchhusvi _bozgutpp _4t3i1osq _13wnh2mm _1l3vb3bt _juxdstnw _1vinidpf _1719idpf _e6znidpf _1kyhe4h9 _4cwynqa1 _435s1l7x _m7c3idpf",
52
- fullHeightSidebarExpanded: "_glte93mn _exxmpxbi _4ap3vuon _m7c3kb7n",
53
- fullHeightSidebarExpandedScrollTimeline: "_5gdsgc9s _53frsjnm _bt1c1hrf",
54
- fullHeightSidebarBorderTransition: "_n8qabrmi _wc72fnf5 _j3mr1v42",
55
- fullHeightSidebarExpandedWithFeedback: "_exxmutpp"
46
+ fullHeightSidebarExpanded: "_glte93mn _exxmutpp _4ap3vuon _m7c3kb7n",
47
+ fullHeightSidebarBorderTransition: "_n8qabrmi _wc72fnf5 _j3mr1v42"
56
48
  };
57
49
 
58
50
  /**
@@ -137,7 +129,7 @@ const TopNavStartInnerFHS = /*#__PURE__*/forwardRef(function TopNavStartInnerFHS
137
129
  }
138
130
  }, [sideNavState]);
139
131
  return /*#__PURE__*/React.createElement("div", {
140
- className: ax([wrapperStyles.root, isExpandedOnDesktop && wrapperStyles.fullHeightSidebarExpanded, isExpandedOnDesktop && fg('platform_dst_nav4_fhs_feedback_1') && wrapperStyles.fullHeightSidebarExpandedWithFeedback, !isFirstRenderRef.current && isExpandedOnDesktop && wrapperStyles.fullHeightSidebarBorderTransition, isExpandedOnDesktop && !fg('platform_dst_nav4_fhs_feedback_1') && wrapperStyles.fullHeightSidebarExpandedScrollTimeline])
132
+ className: ax([wrapperStyles.root, isExpandedOnDesktop && wrapperStyles.fullHeightSidebarExpanded, !isFirstRenderRef.current && isExpandedOnDesktop && wrapperStyles.fullHeightSidebarBorderTransition])
141
133
  }, /*#__PURE__*/React.createElement("div", {
142
134
  ref: ref,
143
135
  "data-testid": testId,
@@ -1,6 +1,6 @@
1
1
  export { SideNav } from '../../ui/page-layout/side-nav/side-nav';
2
2
  export { SideNavHeader } from '../../ui/page-layout/side-nav/side-nav-header';
3
- export { SideNavContent } from '../../ui/page-layout/side-nav/side-nav-content';
3
+ export { SideNavBody } from '../../ui/page-layout/side-nav/side-nav-content';
4
4
  export { SideNavFooter } from '../../ui/page-layout/side-nav/side-nav-footer';
5
5
  export { SideNavToggleButton } from '../../ui/page-layout/side-nav/toggle-button';
6
6
  export { useToggleSideNav } from '../../ui/page-layout/side-nav/use-toggle-side-nav';
package/dist/esm/index.js CHANGED
@@ -12,7 +12,7 @@ export { MainStickyHeader } from './ui/page-layout/main/main-sticky-header';
12
12
  export { SideNavToggleButton } from './ui/page-layout/side-nav/toggle-button';
13
13
  export { useToggleSideNav } from './ui/page-layout/side-nav/use-toggle-side-nav';
14
14
  export { SideNavHeader } from './ui/page-layout/side-nav/side-nav-header';
15
- export { SideNavContent } from './ui/page-layout/side-nav/side-nav-content';
15
+ export { SideNavBody } from './ui/page-layout/side-nav/side-nav-content';
16
16
  export { SideNavFooter } from './ui/page-layout/side-nav/side-nav-footer';
17
17
  export { PanelSplitter } from './ui/page-layout/panel-splitter/panel-splitter';
18
18
  export { PanelSplitterProvider } from './ui/page-layout/panel-splitter/provider';
@@ -70,10 +70,4 @@ export var openLayerObserverSideNavNamespace = 'side-nav';
70
70
  // namespaces.
71
71
  export var openLayerObserverTopNavStartNamespace = 'top-nav-start';
72
72
  export var openLayerObserverTopNavMiddleNamespace = 'top-nav-middle';
73
- export var openLayerObserverTopNavEndNamespace = 'top-nav-end';
74
-
75
- /**
76
- * CSS scroll timeline variable for the side nav content scroll indicator.
77
- * The scroll timeline is created in SideNavContent, and then used by TopNavStart to apply the scroll indicator line.
78
- */
79
- export var sideNavContentScrollTimelineVar = '--sNcst';
73
+ export var openLayerObserverTopNavEndNamespace = 'top-nav-end';
@@ -1,4 +1,3 @@
1
- ._10iwgc9s{timeline-scope:--sNcst}
2
1
  ._1ciragmp >:not([data-layout-slot]){display:none!important}
3
2
  ._1e0c11p5{display:grid}
4
3
  ._1lmcq9em{grid-template-areas:"banner" "top-bar" "main" "aside"}
@@ -6,8 +6,6 @@ import { OpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-ob
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
7
  import { SkipLinksProvider } from '../../context/skip-links/skip-links-provider';
8
8
  import { TopNavStartProvider } from '../../context/top-nav-start/top-nav-start-context-provider';
9
- import { useIsFhsEnabled } from '../fhs-rollout/use-is-fhs-enabled';
10
- import { sideNavContentScrollTimelineVar } from './constants';
11
9
  import { DangerouslyHoistSlotSizes } from './hoist-slot-sizes-context';
12
10
  import { SideNavElementProvider } from './side-nav/element-context';
13
11
  import { IsSideNavShortcutEnabledProvider } from './side-nav/is-side-nav-shortcut-enabled-context';
@@ -18,7 +16,6 @@ import { SideNavVisibilityProvider } from './side-nav/visibility-provider';
18
16
  export var gridRootId = 'unsafe-design-system-page-layout-root';
19
17
  var styles = {
20
18
  root: "_1e0c11p5 _1tke1kxc _1lmcq9em _yv0ei47z _2z0516ab _1ciragmp _12fkuz0r _12qzrxre _1rqt70if _xkmgbaui _jbc7rxre _tyve1jg8",
21
- sideNavScrollTimeline: "_10iwgc9s",
22
19
  ribbon: "_12fk1aio _12qzrxre _1rqteala _xkmgks3h _jbc7rxre _tyve1nco"
23
20
  };
24
21
 
@@ -38,7 +35,6 @@ export function Root(_ref) {
38
35
  _ref$isSideNavShortcu = _ref.isSideNavShortcutEnabled,
39
36
  isSideNavShortcutEnabled = _ref$isSideNavShortcu === void 0 ? false : _ref$isSideNavShortcu;
40
37
  var ref = useRef(null);
41
- var isFhsEnabled = useIsFhsEnabled();
42
38
  useEffect(function () {
43
39
  if (process.env.NODE_ENV !== 'production') {
44
40
  var IGNORED_ELEMENTS = ['SCRIPT', 'STYLE'];
@@ -63,7 +59,7 @@ export function Root(_ref) {
63
59
  testId: testId
64
60
  }, /*#__PURE__*/React.createElement("div", {
65
61
  ref: ref,
66
- className: ax([styles.root, isFhsEnabled && !fg('platform_dst_nav4_fhs_feedback_1') && styles.sideNavScrollTimeline, fg('platform_dst_nav4_ribbon_slot') && styles.ribbon, xcss]),
62
+ className: ax([styles.root, fg('platform_dst_nav4_ribbon_slot') && styles.ribbon, xcss]),
67
63
  id: gridRootId,
68
64
  "data-testid": testId
69
65
  }, children)))))))));
@@ -6,5 +6,4 @@
6
6
  ._85i5utpp{padding-block-end:var(--ds-space-150,9pt)}
7
7
  ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
8
8
  ._i0dlf1ug{flex-basis:0%}
9
- ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
10
- @media (min-width:64rem){@supports (scroll-timeline-axis:block){._1sfqgc9s{scroll-timeline-name:--sNcst}._1q1x1ule{scroll-timeline-axis:block}html:has([data-private-side-nav-header]) ._8pm2gc9s{animation-timeline:--sNcst}html:has([data-private-side-nav-header]) ._1gd94n8p{animation-name:k1gwhnxc}}@supports (scroll-timeline-axis:block){@keyframes k1gwhnxc{0%{box-shadow:none}0.1%{box-shadow:0 -1px var(--ds-border,#0b120e24)}to{box-shadow:0 -1px var(--ds-border,#0b120e24)}}}}
9
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
@@ -3,10 +3,7 @@ import "./side-nav-content.compiled.css";
3
3
  import { ax, ix } from "@compiled/react/runtime";
4
4
  import React, { forwardRef, useMemo, useRef } from 'react';
5
5
  import mergeRefs from '@atlaskit/ds-lib/merge-refs';
6
- import { fg } from '@atlaskit/platform-feature-flags';
7
6
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
8
- import { sideNavContentScrollTimelineVar } from '../constants';
9
- import { useSideNavVisibility } from './use-side-nav-visibility';
10
7
 
11
8
  /**
12
9
  * The main content of the side nav, filling up the middle section. It acts as a scroll container.
@@ -14,27 +11,13 @@ import { useSideNavVisibility } from './use-side-nav-visibility';
14
11
  * It will grow to take up the available space in the side nav — this is used to push the footer to the
15
12
  * bottom of the side nav.
16
13
  */
17
- export var SideNavContent = /*#__PURE__*/forwardRef(_SideNavContent);
14
+ export var SideNavBody = /*#__PURE__*/forwardRef(_SideNavContent);
18
15
 
19
16
  // Placing this const below the function breaks Compiled!
20
17
  var styles = {
21
18
  scrollContainer: "_16jlkb7n _1o9zkb7n _i0dlf1ug _1reo1wug _18m91wug",
22
19
  paddingContainer: "_1q51utpp _y4tiutpp _85i5utpp _bozgutpp"
23
20
  };
24
-
25
- /**
26
- * Using CSS scroll-driven animations to apply a scrolled indicator border.
27
- *
28
- * This approach is better for SSR, as some apps like Confluence will apply the
29
- * initial scroll position of the side nav content using JS before hydration.
30
- *
31
- * If we applied the border through React state it would only appear after hydration,
32
- * whereas this CSS approach should show even before hydration.
33
- */
34
- var scrolledBorder = null;
35
- var fullHeightSidebarStyles = {
36
- scrollContainer: "_1sfqgc9s _1q1x1ule _8pm2gc9s _1gd94n8p"
37
- };
38
21
  function _SideNavContent(_ref, forwardedRef) {
39
22
  var children = _ref.children,
40
23
  testId = _ref.testId;
@@ -43,12 +26,10 @@ function _SideNavContent(_ref, forwardedRef) {
43
26
  var mergedRef = useMemo(function () {
44
27
  return mergeRefs([internalRef, forwardedRef]);
45
28
  }, [forwardedRef]);
46
- var _useSideNavVisibility = useSideNavVisibility(),
47
- isExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop;
48
29
  return /*#__PURE__*/React.createElement("div", {
49
30
  ref: isFhsEnabled ? mergedRef : forwardedRef,
50
31
  "data-testid": testId,
51
- className: ax([styles.scrollContainer, isFhsEnabled && isExpandedOnDesktop && !fg('platform_dst_nav4_fhs_feedback_1') && fullHeightSidebarStyles.scrollContainer])
32
+ className: ax([styles.scrollContainer])
52
33
  }, /*#__PURE__*/React.createElement("div", {
53
34
  className: ax([styles.paddingContainer])
54
35
  }, children));
@@ -2,7 +2,6 @@
2
2
  import "./side-nav-header.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
- import { fg } from '@atlaskit/platform-feature-flags';
6
5
  var styles = {
7
6
  root: "_18zrutpp _1q51utpp _85i51b66"
8
7
  };
@@ -13,22 +12,6 @@ var styles = {
13
12
  export var SideNavHeader = function SideNavHeader(_ref) {
14
13
  var children = _ref.children;
15
14
  return /*#__PURE__*/React.createElement("div", {
16
- /**
17
- * This attribute is used to identify whether the SideNavHeader is mounted, to determine where the
18
- * SideNavContent's scroll indicator line should be applied. This is for layering reasons -
19
- * if the scroll indicator line intersects with the top nav, it could incorrectly be hidden beneath
20
- * the top nav (depending on if a layer is open, which raises the top nav'z z-index).
21
- *
22
- * We are using a data attribute and CSS for this logic to ensure it is SSR safe.
23
- *
24
- * - If SideNavHeader exists, the scroll indicator line is applied to the SideNavContent. This is safe
25
- * because the SideNavHeader is between the SideNavContent and TopNavStart, so the scroll indicator line
26
- * will not intersect with the top nav.
27
- *
28
- * - If SideNavHeader does not exist, the scroll indicator line is applied to TopNavStart. This ensures
29
- * the scroll indicator line is visible even when the top nav has a z-index higher than the side nav.
30
- */
31
- "data-private-side-nav-header": fg('platform_dst_nav4_fhs_feedback_1') ? undefined : 'true',
32
15
  className: ax([styles.root])
33
16
  }, children);
34
17
  };
@@ -778,7 +778,7 @@ function SideNavInternal(_ref) {
778
778
  /**
779
779
  * The side navigation layout area. It will show on the left (inline start) of the screen.
780
780
  *
781
- * Use the side nav area components (`SideNavHeader`, `SideNavContent`, `SideNavFooter`) to position
781
+ * Use the side nav area components (`SideNavHeader`, `SideNavBody`, `SideNavFooter`) to position
782
782
  * content within areas of the side nav.
783
783
  *
784
784
  * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
@@ -12,6 +12,5 @@
12
12
  ._vchhusvi{box-sizing:border-box}
13
13
  [dir=rtl] ._65m41mrw{--animation-direction:-1}
14
14
  @media (prefers-reduced-motion:no-preference){._10t81e03{transition-property:transform}._10t81rjc{transition-property:transform,opacity}._1xq51ytf{transition-timing-function:ease-in-out}._1xq55ucs{transition-timing-function:ease}._mjvc1efy{transform:translateX(calc(100%*var(--animation-direction)))}._bgpzidpf{opacity:0}._mjvc1p9u{transform:translateX(calc(-100%*var(--animation-direction)))}._mjvco0k7{transform:translateX(calc((-2rem + var(--ds-space-050, 4px)*-1)*var(--animation-direction)))}._mjvcyrjp{transform:translateX(calc((2rem + var(--ds-space-050, 4px))*var(--animation-direction)))}._mjvcz12g{transform:translateX(0)}._xrrpfnf5{transition-duration:.2s}._bgpzkb7n{opacity:1}}
15
- @media (min-width:64rem){._13wnh2mm{position:relative}._1l3vb3bt:after{content:""}._juxdstnw:after{position:absolute}._1vinidpf:after{inset-block-start:0}._1719idpf:after{inset-block-end:0}._e6znidpf:after{inset-inline-end:0}._1kyhe4h9:after{border-inline-end-width:var(--ds-border-width,1px)}._4cwynqa1:after{border-inline-end-style:solid}._435s1l7x:after{border-inline-end-color:var(--ds-border,#0b120e24)}._m7c3idpf:after{opacity:0}._15rin7od{min-width:unset}._glte1osq{width:100%}._exxmutpp{padding-inline-end:var(--ds-space-150,9pt)}._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._glte93mn{width:var(--n_sNvlw,100%)}._exxmpxbi{padding-inline-end:var(--ds-space-200,1pc)}._4ap3vuon{background-color:var(--ds-surface,#fff)}._m7c3kb7n:after{opacity:1}}
16
- @media (prefers-reduced-motion:no-preference) and (min-width:64rem){._n8qabrmi:after{transition-property:opacity}._wc72fnf5:after{transition-duration:.2s}._j3mr1v42:after{transition-timing-function:ease-in}}
17
- @supports (scroll-timeline-axis:block){@keyframes khj1qz3{0%{box-shadow:inset 0 -1px 0 0 transparent}0.1%{box-shadow:inset 0 -1px 0 0 var(--ds-border,#0b120e24)}to{box-shadow:inset 0 -1px 0 0 var(--ds-border,#0b120e24)}}html:not(:has([data-private-side-nav-header])) ._5gdsgc9s{animation-timeline:--sNcst}html:not(:has([data-private-side-nav-header])) ._53fr1ybg{animation-name:khj1qz3}html:not(:has([data-private-side-nav-header])) ._bt1c1hrf{animation-fill-mode:both}}
15
+ @media (min-width:64rem){._13wnh2mm{position:relative}._1l3vb3bt:after{content:""}._juxdstnw:after{position:absolute}._1vinidpf:after{inset-block-start:0}._1719idpf:after{inset-block-end:0}._e6znidpf:after{inset-inline-end:0}._1kyhe4h9:after{border-inline-end-width:var(--ds-border-width,1px)}._4cwynqa1:after{border-inline-end-style:solid}._435s1l7x:after{border-inline-end-color:var(--ds-border,#0b120e24)}._m7c3idpf:after{opacity:0}._15rin7od{min-width:unset}._glte1osq{width:100%}._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._glte93mn{width:var(--n_sNvlw,100%)}._exxmutpp{padding-inline-end:var(--ds-space-150,9pt)}._4ap3vuon{background-color:var(--ds-surface,#fff)}._m7c3kb7n:after{opacity:1}}
16
+ @media (prefers-reduced-motion:no-preference) and (min-width:64rem){._n8qabrmi:after{transition-property:opacity}._wc72fnf5:after{transition-duration:.2s}._j3mr1v42:after{transition-timing-function:ease-in}}
@@ -9,7 +9,7 @@ import { fg } from '@atlaskit/platform-feature-flags';
9
9
  import { UNSAFE_useMediaQuery } from '@atlaskit/primitives/compiled';
10
10
  import { TopNavStartAttachRef } from '../../../context/top-nav-start/top-nav-start-context';
11
11
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
12
- import { openLayerObserverTopNavStartNamespace, sideNavContentScrollTimelineVar } from '../constants';
12
+ import { openLayerObserverTopNavStartNamespace } from '../constants';
13
13
  import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
14
14
  import { SideNavVisibilityState } from '../side-nav/visibility-context';
15
15
 
@@ -36,12 +36,6 @@ var innerStyles = {
36
36
  fullHeightSidebarExpanded: "_15rin7od _glte1osq"
37
37
  };
38
38
 
39
- /**
40
- * The scroll indicator is usually applied in SideNavContent, but if there is no SideNavHeader it is
41
- * applied in TopNavStart instead for layering reasons. See the comment in SideNavHeader for more details.
42
- */
43
- var scrolledShadow = null;
44
-
45
39
  /**
46
40
  * Styles for the outer element, that does not have re-enabled pointer events and spans the entire
47
41
  * width of the TopNavStart area.
@@ -50,10 +44,8 @@ var scrolledShadow = null;
50
44
  */
51
45
  var wrapperStyles = {
52
46
  root: "_vchhusvi _bozgutpp _4t3i1osq _13wnh2mm _1l3vb3bt _juxdstnw _1vinidpf _1719idpf _e6znidpf _1kyhe4h9 _4cwynqa1 _435s1l7x _m7c3idpf",
53
- fullHeightSidebarExpanded: "_glte93mn _exxmpxbi _4ap3vuon _m7c3kb7n",
54
- fullHeightSidebarExpandedScrollTimeline: "_5gdsgc9s _53fr1ybg _bt1c1hrf",
55
- fullHeightSidebarBorderTransition: "_n8qabrmi _wc72fnf5 _j3mr1v42",
56
- fullHeightSidebarExpandedWithFeedback: "_exxmutpp"
47
+ fullHeightSidebarExpanded: "_glte93mn _exxmutpp _4ap3vuon _m7c3kb7n",
48
+ fullHeightSidebarBorderTransition: "_n8qabrmi _wc72fnf5 _j3mr1v42"
57
49
  };
58
50
 
59
51
  /**
@@ -135,7 +127,7 @@ var TopNavStartInnerFHS = /*#__PURE__*/forwardRef(function TopNavStartInnerFHS(_
135
127
  }
136
128
  }, [sideNavState]);
137
129
  return /*#__PURE__*/React.createElement("div", {
138
- className: ax([wrapperStyles.root, isExpandedOnDesktop && wrapperStyles.fullHeightSidebarExpanded, isExpandedOnDesktop && fg('platform_dst_nav4_fhs_feedback_1') && wrapperStyles.fullHeightSidebarExpandedWithFeedback, !isFirstRenderRef.current && isExpandedOnDesktop && wrapperStyles.fullHeightSidebarBorderTransition, isExpandedOnDesktop && !fg('platform_dst_nav4_fhs_feedback_1') && wrapperStyles.fullHeightSidebarExpandedScrollTimeline])
130
+ className: ax([wrapperStyles.root, isExpandedOnDesktop && wrapperStyles.fullHeightSidebarExpanded, !isFirstRenderRef.current && isExpandedOnDesktop && wrapperStyles.fullHeightSidebarBorderTransition])
139
131
  }, /*#__PURE__*/React.createElement("div", {
140
132
  ref: ref,
141
133
  "data-testid": testId,
@@ -1,6 +1,6 @@
1
1
  export { SideNav } from '../../ui/page-layout/side-nav/side-nav';
2
2
  export { SideNavHeader } from '../../ui/page-layout/side-nav/side-nav-header';
3
- export { SideNavContent } from '../../ui/page-layout/side-nav/side-nav-content';
3
+ export { SideNavBody } from '../../ui/page-layout/side-nav/side-nav-content';
4
4
  export { SideNavFooter } from '../../ui/page-layout/side-nav/side-nav-footer';
5
5
  export { SideNavToggleButton } from '../../ui/page-layout/side-nav/toggle-button';
6
6
  export { useToggleSideNav } from '../../ui/page-layout/side-nav/use-toggle-side-nav';
@@ -12,7 +12,7 @@ export { MainStickyHeader } from './ui/page-layout/main/main-sticky-header';
12
12
  export { SideNavToggleButton, type SideNavVisibilityChangeAnalyticsAttributes, } from './ui/page-layout/side-nav/toggle-button';
13
13
  export { useToggleSideNav } from './ui/page-layout/side-nav/use-toggle-side-nav';
14
14
  export { SideNavHeader } from './ui/page-layout/side-nav/side-nav-header';
15
- export { SideNavContent } from './ui/page-layout/side-nav/side-nav-content';
15
+ export { SideNavBody } from './ui/page-layout/side-nav/side-nav-content';
16
16
  export { SideNavFooter } from './ui/page-layout/side-nav/side-nav-footer';
17
17
  export { PanelSplitter } from './ui/page-layout/panel-splitter/panel-splitter';
18
18
  export { PanelSplitterProvider } from './ui/page-layout/panel-splitter/provider';
@@ -48,8 +48,3 @@ export declare const openLayerObserverSideNavNamespace = "side-nav";
48
48
  export declare const openLayerObserverTopNavStartNamespace = "top-nav-start";
49
49
  export declare const openLayerObserverTopNavMiddleNamespace = "top-nav-middle";
50
50
  export declare const openLayerObserverTopNavEndNamespace = "top-nav-end";
51
- /**
52
- * CSS scroll timeline variable for the side nav content scroll indicator.
53
- * The scroll timeline is created in SideNavContent, and then used by TopNavStart to apply the scroll indicator line.
54
- */
55
- export declare const sideNavContentScrollTimelineVar = "--sNcst";
@@ -9,7 +9,7 @@ import React, { type ReactNode } from 'react';
9
9
  * It will grow to take up the available space in the side nav — this is used to push the footer to the
10
10
  * bottom of the side nav.
11
11
  */
12
- export declare const SideNavContent: React.ForwardRefExoticComponent<React.PropsWithoutRef<SideNavContentProps> & React.RefAttributes<HTMLDivElement>>;
12
+ export declare const SideNavBody: React.ForwardRefExoticComponent<React.PropsWithoutRef<SideNavContentProps> & React.RefAttributes<HTMLDivElement>>;
13
13
  type SideNavContentProps = {
14
14
  /**
15
15
  * The content of the layout area.
@@ -9,7 +9,7 @@ import { type VisibilityCallback } from './use-side-nav-visibility-callbacks';
9
9
  type SideNavProps = CommonSlotProps & {
10
10
  /**
11
11
  * The content of the layout area.
12
- * Should include side nav layout areas as required: `SideNavHeader`, `SideNavContent`, `SideNavFooter`.
12
+ * Should include side nav layout areas as required: `SideNavHeader`, `SideNavBody`, `SideNavFooter`.
13
13
  * Within these, you can use side nav menu items.
14
14
  */
15
15
  children: React.ReactNode;
@@ -82,7 +82,7 @@ export declare const onPeekStartDelayMs = 500;
82
82
  /**
83
83
  * The side navigation layout area. It will show on the left (inline start) of the screen.
84
84
  *
85
- * Use the side nav area components (`SideNavHeader`, `SideNavContent`, `SideNavFooter`) to position
85
+ * Use the side nav area components (`SideNavHeader`, `SideNavBody`, `SideNavFooter`) to position
86
86
  * content within areas of the side nav.
87
87
  *
88
88
  * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
@@ -1,6 +1,6 @@
1
1
  export { SideNav } from '../../ui/page-layout/side-nav/side-nav';
2
2
  export { SideNavHeader } from '../../ui/page-layout/side-nav/side-nav-header';
3
- export { SideNavContent } from '../../ui/page-layout/side-nav/side-nav-content';
3
+ export { SideNavBody } from '../../ui/page-layout/side-nav/side-nav-content';
4
4
  export { SideNavFooter } from '../../ui/page-layout/side-nav/side-nav-footer';
5
5
  export { SideNavToggleButton } from '../../ui/page-layout/side-nav/toggle-button';
6
6
  export { useToggleSideNav } from '../../ui/page-layout/side-nav/use-toggle-side-nav';
@@ -12,7 +12,7 @@ export { MainStickyHeader } from './ui/page-layout/main/main-sticky-header';
12
12
  export { SideNavToggleButton, type SideNavVisibilityChangeAnalyticsAttributes, } from './ui/page-layout/side-nav/toggle-button';
13
13
  export { useToggleSideNav } from './ui/page-layout/side-nav/use-toggle-side-nav';
14
14
  export { SideNavHeader } from './ui/page-layout/side-nav/side-nav-header';
15
- export { SideNavContent } from './ui/page-layout/side-nav/side-nav-content';
15
+ export { SideNavBody } from './ui/page-layout/side-nav/side-nav-content';
16
16
  export { SideNavFooter } from './ui/page-layout/side-nav/side-nav-footer';
17
17
  export { PanelSplitter } from './ui/page-layout/panel-splitter/panel-splitter';
18
18
  export { PanelSplitterProvider } from './ui/page-layout/panel-splitter/provider';
@@ -48,8 +48,3 @@ export declare const openLayerObserverSideNavNamespace = "side-nav";
48
48
  export declare const openLayerObserverTopNavStartNamespace = "top-nav-start";
49
49
  export declare const openLayerObserverTopNavMiddleNamespace = "top-nav-middle";
50
50
  export declare const openLayerObserverTopNavEndNamespace = "top-nav-end";
51
- /**
52
- * CSS scroll timeline variable for the side nav content scroll indicator.
53
- * The scroll timeline is created in SideNavContent, and then used by TopNavStart to apply the scroll indicator line.
54
- */
55
- export declare const sideNavContentScrollTimelineVar = "--sNcst";
@@ -9,7 +9,7 @@ import React, { type ReactNode } from 'react';
9
9
  * It will grow to take up the available space in the side nav — this is used to push the footer to the
10
10
  * bottom of the side nav.
11
11
  */
12
- export declare const SideNavContent: React.ForwardRefExoticComponent<React.PropsWithoutRef<SideNavContentProps> & React.RefAttributes<HTMLDivElement>>;
12
+ export declare const SideNavBody: React.ForwardRefExoticComponent<React.PropsWithoutRef<SideNavContentProps> & React.RefAttributes<HTMLDivElement>>;
13
13
  type SideNavContentProps = {
14
14
  /**
15
15
  * The content of the layout area.
@@ -9,7 +9,7 @@ import { type VisibilityCallback } from './use-side-nav-visibility-callbacks';
9
9
  type SideNavProps = CommonSlotProps & {
10
10
  /**
11
11
  * The content of the layout area.
12
- * Should include side nav layout areas as required: `SideNavHeader`, `SideNavContent`, `SideNavFooter`.
12
+ * Should include side nav layout areas as required: `SideNavHeader`, `SideNavBody`, `SideNavFooter`.
13
13
  * Within these, you can use side nav menu items.
14
14
  */
15
15
  children: React.ReactNode;
@@ -82,7 +82,7 @@ export declare const onPeekStartDelayMs = 500;
82
82
  /**
83
83
  * The side navigation layout area. It will show on the left (inline start) of the screen.
84
84
  *
85
- * Use the side nav area components (`SideNavHeader`, `SideNavContent`, `SideNavFooter`) to position
85
+ * Use the side nav area components (`SideNavHeader`, `SideNavBody`, `SideNavFooter`) to position
86
86
  * content within areas of the side nav.
87
87
  *
88
88
  * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/navigation-system",
3
- "version": "6.4.0",
3
+ "version": "7.1.0",
4
4
  "description": "The latest navigation system for Atlassian apps.",
5
5
  "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
6
6
  "author": "Atlassian Pty Ltd",
@@ -63,7 +63,7 @@
63
63
  }
64
64
  },
65
65
  "dependencies": {
66
- "@atlaskit/analytics-next": "^11.1.0",
66
+ "@atlaskit/analytics-next": "^11.2.0",
67
67
  "@atlaskit/avatar": "^25.10.0",
68
68
  "@atlaskit/button": "^23.10.0",
69
69
  "@atlaskit/css": "^0.19.0",
@@ -75,8 +75,8 @@
75
75
  "@atlaskit/popup": "^4.14.0",
76
76
  "@atlaskit/pragmatic-drag-and-drop": "^1.7.0",
77
77
  "@atlaskit/primitives": "^18.0.0",
78
- "@atlaskit/side-nav-items": "^1.11.0",
79
- "@atlaskit/tokens": "^11.1.0",
78
+ "@atlaskit/side-nav-items": "^1.12.0",
79
+ "@atlaskit/tokens": "^11.2.0",
80
80
  "@atlaskit/tooltip": "^21.0.0",
81
81
  "@atlaskit/visually-hidden": "^3.0.0",
82
82
  "@babel/runtime": "^7.0.0",
@@ -97,13 +97,13 @@
97
97
  "@atlaskit/badge": "^18.4.0",
98
98
  "@atlaskit/banner": "^14.0.0",
99
99
  "@atlaskit/breadcrumbs": "^15.3.0",
100
- "@atlaskit/dropdown-menu": "^16.7.0",
101
- "@atlaskit/form": "^15.4.0",
100
+ "@atlaskit/dropdown-menu": "^16.8.0",
101
+ "@atlaskit/form": "^15.5.0",
102
102
  "@atlaskit/heading": "^5.3.0",
103
103
  "@atlaskit/link": "^3.3.0",
104
104
  "@atlaskit/lozenge": "^13.5.0",
105
105
  "@atlaskit/menu": "^8.4.0",
106
- "@atlaskit/modal-dialog": "^14.11.0",
106
+ "@atlaskit/modal-dialog": "^14.12.0",
107
107
  "@atlaskit/onboarding": "^14.5.0",
108
108
  "@atlaskit/page-header": "^12.1.0",
109
109
  "@atlaskit/page-layout": "^4.2.0",
@@ -147,9 +147,6 @@
147
147
  "platform_dst_nav4_ribbon_slot": {
148
148
  "type": "boolean"
149
149
  },
150
- "platform_dst_nav4_fhs_feedback_1": {
151
- "type": "boolean"
152
- },
153
150
  "platform_dst_nav4_top_nav_increase_height": {
154
151
  "type": "boolean"
155
152
  },