@atlaskit/navigation-system 5.5.1 → 5.7.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 (79) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/entry-points/fhs-rollout.js +26 -0
  3. package/dist/cjs/index.js +21 -0
  4. package/dist/cjs/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +14 -0
  5. package/dist/cjs/ui/fhs-rollout/is-fhs-enabled-context.js +17 -0
  6. package/dist/cjs/ui/fhs-rollout/is-fhs-enabled-provider.js +29 -0
  7. package/dist/cjs/ui/fhs-rollout/types.js +1 -0
  8. package/dist/cjs/ui/fhs-rollout/use-is-fhs-enabled.js +17 -0
  9. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.js +9 -2
  10. package/dist/cjs/ui/page-layout/side-nav/side-nav-content.js +6 -2
  11. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +10 -6
  12. package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +12 -3
  13. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +7 -3
  14. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +5 -1
  15. package/dist/cjs/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  16. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +14 -10
  17. package/dist/cjs/ui/page-layout/top-nav/top-nav.js +8 -4
  18. package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.js +7 -3
  19. package/dist/cjs/ui/top-nav-items/search.js +5 -1
  20. package/dist/es2019/entry-points/fhs-rollout.js +3 -0
  21. package/dist/es2019/index.js +3 -0
  22. package/dist/es2019/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +9 -0
  23. package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-context.js +9 -0
  24. package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-provider.js +23 -0
  25. package/dist/es2019/ui/fhs-rollout/types.js +0 -0
  26. package/dist/es2019/ui/fhs-rollout/use-is-fhs-enabled.js +12 -0
  27. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +9 -2
  28. package/dist/es2019/ui/page-layout/side-nav/side-nav-content.js +7 -2
  29. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +10 -6
  30. package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +12 -3
  31. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +7 -3
  32. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +5 -1
  33. package/dist/es2019/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  34. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +14 -10
  35. package/dist/es2019/ui/page-layout/top-nav/top-nav.js +8 -4
  36. package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.js +7 -3
  37. package/dist/es2019/ui/top-nav-items/search.js +40 -34
  38. package/dist/esm/entry-points/fhs-rollout.js +3 -0
  39. package/dist/esm/index.js +3 -0
  40. package/dist/esm/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +9 -0
  41. package/dist/esm/ui/fhs-rollout/is-fhs-enabled-context.js +11 -0
  42. package/dist/esm/ui/fhs-rollout/is-fhs-enabled-provider.js +22 -0
  43. package/dist/esm/ui/fhs-rollout/types.js +0 -0
  44. package/dist/esm/ui/fhs-rollout/use-is-fhs-enabled.js +12 -0
  45. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +9 -2
  46. package/dist/esm/ui/page-layout/side-nav/side-nav-content.js +7 -2
  47. package/dist/esm/ui/page-layout/side-nav/side-nav.js +10 -6
  48. package/dist/esm/ui/page-layout/side-nav/toggle-button.js +12 -3
  49. package/dist/esm/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +7 -3
  50. package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +5 -1
  51. package/dist/esm/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  52. package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +14 -10
  53. package/dist/esm/ui/page-layout/top-nav/top-nav.js +8 -4
  54. package/dist/esm/ui/top-nav-items/nav-logo/app-logo.js +7 -3
  55. package/dist/esm/ui/top-nav-items/search.js +5 -1
  56. package/dist/types/entry-points/fhs-rollout.d.ts +3 -0
  57. package/dist/types/index.d.ts +3 -0
  58. package/dist/types/ui/fhs-rollout/is-custom-is-fhs-enabled-context.d.ts +7 -0
  59. package/dist/types/ui/fhs-rollout/is-fhs-enabled-context.d.ts +8 -0
  60. package/dist/types/ui/fhs-rollout/is-fhs-enabled-provider.d.ts +10 -0
  61. package/dist/types/ui/fhs-rollout/types.d.ts +1 -0
  62. package/dist/types/ui/fhs-rollout/use-is-fhs-enabled.d.ts +6 -0
  63. package/dist/types/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -1
  64. package/dist/types/ui/page-layout/panel-splitter/side-nav-panel-splitter.d.ts +1 -1
  65. package/dist/types/ui/page-layout/root.d.ts +1 -1
  66. package/dist/types/ui/page-layout/side-nav/side-nav.d.ts +1 -1
  67. package/dist/types-ts4.5/entry-points/fhs-rollout.d.ts +3 -0
  68. package/dist/types-ts4.5/index.d.ts +3 -0
  69. package/dist/types-ts4.5/ui/fhs-rollout/is-custom-is-fhs-enabled-context.d.ts +7 -0
  70. package/dist/types-ts4.5/ui/fhs-rollout/is-fhs-enabled-context.d.ts +8 -0
  71. package/dist/types-ts4.5/ui/fhs-rollout/is-fhs-enabled-provider.d.ts +10 -0
  72. package/dist/types-ts4.5/ui/fhs-rollout/types.d.ts +1 -0
  73. package/dist/types-ts4.5/ui/fhs-rollout/use-is-fhs-enabled.d.ts +6 -0
  74. package/dist/types-ts4.5/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -1
  75. package/dist/types-ts4.5/ui/page-layout/panel-splitter/side-nav-panel-splitter.d.ts +1 -1
  76. package/dist/types-ts4.5/ui/page-layout/root.d.ts +1 -1
  77. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav.d.ts +1 -1
  78. package/fhs-rollout/package.json +17 -0
  79. package/package.json +7 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlassian/navigation-system
2
2
 
3
+ ## 5.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`8b3783c70ef57`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8b3783c70ef57) -
8
+ Clicking on the side nav toggle button will now close any open layers such as tooltips. This
9
+ ensures tooltips don't linger on the screen when the buttons inside `TopNavStart` are reordered.
10
+
11
+ This change is behind the feature flag `navx-full-height-sidebar`.
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies
16
+
17
+ ## 5.6.0
18
+
19
+ ### Minor Changes
20
+
21
+ - [`b5802cb0960a2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/b5802cb0960a2) -
22
+ Change how full height sidebar is enabled. Instead of a feature gate, use a context value that
23
+ apps can set themselves using their own feature gate or experiment.
24
+
3
25
  ## 5.5.1
4
26
 
5
27
  ### Patch Changes
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "IsFhsEnabledContext", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _isFhsEnabledContext.IsFhsEnabledContext;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "IsFhsEnabledProvider", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _isFhsEnabledProvider.IsFhsEnabledProvider;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useIsFhsEnabled", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _useIsFhsEnabled.useIsFhsEnabled;
22
+ }
23
+ });
24
+ var _isFhsEnabledContext = require("../ui/fhs-rollout/is-fhs-enabled-context");
25
+ var _isFhsEnabledProvider = require("../ui/fhs-rollout/is-fhs-enabled-provider");
26
+ var _useIsFhsEnabled = require("../ui/fhs-rollout/use-is-fhs-enabled");
package/dist/cjs/index.js CHANGED
@@ -117,6 +117,18 @@ Object.defineProperty(exports, "Help", {
117
117
  return _help.Help;
118
118
  }
119
119
  });
120
+ Object.defineProperty(exports, "IsFhsEnabledContext", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _isFhsEnabledContext.IsFhsEnabledContext;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "IsFhsEnabledProvider", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _isFhsEnabledProvider.IsFhsEnabledProvider;
130
+ }
131
+ });
120
132
  Object.defineProperty(exports, "LinkMenuItem", {
121
133
  enumerable: true,
122
134
  get: function get() {
@@ -279,12 +291,21 @@ Object.defineProperty(exports, "useIsExpanded", {
279
291
  return _expandableMenuItemContext.useIsExpanded;
280
292
  }
281
293
  });
294
+ Object.defineProperty(exports, "useIsFhsEnabled", {
295
+ enumerable: true,
296
+ get: function get() {
297
+ return _useIsFhsEnabled.useIsFhsEnabled;
298
+ }
299
+ });
282
300
  Object.defineProperty(exports, "useToggleSideNav", {
283
301
  enumerable: true,
284
302
  get: function get() {
285
303
  return _useToggleSideNav.useToggleSideNav;
286
304
  }
287
305
  });
306
+ var _isFhsEnabledContext = require("./ui/fhs-rollout/is-fhs-enabled-context");
307
+ var _isFhsEnabledProvider = require("./ui/fhs-rollout/is-fhs-enabled-provider");
308
+ var _useIsFhsEnabled = require("./ui/fhs-rollout/use-is-fhs-enabled");
288
309
  var _expandableMenuItem = require("./ui/menu-item/expandable-menu-item/expandable-menu-item");
289
310
  var _expandableMenuItemTrigger = require("./ui/menu-item/expandable-menu-item/expandable-menu-item-trigger");
290
311
  var _expandableMenuItemContent = require("./ui/menu-item/expandable-menu-item/expandable-menu-item-content");
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.IsCustomIsFhsEnabledContext = void 0;
7
+ var _react = require("react");
8
+ /**
9
+ * __Is custom is fhs enabled context__
10
+ *
11
+ * Tracks if a custom value has been provided for `IsFhsEnabledContext`.
12
+ * Used to prevent nesting of the `IsFhsEnabledProvider`.
13
+ */
14
+ var IsCustomIsFhsEnabledContext = exports.IsCustomIsFhsEnabledContext = /*#__PURE__*/(0, _react.createContext)(false);
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.IsFhsEnabledContext = void 0;
7
+ var _react = require("react");
8
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
9
+ /**
10
+ * __Is fhs enabled context__
11
+ *
12
+ * Tracks is FHS enabled.
13
+ * Defaults to feature gate 'navx-full-height-sidebar'.
14
+ */
15
+ var IsFhsEnabledContext = exports.IsFhsEnabledContext = /*#__PURE__*/(0, _react.createContext)(function () {
16
+ return (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
17
+ });
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.IsFhsEnabledProvider = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _isCustomIsFhsEnabledContext = require("./is-custom-is-fhs-enabled-context");
10
+ var _isFhsEnabledContext = require("./is-fhs-enabled-context");
11
+ 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); }
12
+ /**
13
+ * __Is fhs enabled provider__
14
+ *
15
+ * Used to provide a custom value for is FHS enabled.
16
+ */
17
+ var IsFhsEnabledProvider = exports.IsFhsEnabledProvider = function IsFhsEnabledProvider(_ref) {
18
+ var children = _ref.children,
19
+ value = _ref.value;
20
+ var isCustomIsFhsEnabled = (0, _react.useContext)(_isCustomIsFhsEnabledContext.IsCustomIsFhsEnabledContext);
21
+ if (isCustomIsFhsEnabled) {
22
+ throw new Error('A custom value for IsFhsEnabledContext has already been provided');
23
+ }
24
+ return /*#__PURE__*/_react.default.createElement(_isCustomIsFhsEnabledContext.IsCustomIsFhsEnabledContext.Provider, {
25
+ value: true
26
+ }, /*#__PURE__*/_react.default.createElement(_isFhsEnabledContext.IsFhsEnabledContext.Provider, {
27
+ value: value
28
+ }, children));
29
+ };
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useIsFhsEnabled = void 0;
7
+ var _react = require("react");
8
+ var _isFhsEnabledContext = require("./is-fhs-enabled-context");
9
+ /**
10
+ * __Use is fhs enabled__
11
+ *
12
+ * Retrieves is FHS enabled.
13
+ */
14
+ var useIsFhsEnabled = exports.useIsFhsEnabled = function useIsFhsEnabled() {
15
+ var isFhsEnabled = (0, _react.useContext)(_isFhsEnabledContext.IsFhsEnabledContext);
16
+ return typeof isFhsEnabled === 'boolean' ? isFhsEnabled : isFhsEnabled();
17
+ };
@@ -28,6 +28,7 @@ var _disableNativeDragPreview = require("@atlaskit/pragmatic-drag-and-drop/eleme
28
28
  var _preventUnhandled = require("@atlaskit/pragmatic-drag-and-drop/prevent-unhandled");
29
29
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
30
30
  var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
31
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
31
32
  var _context = require("./context");
32
33
  var _convertResizeBoundToPixels = require("./convert-resize-bound-to-pixels");
33
34
  var _getPercentageWithinPixelBounds = require("./get-percentage-within-pixel-bounds");
@@ -59,7 +60,10 @@ var MaybeTooltip = function MaybeTooltip(_ref) {
59
60
  var tooltipContent = _ref.tooltipContent,
60
61
  shortcut = _ref.shortcut,
61
62
  children = _ref.children;
62
- if (tooltipContent && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar')) {
63
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
64
+ // eslint-disable-next-line react-hooks/rules-of-hooks
65
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
66
+ if (tooltipContent && isFhsEnabled) {
63
67
  return /*#__PURE__*/React.createElement(_tooltip.default, {
64
68
  content: tooltipContent,
65
69
  shortcut: shortcut,
@@ -93,6 +97,9 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref2) {
93
97
  position = _ref2.position,
94
98
  tooltipContent = _ref2.tooltipContent,
95
99
  shortcut = _ref2.shortcut;
100
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
101
+ // eslint-disable-next-line react-hooks/rules-of-hooks
102
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
96
103
  var splitterRef = (0, _react.useRef)(null);
97
104
  var labelId = (0, _useId.useId)();
98
105
  // Separate state used for the input range width to remove the UI's dependency on the "persisted" layout state value being updated
@@ -309,7 +316,7 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref2) {
309
316
  ref: splitterRef,
310
317
  "data-testid": testId,
311
318
  onDoubleClick: onDoubleClick,
312
- className: (0, _runtime.ax)([grabAreaStyles.root, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && grabAreaStyles.fullHeightSidebar])
319
+ className: (0, _runtime.ax)([grabAreaStyles.root, isFhsEnabled && grabAreaStyles.fullHeightSidebar])
313
320
  }, /*#__PURE__*/React.createElement(_visuallyHidden.default, null, /*#__PURE__*/React.createElement("input", {
314
321
  type: "range",
315
322
  value: rangeInputValue,
@@ -12,6 +12,7 @@ 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
14
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
15
16
  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); }
16
17
  /**
17
18
  * The main content of the side nav, filling up the middle section. It acts as a scroll container.
@@ -44,14 +45,17 @@ var fullHeightSidebarStyles = {
44
45
  function _SideNavContent(_ref, forwardedRef) {
45
46
  var children = _ref.children,
46
47
  testId = _ref.testId;
48
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
49
+ // eslint-disable-next-line react-hooks/rules-of-hooks
50
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
47
51
  var internalRef = (0, _react.useRef)(null);
48
52
  var mergedRef = (0, _react.useMemo)(function () {
49
53
  return (0, _mergeRefs.default)([internalRef, forwardedRef]);
50
54
  }, [forwardedRef]);
51
55
  return /*#__PURE__*/_react.default.createElement("div", {
52
- ref: (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') ? mergedRef : forwardedRef,
56
+ ref: isFhsEnabled ? mergedRef : forwardedRef,
53
57
  "data-testid": testId,
54
- className: (0, _runtime.ax)([styles.scrollContainer, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && fullHeightSidebarStyles.scrollContainer])
58
+ className: (0, _runtime.ax)([styles.scrollContainer, isFhsEnabled && fullHeightSidebarStyles.scrollContainer])
55
59
  }, /*#__PURE__*/_react.default.createElement("div", {
56
60
  className: (0, _runtime.ax)([styles.paddingContainer])
57
61
  }, children));
@@ -26,6 +26,7 @@ var _adapter = require("@atlaskit/pragmatic-drag-and-drop/element/adapter");
26
26
  var _responsive = require("@atlaskit/primitives/responsive");
27
27
  var _skipLinksContext = require("../../../context/skip-links/skip-links-context");
28
28
  var _topNavStartContext = require("../../../context/top-nav-start/top-nav-start-context");
29
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
29
30
  var _constants = require("../constants");
30
31
  var _hoistSlotSizesContext = require("../hoist-slot-sizes-context");
31
32
  var _hoistUtils = require("../hoist-utils");
@@ -106,6 +107,9 @@ function SideNavInternal(_ref) {
106
107
  onPeekEnd = _ref.onPeekEnd,
107
108
  providedId = _ref.id,
108
109
  canToggleWithShortcut = _ref.canToggleWithShortcut;
110
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
111
+ // eslint-disable-next-line react-hooks/rules-of-hooks
112
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
109
113
  var id = (0, _idUtils.useLayoutId)({
110
114
  providedId: providedId
111
115
  });
@@ -310,9 +314,9 @@ function SideNavInternal(_ref) {
310
314
  }
311
315
  if (action === 'ready-to-close') {
312
316
  // If there are no open layers, we can close the flyout.
313
- if (openLayerObserver.getCount({
317
+ if ((openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.getCount({
314
318
  namespace: openLayerObserverSideNavNamespace
315
- }) === 0) {
319
+ })) === 0) {
316
320
  close();
317
321
  return;
318
322
  }
@@ -668,7 +672,7 @@ function SideNavInternal(_ref) {
668
672
  // Close the flyout if there are no more layers open and the user is not mousing over the
669
673
  // flyout areas (side nav, TopNavStart element)
670
674
 
671
- return openLayerObserver.onChange(function (_ref6) {
675
+ return openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.onChange(function (_ref6) {
672
676
  var count = _ref6.count;
673
677
  if (flyoutStateRef.current.type === 'ready-to-close' && count === 0) {
674
678
  updateFlyoutState('force-close');
@@ -714,13 +718,13 @@ function SideNavInternal(_ref) {
714
718
  // Otherwise, the `@starting-style` rule will cause the sidebar to slide in initially.
715
719
  var isFirstRenderRef = (0, _react.useRef)(true);
716
720
  (0, _react.useEffect)(function () {
717
- if (!(0, _platformFeatureFlags.fg)('navx-full-height-sidebar')) {
721
+ if (!isFhsEnabled) {
718
722
  return;
719
723
  }
720
724
  if (isFirstRenderRef.current) {
721
725
  isFirstRenderRef.current = false;
722
726
  }
723
- }, []);
727
+ }, [isFhsEnabled]);
724
728
 
725
729
  // This is only used for the regular expand and collapse animations, not the flyout animations.
726
730
  var shouldShowSidebarToggleAnimation =
@@ -754,7 +758,7 @@ function SideNavInternal(_ref) {
754
758
  style: (0, _defineProperty2.default)({}, _constants.sideNavVar, clampedWidth),
755
759
  ref: mergedRef,
756
760
  "data-testid": testId,
757
- className: (0, _runtime.ax)([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.animationRTLSupport, shouldShowSidebarToggleAnimation && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !(0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !(0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.flyoutAnimateClosed, ((sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close') && !isFirefox && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.flyoutBaseStylesFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.flyoutAnimateClosedFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFirefox && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.flyoutAnimateClosedFullHeightSidebar, isFlyoutClosed && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.fullHeightSidebar])
761
+ className: (0, _runtime.ax)([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation && isFhsEnabled && styles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && isFhsEnabled && styles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && isFhsEnabled && styles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && isFhsEnabled && styles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && isFhsEnabled && styles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFhsEnabled && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFhsEnabled && styles.flyoutAnimateClosed, ((sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' || (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close') && !isFirefox && isFhsEnabled && styles.flyoutBaseStylesFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFirefox && isFhsEnabled && styles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && styles.flyoutAnimateClosedFullHeightSidebar, isFlyoutClosed && isFhsEnabled && styles.fullHeightSidebar])
758
762
  }), /*#__PURE__*/React.createElement(_hoistUtils.DangerouslyHoistCssVarToDocumentRoot, {
759
763
  variableName: _constants.sideNavLiveWidthVar,
760
764
  value: "0px",
@@ -16,7 +16,9 @@ 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");
21
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
20
22
  var _migration = require("../../top-nav-items/themed/migration");
21
23
  var _isSideNavShortcutEnabledContext = require("./is-side-nav-shortcut-enabled-context");
22
24
  var _sideNavToggleTooltipKeyboardShortcut = require("./side-nav-toggle-tooltip-keyboard-shortcut");
@@ -49,6 +51,9 @@ var SideNavToggleButton = exports.SideNavToggleButton = function SideNavToggleBu
49
51
  testId = _ref.testId,
50
52
  interactionName = _ref.interactionName,
51
53
  onClick = _ref.onClick;
54
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
55
+ // eslint-disable-next-line react-hooks/rules-of-hooks
56
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
52
57
  var _useSideNavVisibility = (0, _useSideNavVisibility2.useSideNavVisibility)({
53
58
  defaultCollapsed: defaultCollapsed
54
59
  }),
@@ -108,12 +113,16 @@ var SideNavToggleButton = exports.SideNavToggleButton = function SideNavToggleBu
108
113
  });
109
114
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
110
115
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
116
+ var openLayerObserver = (0, _openLayerObserver.useOpenLayerObserver)();
111
117
  var handleClick = (0, _react.useCallback)(function (event, analyticsEvent) {
112
118
  onClick === null || onClick === void 0 || onClick(event, analyticsEvent, {
113
119
  isSideNavVisible: isSideNavExpanded
114
120
  });
115
121
  toggleVisibility();
116
- }, [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]);
117
126
  var handlePointerEnter = (0, _react.useCallback)(function () {
118
127
  if (!(0, _platformFeatureFlags.fg)('platform_dst_nav4_fhs_instrumentation_1')) {
119
128
  return;
@@ -158,13 +167,13 @@ var SideNavToggleButton = exports.SideNavToggleButton = function SideNavToggleBu
158
167
  };
159
168
  var isShortcutEnabled = (0, _isSideNavShortcutEnabledContext.useIsSideNavShortcutEnabled)();
160
169
  var tooltipProps = (0, _react.useMemo)(function () {
161
- if ((0, _platformFeatureFlags.fg)('navx-full-height-sidebar')) {
170
+ if (isFhsEnabled) {
162
171
  return _objectSpread(_objectSpread({}, toggleButtonTooltipOptions), {}, {
163
172
  shortcut: isShortcutEnabled ? _sideNavToggleTooltipKeyboardShortcut.sideNavToggleTooltipKeyboardShortcut : undefined
164
173
  });
165
174
  }
166
175
  return toggleButtonTooltipOptions;
167
- }, [isShortcutEnabled]);
176
+ }, [isFhsEnabled, isShortcutEnabled]);
168
177
  return /*#__PURE__*/_react.default.createElement(_migration.IconButton, {
169
178
  appearance: "subtle",
170
179
  label: isSideNavExpanded ? collapseLabel : expandLabel,
@@ -10,6 +10,7 @@ var _bindEventListener = require("bind-event-listener");
10
10
  var _useStableRef = _interopRequireDefault(require("@atlaskit/ds-lib/use-stable-ref"));
11
11
  var _openLayerObserver = require("@atlaskit/layering/experimental/open-layer-observer");
12
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
13
14
  var _isSideNavShortcutEnabledContext = require("./is-side-nav-shortcut-enabled-context");
14
15
  var _useToggleSideNav = require("./use-toggle-side-nav");
15
16
  /**
@@ -17,6 +18,9 @@ var _useToggleSideNav = require("./use-toggle-side-nav");
17
18
  */
18
19
  function useSideNavToggleKeyboardShortcut(_ref) {
19
20
  var canToggleWithShortcut = _ref.canToggleWithShortcut;
21
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
22
+ // eslint-disable-next-line react-hooks/rules-of-hooks
23
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
20
24
  var openLayerObserver = (0, _openLayerObserver.useOpenLayerObserver)();
21
25
  var toggleVisibilityByShortcut = (0, _useToggleSideNav.useToggleSideNav)({
22
26
  trigger: 'keyboard'
@@ -24,7 +28,7 @@ function useSideNavToggleKeyboardShortcut(_ref) {
24
28
  var canToggleWithShortcutStableRef = (0, _useStableRef.default)(canToggleWithShortcut);
25
29
  var isSideNavShortcutEnabled = (0, _isSideNavShortcutEnabledContext.useIsSideNavShortcutEnabled)();
26
30
  (0, _react.useEffect)(function () {
27
- if (!(0, _platformFeatureFlags.fg)('navx-full-height-sidebar')) {
31
+ if (!isFhsEnabled) {
28
32
  return;
29
33
  }
30
34
  if (!isSideNavShortcutEnabled) {
@@ -43,7 +47,7 @@ function useSideNavToggleKeyboardShortcut(_ref) {
43
47
  // Ignore repeated keydown events from holding down the keys
44
48
  return;
45
49
  }
46
- if (openLayerObserver.getCount({
50
+ if (openLayerObserver && openLayerObserver.getCount({
47
51
  type: 'modal'
48
52
  }) > 0) {
49
53
  // Return early if there are any open modals
@@ -53,5 +57,5 @@ function useSideNavToggleKeyboardShortcut(_ref) {
53
57
  }
54
58
  }
55
59
  });
56
- }, [canToggleWithShortcutStableRef, openLayerObserver, toggleVisibilityByShortcut, isSideNavShortcutEnabled]);
60
+ }, [canToggleWithShortcutStableRef, isFhsEnabled, isSideNavShortcutEnabled, openLayerObserver, toggleVisibilityByShortcut]);
57
61
  }
@@ -19,6 +19,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
19
19
  var _popup = _interopRequireDefault(require("@atlaskit/popup"));
20
20
  var _compiled = require("@atlaskit/primitives/compiled");
21
21
  var _list = require("../../../components/list");
22
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
22
23
  var _hasCustomThemeContext = require("../../top-nav-items/themed/has-custom-theme-context");
23
24
  var _migration = require("../../top-nav-items/themed/migration");
24
25
  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); }
@@ -47,6 +48,9 @@ function TopNavEnd(_ref) {
47
48
  label = _ref$label === void 0 ? 'Actions' : _ref$label,
48
49
  _ref$showMoreButtonLa = _ref.showMoreButtonLabel,
49
50
  showMoreButtonLabel = _ref$showMoreButtonLa === void 0 ? 'Show more' : _ref$showMoreButtonLa;
51
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
52
+ // eslint-disable-next-line react-hooks/rules-of-hooks
53
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
50
54
  var _useState = (0, _react.useState)(false),
51
55
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
52
56
  isOpen = _useState2[0],
@@ -71,7 +75,7 @@ function TopNavEnd(_ref) {
71
75
  }, [query]);
72
76
  return /*#__PURE__*/_react.default.createElement("nav", {
73
77
  "aria-label": label,
74
- className: (0, _runtime.ax)([containerStyles.root, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && containerStyles.fullHeightSidebar, (0, _platformFeatureFlags.fg)('team25-eu-jira-logo-updates-csm-jsm') && containerStyles.jiraProductLogoUpdate])
78
+ className: (0, _runtime.ax)([containerStyles.root, isFhsEnabled && containerStyles.fullHeightSidebar, (0, _platformFeatureFlags.fg)('team25-eu-jira-logo-updates-csm-jsm') && containerStyles.jiraProductLogoUpdate])
75
79
  }, isMobile ? /*#__PURE__*/_react.default.createElement(_popup.default, {
76
80
  isOpen: isOpen,
77
81
  onClose: function onClose() {
@@ -10,6 +10,7 @@ require("./top-nav-middle.compiled.css");
10
10
  var _runtime = require("@compiled/react/runtime");
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
13
14
  var styles = {
14
15
  root: "_zulpu2gc _yyhycs5v _1bsb1osq _4cvr1h6o _1e0c1txw _1bahh9n0 _181n11p5 _1j8b15b0 _lagd1bp4 _1t4c1ris _12e8h9n0",
15
16
  fullHeightSidebar: "_lcxv1wug"
@@ -25,7 +26,10 @@ var styles = {
25
26
  */
26
27
  function TopNavMiddle(_ref) {
27
28
  var children = _ref.children;
29
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
30
+ // eslint-disable-next-line react-hooks/rules-of-hooks
31
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
28
32
  return /*#__PURE__*/_react.default.createElement("div", {
29
- className: (0, _runtime.ax)([styles.root, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.fullHeightSidebar])
33
+ className: (0, _runtime.ax)([styles.root, isFhsEnabled && styles.fullHeightSidebar])
30
34
  }, children);
31
35
  }
@@ -15,6 +15,7 @@ var _useStableRef = _interopRequireDefault(require("@atlaskit/ds-lib/use-stable-
15
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
16
  var _compiled = require("@atlaskit/primitives/compiled");
17
17
  var _topNavStartContext = require("../../../context/top-nav-start/top-nav-start-context");
18
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
18
19
  var _useSideNavVisibility3 = require("../side-nav/use-side-nav-visibility");
19
20
  var _visibilityContext = require("../side-nav/visibility-context");
20
21
  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); }
@@ -33,7 +34,7 @@ var flexGap = "var(--ds-space-050, 4px)";
33
34
  /**
34
35
  * Styles for the TopNavStart element.
35
36
  *
36
- * When `navx-full-height-sidebar` is enabled this is the styling for the inner element,
37
+ * When `useIsFhsEnabled` is true this is the styling for the inner element,
37
38
  * which re-enables pointer events.
38
39
  */
39
40
  var innerStyles = {
@@ -47,7 +48,7 @@ var innerStyles = {
47
48
  * Styles for the outer element, that does not have re-enabled pointer events and spans the entire
48
49
  * width of the TopNavStart area.
49
50
  *
50
- * This wrapper element is only rendered when `navx-full-height-sidebar` is enabled.
51
+ * This wrapper element is only rendered when `useIsFhsEnabled` is true.
51
52
  */
52
53
  var wrapperStyles = {
53
54
  root: "_vchhusvi _bozgutpp _4t3i1osq",
@@ -137,6 +138,9 @@ function TopNavStart(_ref3) {
137
138
  var children = _ref3.children,
138
139
  testId = _ref3.testId,
139
140
  sideNavToggleButton = _ref3.sideNavToggleButton;
141
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
142
+ // eslint-disable-next-line react-hooks/rules-of-hooks
143
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
140
144
  var ref = (0, _react.useContext)(_topNavStartContext.TopNavStartAttachRef);
141
145
  var elementRef = (0, _react.useRef)(null);
142
146
 
@@ -183,7 +187,7 @@ function TopNavStart(_ref3) {
183
187
  var isFirstRenderRef = (0, _react.useRef)(true);
184
188
  var sideNavState = (0, _react.useContext)(_visibilityContext.SideNavVisibilityState);
185
189
  (0, _react.useEffect)(function () {
186
- if (!(0, _platformFeatureFlags.fg)('navx-full-height-sidebar')) {
190
+ if (!isFhsEnabled) {
187
191
  return;
188
192
  }
189
193
 
@@ -196,13 +200,13 @@ function TopNavStart(_ref3) {
196
200
  if (isFirstRenderRef.current) {
197
201
  isFirstRenderRef.current = false;
198
202
  }
199
- }, [sideNavState]);
203
+ }, [isFhsEnabled, sideNavState]);
200
204
 
201
205
  // Using a stable ref to avoid re-running the animation layout effect when the toggle button prop value changes, which
202
206
  // can happen a lot (e.g. if the parent re-renders)
203
207
  var sideNavToggleButtonStableRef = (0, _useStableRef.default)(sideNavToggleButton);
204
208
  (0, _react.useLayoutEffect)(function () {
205
- if (!(0, _platformFeatureFlags.fg)('navx-full-height-sidebar')) {
209
+ if (!isFhsEnabled) {
206
210
  return;
207
211
  }
208
212
 
@@ -239,19 +243,19 @@ function TopNavStart(_ref3) {
239
243
  });
240
244
 
241
245
  // This layout effect is called when the sidebar's desktop expansion state changes.
242
- }, [isExpandedOnDesktop, sideNavToggleButtonStableRef]);
243
- var TopNavStartInner = (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') ? TopNavStartInnerFHS : TopNavStartInnerOld;
246
+ }, [isExpandedOnDesktop, isFhsEnabled, sideNavToggleButtonStableRef]);
247
+ var TopNavStartInner = isFhsEnabled ? TopNavStartInnerFHS : TopNavStartInnerOld;
244
248
  return /*#__PURE__*/_react.default.createElement(TopNavStartInner, {
245
249
  ref: elementRef,
246
250
  testId: testId
247
- }, !(0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && sideNavToggleButton, sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && /*#__PURE__*/_react.default.createElement("div", {
251
+ }, !isFhsEnabled && sideNavToggleButton, sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && isFhsEnabled && /*#__PURE__*/_react.default.createElement("div", {
248
252
  key: sideNavToggleButtonKey,
249
253
  className: (0, _runtime.ax)([!isFirefox && toggleButtonWrapperStyles.root, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
250
254
  // Timing function is applied when the browser animates to the idle position.
251
255
  animationState.type === 'idle' && toggleButtonWrapperStyles.collapseAnimationTimingFunction, !isFirefox && animationState.type === 'collapse' && toggleButtonWrapperStyles.collapseAnimationStartPosition])
252
- }, sideNavToggleButton), (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') ? /*#__PURE__*/_react.default.createElement("div", {
256
+ }, sideNavToggleButton), isFhsEnabled ? /*#__PURE__*/_react.default.createElement("div", {
253
257
  className: (0, _runtime.ax)([childrenWrapperStyles.root, !isFirefox && childrenWrapperStyles.animationBaseStyles, !isFirefox && animationState.type === 'idle' && childrenWrapperStyles.finalPosition, !isFirefox && animationState.type === 'expand' && childrenWrapperStyles.expandAnimationStartPosition, !isFirefox && animationState.type === 'collapse' && childrenWrapperStyles.collapseAnimationStartPosition])
254
- }, children) : children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && /*#__PURE__*/_react.default.createElement("div", {
258
+ }, children) : children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && isFhsEnabled && /*#__PURE__*/_react.default.createElement("div", {
255
259
  key: sideNavToggleButtonKey,
256
260
  className: (0, _runtime.ax)([!isFirefox && toggleButtonWrapperStyles.root, toggleButtonWrapperStyles.alignEnd, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
257
261
  // Timing function is applied when the browser animates to the idle position.
@@ -14,6 +14,7 @@ var _runtime = require("@compiled/react/runtime");
14
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
16
  var _skipLinksContext = require("../../../context/skip-links/skip-links-context");
17
+ var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
17
18
  var _hasCustomThemeContext = require("../../top-nav-items/themed/has-custom-theme-context");
18
19
  var _useCustomTheme = require("../../top-nav-items/themed/use-custom-theme");
19
20
  var _constants = require("../constants");
@@ -60,6 +61,9 @@ function TopNav(_ref) {
60
61
  testId = _ref.testId,
61
62
  providedId = _ref.id,
62
63
  UNSAFE_theme = _ref.UNSAFE_theme;
64
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
65
+ // eslint-disable-next-line react-hooks/rules-of-hooks
66
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
63
67
  var dangerouslyHoistSlotSizes = (0, _react.useContext)(_hoistSlotSizesContext.DangerouslyHoistSlotSizes);
64
68
  var id = (0, _idUtils.useLayoutId)({
65
69
  providedId: providedId
@@ -97,21 +101,21 @@ function TopNav(_ref) {
97
101
  isExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop;
98
102
  return /*#__PURE__*/React.createElement(_hasCustomThemeContext.HasCustomThemeContext.Provider, {
99
103
  value: customTheme.isEnabled
100
- }, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && /*#__PURE__*/React.createElement("div", {
104
+ }, isFhsEnabled && /*#__PURE__*/React.createElement("div", {
101
105
  "data-layout-slot": true,
102
106
  "aria-hidden": true
103
107
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
104
108
  ,
105
- style: (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') ? backgroundStyle : undefined,
109
+ style: isFhsEnabled ? backgroundStyle : undefined,
106
110
  className: (0, _runtime.ax)([backgroundStyles.root, isExpandedOnDesktop && backgroundStyles.sideNavExpanded])
107
111
  }), /*#__PURE__*/React.createElement("header", {
108
112
  id: id,
109
113
  "data-layout-slot": true,
110
- className: (0, _runtime.ax)([styles.root, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.fullHeightSidebar, isExpandedOnDesktop && (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.fullHeightSidebarExpanded, xcss]),
114
+ className: (0, _runtime.ax)([styles.root, isFhsEnabled && styles.fullHeightSidebar, isExpandedOnDesktop && isFhsEnabled && styles.fullHeightSidebarExpanded, xcss]),
111
115
  "data-testid": testId
112
116
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
113
117
  ,
114
- style: (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') ? foregroundStyle : customTheme.isEnabled ? customTheme.style : undefined
118
+ style: isFhsEnabled ? foregroundStyle : customTheme.isEnabled ? customTheme.style : undefined
115
119
  }, /*#__PURE__*/React.createElement(_hoistUtils.HoistCssVarToLocalGrid, {
116
120
  variableName: _constants.topNavMountedVar,
117
121
  value: height