@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.
Files changed (71) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/afm-volt/tsconfig.json +75 -0
  3. package/dist/cjs/entry-points/top-nav-items/index.js +8 -1
  4. package/dist/cjs/index.js +8 -1
  5. package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.compiled.css +24 -0
  6. package/dist/cjs/ui/top-nav-items/nav-logo/app-logo.js +104 -0
  7. package/dist/cjs/ui/top-nav-items/nav-logo/logo-renderer.js +42 -0
  8. package/dist/cjs/ui/top-nav-items/{nav-logo.compiled.css → nav-logo/nav-logo.compiled.css} +1 -1
  9. package/dist/cjs/ui/top-nav-items/{nav-logo.js → nav-logo/nav-logo.js} +8 -33
  10. package/dist/cjs/ui/top-nav-items/themed/get-custom-theme-styles.js +1 -1
  11. package/dist/es2019/entry-points/top-nav-items/index.js +2 -1
  12. package/dist/es2019/index.js +2 -1
  13. package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.compiled.css +24 -0
  14. package/dist/es2019/ui/top-nav-items/nav-logo/app-logo.js +94 -0
  15. package/dist/es2019/ui/top-nav-items/nav-logo/logo-renderer.js +35 -0
  16. package/dist/{esm/ui/top-nav-items → es2019/ui/top-nav-items/nav-logo}/nav-logo.compiled.css +1 -1
  17. package/dist/es2019/ui/top-nav-items/{nav-logo.js → nav-logo/nav-logo.js} +9 -36
  18. package/dist/es2019/ui/top-nav-items/themed/get-custom-theme-styles.js +1 -1
  19. package/dist/esm/entry-points/top-nav-items/index.js +2 -1
  20. package/dist/esm/index.js +2 -1
  21. package/dist/esm/ui/top-nav-items/nav-logo/app-logo.compiled.css +24 -0
  22. package/dist/esm/ui/top-nav-items/nav-logo/app-logo.js +95 -0
  23. package/dist/esm/ui/top-nav-items/nav-logo/logo-renderer.js +33 -0
  24. package/dist/{es2019/ui/top-nav-items → esm/ui/top-nav-items/nav-logo}/nav-logo.compiled.css +1 -1
  25. package/dist/esm/ui/top-nav-items/{nav-logo.js → nav-logo/nav-logo.js} +9 -34
  26. package/dist/esm/ui/top-nav-items/themed/get-custom-theme-styles.js +1 -1
  27. package/dist/types/entry-points/top-nav-items/index.d.ts +2 -1
  28. package/dist/types/index.d.ts +2 -1
  29. package/dist/types/ui/top-nav-items/nav-logo/app-logo.d.ts +38 -0
  30. package/dist/types/ui/top-nav-items/nav-logo/logo-renderer.d.ts +14 -0
  31. package/dist/types/ui/top-nav-items/{nav-logo.d.ts → nav-logo/nav-logo.d.ts} +1 -1
  32. package/dist/types-ts4.5/entry-points/top-nav-items/index.d.ts +2 -1
  33. package/dist/types-ts4.5/index.d.ts +2 -1
  34. package/dist/types-ts4.5/ui/top-nav-items/nav-logo/app-logo.d.ts +38 -0
  35. package/dist/types-ts4.5/ui/top-nav-items/nav-logo/logo-renderer.d.ts +14 -0
  36. package/dist/types-ts4.5/ui/top-nav-items/{nav-logo.d.ts → nav-logo/nav-logo.d.ts} +1 -1
  37. package/examples/top-nav-side-nav-collapsed.tsx +1 -1
  38. package/examples/top-nav-with-long-name.tsx +63 -0
  39. package/examples/top-nav-with-temp-nav-app-icon.tsx +5 -5
  40. package/examples/top-navigation-stress.tsx +15 -12
  41. package/examples/top-navigation-theming-with-picker.tsx +17 -8
  42. package/examples/top-navigation-theming.tsx +16 -6
  43. package/examples/top-navigation.tsx +17 -7
  44. package/package.json +1 -1
  45. package/src/entry-points/top-nav-items/index.tsx +2 -1
  46. package/src/index.tsx +2 -1
  47. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-lg---with-min-widths--firefox.png +0 -0
  48. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-lg--firefox.png +0 -0
  49. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-md---with-min-widths--firefox.png +0 -0
  50. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-md--firefox.png +0 -0
  51. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-sm---with-min-widths--firefox.png +0 -0
  52. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-sm--firefox.png +0 -0
  53. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xl---with-min-widths--firefox.png +0 -0
  54. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xl--firefox.png +0 -0
  55. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xs---with-min-widths--firefox.png +0 -0
  56. package/src/ui/page-layout/__tests__/informational-vr-tests/__snapshots__/top-nav/breakpoint-xs--firefox.png +0 -0
  57. package/src/ui/page-layout/side-nav/toggle-button.tsx +1 -9
  58. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/long-product-name-tooltip--default.png +0 -0
  59. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover---custom-theming--desktop.png +0 -0
  60. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-hover--desktop.png +0 -0
  61. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed---custom-theming--desktop.png +0 -0
  62. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed---custom-theming--mobile.png +0 -0
  63. package/src/ui/top-nav-items/__tests__/informational-vr-tests/__snapshots__/top-navigation/nav-logo-pressed--desktop.png +0 -0
  64. package/src/ui/top-nav-items/__tests__/informational-vr-tests/top-navigation.vr.tsx +18 -0
  65. package/src/ui/top-nav-items/__tests__/unit/top-nav-items.test.tsx +1 -1
  66. 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
  67. 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
  68. package/src/ui/top-nav-items/nav-logo/app-logo.tsx +213 -0
  69. package/src/ui/top-nav-items/nav-logo/logo-renderer.tsx +53 -0
  70. package/src/ui/top-nav-items/{nav-logo.tsx → nav-logo/nav-logo.tsx} +12 -43
  71. 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, { memo, useEffect, useRef } from '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 './themed/has-custom-theme-context';
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
- newBorderRadius: {
31
- borderRadius: '8px',
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
- * The product logo for the top navigation.
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
- <NavLogoRenderer logoOrIcon={icon} />
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
- <NavLogoRenderer logoOrIcon={logo} />
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
- }
@@ -1,6 +1,6 @@
1
1
  import type React from 'react';
2
2
 
3
- import { themedLogoIcon, themedLogoText } from '../nav-logo';
3
+ import { themedLogoIcon, themedLogoText } from '../nav-logo/nav-logo';
4
4
 
5
5
  import {
6
6
  themedButtonBackground,