@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.
- package/CHANGELOG.md +15 -0
- package/dist/cjs/components/animation.js +7 -2
- package/dist/cjs/components/clone.js +15 -3
- package/dist/cjs/components/modal.js +2 -2
- package/dist/cjs/components/node-resolver-spotlight-inner.js +1 -1
- package/dist/cjs/components/node-resolver-spotlight-target.js +1 -1
- package/dist/cjs/components/spotlight-card.js +1 -1
- package/dist/cjs/components/spotlight-dialog.js +2 -2
- package/dist/cjs/components/spotlight-inner.js +1 -1
- package/dist/cjs/components/spotlight-manager.js +2 -2
- package/dist/cjs/components/spotlight-transition.js +2 -2
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/value-changed.js +1 -1
- package/dist/cjs/utils/use-element-observer.js +131 -0
- package/dist/es2019/components/animation.js +31 -24
- package/dist/es2019/components/clone.js +10 -2
- package/dist/es2019/utils/use-element-observer.js +114 -0
- package/dist/esm/components/animation.js +7 -2
- package/dist/esm/components/clone.js +12 -2
- package/dist/esm/components/modal.js +1 -1
- package/dist/esm/components/spotlight-dialog.js +1 -1
- package/dist/esm/components/spotlight-inner.js +1 -1
- package/dist/esm/components/spotlight-manager.js +1 -1
- package/dist/esm/components/spotlight-transition.js +1 -1
- package/dist/esm/components/value-changed.js +1 -1
- package/dist/esm/utils/use-element-observer.js +123 -0
- package/dist/types/components/clone.d.ts +5 -1
- package/dist/types/components/spotlight-inner.d.ts +1 -1
- package/dist/types/utils/use-element-observer.d.ts +36 -0
- package/dist/types-ts4.5/components/clone.d.ts +5 -1
- package/dist/types-ts4.5/components/spotlight-inner.d.ts +1 -1
- package/dist/types-ts4.5/utils/use-element-observer.d.ts +36 -0
- 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
|
-
|
|
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
|
-
},
|
|
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
|
|
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 =
|
|
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:
|
|
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 &&
|
|
28
|
-
function _createSuper(
|
|
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 &&
|
|
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 &&
|
|
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 &&
|
|
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 &&
|
|
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(
|
|
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(
|
|
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 &&
|
|
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(
|
|
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 &&
|
|
20
|
-
function _createSuper(
|
|
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 &&
|
|
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(
|
|
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
|
-
}) =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
},
|
|
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:
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
40
|
+
"@atlaskit/ds-lib": "^2.6.0",
|
|
45
41
|
"@atlaskit/heading": "^2.4.0",
|
|
46
|
-
"@atlaskit/modal-dialog": "^12.
|
|
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.
|
|
45
|
+
"@atlaskit/popper": "^6.3.0",
|
|
50
46
|
"@atlaskit/portal": "^4.9.0",
|
|
51
|
-
"@atlaskit/primitives": "^12.
|
|
47
|
+
"@atlaskit/primitives": "^12.2.0",
|
|
52
48
|
"@atlaskit/theme": "^13.0.0",
|
|
53
|
-
"@atlaskit/tokens": "^1.
|
|
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": {
|