@atlaskit/onboarding 11.13.0 → 11.15.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 (33) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/components/animation.js +7 -2
  3. package/dist/cjs/components/clone.js +15 -3
  4. package/dist/cjs/components/modal.js +2 -2
  5. package/dist/cjs/components/node-resolver-spotlight-inner.js +1 -1
  6. package/dist/cjs/components/node-resolver-spotlight-target.js +1 -1
  7. package/dist/cjs/components/spotlight-card.js +1 -1
  8. package/dist/cjs/components/spotlight-dialog.js +2 -2
  9. package/dist/cjs/components/spotlight-inner.js +1 -1
  10. package/dist/cjs/components/spotlight-manager.js +2 -2
  11. package/dist/cjs/components/spotlight-transition.js +2 -2
  12. package/dist/cjs/components/theme.js +1 -1
  13. package/dist/cjs/components/value-changed.js +1 -1
  14. package/dist/cjs/utils/use-element-observer.js +131 -0
  15. package/dist/es2019/components/animation.js +31 -24
  16. package/dist/es2019/components/clone.js +10 -2
  17. package/dist/es2019/utils/use-element-observer.js +114 -0
  18. package/dist/esm/components/animation.js +7 -2
  19. package/dist/esm/components/clone.js +12 -2
  20. package/dist/esm/components/modal.js +1 -1
  21. package/dist/esm/components/spotlight-dialog.js +1 -1
  22. package/dist/esm/components/spotlight-inner.js +1 -1
  23. package/dist/esm/components/spotlight-manager.js +1 -1
  24. package/dist/esm/components/spotlight-transition.js +1 -1
  25. package/dist/esm/components/value-changed.js +1 -1
  26. package/dist/esm/utils/use-element-observer.js +123 -0
  27. package/dist/types/components/clone.d.ts +5 -1
  28. package/dist/types/components/spotlight-inner.d.ts +1 -1
  29. package/dist/types/utils/use-element-observer.d.ts +36 -0
  30. package/dist/types-ts4.5/components/clone.d.ts +5 -1
  31. package/dist/types-ts4.5/components/spotlight-inner.d.ts +1 -1
  32. package/dist/types-ts4.5/utils/use-element-observer.d.ts +36 -0
  33. package/package.json +9 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/onboarding
2
2
 
3
+ ## 11.15.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#144362](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/144362)
8
+ [`73d292c184200`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/73d292c184200) -
9
+ [ux] Fix for bug DSP-21004. Update cloned content on mutation
10
+
11
+ ## 11.14.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`2d1da097bd763`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2d1da097bd763) -
16
+ DSP-20687 removing usage of findDOMNode in react-transition-group behind ff
17
+
3
18
  ## 11.13.0
4
19
 
5
20
  ### Minor Changes
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.Fade = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _react = _interopRequireDefault(require("react"));
10
11
  var _reactTransitionGroup = require("react-transition-group");
12
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
15
  var duration = {
@@ -25,13 +27,16 @@ var Fade = exports.Fade = function Fade(_ref) {
25
27
  var hasEntered = _ref.hasEntered,
26
28
  children = _ref.children,
27
29
  onExited = _ref.onExited;
28
- return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.Transition, {
30
+ var nodeRef = _react.default.useRef(null);
31
+ return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.Transition, (0, _extends2.default)({
29
32
  in: hasEntered,
30
33
  timeout: duration,
31
34
  onExited: onExited,
32
35
  unmountOnExit: true,
33
36
  appear: true
34
- }, function (status) {
37
+ }, (0, _platformFeatureFlags.fg)('platform-design-system-dsp-20687-transition-group') && {
38
+ nodeRef: nodeRef
39
+ }), function (status) {
35
40
  var base = {
36
41
  transition: "opacity ".concat(duration.exit, "ms"),
37
42
  opacity: 0
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _target = require("../styled/target");
10
+ var _useElementObserver = require("../utils/use-element-observer");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
13
  var computedStyleAttributesToClone = ['fontSize', 'fontWeight', 'lineHeight', 'padding', 'color', 'textOverflow'];
11
14
  function cloneAndOverrideStyles(node) {
12
15
  var shouldCloneChildren = true;
@@ -34,12 +37,21 @@ function cloneAndOverrideStyles(node) {
34
37
  var Clone = function Clone(props) {
35
38
  var pulse = props.pulse,
36
39
  style = props.style,
40
+ shouldWatch = props.shouldWatch,
37
41
  target = props.target,
38
42
  targetBgColor = props.targetBgColor,
39
43
  targetOnClick = props.targetOnClick,
40
44
  targetNode = props.targetNode,
41
45
  targetRadius = props.targetRadius,
42
46
  testId = props.testId;
47
+ var contentVersion = (0, _useElementObserver.useElementObserver)(targetNode, {
48
+ disableWatch: !shouldWatch
49
+ });
50
+ var contentHTML = (0, _react.useMemo)(function () {
51
+ return cloneAndOverrideStyles(targetNode).outerHTML;
52
+ },
53
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- We only want to update when the content changes
54
+ [contentVersion, targetNode]);
43
55
  return /*#__PURE__*/_react.default.createElement(_target.TargetInner, {
44
56
  "data-testid": testId,
45
57
  pulse: pulse,
@@ -51,7 +63,7 @@ var Clone = function Clone(props) {
51
63
  }, /*#__PURE__*/_react.default.createElement("div", {
52
64
  // eslint-disable-next-line react/no-danger
53
65
  dangerouslySetInnerHTML: {
54
- __html: cloneAndOverrideStyles(targetNode).outerHTML
66
+ __html: contentHTML
55
67
  }
56
68
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
57
69
  ,
@@ -24,8 +24,8 @@ var _theme = require("./theme");
24
24
  var _excluded = ["text", "key"],
25
25
  _excluded2 = ["actions", "children", "heading"];
26
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
27
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
29
29
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /**
30
30
  * @jsxRuntime classic
31
31
  * @jsx jsx
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactNodeResolver = _interopRequireDefault(require("react-node-resolver"));
11
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
13
  /**
14
14
  * A wrapper component that conditionally applies a NodeResolver to its children.
15
15
  *
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactNodeResolver = _interopRequireDefault(require("react-node-resolver"));
11
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
13
  /**
14
14
  * A wrapper component that conditionally applies a NodeResolver to its children.
15
15
  *
@@ -21,7 +21,7 @@ var _excluded = ["text", "key"];
21
21
  */
22
22
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
25
  var bodyStyles = (0, _react2.css)({
26
26
  display: 'flex',
27
27
  padding: "var(--ds-space-200, 16px)".concat(" ", "var(--ds-space-250, 20px)"),
@@ -20,10 +20,10 @@ var _dialog = require("../styled/dialog");
20
20
  var _spotlightCard = _interopRequireDefault(require("./spotlight-card"));
21
21
  var _valueChanged = _interopRequireDefault(require("./value-changed"));
22
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
26
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
27
27
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
28
28
  /**
29
29
  * __Spotlight dialog__
@@ -28,7 +28,7 @@ var _spotlightDialog = _interopRequireDefault(require("./spotlight-dialog"));
28
28
  var _spotlightTransition = require("./spotlight-transition");
29
29
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
30
30
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
32
32
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
33
33
  /**
34
34
  * __Spotlight inner__
@@ -21,10 +21,10 @@ var _constants = require("@atlaskit/theme/constants");
21
21
  var _blanket = _interopRequireDefault(require("../styled/blanket"));
22
22
  var _animation = require("./animation");
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
25
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
26
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
27
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
28
28
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
29
  var _createContext = /*#__PURE__*/(0, _react.createContext)(undefined),
30
30
  TargetConsumer = exports.TargetConsumer = _createContext.Consumer,
@@ -16,8 +16,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
16
16
  var _react = _interopRequireWildcard(require("react"));
17
17
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
18
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
21
21
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
22
22
  var SpotlightTransitionContext = /*#__PURE__*/(0, _react.createContext)({
23
23
  isOpen: true,
@@ -13,7 +13,7 @@ var colors = _interopRequireWildcard(require("@atlaskit/theme/colors"));
13
13
  var _excluded = ["buttonStyles"],
14
14
  _excluded2 = ["buttonStyles"];
15
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
18
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
19
  var spotlightTheme = {
@@ -11,7 +11,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
11
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
13
  var _react = _interopRequireDefault(require("react"));
14
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
14
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
15
15
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
16
16
  // This component was born from the pain of using render props in lifecycle methods.
17
17
  // On update, it checks whether the current value prop is equal to the previous value prop.
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ElementObserver = ElementObserver;
8
+ exports.useElementObserver = useElementObserver;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = require("react");
11
+ /**
12
+ * A hook that watches for changes to a node and forces a re-render when it changes.
13
+ *
14
+ * @param element The node to watch for changes.
15
+ * @param opts Options for the hook.
16
+ * @param [opts.disableWatch=false] Whether to watch for changes or not.
17
+ * @param [opts.onChange] A callback that is called when the node changes.
18
+ *
19
+ * @returns A version number that is incremented when the node changes to force a re-render.
20
+ *
21
+ * @internal
22
+ */
23
+ function useElementObserver(element) {
24
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
25
+ var onChange = opts.onChange,
26
+ _opts$disableWatch = opts.disableWatch,
27
+ disableWatch = _opts$disableWatch === void 0 ? false : _opts$disableWatch;
28
+
29
+ // This state is used to force a re-render when the target changes
30
+ var _useState = (0, _react.useState)(0),
31
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
32
+ targetContentVersion = _useState2[0],
33
+ setTargetContentVersion = _useState2[1];
34
+ var mutationObserver = (0, _react.useRef)(undefined);
35
+ var cancelIdleCallback = (0, _react.useRef)(undefined);
36
+ var disposer = (0, _react.useCallback)(function () {
37
+ var _cancelIdleCallback$c, _mutationObserver$cur;
38
+ (_cancelIdleCallback$c = cancelIdleCallback.current) === null || _cancelIdleCallback$c === void 0 || _cancelIdleCallback$c.call(cancelIdleCallback);
39
+ cancelIdleCallback.current = undefined;
40
+ (_mutationObserver$cur = mutationObserver.current) === null || _mutationObserver$cur === void 0 || _mutationObserver$cur.disconnect();
41
+ mutationObserver.current = undefined;
42
+ }, []);
43
+ var onMutation = (0, _react.useCallback)(function () {
44
+ var _cancelIdleCallback$c2;
45
+ // MutationObserver can make multiple calls to the callback in quick succession so debounce when idle
46
+ (_cancelIdleCallback$c2 = cancelIdleCallback.current) === null || _cancelIdleCallback$c2 === void 0 || _cancelIdleCallback$c2.call(cancelIdleCallback);
47
+ cancelIdleCallback.current = callWhenIdle(function () {
48
+ return setTargetContentVersion(function (v) {
49
+ var version = v + 1;
50
+ onChange === null || onChange === void 0 || onChange(version);
51
+ return version;
52
+ });
53
+ });
54
+ }, [onChange]);
55
+ (0, _react.useEffect)(function () {
56
+ // Clean up any existing observer in the case that the target node has changed
57
+ disposer();
58
+ if (!disableWatch && element) {
59
+ mutationObserver.current = new MutationObserver(onMutation);
60
+ mutationObserver.current.observe(element, {
61
+ attributes: true,
62
+ childList: true,
63
+ subtree: true
64
+ });
65
+ }
66
+ return disposer;
67
+ }, [disableWatch, disposer, element, onMutation]);
68
+ return targetContentVersion;
69
+ }
70
+
71
+ /**
72
+ * A component that watches for changes to a node and forces a re-render when it changes.
73
+ *
74
+ * @param props
75
+ * @param props.element The node to watch for changes.
76
+ * @param props.children The children to render.
77
+ * @param [props.disableWatch=false] Whether to watch for changes or not.
78
+ * @param [props.onChange] A callback that is called when the node changes.
79
+ *
80
+ * @component
81
+ * @internal
82
+ */
83
+ function ElementObserver(_ref) {
84
+ var element = _ref.element,
85
+ children = _ref.children,
86
+ onChange = _ref.onChange,
87
+ disableWatch = _ref.disableWatch;
88
+ useElementObserver(element, {
89
+ disableWatch: disableWatch,
90
+ onChange: onChange
91
+ });
92
+ return {
93
+ children: children
94
+ };
95
+ }
96
+
97
+ /**
98
+ * When the browser is idle call the callback.
99
+ *
100
+ * This function will use `requestIdleCallback` if available, otherwise it will fallback to `setTimeout`.
101
+ *
102
+ * @param callback The function to call when the browser is idle.
103
+ * @param [opts] Options for the idle callback.
104
+ * @param [opts.timeout=100] The maximum time to wait for the browser to be idle.
105
+ *
106
+ * @returns A function that can be called to cancel the idle callback.
107
+ *
108
+ * @internal
109
+ */
110
+ function callWhenIdle(callback) {
111
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
112
+ var _opts$timeout = opts.timeout,
113
+ timeout = _opts$timeout === void 0 ? 100 : _opts$timeout;
114
+
115
+ // eslint-disable-next-line compat/compat
116
+ if (typeof window.requestIdleCallback === 'function') {
117
+ // eslint-disable-next-line compat/compat
118
+ var idleHandle = window.requestIdleCallback(callback, {
119
+ timeout: timeout
120
+ });
121
+ return function () {
122
+ return cancelIdleCallback(idleHandle);
123
+ };
124
+ }
125
+
126
+ // Fallback to setTimeout if requestIdleCallback is not available
127
+ var timeoutHandle = setTimeout(callback, timeout);
128
+ return function () {
129
+ return clearTimeout(timeoutHandle);
130
+ };
131
+ }
@@ -1,5 +1,7 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import React from 'react';
2
3
  import { Transition } from 'react-transition-group';
4
+ import { fg } from '@atlaskit/platform-feature-flags';
3
5
  const duration = {
4
6
  enter: 0,
5
7
  exit: 100
@@ -15,28 +17,33 @@ export const Fade = ({
15
17
  hasEntered,
16
18
  children,
17
19
  onExited
18
- }) => /*#__PURE__*/React.createElement(Transition, {
19
- in: hasEntered,
20
- timeout: duration,
21
- onExited: onExited,
22
- unmountOnExit: true,
23
- appear: true
24
- }, status => {
25
- const base = {
26
- transition: `opacity ${duration.exit}ms`,
27
- opacity: 0
28
- };
29
- const anim = {
30
- entered: {
31
- opacity: 1
32
- },
33
- exiting: {
20
+ }) => {
21
+ const nodeRef = React.useRef(null);
22
+ return /*#__PURE__*/React.createElement(Transition, _extends({
23
+ in: hasEntered,
24
+ timeout: duration,
25
+ onExited: onExited,
26
+ unmountOnExit: true,
27
+ appear: true
28
+ }, fg('platform-design-system-dsp-20687-transition-group') && {
29
+ nodeRef
30
+ }), status => {
31
+ const base = {
32
+ transition: `opacity ${duration.exit}ms`,
34
33
  opacity: 0
35
- }
36
- };
37
- const style = {
38
- ...base,
39
- ...anim[status]
40
- };
41
- return children(style);
42
- });
34
+ };
35
+ const anim = {
36
+ entered: {
37
+ opacity: 1
38
+ },
39
+ exiting: {
40
+ opacity: 0
41
+ }
42
+ };
43
+ const style = {
44
+ ...base,
45
+ ...anim[status]
46
+ };
47
+ return children(style);
48
+ });
49
+ };
@@ -1,5 +1,6 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { TargetInner, TargetOverlay } from '../styled/target';
3
+ import { useElementObserver } from '../utils/use-element-observer';
3
4
  const computedStyleAttributesToClone = ['fontSize', 'fontWeight', 'lineHeight', 'padding', 'color', 'textOverflow'];
4
5
  function cloneAndOverrideStyles(node) {
5
6
  const shouldCloneChildren = true;
@@ -28,6 +29,7 @@ const Clone = props => {
28
29
  const {
29
30
  pulse,
30
31
  style,
32
+ shouldWatch,
31
33
  target,
32
34
  targetBgColor,
33
35
  targetOnClick,
@@ -35,6 +37,12 @@ const Clone = props => {
35
37
  targetRadius,
36
38
  testId
37
39
  } = props;
40
+ const contentVersion = useElementObserver(targetNode, {
41
+ disableWatch: !shouldWatch
42
+ });
43
+ const contentHTML = useMemo(() => cloneAndOverrideStyles(targetNode).outerHTML,
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- We only want to update when the content changes
45
+ [contentVersion, targetNode]);
38
46
  return /*#__PURE__*/React.createElement(TargetInner, {
39
47
  "data-testid": testId,
40
48
  pulse: pulse,
@@ -46,7 +54,7 @@ const Clone = props => {
46
54
  }, /*#__PURE__*/React.createElement("div", {
47
55
  // eslint-disable-next-line react/no-danger
48
56
  dangerouslySetInnerHTML: {
49
- __html: cloneAndOverrideStyles(targetNode).outerHTML
57
+ __html: contentHTML
50
58
  }
51
59
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
52
60
  ,
@@ -0,0 +1,114 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ /**
3
+ * A hook that watches for changes to a node and forces a re-render when it changes.
4
+ *
5
+ * @param element The node to watch for changes.
6
+ * @param opts Options for the hook.
7
+ * @param [opts.disableWatch=false] Whether to watch for changes or not.
8
+ * @param [opts.onChange] A callback that is called when the node changes.
9
+ *
10
+ * @returns A version number that is incremented when the node changes to force a re-render.
11
+ *
12
+ * @internal
13
+ */
14
+ export function useElementObserver(element, opts = {}) {
15
+ const {
16
+ onChange,
17
+ disableWatch = false
18
+ } = opts;
19
+
20
+ // This state is used to force a re-render when the target changes
21
+ const [targetContentVersion, setTargetContentVersion] = useState(0);
22
+ const mutationObserver = useRef(undefined);
23
+ const cancelIdleCallback = useRef(undefined);
24
+ const disposer = useCallback(() => {
25
+ var _cancelIdleCallback$c, _mutationObserver$cur;
26
+ (_cancelIdleCallback$c = cancelIdleCallback.current) === null || _cancelIdleCallback$c === void 0 ? void 0 : _cancelIdleCallback$c.call(cancelIdleCallback);
27
+ cancelIdleCallback.current = undefined;
28
+ (_mutationObserver$cur = mutationObserver.current) === null || _mutationObserver$cur === void 0 ? void 0 : _mutationObserver$cur.disconnect();
29
+ mutationObserver.current = undefined;
30
+ }, []);
31
+ const onMutation = useCallback(() => {
32
+ var _cancelIdleCallback$c2;
33
+ // MutationObserver can make multiple calls to the callback in quick succession so debounce when idle
34
+ (_cancelIdleCallback$c2 = cancelIdleCallback.current) === null || _cancelIdleCallback$c2 === void 0 ? void 0 : _cancelIdleCallback$c2.call(cancelIdleCallback);
35
+ cancelIdleCallback.current = callWhenIdle(() => setTargetContentVersion(v => {
36
+ const version = v + 1;
37
+ onChange === null || onChange === void 0 ? void 0 : onChange(version);
38
+ return version;
39
+ }));
40
+ }, [onChange]);
41
+ useEffect(() => {
42
+ // Clean up any existing observer in the case that the target node has changed
43
+ disposer();
44
+ if (!disableWatch && element) {
45
+ mutationObserver.current = new MutationObserver(onMutation);
46
+ mutationObserver.current.observe(element, {
47
+ attributes: true,
48
+ childList: true,
49
+ subtree: true
50
+ });
51
+ }
52
+ return disposer;
53
+ }, [disableWatch, disposer, element, onMutation]);
54
+ return targetContentVersion;
55
+ }
56
+
57
+ /**
58
+ * A component that watches for changes to a node and forces a re-render when it changes.
59
+ *
60
+ * @param props
61
+ * @param props.element The node to watch for changes.
62
+ * @param props.children The children to render.
63
+ * @param [props.disableWatch=false] Whether to watch for changes or not.
64
+ * @param [props.onChange] A callback that is called when the node changes.
65
+ *
66
+ * @component
67
+ * @internal
68
+ */
69
+ export function ElementObserver({
70
+ element,
71
+ children,
72
+ onChange,
73
+ disableWatch
74
+ }) {
75
+ useElementObserver(element, {
76
+ disableWatch,
77
+ onChange
78
+ });
79
+ return {
80
+ children
81
+ };
82
+ }
83
+
84
+ /**
85
+ * When the browser is idle call the callback.
86
+ *
87
+ * This function will use `requestIdleCallback` if available, otherwise it will fallback to `setTimeout`.
88
+ *
89
+ * @param callback The function to call when the browser is idle.
90
+ * @param [opts] Options for the idle callback.
91
+ * @param [opts.timeout=100] The maximum time to wait for the browser to be idle.
92
+ *
93
+ * @returns A function that can be called to cancel the idle callback.
94
+ *
95
+ * @internal
96
+ */
97
+ function callWhenIdle(callback, opts = {}) {
98
+ const {
99
+ timeout = 100
100
+ } = opts;
101
+
102
+ // eslint-disable-next-line compat/compat
103
+ if (typeof window.requestIdleCallback === 'function') {
104
+ // eslint-disable-next-line compat/compat
105
+ const idleHandle = window.requestIdleCallback(callback, {
106
+ timeout
107
+ });
108
+ return () => cancelIdleCallback(idleHandle);
109
+ }
110
+
111
+ // Fallback to setTimeout if requestIdleCallback is not available
112
+ const timeoutHandle = setTimeout(callback, timeout);
113
+ return () => clearTimeout(timeoutHandle);
114
+ }
@@ -1,8 +1,10 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
5
  import React from 'react';
5
6
  import { Transition } from 'react-transition-group';
7
+ import { fg } from '@atlaskit/platform-feature-flags';
6
8
  var duration = {
7
9
  enter: 0,
8
10
  exit: 100
@@ -18,13 +20,16 @@ export var Fade = function Fade(_ref) {
18
20
  var hasEntered = _ref.hasEntered,
19
21
  children = _ref.children,
20
22
  onExited = _ref.onExited;
21
- return /*#__PURE__*/React.createElement(Transition, {
23
+ var nodeRef = React.useRef(null);
24
+ return /*#__PURE__*/React.createElement(Transition, _extends({
22
25
  in: hasEntered,
23
26
  timeout: duration,
24
27
  onExited: onExited,
25
28
  unmountOnExit: true,
26
29
  appear: true
27
- }, function (status) {
30
+ }, fg('platform-design-system-dsp-20687-transition-group') && {
31
+ nodeRef: nodeRef
32
+ }), function (status) {
28
33
  var base = {
29
34
  transition: "opacity ".concat(duration.exit, "ms"),
30
35
  opacity: 0
@@ -1,5 +1,6 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { TargetInner, TargetOverlay } from '../styled/target';
3
+ import { useElementObserver } from '../utils/use-element-observer';
3
4
  var computedStyleAttributesToClone = ['fontSize', 'fontWeight', 'lineHeight', 'padding', 'color', 'textOverflow'];
4
5
  function cloneAndOverrideStyles(node) {
5
6
  var shouldCloneChildren = true;
@@ -27,12 +28,21 @@ function cloneAndOverrideStyles(node) {
27
28
  var Clone = function Clone(props) {
28
29
  var pulse = props.pulse,
29
30
  style = props.style,
31
+ shouldWatch = props.shouldWatch,
30
32
  target = props.target,
31
33
  targetBgColor = props.targetBgColor,
32
34
  targetOnClick = props.targetOnClick,
33
35
  targetNode = props.targetNode,
34
36
  targetRadius = props.targetRadius,
35
37
  testId = props.testId;
38
+ var contentVersion = useElementObserver(targetNode, {
39
+ disableWatch: !shouldWatch
40
+ });
41
+ var contentHTML = useMemo(function () {
42
+ return cloneAndOverrideStyles(targetNode).outerHTML;
43
+ },
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- We only want to update when the content changes
45
+ [contentVersion, targetNode]);
36
46
  return /*#__PURE__*/React.createElement(TargetInner, {
37
47
  "data-testid": testId,
38
48
  pulse: pulse,
@@ -44,7 +54,7 @@ var Clone = function Clone(props) {
44
54
  }, /*#__PURE__*/React.createElement("div", {
45
55
  // eslint-disable-next-line react/no-danger
46
56
  dangerouslySetInnerHTML: {
47
- __html: cloneAndOverrideStyles(targetNode).outerHTML
57
+ __html: contentHTML
48
58
  }
49
59
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
50
60
  ,
@@ -9,7 +9,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
9
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
10
  var _excluded = ["text", "key"],
11
11
  _excluded2 = ["actions", "children", "heading"];
12
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
13
13
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
14
14
  /**
15
15
  * @jsxRuntime classic
@@ -7,7 +7,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
8
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
9
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
11
11
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
12
12
  import React, { Component } from 'react';
13
13
  import FocusLock from 'react-focus-lock';
@@ -8,7 +8,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
9
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
10
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
12
12
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
13
13
  import React from 'react';
14
14
  import { canUseDOM } from 'exenv';
@@ -7,7 +7,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
8
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
9
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
11
11
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
12
12
  import React, { createContext, PureComponent } from 'react';
13
13
  import memoizeOne from 'memoize-one';
@@ -5,7 +5,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
9
9
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10
10
  import React, { createContext } from 'react';
11
11
  import noop from '@atlaskit/ds-lib/noop';
@@ -3,7 +3,7 @@ import _createClass from "@babel/runtime/helpers/createClass";
3
3
  import _inherits from "@babel/runtime/helpers/inherits";
4
4
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
5
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
6
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
7
7
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
8
  import React from 'react';
9
9
  // This component was born from the pain of using render props in lifecycle methods.
@@ -0,0 +1,123 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ /**
4
+ * A hook that watches for changes to a node and forces a re-render when it changes.
5
+ *
6
+ * @param element The node to watch for changes.
7
+ * @param opts Options for the hook.
8
+ * @param [opts.disableWatch=false] Whether to watch for changes or not.
9
+ * @param [opts.onChange] A callback that is called when the node changes.
10
+ *
11
+ * @returns A version number that is incremented when the node changes to force a re-render.
12
+ *
13
+ * @internal
14
+ */
15
+ export function useElementObserver(element) {
16
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
17
+ var onChange = opts.onChange,
18
+ _opts$disableWatch = opts.disableWatch,
19
+ disableWatch = _opts$disableWatch === void 0 ? false : _opts$disableWatch;
20
+
21
+ // This state is used to force a re-render when the target changes
22
+ var _useState = useState(0),
23
+ _useState2 = _slicedToArray(_useState, 2),
24
+ targetContentVersion = _useState2[0],
25
+ setTargetContentVersion = _useState2[1];
26
+ var mutationObserver = useRef(undefined);
27
+ var cancelIdleCallback = useRef(undefined);
28
+ var disposer = useCallback(function () {
29
+ var _cancelIdleCallback$c, _mutationObserver$cur;
30
+ (_cancelIdleCallback$c = cancelIdleCallback.current) === null || _cancelIdleCallback$c === void 0 || _cancelIdleCallback$c.call(cancelIdleCallback);
31
+ cancelIdleCallback.current = undefined;
32
+ (_mutationObserver$cur = mutationObserver.current) === null || _mutationObserver$cur === void 0 || _mutationObserver$cur.disconnect();
33
+ mutationObserver.current = undefined;
34
+ }, []);
35
+ var onMutation = useCallback(function () {
36
+ var _cancelIdleCallback$c2;
37
+ // MutationObserver can make multiple calls to the callback in quick succession so debounce when idle
38
+ (_cancelIdleCallback$c2 = cancelIdleCallback.current) === null || _cancelIdleCallback$c2 === void 0 || _cancelIdleCallback$c2.call(cancelIdleCallback);
39
+ cancelIdleCallback.current = callWhenIdle(function () {
40
+ return setTargetContentVersion(function (v) {
41
+ var version = v + 1;
42
+ onChange === null || onChange === void 0 || onChange(version);
43
+ return version;
44
+ });
45
+ });
46
+ }, [onChange]);
47
+ useEffect(function () {
48
+ // Clean up any existing observer in the case that the target node has changed
49
+ disposer();
50
+ if (!disableWatch && element) {
51
+ mutationObserver.current = new MutationObserver(onMutation);
52
+ mutationObserver.current.observe(element, {
53
+ attributes: true,
54
+ childList: true,
55
+ subtree: true
56
+ });
57
+ }
58
+ return disposer;
59
+ }, [disableWatch, disposer, element, onMutation]);
60
+ return targetContentVersion;
61
+ }
62
+
63
+ /**
64
+ * A component that watches for changes to a node and forces a re-render when it changes.
65
+ *
66
+ * @param props
67
+ * @param props.element The node to watch for changes.
68
+ * @param props.children The children to render.
69
+ * @param [props.disableWatch=false] Whether to watch for changes or not.
70
+ * @param [props.onChange] A callback that is called when the node changes.
71
+ *
72
+ * @component
73
+ * @internal
74
+ */
75
+ export function ElementObserver(_ref) {
76
+ var element = _ref.element,
77
+ children = _ref.children,
78
+ onChange = _ref.onChange,
79
+ disableWatch = _ref.disableWatch;
80
+ useElementObserver(element, {
81
+ disableWatch: disableWatch,
82
+ onChange: onChange
83
+ });
84
+ return {
85
+ children: children
86
+ };
87
+ }
88
+
89
+ /**
90
+ * When the browser is idle call the callback.
91
+ *
92
+ * This function will use `requestIdleCallback` if available, otherwise it will fallback to `setTimeout`.
93
+ *
94
+ * @param callback The function to call when the browser is idle.
95
+ * @param [opts] Options for the idle callback.
96
+ * @param [opts.timeout=100] The maximum time to wait for the browser to be idle.
97
+ *
98
+ * @returns A function that can be called to cancel the idle callback.
99
+ *
100
+ * @internal
101
+ */
102
+ function callWhenIdle(callback) {
103
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
104
+ var _opts$timeout = opts.timeout,
105
+ timeout = _opts$timeout === void 0 ? 100 : _opts$timeout;
106
+
107
+ // eslint-disable-next-line compat/compat
108
+ if (typeof window.requestIdleCallback === 'function') {
109
+ // eslint-disable-next-line compat/compat
110
+ var idleHandle = window.requestIdleCallback(callback, {
111
+ timeout: timeout
112
+ });
113
+ return function () {
114
+ return cancelIdleCallback(idleHandle);
115
+ };
116
+ }
117
+
118
+ // Fallback to setTimeout if requestIdleCallback is not available
119
+ var timeoutHandle = setTimeout(callback, timeout);
120
+ return function () {
121
+ return clearTimeout(timeoutHandle);
122
+ };
123
+ }
@@ -1,7 +1,7 @@
1
1
  import { type MouseEvent } from 'react';
2
2
  export interface CloneProps {
3
3
  /**
4
- * Whether or not to display a pulse animation around the spotlighted element.
4
+ * Whether to display a pulse animation around the spotlighted element.
5
5
  */
6
6
  pulse: boolean;
7
7
  /**
@@ -37,6 +37,10 @@ export interface CloneProps {
37
37
  * serving as a hook for automated tests.
38
38
  */
39
39
  testId?: string;
40
+ /**
41
+ * Whether to watch for html content changes on the target
42
+ */
43
+ shouldWatch?: boolean;
40
44
  }
41
45
  /**
42
46
  * __Clone__
@@ -15,7 +15,7 @@ export interface SpotlightInnerProps extends SpotlightProps {
15
15
  */
16
16
  onClosed: () => any;
17
17
  /**
18
- * Whether or not to display a pulse animation around the spotlighted element.
18
+ * Whether to display a pulse animation around the spotlighted element.
19
19
  *
20
20
  * Same as `SpotlightProps` but required instead of optional.
21
21
  */
@@ -0,0 +1,36 @@
1
+ /**
2
+ * A hook that watches for changes to a node and forces a re-render when it changes.
3
+ *
4
+ * @param element The node to watch for changes.
5
+ * @param opts Options for the hook.
6
+ * @param [opts.disableWatch=false] Whether to watch for changes or not.
7
+ * @param [opts.onChange] A callback that is called when the node changes.
8
+ *
9
+ * @returns A version number that is incremented when the node changes to force a re-render.
10
+ *
11
+ * @internal
12
+ */
13
+ export declare function useElementObserver(element: Node, opts?: {
14
+ disableWatch?: boolean;
15
+ onChange?: (version: number) => void;
16
+ }): number;
17
+ /**
18
+ * A component that watches for changes to a node and forces a re-render when it changes.
19
+ *
20
+ * @param props
21
+ * @param props.element The node to watch for changes.
22
+ * @param props.children The children to render.
23
+ * @param [props.disableWatch=false] Whether to watch for changes or not.
24
+ * @param [props.onChange] A callback that is called when the node changes.
25
+ *
26
+ * @component
27
+ * @internal
28
+ */
29
+ export declare function ElementObserver({ element, children, onChange, disableWatch, }: {
30
+ element: HTMLElement;
31
+ children: any;
32
+ onChange?: (version: number) => void;
33
+ disableWatch?: boolean;
34
+ }): {
35
+ children: any;
36
+ };
@@ -1,7 +1,7 @@
1
1
  import { type MouseEvent } from 'react';
2
2
  export interface CloneProps {
3
3
  /**
4
- * Whether or not to display a pulse animation around the spotlighted element.
4
+ * Whether to display a pulse animation around the spotlighted element.
5
5
  */
6
6
  pulse: boolean;
7
7
  /**
@@ -37,6 +37,10 @@ export interface CloneProps {
37
37
  * serving as a hook for automated tests.
38
38
  */
39
39
  testId?: string;
40
+ /**
41
+ * Whether to watch for html content changes on the target
42
+ */
43
+ shouldWatch?: boolean;
40
44
  }
41
45
  /**
42
46
  * __Clone__
@@ -15,7 +15,7 @@ export interface SpotlightInnerProps extends SpotlightProps {
15
15
  */
16
16
  onClosed: () => any;
17
17
  /**
18
- * Whether or not to display a pulse animation around the spotlighted element.
18
+ * Whether to display a pulse animation around the spotlighted element.
19
19
  *
20
20
  * Same as `SpotlightProps` but required instead of optional.
21
21
  */
@@ -0,0 +1,36 @@
1
+ /**
2
+ * A hook that watches for changes to a node and forces a re-render when it changes.
3
+ *
4
+ * @param element The node to watch for changes.
5
+ * @param opts Options for the hook.
6
+ * @param [opts.disableWatch=false] Whether to watch for changes or not.
7
+ * @param [opts.onChange] A callback that is called when the node changes.
8
+ *
9
+ * @returns A version number that is incremented when the node changes to force a re-render.
10
+ *
11
+ * @internal
12
+ */
13
+ export declare function useElementObserver(element: Node, opts?: {
14
+ disableWatch?: boolean;
15
+ onChange?: (version: number) => void;
16
+ }): number;
17
+ /**
18
+ * A component that watches for changes to a node and forces a re-render when it changes.
19
+ *
20
+ * @param props
21
+ * @param props.element The node to watch for changes.
22
+ * @param props.children The children to render.
23
+ * @param [props.disableWatch=false] Whether to watch for changes or not.
24
+ * @param [props.onChange] A callback that is called when the node changes.
25
+ *
26
+ * @component
27
+ * @internal
28
+ */
29
+ export declare function ElementObserver({ element, children, onChange, disableWatch, }: {
30
+ element: HTMLElement;
31
+ children: any;
32
+ onChange?: (version: number) => void;
33
+ disableWatch?: boolean;
34
+ }): {
35
+ children: any;
36
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/onboarding",
3
- "version": "11.13.0",
3
+ "version": "11.15.0",
4
4
  "description": "An onboarding spotlight introduces new features to users through focused messages or multi-step tours.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -29,10 +29,6 @@
29
29
  "homepage": "https://atlassian.design/components/onboarding/",
30
30
  "atlassian": {
31
31
  "team": "Design System Team",
32
- "releaseModel": "continuous",
33
- "productPushConsumption": [
34
- "jira"
35
- ],
36
32
  "website": {
37
33
  "name": "Onboarding (spotlight)",
38
34
  "category": "Components"
@@ -41,16 +37,16 @@
41
37
  },
42
38
  "dependencies": {
43
39
  "@atlaskit/button": "^20.1.0",
44
- "@atlaskit/ds-lib": "^2.5.0",
40
+ "@atlaskit/ds-lib": "^2.6.0",
45
41
  "@atlaskit/heading": "^2.4.0",
46
- "@atlaskit/modal-dialog": "^12.15.0",
42
+ "@atlaskit/modal-dialog": "^12.16.0",
47
43
  "@atlaskit/motion": "^1.9.0",
48
44
  "@atlaskit/platform-feature-flags": "^0.3.0",
49
- "@atlaskit/popper": "^6.2.0",
45
+ "@atlaskit/popper": "^6.3.0",
50
46
  "@atlaskit/portal": "^4.9.0",
51
- "@atlaskit/primitives": "^12.0.0",
47
+ "@atlaskit/primitives": "^12.2.0",
52
48
  "@atlaskit/theme": "^13.0.0",
53
- "@atlaskit/tokens": "^1.59.0",
49
+ "@atlaskit/tokens": "^1.61.0",
54
50
  "@babel/runtime": "^7.0.0",
55
51
  "@emotion/react": "^11.7.1",
56
52
  "bind-event-listener": "^3.0.0",
@@ -91,6 +87,9 @@
91
87
  },
92
88
  "platform-design-system-dsp-20262-spotlight-target": {
93
89
  "type": "boolean"
90
+ },
91
+ "platform-design-system-dsp-20687-transition-group": {
92
+ "type": "boolean"
94
93
  }
95
94
  },
96
95
  "techstack": {