@atlaskit/navigation-system 2.9.0 → 2.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/constellation/index/examples.mdx +2 -1
  3. package/dist/cjs/ui/menu-section/divider.compiled.css +1 -1
  4. package/dist/cjs/ui/menu-section/divider.js +2 -2
  5. package/dist/cjs/ui/page-layout/panel.compiled.css +1 -1
  6. package/dist/cjs/ui/page-layout/panel.js +1 -1
  7. package/dist/cjs/ui/page-layout/root.js +6 -2
  8. package/dist/cjs/ui/page-layout/side-nav/side-nav.compiled.css +3 -3
  9. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +7 -2
  10. package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +4 -1
  11. package/dist/cjs/ui/page-layout/side-nav/visibility-provider.js +11 -2
  12. package/dist/cjs/ui/page-layout/top-nav/top-nav.compiled.css +2 -2
  13. package/dist/cjs/ui/page-layout/top-nav/top-nav.js +2 -2
  14. package/dist/es2019/ui/menu-section/divider.compiled.css +1 -1
  15. package/dist/es2019/ui/menu-section/divider.js +1 -1
  16. package/dist/es2019/ui/page-layout/panel.compiled.css +1 -1
  17. package/dist/es2019/ui/page-layout/panel.js +1 -1
  18. package/dist/es2019/ui/page-layout/root.js +5 -2
  19. package/dist/es2019/ui/page-layout/side-nav/side-nav.compiled.css +3 -3
  20. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +7 -2
  21. package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +4 -1
  22. package/dist/es2019/ui/page-layout/side-nav/visibility-provider.js +11 -2
  23. package/dist/es2019/ui/page-layout/top-nav/top-nav.compiled.css +2 -2
  24. package/dist/es2019/ui/page-layout/top-nav/top-nav.js +2 -2
  25. package/dist/esm/ui/menu-section/divider.compiled.css +1 -1
  26. package/dist/esm/ui/menu-section/divider.js +2 -2
  27. package/dist/esm/ui/page-layout/panel.compiled.css +1 -1
  28. package/dist/esm/ui/page-layout/panel.js +1 -1
  29. package/dist/esm/ui/page-layout/root.js +6 -2
  30. package/dist/esm/ui/page-layout/side-nav/side-nav.compiled.css +3 -3
  31. package/dist/esm/ui/page-layout/side-nav/side-nav.js +7 -2
  32. package/dist/esm/ui/page-layout/side-nav/toggle-button.js +4 -1
  33. package/dist/esm/ui/page-layout/side-nav/visibility-provider.js +11 -2
  34. package/dist/esm/ui/page-layout/top-nav/top-nav.compiled.css +2 -2
  35. package/dist/esm/ui/page-layout/top-nav/top-nav.js +2 -2
  36. package/dist/types/ui/page-layout/root.d.ts +13 -1
  37. package/dist/types/ui/page-layout/side-nav/side-nav.d.ts +7 -0
  38. package/dist/types/ui/page-layout/side-nav/toggle-button.d.ts +7 -0
  39. package/dist/types/ui/page-layout/side-nav/visibility-provider.d.ts +2 -1
  40. package/dist/types-ts4.5/ui/page-layout/root.d.ts +13 -1
  41. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav.d.ts +7 -0
  42. package/dist/types-ts4.5/ui/page-layout/side-nav/toggle-button.d.ts +7 -0
  43. package/dist/types-ts4.5/ui/page-layout/side-nav/visibility-provider.d.ts +2 -1
  44. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlassian/navigation-system
2
2
 
3
+ ## 2.10.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`248faa32d4835`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/248faa32d4835) -
8
+ Internal changes to how borders are applied.
9
+ - Updated dependencies
10
+
11
+ ## 2.10.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`8c5f4864d7d4c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8c5f4864d7d4c) -
16
+ Adds `defaultSideNavCollapsed` prop to `Root` which replaces the `defaultCollapsed` props on
17
+ `SideNav` and `SideNavToggleButton`. This prop is enabled behind the
18
+ `platform_dst_nav4_full_height_sidebar_api_changes` feature gate. When this gate is cleaned up the
19
+ `defaultCollapsed` props will be removed.
20
+
3
21
  ## 2.9.0
4
22
 
5
23
  ### Minor Changes
@@ -31,7 +31,8 @@ For ready-made navigation experiences see
31
31
 
32
32
  - <a href="https://go.atlassian.com/nav4-interactive-example" target="_blank">
33
33
  Full screen interactive example
34
- </a> (only available for Atlassian employees at this stage).
34
+ </a>
35
+ (only available for Atlassian employees at this stage).
35
36
 
36
37
  ## Related
37
38
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  ._h7alglyw{border-inline:none}._179rglyw{border-block-end:none}
3
- ._mqm2pp12{border-block-start:var(--_18x9sjc)}
3
+ ._mqm2kzr3{border-block-start:var(--_1hbmzy2)}
4
4
  ._1bsb1osq{width:100%}
@@ -27,9 +27,9 @@ var Divider = exports.Divider = function Divider() {
27
27
  * but it probably isn't necessary.
28
28
  */
29
29
  role: "none",
30
- className: (0, _runtime.ax)(["_h7alglyw _179rglyw _mqm2pp12 _1bsb1osq"]),
30
+ className: (0, _runtime.ax)(["_h7alglyw _179rglyw _mqm2kzr3 _1bsb1osq"]),
31
31
  style: {
32
- "--_18x9sjc": (0, _runtime.ix)("1px solid ".concat("var(--ds-border, #091E4224)"))
32
+ "--_1hbmzy2": (0, _runtime.ix)("var(--ds-border-width, 1px)".concat(" solid ", "var(--ds-border, #091E4224)"))
33
33
  }
34
34
  });
35
35
  };
@@ -14,5 +14,5 @@
14
14
  ._kqsw1if8{position:sticky}
15
15
  ._vchhusvi{box-sizing:border-box}
16
16
  @media (min-width:48rem){._14b54rrg{width:var(--n_pnlRsz,var(--n_pnlW))}}
17
- @media (min-width:64rem){._1w6ezgxb{border-inline-start:1px solid var(--ds-border,#091e4224)}._scbpglyw{box-shadow:none}._4ap3vuon{background-color:var(--ds-surface,#fff)}}
17
+ @media (min-width:64rem){._1w6e7r9e{border-inline-start:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}._scbpglyw{box-shadow:none}._4ap3vuon{background-color:var(--ds-surface,#fff)}}
18
18
  @media (min-width:90rem){._1dhy1c6w{grid-area:panel}._9sns1wug{z-index:auto}}
@@ -36,7 +36,7 @@ var fallbackDefaultWidth = 365;
36
36
  var fallbackResizeMinWidth = 400;
37
37
  var styles = {
38
38
  root: "_nd5l1b6c _10fph9n0 _vchhusvi _1pbykb7n _4t3ieqxy _kqsw1if8 _152timx3 _bfhk1bhr _1bsb1dxx _14b54rrg _4ap3vuon _1dhy1c6w _9sns1wug",
39
- border: "_191wglyw _16qs1cd0 _1w6ezgxb _scbpglyw",
39
+ border: "_191wglyw _16qs1cd0 _1w6e7r9e _scbpglyw",
40
40
  scrollContainer: "_1reo1wug _18m91wug _4t3i1osq",
41
41
  hidden: "_1e0cglyw"
42
42
  };
@@ -35,7 +35,9 @@ function Root(_ref) {
35
35
  UNSAFE_dangerouslyHoistSlotSizes = _ref$UNSAFE_dangerous === void 0 ? false : _ref$UNSAFE_dangerous,
36
36
  _ref$skipLinksLabel = _ref.skipLinksLabel,
37
37
  skipLinksLabel = _ref$skipLinksLabel === void 0 ? 'Skip to:' : _ref$skipLinksLabel,
38
- testId = _ref.testId;
38
+ testId = _ref.testId,
39
+ _ref$defaultSideNavCo = _ref.defaultSideNavCollapsed,
40
+ defaultSideNavCollapsed = _ref$defaultSideNavCo === void 0 ? false : _ref$defaultSideNavCo;
39
41
  var ref = (0, _react.useRef)(null);
40
42
  (0, _react.useEffect)(function () {
41
43
  if (process.env.NODE_ENV !== 'production') {
@@ -50,7 +52,9 @@ function Root(_ref) {
50
52
  }
51
53
  }
52
54
  }, []);
53
- return /*#__PURE__*/_react.default.createElement(_visibilityProvider.SideNavVisibilityProvider, null, /*#__PURE__*/_react.default.createElement(_toggleButtonProvider.SideNavToggleButtonProvider, null, /*#__PURE__*/_react.default.createElement(_elementContext.SideNavElementProvider, null, /*#__PURE__*/_react.default.createElement(_topNavStartContextProvider.TopNavStartProvider, null, /*#__PURE__*/_react.default.createElement(_openLayerObserver.OpenLayerObserver, null, /*#__PURE__*/_react.default.createElement(_hoistSlotSizesContext.DangerouslyHoistSlotSizes.Provider, {
55
+ return /*#__PURE__*/_react.default.createElement(_visibilityProvider.SideNavVisibilityProvider, {
56
+ defaultCollapsed: defaultSideNavCollapsed
57
+ }, /*#__PURE__*/_react.default.createElement(_toggleButtonProvider.SideNavToggleButtonProvider, null, /*#__PURE__*/_react.default.createElement(_elementContext.SideNavElementProvider, null, /*#__PURE__*/_react.default.createElement(_topNavStartContextProvider.TopNavStartProvider, null, /*#__PURE__*/_react.default.createElement(_openLayerObserver.OpenLayerObserver, null, /*#__PURE__*/_react.default.createElement(_hoistSlotSizesContext.DangerouslyHoistSlotSizes.Provider, {
54
58
  value: UNSAFE_dangerouslyHoistSlotSizes
55
59
  }, /*#__PURE__*/_react.default.createElement(_skipLinksProvider.SkipLinksProvider, {
56
60
  label: skipLinksLabel,
@@ -1,8 +1,8 @@
1
1
 
2
2
  ._nd5l1b6c{grid-area:main/aside/aside/aside}
3
3
  ._191wglyw{border-inline-start:none}
4
- ._t51zglyw{border-inline-end:none}
5
- ._t51zzgxb{border-inline-end:1px solid var(--ds-border,#091e4224)}._152timx3{inset-block-start:calc(var(--n_bnrM, 0px) + var(--n_tNvM, 0px))}
4
+ ._t51z7r9e{border-inline-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}
5
+ ._t51zglyw{border-inline-end:none}._152timx3{inset-block-start:calc(var(--n_bnrM, 0px) + var(--n_tNvM, 0px))}
6
6
  ._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
7
7
  ._1bah1yb4{justify-content:space-between}
8
8
  ._1bsb1ego{width:min(90%,20pc)}
@@ -16,5 +16,5 @@
16
16
  ._kqsw1if8{position:sticky}
17
17
  ._vchhusvi{box-sizing:border-box}
18
18
  @media (min-width:48rem){._14b5hc79{width:var(--n_snvRsz,var(--n_sNvw))}}
19
- @media (min-width:64rem){._165t56xv{height:calc(100vh - var(--n_bnrM, 0px))}._180k1wjm{inset-block-start:calc(var(--n_bnrM, 0px))}._26vxoned{padding-block-start:calc(var(--n_tNvM, 0px))}._1mt19dtb{margin-block-start:calc(var(--n_tNvM, 0px)*-1)}._dm2518uv{display:initial}._dm25glyw{display:none}._p5clglyw{border-inline-end:none}._p5clzgxb{border-inline-end:1px solid var(--ds-border,#091e4224)}._qiln1gzg{grid-area:main}._4ap31bhr{background-color:var(--ds-surface-overlay,#fff)}._scbp1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}._qilnk0mc{grid-area:side-nav}._4ap3vuon{background-color:var(--ds-surface,#fff)}._scbpglyw{box-shadow:none}}
19
+ @media (min-width:64rem){._165t56xv{height:calc(100vh - var(--n_bnrM, 0px))}._180k1wjm{inset-block-start:calc(var(--n_bnrM, 0px))}._26vxoned{padding-block-start:calc(var(--n_tNvM, 0px))}._1mt19dtb{margin-block-start:calc(var(--n_tNvM, 0px)*-1)}._dm2518uv{display:initial}._dm25glyw{display:none}._p5cl7r9e{border-inline-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}._p5clglyw{border-inline-end:none}._qiln1gzg{grid-area:main}._4ap31bhr{background-color:var(--ds-surface-overlay,#fff)}._scbp1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}._qilnk0mc{grid-area:side-nav}._4ap3vuon{background-color:var(--ds-surface,#fff)}._scbpglyw{box-shadow:none}}
20
20
  @supports not (-moz-appearance:none){@media (prefers-reduced-motion:no-preference){._139f8iot{transition-property:transform,display}._1tpvfnf5{transition-duration:.2s}._sylc1a5r{transition-behavior:allow-discrete}._1uwsjq3t{transform:translateX(-100%)}}@media (prefers-reduced-motion:no-preference){@starting-style{._oyeijq3t{transform:translateX(-100%)}}._139f8iot{transition-property:transform,display}._1tpvfnf5{transition-duration:.2s}._sylc1a5r{transition-behavior:allow-discrete}}}
@@ -52,8 +52,8 @@ function getResizeBounds() {
52
52
  var openLayerObserverSideNavNamespace = 'side-nav';
53
53
  var styles = {
54
54
  root: "_nd5l1b6c _bfhk1bhr _16qs1cd0 _vchhusvi _4t3ieqxy _152timx3 _kqsw1if8 _1bsb1ego _1pbycs5v _14b5hc79 _qilnk0mc _4ap3vuon _scbpglyw",
55
- oldBorder: "_t51zzgxb",
56
- newBorder: "_191wglyw _t51zglyw _p5clzgxb",
55
+ oldBorder: "_t51z7r9e",
56
+ newBorder: "_191wglyw _t51zglyw _p5cl7r9e",
57
57
  newBorderFlyoutOpen: "_p5clglyw",
58
58
  flyoutOpen: "_qiln1gzg _4ap31bhr _scbp1cd0 _139f8iot _1tpvfnf5 _sylc1a5r _oyeijq3t",
59
59
  flyoutAnimateClosed: "_1e0cglyw _qiln1gzg _139f8iot _1tpvfnf5 _sylc1a5r _1uwsjq3t",
@@ -247,6 +247,11 @@ function SideNavInternal(_ref) {
247
247
  trigger: 'click-outside-on-mobile'
248
248
  });
249
249
  (0, _react.useEffect)(function () {
250
+ if ((0, _platformFeatureFlags.fg)('platform_dst_nav4_full_height_sidebar_api_changes')) {
251
+ // We are passing initial state to the Root now, so no initial sync is required
252
+ return;
253
+ }
254
+
250
255
  // Sync the visibility in context (provided in `<Root>`) with the local `defaultCollapsed` prop provided to `SideNav`
251
256
  // after SSR hydration. This should only run once, after the initial render on the client.
252
257
  setSideNavState({
@@ -53,7 +53,10 @@ var SideNavToggleButton = exports.SideNavToggleButton = function SideNavToggleBu
53
53
  }),
54
54
  isSideNavExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop,
55
55
  isSideNavExpandedOnMobile = _useSideNavVisibility.isExpandedOnMobile;
56
- var _useState = (0, _react.useState)(!defaultCollapsed),
56
+
57
+ // When `platform_dst_nav4_full_height_sidebar_api_changes` is enabled,
58
+ // we default to the desktop state for SSR
59
+ var _useState = (0, _react.useState)((0, _platformFeatureFlags.fg)('platform_dst_nav4_full_height_sidebar_api_changes') ? isSideNavExpandedOnDesktop : !defaultCollapsed),
57
60
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
58
61
  isSideNavExpanded = _useState2[0],
59
62
  setIsSideNavExpanded = _useState2[1];
@@ -8,15 +8,24 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.SideNavVisibilityProvider = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  var _visibilityContext = require("./visibility-context");
12
13
  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); }
13
14
  /**
14
15
  * Manages the side nav visibility state and provides the context.
15
16
  */
16
17
  var SideNavVisibilityProvider = exports.SideNavVisibilityProvider = function SideNavVisibilityProvider(_ref) {
17
- var children = _ref.children;
18
+ var children = _ref.children,
19
+ defaultCollapsed = _ref.defaultCollapsed;
20
+ var initialState = (0, _platformFeatureFlags.fg)('platform_dst_nav4_full_height_sidebar_api_changes') ? {
21
+ desktop: defaultCollapsed ? 'collapsed' : 'expanded',
22
+ mobile: 'collapsed',
23
+ flyout: 'closed',
24
+ lastTrigger: null
25
+ } : null;
26
+
18
27
  // Defaults to null so we can determine if the value has been set yet (for SSR)
19
- var _useState = (0, _react.useState)(null),
28
+ var _useState = (0, _react.useState)(initialState),
20
29
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
21
30
  sideNavState = _useState2[0],
22
31
  setSideNavState = _useState2[1];
@@ -2,8 +2,8 @@
2
2
  ._nd5l8cbt{grid-area:top-bar}
3
3
  ._zulpu2gc{gap:var(--ds-space-100,8px)}
4
4
  ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
5
- ._179rglyw{border-block-end:none}
6
- ._179rzgxb{border-block-end:1px solid var(--ds-border,#091e4224)}._152t1nws{inset-block-start:var(--n_bnrM,0)}
5
+ ._179r7r9e{border-block-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}
6
+ ._179rglyw{border-block-end:none}._152t1nws{inset-block-start:var(--n_bnrM,0)}
7
7
  ._1bsb1osq{width:100%}
8
8
  ._1e0c11p5{display:grid}
9
9
  ._1pbyegat{z-index:4}
@@ -32,7 +32,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
32
32
  * - The background sits below the expanded side nav
33
33
  */
34
34
  var styles = {
35
- root: "_nd5l8cbt _zulpu2gc _18zrutpp _179rzgxb _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
35
+ root: "_nd5l8cbt _zulpu2gc _18zrutpp _179r7r9e _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
36
36
  fullHeightSidebar: "_179rglyw _bozgze3t _y4tiutpp _bfhkglyw _lcxvglyw _pdlmutpp",
37
37
  fullHeightSidebarExpanded: "_1rqt15p1"
38
38
  };
@@ -43,7 +43,7 @@ var styles = {
43
43
  * This is on a lower z-index than the expanded side nav, and is separate to the top nav items which are above the expanded side nav.
44
44
  */
45
45
  var backgroundStyles = {
46
- root: "_nd5l8cbt _179rzgxb _1bsb1osq _4t3i1osq _bfhkvuon _vchhusvi _152t1nws _kqsw1if8 _lcxvglyw _1pbyegat",
46
+ root: "_nd5l8cbt _179r7r9e _1bsb1osq _4t3i1osq _bfhkvuon _vchhusvi _152t1nws _kqsw1if8 _lcxvglyw _1pbyegat",
47
47
  sideNavExpanded: "_hyzqcs5v"
48
48
  };
49
49
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  ._h7alglyw{border-inline:none}._179rglyw{border-block-end:none}
3
- ._mqm2zgxb{border-block-start:1px solid var(--ds-border,#091e4224)}
3
+ ._mqm27r9e{border-block-start:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}
4
4
  ._1bsb1osq{width:100%}
@@ -18,5 +18,5 @@ export const Divider = () => /*#__PURE__*/React.createElement("hr", {
18
18
  * but it probably isn't necessary.
19
19
  */
20
20
  role: "none",
21
- className: ax(["_h7alglyw _179rglyw _mqm2zgxb _1bsb1osq"])
21
+ className: ax(["_h7alglyw _179rglyw _mqm27r9e _1bsb1osq"])
22
22
  });
@@ -14,5 +14,5 @@
14
14
  ._kqsw1if8{position:sticky}
15
15
  ._vchhusvi{box-sizing:border-box}
16
16
  @media (min-width:48rem){._14b54rrg{width:var(--n_pnlRsz,var(--n_pnlW))}}
17
- @media (min-width:64rem){._1w6ezgxb{border-inline-start:1px solid var(--ds-border,#091e4224)}._scbpglyw{box-shadow:none}._4ap3vuon{background-color:var(--ds-surface,#fff)}}
17
+ @media (min-width:64rem){._1w6e7r9e{border-inline-start:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}._scbpglyw{box-shadow:none}._4ap3vuon{background-color:var(--ds-surface,#fff)}}
18
18
  @media (min-width:90rem){._1dhy1c6w{grid-area:panel}._9sns1wug{z-index:auto}}
@@ -25,7 +25,7 @@ const fallbackDefaultWidth = 365;
25
25
  const fallbackResizeMinWidth = 400;
26
26
  const styles = {
27
27
  root: "_nd5l1b6c _10fph9n0 _vchhusvi _1pbykb7n _4t3ieqxy _kqsw1if8 _152timx3 _bfhk1bhr _1bsb1dxx _14b54rrg _4ap3vuon _1dhy1c6w _9sns1wug",
28
- border: "_191wglyw _16qs1cd0 _1w6ezgxb _scbpglyw",
28
+ border: "_191wglyw _16qs1cd0 _1w6e7r9e _scbpglyw",
29
29
  scrollContainer: "_1reo1wug _18m91wug _4t3i1osq",
30
30
  hidden: "_1e0cglyw"
31
31
  };
@@ -25,7 +25,8 @@ export function Root({
25
25
  xcss,
26
26
  UNSAFE_dangerouslyHoistSlotSizes = false,
27
27
  skipLinksLabel = 'Skip to:',
28
- testId
28
+ testId,
29
+ defaultSideNavCollapsed = false
29
30
  }) {
30
31
  const ref = useRef(null);
31
32
  useEffect(() => {
@@ -50,7 +51,9 @@ This message will not be displayed in production.
50
51
  }
51
52
  }
52
53
  }, []);
53
- return /*#__PURE__*/React.createElement(SideNavVisibilityProvider, null, /*#__PURE__*/React.createElement(SideNavToggleButtonProvider, null, /*#__PURE__*/React.createElement(SideNavElementProvider, null, /*#__PURE__*/React.createElement(TopNavStartProvider, null, /*#__PURE__*/React.createElement(OpenLayerObserver, null, /*#__PURE__*/React.createElement(DangerouslyHoistSlotSizes.Provider, {
54
+ return /*#__PURE__*/React.createElement(SideNavVisibilityProvider, {
55
+ defaultCollapsed: defaultSideNavCollapsed
56
+ }, /*#__PURE__*/React.createElement(SideNavToggleButtonProvider, null, /*#__PURE__*/React.createElement(SideNavElementProvider, null, /*#__PURE__*/React.createElement(TopNavStartProvider, null, /*#__PURE__*/React.createElement(OpenLayerObserver, null, /*#__PURE__*/React.createElement(DangerouslyHoistSlotSizes.Provider, {
54
57
  value: UNSAFE_dangerouslyHoistSlotSizes
55
58
  }, /*#__PURE__*/React.createElement(SkipLinksProvider, {
56
59
  label: skipLinksLabel,
@@ -1,8 +1,8 @@
1
1
 
2
2
  ._nd5l1b6c{grid-area:main/aside/aside/aside}
3
3
  ._191wglyw{border-inline-start:none}
4
- ._t51zglyw{border-inline-end:none}
5
- ._t51zzgxb{border-inline-end:1px solid var(--ds-border,#091e4224)}._152timx3{inset-block-start:calc(var(--n_bnrM, 0px) + var(--n_tNvM, 0px))}
4
+ ._t51z7r9e{border-inline-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}
5
+ ._t51zglyw{border-inline-end:none}._152timx3{inset-block-start:calc(var(--n_bnrM, 0px) + var(--n_tNvM, 0px))}
6
6
  ._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
7
7
  ._1bah1yb4{justify-content:space-between}
8
8
  ._1bsb1ego{width:min(90%,20pc)}
@@ -16,5 +16,5 @@
16
16
  ._kqsw1if8{position:sticky}
17
17
  ._vchhusvi{box-sizing:border-box}
18
18
  @media (min-width:48rem){._14b5hc79{width:var(--n_snvRsz,var(--n_sNvw))}}
19
- @media (min-width:64rem){._165t56xv{height:calc(100vh - var(--n_bnrM, 0px))}._180k1wjm{inset-block-start:calc(var(--n_bnrM, 0px))}._26vxoned{padding-block-start:calc(var(--n_tNvM, 0px))}._1mt19dtb{margin-block-start:calc(var(--n_tNvM, 0px)*-1)}._dm2518uv{display:initial}._dm25glyw{display:none}._p5clglyw{border-inline-end:none}._p5clzgxb{border-inline-end:1px solid var(--ds-border,#091e4224)}._qiln1gzg{grid-area:main}._4ap31bhr{background-color:var(--ds-surface-overlay,#fff)}._scbp1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}._qilnk0mc{grid-area:side-nav}._4ap3vuon{background-color:var(--ds-surface,#fff)}._scbpglyw{box-shadow:none}}
19
+ @media (min-width:64rem){._165t56xv{height:calc(100vh - var(--n_bnrM, 0px))}._180k1wjm{inset-block-start:calc(var(--n_bnrM, 0px))}._26vxoned{padding-block-start:calc(var(--n_tNvM, 0px))}._1mt19dtb{margin-block-start:calc(var(--n_tNvM, 0px)*-1)}._dm2518uv{display:initial}._dm25glyw{display:none}._p5cl7r9e{border-inline-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}._p5clglyw{border-inline-end:none}._qiln1gzg{grid-area:main}._4ap31bhr{background-color:var(--ds-surface-overlay,#fff)}._scbp1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}._qilnk0mc{grid-area:side-nav}._4ap3vuon{background-color:var(--ds-surface,#fff)}._scbpglyw{box-shadow:none}}
20
20
  @supports not (-moz-appearance:none){@media (prefers-reduced-motion:no-preference){._139f8iot{transition-property:transform,display}._1tpvfnf5{transition-duration:.2s}._sylc1a5r{transition-behavior:allow-discrete}._1uwsjq3t{transform:translateX(-100%)}}@media (prefers-reduced-motion:no-preference){@starting-style{._oyeijq3t{transform:translateX(-100%)}}._139f8iot{transition-property:transform,display}._1tpvfnf5{transition-duration:.2s}._sylc1a5r{transition-behavior:allow-discrete}}}
@@ -39,8 +39,8 @@ function getResizeBounds() {
39
39
  const openLayerObserverSideNavNamespace = 'side-nav';
40
40
  const styles = {
41
41
  root: "_nd5l1b6c _bfhk1bhr _16qs1cd0 _vchhusvi _4t3ieqxy _152timx3 _kqsw1if8 _1bsb1ego _1pbycs5v _14b5hc79 _qilnk0mc _4ap3vuon _scbpglyw",
42
- oldBorder: "_t51zzgxb",
43
- newBorder: "_191wglyw _t51zglyw _p5clzgxb",
42
+ oldBorder: "_t51z7r9e",
43
+ newBorder: "_191wglyw _t51zglyw _p5cl7r9e",
44
44
  newBorderFlyoutOpen: "_p5clglyw",
45
45
  flyoutOpen: "_qiln1gzg _4ap31bhr _scbp1cd0 _139f8iot _1tpvfnf5 _sylc1a5r _oyeijq3t",
46
46
  flyoutAnimateClosed: "_1e0cglyw _qiln1gzg _139f8iot _1tpvfnf5 _sylc1a5r _1uwsjq3t",
@@ -230,6 +230,11 @@ function SideNavInternal({
230
230
  trigger: 'click-outside-on-mobile'
231
231
  });
232
232
  useEffect(() => {
233
+ if (fg('platform_dst_nav4_full_height_sidebar_api_changes')) {
234
+ // We are passing initial state to the Root now, so no initial sync is required
235
+ return;
236
+ }
237
+
233
238
  // Sync the visibility in context (provided in `<Root>`) with the local `defaultCollapsed` prop provided to `SideNav`
234
239
  // after SSR hydration. This should only run once, after the initial render on the client.
235
240
  setSideNavState({
@@ -44,7 +44,10 @@ export const SideNavToggleButton = ({
44
44
  } = useSideNavVisibility({
45
45
  defaultCollapsed
46
46
  });
47
- const [isSideNavExpanded, setIsSideNavExpanded] = useState(!defaultCollapsed);
47
+
48
+ // When `platform_dst_nav4_full_height_sidebar_api_changes` is enabled,
49
+ // we default to the desktop state for SSR
50
+ const [isSideNavExpanded, setIsSideNavExpanded] = useState(fg('platform_dst_nav4_full_height_sidebar_api_changes') ? isSideNavExpandedOnDesktop : !defaultCollapsed);
48
51
  const ref = useContext(SideNavToggleButtonAttachRef);
49
52
  const elementRef = useRef(null);
50
53
  useEffect(() => {
@@ -1,14 +1,23 @@
1
1
  import React, { useState } from 'react';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
2
3
  import { SetSideNavVisibilityState, SideNavVisibilityState } from './visibility-context';
3
4
 
4
5
  /**
5
6
  * Manages the side nav visibility state and provides the context.
6
7
  */
7
8
  export const SideNavVisibilityProvider = ({
8
- children
9
+ children,
10
+ defaultCollapsed
9
11
  }) => {
12
+ const initialState = fg('platform_dst_nav4_full_height_sidebar_api_changes') ? {
13
+ desktop: defaultCollapsed ? 'collapsed' : 'expanded',
14
+ mobile: 'collapsed',
15
+ flyout: 'closed',
16
+ lastTrigger: null
17
+ } : null;
18
+
10
19
  // Defaults to null so we can determine if the value has been set yet (for SSR)
11
- const [sideNavState, setSideNavState] = useState(null);
20
+ const [sideNavState, setSideNavState] = useState(initialState);
12
21
  return /*#__PURE__*/React.createElement(SideNavVisibilityState.Provider, {
13
22
  value: sideNavState
14
23
  }, /*#__PURE__*/React.createElement(SetSideNavVisibilityState.Provider, {
@@ -2,8 +2,8 @@
2
2
  ._nd5l8cbt{grid-area:top-bar}
3
3
  ._zulpu2gc{gap:var(--ds-space-100,8px)}
4
4
  ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
5
- ._179rglyw{border-block-end:none}
6
- ._179rzgxb{border-block-end:1px solid var(--ds-border,#091e4224)}._152t1nws{inset-block-start:var(--n_bnrM,0)}
5
+ ._179r7r9e{border-block-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}
6
+ ._179rglyw{border-block-end:none}._152t1nws{inset-block-start:var(--n_bnrM,0)}
7
7
  ._1bsb1osq{width:100%}
8
8
  ._1e0c11p5{display:grid}
9
9
  ._1pbyegat{z-index:4}
@@ -21,7 +21,7 @@ import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
21
21
  * - The background sits below the expanded side nav
22
22
  */
23
23
  const styles = {
24
- root: "_nd5l8cbt _zulpu2gc _18zrutpp _179rzgxb _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
24
+ root: "_nd5l8cbt _zulpu2gc _18zrutpp _179r7r9e _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
25
25
  fullHeightSidebar: "_179rglyw _bozgze3t _y4tiutpp _bfhkglyw _lcxvglyw _pdlmutpp",
26
26
  fullHeightSidebarExpanded: "_1rqt15p1"
27
27
  };
@@ -32,7 +32,7 @@ const styles = {
32
32
  * This is on a lower z-index than the expanded side nav, and is separate to the top nav items which are above the expanded side nav.
33
33
  */
34
34
  const backgroundStyles = {
35
- root: "_nd5l8cbt _179rzgxb _1bsb1osq _4t3i1osq _bfhkvuon _vchhusvi _152t1nws _kqsw1if8 _lcxvglyw _1pbyegat",
35
+ root: "_nd5l8cbt _179r7r9e _1bsb1osq _4t3i1osq _bfhkvuon _vchhusvi _152t1nws _kqsw1if8 _lcxvglyw _1pbyegat",
36
36
  sideNavExpanded: "_hyzqcs5v"
37
37
  };
38
38
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  ._h7alglyw{border-inline:none}._179rglyw{border-block-end:none}
3
- ._mqm2pp12{border-block-start:var(--_18x9sjc)}
3
+ ._mqm2kzr3{border-block-start:var(--_1hbmzy2)}
4
4
  ._1bsb1osq{width:100%}
@@ -19,9 +19,9 @@ export var Divider = function Divider() {
19
19
  * but it probably isn't necessary.
20
20
  */
21
21
  role: "none",
22
- className: ax(["_h7alglyw _179rglyw _mqm2pp12 _1bsb1osq"]),
22
+ className: ax(["_h7alglyw _179rglyw _mqm2kzr3 _1bsb1osq"]),
23
23
  style: {
24
- "--_18x9sjc": ix("1px solid ".concat("var(--ds-border, #091E4224)"))
24
+ "--_1hbmzy2": ix("var(--ds-border-width, 1px)".concat(" solid ", "var(--ds-border, #091E4224)"))
25
25
  }
26
26
  });
27
27
  };
@@ -14,5 +14,5 @@
14
14
  ._kqsw1if8{position:sticky}
15
15
  ._vchhusvi{box-sizing:border-box}
16
16
  @media (min-width:48rem){._14b54rrg{width:var(--n_pnlRsz,var(--n_pnlW))}}
17
- @media (min-width:64rem){._1w6ezgxb{border-inline-start:1px solid var(--ds-border,#091e4224)}._scbpglyw{box-shadow:none}._4ap3vuon{background-color:var(--ds-surface,#fff)}}
17
+ @media (min-width:64rem){._1w6e7r9e{border-inline-start:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}._scbpglyw{box-shadow:none}._4ap3vuon{background-color:var(--ds-surface,#fff)}}
18
18
  @media (min-width:90rem){._1dhy1c6w{grid-area:panel}._9sns1wug{z-index:auto}}
@@ -27,7 +27,7 @@ var fallbackDefaultWidth = 365;
27
27
  var fallbackResizeMinWidth = 400;
28
28
  var styles = {
29
29
  root: "_nd5l1b6c _10fph9n0 _vchhusvi _1pbykb7n _4t3ieqxy _kqsw1if8 _152timx3 _bfhk1bhr _1bsb1dxx _14b54rrg _4ap3vuon _1dhy1c6w _9sns1wug",
30
- border: "_191wglyw _16qs1cd0 _1w6ezgxb _scbpglyw",
30
+ border: "_191wglyw _16qs1cd0 _1w6e7r9e _scbpglyw",
31
31
  scrollContainer: "_1reo1wug _18m91wug _4t3i1osq",
32
32
  hidden: "_1e0cglyw"
33
33
  };
@@ -27,7 +27,9 @@ export function Root(_ref) {
27
27
  UNSAFE_dangerouslyHoistSlotSizes = _ref$UNSAFE_dangerous === void 0 ? false : _ref$UNSAFE_dangerous,
28
28
  _ref$skipLinksLabel = _ref.skipLinksLabel,
29
29
  skipLinksLabel = _ref$skipLinksLabel === void 0 ? 'Skip to:' : _ref$skipLinksLabel,
30
- testId = _ref.testId;
30
+ testId = _ref.testId,
31
+ _ref$defaultSideNavCo = _ref.defaultSideNavCollapsed,
32
+ defaultSideNavCollapsed = _ref$defaultSideNavCo === void 0 ? false : _ref$defaultSideNavCo;
31
33
  var ref = useRef(null);
32
34
  useEffect(function () {
33
35
  if (process.env.NODE_ENV !== 'production') {
@@ -42,7 +44,9 @@ export function Root(_ref) {
42
44
  }
43
45
  }
44
46
  }, []);
45
- return /*#__PURE__*/React.createElement(SideNavVisibilityProvider, null, /*#__PURE__*/React.createElement(SideNavToggleButtonProvider, null, /*#__PURE__*/React.createElement(SideNavElementProvider, null, /*#__PURE__*/React.createElement(TopNavStartProvider, null, /*#__PURE__*/React.createElement(OpenLayerObserver, null, /*#__PURE__*/React.createElement(DangerouslyHoistSlotSizes.Provider, {
47
+ return /*#__PURE__*/React.createElement(SideNavVisibilityProvider, {
48
+ defaultCollapsed: defaultSideNavCollapsed
49
+ }, /*#__PURE__*/React.createElement(SideNavToggleButtonProvider, null, /*#__PURE__*/React.createElement(SideNavElementProvider, null, /*#__PURE__*/React.createElement(TopNavStartProvider, null, /*#__PURE__*/React.createElement(OpenLayerObserver, null, /*#__PURE__*/React.createElement(DangerouslyHoistSlotSizes.Provider, {
46
50
  value: UNSAFE_dangerouslyHoistSlotSizes
47
51
  }, /*#__PURE__*/React.createElement(SkipLinksProvider, {
48
52
  label: skipLinksLabel,
@@ -1,8 +1,8 @@
1
1
 
2
2
  ._nd5l1b6c{grid-area:main/aside/aside/aside}
3
3
  ._191wglyw{border-inline-start:none}
4
- ._t51zglyw{border-inline-end:none}
5
- ._t51zzgxb{border-inline-end:1px solid var(--ds-border,#091e4224)}._152timx3{inset-block-start:calc(var(--n_bnrM, 0px) + var(--n_tNvM, 0px))}
4
+ ._t51z7r9e{border-inline-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}
5
+ ._t51zglyw{border-inline-end:none}._152timx3{inset-block-start:calc(var(--n_bnrM, 0px) + var(--n_tNvM, 0px))}
6
6
  ._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
7
7
  ._1bah1yb4{justify-content:space-between}
8
8
  ._1bsb1ego{width:min(90%,20pc)}
@@ -16,5 +16,5 @@
16
16
  ._kqsw1if8{position:sticky}
17
17
  ._vchhusvi{box-sizing:border-box}
18
18
  @media (min-width:48rem){._14b5hc79{width:var(--n_snvRsz,var(--n_sNvw))}}
19
- @media (min-width:64rem){._165t56xv{height:calc(100vh - var(--n_bnrM, 0px))}._180k1wjm{inset-block-start:calc(var(--n_bnrM, 0px))}._26vxoned{padding-block-start:calc(var(--n_tNvM, 0px))}._1mt19dtb{margin-block-start:calc(var(--n_tNvM, 0px)*-1)}._dm2518uv{display:initial}._dm25glyw{display:none}._p5clglyw{border-inline-end:none}._p5clzgxb{border-inline-end:1px solid var(--ds-border,#091e4224)}._qiln1gzg{grid-area:main}._4ap31bhr{background-color:var(--ds-surface-overlay,#fff)}._scbp1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}._qilnk0mc{grid-area:side-nav}._4ap3vuon{background-color:var(--ds-surface,#fff)}._scbpglyw{box-shadow:none}}
19
+ @media (min-width:64rem){._165t56xv{height:calc(100vh - var(--n_bnrM, 0px))}._180k1wjm{inset-block-start:calc(var(--n_bnrM, 0px))}._26vxoned{padding-block-start:calc(var(--n_tNvM, 0px))}._1mt19dtb{margin-block-start:calc(var(--n_tNvM, 0px)*-1)}._dm2518uv{display:initial}._dm25glyw{display:none}._p5cl7r9e{border-inline-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}._p5clglyw{border-inline-end:none}._qiln1gzg{grid-area:main}._4ap31bhr{background-color:var(--ds-surface-overlay,#fff)}._scbp1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}._qilnk0mc{grid-area:side-nav}._4ap3vuon{background-color:var(--ds-surface,#fff)}._scbpglyw{box-shadow:none}}
20
20
  @supports not (-moz-appearance:none){@media (prefers-reduced-motion:no-preference){._139f8iot{transition-property:transform,display}._1tpvfnf5{transition-duration:.2s}._sylc1a5r{transition-behavior:allow-discrete}._1uwsjq3t{transform:translateX(-100%)}}@media (prefers-reduced-motion:no-preference){@starting-style{._oyeijq3t{transform:translateX(-100%)}}._139f8iot{transition-property:transform,display}._1tpvfnf5{transition-duration:.2s}._sylc1a5r{transition-behavior:allow-discrete}}}
@@ -43,8 +43,8 @@ function getResizeBounds() {
43
43
  var openLayerObserverSideNavNamespace = 'side-nav';
44
44
  var styles = {
45
45
  root: "_nd5l1b6c _bfhk1bhr _16qs1cd0 _vchhusvi _4t3ieqxy _152timx3 _kqsw1if8 _1bsb1ego _1pbycs5v _14b5hc79 _qilnk0mc _4ap3vuon _scbpglyw",
46
- oldBorder: "_t51zzgxb",
47
- newBorder: "_191wglyw _t51zglyw _p5clzgxb",
46
+ oldBorder: "_t51z7r9e",
47
+ newBorder: "_191wglyw _t51zglyw _p5cl7r9e",
48
48
  newBorderFlyoutOpen: "_p5clglyw",
49
49
  flyoutOpen: "_qiln1gzg _4ap31bhr _scbp1cd0 _139f8iot _1tpvfnf5 _sylc1a5r _oyeijq3t",
50
50
  flyoutAnimateClosed: "_1e0cglyw _qiln1gzg _139f8iot _1tpvfnf5 _sylc1a5r _1uwsjq3t",
@@ -238,6 +238,11 @@ function SideNavInternal(_ref) {
238
238
  trigger: 'click-outside-on-mobile'
239
239
  });
240
240
  useEffect(function () {
241
+ if (fg('platform_dst_nav4_full_height_sidebar_api_changes')) {
242
+ // We are passing initial state to the Root now, so no initial sync is required
243
+ return;
244
+ }
245
+
241
246
  // Sync the visibility in context (provided in `<Root>`) with the local `defaultCollapsed` prop provided to `SideNav`
242
247
  // after SSR hydration. This should only run once, after the initial render on the client.
243
248
  setSideNavState({
@@ -44,7 +44,10 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
44
44
  }),
45
45
  isSideNavExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop,
46
46
  isSideNavExpandedOnMobile = _useSideNavVisibility.isExpandedOnMobile;
47
- var _useState = useState(!defaultCollapsed),
47
+
48
+ // When `platform_dst_nav4_full_height_sidebar_api_changes` is enabled,
49
+ // we default to the desktop state for SSR
50
+ var _useState = useState(fg('platform_dst_nav4_full_height_sidebar_api_changes') ? isSideNavExpandedOnDesktop : !defaultCollapsed),
48
51
  _useState2 = _slicedToArray(_useState, 2),
49
52
  isSideNavExpanded = _useState2[0],
50
53
  setIsSideNavExpanded = _useState2[1];
@@ -1,14 +1,23 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import React, { useState } from 'react';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
3
4
  import { SetSideNavVisibilityState, SideNavVisibilityState } from './visibility-context';
4
5
 
5
6
  /**
6
7
  * Manages the side nav visibility state and provides the context.
7
8
  */
8
9
  export var SideNavVisibilityProvider = function SideNavVisibilityProvider(_ref) {
9
- var children = _ref.children;
10
+ var children = _ref.children,
11
+ defaultCollapsed = _ref.defaultCollapsed;
12
+ var initialState = fg('platform_dst_nav4_full_height_sidebar_api_changes') ? {
13
+ desktop: defaultCollapsed ? 'collapsed' : 'expanded',
14
+ mobile: 'collapsed',
15
+ flyout: 'closed',
16
+ lastTrigger: null
17
+ } : null;
18
+
10
19
  // Defaults to null so we can determine if the value has been set yet (for SSR)
11
- var _useState = useState(null),
20
+ var _useState = useState(initialState),
12
21
  _useState2 = _slicedToArray(_useState, 2),
13
22
  sideNavState = _useState2[0],
14
23
  setSideNavState = _useState2[1];
@@ -2,8 +2,8 @@
2
2
  ._nd5l8cbt{grid-area:top-bar}
3
3
  ._zulpu2gc{gap:var(--ds-space-100,8px)}
4
4
  ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
5
- ._179rglyw{border-block-end:none}
6
- ._179rzgxb{border-block-end:1px solid var(--ds-border,#091e4224)}._152t1nws{inset-block-start:var(--n_bnrM,0)}
5
+ ._179r7r9e{border-block-end:var(--ds-border-width,1px) solid var(--ds-border,#091e4224)}
6
+ ._179rglyw{border-block-end:none}._152t1nws{inset-block-start:var(--n_bnrM,0)}
7
7
  ._1bsb1osq{width:100%}
8
8
  ._1e0c11p5{display:grid}
9
9
  ._1pbyegat{z-index:4}
@@ -23,7 +23,7 @@ import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
23
23
  * - The background sits below the expanded side nav
24
24
  */
25
25
  var styles = {
26
- root: "_nd5l8cbt _zulpu2gc _18zrutpp _179rzgxb _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
26
+ root: "_nd5l8cbt _zulpu2gc _18zrutpp _179r7r9e _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
27
27
  fullHeightSidebar: "_179rglyw _bozgze3t _y4tiutpp _bfhkglyw _lcxvglyw _pdlmutpp",
28
28
  fullHeightSidebarExpanded: "_1rqt15p1"
29
29
  };
@@ -34,7 +34,7 @@ var styles = {
34
34
  * This is on a lower z-index than the expanded side nav, and is separate to the top nav items which are above the expanded side nav.
35
35
  */
36
36
  var backgroundStyles = {
37
- root: "_nd5l8cbt _179rzgxb _1bsb1osq _4t3i1osq _bfhkvuon _vchhusvi _152t1nws _kqsw1if8 _lcxvglyw _1pbyegat",
37
+ root: "_nd5l8cbt _179r7r9e _1bsb1osq _4t3i1osq _bfhkvuon _vchhusvi _152t1nws _kqsw1if8 _lcxvglyw _1pbyegat",
38
38
  sideNavExpanded: "_hyzqcs5v"
39
39
  };
40
40
 
@@ -9,7 +9,7 @@ export declare const gridRootId = "unsafe-design-system-page-layout-root";
9
9
  * The root component of the navigation system. It wraps the underlying components with the necessary contexts allowing to use certain data and hooks
10
10
  * @param skipLinksLabel - The very first element of the layout is a skip links container that can be accessed by pressing Tab button and holds the links to the other sections of the layout thus improving accessibility. This parameter defines the header text for this container
11
11
  */
12
- export declare function Root({ children, xcss, UNSAFE_dangerouslyHoistSlotSizes, skipLinksLabel, testId, }: {
12
+ export declare function Root({ children, xcss, UNSAFE_dangerouslyHoistSlotSizes, skipLinksLabel, testId, defaultSideNavCollapsed, }: {
13
13
  /**
14
14
  * For rendering the layout areas, e.g. TopNav, SideNav, Main.
15
15
  * They should be rendered as immediate children.
@@ -35,4 +35,16 @@ export declare function Root({ children, xcss, UNSAFE_dangerouslyHoistSlotSizes,
35
35
  * A unique string that appears as data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
36
36
  */
37
37
  testId?: string;
38
+ /**
39
+ * Whether the side nav should be collapsed by default __on desktop screens__.
40
+ *
41
+ * It is always collapsed by default for mobile screens.
42
+ *
43
+ * This value is used when the side nav is first mounted, but you should continuously update your
44
+ * persisted state using the `onCollapse` and `onExpand` callbacks, to ensure it is up to date
45
+ * when the app is reloaded.
46
+ *
47
+ * __Note:__ This prop will only work when the `platform_dst_nav4_full_height_sidebar_api_changes` gate is enabled.
48
+ */
49
+ defaultSideNavCollapsed?: boolean;
38
50
  }): JSX.Element;
@@ -12,6 +12,13 @@ type SideNavProps = CommonSlotProps & {
12
12
  */
13
13
  label?: string;
14
14
  /**
15
+ * @deprecated
16
+ *
17
+ * This prop is being replaced by `defaultSideNavCollapsed` on the `Root` element,
18
+ * and will be removed after `platform_dst_nav4_full_height_sidebar_api_changes` is cleaned up.
19
+ *
20
+ * ---
21
+ *
15
22
  * Whether the side nav should be collapsed by default __on desktop screens__.
16
23
  *
17
24
  * It is always collapsed by default for mobile screens.
@@ -14,6 +14,13 @@ export type SideNavVisibilityChangeAnalyticsAttributes = {
14
14
  */
15
15
  export declare const SideNavToggleButton: ({ defaultCollapsed, expandLabel, collapseLabel, testId, interactionName, onClick, }: {
16
16
  /**
17
+ * @deprecated
18
+ *
19
+ * This prop is being replaced by `defaultSideNavCollapsed` on the `Root` element,
20
+ * and will be removed after `platform_dst_nav4_full_height_sidebar_api_changes` is cleaned up.
21
+ *
22
+ * ---
23
+ *
17
24
  * Whether the side nav should be collapsed by default __on desktop screens__.
18
25
  *
19
26
  * It is always collapsed by default for mobile screens.
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  /**
3
3
  * Manages the side nav visibility state and provides the context.
4
4
  */
5
- export declare const SideNavVisibilityProvider: ({ children }: {
5
+ export declare const SideNavVisibilityProvider: ({ children, defaultCollapsed, }: {
6
6
  children: React.ReactNode;
7
+ defaultCollapsed: boolean;
7
8
  }) => React.JSX.Element;
@@ -9,7 +9,7 @@ export declare const gridRootId = "unsafe-design-system-page-layout-root";
9
9
  * The root component of the navigation system. It wraps the underlying components with the necessary contexts allowing to use certain data and hooks
10
10
  * @param skipLinksLabel - The very first element of the layout is a skip links container that can be accessed by pressing Tab button and holds the links to the other sections of the layout thus improving accessibility. This parameter defines the header text for this container
11
11
  */
12
- export declare function Root({ children, xcss, UNSAFE_dangerouslyHoistSlotSizes, skipLinksLabel, testId, }: {
12
+ export declare function Root({ children, xcss, UNSAFE_dangerouslyHoistSlotSizes, skipLinksLabel, testId, defaultSideNavCollapsed, }: {
13
13
  /**
14
14
  * For rendering the layout areas, e.g. TopNav, SideNav, Main.
15
15
  * They should be rendered as immediate children.
@@ -35,4 +35,16 @@ export declare function Root({ children, xcss, UNSAFE_dangerouslyHoistSlotSizes,
35
35
  * A unique string that appears as data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
36
36
  */
37
37
  testId?: string;
38
+ /**
39
+ * Whether the side nav should be collapsed by default __on desktop screens__.
40
+ *
41
+ * It is always collapsed by default for mobile screens.
42
+ *
43
+ * This value is used when the side nav is first mounted, but you should continuously update your
44
+ * persisted state using the `onCollapse` and `onExpand` callbacks, to ensure it is up to date
45
+ * when the app is reloaded.
46
+ *
47
+ * __Note:__ This prop will only work when the `platform_dst_nav4_full_height_sidebar_api_changes` gate is enabled.
48
+ */
49
+ defaultSideNavCollapsed?: boolean;
38
50
  }): JSX.Element;
@@ -12,6 +12,13 @@ type SideNavProps = CommonSlotProps & {
12
12
  */
13
13
  label?: string;
14
14
  /**
15
+ * @deprecated
16
+ *
17
+ * This prop is being replaced by `defaultSideNavCollapsed` on the `Root` element,
18
+ * and will be removed after `platform_dst_nav4_full_height_sidebar_api_changes` is cleaned up.
19
+ *
20
+ * ---
21
+ *
15
22
  * Whether the side nav should be collapsed by default __on desktop screens__.
16
23
  *
17
24
  * It is always collapsed by default for mobile screens.
@@ -14,6 +14,13 @@ export type SideNavVisibilityChangeAnalyticsAttributes = {
14
14
  */
15
15
  export declare const SideNavToggleButton: ({ defaultCollapsed, expandLabel, collapseLabel, testId, interactionName, onClick, }: {
16
16
  /**
17
+ * @deprecated
18
+ *
19
+ * This prop is being replaced by `defaultSideNavCollapsed` on the `Root` element,
20
+ * and will be removed after `platform_dst_nav4_full_height_sidebar_api_changes` is cleaned up.
21
+ *
22
+ * ---
23
+ *
17
24
  * Whether the side nav should be collapsed by default __on desktop screens__.
18
25
  *
19
26
  * It is always collapsed by default for mobile screens.
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  /**
3
3
  * Manages the side nav visibility state and provides the context.
4
4
  */
5
- export declare const SideNavVisibilityProvider: ({ children }: {
5
+ export declare const SideNavVisibilityProvider: ({ children, defaultCollapsed, }: {
6
6
  children: React.ReactNode;
7
+ defaultCollapsed: boolean;
7
8
  }) => React.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/navigation-system",
3
- "version": "2.9.0",
3
+ "version": "2.10.1",
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",
@@ -71,7 +71,7 @@
71
71
  "@atlaskit/button": "^23.4.0",
72
72
  "@atlaskit/css": "^0.14.0",
73
73
  "@atlaskit/ds-lib": "^5.0.0",
74
- "@atlaskit/icon": "^28.1.0",
74
+ "@atlaskit/icon": "^28.2.0",
75
75
  "@atlaskit/layering": "^3.0.0",
76
76
  "@atlaskit/logo": "^19.7.0",
77
77
  "@atlaskit/platform-feature-flags": "^1.1.0",
@@ -102,7 +102,7 @@
102
102
  "@atlaskit/banner": "^14.0.0",
103
103
  "@atlaskit/breadcrumbs": "^15.3.0",
104
104
  "@atlaskit/dropdown-menu": "^16.3.0",
105
- "@atlaskit/form": "^12.6.0",
105
+ "@atlaskit/form": "^12.7.0",
106
106
  "@atlaskit/heading": "^5.2.0",
107
107
  "@atlaskit/link": "^3.2.0",
108
108
  "@atlaskit/lozenge": "^13.0.0",
@@ -111,7 +111,7 @@
111
111
  "@atlaskit/page-header": "^12.1.0",
112
112
  "@atlaskit/page-layout": "^4.2.0",
113
113
  "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.0",
114
- "@atlaskit/select": "^21.2.0",
114
+ "@atlaskit/select": "^21.3.0",
115
115
  "@atlaskit/skeleton": "^2.1.0",
116
116
  "@atlaskit/temp-nav-app-icons": "^0.10.0",
117
117
  "@atlaskit/textfield": "^8.0.0",