@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
@@ -6,6 +6,7 @@ import { cx } from '@atlaskit/css';
6
6
  import SearchIcon from '@atlaskit/icon/core/search';
7
7
  import { fg } from '@atlaskit/platform-feature-flags';
8
8
  import { Pressable, Show, Text } from '@atlaskit/primitives/compiled';
9
+ import { useIsFhsEnabled } from '../fhs-rollout/use-is-fhs-enabled';
9
10
  import { IconButton } from './themed/migration';
10
11
  const styles = {
11
12
  root: "_2rko12b0 _1rjcze3t _18zr12x7 _yv0e1mfv _4cvr1h6o _bfhk1j9a _vchhusvi _80om1kdv _1e0cglyw _4t3izwfg _p12f1kvu _1bsb1osq _irr3l4ek _1di6r01l _114b11p5",
@@ -27,37 +28,42 @@ export const Search = ({
27
28
  elemAfter,
28
29
  interactionName,
29
30
  'aria-haspopup': ariaHaspopup
30
- }) => /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
31
- style: {
32
- // To win the specificity war against Emotion we move this into inline styles
33
- // When Emotion has been stripped from the Design System move this to Compiled.
34
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
35
- cursor: 'text',
36
- border: `${"var(--ds-border-width, 1px)"} solid ${"var(--ds-border-input, #8C8F97)"}`
37
- },
38
- onClick: onClick,
39
- xcss: cx(styles.root, fg('navx-full-height-sidebar') && styles.fullHeightSidebar),
40
- interactionName: interactionName,
41
- "aria-haspopup": ariaHaspopup
42
- }, /*#__PURE__*/React.createElement("span", {
43
- className: ax([styles.iconBefore])
44
- }, /*#__PURE__*/React.createElement(IconBefore, {
45
- color: "var(--ds-icon-subtle, #505258)",
46
- spacing: "spacious",
47
- label: ""
48
- })), /*#__PURE__*/React.createElement("div", {
49
- className: ax([styles.buttonText])
50
- }, /*#__PURE__*/React.createElement(Text, {
51
- color: "color.text.subtlest"
52
- }, label)), elemAfter && /*#__PURE__*/React.createElement("span", {
53
- className: ax([styles.elemAfter])
54
- }, elemAfter)), /*#__PURE__*/React.createElement(Show, {
55
- below: "xs"
56
- }, /*#__PURE__*/React.createElement(IconButton, {
57
- label: label,
58
- appearance: "subtle",
59
- icon: SearchIcon,
60
- onClick: onClick,
61
- interactionName: interactionName,
62
- "aria-haspopup": ariaHaspopup
63
- })));
31
+ }) => {
32
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
33
+ // eslint-disable-next-line react-hooks/rules-of-hooks
34
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
35
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
36
+ style: {
37
+ // To win the specificity war against Emotion we move this into inline styles
38
+ // When Emotion has been stripped from the Design System move this to Compiled.
39
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
40
+ cursor: 'text',
41
+ border: `${"var(--ds-border-width, 1px)"} solid ${"var(--ds-border-input, #8C8F97)"}`
42
+ },
43
+ onClick: onClick,
44
+ xcss: cx(styles.root, isFhsEnabled && styles.fullHeightSidebar),
45
+ interactionName: interactionName,
46
+ "aria-haspopup": ariaHaspopup
47
+ }, /*#__PURE__*/React.createElement("span", {
48
+ className: ax([styles.iconBefore])
49
+ }, /*#__PURE__*/React.createElement(IconBefore, {
50
+ color: "var(--ds-icon-subtle, #505258)",
51
+ spacing: "spacious",
52
+ label: ""
53
+ })), /*#__PURE__*/React.createElement("div", {
54
+ className: ax([styles.buttonText])
55
+ }, /*#__PURE__*/React.createElement(Text, {
56
+ color: "color.text.subtlest"
57
+ }, label)), elemAfter && /*#__PURE__*/React.createElement("span", {
58
+ className: ax([styles.elemAfter])
59
+ }, elemAfter)), /*#__PURE__*/React.createElement(Show, {
60
+ below: "xs"
61
+ }, /*#__PURE__*/React.createElement(IconButton, {
62
+ label: label,
63
+ appearance: "subtle",
64
+ icon: SearchIcon,
65
+ onClick: onClick,
66
+ interactionName: interactionName,
67
+ "aria-haspopup": ariaHaspopup
68
+ })));
69
+ };
@@ -0,0 +1,3 @@
1
+ export { IsFhsEnabledContext } from '../ui/fhs-rollout/is-fhs-enabled-context';
2
+ export { IsFhsEnabledProvider } from '../ui/fhs-rollout/is-fhs-enabled-provider';
3
+ export { useIsFhsEnabled } from '../ui/fhs-rollout/use-is-fhs-enabled';
package/dist/esm/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ export { IsFhsEnabledContext } from './ui/fhs-rollout/is-fhs-enabled-context';
2
+ export { IsFhsEnabledProvider } from './ui/fhs-rollout/is-fhs-enabled-provider';
3
+ export { useIsFhsEnabled } from './ui/fhs-rollout/use-is-fhs-enabled';
1
4
  export { ExpandableMenuItem } from './ui/menu-item/expandable-menu-item/expandable-menu-item';
2
5
  export { ExpandableMenuItemTrigger } from './ui/menu-item/expandable-menu-item/expandable-menu-item-trigger';
3
6
  export { ExpandableMenuItemContent } from './ui/menu-item/expandable-menu-item/expandable-menu-item-content';
@@ -0,0 +1,9 @@
1
+ import { createContext } from 'react';
2
+
3
+ /**
4
+ * __Is custom is fhs enabled context__
5
+ *
6
+ * Tracks if a custom value has been provided for `IsFhsEnabledContext`.
7
+ * Used to prevent nesting of the `IsFhsEnabledProvider`.
8
+ */
9
+ export var IsCustomIsFhsEnabledContext = /*#__PURE__*/createContext(false);
@@ -0,0 +1,11 @@
1
+ import { createContext } from 'react';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
3
+ /**
4
+ * __Is fhs enabled context__
5
+ *
6
+ * Tracks is FHS enabled.
7
+ * Defaults to feature gate 'navx-full-height-sidebar'.
8
+ */
9
+ export var IsFhsEnabledContext = /*#__PURE__*/createContext(function () {
10
+ return fg('navx-full-height-sidebar');
11
+ });
@@ -0,0 +1,22 @@
1
+ import React, { useContext } from 'react';
2
+ import { IsCustomIsFhsEnabledContext } from './is-custom-is-fhs-enabled-context';
3
+ import { IsFhsEnabledContext } from './is-fhs-enabled-context';
4
+
5
+ /**
6
+ * __Is fhs enabled provider__
7
+ *
8
+ * Used to provide a custom value for is FHS enabled.
9
+ */
10
+ export var IsFhsEnabledProvider = function IsFhsEnabledProvider(_ref) {
11
+ var children = _ref.children,
12
+ value = _ref.value;
13
+ var isCustomIsFhsEnabled = useContext(IsCustomIsFhsEnabledContext);
14
+ if (isCustomIsFhsEnabled) {
15
+ throw new Error('A custom value for IsFhsEnabledContext has already been provided');
16
+ }
17
+ return /*#__PURE__*/React.createElement(IsCustomIsFhsEnabledContext.Provider, {
18
+ value: true
19
+ }, /*#__PURE__*/React.createElement(IsFhsEnabledContext.Provider, {
20
+ value: value
21
+ }, children));
22
+ };
File without changes
@@ -0,0 +1,12 @@
1
+ import { useContext } from 'react';
2
+ import { IsFhsEnabledContext } from './is-fhs-enabled-context';
3
+
4
+ /**
5
+ * __Use is fhs enabled__
6
+ *
7
+ * Retrieves is FHS enabled.
8
+ */
9
+ export var useIsFhsEnabled = function useIsFhsEnabled() {
10
+ var isFhsEnabled = useContext(IsFhsEnabledContext);
11
+ return typeof isFhsEnabled === 'boolean' ? isFhsEnabled : isFhsEnabled();
12
+ };
@@ -21,6 +21,7 @@ import { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/elem
21
21
  import { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';
22
22
  import Tooltip from '@atlaskit/tooltip';
23
23
  import VisuallyHidden from '@atlaskit/visually-hidden';
24
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
24
25
  import { OnDoubleClickContext, PanelSplitterContext } from './context';
25
26
  import { convertResizeBoundToPixels } from './convert-resize-bound-to-pixels';
26
27
  import { getPercentageWithinPixelBounds } from './get-percentage-within-pixel-bounds';
@@ -49,7 +50,10 @@ var MaybeTooltip = function MaybeTooltip(_ref) {
49
50
  var tooltipContent = _ref.tooltipContent,
50
51
  shortcut = _ref.shortcut,
51
52
  children = _ref.children;
52
- if (tooltipContent && fg('navx-full-height-sidebar')) {
53
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
54
+ // eslint-disable-next-line react-hooks/rules-of-hooks
55
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
56
+ if (tooltipContent && isFhsEnabled) {
53
57
  return /*#__PURE__*/React.createElement(Tooltip, {
54
58
  content: tooltipContent,
55
59
  shortcut: shortcut,
@@ -83,6 +87,9 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref2) {
83
87
  position = _ref2.position,
84
88
  tooltipContent = _ref2.tooltipContent,
85
89
  shortcut = _ref2.shortcut;
90
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
91
+ // eslint-disable-next-line react-hooks/rules-of-hooks
92
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
86
93
  var splitterRef = useRef(null);
87
94
  var labelId = useId();
88
95
  // Separate state used for the input range width to remove the UI's dependency on the "persisted" layout state value being updated
@@ -299,7 +306,7 @@ var PortaledPanelSplitter = function PortaledPanelSplitter(_ref2) {
299
306
  ref: splitterRef,
300
307
  "data-testid": testId,
301
308
  onDoubleClick: onDoubleClick,
302
- className: ax([grabAreaStyles.root, fg('navx-full-height-sidebar') && grabAreaStyles.fullHeightSidebar])
309
+ className: ax([grabAreaStyles.root, isFhsEnabled && grabAreaStyles.fullHeightSidebar])
303
310
  }, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement("input", {
304
311
  type: "range",
305
312
  value: rangeInputValue,
@@ -4,6 +4,8 @@ import { ax, ix } from "@compiled/react/runtime";
4
4
  import React, { forwardRef, useMemo, useRef } from 'react';
5
5
  import mergeRefs from '@atlaskit/ds-lib/merge-refs';
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
8
+
7
9
  /**
8
10
  * The main content of the side nav, filling up the middle section. It acts as a scroll container.
9
11
  *
@@ -35,14 +37,17 @@ var fullHeightSidebarStyles = {
35
37
  function _SideNavContent(_ref, forwardedRef) {
36
38
  var children = _ref.children,
37
39
  testId = _ref.testId;
40
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
41
+ // eslint-disable-next-line react-hooks/rules-of-hooks
42
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
38
43
  var internalRef = useRef(null);
39
44
  var mergedRef = useMemo(function () {
40
45
  return mergeRefs([internalRef, forwardedRef]);
41
46
  }, [forwardedRef]);
42
47
  return /*#__PURE__*/React.createElement("div", {
43
- ref: fg('navx-full-height-sidebar') ? mergedRef : forwardedRef,
48
+ ref: isFhsEnabled ? mergedRef : forwardedRef,
44
49
  "data-testid": testId,
45
- className: ax([styles.scrollContainer, fg('navx-full-height-sidebar') && fullHeightSidebarStyles.scrollContainer])
50
+ className: ax([styles.scrollContainer, isFhsEnabled && fullHeightSidebarStyles.scrollContainer])
46
51
  }, /*#__PURE__*/React.createElement("div", {
47
52
  className: ax([styles.paddingContainer])
48
53
  }, children));
@@ -19,6 +19,7 @@ import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/ad
19
19
  import { media } from '@atlaskit/primitives/responsive';
20
20
  import { useSkipLinkInternal } from '../../../context/skip-links/skip-links-context';
21
21
  import { TopNavStartElement } from '../../../context/top-nav-start/top-nav-start-context';
22
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
22
23
  import { bannerMountedVar, contentHeightWhenFixed, contentInsetBlockStart, localSlotLayers, sideNavLiveWidthVar, sideNavPanelSplitterId, sideNavVar, topNavMountedVar, UNSAFE_sideNavLayoutVar } from '../constants';
23
24
  import { DangerouslyHoistSlotSizes } from '../hoist-slot-sizes-context';
24
25
  import { DangerouslyHoistCssVarToDocumentRoot } from '../hoist-utils';
@@ -96,6 +97,9 @@ function SideNavInternal(_ref) {
96
97
  onPeekEnd = _ref.onPeekEnd,
97
98
  providedId = _ref.id,
98
99
  canToggleWithShortcut = _ref.canToggleWithShortcut;
100
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
101
+ // eslint-disable-next-line react-hooks/rules-of-hooks
102
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
99
103
  var id = useLayoutId({
100
104
  providedId: providedId
101
105
  });
@@ -300,9 +304,9 @@ function SideNavInternal(_ref) {
300
304
  }
301
305
  if (action === 'ready-to-close') {
302
306
  // If there are no open layers, we can close the flyout.
303
- if (openLayerObserver.getCount({
307
+ if ((openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.getCount({
304
308
  namespace: openLayerObserverSideNavNamespace
305
- }) === 0) {
309
+ })) === 0) {
306
310
  close();
307
311
  return;
308
312
  }
@@ -658,7 +662,7 @@ function SideNavInternal(_ref) {
658
662
  // Close the flyout if there are no more layers open and the user is not mousing over the
659
663
  // flyout areas (side nav, TopNavStart element)
660
664
 
661
- return openLayerObserver.onChange(function (_ref6) {
665
+ return openLayerObserver === null || openLayerObserver === void 0 ? void 0 : openLayerObserver.onChange(function (_ref6) {
662
666
  var count = _ref6.count;
663
667
  if (flyoutStateRef.current.type === 'ready-to-close' && count === 0) {
664
668
  updateFlyoutState('force-close');
@@ -704,13 +708,13 @@ function SideNavInternal(_ref) {
704
708
  // Otherwise, the `@starting-style` rule will cause the sidebar to slide in initially.
705
709
  var isFirstRenderRef = useRef(true);
706
710
  useEffect(function () {
707
- if (!fg('navx-full-height-sidebar')) {
711
+ if (!isFhsEnabled) {
708
712
  return;
709
713
  }
710
714
  if (isFirstRenderRef.current) {
711
715
  isFirstRenderRef.current = false;
712
716
  }
713
- }, []);
717
+ }, [isFhsEnabled]);
714
718
 
715
719
  // This is only used for the regular expand and collapse animations, not the flyout animations.
716
720
  var shouldShowSidebarToggleAnimation =
@@ -744,7 +748,7 @@ function SideNavInternal(_ref) {
744
748
  style: _defineProperty({}, sideNavVar, clampedWidth),
745
749
  ref: mergedRef,
746
750
  "data-testid": testId,
747
- className: ax([styles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, fg('navx-full-height-sidebar') && styles.animationRTLSupport, shouldShowSidebarToggleAnimation && fg('navx-full-height-sidebar') && styles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && fg('navx-full-height-sidebar') && styles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && fg('navx-full-height-sidebar') && styles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && fg('navx-full-height-sidebar') && styles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && fg('navx-full-height-sidebar') && styles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !fg('navx-full-height-sidebar') && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !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 && fg('navx-full-height-sidebar') && styles.flyoutBaseStylesFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && fg('navx-full-height-sidebar') && styles.flyoutAnimateClosedFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFirefox && fg('navx-full-height-sidebar') && styles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && fg('navx-full-height-sidebar') && styles.flyoutAnimateClosedFullHeightSidebar, isFlyoutClosed && fg('navx-full-height-sidebar') && styles.fullHeightSidebar])
751
+ className: 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])
748
752
  }), /*#__PURE__*/React.createElement(DangerouslyHoistCssVarToDocumentRoot, {
749
753
  variableName: sideNavLiveWidthVar,
750
754
  value: "0px",
@@ -10,7 +10,9 @@ 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';
15
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
14
16
  import { IconButton } from '../../top-nav-items/themed/migration';
15
17
  import { useIsSideNavShortcutEnabled } from './is-side-nav-shortcut-enabled-context';
16
18
  import { sideNavToggleTooltipKeyboardShortcut } from './side-nav-toggle-tooltip-keyboard-shortcut';
@@ -40,6 +42,9 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
40
42
  testId = _ref.testId,
41
43
  interactionName = _ref.interactionName,
42
44
  onClick = _ref.onClick;
45
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
46
+ // eslint-disable-next-line react-hooks/rules-of-hooks
47
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
43
48
  var _useSideNavVisibility = useSideNavVisibility({
44
49
  defaultCollapsed: defaultCollapsed
45
50
  }),
@@ -99,12 +104,16 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
99
104
  });
100
105
  var _useAnalyticsEvents = useAnalyticsEvents(),
101
106
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
107
+ var openLayerObserver = useOpenLayerObserver();
102
108
  var handleClick = useCallback(function (event, analyticsEvent) {
103
109
  onClick === null || onClick === void 0 || onClick(event, analyticsEvent, {
104
110
  isSideNavVisible: isSideNavExpanded
105
111
  });
106
112
  toggleVisibility();
107
- }, [onClick, isSideNavExpanded, toggleVisibility]);
113
+ if (fg('navx-full-height-sidebar')) {
114
+ openLayerObserver === null || openLayerObserver === void 0 || openLayerObserver.closeLayers();
115
+ }
116
+ }, [onClick, isSideNavExpanded, toggleVisibility, openLayerObserver]);
108
117
  var handlePointerEnter = useCallback(function () {
109
118
  if (!fg('platform_dst_nav4_fhs_instrumentation_1')) {
110
119
  return;
@@ -149,13 +158,13 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
149
158
  };
150
159
  var isShortcutEnabled = useIsSideNavShortcutEnabled();
151
160
  var tooltipProps = useMemo(function () {
152
- if (fg('navx-full-height-sidebar')) {
161
+ if (isFhsEnabled) {
153
162
  return _objectSpread(_objectSpread({}, toggleButtonTooltipOptions), {}, {
154
163
  shortcut: isShortcutEnabled ? sideNavToggleTooltipKeyboardShortcut : undefined
155
164
  });
156
165
  }
157
166
  return toggleButtonTooltipOptions;
158
- }, [isShortcutEnabled]);
167
+ }, [isFhsEnabled, isShortcutEnabled]);
159
168
  return /*#__PURE__*/React.createElement(IconButton, {
160
169
  appearance: "subtle",
161
170
  label: isSideNavExpanded ? collapseLabel : expandLabel,
@@ -3,6 +3,7 @@ import { bind } from 'bind-event-listener';
3
3
  import useStableRef from '@atlaskit/ds-lib/use-stable-ref';
4
4
  import { useOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
5
5
  import { fg } from '@atlaskit/platform-feature-flags';
6
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
6
7
  import { useIsSideNavShortcutEnabled } from './is-side-nav-shortcut-enabled-context';
7
8
  import { useToggleSideNav } from './use-toggle-side-nav';
8
9
 
@@ -11,6 +12,9 @@ import { useToggleSideNav } from './use-toggle-side-nav';
11
12
  */
12
13
  export function useSideNavToggleKeyboardShortcut(_ref) {
13
14
  var canToggleWithShortcut = _ref.canToggleWithShortcut;
15
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
16
+ // eslint-disable-next-line react-hooks/rules-of-hooks
17
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
14
18
  var openLayerObserver = useOpenLayerObserver();
15
19
  var toggleVisibilityByShortcut = useToggleSideNav({
16
20
  trigger: 'keyboard'
@@ -18,7 +22,7 @@ export function useSideNavToggleKeyboardShortcut(_ref) {
18
22
  var canToggleWithShortcutStableRef = useStableRef(canToggleWithShortcut);
19
23
  var isSideNavShortcutEnabled = useIsSideNavShortcutEnabled();
20
24
  useEffect(function () {
21
- if (!fg('navx-full-height-sidebar')) {
25
+ if (!isFhsEnabled) {
22
26
  return;
23
27
  }
24
28
  if (!isSideNavShortcutEnabled) {
@@ -37,7 +41,7 @@ export function useSideNavToggleKeyboardShortcut(_ref) {
37
41
  // Ignore repeated keydown events from holding down the keys
38
42
  return;
39
43
  }
40
- if (openLayerObserver.getCount({
44
+ if (openLayerObserver && openLayerObserver.getCount({
41
45
  type: 'modal'
42
46
  }) > 0) {
43
47
  // Return early if there are any open modals
@@ -47,5 +51,5 @@ export function useSideNavToggleKeyboardShortcut(_ref) {
47
51
  }
48
52
  }
49
53
  });
50
- }, [canToggleWithShortcutStableRef, openLayerObserver, toggleVisibilityByShortcut, isSideNavShortcutEnabled]);
54
+ }, [canToggleWithShortcutStableRef, isFhsEnabled, isSideNavShortcutEnabled, openLayerObserver, toggleVisibilityByShortcut]);
51
55
  }
@@ -11,6 +11,7 @@ import { fg } from '@atlaskit/platform-feature-flags';
11
11
  import Popup from '@atlaskit/popup';
12
12
  import { UNSAFE_useMediaQuery as useMediaQuery } from '@atlaskit/primitives/compiled';
13
13
  import { List } from '../../../components/list';
14
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
14
15
  import { HasCustomThemeContext } from '../../top-nav-items/themed/has-custom-theme-context';
15
16
  import { IconButton } from '../../top-nav-items/themed/migration';
16
17
  var containerStyles = {
@@ -38,6 +39,9 @@ export function TopNavEnd(_ref) {
38
39
  label = _ref$label === void 0 ? 'Actions' : _ref$label,
39
40
  _ref$showMoreButtonLa = _ref.showMoreButtonLabel,
40
41
  showMoreButtonLabel = _ref$showMoreButtonLa === void 0 ? 'Show more' : _ref$showMoreButtonLa;
42
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
43
+ // eslint-disable-next-line react-hooks/rules-of-hooks
44
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
41
45
  var _useState = useState(false),
42
46
  _useState2 = _slicedToArray(_useState, 2),
43
47
  isOpen = _useState2[0],
@@ -62,7 +66,7 @@ export function TopNavEnd(_ref) {
62
66
  }, [query]);
63
67
  return /*#__PURE__*/React.createElement("nav", {
64
68
  "aria-label": label,
65
- className: ax([containerStyles.root, fg('navx-full-height-sidebar') && containerStyles.fullHeightSidebar, fg('team25-eu-jira-logo-updates-csm-jsm') && containerStyles.jiraProductLogoUpdate])
69
+ className: ax([containerStyles.root, isFhsEnabled && containerStyles.fullHeightSidebar, fg('team25-eu-jira-logo-updates-csm-jsm') && containerStyles.jiraProductLogoUpdate])
66
70
  }, isMobile ? /*#__PURE__*/React.createElement(Popup, {
67
71
  isOpen: isOpen,
68
72
  onClose: function onClose() {
@@ -3,6 +3,7 @@ import "./top-nav-middle.compiled.css";
3
3
  import { ax, ix } from "@compiled/react/runtime";
4
4
  import React from 'react';
5
5
  import { fg } from '@atlaskit/platform-feature-flags';
6
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
6
7
  var styles = {
7
8
  root: "_zulpu2gc _yyhycs5v _1bsb1osq _4cvr1h6o _1e0c1txw _1bahh9n0 _181n11p5 _1j8b15b0 _lagd1bp4 _1t4c1ris _12e8h9n0",
8
9
  fullHeightSidebar: "_lcxv1wug"
@@ -18,7 +19,10 @@ var styles = {
18
19
  */
19
20
  export function TopNavMiddle(_ref) {
20
21
  var children = _ref.children;
22
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
23
+ // eslint-disable-next-line react-hooks/rules-of-hooks
24
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
21
25
  return /*#__PURE__*/React.createElement("div", {
22
- className: ax([styles.root, fg('navx-full-height-sidebar') && styles.fullHeightSidebar])
26
+ className: ax([styles.root, isFhsEnabled && styles.fullHeightSidebar])
23
27
  }, children);
24
28
  }
@@ -7,6 +7,7 @@ import useStableRef from '@atlaskit/ds-lib/use-stable-ref';
7
7
  import { fg } from '@atlaskit/platform-feature-flags';
8
8
  import { UNSAFE_useMediaQuery } from '@atlaskit/primitives/compiled';
9
9
  import { TopNavStartAttachRef } from '../../../context/top-nav-start/top-nav-start-context';
10
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
10
11
  import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
11
12
  import { SideNavVisibilityState } from '../side-nav/visibility-context';
12
13
 
@@ -25,7 +26,7 @@ var flexGap = "var(--ds-space-050, 4px)";
25
26
  /**
26
27
  * Styles for the TopNavStart element.
27
28
  *
28
- * When `navx-full-height-sidebar` is enabled this is the styling for the inner element,
29
+ * When `useIsFhsEnabled` is true this is the styling for the inner element,
29
30
  * which re-enables pointer events.
30
31
  */
31
32
  var innerStyles = {
@@ -39,7 +40,7 @@ var innerStyles = {
39
40
  * Styles for the outer element, that does not have re-enabled pointer events and spans the entire
40
41
  * width of the TopNavStart area.
41
42
  *
42
- * This wrapper element is only rendered when `navx-full-height-sidebar` is enabled.
43
+ * This wrapper element is only rendered when `useIsFhsEnabled` is true.
43
44
  */
44
45
  var wrapperStyles = {
45
46
  root: "_vchhusvi _bozgutpp _4t3i1osq",
@@ -129,6 +130,9 @@ export function TopNavStart(_ref3) {
129
130
  var children = _ref3.children,
130
131
  testId = _ref3.testId,
131
132
  sideNavToggleButton = _ref3.sideNavToggleButton;
133
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
134
+ // eslint-disable-next-line react-hooks/rules-of-hooks
135
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
132
136
  var ref = useContext(TopNavStartAttachRef);
133
137
  var elementRef = useRef(null);
134
138
 
@@ -175,7 +179,7 @@ export function TopNavStart(_ref3) {
175
179
  var isFirstRenderRef = useRef(true);
176
180
  var sideNavState = useContext(SideNavVisibilityState);
177
181
  useEffect(function () {
178
- if (!fg('navx-full-height-sidebar')) {
182
+ if (!isFhsEnabled) {
179
183
  return;
180
184
  }
181
185
 
@@ -188,13 +192,13 @@ export function TopNavStart(_ref3) {
188
192
  if (isFirstRenderRef.current) {
189
193
  isFirstRenderRef.current = false;
190
194
  }
191
- }, [sideNavState]);
195
+ }, [isFhsEnabled, sideNavState]);
192
196
 
193
197
  // Using a stable ref to avoid re-running the animation layout effect when the toggle button prop value changes, which
194
198
  // can happen a lot (e.g. if the parent re-renders)
195
199
  var sideNavToggleButtonStableRef = useStableRef(sideNavToggleButton);
196
200
  useLayoutEffect(function () {
197
- if (!fg('navx-full-height-sidebar')) {
201
+ if (!isFhsEnabled) {
198
202
  return;
199
203
  }
200
204
 
@@ -231,19 +235,19 @@ export function TopNavStart(_ref3) {
231
235
  });
232
236
 
233
237
  // This layout effect is called when the sidebar's desktop expansion state changes.
234
- }, [isExpandedOnDesktop, sideNavToggleButtonStableRef]);
235
- var TopNavStartInner = fg('navx-full-height-sidebar') ? TopNavStartInnerFHS : TopNavStartInnerOld;
238
+ }, [isExpandedOnDesktop, isFhsEnabled, sideNavToggleButtonStableRef]);
239
+ var TopNavStartInner = isFhsEnabled ? TopNavStartInnerFHS : TopNavStartInnerOld;
236
240
  return /*#__PURE__*/React.createElement(TopNavStartInner, {
237
241
  ref: elementRef,
238
242
  testId: testId
239
- }, !fg('navx-full-height-sidebar') && sideNavToggleButton, sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement("div", {
243
+ }, !isFhsEnabled && sideNavToggleButton, sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && isFhsEnabled && /*#__PURE__*/React.createElement("div", {
240
244
  key: sideNavToggleButtonKey,
241
245
  className: ax([!isFirefox && toggleButtonWrapperStyles.root, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
242
246
  // Timing function is applied when the browser animates to the idle position.
243
247
  animationState.type === 'idle' && toggleButtonWrapperStyles.collapseAnimationTimingFunction, !isFirefox && animationState.type === 'collapse' && toggleButtonWrapperStyles.collapseAnimationStartPosition])
244
- }, sideNavToggleButton), fg('navx-full-height-sidebar') ? /*#__PURE__*/React.createElement("div", {
248
+ }, sideNavToggleButton), isFhsEnabled ? /*#__PURE__*/React.createElement("div", {
245
249
  className: ax([childrenWrapperStyles.root, !isFirefox && childrenWrapperStyles.animationBaseStyles, !isFirefox && animationState.type === 'idle' && childrenWrapperStyles.finalPosition, !isFirefox && animationState.type === 'expand' && childrenWrapperStyles.expandAnimationStartPosition, !isFirefox && animationState.type === 'collapse' && childrenWrapperStyles.collapseAnimationStartPosition])
246
- }, children) : children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement("div", {
250
+ }, children) : children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && isFhsEnabled && /*#__PURE__*/React.createElement("div", {
247
251
  key: sideNavToggleButtonKey,
248
252
  className: ax([!isFirefox && toggleButtonWrapperStyles.root, toggleButtonWrapperStyles.alignEnd, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
249
253
  // Timing function is applied when the browser animates to the idle position.
@@ -7,6 +7,7 @@ import { ax, ix } from "@compiled/react/runtime";
7
7
  import { useContext, useMemo } from 'react';
8
8
  import { fg } from '@atlaskit/platform-feature-flags';
9
9
  import { useSkipLink } from '../../../context/skip-links/skip-links-context';
10
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
10
11
  import { HasCustomThemeContext } from '../../top-nav-items/themed/has-custom-theme-context';
11
12
  import { useCustomTheme } from '../../top-nav-items/themed/use-custom-theme';
12
13
  import { bannerMountedVar, localSlotLayers, topNavMountedVar, UNSAFE_topNavVar } from '../constants';
@@ -51,6 +52,9 @@ export function TopNav(_ref) {
51
52
  testId = _ref.testId,
52
53
  providedId = _ref.id,
53
54
  UNSAFE_theme = _ref.UNSAFE_theme;
55
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
56
+ // eslint-disable-next-line react-hooks/rules-of-hooks
57
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
54
58
  var dangerouslyHoistSlotSizes = useContext(DangerouslyHoistSlotSizes);
55
59
  var id = useLayoutId({
56
60
  providedId: providedId
@@ -88,21 +92,21 @@ export function TopNav(_ref) {
88
92
  isExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop;
89
93
  return /*#__PURE__*/React.createElement(HasCustomThemeContext.Provider, {
90
94
  value: customTheme.isEnabled
91
- }, fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement("div", {
95
+ }, isFhsEnabled && /*#__PURE__*/React.createElement("div", {
92
96
  "data-layout-slot": true,
93
97
  "aria-hidden": true
94
98
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
95
99
  ,
96
- style: fg('navx-full-height-sidebar') ? backgroundStyle : undefined,
100
+ style: isFhsEnabled ? backgroundStyle : undefined,
97
101
  className: ax([backgroundStyles.root, isExpandedOnDesktop && backgroundStyles.sideNavExpanded])
98
102
  }), /*#__PURE__*/React.createElement("header", {
99
103
  id: id,
100
104
  "data-layout-slot": true,
101
- className: ax([styles.root, fg('navx-full-height-sidebar') && styles.fullHeightSidebar, isExpandedOnDesktop && fg('navx-full-height-sidebar') && styles.fullHeightSidebarExpanded, xcss]),
105
+ className: ax([styles.root, isFhsEnabled && styles.fullHeightSidebar, isExpandedOnDesktop && isFhsEnabled && styles.fullHeightSidebarExpanded, xcss]),
102
106
  "data-testid": testId
103
107
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
104
108
  ,
105
- style: fg('navx-full-height-sidebar') ? foregroundStyle : customTheme.isEnabled ? customTheme.style : undefined
109
+ style: isFhsEnabled ? foregroundStyle : customTheme.isEnabled ? customTheme.style : undefined
106
110
  }, /*#__PURE__*/React.createElement(HoistCssVarToLocalGrid, {
107
111
  variableName: topNavMountedVar,
108
112
  value: height
@@ -6,6 +6,7 @@ import { cx } from '@compiled/react';
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
7
  import { Anchor, Inline, Text } from '@atlaskit/primitives/compiled';
8
8
  import Tooltip from '@atlaskit/tooltip';
9
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
9
10
  import { useHasCustomTheme } from '../themed/has-custom-theme-context';
10
11
  import { LogoRenderer } from './logo-renderer';
11
12
  var anchorStyles = {
@@ -44,6 +45,9 @@ export var AppLogo = function AppLogo(_ref) {
44
45
  href = _ref.href,
45
46
  icon = _ref.icon,
46
47
  onClick = _ref.onClick;
48
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
49
+ // eslint-disable-next-line react-hooks/rules-of-hooks
50
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
47
51
  var ref = useRef(null);
48
52
  var nameRef = useRef(null);
49
53
  var hasCustomTheme = useHasCustomTheme();
@@ -62,14 +66,14 @@ export var AppLogo = function AppLogo(_ref) {
62
66
  // @ts-expect-error - non-standard values for `borderRadius` and the custom theming interaction states
63
67
  // eslint-disable-next-line @compiled/no-suppress-xcss
64
68
  ,
65
- xcss: cx(anchorStyles.root, hasCustomTheme ? anchorStyles.interactionStatesCustomTheming : anchorStyles.interactionStates, fg('navx-full-height-sidebar') && anchorStyles.fullHeightSidebar),
69
+ xcss: cx(anchorStyles.root, hasCustomTheme ? anchorStyles.interactionStatesCustomTheming : anchorStyles.interactionStates, isFhsEnabled && anchorStyles.fullHeightSidebar),
66
70
  onClick: onClick
67
71
  }, /*#__PURE__*/React.createElement(Inline, {
68
72
  space: "space.075",
69
73
  alignBlock: "center",
70
- xcss: cx(logoWrapperStyles.root, fg('navx-full-height-sidebar') && logoWrapperStyles.fullHeightSidebar)
74
+ xcss: cx(logoWrapperStyles.root, isFhsEnabled && logoWrapperStyles.fullHeightSidebar)
71
75
  }, /*#__PURE__*/React.createElement("div", {
72
- className: ax([iconContainerStyles.root, fg('navx-full-height-sidebar') && iconContainerStyles.fullHeightSidebar])
76
+ className: ax([iconContainerStyles.root, isFhsEnabled && iconContainerStyles.fullHeightSidebar])
73
77
  }, /*#__PURE__*/React.createElement(LogoRenderer
74
78
  // Top nav always uses the new logo design
75
79
  , {