@atlaskit/popup 5.1.0 → 5.1.2

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/popup
2
2
 
3
+ ## 5.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`7793dc62dd564`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7793dc62dd564) -
8
+ Internal refactor of upcoming top-layer usage
9
+ - Updated dependencies
10
+
11
+ ## 5.1.1
12
+
13
+ ### Patch Changes
14
+
15
+ - [`662546a79c2bc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/662546a79c2bc) -
16
+ Guard the `update()` call in `RepositionOnUpdate` so it is only invoked when the Popper
17
+ render-prop `update` is a function. On Safari the Popper instance can be undefined when the layout
18
+ effect fires, which previously threw `TypeError: e.update is not a function` and left consumers
19
+ (such as the Jira status transition popup) stuck with an indefinite spinner.
20
+
3
21
  ## 5.1.0
4
22
 
5
23
  ### Minor Changes
package/compass.yml ADDED
@@ -0,0 +1,47 @@
1
+ configVersion: 1
2
+ id: ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:component/c5751cc6-3513-4070-9deb-af31e86aed34/80e5b53f-4a74-4009-bfc1-2c8685b672be
3
+ name: '@atlaskit/popup'
4
+ ownerId: ari:cloud:teams::team/814283d6-8695-4329-b2f8-d78b2645722f # Design System Team (ADS)
5
+ labels:
6
+ - platform-code
7
+ - platform-afm
8
+ typeId: OTHER
9
+ fields:
10
+ tier: 4
11
+ lifecycle: Active
12
+ isMonorepoProject: true
13
+ links:
14
+ - name: Root Repository
15
+ type: REPOSITORY
16
+ url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master
17
+ - name: Slack Channel
18
+ type: CHAT_CHANNEL
19
+ url: https://atlassian.enterprise.slack.com/archives/CFJ9DU39U # #help-design-system
20
+ - name: Popup
21
+ type: REPOSITORY
22
+ url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master/platform/packages/design-system/popup
23
+ customFields:
24
+ - name: Department
25
+ type: text
26
+ value: Eng - Design System Fundamentals
27
+ - name: Technical Owner
28
+ type: user
29
+ value: ari:cloud:identity::user/557058:86a9b692-7997-49cb-9984-080801b1de91 # Jared Crowe
30
+ - name: Reviewer Team
31
+ type: text
32
+ value: ari:cloud:teams::team/be19136e-6275-419f-be0c-fcee844b8684 # Design System Engineers
33
+ - name: Required Reviewers Opt In
34
+ type: boolean
35
+ value: true
36
+ - name: Reviewer Selection Mechanism
37
+ type: text
38
+ value: random(3)
39
+ - name: Required Reviewer Approvals
40
+ type: number
41
+ value: 1
42
+ - name: Trusted Committers
43
+ type: text
44
+ value: ari:cloud:teams::team/814283d6-8695-4329-b2f8-d78b2645722f # Design System Team (ADS)
45
+ - name: Trusted Reviewer Teams
46
+ type: text
47
+ value: ari:cloud:teams::team/42f4416b-e028-4daa-b2a5-afe213ac75e1 # Design System Designers
@@ -13,7 +13,6 @@ var React = _react;
13
13
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
14
14
  var _runtime = require("@compiled/react/runtime");
15
15
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
16
- var _animations = require("@atlaskit/top-layer/animations");
17
16
  var _placementMap = require("@atlaskit/top-layer/placement-map");
18
17
  var _popover = require("@atlaskit/top-layer/popover");
19
18
  var _popoverSurface = require("@atlaskit/top-layer/popover-surface");
@@ -23,7 +22,6 @@ var _topLayerBridge = require("../internal/top-layer-bridge");
23
22
  var _triggerRefObjectContext = require("./trigger-ref-object-context");
24
23
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
25
24
  var overflowAutoStyles = null;
26
- var animation = (0, _animations.popupMotion)();
27
25
 
28
26
  // Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
29
27
  var EMPTY_STYLE = {};
@@ -189,7 +187,7 @@ function PopupContentTopLayer(_ref) {
189
187
  ref: popoverRef
190
188
  }, roleProps, {
191
189
  isOpen: isOpen,
192
- animate: animation,
190
+ animate: true,
193
191
  placement: topLayerPlacement,
194
192
  onClose: handleOnClose,
195
193
  testId: testId && "".concat(testId, "--content")
@@ -13,7 +13,6 @@ var React = _react;
13
13
  var _runtime = require("@compiled/react/runtime");
14
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
15
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
16
- var _animations = require("@atlaskit/top-layer/animations");
17
16
  var _getAriaForTrigger = require("@atlaskit/top-layer/get-aria-for-trigger");
18
17
  var _placementMap = require("@atlaskit/top-layer/placement-map");
19
18
  var _popover = require("@atlaskit/top-layer/popover");
@@ -27,7 +26,6 @@ var contentOverflowStyles = {
27
26
  fitViewport: "_1reo1wug _18m91wug",
28
27
  default: ""
29
28
  };
30
- var animation = (0, _animations.popupMotion)();
31
29
 
32
30
  // Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
33
31
  var EMPTY_STYLE = {};
@@ -234,7 +232,7 @@ var PopupTopLayer = exports.PopupTopLayer = /*#__PURE__*/(0, _react.memo)(functi
234
232
  }, roleProps, {
235
233
  isOpen: isOpen,
236
234
  onClose: handleOnClose,
237
- animate: animation,
235
+ animate: true,
238
236
  placement: topLayerPlacement,
239
237
  testId: testId && "".concat(testId, "--content")
240
238
  }), Container ? /*#__PURE__*/React.createElement(Container, {
@@ -18,8 +18,14 @@ var RepositionOnUpdate = exports.RepositionOnUpdate = function RepositionOnUpdat
18
18
  isFirstRenderRef.current = false;
19
19
  return;
20
20
  }
21
- // callback function from popper that repositions pop-up on content Update
22
- update();
21
+ // callback function from popper that repositions pop-up on content Update.
22
+ // Guard against `update` being undefined: on Safari the Popper instance may
23
+ // not be fully initialised when this layout effect fires, in which case the
24
+ // render-prop `update` is undefined and calling it throws
25
+ // `TypeError: e.update is not a function`.
26
+ if (typeof update === 'function') {
27
+ update();
28
+ }
23
29
  }, [update]);
24
30
 
25
31
  // wrapping in fragment to make TS happy (known issue with FC returning children)
@@ -5,7 +5,6 @@ import * as React from 'react';
5
5
  import { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
6
6
  import { ax, ix } from '@compiled/react/runtime';
7
7
  import noop from '@atlaskit/ds-lib/noop';
8
- import { popupMotion } from '@atlaskit/top-layer/animations';
9
8
  import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
10
9
  import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
11
10
  import { PopoverSurface } from '@atlaskit/top-layer/popover-surface';
@@ -14,7 +13,6 @@ import { useWidthFromAnchor } from '@atlaskit/top-layer/use-width-from-anchor';
14
13
  import { useRoleProps } from '../internal/top-layer-bridge';
15
14
  import { TriggerRefObjectContext } from './trigger-ref-object-context';
16
15
  const overflowAutoStyles = null;
17
- const animation = popupMotion();
18
16
 
19
17
  // Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
20
18
  const EMPTY_STYLE = {};
@@ -197,7 +195,7 @@ export function PopupContentTopLayer({
197
195
  ref: popoverRef
198
196
  }, roleProps, {
199
197
  isOpen: isOpen,
200
- animate: animation,
198
+ animate: true,
201
199
  placement: topLayerPlacement,
202
200
  onClose: handleOnClose,
203
201
  testId: testId && `${testId}--content`
@@ -5,7 +5,6 @@ import * as React from 'react';
5
5
  import { ax, ix } from "@compiled/react/runtime";
6
6
  import { Fragment, memo, useCallback, useEffect, useMemo, useRef } from 'react';
7
7
  import noop from '@atlaskit/ds-lib/noop';
8
- import { popupMotion } from '@atlaskit/top-layer/animations';
9
8
  import { getAriaForTrigger } from '@atlaskit/top-layer/get-aria-for-trigger';
10
9
  import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
11
10
  import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
@@ -18,7 +17,6 @@ const contentOverflowStyles = {
18
17
  fitViewport: "_1reo1wug _18m91wug",
19
18
  default: ""
20
19
  };
21
- const animation = popupMotion();
22
20
 
23
21
  // Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
24
22
  const EMPTY_STYLE = {};
@@ -244,7 +242,7 @@ export const PopupTopLayer = /*#__PURE__*/memo(function PopupTopLayer({
244
242
  }, roleProps, {
245
243
  isOpen: isOpen,
246
244
  onClose: handleOnClose,
247
- animate: animation,
245
+ animate: true,
248
246
  placement: topLayerPlacement,
249
247
  testId: testId && `${testId}--content`
250
248
  }), Container ? /*#__PURE__*/React.createElement(Container, {
@@ -11,8 +11,14 @@ export const RepositionOnUpdate = ({
11
11
  isFirstRenderRef.current = false;
12
12
  return;
13
13
  }
14
- // callback function from popper that repositions pop-up on content Update
15
- update();
14
+ // callback function from popper that repositions pop-up on content Update.
15
+ // Guard against `update` being undefined: on Safari the Popper instance may
16
+ // not be fully initialised when this layout effect fires, in which case the
17
+ // render-prop `update` is undefined and calling it throws
18
+ // `TypeError: e.update is not a function`.
19
+ if (typeof update === 'function') {
20
+ update();
21
+ }
16
22
  }, [update]);
17
23
 
18
24
  // wrapping in fragment to make TS happy (known issue with FC returning children)
@@ -5,7 +5,6 @@ import * as React from 'react';
5
5
  import { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
6
6
  import { ax, ix } from '@compiled/react/runtime';
7
7
  import noop from '@atlaskit/ds-lib/noop';
8
- import { popupMotion } from '@atlaskit/top-layer/animations';
9
8
  import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
10
9
  import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
11
10
  import { PopoverSurface } from '@atlaskit/top-layer/popover-surface';
@@ -14,7 +13,6 @@ import { useWidthFromAnchor } from '@atlaskit/top-layer/use-width-from-anchor';
14
13
  import { useRoleProps } from '../internal/top-layer-bridge';
15
14
  import { TriggerRefObjectContext } from './trigger-ref-object-context';
16
15
  var overflowAutoStyles = null;
17
- var animation = popupMotion();
18
16
 
19
17
  // Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
20
18
  var EMPTY_STYLE = {};
@@ -180,7 +178,7 @@ export function PopupContentTopLayer(_ref) {
180
178
  ref: popoverRef
181
179
  }, roleProps, {
182
180
  isOpen: isOpen,
183
- animate: animation,
181
+ animate: true,
184
182
  placement: topLayerPlacement,
185
183
  onClose: handleOnClose,
186
184
  testId: testId && "".concat(testId, "--content")
@@ -5,7 +5,6 @@ import * as React from 'react';
5
5
  import { ax, ix } from "@compiled/react/runtime";
6
6
  import { Fragment, memo, useCallback, useEffect, useMemo, useRef } from 'react';
7
7
  import noop from '@atlaskit/ds-lib/noop';
8
- import { popupMotion } from '@atlaskit/top-layer/animations';
9
8
  import { getAriaForTrigger } from '@atlaskit/top-layer/get-aria-for-trigger';
10
9
  import { fromLegacyPlacement } from '@atlaskit/top-layer/placement-map';
11
10
  import { createPopoverCloseEvent, Popover } from '@atlaskit/top-layer/popover';
@@ -18,7 +17,6 @@ var contentOverflowStyles = {
18
17
  fitViewport: "_1reo1wug _18m91wug",
19
18
  default: ""
20
19
  };
21
- var animation = popupMotion();
22
20
 
23
21
  // Top-layer positioning is handled by CSS Anchor Positioning, not inline styles.
24
22
  var EMPTY_STYLE = {};
@@ -225,7 +223,7 @@ export var PopupTopLayer = /*#__PURE__*/memo(function PopupTopLayer(_ref) {
225
223
  }, roleProps, {
226
224
  isOpen: isOpen,
227
225
  onClose: handleOnClose,
228
- animate: animation,
226
+ animate: true,
229
227
  placement: topLayerPlacement,
230
228
  testId: testId && "".concat(testId, "--content")
231
229
  }), Container ? /*#__PURE__*/React.createElement(Container, {
@@ -10,8 +10,14 @@ export var RepositionOnUpdate = function RepositionOnUpdate(_ref) {
10
10
  isFirstRenderRef.current = false;
11
11
  return;
12
12
  }
13
- // callback function from popper that repositions pop-up on content Update
14
- update();
13
+ // callback function from popper that repositions pop-up on content Update.
14
+ // Guard against `update` being undefined: on Safari the Popper instance may
15
+ // not be fully initialised when this layout effect fires, in which case the
16
+ // render-prop `update` is undefined and calling it throws
17
+ // `TypeError: e.update is not a function`.
18
+ if (typeof update === 'function') {
19
+ update();
20
+ }
15
21
  }, [update]);
16
22
 
17
23
  // wrapping in fragment to make TS happy (known issue with FC returning children)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/popup",
3
- "version": "5.1.0",
3
+ "version": "5.1.2",
4
4
  "description": "A popup displays brief content in an overlay.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -34,14 +34,14 @@
34
34
  "@atlaskit/css": "^1.0.0",
35
35
  "@atlaskit/ds-lib": "^8.0.0",
36
36
  "@atlaskit/layering": "^4.1.0",
37
- "@atlaskit/motion": "^7.2.0",
37
+ "@atlaskit/motion": "^7.3.0",
38
38
  "@atlaskit/platform-feature-flags": "^2.0.0",
39
- "@atlaskit/popper": "^8.2.0",
39
+ "@atlaskit/popper": "^8.3.0",
40
40
  "@atlaskit/portal": "^6.1.0",
41
- "@atlaskit/primitives": "^20.1.0",
41
+ "@atlaskit/primitives": "^20.6.0",
42
42
  "@atlaskit/react-compiler-gating": "^0.2.0",
43
- "@atlaskit/tokens": "^15.1.0",
44
- "@atlaskit/top-layer": "^1.2.0",
43
+ "@atlaskit/tokens": "^15.8.0",
44
+ "@atlaskit/top-layer": "^1.8.0",
45
45
  "@babel/runtime": "^7.0.0",
46
46
  "@compiled/react": "^0.20.0",
47
47
  "bind-event-listener": "^3.0.0",
@@ -57,21 +57,21 @@
57
57
  "@af/accessibility-testing": "workspace:^",
58
58
  "@af/integration-testing": "workspace:^",
59
59
  "@af/visual-regression": "workspace:^",
60
- "@atlaskit/button": "^24.2.0",
60
+ "@atlaskit/button": "^24.3.0",
61
61
  "@atlaskit/code": "^18.2.0",
62
- "@atlaskit/docs": "^12.0.0",
62
+ "@atlaskit/docs": "^12.1.0",
63
63
  "@atlaskit/form": "^16.1.0",
64
- "@atlaskit/heading": "^6.1.0",
65
- "@atlaskit/icon": "^36.1.0",
66
- "@atlaskit/link": "^4.1.0",
64
+ "@atlaskit/heading": "^6.2.0",
65
+ "@atlaskit/icon": "^37.0.0",
66
+ "@atlaskit/link": "^4.3.0",
67
67
  "@atlaskit/modal-dialog": "^16.1.0",
68
68
  "@atlaskit/section-message": "^9.2.0",
69
69
  "@atlaskit/textfield": "^9.1.0",
70
70
  "@atlaskit/toggle": "^17.1.0",
71
- "@atlassian/feature-flags-test-utils": "^1.1.0",
71
+ "@atlassian/feature-flags-test-utils": "^1.2.0",
72
72
  "@atlassian/ssr-tests": "workspace:^",
73
73
  "@atlassian/structured-docs-types": "workspace:^",
74
- "@atlassian/testing-library": "^0.7.0",
74
+ "@atlassian/testing-library": "^0.11.0",
75
75
  "@testing-library/react": "^16.3.0",
76
76
  "@testing-library/user-event": "^14.4.3",
77
77
  "ast-types": "^0.13.3",
package/popup.docs.tsx CHANGED
@@ -8,10 +8,13 @@ const documentation: StructuredContentSource = {
8
8
  name: 'Popup',
9
9
  description: 'A component for displaying popup content relative to a trigger element.',
10
10
  status: 'general-availability',
11
+ designSource: {
12
+ figmaUrl: 'https://go.atlassian.com/figma-library-ads-82088-103357',
13
+ },
11
14
  import: {
12
15
  name: 'Popup',
13
- package: '@atlaskit/popup',
14
- type: 'default',
16
+ package: '@atlaskit/popup/popup',
17
+ type: 'named',
15
18
  packagePath: path.resolve(__dirname),
16
19
  packageJson: require('./package.json'),
17
20
  },