@atlaskit/navigation-system 5.17.0 → 5.18.1

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 (36) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/ui/page-layout/constants.js +8 -2
  3. package/dist/cjs/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +20 -50
  4. package/dist/cjs/ui/page-layout/side-nav/side-nav.js +7 -0
  5. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.compiled.css +1 -1
  6. package/dist/cjs/ui/page-layout/top-nav/top-nav-end.js +18 -11
  7. package/dist/cjs/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  8. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.compiled.css +1 -1
  9. package/dist/cjs/ui/page-layout/top-nav/top-nav-start.js +7 -5
  10. package/dist/cjs/ui/page-layout/top-nav/top-nav.js +14 -33
  11. package/dist/cjs/ui/page-layout/use-open-layer-count.js +59 -0
  12. package/dist/es2019/ui/page-layout/constants.js +7 -1
  13. package/dist/es2019/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +23 -48
  14. package/dist/es2019/ui/page-layout/side-nav/side-nav.js +7 -0
  15. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.compiled.css +1 -1
  16. package/dist/es2019/ui/page-layout/top-nav/top-nav-end.js +13 -5
  17. package/dist/es2019/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  18. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.compiled.css +1 -1
  19. package/dist/es2019/ui/page-layout/top-nav/top-nav-start.js +8 -6
  20. package/dist/es2019/ui/page-layout/top-nav/top-nav.js +17 -31
  21. package/dist/es2019/ui/page-layout/use-open-layer-count.js +44 -0
  22. package/dist/esm/ui/page-layout/constants.js +7 -1
  23. package/dist/esm/ui/page-layout/panel-splitter/side-nav-panel-splitter.js +23 -52
  24. package/dist/esm/ui/page-layout/side-nav/side-nav.js +7 -0
  25. package/dist/esm/ui/page-layout/top-nav/top-nav-end.compiled.css +1 -1
  26. package/dist/esm/ui/page-layout/top-nav/top-nav-end.js +18 -11
  27. package/dist/esm/ui/page-layout/top-nav/top-nav-middle.js +5 -1
  28. package/dist/esm/ui/page-layout/top-nav/top-nav-start.compiled.css +1 -1
  29. package/dist/esm/ui/page-layout/top-nav/top-nav-start.js +8 -6
  30. package/dist/esm/ui/page-layout/top-nav/top-nav.js +17 -35
  31. package/dist/esm/ui/page-layout/use-open-layer-count.js +53 -0
  32. package/dist/types/ui/page-layout/constants.d.ts +3 -1
  33. package/dist/types/ui/page-layout/use-open-layer-count.d.ts +8 -0
  34. package/dist/types-ts4.5/ui/page-layout/constants.d.ts +3 -1
  35. package/dist/types-ts4.5/ui/page-layout/use-open-layer-count.d.ts +8 -0
  36. package/package.json +7 -7
@@ -0,0 +1,53 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useEffect, useState } from 'react';
3
+ import { useOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
4
+ import { fg } from '@atlaskit/platform-feature-flags';
5
+ import { useIsFhsEnabled } from '../fhs-rollout/use-is-fhs-enabled';
6
+
7
+ /**
8
+ * Returns whether there are any open layers across the specified namespaces, optionally filtered by type.
9
+ */
10
+ export function useHasOpenLayers(_ref) {
11
+ var namespaces = _ref.namespaces,
12
+ type = _ref.type;
13
+ var isFhsEnabled = useIsFhsEnabled();
14
+ var openLayerObserver = useOpenLayerObserver();
15
+ // Setting the initial state to false, as it is unlikely that there would be any open layers when the app starts.
16
+ var _useState = useState(false),
17
+ _useState2 = _slicedToArray(_useState, 2),
18
+ hasOpenLayers = _useState2[0],
19
+ setHasOpenLayers = _useState2[1];
20
+ useEffect(function () {
21
+ if (!openLayerObserver || !isFhsEnabled || !fg('platform-dst-side-nav-layering-fixes')) {
22
+ return;
23
+ }
24
+ function updateState() {
25
+ if (!openLayerObserver) {
26
+ return;
27
+ }
28
+ var hasAnyOpenLayers = namespaces.some(function (namespace) {
29
+ return openLayerObserver.getCount({
30
+ namespace: namespace,
31
+ type: type
32
+ }) > 0;
33
+ });
34
+ setHasOpenLayers(hasAnyOpenLayers);
35
+ }
36
+
37
+ // Initial check
38
+ updateState();
39
+
40
+ // Subscribe to each namespace
41
+ var cleanups = namespaces.map(function (namespace) {
42
+ return openLayerObserver.onChange(updateState, {
43
+ namespace: namespace
44
+ });
45
+ });
46
+ return function cleanupHook() {
47
+ cleanups.forEach(function (cleanup) {
48
+ return cleanup();
49
+ });
50
+ };
51
+ }, [isFhsEnabled, openLayerObserver, namespaces, type]);
52
+ return hasOpenLayers;
53
+ }
@@ -42,7 +42,9 @@ export declare const localSlotLayers: {
42
42
  panelSmallViewports: number;
43
43
  };
44
44
  export declare const openLayerObserverSideNavNamespace = "side-nav";
45
- export declare const openLayerObserverTopNavNamespace = "top-nav";
45
+ export declare const openLayerObserverTopNavStartNamespace = "top-nav-start";
46
+ export declare const openLayerObserverTopNavMiddleNamespace = "top-nav-middle";
47
+ export declare const openLayerObserverTopNavEndNamespace = "top-nav-end";
46
48
  /**
47
49
  * CSS scroll timeline variable for the side nav content scroll indicator.
48
50
  * The scroll timeline is created in SideNavContent, and then used by TopNavStart to apply the scroll indicator line.
@@ -0,0 +1,8 @@
1
+ import { type LayerType } from '@atlaskit/layering/experimental/open-layer-observer';
2
+ /**
3
+ * Returns whether there are any open layers across the specified namespaces, optionally filtered by type.
4
+ */
5
+ export declare function useHasOpenLayers({ namespaces, type, }: {
6
+ namespaces: string[];
7
+ type?: LayerType;
8
+ }): boolean;
@@ -42,7 +42,9 @@ export declare const localSlotLayers: {
42
42
  panelSmallViewports: number;
43
43
  };
44
44
  export declare const openLayerObserverSideNavNamespace = "side-nav";
45
- export declare const openLayerObserverTopNavNamespace = "top-nav";
45
+ export declare const openLayerObserverTopNavStartNamespace = "top-nav-start";
46
+ export declare const openLayerObserverTopNavMiddleNamespace = "top-nav-middle";
47
+ export declare const openLayerObserverTopNavEndNamespace = "top-nav-end";
46
48
  /**
47
49
  * CSS scroll timeline variable for the side nav content scroll indicator.
48
50
  * The scroll timeline is created in SideNavContent, and then used by TopNavStart to apply the scroll indicator line.
@@ -0,0 +1,8 @@
1
+ import { type LayerType } from '@atlaskit/layering/experimental/open-layer-observer';
2
+ /**
3
+ * Returns whether there are any open layers across the specified namespaces, optionally filtered by type.
4
+ */
5
+ export declare function useHasOpenLayers({ namespaces, type, }: {
6
+ namespaces: string[];
7
+ type?: LayerType;
8
+ }): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/navigation-system",
3
- "version": "5.17.0",
3
+ "version": "5.18.1",
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",
@@ -73,15 +73,15 @@
73
73
  "@atlaskit/ds-lib": "^5.3.0",
74
74
  "@atlaskit/heading": "^5.2.0",
75
75
  "@atlaskit/icon": "^29.3.0",
76
- "@atlaskit/layering": "^3.5.0",
76
+ "@atlaskit/layering": "^3.6.0",
77
77
  "@atlaskit/logo": "^19.9.0",
78
78
  "@atlaskit/platform-feature-flags": "^1.1.0",
79
- "@atlaskit/popup": "^4.11.0",
79
+ "@atlaskit/popup": "^4.12.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",
83
83
  "@atlaskit/primitives": "^17.0.0",
84
- "@atlaskit/tokens": "^9.0.0",
84
+ "@atlaskit/tokens": "^9.1.0",
85
85
  "@atlaskit/tooltip": "^20.11.0",
86
86
  "@atlaskit/visually-hidden": "^3.0.0",
87
87
  "@babel/runtime": "^7.0.0",
@@ -148,6 +148,9 @@
148
148
  }
149
149
  },
150
150
  "platform-feature-flags": {
151
+ "platform_dst_nav4_side_nav_resize_tooltip_feedback": {
152
+ "type": "boolean"
153
+ },
151
154
  "platform_dst_nav4_fhs_instrumentation_1": {
152
155
  "type": "boolean"
153
156
  },
@@ -173,9 +176,6 @@
173
176
  "navx-full-height-sidebar": {
174
177
  "type": "boolean"
175
178
  },
176
- "team25-eu-jira-logo-updates-csm-jsm": {
177
- "type": "boolean"
178
- },
179
179
  "platform_themed_button_use_icon_renderer": {
180
180
  "type": "boolean"
181
181
  },