@atlaskit/navigation-system 5.5.0 → 5.6.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 (85) hide show
  1. package/CHANGELOG.md +15 -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 +7 -3
  12. package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +6 -2
  13. package/dist/cjs/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +6 -2
  14. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.compiled.css +1 -0
  15. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +6 -2
  16. package/dist/cjs/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  17. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +14 -10
  18. package/dist/cjs/ui/page-layout/top-nav/top-nav.compiled.css +1 -1
  19. package/dist/cjs/ui/page-layout/top-nav/top-nav.js +9 -5
  20. package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.js +7 -3
  21. package/dist/cjs/ui/top-nav-items/search.js +5 -1
  22. package/dist/es2019/entry-points/fhs-rollout.js +3 -0
  23. package/dist/es2019/index.js +3 -0
  24. package/dist/es2019/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +9 -0
  25. package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-context.js +9 -0
  26. package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-provider.js +23 -0
  27. package/dist/es2019/ui/fhs-rollout/types.js +0 -0
  28. package/dist/es2019/ui/fhs-rollout/use-is-fhs-enabled.js +12 -0
  29. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +9 -2
  30. package/dist/es2019/ui/page-layout/side-nav/side-nav-content.js +7 -2
  31. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +7 -3
  32. package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +6 -2
  33. package/dist/es2019/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +6 -2
  34. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.compiled.css +1 -0
  35. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +6 -2
  36. package/dist/es2019/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  37. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +14 -10
  38. package/dist/es2019/ui/page-layout/top-nav/top-nav.compiled.css +1 -1
  39. package/dist/es2019/ui/page-layout/top-nav/top-nav.js +9 -5
  40. package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.js +7 -3
  41. package/dist/es2019/ui/top-nav-items/search.js +40 -34
  42. package/dist/esm/entry-points/fhs-rollout.js +3 -0
  43. package/dist/esm/index.js +3 -0
  44. package/dist/esm/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +9 -0
  45. package/dist/esm/ui/fhs-rollout/is-fhs-enabled-context.js +11 -0
  46. package/dist/esm/ui/fhs-rollout/is-fhs-enabled-provider.js +22 -0
  47. package/dist/esm/ui/fhs-rollout/types.js +0 -0
  48. package/dist/esm/ui/fhs-rollout/use-is-fhs-enabled.js +12 -0
  49. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +9 -2
  50. package/dist/esm/ui/page-layout/side-nav/side-nav-content.js +7 -2
  51. package/dist/esm/ui/page-layout/side-nav/side-nav.js +7 -3
  52. package/dist/esm/ui/page-layout/side-nav/toggle-button.js +6 -2
  53. package/dist/esm/ui/page-layout/side-nav/use-side-nav-toggle-keyboard-shortcut.js +6 -2
  54. package/dist/esm/ui/page-layout/top-nav/top-nav-end.compiled.css +1 -0
  55. package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +6 -2
  56. package/dist/esm/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  57. package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +14 -10
  58. package/dist/esm/ui/page-layout/top-nav/top-nav.compiled.css +1 -1
  59. package/dist/esm/ui/page-layout/top-nav/top-nav.js +9 -5
  60. package/dist/esm/ui/top-nav-items/nav-logo/app-logo.js +7 -3
  61. package/dist/esm/ui/top-nav-items/search.js +5 -1
  62. package/dist/types/entry-points/fhs-rollout.d.ts +3 -0
  63. package/dist/types/index.d.ts +3 -0
  64. package/dist/types/ui/fhs-rollout/is-custom-is-fhs-enabled-context.d.ts +7 -0
  65. package/dist/types/ui/fhs-rollout/is-fhs-enabled-context.d.ts +8 -0
  66. package/dist/types/ui/fhs-rollout/is-fhs-enabled-provider.d.ts +10 -0
  67. package/dist/types/ui/fhs-rollout/types.d.ts +1 -0
  68. package/dist/types/ui/fhs-rollout/use-is-fhs-enabled.d.ts +6 -0
  69. package/dist/types/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -1
  70. package/dist/types/ui/page-layout/panel-splitter/side-nav-panel-splitter.d.ts +1 -1
  71. package/dist/types/ui/page-layout/root.d.ts +1 -1
  72. package/dist/types/ui/page-layout/side-nav/side-nav.d.ts +1 -1
  73. package/dist/types-ts4.5/entry-points/fhs-rollout.d.ts +3 -0
  74. package/dist/types-ts4.5/index.d.ts +3 -0
  75. package/dist/types-ts4.5/ui/fhs-rollout/is-custom-is-fhs-enabled-context.d.ts +7 -0
  76. package/dist/types-ts4.5/ui/fhs-rollout/is-fhs-enabled-context.d.ts +8 -0
  77. package/dist/types-ts4.5/ui/fhs-rollout/is-fhs-enabled-provider.d.ts +10 -0
  78. package/dist/types-ts4.5/ui/fhs-rollout/types.d.ts +1 -0
  79. package/dist/types-ts4.5/ui/fhs-rollout/use-is-fhs-enabled.d.ts +6 -0
  80. package/dist/types-ts4.5/ui/page-layout/panel-splitter/panel-splitter.d.ts +1 -1
  81. package/dist/types-ts4.5/ui/page-layout/panel-splitter/side-nav-panel-splitter.d.ts +1 -1
  82. package/dist/types-ts4.5/ui/page-layout/root.d.ts +1 -1
  83. package/dist/types-ts4.5/ui/page-layout/side-nav/side-nav.d.ts +1 -1
  84. package/fhs-rollout/package.json +17 -0
  85. package/package.json +7 -4
@@ -14,6 +14,7 @@ var _css = require("@atlaskit/css");
14
14
  var _search = _interopRequireDefault(require("@atlaskit/icon/core/search"));
15
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
16
  var _compiled = require("@atlaskit/primitives/compiled");
17
+ var _useIsFhsEnabled = require("../fhs-rollout/use-is-fhs-enabled");
17
18
  var _migration = require("./themed/migration");
18
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
20
  var styles = {
@@ -37,6 +38,9 @@ var Search = exports.Search = function Search(_ref) {
37
38
  elemAfter = _ref.elemAfter,
38
39
  interactionName = _ref.interactionName,
39
40
  ariaHaspopup = _ref['aria-haspopup'];
41
+ var isFhsEnabled = (0, _platformFeatureFlags.fg)('navx-2566-implement-fhs-rollout') ?
42
+ // eslint-disable-next-line react-hooks/rules-of-hooks
43
+ (0, _useIsFhsEnabled.useIsFhsEnabled)() : (0, _platformFeatureFlags.fg)('navx-full-height-sidebar');
40
44
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_compiled.Pressable, {
41
45
  style: {
42
46
  // To win the specificity war against Emotion we move this into inline styles
@@ -46,7 +50,7 @@ var Search = exports.Search = function Search(_ref) {
46
50
  border: "var(--ds-border-width, 1px)".concat(" solid ", "var(--ds-border-input, #8C8F97)")
47
51
  },
48
52
  onClick: onClick,
49
- xcss: (0, _css.cx)(styles.root, (0, _platformFeatureFlags.fg)('navx-full-height-sidebar') && styles.fullHeightSidebar),
53
+ xcss: (0, _css.cx)(styles.root, isFhsEnabled && styles.fullHeightSidebar),
50
54
  interactionName: interactionName,
51
55
  "aria-haspopup": ariaHaspopup
52
56
  }, /*#__PURE__*/_react.default.createElement("span", {
@@ -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';
@@ -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 const IsCustomIsFhsEnabledContext = /*#__PURE__*/createContext(false);
@@ -0,0 +1,9 @@
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 const IsFhsEnabledContext = /*#__PURE__*/createContext(() => fg('navx-full-height-sidebar'));
@@ -0,0 +1,23 @@
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 const IsFhsEnabledProvider = ({
11
+ children,
12
+ value
13
+ }) => {
14
+ const isCustomIsFhsEnabled = useContext(IsCustomIsFhsEnabledContext);
15
+ if (isCustomIsFhsEnabled) {
16
+ throw new Error('A custom value for IsFhsEnabledContext has already been provided');
17
+ }
18
+ return /*#__PURE__*/React.createElement(IsCustomIsFhsEnabledContext.Provider, {
19
+ value: true
20
+ }, /*#__PURE__*/React.createElement(IsFhsEnabledContext.Provider, {
21
+ value: value
22
+ }, children));
23
+ };
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 const useIsFhsEnabled = () => {
10
+ const isFhsEnabled = useContext(IsFhsEnabledContext);
11
+ return typeof isFhsEnabled === 'boolean' ? isFhsEnabled : isFhsEnabled();
12
+ };
@@ -17,6 +17,7 @@ import { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/elem
17
17
  import { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';
18
18
  import Tooltip from '@atlaskit/tooltip';
19
19
  import VisuallyHidden from '@atlaskit/visually-hidden';
20
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
20
21
  import { OnDoubleClickContext, PanelSplitterContext } from './context';
21
22
  import { convertResizeBoundToPixels } from './convert-resize-bound-to-pixels';
22
23
  import { getPercentageWithinPixelBounds } from './get-percentage-within-pixel-bounds';
@@ -49,7 +50,10 @@ const MaybeTooltip = ({
49
50
  shortcut,
50
51
  children
51
52
  }) => {
52
- if (tooltipContent && fg('navx-full-height-sidebar')) {
53
+ const 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,
@@ -85,6 +89,9 @@ const PortaledPanelSplitter = ({
85
89
  tooltipContent,
86
90
  shortcut
87
91
  }) => {
92
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
93
+ // eslint-disable-next-line react-hooks/rules-of-hooks
94
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
88
95
  const splitterRef = useRef(null);
89
96
  const labelId = useId();
90
97
  // Separate state used for the input range width to remove the UI's dependency on the "persisted" layout state value being updated
@@ -288,7 +295,7 @@ const PortaledPanelSplitter = ({
288
295
  ref: splitterRef,
289
296
  "data-testid": testId,
290
297
  onDoubleClick: onDoubleClick,
291
- className: ax([grabAreaStyles.root, fg('navx-full-height-sidebar') && grabAreaStyles.fullHeightSidebar])
298
+ className: ax([grabAreaStyles.root, isFhsEnabled && grabAreaStyles.fullHeightSidebar])
292
299
  }, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement("input", {
293
300
  type: "range",
294
301
  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
  *
@@ -36,12 +38,15 @@ function _SideNavContent({
36
38
  children,
37
39
  testId
38
40
  }, forwardedRef) {
41
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
42
+ // eslint-disable-next-line react-hooks/rules-of-hooks
43
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
39
44
  const internalRef = useRef(null);
40
45
  const mergedRef = useMemo(() => mergeRefs([internalRef, forwardedRef]), [forwardedRef]);
41
46
  return /*#__PURE__*/React.createElement("div", {
42
- ref: fg('navx-full-height-sidebar') ? mergedRef : forwardedRef,
47
+ ref: isFhsEnabled ? mergedRef : forwardedRef,
43
48
  "data-testid": testId,
44
- className: ax([styles.scrollContainer, fg('navx-full-height-sidebar') && fullHeightSidebarStyles.scrollContainer])
49
+ className: ax([styles.scrollContainer, isFhsEnabled && fullHeightSidebarStyles.scrollContainer])
45
50
  }, /*#__PURE__*/React.createElement("div", {
46
51
  className: ax([styles.paddingContainer])
47
52
  }, children));
@@ -15,6 +15,7 @@ import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/ad
15
15
  import { media } from '@atlaskit/primitives/responsive';
16
16
  import { useSkipLinkInternal } from '../../../context/skip-links/skip-links-context';
17
17
  import { TopNavStartElement } from '../../../context/top-nav-start/top-nav-start-context';
18
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
18
19
  import { bannerMountedVar, contentHeightWhenFixed, contentInsetBlockStart, localSlotLayers, sideNavLiveWidthVar, sideNavPanelSplitterId, sideNavVar, topNavMountedVar, UNSAFE_sideNavLayoutVar } from '../constants';
19
20
  import { DangerouslyHoistSlotSizes } from '../hoist-slot-sizes-context';
20
21
  import { DangerouslyHoistCssVarToDocumentRoot } from '../hoist-utils';
@@ -90,6 +91,9 @@ function SideNavInternal({
90
91
  canToggleWithShortcut
91
92
  }) {
92
93
  var _sideNavState$lastTri;
94
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
95
+ // eslint-disable-next-line react-hooks/rules-of-hooks
96
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
93
97
  const id = useLayoutId({
94
98
  providedId
95
99
  });
@@ -701,13 +705,13 @@ function SideNavInternal({
701
705
  // Otherwise, the `@starting-style` rule will cause the sidebar to slide in initially.
702
706
  const isFirstRenderRef = useRef(true);
703
707
  useEffect(() => {
704
- if (!fg('navx-full-height-sidebar')) {
708
+ if (!isFhsEnabled) {
705
709
  return;
706
710
  }
707
711
  if (isFirstRenderRef.current) {
708
712
  isFirstRenderRef.current = false;
709
713
  }
710
- }, []);
714
+ }, [isFhsEnabled]);
711
715
 
712
716
  // This is only used for the regular expand and collapse animations, not the flyout animations.
713
717
  const shouldShowSidebarToggleAnimation =
@@ -744,7 +748,7 @@ function SideNavInternal({
744
748
  },
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",
@@ -7,6 +7,7 @@ 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
9
  import { fg } from '@atlaskit/platform-feature-flags';
10
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
10
11
  import { IconButton } from '../../top-nav-items/themed/migration';
11
12
  import { useIsSideNavShortcutEnabled } from './is-side-nav-shortcut-enabled-context';
12
13
  import { sideNavToggleTooltipKeyboardShortcut } from './side-nav-toggle-tooltip-keyboard-shortcut';
@@ -36,6 +37,9 @@ export const SideNavToggleButton = ({
36
37
  interactionName,
37
38
  onClick
38
39
  }) => {
40
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
41
+ // eslint-disable-next-line react-hooks/rules-of-hooks
42
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
39
43
  const {
40
44
  isExpandedOnDesktop: isSideNavExpandedOnDesktop,
41
45
  isExpandedOnMobile: isSideNavExpandedOnMobile
@@ -140,14 +144,14 @@ export const SideNavToggleButton = ({
140
144
  }, isSideNavExpanded ? /*#__PURE__*/React.createElement(SidebarCollapseIcon, props) : /*#__PURE__*/React.createElement(SidebarExpandIcon, props));
141
145
  const isShortcutEnabled = useIsSideNavShortcutEnabled();
142
146
  const tooltipProps = useMemo(() => {
143
- if (fg('navx-full-height-sidebar')) {
147
+ if (isFhsEnabled) {
144
148
  return {
145
149
  ...toggleButtonTooltipOptions,
146
150
  shortcut: isShortcutEnabled ? sideNavToggleTooltipKeyboardShortcut : undefined
147
151
  };
148
152
  }
149
153
  return toggleButtonTooltipOptions;
150
- }, [isShortcutEnabled]);
154
+ }, [isFhsEnabled, isShortcutEnabled]);
151
155
  return /*#__PURE__*/React.createElement(IconButton, {
152
156
  appearance: "subtle",
153
157
  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
 
@@ -12,6 +13,9 @@ import { useToggleSideNav } from './use-toggle-side-nav';
12
13
  export function useSideNavToggleKeyboardShortcut({
13
14
  canToggleWithShortcut
14
15
  }) {
16
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
17
+ // eslint-disable-next-line react-hooks/rules-of-hooks
18
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
15
19
  const openLayerObserver = useOpenLayerObserver();
16
20
  const toggleVisibilityByShortcut = useToggleSideNav({
17
21
  trigger: 'keyboard'
@@ -19,7 +23,7 @@ export function useSideNavToggleKeyboardShortcut({
19
23
  const canToggleWithShortcutStableRef = useStableRef(canToggleWithShortcut);
20
24
  const isSideNavShortcutEnabled = useIsSideNavShortcutEnabled();
21
25
  useEffect(() => {
22
- if (!fg('navx-full-height-sidebar')) {
26
+ if (!isFhsEnabled) {
23
27
  return;
24
28
  }
25
29
  if (!isSideNavShortcutEnabled) {
@@ -48,5 +52,5 @@ export function useSideNavToggleKeyboardShortcut({
48
52
  }
49
53
  }
50
54
  });
51
- }, [canToggleWithShortcutStableRef, openLayerObserver, toggleVisibilityByShortcut, isSideNavShortcutEnabled]);
55
+ }, [canToggleWithShortcutStableRef, isFhsEnabled, isSideNavShortcutEnabled, openLayerObserver, toggleVisibilityByShortcut]);
52
56
  }
@@ -7,5 +7,6 @@
7
7
  ._1ul9zwfg{min-width:2pc}
8
8
  ._4cvr1h6o{align-items:center}
9
9
  ._lcxv1wug{pointer-events:auto}
10
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
10
11
  @media (min-width:48rem){._181n1txw{display:flex}._1d2y1ris{min-width:max-content}}
11
12
  @media (min-width:64rem){._15rip2n4{min-width:330px}._glte1ris{width:max-content}._15ri1mjv{min-width:300px}._1gs5usvi{box-sizing:border-box}._ndwch9n0{justify-self:end}}
@@ -10,12 +10,13 @@ import { fg } from '@atlaskit/platform-feature-flags';
10
10
  import Popup from '@atlaskit/popup';
11
11
  import { UNSAFE_useMediaQuery as useMediaQuery } from '@atlaskit/primitives/compiled';
12
12
  import { List } from '../../../components/list';
13
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
13
14
  import { HasCustomThemeContext } from '../../top-nav-items/themed/has-custom-theme-context';
14
15
  import { IconButton } from '../../top-nav-items/themed/migration';
15
16
  const containerStyles = {
16
17
  root: "_yyhy11wp _1e0c1txw _1bahh9n0 _1ul9zwfg _1d2y1ris _glte1ris _15ri1mjv _1gs5usvi _ndwch9n0",
17
18
  jiraProductLogoUpdate: "_15rip2n4",
18
- fullHeightSidebar: "_lcxv1wug"
19
+ fullHeightSidebar: "_lcxv1wug _y4tiutpp"
19
20
  };
20
21
  const listStyles = {
21
22
  root: "_zulp1b66 _4cvr1h6o _1e0c1txw",
@@ -36,6 +37,9 @@ export function TopNavEnd({
36
37
  label = 'Actions',
37
38
  showMoreButtonLabel = 'Show more'
38
39
  }) {
40
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
41
+ // eslint-disable-next-line react-hooks/rules-of-hooks
42
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
39
43
  const [isOpen, setIsOpen] = useState(false);
40
44
  // Always setting to `false` for the initial render (will flip in an effect for mobile)
41
45
  const [isMobile, setIsMobile] = useState(false);
@@ -54,7 +58,7 @@ export function TopNavEnd({
54
58
  }, [query]);
55
59
  return /*#__PURE__*/React.createElement("nav", {
56
60
  "aria-label": label,
57
- className: ax([containerStyles.root, fg('navx-full-height-sidebar') && containerStyles.fullHeightSidebar, fg('team25-eu-jira-logo-updates-csm-jsm') && containerStyles.jiraProductLogoUpdate])
61
+ className: ax([containerStyles.root, isFhsEnabled && containerStyles.fullHeightSidebar, fg('team25-eu-jira-logo-updates-csm-jsm') && containerStyles.jiraProductLogoUpdate])
58
62
  }, isMobile ? /*#__PURE__*/React.createElement(Popup, {
59
63
  isOpen: isOpen,
60
64
  onClose: () => setIsOpen(false),
@@ -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
  const styles = {
7
8
  root: "_zulpu2gc _yyhycs5v _1bsb1osq _4cvr1h6o _1e0c1txw _1bahh9n0 _181n11p5 _1j8b15b0 _lagd1bp4 _1t4c1ris _12e8h9n0",
8
9
  fullHeightSidebar: "_lcxv1wug"
@@ -19,7 +20,10 @@ const styles = {
19
20
  export function TopNavMiddle({
20
21
  children
21
22
  }) {
23
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
24
+ // eslint-disable-next-line react-hooks/rules-of-hooks
25
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
22
26
  return /*#__PURE__*/React.createElement("div", {
23
- className: ax([styles.root, fg('navx-full-height-sidebar') && styles.fullHeightSidebar])
27
+ className: ax([styles.root, isFhsEnabled && styles.fullHeightSidebar])
24
28
  }, children);
25
29
  }
@@ -6,6 +6,7 @@ import useStableRef from '@atlaskit/ds-lib/use-stable-ref';
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
7
  import { UNSAFE_useMediaQuery } from '@atlaskit/primitives/compiled';
8
8
  import { TopNavStartAttachRef } from '../../../context/top-nav-start/top-nav-start-context';
9
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
9
10
  import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
10
11
  import { SideNavVisibilityState } from '../side-nav/visibility-context';
11
12
 
@@ -24,7 +25,7 @@ const flexGap = "var(--ds-space-050, 4px)";
24
25
  /**
25
26
  * Styles for the TopNavStart element.
26
27
  *
27
- * When `navx-full-height-sidebar` is enabled this is the styling for the inner element,
28
+ * When `useIsFhsEnabled` is true this is the styling for the inner element,
28
29
  * which re-enables pointer events.
29
30
  */
30
31
  const innerStyles = {
@@ -38,7 +39,7 @@ const innerStyles = {
38
39
  * Styles for the outer element, that does not have re-enabled pointer events and spans the entire
39
40
  * width of the TopNavStart area.
40
41
  *
41
- * This wrapper element is only rendered when `navx-full-height-sidebar` is enabled.
42
+ * This wrapper element is only rendered when `useIsFhsEnabled` is true.
42
43
  */
43
44
  const wrapperStyles = {
44
45
  root: "_vchhusvi _bozgutpp _4t3i1osq",
@@ -132,6 +133,9 @@ export function TopNavStart({
132
133
  testId,
133
134
  sideNavToggleButton
134
135
  }) {
136
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
137
+ // eslint-disable-next-line react-hooks/rules-of-hooks
138
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
135
139
  const ref = useContext(TopNavStartAttachRef);
136
140
  const elementRef = useRef(null);
137
141
 
@@ -173,7 +177,7 @@ export function TopNavStart({
173
177
  const isFirstRenderRef = useRef(true);
174
178
  const sideNavState = useContext(SideNavVisibilityState);
175
179
  useEffect(() => {
176
- if (!fg('navx-full-height-sidebar')) {
180
+ if (!isFhsEnabled) {
177
181
  return;
178
182
  }
179
183
 
@@ -186,13 +190,13 @@ export function TopNavStart({
186
190
  if (isFirstRenderRef.current) {
187
191
  isFirstRenderRef.current = false;
188
192
  }
189
- }, [sideNavState]);
193
+ }, [isFhsEnabled, sideNavState]);
190
194
 
191
195
  // Using a stable ref to avoid re-running the animation layout effect when the toggle button prop value changes, which
192
196
  // can happen a lot (e.g. if the parent re-renders)
193
197
  const sideNavToggleButtonStableRef = useStableRef(sideNavToggleButton);
194
198
  useLayoutEffect(() => {
195
- if (!fg('navx-full-height-sidebar')) {
199
+ if (!isFhsEnabled) {
196
200
  return;
197
201
  }
198
202
 
@@ -229,19 +233,19 @@ export function TopNavStart({
229
233
  });
230
234
 
231
235
  // This layout effect is called when the sidebar's desktop expansion state changes.
232
- }, [isExpandedOnDesktop, sideNavToggleButtonStableRef]);
233
- const TopNavStartInner = fg('navx-full-height-sidebar') ? TopNavStartInnerFHS : TopNavStartInnerOld;
236
+ }, [isExpandedOnDesktop, isFhsEnabled, sideNavToggleButtonStableRef]);
237
+ const TopNavStartInner = isFhsEnabled ? TopNavStartInnerFHS : TopNavStartInnerOld;
234
238
  return /*#__PURE__*/React.createElement(TopNavStartInner, {
235
239
  ref: elementRef,
236
240
  testId: testId
237
- }, !fg('navx-full-height-sidebar') && sideNavToggleButton, sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement("div", {
241
+ }, !isFhsEnabled && sideNavToggleButton, sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && isFhsEnabled && /*#__PURE__*/React.createElement("div", {
238
242
  key: sideNavToggleButtonKey,
239
243
  className: ax([!isFirefox && toggleButtonWrapperStyles.root, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
240
244
  // Timing function is applied when the browser animates to the idle position.
241
245
  animationState.type === 'idle' && toggleButtonWrapperStyles.collapseAnimationTimingFunction, !isFirefox && animationState.type === 'collapse' && toggleButtonWrapperStyles.collapseAnimationStartPosition])
242
- }, sideNavToggleButton), fg('navx-full-height-sidebar') ? /*#__PURE__*/React.createElement("div", {
246
+ }, sideNavToggleButton), isFhsEnabled ? /*#__PURE__*/React.createElement("div", {
243
247
  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])
244
- }, children) : children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement("div", {
248
+ }, children) : children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && isFhsEnabled && /*#__PURE__*/React.createElement("div", {
245
249
  key: sideNavToggleButtonKey,
246
250
  className: ax([!isFirefox && toggleButtonWrapperStyles.root, toggleButtonWrapperStyles.alignEnd, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
247
251
  // Timing function is applied when the browser animates to the idle position.
@@ -17,7 +17,7 @@
17
17
  ._kqsw1if8{position:sticky}
18
18
  ._lcxvglyw{pointer-events:none}
19
19
  ._vchhusvi{box-sizing:border-box}
20
- ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
20
+ ._y4tize3t{padding-inline-end:var(--ds-space-0,0)}
21
21
  ._yv0e1mfv{grid-template-columns:auto 1fr auto}
22
22
  @media (min-width:48rem){._1j8b18ax{grid-template-columns:1fr minmax(min-content,max-content) 1fr}}
23
23
  @media (min-width:64rem){._1rqt16a9{grid-template-columns:0fr minmax(min-content,max-content) 1fr}._hyzqcs5v{z-index:2}._pdlmutpp{gap:var(--ds-space-150,9pt)}}
@@ -5,6 +5,7 @@ import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useContext, useMemo } from 'react';
6
6
  import { fg } from '@atlaskit/platform-feature-flags';
7
7
  import { useSkipLink } from '../../../context/skip-links/skip-links-context';
8
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
8
9
  import { HasCustomThemeContext } from '../../top-nav-items/themed/has-custom-theme-context';
9
10
  import { useCustomTheme } from '../../top-nav-items/themed/use-custom-theme';
10
11
  import { bannerMountedVar, localSlotLayers, topNavMountedVar, UNSAFE_topNavVar } from '../constants';
@@ -22,7 +23,7 @@ import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
22
23
  */
23
24
  const styles = {
24
25
  root: "_nd5l8cbt _zulpu2gc _18zrutpp _179ria51 _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
25
- fullHeightSidebar: "_179rglyw _bozgze3t _y4tiutpp _bfhkglyw _lcxvglyw _pdlmutpp",
26
+ fullHeightSidebar: "_179rglyw _bozgze3t _y4tize3t _bfhkglyw _lcxvglyw _pdlmutpp",
26
27
  fullHeightSidebarExpanded: "_1rqt16a9 _jh1g18ax"
27
28
  };
28
29
 
@@ -48,6 +49,9 @@ export function TopNav({
48
49
  id: providedId,
49
50
  UNSAFE_theme
50
51
  }) {
52
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
53
+ // eslint-disable-next-line react-hooks/rules-of-hooks
54
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
51
55
  const dangerouslyHoistSlotSizes = useContext(DangerouslyHoistSlotSizes);
52
56
  const id = useLayoutId({
53
57
  providedId
@@ -88,21 +92,21 @@ export function TopNav({
88
92
  } = useSideNavVisibility();
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
  const anchorStyles = {
@@ -45,6 +46,9 @@ export const AppLogo = ({
45
46
  icon,
46
47
  onClick
47
48
  }) => {
49
+ const isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
50
+ // eslint-disable-next-line react-hooks/rules-of-hooks
51
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
48
52
  const ref = useRef(null);
49
53
  const nameRef = useRef(null);
50
54
  const hasCustomTheme = useHasCustomTheme();
@@ -63,14 +67,14 @@ export const AppLogo = ({
63
67
  // @ts-expect-error - non-standard values for `borderRadius` and the custom theming interaction states
64
68
  // eslint-disable-next-line @compiled/no-suppress-xcss
65
69
  ,
66
- xcss: cx(anchorStyles.root, hasCustomTheme ? anchorStyles.interactionStatesCustomTheming : anchorStyles.interactionStates, fg('navx-full-height-sidebar') && anchorStyles.fullHeightSidebar),
70
+ xcss: cx(anchorStyles.root, hasCustomTheme ? anchorStyles.interactionStatesCustomTheming : anchorStyles.interactionStates, isFhsEnabled && anchorStyles.fullHeightSidebar),
67
71
  onClick: onClick
68
72
  }, /*#__PURE__*/React.createElement(Inline, {
69
73
  space: "space.075",
70
74
  alignBlock: "center",
71
- xcss: cx(logoWrapperStyles.root, fg('navx-full-height-sidebar') && logoWrapperStyles.fullHeightSidebar)
75
+ xcss: cx(logoWrapperStyles.root, isFhsEnabled && logoWrapperStyles.fullHeightSidebar)
72
76
  }, /*#__PURE__*/React.createElement("div", {
73
- className: ax([iconContainerStyles.root, fg('navx-full-height-sidebar') && iconContainerStyles.fullHeightSidebar])
77
+ className: ax([iconContainerStyles.root, isFhsEnabled && iconContainerStyles.fullHeightSidebar])
74
78
  }, /*#__PURE__*/React.createElement(LogoRenderer
75
79
  // Top nav always uses the new logo design
76
80
  , {
@@ -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';