@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
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
  });
@@ -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",
@@ -11,6 +11,7 @@ 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
13
  import { fg } from '@atlaskit/platform-feature-flags';
14
+ import { useIsFhsEnabled } from '../../fhs-rollout/use-is-fhs-enabled';
14
15
  import { IconButton } from '../../top-nav-items/themed/migration';
15
16
  import { useIsSideNavShortcutEnabled } from './is-side-nav-shortcut-enabled-context';
16
17
  import { sideNavToggleTooltipKeyboardShortcut } from './side-nav-toggle-tooltip-keyboard-shortcut';
@@ -40,6 +41,9 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
40
41
  testId = _ref.testId,
41
42
  interactionName = _ref.interactionName,
42
43
  onClick = _ref.onClick;
44
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
45
+ // eslint-disable-next-line react-hooks/rules-of-hooks
46
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
43
47
  var _useSideNavVisibility = useSideNavVisibility({
44
48
  defaultCollapsed: defaultCollapsed
45
49
  }),
@@ -149,13 +153,13 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
149
153
  };
150
154
  var isShortcutEnabled = useIsSideNavShortcutEnabled();
151
155
  var tooltipProps = useMemo(function () {
152
- if (fg('navx-full-height-sidebar')) {
156
+ if (isFhsEnabled) {
153
157
  return _objectSpread(_objectSpread({}, toggleButtonTooltipOptions), {}, {
154
158
  shortcut: isShortcutEnabled ? sideNavToggleTooltipKeyboardShortcut : undefined
155
159
  });
156
160
  }
157
161
  return toggleButtonTooltipOptions;
158
- }, [isShortcutEnabled]);
162
+ }, [isFhsEnabled, isShortcutEnabled]);
159
163
  return /*#__PURE__*/React.createElement(IconButton, {
160
164
  appearance: "subtle",
161
165
  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) {
@@ -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
  }
@@ -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}}
@@ -11,12 +11,13 @@ 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 = {
17
18
  root: "_yyhy11wp _1e0c1txw _1bahh9n0 _1ul9zwfg _1d2y1ris _glte1ris _15ri1mjv _1gs5usvi _ndwch9n0",
18
19
  jiraProductLogoUpdate: "_15rip2n4",
19
- fullHeightSidebar: "_lcxv1wug"
20
+ fullHeightSidebar: "_lcxv1wug _y4tiutpp"
20
21
  };
21
22
  var listStyles = {
22
23
  root: "_zulp1b66 _4cvr1h6o _1e0c1txw",
@@ -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.
@@ -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)}}
@@ -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';
@@ -24,7 +25,7 @@ import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
24
25
  */
25
26
  var styles = {
26
27
  root: "_nd5l8cbt _zulpu2gc _18zrutpp _179ria51 _1e0c11p5 _yv0e1mfv _4cvr1h6o _bfhkvuon _vchhusvi _4t3i1dgc _152t1nws _kqsw1if8 _1pbyegat _d6vu1bgi _1j8b18ax",
27
- fullHeightSidebar: "_179rglyw _bozgze3t _y4tiutpp _bfhkglyw _lcxvglyw _pdlmutpp",
28
+ fullHeightSidebar: "_179rglyw _bozgze3t _y4tize3t _bfhkglyw _lcxvglyw _pdlmutpp",
28
29
  fullHeightSidebarExpanded: "_1rqt16a9 _jh1g18ax"
29
30
  };
30
31
 
@@ -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
  , {
@@ -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
  var styles = {
11
12
  root: "_2rko12b0 _1rjcze3t _18zr12x7 _yv0e1mfv _4cvr1h6o _bfhk1j9a _vchhusvi _80om1kdv _1e0cglyw _4t3izwfg _p12f1kvu _1bsb1osq _irr3l4ek _1di6r01l _114b11p5",
@@ -28,6 +29,9 @@ export var Search = function Search(_ref) {
28
29
  elemAfter = _ref.elemAfter,
29
30
  interactionName = _ref.interactionName,
30
31
  ariaHaspopup = _ref['aria-haspopup'];
32
+ var isFhsEnabled = fg('navx-2566-implement-fhs-rollout') ?
33
+ // eslint-disable-next-line react-hooks/rules-of-hooks
34
+ useIsFhsEnabled() : fg('navx-full-height-sidebar');
31
35
  return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Pressable, {
32
36
  style: {
33
37
  // To win the specificity war against Emotion we move this into inline styles
@@ -37,7 +41,7 @@ export var Search = function Search(_ref) {
37
41
  border: "var(--ds-border-width, 1px)".concat(" solid ", "var(--ds-border-input, #8C8F97)")
38
42
  },
39
43
  onClick: onClick,
40
- xcss: cx(styles.root, fg('navx-full-height-sidebar') && styles.fullHeightSidebar),
44
+ xcss: cx(styles.root, isFhsEnabled && styles.fullHeightSidebar),
41
45
  interactionName: interactionName,
42
46
  "aria-haspopup": ariaHaspopup
43
47
  }, /*#__PURE__*/React.createElement("span", {
@@ -0,0 +1,3 @@
1
+ export { IsFhsEnabledContext } from '../ui/fhs-rollout/is-fhs-enabled-context';
2
+ export { IsFhsEnabledProvider, type IsFhsEnabledProviderProps, } 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, type IsFhsEnabledProviderProps, } from './ui/fhs-rollout/is-fhs-enabled-provider';
3
+ export { useIsFhsEnabled } from './ui/fhs-rollout/use-is-fhs-enabled';
1
4
  export { ExpandableMenuItem, type ExpandableMenuItemProps, } from './ui/menu-item/expandable-menu-item/expandable-menu-item';
2
5
  export { ExpandableMenuItemTrigger, type ExpandableMenuItemTriggerProps, } from './ui/menu-item/expandable-menu-item/expandable-menu-item-trigger';
3
6
  export { ExpandableMenuItemContent, type ExpandableMenuItemContentProps, } from './ui/menu-item/expandable-menu-item/expandable-menu-item-content';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * __Is custom is fhs enabled context__
3
+ *
4
+ * Tracks if a custom value has been provided for `IsFhsEnabledContext`.
5
+ * Used to prevent nesting of the `IsFhsEnabledProvider`.
6
+ */
7
+ export declare const IsCustomIsFhsEnabledContext: import("react").Context<boolean>;
@@ -0,0 +1,8 @@
1
+ import type { Get } from './types';
2
+ /**
3
+ * __Is fhs enabled context__
4
+ *
5
+ * Tracks is FHS enabled.
6
+ * Defaults to feature gate 'navx-full-height-sidebar'.
7
+ */
8
+ export declare const IsFhsEnabledContext: import("react").Context<boolean | Get<boolean>>;
@@ -0,0 +1,10 @@
1
+ import React, { type PropsWithChildren } from 'react';
2
+ /**
3
+ * __Is fhs enabled provider__
4
+ *
5
+ * Used to provide a custom value for is FHS enabled.
6
+ */
7
+ export declare const IsFhsEnabledProvider: ({ children, value }: IsFhsEnabledProviderProps) => React.JSX.Element;
8
+ export type IsFhsEnabledProviderProps = PropsWithChildren<{
9
+ value: boolean;
10
+ }>;
@@ -0,0 +1 @@
1
+ export type Get<T> = () => T;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * __Use is fhs enabled__
3
+ *
4
+ * Retrieves is FHS enabled.
5
+ */
6
+ export declare const useIsFhsEnabled: () => boolean;
@@ -29,7 +29,7 @@ export type PanelSplitterProps = {
29
29
  * The `tooltipContent` will not be announced by screen readers because it pertains to the draggable element, which lacks keyboard functionality.
30
30
  * Use the `label` prop to provide accessible information about the panel splitter.
31
31
  *
32
- * Only used if the `navx-full-height-sidebar` feature flag is enabled.
32
+ * Only used if `useIsFhsEnabled` is true.
33
33
  */
34
34
  tooltipContent?: TooltipProps['content'];
35
35
  };
@@ -17,7 +17,7 @@ type SideNavPanelSplitterProps = Omit<PanelSplitterProps, 'onDoubleClick' | 'too
17
17
  *
18
18
  * If the `isSideNavShortcutEnabled` prop is enabled on `<Root />`, the built-in keyboard shortcut will be displayed with the tooltip.
19
19
  *
20
- * Only used if the `navx-full-height-sidebar` feature flag is enabled.
20
+ * Only used if `useIsFhsEnabled` is true.
21
21
  */
22
22
  tooltipContent?: PanelSplitterProps['tooltipContent'];
23
23
  };
@@ -61,7 +61,7 @@ export declare function Root({ children, xcss, UNSAFE_dangerouslyHoistSlotSizes,
61
61
  * is pressed, before the SideNav is toggled. You can use this to conditionally disable the shortcut based on your
62
62
  * your own custom checks, e.g. if there is a legacy dialog open.
63
63
  *
64
- * Note: The built-in keyboard shortcut is behind the `navx-full-height-sidebar` feature flag.
64
+ * Note: The built-in keyboard shortcut is behind `useIsFhsEnabled`.
65
65
  */
66
66
  isSideNavShortcutEnabled?: boolean;
67
67
  }): JSX.Element;