@atlaskit/navigation-system 2.7.0 → 2.9.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 +24 -0
- package/dist/cjs/components/badge-container.js +1 -1
- package/dist/cjs/components/list-item.js +1 -1
- package/dist/cjs/components/list.js +1 -1
- package/dist/cjs/components/skip-links/skip-link.js +1 -1
- package/dist/cjs/components/skip-links/skip-links-container.js +1 -1
- package/dist/cjs/ui/menu-item/container-avatar.js +1 -1
- package/dist/cjs/ui/menu-item/drag-and-drop/drag-preview.js +1 -1
- package/dist/cjs/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.js +1 -1
- package/dist/cjs/ui/menu-item/drag-handle.js +1 -1
- package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-content.js +1 -1
- package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.compiled.css +3 -5
- package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.js +1 -1
- package/dist/cjs/ui/menu-item/expandable-menu-item/expandable-menu-item.js +1 -1
- package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item-content.js +1 -1
- package/dist/cjs/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.js +1 -1
- package/dist/cjs/ui/menu-item/link-menu-item.js +1 -1
- package/dist/cjs/ui/menu-item/menu-item.compiled.css +5 -10
- package/dist/cjs/ui/menu-item/menu-item.js +1 -1
- package/dist/cjs/ui/menu-item/top-level-spacer.js +1 -1
- package/dist/cjs/ui/menu-section/divider.compiled.css +1 -1
- package/dist/cjs/ui/menu-section/divider.js +5 -2
- package/dist/cjs/ui/menu-section/menu-section-heading.js +1 -1
- package/dist/cjs/ui/page-layout/aside.js +1 -1
- package/dist/cjs/ui/page-layout/banner.js +1 -1
- package/dist/cjs/ui/page-layout/main/main-sticky-header.js +1 -1
- package/dist/cjs/ui/page-layout/main/main.js +1 -1
- package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.compiled.css +3 -6
- package/dist/cjs/ui/page-layout/panel-splitter/panel-splitter.js +1 -1
- package/dist/cjs/ui/page-layout/panel.compiled.css +0 -1
- package/dist/cjs/ui/page-layout/panel.js +6 -9
- package/dist/cjs/ui/page-layout/root.js +1 -1
- package/dist/cjs/ui/page-layout/side-nav/side-nav-content.js +1 -1
- package/dist/cjs/ui/page-layout/side-nav/side-nav-footer.js +1 -1
- package/dist/cjs/ui/page-layout/side-nav/side-nav-header.js +1 -1
- package/dist/cjs/ui/page-layout/side-nav/side-nav.js +1 -1
- package/dist/cjs/ui/page-layout/side-nav/toggle-button-context.js +7 -2
- package/dist/cjs/ui/page-layout/side-nav/toggle-button-provider.js +13 -1
- package/dist/cjs/ui/page-layout/side-nav/toggle-button.compiled.css +2 -1
- package/dist/cjs/ui/page-layout/side-nav/toggle-button.js +19 -2
- package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +1 -1
- package/dist/cjs/ui/page-layout/top-nav/top-nav-middle.js +1 -1
- package/dist/cjs/ui/page-layout/top-nav/top-nav-start.compiled.css +1 -2
- package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +46 -6
- package/dist/cjs/ui/page-layout/top-nav/top-nav.js +1 -1
- package/dist/cjs/ui/top-nav-items/custom-title.js +1 -1
- package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.compiled.css +2 -0
- package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.js +11 -7
- package/dist/cjs/ui/top-nav-items/nav-logo/custom-logo.js +1 -1
- package/dist/cjs/ui/top-nav-items/nav-logo/logo-renderer.js +1 -1
- package/dist/cjs/ui/top-nav-items/search.js +1 -1
- package/dist/cjs/ui/top-nav-items/themed/button.compiled.css +8 -18
- package/dist/cjs/ui/top-nav-items/themed/button.js +1 -1
- package/dist/es2019/components/badge-container.js +1 -1
- package/dist/es2019/components/list-item.js +1 -1
- package/dist/es2019/components/list.js +1 -1
- 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/menu-item/container-avatar.js +1 -1
- package/dist/es2019/ui/menu-item/drag-and-drop/drag-preview.js +1 -1
- package/dist/es2019/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.js +1 -1
- package/dist/es2019/ui/menu-item/drag-handle.js +1 -1
- package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-content.js +1 -1
- package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.compiled.css +3 -5
- package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.js +1 -1
- package/dist/es2019/ui/menu-item/expandable-menu-item/expandable-menu-item.js +1 -1
- package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item-content.js +1 -1
- package/dist/es2019/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.js +1 -1
- package/dist/es2019/ui/menu-item/link-menu-item.js +1 -1
- package/dist/es2019/ui/menu-item/menu-item.compiled.css +5 -10
- package/dist/es2019/ui/menu-item/menu-item.js +1 -1
- package/dist/es2019/ui/menu-item/top-level-spacer.js +1 -1
- package/dist/es2019/ui/menu-section/divider.js +1 -1
- package/dist/es2019/ui/menu-section/menu-section-heading.js +1 -1
- package/dist/es2019/ui/page-layout/aside.js +1 -1
- package/dist/es2019/ui/page-layout/banner.js +1 -1
- package/dist/es2019/ui/page-layout/main/main-sticky-header.js +1 -1
- package/dist/es2019/ui/page-layout/main/main.js +1 -1
- package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.compiled.css +3 -6
- package/dist/es2019/ui/page-layout/panel-splitter/panel-splitter.js +1 -1
- package/dist/es2019/ui/page-layout/panel.compiled.css +0 -1
- package/dist/es2019/ui/page-layout/panel.js +6 -9
- package/dist/es2019/ui/page-layout/root.js +1 -1
- package/dist/es2019/ui/page-layout/side-nav/side-nav-content.js +1 -1
- package/dist/es2019/ui/page-layout/side-nav/side-nav-footer.js +1 -1
- package/dist/es2019/ui/page-layout/side-nav/side-nav-header.js +1 -1
- package/dist/es2019/ui/page-layout/side-nav/side-nav.js +1 -1
- package/dist/es2019/ui/page-layout/side-nav/toggle-button-context.js +6 -1
- package/dist/es2019/ui/page-layout/side-nav/toggle-button-provider.js +14 -1
- package/dist/es2019/ui/page-layout/side-nav/toggle-button.compiled.css +2 -1
- package/dist/es2019/ui/page-layout/side-nav/toggle-button.js +20 -3
- package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +1 -1
- package/dist/es2019/ui/page-layout/top-nav/top-nav-middle.js +1 -1
- package/dist/es2019/ui/page-layout/top-nav/top-nav-start.compiled.css +1 -2
- package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +42 -7
- package/dist/es2019/ui/page-layout/top-nav/top-nav.js +1 -1
- package/dist/es2019/ui/top-nav-items/custom-title.js +1 -1
- package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.compiled.css +2 -0
- package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.js +11 -7
- package/dist/es2019/ui/top-nav-items/nav-logo/custom-logo.js +1 -1
- package/dist/es2019/ui/top-nav-items/nav-logo/logo-renderer.js +1 -1
- package/dist/es2019/ui/top-nav-items/search.js +1 -1
- package/dist/es2019/ui/top-nav-items/themed/button.compiled.css +8 -18
- package/dist/es2019/ui/top-nav-items/themed/button.js +1 -1
- package/dist/esm/components/badge-container.js +1 -1
- package/dist/esm/components/list-item.js +1 -1
- package/dist/esm/components/list.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/menu-item/container-avatar.js +1 -1
- package/dist/esm/ui/menu-item/drag-and-drop/drag-preview.js +1 -1
- package/dist/esm/ui/menu-item/drag-and-drop/use-menu-item-drag-and-drop.js +1 -1
- package/dist/esm/ui/menu-item/drag-handle.js +1 -1
- package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-content.js +1 -1
- package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.compiled.css +3 -5
- package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item-trigger.js +1 -1
- package/dist/esm/ui/menu-item/expandable-menu-item/expandable-menu-item.js +1 -1
- package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item-content.js +1 -1
- package/dist/esm/ui/menu-item/flyout-menu-item/flyout-menu-item-trigger.js +1 -1
- package/dist/esm/ui/menu-item/link-menu-item.js +1 -1
- package/dist/esm/ui/menu-item/menu-item.compiled.css +5 -10
- package/dist/esm/ui/menu-item/menu-item.js +1 -1
- package/dist/esm/ui/menu-item/top-level-spacer.js +1 -1
- package/dist/esm/ui/menu-section/divider.compiled.css +1 -1
- package/dist/esm/ui/menu-section/divider.js +5 -2
- package/dist/esm/ui/menu-section/menu-section-heading.js +1 -1
- package/dist/esm/ui/page-layout/aside.js +1 -1
- package/dist/esm/ui/page-layout/banner.js +1 -1
- package/dist/esm/ui/page-layout/main/main-sticky-header.js +1 -1
- package/dist/esm/ui/page-layout/main/main.js +1 -1
- package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.compiled.css +3 -6
- package/dist/esm/ui/page-layout/panel-splitter/panel-splitter.js +1 -1
- package/dist/esm/ui/page-layout/panel.compiled.css +0 -1
- package/dist/esm/ui/page-layout/panel.js +6 -9
- package/dist/esm/ui/page-layout/root.js +1 -1
- package/dist/esm/ui/page-layout/side-nav/side-nav-content.js +1 -1
- package/dist/esm/ui/page-layout/side-nav/side-nav-footer.js +1 -1
- package/dist/esm/ui/page-layout/side-nav/side-nav-header.js +1 -1
- package/dist/esm/ui/page-layout/side-nav/side-nav.js +1 -1
- package/dist/esm/ui/page-layout/side-nav/toggle-button-context.js +6 -1
- package/dist/esm/ui/page-layout/side-nav/toggle-button-provider.js +13 -1
- package/dist/esm/ui/page-layout/side-nav/toggle-button.compiled.css +2 -1
- package/dist/esm/ui/page-layout/side-nav/toggle-button.js +20 -3
- package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +1 -1
- package/dist/esm/ui/page-layout/top-nav/top-nav-middle.js +1 -1
- package/dist/esm/ui/page-layout/top-nav/top-nav-start.compiled.css +1 -2
- package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +46 -7
- package/dist/esm/ui/page-layout/top-nav/top-nav.js +1 -1
- package/dist/esm/ui/top-nav-items/custom-title.js +1 -1
- package/dist/esm/ui/top-nav-items/nav-logo/app-logo.compiled.css +2 -0
- package/dist/esm/ui/top-nav-items/nav-logo/app-logo.js +11 -7
- package/dist/esm/ui/top-nav-items/nav-logo/custom-logo.js +1 -1
- package/dist/esm/ui/top-nav-items/nav-logo/logo-renderer.js +1 -1
- package/dist/esm/ui/top-nav-items/search.js +1 -1
- package/dist/esm/ui/top-nav-items/themed/button.compiled.css +8 -18
- package/dist/esm/ui/top-nav-items/themed/button.js +1 -1
- package/dist/types/ui/page-layout/side-nav/toggle-button-context.d.ts +4 -0
- package/dist/types/ui/page-layout/side-nav/toggle-button-provider.d.ts +8 -0
- package/dist/types/ui/page-layout/top-nav/top-nav-start.d.ts +12 -1
- package/dist/types-ts4.5/ui/page-layout/side-nav/toggle-button-context.d.ts +4 -0
- package/dist/types-ts4.5/ui/page-layout/side-nav/toggle-button-provider.d.ts +8 -0
- package/dist/types-ts4.5/ui/page-layout/top-nav/top-nav-start.d.ts +12 -1
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { SideNavToggleButtonAttachRef, SideNavToggleButtonElement } from './toggle-button-context';
|
|
3
|
+
import { SideNavToggleButtonAttachRef, SideNavToggleButtonElement, SideNavToggleButtonSlotContext } from './toggle-button-context';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Provider for the side nav toggle button contexts.
|
|
@@ -26,4 +26,16 @@ export var SideNavToggleButtonProvider = function SideNavToggleButtonProvider(_r
|
|
|
26
26
|
}, /*#__PURE__*/React.createElement(SideNavToggleButtonAttachRef.Provider, {
|
|
27
27
|
value: setElement
|
|
28
28
|
}, children));
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Provider for the side nav toggle button slot.
|
|
33
|
+
*
|
|
34
|
+
* This allows us to determine if the toggle button is rendered inside or outside of its slot.
|
|
35
|
+
*/
|
|
36
|
+
export var SideNavToggleButtonSlotProvider = function SideNavToggleButtonSlotProvider(_ref2) {
|
|
37
|
+
var children = _ref2.children;
|
|
38
|
+
return /*#__PURE__*/React.createElement(SideNavToggleButtonSlotContext.Provider, {
|
|
39
|
+
value: true
|
|
40
|
+
}, children);
|
|
29
41
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* toggle-button.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* toggle-button.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import "./toggle-button.compiled.css";
|
|
4
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
@@ -8,7 +8,7 @@ import SidebarCollapseIcon from '@atlaskit/icon/core/sidebar-collapse';
|
|
|
8
8
|
import SidebarExpandIcon from '@atlaskit/icon/core/sidebar-expand';
|
|
9
9
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
10
10
|
import { IconButton } from '../../top-nav-items/themed/migration';
|
|
11
|
-
import { SideNavToggleButtonAttachRef } from './toggle-button-context';
|
|
11
|
+
import { SideNavToggleButtonAttachRef, SideNavToggleButtonSlotContext } from './toggle-button-context';
|
|
12
12
|
import { useSideNavVisibility } from './use-side-nav-visibility';
|
|
13
13
|
import { useToggleSideNav } from './use-toggle-side-nav';
|
|
14
14
|
var toggleButtonTooltipOptions = {
|
|
@@ -20,6 +20,12 @@ var toggleButtonTooltipOptions = {
|
|
|
20
20
|
// For duplicate "mouseenter" issue when changing icons (see below)
|
|
21
21
|
var silentIconStyles = null;
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Wrapper styles to align the toggle button to the end of `TopNavStart`
|
|
25
|
+
* when FHS is expanded.
|
|
26
|
+
*/
|
|
27
|
+
var fullHeightSidebarExpandedWrapperStyles = null;
|
|
28
|
+
|
|
23
29
|
/**
|
|
24
30
|
* __SideNavToggleButton__
|
|
25
31
|
*
|
|
@@ -93,7 +99,7 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
|
|
|
93
99
|
className: ax(["_1e0c1bgi _lcxvglyw"])
|
|
94
100
|
}, isSideNavExpanded ? /*#__PURE__*/React.createElement(SidebarCollapseIcon, props) : /*#__PURE__*/React.createElement(SidebarExpandIcon, props));
|
|
95
101
|
};
|
|
96
|
-
|
|
102
|
+
var iconButton = /*#__PURE__*/React.createElement(IconButton, {
|
|
97
103
|
appearance: "subtle",
|
|
98
104
|
label: isSideNavExpanded ? collapseLabel : expandLabel,
|
|
99
105
|
icon: icon,
|
|
@@ -104,4 +110,15 @@ export var SideNavToggleButton = function SideNavToggleButton(_ref) {
|
|
|
104
110
|
ref: fg('platform_fix_component_state_update_for_suspense') ? elementRef : ref,
|
|
105
111
|
tooltip: toggleButtonTooltipOptions
|
|
106
112
|
});
|
|
113
|
+
var isInsideSlot = useContext(SideNavToggleButtonSlotContext);
|
|
114
|
+
|
|
115
|
+
// Checking `isInsideSlot` in case an app isn't using the slot
|
|
116
|
+
// We don't want to break existing non-slot usage with the left margin
|
|
117
|
+
// This check can be removed in the future, after slot is required for a while.
|
|
118
|
+
if (isInsideSlot && fg('navx-full-height-sidebar')) {
|
|
119
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
120
|
+
className: ax([isSideNavExpandedOnDesktop && "_3l1a1wug"])
|
|
121
|
+
}, iconButton);
|
|
122
|
+
}
|
|
123
|
+
return iconButton;
|
|
107
124
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* top-nav-end.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* top-nav-end.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
4
|
import "./top-nav-end.compiled.css";
|
|
@@ -5,5 +5,4 @@
|
|
|
5
5
|
._4t3i1osq{height:100%}
|
|
6
6
|
._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
|
|
7
7
|
._lcxv1wug{pointer-events:auto}
|
|
8
|
-
.
|
|
9
|
-
@media (min-width:64rem){._15rin7od{min-width:unset}._glte1ris{width:max-content}._15ri1mjv{min-width:300px}._1gs5usvi{box-sizing:border-box}}
|
|
8
|
+
@media (min-width:64rem){._15rin7od{min-width:unset}._glte1osq{width:100%}._10jxnau3{max-width:calc(100% - var(--ds-space-200, 1pc))}._glte1ris{width:max-content}._15ri1mjv{min-width:300px}._1gs5usvi{box-sizing:border-box}}
|
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
/* top-nav-start.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* top-nav-start.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
3
|
import "./top-nav-start.compiled.css";
|
|
3
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
4
|
-
import React, { useContext, useEffect, useRef } from 'react';
|
|
5
|
+
import React, { useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
5
6
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
|
+
import { UNSAFE_useMediaQuery } from '@atlaskit/primitives/compiled';
|
|
6
8
|
import { TopNavStartAttachRef } from '../../../context/top-nav-start/top-nav-start-context';
|
|
9
|
+
import { SideNavToggleButtonSlotProvider } from '../side-nav/toggle-button-provider';
|
|
7
10
|
import { useSideNavVisibility } from '../side-nav/use-side-nav-visibility';
|
|
8
11
|
var styles = {
|
|
9
12
|
root: "_zulp1b66 _yyhykb7n _4t3i1osq _4cvr1h6o _1e0c1txw _glte1ris _15ri1mjv _1gs5usvi",
|
|
10
|
-
fullHeightSidebar: "
|
|
11
|
-
fullHeightSidebarExpanded: "_15rin7od"
|
|
13
|
+
fullHeightSidebar: "_bozgutpp _lcxv1wug",
|
|
14
|
+
fullHeightSidebarExpanded: "_15rin7od _glte1osq _10jxnau3"
|
|
12
15
|
};
|
|
13
16
|
|
|
17
|
+
/**
|
|
18
|
+
* The consistent key used for the side nav toggle button to ensure it does not get remounted
|
|
19
|
+
* when it is reordered.
|
|
20
|
+
*
|
|
21
|
+
* This ensures we get focus restoration for free.
|
|
22
|
+
*/
|
|
23
|
+
var sideNavToggleButtonKey = 'side-nav-toggle-button';
|
|
24
|
+
|
|
14
25
|
/**
|
|
15
26
|
* __TopNavStart__
|
|
16
27
|
*
|
|
@@ -18,7 +29,8 @@ var styles = {
|
|
|
18
29
|
*/
|
|
19
30
|
export function TopNavStart(_ref) {
|
|
20
31
|
var children = _ref.children,
|
|
21
|
-
testId = _ref.testId
|
|
32
|
+
testId = _ref.testId,
|
|
33
|
+
sideNavToggleButton = _ref.sideNavToggleButton;
|
|
22
34
|
var ref = useContext(TopNavStartAttachRef);
|
|
23
35
|
var elementRef = useRef(null);
|
|
24
36
|
useEffect(function () {
|
|
@@ -27,14 +39,41 @@ export function TopNavStart(_ref) {
|
|
|
27
39
|
}
|
|
28
40
|
}, [elementRef, ref]);
|
|
29
41
|
|
|
30
|
-
//
|
|
42
|
+
// This needs the real `defaultCollapsed` state or will not SSR properly
|
|
43
|
+
// TODO: lift `defaultCollapsed` state to `Root` (DSP-23683)
|
|
44
|
+
// then context value will be correct in SSR / from initial render
|
|
31
45
|
var _useSideNavVisibility = useSideNavVisibility({
|
|
32
46
|
defaultCollapsed: true
|
|
33
47
|
}),
|
|
34
48
|
isExpandedOnDesktop = _useSideNavVisibility.isExpandedOnDesktop;
|
|
49
|
+
|
|
50
|
+
// For SSR assume desktop
|
|
51
|
+
var _useState = useState(true),
|
|
52
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
53
|
+
isDesktop = _useState2[0],
|
|
54
|
+
setIsDesktop = _useState2[1];
|
|
55
|
+
// Set state to real value on client
|
|
56
|
+
// This could result in some visible shift on mobile when hydrating SSR
|
|
57
|
+
// TODO: review and improve SSR behavior as necessary (DSP-23817)
|
|
58
|
+
useLayoutEffect(function () {
|
|
59
|
+
// Checking this to avoid breaking tests when `matchMedia` is not mocked
|
|
60
|
+
// Ideally we wouldn't cater to test environments, but this avoids introducing unnecessary friction
|
|
61
|
+
if (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {
|
|
62
|
+
setIsDesktop(window.matchMedia('(min-width: 64rem)').matches);
|
|
63
|
+
}
|
|
64
|
+
}, []);
|
|
65
|
+
UNSAFE_useMediaQuery('above.md', function (event) {
|
|
66
|
+
setIsDesktop(event.matches);
|
|
67
|
+
});
|
|
35
68
|
return /*#__PURE__*/React.createElement("div", {
|
|
36
69
|
ref: fg('platform_fix_component_state_update_for_suspense') ? elementRef : ref,
|
|
37
70
|
"data-testid": testId,
|
|
38
71
|
className: ax([styles.root, fg('navx-full-height-sidebar') && styles.fullHeightSidebar, isExpandedOnDesktop && fg('navx-full-height-sidebar') && styles.fullHeightSidebarExpanded])
|
|
39
|
-
},
|
|
72
|
+
}, !fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement(SideNavToggleButtonSlotProvider, {
|
|
73
|
+
key: sideNavToggleButtonKey
|
|
74
|
+
}, sideNavToggleButton), sideNavToggleButton && (!isDesktop || !isExpandedOnDesktop) && fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement(SideNavToggleButtonSlotProvider, {
|
|
75
|
+
key: sideNavToggleButtonKey
|
|
76
|
+
}, sideNavToggleButton), children, sideNavToggleButton && isDesktop && isExpandedOnDesktop && fg('navx-full-height-sidebar') && /*#__PURE__*/React.createElement(SideNavToggleButtonSlotProvider, {
|
|
77
|
+
key: sideNavToggleButtonKey
|
|
78
|
+
}, sideNavToggleButton));
|
|
40
79
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* top-nav.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* top-nav.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["backgroundColor"];
|
|
4
4
|
import "./top-nav.compiled.css";
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
._1e0c1txw{display:flex}
|
|
6
6
|
._1e0cglyw{display:none}
|
|
7
7
|
._1o9zidpf{flex-shrink:0}
|
|
8
|
+
._1o9zkb7n{flex-shrink:1}
|
|
8
9
|
._1reo15vq{overflow-x:hidden}
|
|
9
10
|
._1toh1r31._1toh1r31{text-decoration-color:currentColor}
|
|
10
11
|
._1w901kw7._1w901kw7{color:inherit}
|
|
@@ -13,6 +14,7 @@
|
|
|
13
14
|
._5jyqglyw._5jyqglyw{text-decoration-line:none}
|
|
14
15
|
._ahbq1b66{margin-inline-start:var(--ds-space-050,4px)}
|
|
15
16
|
._mrqmnqa1._mrqmnqa1{text-decoration-style:solid}
|
|
17
|
+
._p12f1osq{max-width:100%}
|
|
16
18
|
._p12f1tcg{max-width:24px}
|
|
17
19
|
._p12fnklw{max-width:20pc}
|
|
18
20
|
._uiztglyw{-webkit-user-select:none;-ms-user-select:none;user-select:none}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
/* app-logo.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* app-logo.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
import "./app-logo.compiled.css";
|
|
3
3
|
import { ax, ix } from "@compiled/react/runtime";
|
|
4
4
|
import React, { useCallback, useRef } from 'react';
|
|
5
5
|
import { cx } from '@compiled/react';
|
|
6
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
7
|
import { componentWithFG } from '@atlaskit/platform-feature-flags-react';
|
|
7
8
|
import { Anchor as AnchorLegacy, Inline as InlineLegacy, Text as TextLegacy
|
|
8
9
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
@@ -17,13 +18,16 @@ var Text = componentWithFG('jfp-magma-hydration-harmonise-applogo-classname', Te
|
|
|
17
18
|
var anchorStyles = {
|
|
18
19
|
root: "_2rko19bv _1e0c1txw _4cvr1h6o _4t3izwfg _1o9zidpf _ahbq1b66 _1toh1r31 _5jyqglyw _mrqmnqa1 _1w901kw7",
|
|
19
20
|
interactionStates: "_irr3166n _1di61wwy",
|
|
20
|
-
interactionStatesCustomTheming: "_irr31rps _1di6yhlj"
|
|
21
|
+
interactionStatesCustomTheming: "_irr31rps _1di6yhlj",
|
|
22
|
+
fullHeightSidebar: "_1reo15vq _18m915vq _1o9zkb7n"
|
|
21
23
|
};
|
|
22
24
|
var logoWrapperStyles = {
|
|
23
|
-
root: "_18zr1b66"
|
|
25
|
+
root: "_18zr1b66",
|
|
26
|
+
fullHeightSidebar: "_p12f1osq"
|
|
24
27
|
};
|
|
25
28
|
var iconContainerStyles = {
|
|
26
|
-
root: "_1reo15vq _18m915vq _1e0c1txw _p12f1tcg"
|
|
29
|
+
root: "_1reo15vq _18m915vq _1e0c1txw _p12f1tcg",
|
|
30
|
+
fullHeightSidebar: "_1o9zidpf"
|
|
27
31
|
};
|
|
28
32
|
var logoTextStyles = {
|
|
29
33
|
root: "_1bsb1ris _p12fnklw _uiztglyw _y4tiv77o _1e0cglyw _10y418uv"
|
|
@@ -65,14 +69,14 @@ export var AppLogo = function AppLogo(_ref) {
|
|
|
65
69
|
// @ts-expect-error - non-standard values for `borderRadius` and the custom theming interaction states
|
|
66
70
|
// eslint-disable-next-line @compiled/no-suppress-xcss
|
|
67
71
|
,
|
|
68
|
-
xcss: cx(anchorStyles.root, hasCustomTheme ? anchorStyles.interactionStatesCustomTheming : anchorStyles.interactionStates),
|
|
72
|
+
xcss: cx(anchorStyles.root, hasCustomTheme ? anchorStyles.interactionStatesCustomTheming : anchorStyles.interactionStates, fg('navx-full-height-sidebar') && anchorStyles.fullHeightSidebar),
|
|
69
73
|
onClick: onClick
|
|
70
74
|
}, /*#__PURE__*/React.createElement(Inline, {
|
|
71
75
|
space: "space.075",
|
|
72
76
|
alignBlock: "center",
|
|
73
|
-
xcss: logoWrapperStyles.root
|
|
77
|
+
xcss: cx(logoWrapperStyles.root, fg('navx-full-height-sidebar') && logoWrapperStyles.fullHeightSidebar)
|
|
74
78
|
}, /*#__PURE__*/React.createElement("div", {
|
|
75
|
-
className: ax([iconContainerStyles.root])
|
|
79
|
+
className: ax([iconContainerStyles.root, fg('navx-full-height-sidebar') && iconContainerStyles.fullHeightSidebar])
|
|
76
80
|
}, /*#__PURE__*/React.createElement(LogoRenderer
|
|
77
81
|
// Top nav always uses the new logo design
|
|
78
82
|
, {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* custom-logo.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* custom-logo.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
import "./custom-logo.compiled.css";
|
|
3
3
|
import { ax, ix } from "@compiled/react/runtime";
|
|
4
4
|
import React, { useEffect, useRef } from 'react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* logo-renderer.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* logo-renderer.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
import { ax, ix } from "@compiled/react/runtime";
|
|
3
3
|
import React, { memo } from 'react';
|
|
4
4
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
._11c82smr{font:var(--ds-font-body,normal 400 14px/20px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
|
|
3
2
|
._11q71c9b{background:var(--ds-top-bar-button-disabled-background)}
|
|
4
3
|
._11q71qds{background:var(--ds-top-bar-button-selected-background)}
|
|
@@ -33,36 +32,27 @@
|
|
|
33
32
|
._syaz1i3i{color:var(--ds-top-bar-button-disabled-text)}
|
|
34
33
|
._syaz1r31{color:currentColor}
|
|
35
34
|
._syazw5ct{color:var(--ds-top-bar-button-selected-text)}
|
|
36
|
-
._vwz4idpf{line-height:0}
|
|
37
|
-
.
|
|
38
|
-
.
|
|
39
|
-
.
|
|
40
|
-
.
|
|
41
|
-
._4fprglyw:focus{text-decoration-line:none}
|
|
42
|
-
._5goinqa1:focus{text-decoration-style:solid}
|
|
43
|
-
._f8pj15o7:focus{color:var(--ds-top-bar-button-primary-text)}
|
|
44
|
-
._f8pj1i3i:focus{color:var(--ds-top-bar-button-disabled-text)}
|
|
45
|
-
._f8pj1r31:focus{color:currentColor}
|
|
46
|
-
._f8pjw5ct:focus{color:var(--ds-top-bar-button-selected-text)}
|
|
35
|
+
._vwz4idpf{line-height:0}
|
|
36
|
+
._f8pj15o7:focus, ._105315o7:visited{color:var(--ds-top-bar-button-primary-text)}
|
|
37
|
+
._f8pj1i3i:focus, ._10531i3i:visited{color:var(--ds-top-bar-button-disabled-text)}
|
|
38
|
+
._f8pj1r31:focus, ._10531r31:visited{color:currentColor}
|
|
39
|
+
._f8pjw5ct:focus, ._1053w5ct:visited{color:var(--ds-top-bar-button-selected-text)}
|
|
47
40
|
._19lc1c9b:hover{background:var(--ds-top-bar-button-disabled-background)}
|
|
48
41
|
._19lc1rps:hover{background:var(--ds-top-bar-button-background-hovered)}
|
|
49
42
|
._19lcjrv1:hover{background:var(--ds-top-bar-button-selected-background-hovered)}
|
|
50
43
|
._19lcp6hf:hover{background:var(--ds-top-bar-button-primary-background-hovered)}
|
|
51
|
-
._1bnxglyw:hover{text-decoration-line:none}
|
|
52
44
|
._30l315o7:hover{color:var(--ds-top-bar-button-primary-text)}
|
|
53
45
|
._30l31i3i:hover{color:var(--ds-top-bar-button-disabled-text)}
|
|
54
46
|
._30l31r31:hover{color:currentColor}
|
|
55
47
|
._30l3w5ct:hover{color:var(--ds-top-bar-button-selected-text)}
|
|
56
|
-
._9oik1r31:hover{text-decoration-color:currentColor}
|
|
57
|
-
._jf4cnqa1:hover{text-decoration-style:solid}
|
|
58
48
|
._j6xt1c9b:active{background:var(--ds-top-bar-button-disabled-background)}
|
|
59
49
|
._j6xt5sko:active{background:var(--ds-top-bar-button-primary-background-pressed)}
|
|
60
50
|
._j6xtnh62:active{background:var(--ds-top-bar-button-selected-background-pressed)}
|
|
61
51
|
._j6xtqtgh:active{background:var(--ds-top-bar-button-background-pressed)}
|
|
62
|
-
._1iohnqa1:active{text-decoration-style:solid}
|
|
63
|
-
._1nrm1r31:active{text-decoration-color:currentColor}
|
|
52
|
+
._1iohnqa1:active, ._5goinqa1:focus, ._jf4cnqa1:hover{text-decoration-style:solid}
|
|
53
|
+
._1nrm1r31:active, ._1a3b1r31:focus, ._9oik1r31:hover{text-decoration-color:currentColor}
|
|
64
54
|
._9h8h15o7:active{color:var(--ds-top-bar-button-primary-text)}
|
|
65
55
|
._9h8h1i3i:active{color:var(--ds-top-bar-button-disabled-text)}
|
|
66
56
|
._9h8h1r31:active{color:currentColor}
|
|
67
57
|
._9h8hw5ct:active{color:var(--ds-top-bar-button-selected-text)}
|
|
68
|
-
._c2waglyw:active{text-decoration-line:none}
|
|
58
|
+
._c2waglyw:active, ._4fprglyw:focus, ._1bnxglyw:hover{text-decoration-line:none}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* button.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* button.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
4
|
var _excluded = ["style", "xcss", "backgroundColor", "padding", "paddingBlock", "paddingBlockStart", "paddingBlockEnd", "paddingInline", "paddingInlineStart", "paddingInlineEnd"],
|
|
@@ -14,3 +14,7 @@ export declare const SideNavToggleButtonElement: import("react").Context<HTMLBut
|
|
|
14
14
|
* is lazy loaded, which happens in Jira and Confluence), which would prevent the event listeners from being set up.
|
|
15
15
|
*/
|
|
16
16
|
export declare const SideNavToggleButtonAttachRef: import("react").Context<(newVal: HTMLButtonElement | null) => void>;
|
|
17
|
+
/**
|
|
18
|
+
* Used to check if the SideNavToggleButton is rendered inside of its slot in `TopNavStart`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const SideNavToggleButtonSlotContext: import("react").Context<boolean>;
|
|
@@ -15,3 +15,11 @@ import React from 'react';
|
|
|
15
15
|
export declare const SideNavToggleButtonProvider: ({ children }: {
|
|
16
16
|
children: React.ReactNode;
|
|
17
17
|
}) => React.JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* Provider for the side nav toggle button slot.
|
|
20
|
+
*
|
|
21
|
+
* This allows us to determine if the toggle button is rendered inside or outside of its slot.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SideNavToggleButtonSlotProvider: ({ children }: {
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
}) => React.JSX.Element;
|
|
@@ -8,7 +8,7 @@ import React from 'react';
|
|
|
8
8
|
*
|
|
9
9
|
* Wrapper for the top navigation actions on the inline-start (left) side of the top navigation.
|
|
10
10
|
*/
|
|
11
|
-
export declare function TopNavStart({ children, testId, }: {
|
|
11
|
+
export declare function TopNavStart({ children, testId, sideNavToggleButton, }: {
|
|
12
12
|
/**
|
|
13
13
|
* The content of the layout area.
|
|
14
14
|
*
|
|
@@ -19,4 +19,15 @@ export declare function TopNavStart({ children, testId, }: {
|
|
|
19
19
|
* A unique string that appears as data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
20
20
|
*/
|
|
21
21
|
testId?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Slot for the side nav toggle button.
|
|
24
|
+
*
|
|
25
|
+
* You should only render `<SideNavToggleButton>` inside this slot, not as a child.
|
|
26
|
+
*
|
|
27
|
+
* After `platform_dst_nav4_full_height_sidebar_api_changes` rolls out,
|
|
28
|
+
* this prop will become required.
|
|
29
|
+
*
|
|
30
|
+
* Consumers that do not need a toggle button can explicitly pass `null`.
|
|
31
|
+
*/
|
|
32
|
+
sideNavToggleButton?: React.ReactNode;
|
|
22
33
|
}): JSX.Element;
|
|
@@ -14,3 +14,7 @@ export declare const SideNavToggleButtonElement: import("react").Context<HTMLBut
|
|
|
14
14
|
* is lazy loaded, which happens in Jira and Confluence), which would prevent the event listeners from being set up.
|
|
15
15
|
*/
|
|
16
16
|
export declare const SideNavToggleButtonAttachRef: import("react").Context<(newVal: HTMLButtonElement | null) => void>;
|
|
17
|
+
/**
|
|
18
|
+
* Used to check if the SideNavToggleButton is rendered inside of its slot in `TopNavStart`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const SideNavToggleButtonSlotContext: import("react").Context<boolean>;
|
|
@@ -15,3 +15,11 @@ import React from 'react';
|
|
|
15
15
|
export declare const SideNavToggleButtonProvider: ({ children }: {
|
|
16
16
|
children: React.ReactNode;
|
|
17
17
|
}) => React.JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* Provider for the side nav toggle button slot.
|
|
20
|
+
*
|
|
21
|
+
* This allows us to determine if the toggle button is rendered inside or outside of its slot.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SideNavToggleButtonSlotProvider: ({ children }: {
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
}) => React.JSX.Element;
|
|
@@ -8,7 +8,7 @@ import React from 'react';
|
|
|
8
8
|
*
|
|
9
9
|
* Wrapper for the top navigation actions on the inline-start (left) side of the top navigation.
|
|
10
10
|
*/
|
|
11
|
-
export declare function TopNavStart({ children, testId, }: {
|
|
11
|
+
export declare function TopNavStart({ children, testId, sideNavToggleButton, }: {
|
|
12
12
|
/**
|
|
13
13
|
* The content of the layout area.
|
|
14
14
|
*
|
|
@@ -19,4 +19,15 @@ export declare function TopNavStart({ children, testId, }: {
|
|
|
19
19
|
* A unique string that appears as data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
20
20
|
*/
|
|
21
21
|
testId?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Slot for the side nav toggle button.
|
|
24
|
+
*
|
|
25
|
+
* You should only render `<SideNavToggleButton>` inside this slot, not as a child.
|
|
26
|
+
*
|
|
27
|
+
* After `platform_dst_nav4_full_height_sidebar_api_changes` rolls out,
|
|
28
|
+
* this prop will become required.
|
|
29
|
+
*
|
|
30
|
+
* Consumers that do not need a toggle button can explicitly pass `null`.
|
|
31
|
+
*/
|
|
32
|
+
sideNavToggleButton?: React.ReactNode;
|
|
22
33
|
}): JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/navigation-system",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "The latest navigation system for Atlassian apps.",
|
|
5
5
|
"repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
|
|
6
6
|
"author": "Atlassian Pty Ltd",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"@atlaskit/logo": "^19.7.0",
|
|
77
77
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
78
78
|
"@atlaskit/platform-feature-flags-react": "^0.3.0",
|
|
79
|
-
"@atlaskit/popup": "^4.
|
|
79
|
+
"@atlaskit/popup": "^4.4.0",
|
|
80
80
|
"@atlaskit/pragmatic-drag-and-drop": "^1.7.0",
|
|
81
81
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
|
|
82
82
|
"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator": "^3.2.0",
|
|
@@ -162,9 +162,6 @@
|
|
|
162
162
|
"platform_fix_component_state_update_for_suspense": {
|
|
163
163
|
"type": "boolean"
|
|
164
164
|
},
|
|
165
|
-
"platform_design_system_nav4_panel_mobile_width_fix": {
|
|
166
|
-
"type": "boolean"
|
|
167
|
-
},
|
|
168
165
|
"jiv-20710-fix-nav-rerender": {
|
|
169
166
|
"type": "boolean"
|
|
170
167
|
},
|
|
@@ -186,6 +183,9 @@
|
|
|
186
183
|
"navx-full-height-sidebar": {
|
|
187
184
|
"type": "boolean"
|
|
188
185
|
},
|
|
186
|
+
"platform_dst_nav4_full_height_sidebar_api_changes": {
|
|
187
|
+
"type": "boolean"
|
|
188
|
+
},
|
|
189
189
|
"platform_dst_nav4_menu_section_heading_a11y": {
|
|
190
190
|
"type": "boolean"
|
|
191
191
|
},
|