@atlaskit/top-layer 5.0.4 → 5.1.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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/top-layer
2
2
 
3
+ ## 5.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`38dbf5a2b937f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/38dbf5a2b937f) -
8
+ Use a manual popover for Select's built-in menu on the platform-dst-top-layer path so input and
9
+ menu interactions do not dismiss it. The menu owns Escape dismissal even when focus is outside
10
+ Select, and leaves already-cancelled Escape events alone. Custom menu portals retain ownership of
11
+ their dismissal. DatePicker defers top-layer Escape dismissal to Select, then restores focus after
12
+ the menu closes so an enclosing popup remains open.
13
+
14
+ Add `additionalInsideElementRefs` to Select and `useSimpleLightDismiss` so detached controls can
15
+ participate in a menu's light-dismiss boundary.
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies
20
+
3
21
  ## 5.0.4
4
22
 
5
23
  ### Patch Changes
@@ -92,21 +92,21 @@ var popupMotionStyles = {
92
92
  block: {
93
93
  start: {
94
94
  '--ds-popover-motion-enter': "var(--ds-popup-enter-top, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInTop8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
95
- '--ds-popover-motion-exit': "var(--ds-popup-exit-top, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutTop8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
95
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-top, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutTop4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
96
96
  },
97
97
  end: {
98
98
  '--ds-popover-motion-enter': "var(--ds-popup-enter-bottom, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInBottom8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
99
- '--ds-popover-motion-exit': "var(--ds-popup-exit-bottom, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutBottom8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
99
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-bottom, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutBottom4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
100
100
  }
101
101
  },
102
102
  inline: {
103
103
  start: {
104
104
  '--ds-popover-motion-enter': "var(--ds-popup-enter-left, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInLeft8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
105
- '--ds-popover-motion-exit': "var(--ds-popup-exit-left, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutLeft8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
105
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-left, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutLeft4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
106
106
  },
107
107
  end: {
108
108
  '--ds-popover-motion-enter': "var(--ds-popup-enter-right, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInRight8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
109
- '--ds-popover-motion-exit': "var(--ds-popup-exit-right, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutRight8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
109
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-right, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutRight4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
110
110
  }
111
111
  }
112
112
  };
@@ -24,6 +24,7 @@ var _bindEventListener = require("bind-event-listener");
24
24
  */
25
25
  function useSimpleLightDismiss(_ref) {
26
26
  var popoverRef = _ref.popoverRef,
27
+ additionalInsideElementRefs = _ref.additionalInsideElementRefs,
27
28
  isOpen = _ref.isOpen,
28
29
  onClose = _ref.onClose;
29
30
  // Keep a stable ref to onClose so the effect does not re-bind on every render.
@@ -38,11 +39,16 @@ function useSimpleLightDismiss(_ref) {
38
39
  var unbindEscape = (0, _bindEventListener.bind)(document, {
39
40
  type: 'keydown',
40
41
  listener: function listener(event) {
41
- if (event.key === 'Escape') {
42
- onCloseRef.current({
43
- reason: 'escape'
44
- });
42
+ if (event.key !== 'Escape' || event.defaultPrevented) {
43
+ return;
45
44
  }
45
+
46
+ // Preserve JavaScript bubbling while preventing a native/manual
47
+ // popover ancestor from also handling this Escape key.
48
+ event.preventDefault();
49
+ onCloseRef.current({
50
+ reason: 'escape'
51
+ });
46
52
  }
47
53
  });
48
54
 
@@ -60,12 +66,16 @@ function useSimpleLightDismiss(_ref) {
60
66
  type: 'click',
61
67
  listener: function listener(event) {
62
68
  var element = popoverRef.current;
63
- if (!element) {
69
+ var target = event.target;
70
+ if (!element || !(target instanceof Node)) {
64
71
  return;
65
72
  }
66
73
 
67
- // If the click target is inside the popover, do not dismiss.
68
- if (event.target instanceof Node && element.contains(event.target)) {
74
+ // Clicks inside the popover or its additional inside elements do not dismiss it.
75
+ if (element.contains(target) || additionalInsideElementRefs !== null && additionalInsideElementRefs !== void 0 && additionalInsideElementRefs.some(function (insideElementRef) {
76
+ var _insideElementRef$cur;
77
+ return (_insideElementRef$cur = insideElementRef.current) === null || _insideElementRef$cur === void 0 ? void 0 : _insideElementRef$cur.contains(target);
78
+ })) {
69
79
  return;
70
80
  }
71
81
  onCloseRef.current({
@@ -80,5 +90,5 @@ function useSimpleLightDismiss(_ref) {
80
90
  unbindEscape();
81
91
  unbindClickOutside();
82
92
  };
83
- }, [isOpen, popoverRef]);
93
+ }, [additionalInsideElementRefs, isOpen, popoverRef]);
84
94
  }
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { createCloseEvent } from './create-close-event';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { OpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer/open-layer-observer';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { fromLegacyPlacement } from '../placement-map';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { useArrowNavigation } from '../use-arrow-navigation/use-arrow-navigation';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { Popover } from './popover';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -86,21 +86,21 @@ const popupMotionStyles = {
86
86
  block: {
87
87
  start: {
88
88
  '--ds-popover-motion-enter': "var(--ds-popup-enter-top, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInTop8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
89
- '--ds-popover-motion-exit': "var(--ds-popup-exit-top, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutTop8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
89
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-top, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutTop4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
90
90
  },
91
91
  end: {
92
92
  '--ds-popover-motion-enter': "var(--ds-popup-enter-bottom, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInBottom8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
93
- '--ds-popover-motion-exit': "var(--ds-popup-exit-bottom, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutBottom8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
93
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-bottom, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutBottom4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
94
94
  }
95
95
  },
96
96
  inline: {
97
97
  start: {
98
98
  '--ds-popover-motion-enter': "var(--ds-popup-enter-left, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInLeft8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
99
- '--ds-popover-motion-exit': "var(--ds-popup-exit-left, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutLeft8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
99
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-left, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutLeft4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
100
100
  },
101
101
  end: {
102
102
  '--ds-popover-motion-enter': "var(--ds-popup-enter-right, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInRight8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
103
- '--ds-popover-motion-exit': "var(--ds-popup-exit-right, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutRight8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
103
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-right, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutRight4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
104
104
  }
105
105
  }
106
106
  };
@@ -18,6 +18,7 @@ import { bind } from 'bind-event-listener';
18
18
  */
19
19
  export function useSimpleLightDismiss({
20
20
  popoverRef,
21
+ additionalInsideElementRefs,
21
22
  isOpen,
22
23
  onClose
23
24
  }) {
@@ -33,11 +34,16 @@ export function useSimpleLightDismiss({
33
34
  const unbindEscape = bind(document, {
34
35
  type: 'keydown',
35
36
  listener: event => {
36
- if (event.key === 'Escape') {
37
- onCloseRef.current({
38
- reason: 'escape'
39
- });
37
+ if (event.key !== 'Escape' || event.defaultPrevented) {
38
+ return;
40
39
  }
40
+
41
+ // Preserve JavaScript bubbling while preventing a native/manual
42
+ // popover ancestor from also handling this Escape key.
43
+ event.preventDefault();
44
+ onCloseRef.current({
45
+ reason: 'escape'
46
+ });
41
47
  }
42
48
  });
43
49
 
@@ -55,12 +61,16 @@ export function useSimpleLightDismiss({
55
61
  type: 'click',
56
62
  listener: event => {
57
63
  const element = popoverRef.current;
58
- if (!element) {
64
+ const target = event.target;
65
+ if (!element || !(target instanceof Node)) {
59
66
  return;
60
67
  }
61
68
 
62
- // If the click target is inside the popover, do not dismiss.
63
- if (event.target instanceof Node && element.contains(event.target)) {
69
+ // Clicks inside the popover or its additional inside elements do not dismiss it.
70
+ if (element.contains(target) || additionalInsideElementRefs !== null && additionalInsideElementRefs !== void 0 && additionalInsideElementRefs.some(insideElementRef => {
71
+ var _insideElementRef$cur;
72
+ return (_insideElementRef$cur = insideElementRef.current) === null || _insideElementRef$cur === void 0 ? void 0 : _insideElementRef$cur.contains(target);
73
+ })) {
64
74
  return;
65
75
  }
66
76
  onCloseRef.current({
@@ -75,5 +85,5 @@ export function useSimpleLightDismiss({
75
85
  unbindEscape();
76
86
  unbindClickOutside();
77
87
  };
78
- }, [isOpen, popoverRef]);
88
+ }, [additionalInsideElementRefs, isOpen, popoverRef]);
79
89
  }
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { createCloseEvent } from './create-close-event';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { OpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer/open-layer-observer';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { fromLegacyPlacement } from '../placement-map';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { useArrowNavigation } from '../use-arrow-navigation/use-arrow-navigation';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Import from the generated per-export subpath instead.
4
4
  */
5
+
5
6
  export { Popover } from './popover';
6
7
  /**
7
8
  * @deprecated Import from the generated per-export subpath instead.
@@ -83,21 +83,21 @@ var popupMotionStyles = {
83
83
  block: {
84
84
  start: {
85
85
  '--ds-popover-motion-enter': "var(--ds-popup-enter-top, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInTop8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
86
- '--ds-popover-motion-exit': "var(--ds-popup-exit-top, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutTop8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
86
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-top, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutTop4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
87
87
  },
88
88
  end: {
89
89
  '--ds-popover-motion-enter': "var(--ds-popup-enter-bottom, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInBottom8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
90
- '--ds-popover-motion-exit': "var(--ds-popup-exit-bottom, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutBottom8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
90
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-bottom, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutBottom4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
91
91
  }
92
92
  },
93
93
  inline: {
94
94
  start: {
95
95
  '--ds-popover-motion-enter': "var(--ds-popup-enter-left, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInLeft8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
96
- '--ds-popover-motion-exit': "var(--ds-popup-exit-left, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutLeft8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
96
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-left, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutLeft4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
97
97
  },
98
98
  end: {
99
99
  '--ds-popover-motion-enter': "var(--ds-popup-enter-right, 150ms cubic-bezier(0.4, 1, 0.6, 1) SlideInRight8px, 150ms cubic-bezier(0.4, 1, 0.6, 1) FadeIn0to100)",
100
- '--ds-popover-motion-exit': "var(--ds-popup-exit-right, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutRight8px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
100
+ '--ds-popover-motion-exit': "var(--ds-popup-exit-right, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) SlideOutRight4px, 100ms cubic-bezier(0.6, 0, 0.8, 0.6) FadeOut100to0)"
101
101
  }
102
102
  }
103
103
  };
@@ -18,6 +18,7 @@ import { bind } from 'bind-event-listener';
18
18
  */
19
19
  export function useSimpleLightDismiss(_ref) {
20
20
  var popoverRef = _ref.popoverRef,
21
+ additionalInsideElementRefs = _ref.additionalInsideElementRefs,
21
22
  isOpen = _ref.isOpen,
22
23
  onClose = _ref.onClose;
23
24
  // Keep a stable ref to onClose so the effect does not re-bind on every render.
@@ -32,11 +33,16 @@ export function useSimpleLightDismiss(_ref) {
32
33
  var unbindEscape = bind(document, {
33
34
  type: 'keydown',
34
35
  listener: function listener(event) {
35
- if (event.key === 'Escape') {
36
- onCloseRef.current({
37
- reason: 'escape'
38
- });
36
+ if (event.key !== 'Escape' || event.defaultPrevented) {
37
+ return;
39
38
  }
39
+
40
+ // Preserve JavaScript bubbling while preventing a native/manual
41
+ // popover ancestor from also handling this Escape key.
42
+ event.preventDefault();
43
+ onCloseRef.current({
44
+ reason: 'escape'
45
+ });
40
46
  }
41
47
  });
42
48
 
@@ -54,12 +60,16 @@ export function useSimpleLightDismiss(_ref) {
54
60
  type: 'click',
55
61
  listener: function listener(event) {
56
62
  var element = popoverRef.current;
57
- if (!element) {
63
+ var target = event.target;
64
+ if (!element || !(target instanceof Node)) {
58
65
  return;
59
66
  }
60
67
 
61
- // If the click target is inside the popover, do not dismiss.
62
- if (event.target instanceof Node && element.contains(event.target)) {
68
+ // Clicks inside the popover or its additional inside elements do not dismiss it.
69
+ if (element.contains(target) || additionalInsideElementRefs !== null && additionalInsideElementRefs !== void 0 && additionalInsideElementRefs.some(function (insideElementRef) {
70
+ var _insideElementRef$cur;
71
+ return (_insideElementRef$cur = insideElementRef.current) === null || _insideElementRef$cur === void 0 ? void 0 : _insideElementRef$cur.contains(target);
72
+ })) {
63
73
  return;
64
74
  }
65
75
  onCloseRef.current({
@@ -74,5 +84,5 @@ export function useSimpleLightDismiss(_ref) {
74
84
  unbindEscape();
75
85
  unbindClickOutside();
76
86
  };
77
- }, [isOpen, popoverRef]);
87
+ }, [additionalInsideElementRefs, isOpen, popoverRef]);
78
88
  }
@@ -5,6 +5,11 @@ type TUseSimpleLightDismissOptions = {
5
5
  * Ref to the popover element. Clicks inside this element will not trigger dismiss.
6
6
  */
7
7
  popoverRef: RefObject<HTMLElement | null>;
8
+ /**
9
+ * Optional element refs outside the popover that are still part of its
10
+ * dismissal boundary. Clicks inside these elements will not trigger dismiss.
11
+ */
12
+ additionalInsideElementRefs?: readonly RefObject<HTMLElement | null>[];
8
13
  /**
9
14
  * Whether the popover is currently open.
10
15
  * Listeners are only bound when `isOpen` is `true`.
@@ -41,5 +46,5 @@ type TUseSimpleLightDismissOptions = {
41
46
  * `popover="auto"` mode instead, which provides native stack-aware
42
47
  * light dismiss via the browser's top-layer stack.
43
48
  */
44
- export declare function useSimpleLightDismiss({ popoverRef, isOpen, onClose, }: TUseSimpleLightDismissOptions): void;
49
+ export declare function useSimpleLightDismiss({ popoverRef, additionalInsideElementRefs, isOpen, onClose, }: TUseSimpleLightDismissOptions): void;
45
50
  export type { TUseSimpleLightDismissOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/top-layer",
3
- "version": "5.0.4",
3
+ "version": "5.1.0",
4
4
  "description": "Low-level layering primitives based on popover and dialog",
5
5
  "homepage": "https://atlassian.design/components/top-layer",
6
6
  "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
@@ -40,7 +40,7 @@
40
40
  "@atlaskit/ds-lib": "^8.0.0",
41
41
  "@atlaskit/layering": "^5.2.0",
42
42
  "@atlaskit/react-compiler-gating": "^0.2.0",
43
- "@atlaskit/tokens": "^18.0.0",
43
+ "@atlaskit/tokens": "^19.0.0",
44
44
  "@babel/runtime": "^7.0.0",
45
45
  "@compiled/react": "^1.0.2",
46
46
  "bind-event-listener": "^3.0.0",
@@ -53,7 +53,7 @@
53
53
  "devDependencies": {
54
54
  "@af/integration-testing": "workspace:^",
55
55
  "@af/visual-regression": "workspace:^",
56
- "@atlaskit/button": "^25.3.0",
56
+ "@atlaskit/button": "^25.4.0",
57
57
  "@atlaskit/checkbox": "^19.2.0",
58
58
  "@atlaskit/heading": "^7.2.0",
59
59
  "@atlaskit/lozenge": "^15.4.0",