@atlaskit/navigation-system 0.167.3 → 0.168.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 +9 -0
- package/afm-volt/tsconfig.json +75 -0
- package/dist/cjs/entry-points/top-nav-items/index.js +8 -1
- package/dist/cjs/index.js +8 -1
- package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.compiled.css +24 -0
- package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.js +104 -0
- package/dist/cjs/ui/top-nav-items/nav-logo/logo-renderer.js +42 -0
- package/dist/cjs/ui/top-nav-items/{nav-logo.compiled.css → nav-logo/nav-logo.compiled.css} +1 -1
- package/dist/cjs/ui/top-nav-items/{nav-logo.js → nav-logo/nav-logo.js} +8 -33
- package/dist/cjs/ui/top-nav-items/themed/get-custom-theme-styles.js +1 -1
- package/dist/es2019/entry-points/top-nav-items/index.js +2 -1
- package/dist/es2019/index.js +2 -1
- package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.compiled.css +24 -0
- package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.js +94 -0
- package/dist/es2019/ui/top-nav-items/nav-logo/logo-renderer.js +35 -0
- package/dist/{esm/ui/top-nav-items → es2019/ui/top-nav-items/nav-logo}/nav-logo.compiled.css +1 -1
- package/dist/es2019/ui/top-nav-items/{nav-logo.js → nav-logo/nav-logo.js} +9 -36
- package/dist/es2019/ui/top-nav-items/themed/get-custom-theme-styles.js +1 -1
- package/dist/esm/entry-points/top-nav-items/index.js +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/ui/top-nav-items/nav-logo/app-logo.compiled.css +24 -0
- package/dist/esm/ui/top-nav-items/nav-logo/app-logo.js +95 -0
- package/dist/esm/ui/top-nav-items/nav-logo/logo-renderer.js +33 -0
- package/dist/{es2019/ui/top-nav-items → esm/ui/top-nav-items/nav-logo}/nav-logo.compiled.css +1 -1
- package/dist/esm/ui/top-nav-items/{nav-logo.js → nav-logo/nav-logo.js} +9 -34
- package/dist/esm/ui/top-nav-items/themed/get-custom-theme-styles.js +1 -1
- package/dist/types/entry-points/top-nav-items/index.d.ts +2 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/ui/top-nav-items/nav-logo/app-logo.d.ts +38 -0
- package/dist/types/ui/top-nav-items/nav-logo/logo-renderer.d.ts +14 -0
- package/dist/types/ui/top-nav-items/{nav-logo.d.ts → nav-logo/nav-logo.d.ts} +1 -1
- package/dist/types-ts4.5/entry-points/top-nav-items/index.d.ts +2 -1
- package/dist/types-ts4.5/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/top-nav-items/nav-logo/app-logo.d.ts +38 -0
- package/dist/types-ts4.5/ui/top-nav-items/nav-logo/logo-renderer.d.ts +14 -0
- package/dist/types-ts4.5/ui/top-nav-items/{nav-logo.d.ts → nav-logo/nav-logo.d.ts} +1 -1
- package/examples/top-nav-side-nav-collapsed.tsx +1 -1
- package/examples/top-nav-with-long-name.tsx +63 -0
- package/examples/top-nav-with-temp-nav-app-icon.tsx +5 -5
- package/examples/top-navigation-stress.tsx +15 -12
- package/examples/top-navigation-theming-with-picker.tsx +17 -8
- package/examples/top-navigation-theming.tsx +16 -6
- package/examples/top-navigation.tsx +17 -7
- package/package.json +1 -1
- package/src/entry-points/top-nav-items/index.tsx +2 -1
- package/src/index.tsx +2 -1
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-lg---with-min-widths--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-lg--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-md---with-min-widths--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-md--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-sm---with-min-widths--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-sm--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xl---with-min-widths--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xl--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xs---with-min-widths--firefox.png +0 -0
- package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xs--firefox.png +0 -0
- package/src/ui/page-layout/side-nav/toggle-button.tsx +1 -9
- package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/long-product-name-tooltip--default.png +0 -0
- package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover---custom-theming--desktop.png +0 -0
- package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover--desktop.png +0 -0
- package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed---custom-theming--desktop.png +0 -0
- package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed---custom-theming--mobile.png +0 -0
- package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed--desktop.png +0 -0
- package/src/ui/top-nav-items/__tests__/informational-vr-tests/top-navigation.vr.tsx +18 -0
- package/src/ui/top-nav-items/__tests__/unit/top-nav-items.test.tsx +1 -1
- package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/theming-is-enabled--desktop--platform-team25-app-icon-tiles-true.png +0 -0
- package/src/ui/top-nav-items/__tests__/vr-tests/__snapshots__/top-navigation/top-navigation-example--desktop--platform-team25-app-icon-tiles-true.png +0 -0
- package/src/ui/top-nav-items/nav-logo/app-logo.tsx +213 -0
- package/src/ui/top-nav-items/nav-logo/logo-renderer.tsx +53 -0
- package/src/ui/top-nav-items/{nav-logo.tsx → nav-logo/nav-logo.tsx} +12 -43
- package/src/ui/top-nav-items/themed/get-custom-theme-styles.tsx +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @jsxRuntime classic
|
|
3
3
|
* @jsx jsx
|
|
4
4
|
*/
|
|
5
|
-
import React, {
|
|
5
|
+
import React, { useEffect, useRef } from 'react';
|
|
6
6
|
|
|
7
7
|
import { cssMap, cx, jsx } from '@compiled/react';
|
|
8
8
|
|
|
@@ -15,7 +15,9 @@ import type {
|
|
|
15
15
|
} from '@atlaskit/temp-nav-app-icons/types';
|
|
16
16
|
import { token } from '@atlaskit/tokens';
|
|
17
17
|
|
|
18
|
-
import { useHasCustomTheme } from '
|
|
18
|
+
import { useHasCustomTheme } from '../themed/has-custom-theme-context';
|
|
19
|
+
|
|
20
|
+
import { LogoRenderer } from './logo-renderer';
|
|
19
21
|
|
|
20
22
|
export const themedLogoIcon = '--ds-top-bar-logo-icon';
|
|
21
23
|
export const themedLogoText = '--ds-top-bar-logo-text';
|
|
@@ -27,14 +29,15 @@ const anchorStyles = cssMap({
|
|
|
27
29
|
height: '32px',
|
|
28
30
|
borderRadius: token('border.radius.100'),
|
|
29
31
|
},
|
|
30
|
-
|
|
31
|
-
borderRadius: '
|
|
32
|
+
customLogoBorderRadius: {
|
|
33
|
+
borderRadius: '3px',
|
|
32
34
|
},
|
|
33
35
|
newMargin: {
|
|
34
36
|
// Additional margin is added to the left of the interactive element, to create visual alignment
|
|
35
37
|
// with the app tile icon and the other icon buttons that use normal (non-tile) icons.
|
|
36
38
|
marginInlineStart: token('space.050'),
|
|
37
39
|
},
|
|
40
|
+
// This is the same between app-logo and nav-logo
|
|
38
41
|
newInteractionStates: {
|
|
39
42
|
'&:hover': {
|
|
40
43
|
backgroundColor: token('color.background.neutral.subtle.hovered'),
|
|
@@ -82,7 +85,6 @@ const sharedIconOrLogoContainerStyles = cssMap({
|
|
|
82
85
|
},
|
|
83
86
|
},
|
|
84
87
|
appIconTilePaddingFlagged: {
|
|
85
|
-
// Used when fg('platform-team25-app-icon-tiles') is enabled
|
|
86
88
|
paddingInline: token('space.050'),
|
|
87
89
|
},
|
|
88
90
|
});
|
|
@@ -132,7 +134,7 @@ const logoContainerStyles = cssMap({
|
|
|
132
134
|
/**
|
|
133
135
|
* __Nav logo__
|
|
134
136
|
*
|
|
135
|
-
*
|
|
137
|
+
* Custom image logo for the top navigation.
|
|
136
138
|
*
|
|
137
139
|
* To provide a responsive experience, it requires both a logo and an icon component.
|
|
138
140
|
* The logo component will be used for large viewports, and the icon component will be used for small viewports.
|
|
@@ -219,8 +221,9 @@ export const NavLogo = ({
|
|
|
219
221
|
// eslint-disable-next-line @compiled/no-suppress-xcss
|
|
220
222
|
xcss={cx(
|
|
221
223
|
anchorStyles.root,
|
|
224
|
+
fg('platform_design_system_nav_logo_interaction_states') &&
|
|
225
|
+
anchorStyles.customLogoBorderRadius,
|
|
222
226
|
fg('platform_design_system_nav_logo_interaction_states') && anchorStyles.newMargin,
|
|
223
|
-
fg('platform_design_system_nav_logo_interaction_states') && anchorStyles.newBorderRadius,
|
|
224
227
|
fg('platform_design_system_nav_logo_interaction_states') &&
|
|
225
228
|
(hasCustomTheme
|
|
226
229
|
? anchorStyles.newInteractionStatesCustomTheming
|
|
@@ -236,7 +239,7 @@ export const NavLogo = ({
|
|
|
236
239
|
sharedIconOrLogoContainerStyles.appIconTilePaddingFlagged,
|
|
237
240
|
]}
|
|
238
241
|
>
|
|
239
|
-
<
|
|
242
|
+
<LogoRenderer logoOrIcon={icon} />
|
|
240
243
|
</div>
|
|
241
244
|
<div
|
|
242
245
|
css={[
|
|
@@ -246,42 +249,8 @@ export const NavLogo = ({
|
|
|
246
249
|
sharedIconOrLogoContainerStyles.appIconTilePaddingFlagged,
|
|
247
250
|
]}
|
|
248
251
|
>
|
|
249
|
-
<
|
|
252
|
+
<LogoRenderer logoOrIcon={logo} />
|
|
250
253
|
</div>
|
|
251
254
|
</Anchor>
|
|
252
255
|
);
|
|
253
256
|
};
|
|
254
|
-
|
|
255
|
-
function NavLogoRenderer({ logoOrIcon }: React.ComponentProps<typeof NavLogoRendererNoMemo>) {
|
|
256
|
-
return fg('jiv-20710-fix-nav-rerender') ? (
|
|
257
|
-
<NavLogoRendererMemo logoOrIcon={logoOrIcon} />
|
|
258
|
-
) : (
|
|
259
|
-
<NavLogoRendererNoMemo logoOrIcon={logoOrIcon} />
|
|
260
|
-
);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
const NavLogoRendererMemo = memo(NavLogoRendererNoMemo);
|
|
264
|
-
|
|
265
|
-
function NavLogoRendererNoMemo({
|
|
266
|
-
logoOrIcon: LogoOrIcon,
|
|
267
|
-
}: {
|
|
268
|
-
logoOrIcon:
|
|
269
|
-
| ((props: LogoProps) => JSX.Element)
|
|
270
|
-
| ((props: TempLogoProps) => JSX.Element)
|
|
271
|
-
| ((props: TempIconProps) => JSX.Element);
|
|
272
|
-
}) {
|
|
273
|
-
const hasCustomTheme = useHasCustomTheme();
|
|
274
|
-
|
|
275
|
-
if (hasCustomTheme) {
|
|
276
|
-
return (
|
|
277
|
-
<LogoOrIcon
|
|
278
|
-
size="small"
|
|
279
|
-
label=""
|
|
280
|
-
iconColor={`var(${themedLogoIcon})`}
|
|
281
|
-
textColor={`var(${themedLogoText})`}
|
|
282
|
-
/>
|
|
283
|
-
);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
return <LogoOrIcon size="small" label="" appearance="brand" />;
|
|
287
|
-
}
|