@atlaskit/navigation-system 5.6.0 → 5.8.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 (33) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/entry-points/side-nav-items/drag-and-drop/drag-handle.js +12 -0
  3. package/dist/cjs/ui/menu-item/{drag-handle.compiled.css → drag-handle/drag-handle.compiled.css} +3 -3
  4. package/dist/cjs/ui/menu-item/{drag-handle.js → drag-handle/drag-handle.js} +1 -1
  5. package/dist/cjs/ui/menu-item/drag-handle/lazy-drag-handle.js +20 -0
  6. package/dist/cjs/ui/menu-item/menu-item.js +4 -11
  7. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +3 -3
  8. package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +6 -1
  9. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +1 -1
  10. package/dist/es2019/entry-points/side-nav-items/drag-and-drop/drag-handle.js +1 -0
  11. package/dist/{esm/ui/menu-item → es2019/ui/menu-item/drag-handle}/drag-handle.compiled.css +3 -3
  12. package/dist/es2019/ui/menu-item/{drag-handle.js → drag-handle/drag-handle.js} +1 -1
  13. package/dist/es2019/ui/menu-item/drag-handle/lazy-drag-handle.js +9 -0
  14. package/dist/es2019/ui/menu-item/menu-item.js +2 -5
  15. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +3 -3
  16. package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +6 -1
  17. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +1 -1
  18. package/dist/esm/entry-points/side-nav-items/drag-and-drop/drag-handle.js +1 -0
  19. package/dist/{es2019/ui/menu-item → esm/ui/menu-item/drag-handle}/drag-handle.compiled.css +3 -3
  20. package/dist/esm/ui/menu-item/{drag-handle.js → drag-handle/drag-handle.js} +1 -1
  21. package/dist/esm/ui/menu-item/drag-handle/lazy-drag-handle.js +11 -0
  22. package/dist/esm/ui/menu-item/menu-item.js +2 -7
  23. package/dist/esm/ui/page-layout/side-nav/side-nav.js +3 -3
  24. package/dist/esm/ui/page-layout/side-nav/toggle-button.js +6 -1
  25. package/dist/esm/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +1 -1
  26. package/dist/types/entry-points/side-nav-items/drag-and-drop/drag-handle.d.ts +1 -0
  27. package/dist/types/ui/menu-item/drag-handle/lazy-drag-handle.d.ts +4 -0
  28. package/dist/types-ts4.5/entry-points/side-nav-items/drag-and-drop/drag-handle.d.ts +1 -0
  29. package/dist/types-ts4.5/ui/menu-item/drag-handle/lazy-drag-handle.d.ts +4 -0
  30. package/package.json +4 -4
  31. package/side-nav-items/drag-and-drop/drag-handle/package.json +17 -0
  32. /package/dist/types/ui/menu-item/{drag-handle.d.ts → drag-handle/drag-handle.d.ts} +0 -0
  33. /package/dist/types-ts4.5/ui/menu-item/{drag-handle.d.ts → drag-handle/drag-handle.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atlassian/navigation-system
2
2
 
3
+ ## 5.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`6a51c2d83eea1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/6a51c2d83eea1) -
8
+ Export LazyDragHandle for use by custom menu items that wish to implement drag and drop.
9
+
10
+ ## 5.7.0
11
+
12
+ ### Minor Changes
13
+
14
+ - [`8b3783c70ef57`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8b3783c70ef57) -
15
+ Clicking on the side nav toggle button will now close any open layers such as tooltips. This
16
+ ensures tooltips don't linger on the screen when the buttons inside `TopNavStart` are reordered.
17
+
18
+ This change is behind the feature flag `navx-full-height-sidebar`.
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies
23
+
3
24
  ## 5.6.0
4
25
 
5
26
  ### Minor Changes
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "LazyDragHandle", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _lazyDragHandle.LazyDragHandle;
10
+ }
11
+ });
12
+ var _lazyDragHandle = require("../../../ui/menu-item/drag-handle/lazy-drag-handle");
@@ -1,9 +1,9 @@
1
- ._154iidpf{top:0}
1
+ ._152tidpf{inset-block-start:0}
2
2
  ._1bah1h6o{justify-content:center}
3
3
  ._1e02idpf{inset-inline-start:0}
4
4
  ._1e0c1i3c{display:var(--drag-handle-display,none)}
5
5
  ._2lx21bp4{flex-direction:column}
6
- ._94n5idpf{bottom:0}
7
6
  ._ahbqxmi2{margin-inline-start:var(--ds-space-negative-150,-9pt)}
8
7
  ._kqswstnw{position:absolute}
9
- ._syazazsu{color:var(--ds-text-subtle,#505258)}
8
+ ._syazazsu{color:var(--ds-text-subtle,#505258)}
9
+ ._u7coidpf{inset-block-end:0}
@@ -13,7 +13,7 @@ var _runtime = require("@compiled/react/runtime");
13
13
  var _dragHandleVertical = _interopRequireDefault(require("@atlaskit/icon/core/drag-handle-vertical"));
14
14
  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); }
15
15
  var styles = {
16
- root: "_syazazsu _1e0c1i3c _2lx21bp4 _1bah1h6o _kqswstnw _154iidpf _94n5idpf _1e02idpf _ahbqxmi2"
16
+ root: "_syazazsu _1e0c1i3c _2lx21bp4 _1bah1h6o _kqswstnw _152tidpf _u7coidpf _1e02idpf _ahbqxmi2"
17
17
  };
18
18
 
19
19
  // Using default export to play well with React.lazy
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LazyDragHandle = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _react = require("react");
10
+ 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" != (0, _typeof2.default)(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); } // Using `lazy` so that only consumers who want drag and drop
11
+ // need to include code for the drag handle.
12
+ /**
13
+ * Exposing this for use by custom components
14
+ */
15
+ var LazyDragHandle = exports.LazyDragHandle = /*#__PURE__*/(0, _react.lazy)(function () {
16
+ return Promise.resolve().then(function () {
17
+ return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_nav4-menu-item-drag-handle" */
18
+ './drag-handle'));
19
+ });
20
+ });
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
 
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
7
8
  });
8
9
  exports.nestedOpenPopupCSSSelector = exports.MenuItemBase = void 0;
9
10
  require("./menu-item.compiled.css");
10
11
  var _runtime = require("@compiled/react/runtime");
11
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
  var _react = _interopRequireWildcard(require("react"));
@@ -19,20 +19,13 @@ var _mergeRefs = _interopRequireDefault(require("@atlaskit/ds-lib/merge-refs"));
19
19
  var _compiled = require("@atlaskit/primitives/compiled");
20
20
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
21
21
  var _constants = require("./constants");
22
+ var _lazyDragHandle = require("./drag-handle/lazy-drag-handle");
22
23
  var _expandableMenuItemContext = require("./expandable-menu-item/expandable-menu-item-context");
23
24
  var _flyoutMenuItemContext = require("./flyout-menu-item/flyout-menu-item-context");
24
25
  var _menuItemSignals = require("./menu-item-signals");
26
+ 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); }
25
27
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
28
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
- 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" != (0, _typeof2.default)(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); }
28
- // Using `lazy` so that only consumers who want drag and drop
29
- // need to include code for the drag handle.
30
- var LazyDragHandle = /*#__PURE__*/(0, _react.lazy)(function () {
31
- return Promise.resolve().then(function () {
32
- return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_nav4-menu-item-drag-handle" */
33
- './drag-handle'));
34
- });
35
- });
36
29
  function isTextClamped(element) {
37
30
  // Checking for vertical height rather than horizontal height.
38
31
  // When text is "clamped", it's technically being clamped vertically! 🤯
@@ -291,7 +284,7 @@ var MenuItemBaseNoRef = function MenuItemBaseNoRef(_ref2, forwardedRef) {
291
284
  ref: descriptionRef
292
285
  }, description)), hasDragIndicator ? /*#__PURE__*/_react.default.createElement(_react.Suspense, {
293
286
  fallback: null
294
- }, /*#__PURE__*/_react.default.createElement(LazyDragHandle, null)) : null, dropIndicator);
287
+ }, /*#__PURE__*/_react.default.createElement(_lazyDragHandle.LazyDragHandle, null)) : null, dropIndicator);
295
288
 
296
289
  /**
297
290
  * If the [expandable] menu item is expanded, show hover actions even when *not* hovered.
@@ -314,9 +314,9 @@ function SideNavInternal(_ref) {
314
314
  }
315
315
  if (action === 'ready-to-close') {
316
316
  // If there are no open layers, we can close the flyout.
317
- if (openLayerObserver.getCount({
317
+ if ((openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.getCount({
318
318
  namespace: openLayerObserverSideNavNamespace
319
- }) === 0) {
319
+ })) === 0) {
320
320
  close();
321
321
  return;
322
322
  }
@@ -672,7 +672,7 @@ function SideNavInternal(_ref) {
672
672
  // Close the flyout if there are no more layers open and the user is not mousing over the
673
673
  // flyout areas (side nav, TopNavStart element)
674
674
 
675
- return openLayerObserver.onChange(function (_ref6) {
675
+ return openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.onChange(function (_ref6) {
676
676
  var count = _ref6.count;
677
677
  if (flyoutStateRef.current.type === 'ready-to-close' && count === 0) {
678
678
  updateFlyoutState('force-close');
@@ -16,6 +16,7 @@ var _bindEventListener = require("bind-event-listener");
16
16
  var _analyticsNext = require("@atlaskit/analytics-next");
17
17
  var _sidebarCollapse = _interopRequireDefault(require("@atlaskit/icon/core/sidebar-collapse"));
18
18
  var _sidebarExpand = _interopRequireDefault(require("@atlaskit/icon/core/sidebar-expand"));
19
+ var _openLayerObserver = require("@atlaskit/layering/experimental/open-layer-observer");
19
20
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
20
21
  var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
21
22
  var _migration = require("../../top-nav-items/themed/migration");
@@ -112,12 +113,16 @@ var SideNavToggleButton = exports.SideNavToggleButton = function SideNavToggleBu
112
113
  });
113
114
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
114
115
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
116
+ var openLayerObserver = (0, _openLayerObserver.useOpenLayerObserver)();
115
117
  var handleClick = (0, _react.useCallback)(function (event, analyticsEvent) {
116
118
  onClick === null || onClick === void 0 || onClick(event, analyticsEvent, {
117
119
  isSideNavVisible: isSideNavExpanded
118
120
  });
119
121
  toggleVisibility();
120
- }, [onClick, isSideNavExpanded, toggleVisibility]);
122
+ if ((0, _platformFeatureFlags.fg)('navx-full-height-sidebar')) {
123
+ openLayerObserver === null || openLayerObserver === void 0 || openLayerObserver.closeLayers();
124
+ }
125
+ }, [onClick, isSideNavExpanded, toggleVisibility, openLayerObserver]);
121
126
  var handlePointerEnter = (0, _react.useCallback)(function () {
122
127
  if (!(0, _platformFeatureFlags.fg)('platform_dst_nav4_fhs_instrumentation_1')) {
123
128
  return;
@@ -47,7 +47,7 @@ function useSideNavToggleKeyboardShortcut(_ref) {
47
47
  // Ignore repeated keydown events from holding down the keys
48
48
  return;
49
49
  }
50
- if (openLayerObserver.getCount({
50
+ if (openLayerObserver && openLayerObserver.getCount({
51
51
  type: 'modal'
52
52
  }) > 0) {
53
53
  // Return early if there are any open modals
@@ -0,0 +1 @@
1
+ export { LazyDragHandle } from '../../../ui/menu-item/drag-handle/lazy-drag-handle';
@@ -1,9 +1,9 @@
1
- ._154iidpf{top:0}
1
+ ._152tidpf{inset-block-start:0}
2
2
  ._1bah1h6o{justify-content:center}
3
3
  ._1e02idpf{inset-inline-start:0}
4
4
  ._1e0c1i3c{display:var(--drag-handle-display,none)}
5
5
  ._2lx21bp4{flex-direction:column}
6
- ._94n5idpf{bottom:0}
7
6
  ._ahbqxmi2{margin-inline-start:var(--ds-space-negative-150,-9pt)}
8
7
  ._kqswstnw{position:absolute}
9
- ._syazazsu{color:var(--ds-text-subtle,#505258)}
8
+ ._syazazsu{color:var(--ds-text-subtle,#505258)}
9
+ ._u7coidpf{inset-block-end:0}
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import DragHandleVerticalIcon from '@atlaskit/icon/core/drag-handle-vertical';
6
6
  const styles = {
7
- root: "_syazazsu _1e0c1i3c _2lx21bp4 _1bah1h6o _kqswstnw _154iidpf _94n5idpf _1e02idpf _ahbqxmi2"
7
+ root: "_syazazsu _1e0c1i3c _2lx21bp4 _1bah1h6o _kqswstnw _152tidpf _u7coidpf _1e02idpf _ahbqxmi2"
8
8
  };
9
9
 
10
10
  // Using default export to play well with React.lazy
@@ -0,0 +1,9 @@
1
+ // Using `lazy` so that only consumers who want drag and drop
2
+ // need to include code for the drag handle.
3
+ import { lazy } from 'react';
4
+
5
+ /**
6
+ * Exposing this for use by custom components
7
+ */
8
+ export const LazyDragHandle = /*#__PURE__*/lazy(() => import( /* webpackChunkName: "@atlaskit-internal_nav4-menu-item-drag-handle" */
9
+ './drag-handle'));
@@ -2,7 +2,7 @@
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import "./menu-item.compiled.css";
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
- import React, { lazy, Suspense, useCallback, useRef } from 'react';
5
+ import React, { Suspense, useCallback, useRef } from 'react';
6
6
  import { cx } from '@compiled/react';
7
7
  import { AvatarContext } from '@atlaskit/avatar';
8
8
  import forwardRefWithGeneric from '@atlaskit/ds-lib/forward-ref-with-generic';
@@ -10,13 +10,10 @@ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
10
10
  import { Anchor, Pressable, Text } from '@atlaskit/primitives/compiled';
11
11
  import Tooltip from '@atlaskit/tooltip';
12
12
  import { expandableMenuItemIndentation } from './constants';
13
+ import { LazyDragHandle } from './drag-handle/lazy-drag-handle';
13
14
  import { useLevel } from './expandable-menu-item/expandable-menu-item-context';
14
15
  import { useFlyoutMenuOpen, useSetFlyoutMenuOpen } from './flyout-menu-item/flyout-menu-item-context';
15
16
  import { COLLAPSE_ELEM_BEFORE } from './menu-item-signals';
16
- // Using `lazy` so that only consumers who want drag and drop
17
- // need to include code for the drag handle.
18
- const LazyDragHandle = /*#__PURE__*/lazy(() => import( /* webpackChunkName: "@atlaskit-internal_nav4-menu-item-drag-handle" */
19
- './drag-handle'));
20
17
  function isTextClamped(element) {
21
18
  // Checking for vertical height rather than horizontal height.
22
19
  // When text is "clamped", it's technically being clamped vertically! 🤯
@@ -295,9 +295,9 @@ function SideNavInternal({
295
295
  }
296
296
  if (action === 'ready-to-close') {
297
297
  // If there are no open layers, we can close the flyout.
298
- if (openLayerObserver.getCount({
298
+ if ((openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.getCount({
299
299
  namespace: openLayerObserverSideNavNamespace
300
- }) === 0) {
300
+ })) === 0) {
301
301
  close();
302
302
  return;
303
303
  }
@@ -658,7 +658,7 @@ function SideNavInternal({
658
658
  // Close the flyout if there are no more layers open and the user is not mousing over the
659
659
  // flyout areas (side nav, TopNavStart element)
660
660
 
661
- return openLayerObserver.onChange(({
661
+ return openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.onChange(({
662
662
  count
663
663
  }) => {
664
664
  if (flyoutStateRef.current.type === 'ready-to-close' && count === 0) {
@@ -6,6 +6,7 @@ import { bind } from 'bind-event-listener';
6
6
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
7
7
  import SidebarCollapseIcon from '@atlaskit/icon/core/sidebar-collapse';
8
8
  import SidebarExpandIcon from '@atlaskit/icon/core/sidebar-expand';
9
+ import { useOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
9
10
  import { fg } from '@atlaskit/platform-feature-flags';
10
11
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
11
12
  import { IconButton } from '../../top-nav-items/themed/migration';
@@ -96,12 +97,16 @@ export const SideNavToggleButton = ({
96
97
  const {
97
98
  createAnalyticsEvent
98
99
  } = useAnalyticsEvents();
100
+ const openLayerObserver = useOpenLayerObserver();
99
101
  const handleClick = useCallback((event, analyticsEvent) => {
100
102
  onClick === null || onClick === void 0 ? void 0 : onClick(event, analyticsEvent, {
101
103
  isSideNavVisible: isSideNavExpanded
102
104
  });
103
105
  toggleVisibility();
104
- }, [onClick, isSideNavExpanded, toggleVisibility]);
106
+ if (fg('navx-full-height-sidebar')) {
107
+ openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.closeLayers();
108
+ }
109
+ }, [onClick, isSideNavExpanded, toggleVisibility, openLayerObserver]);
105
110
  const handlePointerEnter = useCallback(() => {
106
111
  if (!fg('platform_dst_nav4_fhs_instrumentation_1')) {
107
112
  return;
@@ -42,7 +42,7 @@ export function useSideNavToggleKeyboardShortcut({
42
42
  // Ignore repeated keydown events from holding down the keys
43
43
  return;
44
44
  }
45
- if (openLayerObserver.getCount({
45
+ if (openLayerObserver && openLayerObserver.getCount({
46
46
  type: 'modal'
47
47
  }) > 0) {
48
48
  // Return early if there are any open modals
@@ -0,0 +1 @@
1
+ export { LazyDragHandle } from '../../../ui/menu-item/drag-handle/lazy-drag-handle';
@@ -1,9 +1,9 @@
1
- ._154iidpf{top:0}
1
+ ._152tidpf{inset-block-start:0}
2
2
  ._1bah1h6o{justify-content:center}
3
3
  ._1e02idpf{inset-inline-start:0}
4
4
  ._1e0c1i3c{display:var(--drag-handle-display,none)}
5
5
  ._2lx21bp4{flex-direction:column}
6
- ._94n5idpf{bottom:0}
7
6
  ._ahbqxmi2{margin-inline-start:var(--ds-space-negative-150,-9pt)}
8
7
  ._kqswstnw{position:absolute}
9
- ._syazazsu{color:var(--ds-text-subtle,#505258)}
8
+ ._syazazsu{color:var(--ds-text-subtle,#505258)}
9
+ ._u7coidpf{inset-block-end:0}
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import DragHandleVerticalIcon from '@atlaskit/icon/core/drag-handle-vertical';
6
6
  var styles = {
7
- root: "_syazazsu _1e0c1i3c _2lx21bp4 _1bah1h6o _kqswstnw _154iidpf _94n5idpf _1e02idpf _ahbqxmi2"
7
+ root: "_syazazsu _1e0c1i3c _2lx21bp4 _1bah1h6o _kqswstnw _152tidpf _u7coidpf _1e02idpf _ahbqxmi2"
8
8
  };
9
9
 
10
10
  // Using default export to play well with React.lazy
@@ -0,0 +1,11 @@
1
+ // Using `lazy` so that only consumers who want drag and drop
2
+ // need to include code for the drag handle.
3
+ import { lazy } from 'react';
4
+
5
+ /**
6
+ * Exposing this for use by custom components
7
+ */
8
+ export var LazyDragHandle = /*#__PURE__*/lazy(function () {
9
+ return import( /* webpackChunkName: "@atlaskit-internal_nav4-menu-item-drag-handle" */
10
+ './drag-handle');
11
+ });
@@ -5,7 +5,7 @@ import "./menu-item.compiled.css";
5
5
  import { ax, ix } from "@compiled/react/runtime";
6
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
- import React, { lazy, Suspense, useCallback, useRef } from 'react';
8
+ import React, { Suspense, useCallback, useRef } from 'react';
9
9
  import { cx } from '@compiled/react';
10
10
  import { AvatarContext } from '@atlaskit/avatar';
11
11
  import forwardRefWithGeneric from '@atlaskit/ds-lib/forward-ref-with-generic';
@@ -13,15 +13,10 @@ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
13
13
  import { Anchor, Pressable, Text } from '@atlaskit/primitives/compiled';
14
14
  import Tooltip from '@atlaskit/tooltip';
15
15
  import { expandableMenuItemIndentation } from './constants';
16
+ import { LazyDragHandle } from './drag-handle/lazy-drag-handle';
16
17
  import { useLevel } from './expandable-menu-item/expandable-menu-item-context';
17
18
  import { useFlyoutMenuOpen, useSetFlyoutMenuOpen } from './flyout-menu-item/flyout-menu-item-context';
18
19
  import { COLLAPSE_ELEM_BEFORE } from './menu-item-signals';
19
- // Using `lazy` so that only consumers who want drag and drop
20
- // need to include code for the drag handle.
21
- var LazyDragHandle = /*#__PURE__*/lazy(function () {
22
- return import( /* webpackChunkName: "@atlaskit-internal_nav4-menu-item-drag-handle" */
23
- './drag-handle');
24
- });
25
20
  function isTextClamped(element) {
26
21
  // Checking for vertical height rather than horizontal height.
27
22
  // When text is "clamped", it's technically being clamped vertically! 🤯
@@ -304,9 +304,9 @@ function SideNavInternal(_ref) {
304
304
  }
305
305
  if (action === 'ready-to-close') {
306
306
  // If there are no open layers, we can close the flyout.
307
- if (openLayerObserver.getCount({
307
+ if ((openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.getCount({
308
308
  namespace: openLayerObserverSideNavNamespace
309
- }) === 0) {
309
+ })) === 0) {
310
310
  close();
311
311
  return;
312
312
  }
@@ -662,7 +662,7 @@ function SideNavInternal(_ref) {
662
662
  // Close the flyout if there are no more layers open and the user is not mousing over the
663
663
  // flyout areas (side nav, TopNavStart element)
664
664
 
665
- return openLayerObserver.onChange(function (_ref6) {
665
+ return openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.onChange(function (_ref6) {
666
666
  var count = _ref6.count;
667
667
  if (flyoutStateRef.current.type === 'ready-to-close' && count === 0) {
668
668
  updateFlyoutState('force-close');
@@ -10,6 +10,7 @@ import { bind } from 'bind-event-listener';
10
10
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
11
11
  import SidebarCollapseIcon from '@atlaskit/icon/core/sidebar-collapse';
12
12
  import SidebarExpandIcon from '@atlaskit/icon/core/sidebar-expand';
13
+ import { useOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
13
14
  import { fg } from '@atlaskit/platform-feature-flags';
14
15
  import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
15
16
  import { IconButton } from '../../top-nav-items/themed/migration';
@@ -103,12 +104,16 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
103
104
  });
104
105
  var _useAnalyticsEvents = useAnalyticsEvents(),
105
106
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
107
+ var openLayerObserver = useOpenLayerObserver();
106
108
  var handleClick = useCallback(function (event, analyticsEvent) {
107
109
  onClick === null || onClick === void 0 || onClick(event, analyticsEvent, {
108
110
  isSideNavVisible: isSideNavExpanded
109
111
  });
110
112
  toggleVisibility();
111
- }, [onClick, isSideNavExpanded, toggleVisibility]);
113
+ if (fg('navx-full-height-sidebar')) {
114
+ openLayerObserver === null || openLayerObserver === void 0 || openLayerObserver.closeLayers();
115
+ }
116
+ }, [onClick, isSideNavExpanded, toggleVisibility, openLayerObserver]);
112
117
  var handlePointerEnter = useCallback(function () {
113
118
  if (!fg('platform_dst_nav4_fhs_instrumentation_1')) {
114
119
  return;
@@ -41,7 +41,7 @@ export function useSideNavToggleKeyboardShortcut(_ref) {
41
41
  // Ignore repeated keydown events from holding down the keys
42
42
  return;
43
43
  }
44
- if (openLayerObserver.getCount({
44
+ if (openLayerObserver && openLayerObserver.getCount({
45
45
  type: 'modal'
46
46
  }) > 0) {
47
47
  // Return early if there are any open modals
@@ -0,0 +1 @@
1
+ export { LazyDragHandle } from '../../../ui/menu-item/drag-handle/lazy-drag-handle';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Exposing this for use by custom components
3
+ */
4
+ export declare const LazyDragHandle: import("react").LazyExoticComponent<typeof import("./drag-handle").default>;
@@ -0,0 +1 @@
1
+ export { LazyDragHandle } from '../../../ui/menu-item/drag-handle/lazy-drag-handle';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Exposing this for use by custom components
3
+ */
4
+ export declare const LazyDragHandle: import("react").LazyExoticComponent<typeof import("./drag-handle").default>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/navigation-system",
3
- "version": "5.6.0",
3
+ "version": "5.8.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",
@@ -72,7 +72,7 @@
72
72
  "@atlaskit/css": "^0.15.0",
73
73
  "@atlaskit/ds-lib": "^5.2.0",
74
74
  "@atlaskit/icon": "^29.0.0",
75
- "@atlaskit/layering": "^3.3.0",
75
+ "@atlaskit/layering": "^3.4.0",
76
76
  "@atlaskit/logo": "^19.9.0",
77
77
  "@atlaskit/platform-feature-flags": "^1.1.0",
78
78
  "@atlaskit/popup": "^4.6.0",
@@ -81,7 +81,7 @@
81
81
  "@atlaskit/pragmatic-drag-and-drop-react-drop-indicator": "^3.2.0",
82
82
  "@atlaskit/primitives": "^16.1.0",
83
83
  "@atlaskit/tokens": "^8.0.0",
84
- "@atlaskit/tooltip": "^20.9.0",
84
+ "@atlaskit/tooltip": "^20.10.0",
85
85
  "@atlaskit/visually-hidden": "^3.0.0",
86
86
  "@babel/runtime": "^7.0.0",
87
87
  "@compiled/react": "^0.18.6",
@@ -116,7 +116,7 @@
116
116
  "@atlaskit/skeleton": "^2.1.0",
117
117
  "@atlaskit/textfield": "^8.1.0",
118
118
  "@atlassian/feature-flags-test-utils": "^1.0.0",
119
- "@atlassian/gemini": "^1.20.0",
119
+ "@atlassian/gemini": "^1.21.0",
120
120
  "@atlassian/search-dialog": "^9.9.0",
121
121
  "@atlassian/ssr-tests": "workspace:^",
122
122
  "@atlassian/test-utils": "^1.0.0",
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@atlaskit/navigation-system/side-nav-items/drag-and-drop/drag-handle",
3
+ "main": "../../../dist/cjs/entry-points/side-nav-items/drag-and-drop/drag-handle.js",
4
+ "module": "../../../dist/esm/entry-points/side-nav-items/drag-and-drop/drag-handle.js",
5
+ "module:es2019": "../../../dist/es2019/entry-points/side-nav-items/drag-and-drop/drag-handle.js",
6
+ "sideEffects": [
7
+ "*.compiled.css"
8
+ ],
9
+ "types": "../../../dist/types/entry-points/side-nav-items/drag-and-drop/drag-handle.d.ts",
10
+ "typesVersions": {
11
+ ">=4.5 <5.9": {
12
+ "*": [
13
+ "../../../dist/types-ts4.5/entry-points/side-nav-items/drag-and-drop/drag-handle.d.ts"
14
+ ]
15
+ }
16
+ }
17
+ }