@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.
- package/CHANGELOG.md +36 -0
- package/dist/cjs/components/skip-links/skip-link.js +2 -2
- package/dist/cjs/components/skip-links/skip-links-container.js +2 -2
- package/dist/cjs/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +2 -2
- package/dist/cjs/ui/fhs-rollout/is-fhs-enabled-context.js +6 -6
- package/dist/cjs/ui/fhs-rollout/is-fhs-enabled-provider.js +14 -18
- package/dist/cjs/ui/fhs-rollout/use-is-fhs-enabled.js +5 -5
- package/dist/cjs/ui/page-layout/banner.compiled.css +0 -1
- package/dist/cjs/ui/page-layout/banner.js +2 -5
- package/dist/cjs/ui/page-layout/constants.js +1 -13
- package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.compiled.css +0 -1
- package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.js +2 -5
- package/dist/cjs/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +0 -68
- package/dist/cjs/ui/page-layout/ribbon.js +0 -7
- package/dist/cjs/ui/page-layout/side-nav/side-nav-content.js +1 -9
- package/dist/cjs/ui/page-layout/side-nav/side-nav.compiled.css +3 -10
- package/dist/cjs/ui/page-layout/side-nav/side-nav.js +21 -54
- package/dist/cjs/ui/page-layout/top-nav/top-nav-end.compiled.css +0 -1
- package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +4 -7
- package/dist/cjs/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -12
- package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +9 -250
- package/dist/cjs/ui/page-layout/top-nav/top-nav.compiled.css +1 -15
- package/dist/cjs/ui/page-layout/top-nav/top-nav.js +5 -16
- package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.compiled.css +0 -2
- package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.js +13 -16
- package/dist/cjs/ui/top-nav-items/nav-logo/custom-logo.compiled.css +0 -2
- package/dist/cjs/ui/top-nav-items/nav-logo/custom-logo.js +5 -8
- package/dist/cjs/ui/top-nav-items/search.compiled.css +3 -2
- package/dist/cjs/ui/top-nav-items/search.js +9 -11
- package/dist/cjs/ui/top-nav-items/themed/themed-anchor.js +2 -2
- package/dist/cjs/ui/top-nav-items/themed/themed-pressable.js +2 -2
- package/dist/es2019/components/skip-links/skip-link.js +1 -1
- package/dist/es2019/components/skip-links/skip-links-container.js +1 -1
- package/dist/es2019/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +2 -2
- package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-context.js +6 -4
- package/dist/es2019/ui/fhs-rollout/is-fhs-enabled-provider.js +12 -17
- package/dist/es2019/ui/fhs-rollout/use-is-fhs-enabled.js +5 -8
- package/dist/es2019/ui/page-layout/banner.compiled.css +0 -1
- package/dist/es2019/ui/page-layout/banner.js +2 -5
- package/dist/es2019/ui/page-layout/chat-panel.js +1 -1
- package/dist/es2019/ui/page-layout/constants.js +0 -12
- package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.compiled.css +0 -1
- package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +2 -5
- package/dist/es2019/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -61
- package/dist/es2019/ui/page-layout/ribbon.js +0 -7
- package/dist/es2019/ui/page-layout/side-nav/side-nav-content.js +2 -8
- package/dist/es2019/ui/page-layout/side-nav/side-nav.compiled.css +3 -10
- package/dist/es2019/ui/page-layout/side-nav/side-nav.js +5 -44
- package/dist/es2019/ui/page-layout/top-nav/top-nav-end.compiled.css +0 -1
- package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +3 -6
- package/dist/es2019/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -12
- package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +6 -243
- package/dist/es2019/ui/page-layout/top-nav/top-nav.compiled.css +1 -15
- package/dist/es2019/ui/page-layout/top-nav/top-nav.js +5 -18
- package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.compiled.css +0 -2
- package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.js +9 -12
- package/dist/es2019/ui/top-nav-items/nav-logo/custom-logo.compiled.css +0 -2
- package/dist/es2019/ui/top-nav-items/nav-logo/custom-logo.js +4 -7
- package/dist/es2019/ui/top-nav-items/search.compiled.css +3 -2
- package/dist/es2019/ui/top-nav-items/search.js +6 -8
- package/dist/es2019/ui/top-nav-items/themed/themed-anchor.js +1 -1
- package/dist/es2019/ui/top-nav-items/themed/themed-pressable.js +1 -1
- package/dist/esm/components/skip-links/skip-link.js +1 -1
- package/dist/esm/components/skip-links/skip-links-container.js +1 -1
- package/dist/esm/ui/fhs-rollout/is-custom-is-fhs-enabled-context.js +2 -2
- package/dist/esm/ui/fhs-rollout/is-fhs-enabled-context.js +6 -6
- package/dist/esm/ui/fhs-rollout/is-fhs-enabled-provider.js +13 -16
- package/dist/esm/ui/fhs-rollout/use-is-fhs-enabled.js +5 -6
- package/dist/esm/ui/page-layout/banner.compiled.css +0 -1
- package/dist/esm/ui/page-layout/banner.js +2 -5
- package/dist/esm/ui/page-layout/chat-panel.js +1 -1
- package/dist/esm/ui/page-layout/constants.js +0 -12
- package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.compiled.css +0 -1
- package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +2 -5
- package/dist/esm/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +2 -71
- package/dist/esm/ui/page-layout/ribbon.js +0 -7
- package/dist/esm/ui/page-layout/side-nav/side-nav-content.js +2 -10
- package/dist/esm/ui/page-layout/side-nav/side-nav.compiled.css +3 -10
- package/dist/esm/ui/page-layout/side-nav/side-nav.js +22 -55
- package/dist/esm/ui/page-layout/top-nav/top-nav-end.compiled.css +0 -1
- package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +3 -6
- package/dist/esm/ui/page-layout/top-nav/top-nav-start.compiled.css +2 -12
- package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +10 -250
- package/dist/esm/ui/page-layout/top-nav/top-nav.compiled.css +1 -15
- package/dist/esm/ui/page-layout/top-nav/top-nav.js +5 -16
- package/dist/esm/ui/top-nav-items/nav-logo/app-logo.compiled.css +0 -2
- package/dist/esm/ui/top-nav-items/nav-logo/app-logo.js +9 -12
- package/dist/esm/ui/top-nav-items/nav-logo/custom-logo.compiled.css +0 -2
- package/dist/esm/ui/top-nav-items/nav-logo/custom-logo.js +4 -7
- package/dist/esm/ui/top-nav-items/search.compiled.css +3 -2
- package/dist/esm/ui/top-nav-items/search.js +6 -8
- package/dist/esm/ui/top-nav-items/themed/themed-anchor.js +1 -1
- package/dist/esm/ui/top-nav-items/themed/themed-pressable.js +1 -1
- package/dist/types/ui/fhs-rollout/is-custom-is-fhs-enabled-context.d.ts +2 -2
- package/dist/types/ui/fhs-rollout/is-fhs-enabled-context.d.ts +5 -2
- package/dist/types/ui/fhs-rollout/is-fhs-enabled-provider.d.ts +9 -2
- package/dist/types/ui/fhs-rollout/use-is-fhs-enabled.d.ts +4 -1
- package/dist/types/ui/page-layout/constants.d.ts +0 -4
- package/dist/types/ui/page-layout/dangerously-hoist-css-var-to-document-root.d.ts +1 -1
- package/dist/types/ui/page-layout/panel-splitter/get-width-from-drag-location.d.ts +1 -1
- package/dist/types/ui/page-layout/panel-splitter/panel-splitter.d.ts +0 -2
- package/dist/types/ui/page-layout/side-nav/side-nav.d.ts +0 -1
- package/dist/types/ui/top-nav-items/themed/themed-anchor.d.ts +1 -1
- package/dist/types/ui/top-nav-items/themed/themed-button.d.ts +1 -1
- package/dist/types/ui/top-nav-items/themed/themed-icon-button.d.ts +1 -1
- package/dist/types/ui/top-nav-items/themed/themed-link-button.d.ts +1 -1
- package/dist/types/ui/top-nav-items/themed/themed-link-icon-button.d.ts +1 -1
- package/dist/types/ui/top-nav-items/themed/themed-pressable.d.ts +1 -1
- 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 =
|
|
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,
|
|
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)))
|
|
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(
|
|
970
|
-
var children =
|
|
971
|
-
defaultCollapsed =
|
|
972
|
-
|
|
973
|
-
defaultWidth =
|
|
974
|
-
minWidth =
|
|
975
|
-
maxWidth =
|
|
976
|
-
testId =
|
|
977
|
-
label =
|
|
978
|
-
|
|
979
|
-
skipLinkLabel =
|
|
980
|
-
onExpand =
|
|
981
|
-
onCollapse =
|
|
982
|
-
onPeekStart =
|
|
983
|
-
onPeekEnd =
|
|
984
|
-
canToggleWithShortcut =
|
|
985
|
-
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
|
|
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,
|
|
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
|
|
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
|
-
.
|
|
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
|
-
.
|
|
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(
|
|
159
|
-
var children =
|
|
160
|
-
testId =
|
|
161
|
-
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
|
-
|
|
270
|
-
|
|
271
|
-
|
|
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}}
|