@atlaskit/navigation-system 11.2.2 → 11.3.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 (109) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/cjs/components/skip-links/skip-link.js +2 -2
  3. package/dist/cjs/components/skip-links/skip-links-container.js +2 -2
  4. package/dist/cjs/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +2 -2
  5. package/dist/cjs/ui/fhs-rollout/is-fhs-enabled-context.js +6 -6
  6. package/dist/cjs/ui/fhs-rollout/is-fhs-enabled-provider.js +14 -18
  7. package/dist/cjs/ui/fhs-rollout/use-is-fhs-enabled.js +5 -5
  8. package/dist/cjs/ui/page-layout/banner.compiled.css +0 -1
  9. package/dist/cjs/ui/page-layout/banner.js +2 -5
  10. package/dist/cjs/ui/page-layout/constants.js +1 -13
  11. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.compiled.css +0 -1
  12. package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.js +2 -5
  13. package/dist/cjs/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +0 -68
  14. package/dist/cjs/ui/page-layout/ribbon.js +0 -7
  15. package/dist/cjs/ui/page-layout/side-nav/side-nav-content.js +1 -9
  16. package/dist/cjs/ui/page-layout/side-nav/side-nav.compiled.css +3 -10
  17. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +21 -54
  18. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.compiled.css +0 -1
  19. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +4 -7
  20. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -12
  21. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +9 -250
  22. package/dist/cjs/ui/page-layout/top-nav/top-nav.compiled.css +1 -15
  23. package/dist/cjs/ui/page-layout/top-nav/top-nav.js +5 -16
  24. package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.compiled.css +0 -2
  25. package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.js +13 -16
  26. package/dist/cjs/ui/top-nav-items/nav-logo/custom-logo.compiled.css +0 -2
  27. package/dist/cjs/ui/top-nav-items/nav-logo/custom-logo.js +5 -8
  28. package/dist/cjs/ui/top-nav-items/search.compiled.css +3 -2
  29. package/dist/cjs/ui/top-nav-items/search.js +9 -11
  30. package/dist/cjs/ui/top-nav-items/themed/themed-anchor.js +2 -2
  31. package/dist/cjs/ui/top-nav-items/themed/themed-pressable.js +2 -2
  32. package/dist/es2019/components/skip-links/skip-link.js +1 -1
  33. package/dist/es2019/components/skip-links/skip-links-container.js +1 -1
  34. package/dist/es2019/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +2 -2
  35. package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-context.js +6 -4
  36. package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-provider.js +12 -17
  37. package/dist/es2019/ui/fhs-rollout/use-is-fhs-enabled.js +5 -8
  38. package/dist/es2019/ui/page-layout/banner.compiled.css +0 -1
  39. package/dist/es2019/ui/page-layout/banner.js +2 -5
  40. package/dist/es2019/ui/page-layout/chat-panel.js +1 -1
  41. package/dist/es2019/ui/page-layout/constants.js +0 -12
  42. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.compiled.css +0 -1
  43. package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +2 -5
  44. package/dist/es2019/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -61
  45. package/dist/es2019/ui/page-layout/ribbon.js +0 -7
  46. package/dist/es2019/ui/page-layout/side-nav/side-nav-content.js +2 -8
  47. package/dist/es2019/ui/page-layout/side-nav/side-nav.compiled.css +3 -10
  48. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +5 -44
  49. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.compiled.css +0 -1
  50. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +3 -6
  51. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -12
  52. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +6 -243
  53. package/dist/es2019/ui/page-layout/top-nav/top-nav.compiled.css +1 -15
  54. package/dist/es2019/ui/page-layout/top-nav/top-nav.js +5 -18
  55. package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.compiled.css +0 -2
  56. package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.js +9 -12
  57. package/dist/es2019/ui/top-nav-items/nav-logo/custom-logo.compiled.css +0 -2
  58. package/dist/es2019/ui/top-nav-items/nav-logo/custom-logo.js +4 -7
  59. package/dist/es2019/ui/top-nav-items/search.compiled.css +3 -2
  60. package/dist/es2019/ui/top-nav-items/search.js +6 -8
  61. package/dist/es2019/ui/top-nav-items/themed/themed-anchor.js +1 -1
  62. package/dist/es2019/ui/top-nav-items/themed/themed-pressable.js +1 -1
  63. package/dist/esm/components/skip-links/skip-link.js +1 -1
  64. package/dist/esm/components/skip-links/skip-links-container.js +1 -1
  65. package/dist/esm/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +2 -2
  66. package/dist/esm/ui/fhs-rollout/is-fhs-enabled-context.js +6 -6
  67. package/dist/esm/ui/fhs-rollout/is-fhs-enabled-provider.js +13 -16
  68. package/dist/esm/ui/fhs-rollout/use-is-fhs-enabled.js +5 -6
  69. package/dist/esm/ui/page-layout/banner.compiled.css +0 -1
  70. package/dist/esm/ui/page-layout/banner.js +2 -5
  71. package/dist/esm/ui/page-layout/chat-panel.js +1 -1
  72. package/dist/esm/ui/page-layout/constants.js +0 -12
  73. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.compiled.css +0 -1
  74. package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +2 -5
  75. package/dist/esm/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -71
  76. package/dist/esm/ui/page-layout/ribbon.js +0 -7
  77. package/dist/esm/ui/page-layout/side-nav/side-nav-content.js +2 -10
  78. package/dist/esm/ui/page-layout/side-nav/side-nav.compiled.css +3 -10
  79. package/dist/esm/ui/page-layout/side-nav/side-nav.js +22 -55
  80. package/dist/esm/ui/page-layout/top-nav/top-nav-end.compiled.css +0 -1
  81. package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +3 -6
  82. package/dist/esm/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -12
  83. package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +10 -250
  84. package/dist/esm/ui/page-layout/top-nav/top-nav.compiled.css +1 -15
  85. package/dist/esm/ui/page-layout/top-nav/top-nav.js +5 -16
  86. package/dist/esm/ui/top-nav-items/nav-logo/app-logo.compiled.css +0 -2
  87. package/dist/esm/ui/top-nav-items/nav-logo/app-logo.js +9 -12
  88. package/dist/esm/ui/top-nav-items/nav-logo/custom-logo.compiled.css +0 -2
  89. package/dist/esm/ui/top-nav-items/nav-logo/custom-logo.js +4 -7
  90. package/dist/esm/ui/top-nav-items/search.compiled.css +3 -2
  91. package/dist/esm/ui/top-nav-items/search.js +6 -8
  92. package/dist/esm/ui/top-nav-items/themed/themed-anchor.js +1 -1
  93. package/dist/esm/ui/top-nav-items/themed/themed-pressable.js +1 -1
  94. package/dist/types/ui/fhs-rollout/is-custom-is-fhs-enabled-context.d.ts +2 -2
  95. package/dist/types/ui/fhs-rollout/is-fhs-enabled-context.d.ts +5 -2
  96. package/dist/types/ui/fhs-rollout/is-fhs-enabled-provider.d.ts +9 -2
  97. package/dist/types/ui/fhs-rollout/use-is-fhs-enabled.d.ts +4 -1
  98. package/dist/types/ui/page-layout/constants.d.ts +0 -4
  99. package/dist/types/ui/page-layout/dangerously-hoist-css-var-to-document-root.d.ts +1 -1
  100. package/dist/types/ui/page-layout/panel-splitter/get-width-from-drag-location.d.ts +1 -1
  101. package/dist/types/ui/page-layout/panel-splitter/panel-splitter.d.ts +0 -2
  102. package/dist/types/ui/page-layout/side-nav/side-nav.d.ts +0 -1
  103. package/dist/types/ui/top-nav-items/themed/themed-anchor.d.ts +1 -1
  104. package/dist/types/ui/top-nav-items/themed/themed-button.d.ts +1 -1
  105. package/dist/types/ui/top-nav-items/themed/themed-icon-button.d.ts +1 -1
  106. package/dist/types/ui/top-nav-items/themed/themed-link-button.d.ts +1 -1
  107. package/dist/types/ui/top-nav-items/themed/themed-link-icon-button.d.ts +1 -1
  108. package/dist/types/ui/top-nav-items/themed/themed-pressable.d.ts +1 -1
  109. package/package.json +8 -10
@@ -25,7 +25,6 @@ var _fg = require("@atlaskit/platform-feature-flags/fg");
25
25
  var _elementAdapter = require("@atlaskit/pragmatic-drag-and-drop/adapter/element-adapter");
26
26
  var _useSkipLinkInternal = require("../../../context/skip-links/use-skip-link-internal");
27
27
  var _topNavStartElement = require("../../../context/top-nav-start/top-nav-start-element");
28
- var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
29
28
  var _constants = require("../constants");
30
29
  var _dangerouslyHoistCssVarToDocumentRoot = require("../dangerously-hoist-css-var-to-document-root");
31
30
  var _hoistSlotSizesContext = require("../hoist-slot-sizes-context");
@@ -52,9 +51,6 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
52
51
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
53
52
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- TODO: migrate to @atlaskit/primitives/compiled
54
53
  var panelSplitterResizingVar = '--n_snvRsz';
55
- // Used to share the side nav width with the panel splitter, which is rendered outside the side nav element
56
- // but positioned to stay at its right edge.
57
- var sideNavClampedWidthVar = '--n_snvW';
58
54
  var fallbackMinWidth = '240px';
59
55
  function getPixelCustomProperty(element, propertyName, fallback) {
60
56
  var raw = getComputedStyle(element).getPropertyValue(propertyName).trim();
@@ -68,28 +64,16 @@ function getPixelCustomProperty(element, propertyName, fallback) {
68
64
  * Avoiding nesting the `@supports` at-rule inside of `@media` means Compiled can remove duplicate styles from the generated CSS.
69
65
  */
70
66
  var isFirefox = typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
71
- var panelSplitterPortalTargetStyles = {
72
- root: "_kqsw1n9t _1pbyegat _u7coidpf _t9ectl5p _4t3ieqxy _165t56xv _p0az1elq"
73
- };
74
67
  var styles = {
75
68
  root: "_191wglyw _t51zglyw _bfhk1bhr _16qs130s _vchhusvi _4t3ieqxy _152timx3 _kqsw1if8 _1bsb1ego _1pbycs5v _14b5hc79 _qilnk0mc _p5clia51 _4ap3vuon _scbpglyw _89fi1b6c",
76
69
  chatPanelSizing: "_1bsbhc79",
77
70
  managedOverlay: "_cpcf1gzg _6kttglyw _w8v11bhr _1jug130s",
78
71
  flyoutOpen: "_qiln1gzg _p5clglyw _4ap31bhr _scbp130s _139f8iot _1tpvfnf5 _sylc1a5r _oyeijq3t",
79
72
  flyoutAnimateClosed: "_1e0cglyw _qiln1gzg _139f8iot _1tpvfnf5 _sylc1a5r _1uwsjq3t",
80
- animationRTLSupport: "_15yekb7n _65m41mrw",
81
- flyoutBaseStylesFullHeightSidebar: "_qiln1gzg _p5clglyw _4ap31bhr _scbp130s _17ly8iot _177m1a5r",
82
- flyoutOpenFullHeightSidebar: "_hjoifnf5 _vgub1ku9 _s2eg1p9u",
83
- flyoutAnimateClosedFullHeightSidebar: "_dm25glyw _hjoifnf5 _vgub1mm8 _hh1u1p9u",
84
73
  flexContainer: "_4t3i1osq _1e0c1txw _2lx21bp4 _1bah1yb4",
85
74
  hiddenMobileAndDesktop: "_1e0cglyw",
86
75
  hiddenMobileOnly: "_1e0cglyw _dm2518uv",
87
- hiddenDesktopOnly: "_dm25glyw",
88
- animationBaseStyles: "_10t88iot _1vrh1a5r _xrrpfnf5",
89
- expandAnimationMobile: "_1xq51ku9 _1nu51p9u",
90
- collapseAnimationMobile: "_1lh81gzg _1xq51mm8 _aadi1p9u",
91
- expandAnimationDesktop: "_1sg8k0mc _vgub1ku9 _s2eg1p9u",
92
- collapseAnimationDesktop: "_1sg81gzg _vgub1mm8 _hh1u1p9u"
76
+ hiddenDesktopOnly: "_dm25glyw"
93
77
  };
94
78
 
95
79
  /**
@@ -111,8 +95,6 @@ var motionUpliftStyles = {
111
95
  collapseAnimationMobile: "_1lh81gzg _k1affm5y",
112
96
  flyoutOpen: "_qiln1gzg _p5clglyw _4ap31bhr _scbp130s _4xci10ed _1tpv1mzy _sylc1a5r",
113
97
  flyoutAnimateClosed: "_1e0cglyw _qiln1gzg _4xcifm5y _1tpvi9qs _sylc1a5r",
114
- flyoutOpenFullHeightSidebar: "_n2in10ed _hjoi1mzy",
115
- flyoutAnimateClosedFullHeightSidebar: "_dm25glyw _n2infm5y _hjoii9qs",
116
98
  expandAnimationDesktop: "_1sg8k0mc _n2in10ed _1xpz1gzg _17ly1q8v _hjoi147i _1wxo4so3",
117
99
  collapseAnimationDesktop: "_1sg81gzg _n2infm5y _17ly1wzp _hjoi1wsm _1wxo1cio"
118
100
  };
@@ -144,7 +126,6 @@ function SideNavInternal(_ref) {
144
126
  providedId = _ref.id,
145
127
  canToggleWithShortcut = _ref.canToggleWithShortcut;
146
128
  var isChatPanelLayoutEnabled = (0, _fg.fg)('platform-dst-chat-panel-layout');
147
- var isFhsEnabled = (0, _useIsFhsEnabled.useIsFhsEnabled)();
148
129
  var id = (0, _useLayoutId.useLayoutId)({
149
130
  providedId: providedId
150
131
  });
@@ -285,7 +266,6 @@ function SideNavInternal(_ref) {
285
266
  var clampedWidth = !isChatPanelLayoutEnabled ? "clamp(240px, ".concat(inlineWidth, "px, 50vw)") : managedSizing ? "".concat(renderedWidth, "px") : "clamp(".concat(minWidth, ", ").concat(renderedWidth, "px, ").concat(configuredMaxWidth, ")");
286
267
  var dangerouslyHoistSlotSizes = (0, _react.useContext)(_hoistSlotSizesContext.DangerouslyHoistSlotSizes);
287
268
  var navRef = (0, _react.useRef)(null);
288
- var panelSplitterPortalTargetRef = (0, _react.useRef)(null);
289
269
  var getResizeBounds = (0, _react.useCallback)(function () {
290
270
  if (!isChatPanelLayoutEnabled) {
291
271
  return {
@@ -390,13 +370,6 @@ function SideNavInternal(_ref) {
390
370
  }
391
371
  }
392
372
  function open() {
393
- // Prevent the flyout from being opened if there are any open layers in the top nav start
394
- if (openLayerObserver && openLayerObserver.getCount({
395
- namespace: _constants.openLayerObserverTopNavStartNamespace,
396
- type: 'popup'
397
- }) > 0) {
398
- return;
399
- }
400
373
  var prevFlyoutState = flyoutStateRef.current;
401
374
  tryAbortPendingClose();
402
375
  flyoutStateRef.current = {
@@ -887,7 +860,7 @@ function SideNavInternal(_ref) {
887
860
  var isMotionUpliftEnabled = (0, _fg.fg)('platform-dst-motion-uplift-sidenav');
888
861
 
889
862
  // This is only used for the regular expand and collapse animations, not the flyout animations.
890
- var shouldShowSidebarToggleAnimation = (isMotionUpliftEnabled || isFhsEnabled) &&
863
+ var shouldShowSidebarToggleAnimation = isMotionUpliftEnabled &&
891
864
  // We do not apply the animation styles on the initial render, as the `@starting-style` rule will cause the sidebar to
892
865
  // slide in initially.
893
866
  hasExpandedStateChanged &&
@@ -918,7 +891,7 @@ function SideNavInternal(_ref) {
918
891
  style: (0, _defineProperty2.default)({}, _constants.sideNavVar, clampedWidth),
919
892
  ref: mergedRef,
920
893
  "data-testid": testId,
921
- className: (0, _runtime.ax)([styles.root, isChatPanelLayoutEnabled && styles.chatPanelSizing, isChatPanelLayoutEnabled && (managedSizing === null || managedSizing === void 0 ? void 0 : managedSizing.mode) === 'overlay' && styles.managedOverlay, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isMotionUpliftEnabled && motionUpliftStyles.animationRTLSupport, !isMotionUpliftEnabled && isFhsEnabled && styles.animationRTLSupport, shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.animationBaseStyles, shouldShowSidebarToggleAnimation && !isMotionUpliftEnabled && styles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.expandAnimationMobile, isExpandedOnMobile && shouldShowSidebarToggleAnimation && !isMotionUpliftEnabled && styles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.collapseAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && !isMotionUpliftEnabled && styles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.expandAnimationDesktop, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && !isMotionUpliftEnabled && styles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.collapseAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && !isMotionUpliftEnabled && styles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFhsEnabled && isMotionUpliftEnabled && motionUpliftStyles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFhsEnabled && !isMotionUpliftEnabled && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFhsEnabled && isMotionUpliftEnabled && motionUpliftStyles.flyoutAnimateClosed, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFhsEnabled && !isMotionUpliftEnabled && 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) === 'open' && !isFirefox && isFhsEnabled && isMotionUpliftEnabled && motionUpliftStyles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isFirefox && isFhsEnabled && !isMotionUpliftEnabled && styles.flyoutOpenFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && isMotionUpliftEnabled && motionUpliftStyles.flyoutAnimateClosedFullHeightSidebar, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isFirefox && isFhsEnabled && !isMotionUpliftEnabled && styles.flyoutAnimateClosedFullHeightSidebar])
894
+ className: (0, _runtime.ax)([styles.root, isChatPanelLayoutEnabled && styles.chatPanelSizing, isChatPanelLayoutEnabled && (managedSizing === null || managedSizing === void 0 ? void 0 : managedSizing.mode) === 'overlay' && styles.managedOverlay, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop, isMotionUpliftEnabled && motionUpliftStyles.animationRTLSupport, shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.animationBaseStyles, isExpandedOnMobile && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.expandAnimationMobile, !isExpandedOnMobile && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.collapseAnimationMobile, isExpandedOnDesktop && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.expandAnimationDesktop, !isExpandedOnDesktop && shouldShowSidebarToggleAnimation && isMotionUpliftEnabled && motionUpliftStyles.collapseAnimationDesktop, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && isMotionUpliftEnabled && motionUpliftStyles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'open' && !isMotionUpliftEnabled && styles.flyoutOpen, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && isMotionUpliftEnabled && motionUpliftStyles.flyoutAnimateClosed, (sideNavState === null || sideNavState === void 0 ? void 0 : sideNavState.flyout) === 'triggered-animate-close' && !isMotionUpliftEnabled && styles.flyoutAnimateClosed])
922
895
  }), /*#__PURE__*/_react.default.createElement(_dangerouslyHoistCssVarToDocumentRoot.DangerouslyHoistCssVarToDocumentRoot, {
923
896
  variableName: _constants.sideNavLiveWidthVar,
924
897
  value: "0px",
@@ -937,7 +910,6 @@ function SideNavInternal(_ref) {
937
910
  , /*#__PURE__*/_react.default.createElement(_provider.PanelSplitterProvider, {
938
911
  panelId: _constants.sideNavPanelSplitterId,
939
912
  panelRef: navRef,
940
- portalRef: isFhsEnabled ? panelSplitterPortalTargetRef : undefined,
941
913
  panelWidth: renderedWidth,
942
914
  onCompleteResize: onCompleteResize,
943
915
  onResizeStartInternal: isChatPanelLayoutEnabled && managedSizing ? onResizeStartInternal : undefined,
@@ -950,12 +922,7 @@ function SideNavInternal(_ref) {
950
922
  shortcut: isShortcutEnabled ? _sideNavToggleTooltipKeyboardShortcut.sideNavToggleTooltipKeyboardShortcut : undefined
951
923
  }, /*#__PURE__*/_react.default.createElement("div", {
952
924
  className: (0, _runtime.ax)([styles.flexContainer])
953
- }, children))), isFhsEnabled && /*#__PURE__*/_react.default.createElement("div", {
954
- ref: panelSplitterPortalTargetRef,
955
- "data-layout-slot": true,
956
- style: (0, _defineProperty2.default)({}, sideNavClampedWidthVar, clampedWidth),
957
- className: (0, _runtime.ax)([panelSplitterPortalTargetStyles.root, isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileOnly, !isExpandedOnDesktop && isExpandedOnMobile && !isFlyoutVisible && styles.hiddenDesktopOnly, !isExpandedOnDesktop && !isExpandedOnMobile && !isFlyoutVisible && styles.hiddenMobileAndDesktop])
958
- }));
925
+ }, children))));
959
926
  }
960
927
 
961
928
  /**
@@ -966,23 +933,23 @@ function SideNavInternal(_ref) {
966
933
  *
967
934
  * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
968
935
  */
969
- function SideNav(_ref9) {
970
- var children = _ref9.children,
971
- defaultCollapsed = _ref9.defaultCollapsed,
972
- _ref9$defaultWidth = _ref9.defaultWidth,
973
- defaultWidth = _ref9$defaultWidth === void 0 ? 320 : _ref9$defaultWidth,
974
- minWidth = _ref9.minWidth,
975
- maxWidth = _ref9.maxWidth,
976
- testId = _ref9.testId,
977
- label = _ref9.label,
978
- _ref9$skipLinkLabel = _ref9.skipLinkLabel,
979
- skipLinkLabel = _ref9$skipLinkLabel === void 0 ? label : _ref9$skipLinkLabel,
980
- onExpand = _ref9.onExpand,
981
- onCollapse = _ref9.onCollapse,
982
- onPeekStart = _ref9.onPeekStart,
983
- onPeekEnd = _ref9.onPeekEnd,
984
- canToggleWithShortcut = _ref9.canToggleWithShortcut,
985
- id = _ref9.id;
936
+ function SideNav(_ref8) {
937
+ var children = _ref8.children,
938
+ defaultCollapsed = _ref8.defaultCollapsed,
939
+ _ref8$defaultWidth = _ref8.defaultWidth,
940
+ defaultWidth = _ref8$defaultWidth === void 0 ? 320 : _ref8$defaultWidth,
941
+ minWidth = _ref8.minWidth,
942
+ maxWidth = _ref8.maxWidth,
943
+ testId = _ref8.testId,
944
+ label = _ref8.label,
945
+ _ref8$skipLinkLabel = _ref8.skipLinkLabel,
946
+ skipLinkLabel = _ref8$skipLinkLabel === void 0 ? label : _ref8$skipLinkLabel,
947
+ onExpand = _ref8.onExpand,
948
+ onCollapse = _ref8.onCollapse,
949
+ onPeekStart = _ref8.onPeekStart,
950
+ onPeekEnd = _ref8.onPeekEnd,
951
+ canToggleWithShortcut = _ref8.canToggleWithShortcut,
952
+ id = _ref8.id;
986
953
  return /*#__PURE__*/_react.default.createElement(_openLayerObserverNamespaceProvider.OpenLayerObserverNamespaceProvider, {
987
954
  namespace: _constants.openLayerObserverSideNavNamespace
988
955
  }, /*#__PURE__*/_react.default.createElement(SideNavInternal, {
@@ -5,6 +5,5 @@
5
5
  ._1e0cglyw{display:none}
6
6
  ._1ul9zwfg{min-width:2pc}
7
7
  ._4cvr1h6o{align-items:center}
8
- ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
9
8
  @media (min-width:48rem){._181n1txw{display:flex}._1d2y1ris{min-width:max-content}}
10
9
  @media (min-width:64rem){._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._ndwch9n0{justify-self:end}}
@@ -18,17 +18,15 @@ var _showMoreHorizontal = _interopRequireDefault(require("@atlaskit/icon/core/sh
18
18
  var _openLayerObserverNamespaceProvider = require("@atlaskit/layering/open-layer-observer-namespace-provider");
19
19
  var _fg = require("@atlaskit/platform-feature-flags/fg");
20
20
  var _popup = require("@atlaskit/popup/popup");
21
- var _index = require("@atlaskit/primitives/compiled/responsive/index");
21
+ var _useMediaQuery = require("@atlaskit/primitives/compiled/use-media-query");
22
22
  var _list = require("../../../components/list");
23
- var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
24
23
  var _hasCustomThemeContext = require("../../top-nav-items/themed/has-custom-theme-context");
25
24
  var _iconButton = require("../../top-nav-items/themed/icon-button");
26
25
  var _constants = require("../constants");
27
26
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
28
27
  var containerStyles = {
29
28
  root: "_yyhy11wp _1e0c1txw _1bahh9n0 _1ul9zwfg _1d2y1ris _glte1ris _15rip2n4 _1gs5usvi _ndwch9n0",
30
- withPersistentItems: "_zulp1b66 _4cvr1h6o",
31
- fullHeightSidebar: "_y4tiutpp"
29
+ withPersistentItems: "_zulp1b66 _4cvr1h6o"
32
30
  };
33
31
  var listStyles = {
34
32
  root: "_zulp1b66 _4cvr1h6o _1e0c1txw",
@@ -52,7 +50,6 @@ function TopNavEnd(_ref) {
52
50
  _ref$showMoreButtonLa = _ref.showMoreButtonLabel,
53
51
  showMoreButtonLabel = _ref$showMoreButtonLa === void 0 ? 'Show more' : _ref$showMoreButtonLa;
54
52
  var hasPersistentItems = (0, _fg.fg)('platform-dst-chat-panel-layout') && persistentItems != null;
55
- var isFhsEnabled = (0, _useIsFhsEnabled.useIsFhsEnabled)();
56
53
  var _useState = (0, _react.useState)(false),
57
54
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
58
55
  isOpen = _useState2[0],
@@ -63,7 +60,7 @@ function TopNavEnd(_ref) {
63
60
  isMobile = _useState4[0],
64
61
  setIsMobile = _useState4[1];
65
62
  // Note: `query` is a stable value between renders
66
- var query = (0, _index.UNSAFE_useMediaQuery)('below.sm', function onChange(event) {
63
+ var query = (0, _useMediaQuery.UNSAFE_useMediaQuery)('below.sm', function onChange(event) {
67
64
  setIsMobile(event.matches);
68
65
  // Any time we shift between mobile and desktop
69
66
  // We always close the popup
@@ -83,7 +80,7 @@ function TopNavEnd(_ref) {
83
80
  }, children);
84
81
  var content = /*#__PURE__*/_react.default.createElement("nav", {
85
82
  "aria-label": label,
86
- className: (0, _runtime.ax)([containerStyles.root, hasPersistentItems && containerStyles.withPersistentItems, isFhsEnabled && containerStyles.fullHeightSidebar])
83
+ className: (0, _runtime.ax)([containerStyles.root, hasPersistentItems && containerStyles.withPersistentItems])
87
84
  }, isMobile ? /*#__PURE__*/_react.default.createElement(_popup.Popup, {
88
85
  isOpen: isOpen,
89
86
  onClose: function onClose() {
@@ -1,15 +1,5 @@
1
1
  ._zulp1b66{gap:var(--ds-space-050,4px)}
2
- ._zulp1kw7{gap:inherit}
3
- ._yyhykb7n{grid-column:1}._15yekb7n{--animation-direction:1}
4
- ._1e0c1kw7{display:inherit}
5
- ._1e0c1txw{display:flex}
6
- ._1ul9idpf{min-width:0}
2
+ ._yyhykb7n{grid-column:1}._1e0c1txw{display:flex}
7
3
  ._4cvr1h6o{align-items:center}
8
4
  ._4t3i1osq{height:100%}
9
- ._ahbq1wug{margin-inline-start:auto}
10
- ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
11
- ._vchhusvi{box-sizing:border-box}
12
- [dir=rtl] ._65m41mrw{--animation-direction:-1}
13
- @media (prefers-reduced-motion:no-preference){._10t81e03{transition-property:transform}._10t81rjc{transition-property:transform,opacity}._1xq51ytf{transition-timing-function:ease-in-out}._1xq55ucs{transition-timing-function:ease}._mjvc1efy{transform:translateX(calc(100%*var(--animation-direction)))}._bgpzidpf{opacity:0}._mjvc1p9u{transform:translateX(calc(-100%*var(--animation-direction)))}._mjvco0k7{transform:translateX(calc((-2rem + var(--ds-space-050, 4px)*-1)*var(--animation-direction)))}._mjvcyrjp{transform:translateX(calc((2rem + var(--ds-space-050, 4px))*var(--animation-direction)))}._mjvcz12g{transform:translateX(0)}._xrrpfnf5{transition-duration:.2s}._bgpzkb7n{opacity:1}}
14
- @media (min-width:64rem){._13wnh2mm{position:relative}._1l3vb3bt:after{content:""}._juxdstnw:after{position:absolute}._1vinidpf:after{inset-block-start:0}._1719idpf:after{inset-block-end:0}._e6znidpf:after{inset-inline-end:0}._1kyhe4h9:after{border-inline-end-width:var(--ds-border-width,1px)}._4cwynqa1:after{border-inline-end-style:solid}._435s1l7x:after{border-inline-end-color:var(--ds-border,#0b120e24)}._m7c3idpf:after{opacity:0}._15rin7od{min-width:unset}._glte1osq{width:100%}._4ap319ly{background-color:revert}._1m5lglyw:after{display:none}._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}._glte93mn{width:var(--n_sNvlw,100%)}._exxmutpp{padding-inline-end:var(--ds-space-150,9pt)}._4ap3vuon{background-color:var(--ds-surface,#fff)}._m7c3kb7n:after{opacity:1}}
15
- @media (prefers-reduced-motion:no-preference) and (min-width:64rem){._n8qabrmi:after{transition-property:opacity}._wc72fnf5:after{transition-duration:.2s}._j3mr1v42:after{transition-timing-function:ease-in}}
5
+ @media (min-width:64rem){._glte1ris{width:max-content}._15rip2n4{min-width:330px}._1gs5usvi{box-sizing:border-box}}
@@ -1,7 +1,6 @@
1
1
  /* top-nav-start.tsx generated by @compiled/babel-plugin v3.0.2 */
2
2
  "use strict";
3
3
 
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
5
  Object.defineProperty(exports, "__esModule", {
7
6
  value: true
@@ -9,157 +8,24 @@ Object.defineProperty(exports, "__esModule", {
9
8
  exports.TopNavStart = TopNavStart;
10
9
  require("./top-nav-start.compiled.css");
11
10
  var _runtime = require("@compiled/react/runtime");
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
11
  var _react = _interopRequireWildcard(require("react"));
14
- var _useStableRef = _interopRequireDefault(require("@atlaskit/ds-lib/use-stable-ref"));
15
- var _openLayerObserverNamespaceProvider = require("@atlaskit/layering/open-layer-observer-namespace-provider");
16
- var _fg = require("@atlaskit/platform-feature-flags/fg");
17
- var _compiled = require("@atlaskit/primitives/compiled");
18
12
  var _topNavStartAttachRef = require("../../../context/top-nav-start/top-nav-start-attach-ref");
19
- var _useIsFhsEnabled = require("../../fhs-rollout/use-is-fhs-enabled");
20
- var _hasCustomThemeContext = require("../../top-nav-items/themed/has-custom-theme-context");
21
- var _hasDefaultBackgroundColorContext = require("../../top-nav-items/themed/has-default-background-color-context");
22
- var _constants = require("../constants");
23
- var _sideNavVisibilityState = require("../side-nav/side-nav-visibility-state");
24
- var _useSideNavVisibility3 = require("../side-nav/use-side-nav-visibility");
25
13
  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); }
26
- /**
27
- * Firefox does support these reorder animations, but only partially enabling layout animations would look odd.
28
- *
29
- * We are using JS to detect Firefox and disable animations, instead of using CSS, as Compiled currently does not merge duplicate
30
- * CSS at-rules when at-rules are nested: https://github.com/atlassian-labs/compiled/blob/e04a325915e1d13010205089e4915de0e53bc2d4/packages/css/src/plugins/merge-duplicate-at-rules.ts#L5
31
- * Avoiding nesting the `@supports` at-rule inside of `@media` means Compiled can remove duplicate styles from the generated CSS.
32
- */
33
- var isFirefox = typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
34
-
35
- // Placed in a variable, as the value is used in the translateX value for the children wrapper animation.
36
- var flexGap = "var(--ds-space-050, 4px)";
37
-
38
14
  /**
39
15
  * Styles for the TopNavStart element.
40
- *
41
- * When `useIsFhsEnabled` is true this is the styling for the inner element,
42
- * which re-enables pointer events.
43
16
  */
44
17
  var innerStyles = {
45
- root: "_zulp1b66 _yyhykb7n _4t3i1osq _4cvr1h6o _1e0c1txw _glte1ris _15rip2n4 _1gs5usvi",
46
- fullHeightSidebarExpanded: "_15rin7od _glte1osq"
18
+ root: "_zulp1b66 _yyhykb7n _4t3i1osq _4cvr1h6o _1e0c1txw _glte1ris _15rip2n4 _1gs5usvi"
47
19
  };
48
-
49
- /**
50
- * Styles for the outer element, that does not have re-enabled pointer events and spans the entire
51
- * width of the TopNavStart area.
52
- *
53
- * This wrapper element is only rendered when `useIsFhsEnabled` is true.
54
- */
55
- var wrapperStyles = {
56
- root: "_vchhusvi _bozgutpp _4t3i1osq _13wnh2mm _1l3vb3bt _juxdstnw _1vinidpf _1719idpf _e6znidpf _1kyhe4h9 _4cwynqa1 _435s1l7x _m7c3idpf",
57
- fullHeightSidebarExpanded: "_glte93mn _exxmutpp _4ap3vuon _m7c3kb7n",
58
- fullHeightSidebarBorderTransition: "_n8qabrmi _wc72fnf5 _j3mr1v42",
59
- fullHeightSidebarCustomTheming: "_4ap319ly _1m5lglyw"
60
- };
61
-
62
- /**
63
- * We use a fixed translateX offset for the slide animation (used when the TopNavStart children elements are reordered).
64
- * This fixed offset makes the elements appear to animate smoothly from the old to the new position.
65
- * This offset is calculated based on:
66
- * - 32px (2rem) width of the side nav toggle button (IconButton)
67
- * - 4px gap ('space.050' token) of the flex container
68
- *
69
- * The benefit of hardcoding this offset is that we don't need to calculate it using JS each time the sidebar is toggled.
70
- * However, it could become out of sync if the width of IconButton changes.
71
- *
72
- * The alternative is using JS to store the previous position of the children wrapper element, and calculate the offset based on
73
- * the new position, and then transforming using that offset. This would prevent the animation from going out of sync.
74
- */
75
- var childrenWrapperAnimationOffset = "calc(2rem + ".concat(flexGap, ")");
76
- var childrenWrapperStyles = {
77
- root: "_zulp1kw7 _1e0c1kw7 _4cvr1h6o _1ul9idpf _15yekb7n _65m41mrw",
78
- animationBaseStyles: "_10t81e03",
79
- finalPosition: "_mjvcz12g _xrrpfnf5",
80
- expandAnimationStartPosition: "_mjvcyrjp",
81
- collapseAnimationStartPosition: "_mjvco0k7"
82
- };
83
-
84
- /**
85
- * We use a fixed translateX offset for the toggle button slide animation (used when the TopNavStart children elements are reordered).
86
- * The specific value doesn't matter too much for the toggle button animation, so we are using `100%`, which will match the toggle button width.
87
- *
88
- * By combining the `translateX` animation with an `opacity` fade, the feel and experience is actually quite similar to animating the
89
- * element from the exact old position (offset), and it avoids the additional complexity of needing to track and calculate the exact offset.
90
- */
91
- var toggleButtonWrapperStyles = {
92
- root: "_15yekb7n _65m41mrw _10t81rjc",
93
- finalPosition: "_mjvcz12g _xrrpfnf5 _bgpzkb7n",
94
- expandAnimationStartPosition: "_mjvc1p9u _bgpzidpf",
95
- collapseAnimationStartPosition: "_mjvc1efy _bgpzidpf",
96
- expandAnimationTimingFunction: "_1xq51ytf",
97
- collapseAnimationTimingFunction: "_1xq55ucs",
98
- alignEnd: "_ahbq1wug"
99
- };
100
-
101
- /**
102
- * The consistent key used for the side nav toggle button to ensure it does not get remounted
103
- * when it is reordered.
104
- *
105
- * This ensures we get focus restoration for free.
106
- */
107
- var sideNavToggleButtonKey = 'side-nav-toggle-button';
108
- var TopNavStartInnerOld = /*#__PURE__*/(0, _react.forwardRef)(function TopNavStartInner(_ref, ref) {
109
- var children = _ref.children,
110
- testId = _ref.testId;
111
- return /*#__PURE__*/_react.default.createElement("div", {
112
- ref: ref,
113
- "data-testid": testId,
114
- className: (0, _runtime.ax)([innerStyles.root])
115
- }, children);
116
- });
117
- var TopNavStartInnerFHS = /*#__PURE__*/(0, _react.forwardRef)(function TopNavStartInnerFHS(_ref2, ref) {
118
- var children = _ref2.children,
119
- testId = _ref2.testId;
120
- // This needs the real `defaultCollapsed` state or will not SSR properly
121
- // TODO: lift `defaultCollapsed` state to `Root` (DSP-23683)
122
- // then context value will be correct in SSR / from initial render
123
- var _useSideNavVisibility = (0, _useSideNavVisibility3.useSideNavVisibility)({
124
- defaultCollapsed: true
125
- }),
126
- isExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop;
127
- var sideNavState = (0, _react.useContext)(_sideNavVisibilityState.SideNavVisibilityState);
128
- var isFirstRenderRef = (0, _react.useRef)(true);
129
- (0, _react.useEffect)(function () {
130
- // Ignore renders until the side nav state is initialized
131
- // So that apps using the legacy API for setting side nav default state do not see
132
- // animations when they shouldn't
133
- if (sideNavState === null) {
134
- return;
135
- }
136
- if (isFirstRenderRef.current) {
137
- isFirstRenderRef.current = false;
138
- }
139
- }, [sideNavState]);
140
- var hasCustomTheme = (0, _hasCustomThemeContext.useHasCustomTheme)();
141
- var hasDefaultBackgroundColor = (0, _react.useContext)(_hasDefaultBackgroundColorContext.HasDefaultBackgroundColorContext);
142
- return /*#__PURE__*/_react.default.createElement("div", {
143
- className: (0, _runtime.ax)([wrapperStyles.root, isExpandedOnDesktop && wrapperStyles.fullHeightSidebarExpanded, !isFirstRenderRef.current && isExpandedOnDesktop && wrapperStyles.fullHeightSidebarBorderTransition, hasCustomTheme && !hasDefaultBackgroundColor && (0, _fg.fg)('platform_dst_nav4_custom_theming_fhs_1') && wrapperStyles.fullHeightSidebarCustomTheming])
144
- }, /*#__PURE__*/_react.default.createElement("div", {
145
- ref: ref,
146
- "data-testid": testId,
147
- className: (0, _runtime.ax)([innerStyles.root, isExpandedOnDesktop && innerStyles.fullHeightSidebarExpanded])
148
- }, /*#__PURE__*/_react.default.createElement(_openLayerObserverNamespaceProvider.OpenLayerObserverNamespaceProvider, {
149
- namespace: _constants.openLayerObserverTopNavStartNamespace
150
- }, children)));
151
- });
152
-
153
20
  /**
154
21
  * __TopNavStart__
155
22
  *
156
23
  * Wrapper for the top navigation actions on the inline-start (left) side of the top navigation.
157
24
  */
158
- function TopNavStart(_ref3) {
159
- var children = _ref3.children,
160
- testId = _ref3.testId,
161
- sideNavToggleButton = _ref3.sideNavToggleButton;
162
- var isFhsEnabled = (0, _useIsFhsEnabled.useIsFhsEnabled)();
25
+ function TopNavStart(_ref) {
26
+ var children = _ref.children,
27
+ testId = _ref.testId,
28
+ sideNavToggleButton = _ref.sideNavToggleButton;
163
29
  var ref = (0, _react.useContext)(_topNavStartAttachRef.TopNavStartAttachRef);
164
30
  var elementRef = (0, _react.useRef)(null);
165
31
 
@@ -168,116 +34,9 @@ function TopNavStart(_ref3) {
168
34
  (0, _react.useEffect)(function () {
169
35
  ref(elementRef.current);
170
36
  }, [elementRef, ref]);
171
-
172
- // This needs the real `defaultCollapsed` state or will not SSR properly
173
- // TODO: lift `defaultCollapsed` state to `Root` (DSP-23683)
174
- // then context value will be correct in SSR / from initial render
175
- var _useSideNavVisibility2 = (0, _useSideNavVisibility3.useSideNavVisibility)({
176
- defaultCollapsed: true
177
- }),
178
- isExpandedOnDesktop = _useSideNavVisibility2.isExpandedOnDesktop;
179
-
180
- // For SSR assume desktop
181
- var _useState = (0, _react.useState)(true),
182
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
183
- isDesktop = _useState2[0],
184
- setIsDesktop = _useState2[1];
185
- // Set state to real value on client
186
- // This could result in some visible shift on mobile when hydrating SSR
187
- // TODO: review and improve SSR behavior as necessary (DSP-23817)
188
- (0, _react.useLayoutEffect)(function () {
189
- // Checking this to avoid breaking tests when `matchMedia` is not mocked
190
- // Ideally we wouldn't cater to test environments, but this avoids introducing unnecessary friction
191
- if (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {
192
- setIsDesktop(window.matchMedia('(min-width: 64rem)').matches);
193
- }
194
- }, []);
195
- (0, _compiled.UNSAFE_useMediaQuery)('above.md', function (event) {
196
- setIsDesktop(event.matches);
197
- });
198
- var _useState3 = (0, _react.useState)({
199
- type: 'idle'
200
- }),
201
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
202
- animationState = _useState4[0],
203
- setAnimationState = _useState4[1];
204
-
205
- // Used to prevent the reorder animations from running on the initial render.
206
- var isFirstRenderRef = (0, _react.useRef)(true);
207
- var sideNavState = (0, _react.useContext)(_sideNavVisibilityState.SideNavVisibilityState);
208
- (0, _react.useEffect)(function () {
209
- if (!isFhsEnabled) {
210
- return;
211
- }
212
-
213
- // Ignore renders until the side nav state is initialized
214
- // So that apps using the legacy API for setting side nav default state do not see
215
- // animations when they shouldn't
216
- if (sideNavState === null) {
217
- return;
218
- }
219
- if (isFirstRenderRef.current) {
220
- isFirstRenderRef.current = false;
221
- }
222
- }, [isFhsEnabled, sideNavState]);
223
-
224
- // Using a stable ref to avoid re-running the animation layout effect when the toggle button prop value changes, which
225
- // can happen a lot (e.g. if the parent re-renders)
226
- var sideNavToggleButtonStableRef = (0, _useStableRef.default)(sideNavToggleButton);
227
- (0, _react.useLayoutEffect)(function () {
228
- if (!isFhsEnabled) {
229
- return;
230
- }
231
-
232
- /**
233
- * This layout effect is used to animate the TopNavStart children elements to their new position after being reordered.
234
- * It is called when the sidebar's desktop expansion state changes.
235
- *
236
- * It works by first setting a translateX offset on the elements, used as the start position of the slide animation.
237
- * - For the toggle button, it's a fixed offset. It's combined with an opacity, so the exact offset doesn't matter too much.
238
- * - For the children wrapper (wrapping everything except the toggle button), an offset was chosen to make the animation
239
- * start position the exact same as the element's old position. See comments for `childrenWrapperStyles` for more details.
240
- *
241
- * On the next frame, the translateX offset is cleared, triggering the animation to the new position.
242
- */
243
-
244
- if (isFirstRenderRef.current) {
245
- // No animations on initial render.
246
- return;
247
- }
248
- if (!sideNavToggleButtonStableRef.current) {
249
- // If there is no toggle button, there should be no re-order animations.
250
- return;
251
- }
252
-
253
- // Set the translateX offsets so elements are ready to animate to their actual new position after being reordered
254
- setAnimationState({
255
- type: isExpandedOnDesktop ? 'expand' : 'collapse'
256
- });
257
- requestAnimationFrame(function () {
258
- // Clear translateX offsets on next frame to trigger animation to new position in a re-render
259
- setAnimationState({
260
- type: 'idle'
261
- });
262
- });
263
-
264
- // This layout effect is called when the sidebar's desktop expansion state changes.
265
- }, [isExpandedOnDesktop, isFhsEnabled, sideNavToggleButtonStableRef]);
266
- var TopNavStartInner = isFhsEnabled ? TopNavStartInnerFHS : TopNavStartInnerOld;
267
- return /*#__PURE__*/_react.default.createElement(TopNavStartInner, {
37
+ return /*#__PURE__*/_react.default.createElement("div", {
268
38
  ref: elementRef,
269
- testId: testId
270
- }, !isFhsEnabled && sideNavToggleButton, sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && isFhsEnabled && /*#__PURE__*/_react.default.createElement("div", {
271
- key: sideNavToggleButtonKey,
272
- className: (0, _runtime.ax)([!isFirefox && toggleButtonWrapperStyles.root, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
273
- // Timing function is applied when the browser animates to the idle position.
274
- animationState.type === 'idle' && toggleButtonWrapperStyles.collapseAnimationTimingFunction, !isFirefox && animationState.type === 'collapse' && toggleButtonWrapperStyles.collapseAnimationStartPosition])
275
- }, sideNavToggleButton), isFhsEnabled ? /*#__PURE__*/_react.default.createElement("div", {
276
- className: (0, _runtime.ax)([childrenWrapperStyles.root, !isFirefox && childrenWrapperStyles.animationBaseStyles, !isFirefox && animationState.type === 'idle' && childrenWrapperStyles.finalPosition, !isFirefox && animationState.type === 'expand' && childrenWrapperStyles.expandAnimationStartPosition, !isFirefox && animationState.type === 'collapse' && childrenWrapperStyles.collapseAnimationStartPosition])
277
- }, children) : children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && isFhsEnabled && /*#__PURE__*/_react.default.createElement("div", {
278
- key: sideNavToggleButtonKey,
279
- className: (0, _runtime.ax)([!isFirefox && toggleButtonWrapperStyles.root, toggleButtonWrapperStyles.alignEnd, !isFirefox && animationState.type === 'idle' && toggleButtonWrapperStyles.finalPosition, !isFirefox &&
280
- // Timing function is applied when the browser animates to the idle position.
281
- animationState.type === 'idle' && toggleButtonWrapperStyles.expandAnimationTimingFunction, !isFirefox && animationState.type === 'expand' && toggleButtonWrapperStyles.expandAnimationStartPosition])
282
- }, sideNavToggleButton));
39
+ "data-testid": testId,
40
+ className: (0, _runtime.ax)([innerStyles.root])
41
+ }, sideNavToggleButton, children);
283
42
  }
@@ -1,28 +1,14 @@
1
1
  ._nd5l8cbt{grid-area:top-bar}
2
2
  ._zulpu2gc{gap:var(--ds-space-100,8px)}
3
3
  ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
4
- ._18zrze3t{padding-inline:var(--ds-space-0,0)}
5
- ._179rglyw{border-block-end:none}
6
4
  ._179ria51{border-block-end:var(--ds-border-width,1px) solid var(--ds-border,#0b120e24)}._152t1nws{inset-block-start:var(--n_bnrM,0)}
7
- ._18postnw:after{position:absolute}
8
- ._1beue4h9:after{border-block-end-width:var(--ds-border-width,1px)}
9
- ._1cte1l7x:after{border-block-end-color:var(--ds-border,#0b120e24)}
10
- ._1czdidpf:after{inset-inline-end:0}
11
5
  ._1e0c11p5{display:grid}
12
- ._1gufidpf:after{inset-block-end:0}
13
- ._1pby11wp{z-index:3}
14
6
  ._1pbyegat{z-index:4}
15
7
  ._4cvr1h6o{align-items:center}
16
8
  ._4t3i1dgc{height:var(--n_tNvM)}
17
- ._aetrb3bt:after{content:""}
18
9
  ._bfhkvuon{background-color:var(--ds-surface,#fff)}
19
10
  ._d6vu1bgi >span[data-ep-placeholder-id=top_navigation_skeleton]{display:contents}
20
- ._g0nf3tht:after{inset-inline-start:var(--n_sNvlw,0)}
21
11
  ._kqsw1if8{position:sticky}
22
- ._lcxv1wug{pointer-events:auto}
23
- ._uaeunqa1:after{border-block-end-style:solid}
24
12
  ._vchhusvi{box-sizing:border-box}
25
13
  ._yv0e1mfv{grid-template-columns:auto 1fr auto}
26
- @media (min-width:48rem){._1j8b18ax{grid-template-columns:1fr minmax(min-content,max-content) 1fr}}
27
- @media (min-width:64rem){._1m5lglyw:after{display:none}._1rqt16a9{grid-template-columns:0fr minmax(min-content,max-content) 1fr}._pdlmutpp{gap:var(--ds-space-150,9pt)}}
28
- @media (min-width:110.5rem){._jh1g18ax{grid-template-columns:1fr minmax(min-content,max-content) 1fr}}
14
+ @media (min-width:48rem){._1j8b18ax{grid-template-columns:1fr minmax(min-content,max-content) 1fr}}