@atlaskit/editor-common 93.1.4 → 93.1.6
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 +32 -0
- package/afm-cc/tsconfig.json +3 -0
- package/dist/cjs/analytics/types/engagement-platform-events.js +5 -0
- package/dist/cjs/analytics/types/enums.js +1 -0
- package/dist/cjs/element-browser/components/StatelessElementBrowser.js +1 -2
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/prosemirror-dom-metadata/index.js +48 -0
- package/dist/cjs/react-node-view/getInlineNodeViewProducer.js +0 -5
- package/dist/cjs/react-node-view/index.js +0 -7
- package/dist/cjs/safe-plugin/index.js +35 -2
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/FloatingToolbar/Button.js +6 -2
- package/dist/cjs/ui/Mention/index.js +15 -3
- package/dist/cjs/ui/Mention/mention-with-providers.js +58 -8
- package/dist/cjs/ui/Pulse/Pulse.js +36 -0
- package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +2 -11
- package/dist/cjs/ui-menu/DropdownMenu/index.js +5 -20
- package/dist/cjs/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +5 -9
- package/dist/es2019/analytics/types/engagement-platform-events.js +1 -0
- package/dist/es2019/analytics/types/enums.js +1 -0
- package/dist/es2019/element-browser/components/StatelessElementBrowser.js +1 -2
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/prosemirror-dom-metadata/index.js +41 -0
- package/dist/es2019/react-node-view/getInlineNodeViewProducer.js +0 -5
- package/dist/es2019/react-node-view/index.js +0 -7
- package/dist/es2019/safe-plugin/index.js +31 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/FloatingToolbar/Button.js +6 -2
- package/dist/es2019/ui/Mention/index.js +15 -2
- package/dist/es2019/ui/Mention/mention-with-providers.js +49 -2
- package/dist/es2019/ui/Pulse/Pulse.js +29 -0
- package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +2 -11
- package/dist/es2019/ui-menu/DropdownMenu/index.js +5 -20
- package/dist/es2019/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +5 -9
- package/dist/esm/analytics/types/engagement-platform-events.js +1 -0
- package/dist/esm/analytics/types/enums.js +1 -0
- package/dist/esm/element-browser/components/StatelessElementBrowser.js +1 -2
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/prosemirror-dom-metadata/index.js +41 -0
- package/dist/esm/react-node-view/getInlineNodeViewProducer.js +0 -5
- package/dist/esm/react-node-view/index.js +0 -7
- package/dist/esm/safe-plugin/index.js +34 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/FloatingToolbar/Button.js +6 -2
- package/dist/esm/ui/Mention/index.js +15 -2
- package/dist/esm/ui/Mention/mention-with-providers.js +59 -10
- package/dist/esm/ui/Pulse/Pulse.js +29 -0
- package/dist/esm/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +2 -11
- package/dist/esm/ui-menu/DropdownMenu/index.js +5 -20
- package/dist/esm/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +5 -9
- package/dist/types/analytics/types/engagement-platform-events.d.ts +20 -0
- package/dist/types/analytics/types/enums.d.ts +2 -1
- package/dist/types/analytics/types/events.d.ts +2 -1
- package/dist/types/element-browser/components/StatelessElementBrowser.d.ts +1 -1
- package/dist/types/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +3 -1
- package/dist/types/prosemirror-dom-metadata/index.d.ts +18 -0
- package/dist/types/safe-plugin/index.d.ts +17 -0
- package/dist/types/types/floating-toolbar.d.ts +4 -0
- package/dist/types/ui/FloatingToolbar/Button.d.ts +3 -1
- package/dist/types/ui/Mention/mention-with-providers.d.ts +2 -1
- package/dist/types/ui/Pulse/Pulse.d.ts +18 -0
- package/dist/types/ui-menu/ColorPickerButton/index.d.ts +1 -1
- package/dist/types-ts4.5/analytics/types/engagement-platform-events.d.ts +20 -0
- package/dist/types-ts4.5/analytics/types/enums.d.ts +2 -1
- package/dist/types-ts4.5/analytics/types/events.d.ts +2 -1
- package/dist/types-ts4.5/element-browser/components/StatelessElementBrowser.d.ts +1 -1
- package/dist/types-ts4.5/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +3 -1
- package/dist/types-ts4.5/prosemirror-dom-metadata/index.d.ts +18 -0
- package/dist/types-ts4.5/safe-plugin/index.d.ts +17 -0
- package/dist/types-ts4.5/types/floating-toolbar.d.ts +4 -0
- package/dist/types-ts4.5/ui/FloatingToolbar/Button.d.ts +3 -1
- package/dist/types-ts4.5/ui/Mention/mention-with-providers.d.ts +2 -1
- package/dist/types-ts4.5/ui/Pulse/Pulse.d.ts +18 -0
- package/dist/types-ts4.5/ui-menu/ColorPickerButton/index.d.ts +1 -1
- package/package.json +10 -11
- package/prosemirror-dom-metadata/package.json +15 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
const isPMNode = nodeOrMark => {
|
|
3
|
+
return nodeOrMark instanceof PMNode || Array.isArray(nodeOrMark.marks);
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 🧱 Internal Helper Function: Editor FE Platform
|
|
8
|
+
*
|
|
9
|
+
* Creates a set of generic metadata attributes for a ProseMirror node or mark.
|
|
10
|
+
* These attributes are used to annotate the DOM representation with information
|
|
11
|
+
* about the node or mark type.
|
|
12
|
+
*
|
|
13
|
+
* @param {PMNode | PMMark} nodeOrMark - The ProseMirror node or mark to create metadata for.
|
|
14
|
+
* @returns {Record<string, string>} An object containing metadata attributes.
|
|
15
|
+
* - `data-prosemirror-content-type`: Specifies if the content is a node or mark.
|
|
16
|
+
* - `data-prosemirror-node-name` (if applicable): The name of the node.
|
|
17
|
+
* - `data-prosemirror-node-block` (if applicable): Indicates if the node is a block.
|
|
18
|
+
* - `data-prosemirror-node-inline` (if applicable): Indicates if the node is inline.
|
|
19
|
+
* - `data-prosemirror-mark-name` (if applicable): The name of the mark.
|
|
20
|
+
*/
|
|
21
|
+
export const createProseMirrorMetadata = nodeOrMark => {
|
|
22
|
+
const name = nodeOrMark.type.name;
|
|
23
|
+
const isNode = isPMNode(nodeOrMark);
|
|
24
|
+
const commonAttributes = {
|
|
25
|
+
'data-prosemirror-content-type': isNode ? 'node' : 'mark'
|
|
26
|
+
};
|
|
27
|
+
if (!isNode) {
|
|
28
|
+
return {
|
|
29
|
+
...commonAttributes,
|
|
30
|
+
['data-prosemirror-mark-name']: name
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
commonAttributes['data-prosemirror-node-name'] = name;
|
|
34
|
+
if (nodeOrMark.type.isBlock) {
|
|
35
|
+
commonAttributes['data-prosemirror-node-block'] = 'true';
|
|
36
|
+
}
|
|
37
|
+
if (nodeOrMark.type.isInline) {
|
|
38
|
+
commonAttributes['data-prosemirror-node-inline'] = 'true';
|
|
39
|
+
}
|
|
40
|
+
return commonAttributes;
|
|
41
|
+
};
|
|
@@ -7,7 +7,6 @@ import React from 'react';
|
|
|
7
7
|
|
|
8
8
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
9
9
|
import { jsx } from '@emotion/react';
|
|
10
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
11
10
|
import { ACTION_SUBJECT, ACTION_SUBJECT_ID } from '../analytics';
|
|
12
11
|
import { ErrorBoundary } from '../ui/ErrorBoundary';
|
|
13
12
|
import { analyticsEventKey, browser, getPerformanceOptions, startMeasureReactNodeViewRendered, stopMeasureReactNodeViewRendered } from '../utils';
|
|
@@ -40,10 +39,6 @@ function createNodeView({
|
|
|
40
39
|
// nodeView if DOM structure has nested plain "div"s, it doesn't see the
|
|
41
40
|
// difference between them and it kills the nodeView
|
|
42
41
|
domRef.classList.add(`${nodeViewParams.node.type.name}View-content-wrap`, `${inlineNodeViewClassname}`);
|
|
43
|
-
if (fg('platform_editor_breakout_use_css')) {
|
|
44
|
-
domRef.dataset.prosemirrorNodeName = nodeViewParams.node.type.name;
|
|
45
|
-
domRef.dataset.prosemirrorNodeInline = 'true';
|
|
46
|
-
}
|
|
47
42
|
|
|
48
43
|
// This util is shared for tracking rendering, and the ErrorBoundary that
|
|
49
44
|
// is setup to wrap the Component when rendering
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
4
|
import { ACTION_SUBJECT, ACTION_SUBJECT_ID } from '../analytics';
|
|
6
5
|
import { createDispatch } from '../event-dispatcher';
|
|
7
6
|
import { ErrorBoundary } from '../ui/ErrorBoundary';
|
|
@@ -62,12 +61,6 @@ export default class ReactNodeView {
|
|
|
62
61
|
// nodeView if DOM structure has nested plain "div"s, it doesn't see the
|
|
63
62
|
// difference between them and it kills the nodeView
|
|
64
63
|
this.domRef.classList.add(`${this.node.type.name}View-content-wrap`);
|
|
65
|
-
if (this.domRef && fg('platform_editor_breakout_use_css')) {
|
|
66
|
-
this.domRef.dataset.prosemirrorNodeName = this.node.type.name;
|
|
67
|
-
if (this.node.type.isBlock) {
|
|
68
|
-
this.domRef.dataset.prosemirrorNodeBlock = 'true';
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
64
|
const {
|
|
72
65
|
samplingRate,
|
|
73
66
|
slowThreshold,
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
import { Plugin } from '@atlaskit/editor-prosemirror/state';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { createProseMirrorMetadata } from '../prosemirror-dom-metadata';
|
|
4
|
+
/**
|
|
5
|
+
* 🧱 Internal Helper Function: Editor FE Platform
|
|
6
|
+
*
|
|
7
|
+
* Attaches generic ProseMirror metadata attributes to a given DOM element based on the properties of a ProseMirror node.
|
|
8
|
+
* This function is useful for annotating DOM elements with metadata that describes the type and characteristics of the ProseMirror node.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @param {Object} params - The parameters for the function.
|
|
12
|
+
* @param {PMNode} params.node - The ProseMirror node from which to derive metadata.
|
|
13
|
+
* @param {HTMLElement} params.dom - The DOM element to which the metadata attributes will be attached.
|
|
14
|
+
*/
|
|
15
|
+
export const attachGenericProseMirrorMetadata = ({
|
|
16
|
+
nodeOrMark,
|
|
17
|
+
dom
|
|
18
|
+
}) => {
|
|
19
|
+
const metadata = createProseMirrorMetadata(nodeOrMark);
|
|
20
|
+
Object.entries(metadata).forEach(([name, value]) => {
|
|
21
|
+
dom.setAttribute(name, value);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
2
25
|
// Wraper to avoid any exception during the get pos operation
|
|
3
26
|
// See this https://hello.atlassian.net/wiki/spaces/EDITOR/pages/2849713193/ED-19672+Extensions+Regression
|
|
4
27
|
// And this https://discuss.prosemirror.net/t/possible-bug-on-viewdesc-posbeforechild/5783
|
|
@@ -22,7 +45,14 @@ const wrapGetPosExceptions = spec => {
|
|
|
22
45
|
return;
|
|
23
46
|
// eslint-disable-next-line no-extra-bind
|
|
24
47
|
}).bind(thisArg);
|
|
25
|
-
|
|
48
|
+
const result = Reflect.apply(target, thisArg, [node, view, safeGetPos, ...more]);
|
|
49
|
+
if ((result === null || result === void 0 ? void 0 : result.dom) instanceof HTMLElement && fg('platform_editor_breakout_use_css')) {
|
|
50
|
+
attachGenericProseMirrorMetadata({
|
|
51
|
+
nodeOrMark: node,
|
|
52
|
+
dom: result.dom
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
26
56
|
}
|
|
27
57
|
});
|
|
28
58
|
return safeNodeView;
|
|
@@ -13,7 +13,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
|
|
|
13
13
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
14
14
|
import Layer from '../Layer';
|
|
15
15
|
const packageName = "@atlaskit/editor-common";
|
|
16
|
-
const packageVersion = "93.1.
|
|
16
|
+
const packageVersion = "93.1.6";
|
|
17
17
|
const halfFocusRing = 1;
|
|
18
18
|
const dropOffset = '0, 8';
|
|
19
19
|
class DropList extends Component {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { useEffect } from 'react';
|
|
2
2
|
import Button from '@atlaskit/button/custom-theme-button';
|
|
3
3
|
import Tooltip from '@atlaskit/tooltip';
|
|
4
|
+
import { Pulse } from '../Pulse/Pulse';
|
|
4
5
|
import { getButtonStyles, iconOnlySpacing } from './styles';
|
|
5
6
|
export default (({
|
|
6
7
|
title,
|
|
@@ -28,7 +29,8 @@ export default (({
|
|
|
28
29
|
tabIndex,
|
|
29
30
|
areaControls,
|
|
30
31
|
ariaLabel,
|
|
31
|
-
isRadioButton
|
|
32
|
+
isRadioButton,
|
|
33
|
+
pulse
|
|
32
34
|
}) => {
|
|
33
35
|
// Check if there's only an icon and add additional styles
|
|
34
36
|
const iconOnly = (icon || iconAfter) && !children;
|
|
@@ -52,6 +54,8 @@ export default (({
|
|
|
52
54
|
}, /*#__PURE__*/React.createElement("div", {
|
|
53
55
|
onMouseEnter: onMouseEnter,
|
|
54
56
|
onMouseLeave: onMouseLeave
|
|
57
|
+
}, /*#__PURE__*/React.createElement(Pulse, {
|
|
58
|
+
pulse: pulse
|
|
55
59
|
}, /*#__PURE__*/React.createElement(Button
|
|
56
60
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
57
61
|
, {
|
|
@@ -100,5 +104,5 @@ export default (({
|
|
|
100
104
|
// should be fixed here https://a11y-internal.atlassian.net/browse/DST-287
|
|
101
105
|
,
|
|
102
106
|
tabIndex: tabIndex
|
|
103
|
-
}, children)));
|
|
107
|
+
}, children))));
|
|
104
108
|
});
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
/* eslint-disable @repo/internal/react/no-class-components */
|
|
2
3
|
import React, { PureComponent } from 'react';
|
|
4
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
5
|
import { ProviderFactory, WithProviders } from '../../provider-factory';
|
|
4
|
-
import MentionWithProviders from './mention-with-providers';
|
|
6
|
+
import { MentionWithProviders, MentionWithProvidersOld } from './mention-with-providers';
|
|
5
7
|
export default class Mention extends PureComponent {
|
|
6
8
|
constructor(props) {
|
|
7
9
|
super(props);
|
|
@@ -17,7 +19,18 @@ export default class Mention extends PureComponent {
|
|
|
17
19
|
mentionProvider,
|
|
18
20
|
profilecardProvider
|
|
19
21
|
} = providers;
|
|
20
|
-
|
|
22
|
+
if (fg('platform_editor_react18_mention_with_provider')) {
|
|
23
|
+
return /*#__PURE__*/React.createElement(MentionWithProviders, {
|
|
24
|
+
id: id,
|
|
25
|
+
text: text,
|
|
26
|
+
accessLevel: accessLevel,
|
|
27
|
+
localId: localId,
|
|
28
|
+
eventHandlers: eventHandlers,
|
|
29
|
+
mentionProvider: mentionProvider,
|
|
30
|
+
profilecardProvider: profilecardProvider
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return /*#__PURE__*/React.createElement(MentionWithProvidersOld, {
|
|
21
34
|
id: id,
|
|
22
35
|
text: text,
|
|
23
36
|
accessLevel: accessLevel,
|
|
@@ -1,11 +1,58 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
import React, { PureComponent } from 'react';
|
|
3
|
+
import React, { PureComponent, useLayoutEffect, useRef, useState } from 'react';
|
|
4
4
|
import { ResourcedMention } from '@atlaskit/mention/element';
|
|
5
5
|
import ResourcedMentionWithProfilecard from './mention-with-profilecard';
|
|
6
6
|
const GENERIC_USER_IDS = ['HipChat', 'all', 'here'];
|
|
7
7
|
const noop = () => {};
|
|
8
|
-
export
|
|
8
|
+
export const MentionWithProviders = ({
|
|
9
|
+
accessLevel,
|
|
10
|
+
eventHandlers,
|
|
11
|
+
id,
|
|
12
|
+
mentionProvider,
|
|
13
|
+
profilecardProvider: profilecardProviderResolver,
|
|
14
|
+
text,
|
|
15
|
+
localId
|
|
16
|
+
}) => {
|
|
17
|
+
const [profilecardProvider, setProfilecardProvider] = useState(null);
|
|
18
|
+
const mountedRef = useRef(true);
|
|
19
|
+
useLayoutEffect(() => {
|
|
20
|
+
mountedRef.current = true;
|
|
21
|
+
return () => {
|
|
22
|
+
mountedRef.current = false;
|
|
23
|
+
};
|
|
24
|
+
}, []);
|
|
25
|
+
useLayoutEffect(() => {
|
|
26
|
+
// We are not using async/await here to avoid having an intermediate Promise
|
|
27
|
+
// introduced by the transpiler.
|
|
28
|
+
// This will allow consumer to use a SynchronousPromise.resolve and avoid useless
|
|
29
|
+
// rerendering
|
|
30
|
+
profilecardProviderResolver === null || profilecardProviderResolver === void 0 ? void 0 : profilecardProviderResolver.then(result => {
|
|
31
|
+
if (mountedRef.current) {
|
|
32
|
+
setProfilecardProvider(result);
|
|
33
|
+
}
|
|
34
|
+
}).catch(() => {
|
|
35
|
+
if (mountedRef.current) {
|
|
36
|
+
setProfilecardProvider(null);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}, [profilecardProviderResolver]);
|
|
40
|
+
const MentionComponent = profilecardProviderResolver && GENERIC_USER_IDS.indexOf(id) === -1 ? ResourcedMentionWithProfilecard : ResourcedMention;
|
|
41
|
+
return /*#__PURE__*/React.createElement(MentionComponent, {
|
|
42
|
+
id: id,
|
|
43
|
+
text: text,
|
|
44
|
+
accessLevel: accessLevel,
|
|
45
|
+
localId: localId,
|
|
46
|
+
mentionProvider: mentionProvider,
|
|
47
|
+
profilecardProvider: profilecardProvider,
|
|
48
|
+
onClick: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onClick,
|
|
49
|
+
onMouseEnter: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseEnter,
|
|
50
|
+
onMouseLeave: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseLeave
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
55
|
+
export class MentionWithProvidersOld extends PureComponent {
|
|
9
56
|
constructor(...args) {
|
|
10
57
|
super(...args);
|
|
11
58
|
_defineProperty(this, "state", {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SpotlightPulse } from '@atlaskit/onboarding';
|
|
3
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
4
|
+
/**
|
|
5
|
+
* Wraps children with {@link SpotlightPulse} component.
|
|
6
|
+
*
|
|
7
|
+
* It adds pulse effect to children if `pulse` is `true`.
|
|
8
|
+
*
|
|
9
|
+
* This custom component exists because the {@link SpotlightPulse} with `pulse={false}` renders extra `div` around `children`.
|
|
10
|
+
* We want to keep `children` as it is if there is no `pulse`.
|
|
11
|
+
*/
|
|
12
|
+
export function Pulse({
|
|
13
|
+
pulse,
|
|
14
|
+
radius = 3,
|
|
15
|
+
children
|
|
16
|
+
}) {
|
|
17
|
+
if (editorExperiment('platform_editor_ai_onboarding', 'test') && pulse) {
|
|
18
|
+
return (
|
|
19
|
+
/*#__PURE__*/
|
|
20
|
+
// SpotlightPulse shows pulse effect if `pulse` is `undefined`.
|
|
21
|
+
// That's why we need to cast `pulse` to `false` if it's `undefined`.
|
|
22
|
+
React.createElement(SpotlightPulse, {
|
|
23
|
+
radius: radius,
|
|
24
|
+
pulse: pulse !== null && pulse !== void 0 ? pulse : false
|
|
25
|
+
}, children)
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
29
|
+
}
|
package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
2
|
const hasEnabledItems = list => list.some(item => item.getAttribute('aria-disabled') !== 'true');
|
|
4
3
|
|
|
5
4
|
/**
|
|
@@ -112,11 +111,7 @@ export const MenuArrowKeyNavigationProvider = ({
|
|
|
112
111
|
if (targetElement instanceof HTMLElement && !targetElement.closest('.custom-key-handler-wrapper')) {
|
|
113
112
|
return;
|
|
114
113
|
}
|
|
115
|
-
if (
|
|
116
|
-
if (!disableCloseOnArrowClick) {
|
|
117
|
-
handleClose(event);
|
|
118
|
-
}
|
|
119
|
-
} else {
|
|
114
|
+
if (!disableCloseOnArrowClick) {
|
|
120
115
|
handleClose(event);
|
|
121
116
|
}
|
|
122
117
|
if (targetElement instanceof HTMLElement && !targetElement.closest('[data-testid="editor-floating-toolbar"]')) {
|
|
@@ -127,11 +122,7 @@ export const MenuArrowKeyNavigationProvider = ({
|
|
|
127
122
|
if (targetElement instanceof HTMLElement && !targetElement.closest('.custom-key-handler-wrapper')) {
|
|
128
123
|
return;
|
|
129
124
|
}
|
|
130
|
-
if (
|
|
131
|
-
if (!disableCloseOnArrowClick) {
|
|
132
|
-
handleClose(event);
|
|
133
|
-
}
|
|
134
|
-
} else {
|
|
125
|
+
if (!disableCloseOnArrowClick) {
|
|
135
126
|
handleClose(event);
|
|
136
127
|
}
|
|
137
128
|
if (targetElement instanceof HTMLElement && !targetElement.closest('[data-testid="editor-floating-toolbar"]')) {
|
|
@@ -195,9 +195,9 @@ export default class DropdownMenuWrapper extends PureComponent {
|
|
|
195
195
|
shouldFitContainer: true,
|
|
196
196
|
isTriggerNotTabbable: true,
|
|
197
197
|
handleClickOutside: this.handleClose,
|
|
198
|
-
handleEscapeKeydown:
|
|
198
|
+
handleEscapeKeydown: handleEscapeKeydown || this.handleCloseAndFocus,
|
|
199
199
|
handleEnterKeydown: e => {
|
|
200
|
-
if (fg('platform_editor_a11y_table_context_menu')
|
|
200
|
+
if (fg('platform_editor_a11y_table_context_menu')) {
|
|
201
201
|
if (!allowEnterDefaultBehavior) {
|
|
202
202
|
e.preventDefault();
|
|
203
203
|
}
|
|
@@ -305,27 +305,12 @@ export function DropdownMenuItem({
|
|
|
305
305
|
const _handleSubmenuActive = event => {
|
|
306
306
|
setSubmenuActive(Boolean(event.target instanceof HTMLElement && event.target.closest(`.${DropdownMenuSharedCssClassName.SUBMENU}`)));
|
|
307
307
|
};
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
ariaLabel = item['aria-label'] === '' ? undefined : item['aria-label'] || String(item.content);
|
|
311
|
-
} else {
|
|
312
|
-
ariaLabel = item['aria-label'] || String(item.content);
|
|
313
|
-
}
|
|
314
|
-
let testId;
|
|
315
|
-
if (fg('platform-editor-a11y-image-border-options-dropdown')) {
|
|
316
|
-
testId = item['data-testid'] || `dropdown-item__${item.content}`;
|
|
317
|
-
} else {
|
|
318
|
-
testId = `dropdown-item__${String(item.content)}`;
|
|
319
|
-
}
|
|
308
|
+
const ariaLabel = item['aria-label'] === '' ? undefined : item['aria-label'] || String(item.content);
|
|
309
|
+
const testId = item['data-testid'] || `dropdown-item__${item.content}`;
|
|
320
310
|
|
|
321
311
|
// From time to time we don't want to have any tabIndex on item wrapper
|
|
322
312
|
// especially when we pass any interactive element as a item.content
|
|
323
|
-
|
|
324
|
-
if (fg('platform-editor-a11y-image-border-options-dropdown')) {
|
|
325
|
-
tabIndex = item.wrapperTabIndex === null ? undefined : item.wrapperTabIndex || -1;
|
|
326
|
-
} else {
|
|
327
|
-
tabIndex = -1;
|
|
328
|
-
}
|
|
313
|
+
const tabIndex = item.wrapperTabIndex === null ? undefined : item.wrapperTabIndex || -1;
|
|
329
314
|
const dropListItem = jsx("div", {
|
|
330
315
|
css: () => buttonStyles(item.isActive, submenuActive),
|
|
331
316
|
tabIndex: tabIndex,
|
|
@@ -8,7 +8,6 @@ import React, { useCallback, useLayoutEffect, useRef } from 'react';
|
|
|
8
8
|
|
|
9
9
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
10
10
|
import { css, jsx } from '@emotion/react';
|
|
11
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
11
|
import { ELEMENT_BROWSER_ID } from '../../element-browser';
|
|
13
12
|
import { fullPageMessages as messages } from '../../messages';
|
|
14
13
|
import { EDIT_AREA_ID } from '../../ui';
|
|
@@ -115,7 +114,7 @@ export const ToolbarArrowKeyNavigationProvider = ({
|
|
|
115
114
|
* @param event
|
|
116
115
|
*/
|
|
117
116
|
const handleKeyDown = event => {
|
|
118
|
-
var _document$querySelect, _document$querySelect2, _wrapperRef$current2;
|
|
117
|
+
var _document$querySelect, _document$querySelect2, _wrapperRef$current, _wrapperRef$current2;
|
|
119
118
|
// To trap the focus inside the horizontal toolbar for left and right arrow keys
|
|
120
119
|
const targetElement = event.target;
|
|
121
120
|
if (targetElement instanceof HTMLElement && !targetElement.closest(`${childComponentSelector}`)) {
|
|
@@ -129,13 +128,10 @@ export const ToolbarArrowKeyNavigationProvider = ({
|
|
|
129
128
|
// if menu wrapper exists, then a menu is open and arrow keys will be handled by MenuArrowKeyNavigationProvider
|
|
130
129
|
return;
|
|
131
130
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// if element browser is open, then arrow keys will be handled by MenuArrowKeyNavigationProvider
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
131
|
+
const elementBrowser = wrapperRef === null || wrapperRef === void 0 ? void 0 : (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.querySelector(`#${ELEMENT_BROWSER_ID}`);
|
|
132
|
+
if (elementBrowser) {
|
|
133
|
+
// if element browser is open, then arrow keys will be handled by MenuArrowKeyNavigationProvider
|
|
134
|
+
return;
|
|
139
135
|
}
|
|
140
136
|
const filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
|
|
141
137
|
if (!filteredFocusableElements || (filteredFocusableElements === null || filteredFocusableElements === void 0 ? void 0 : filteredFocusableElements.length) === 0) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -253,6 +253,7 @@ export var ACTION_SUBJECT = /*#__PURE__*/function (ACTION_SUBJECT) {
|
|
|
253
253
|
ACTION_SUBJECT["ELEMENT"] = "element";
|
|
254
254
|
ACTION_SUBJECT["CONTEXT_MENU"] = "contextMenu";
|
|
255
255
|
ACTION_SUBJECT["INLINE_DIALOG"] = "inlineDialog";
|
|
256
|
+
ACTION_SUBJECT["ENGAGEMENT_PLATFORM"] = "engagementPlatform";
|
|
256
257
|
return ACTION_SUBJECT;
|
|
257
258
|
}({});
|
|
258
259
|
export var ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTION_SUBJECT_ID) {
|
|
@@ -11,7 +11,6 @@ import { css, jsx } from '@emotion/react';
|
|
|
11
11
|
import { FormattedMessage } from 'react-intl-next';
|
|
12
12
|
import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext';
|
|
13
13
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
14
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
15
14
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, fireAnalyticsEvent } from '../../analytics';
|
|
16
15
|
import { DEVICE_BREAKPOINT_NUMBERS, ELEMENT_BROWSER_ID, GRID_SIZE, INLINE_SIDEBAR_HEIGHT, SIDEBAR_HEADING_WRAPPER_HEIGHT, SIDEBAR_WIDTH } from '../constants';
|
|
17
16
|
import useContainerWidth from '../hooks/use-container-width';
|
|
@@ -215,7 +214,7 @@ function StatelessElementBrowser(props) {
|
|
|
215
214
|
return jsx("div", {
|
|
216
215
|
css: wrapper,
|
|
217
216
|
"data-testid": "element-browser",
|
|
218
|
-
id:
|
|
217
|
+
id: ELEMENT_BROWSER_ID
|
|
219
218
|
}, jsx(ContainerWidthMonitor, null), containerWidth < DEVICE_BREAKPOINT_NUMBERS.medium ? jsx(MobileBrowser, _extends({}, props, {
|
|
220
219
|
selectedItemIndex: selectedItemIndex,
|
|
221
220
|
focusedItemIndex: focusedItemIndex,
|
|
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
7
|
import { isFedRamp } from './environment';
|
|
8
8
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
9
9
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
10
|
-
var packageVersion = "93.1.
|
|
10
|
+
var packageVersion = "93.1.6";
|
|
11
11
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
12
12
|
// Remove URL as it has UGC
|
|
13
13
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
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
|
+
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
|
+
import { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
5
|
+
var isPMNode = function isPMNode(nodeOrMark) {
|
|
6
|
+
return nodeOrMark instanceof PMNode || Array.isArray(nodeOrMark.marks);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 🧱 Internal Helper Function: Editor FE Platform
|
|
11
|
+
*
|
|
12
|
+
* Creates a set of generic metadata attributes for a ProseMirror node or mark.
|
|
13
|
+
* These attributes are used to annotate the DOM representation with information
|
|
14
|
+
* about the node or mark type.
|
|
15
|
+
*
|
|
16
|
+
* @param {PMNode | PMMark} nodeOrMark - The ProseMirror node or mark to create metadata for.
|
|
17
|
+
* @returns {Record<string, string>} An object containing metadata attributes.
|
|
18
|
+
* - `data-prosemirror-content-type`: Specifies if the content is a node or mark.
|
|
19
|
+
* - `data-prosemirror-node-name` (if applicable): The name of the node.
|
|
20
|
+
* - `data-prosemirror-node-block` (if applicable): Indicates if the node is a block.
|
|
21
|
+
* - `data-prosemirror-node-inline` (if applicable): Indicates if the node is inline.
|
|
22
|
+
* - `data-prosemirror-mark-name` (if applicable): The name of the mark.
|
|
23
|
+
*/
|
|
24
|
+
export var createProseMirrorMetadata = function createProseMirrorMetadata(nodeOrMark) {
|
|
25
|
+
var name = nodeOrMark.type.name;
|
|
26
|
+
var isNode = isPMNode(nodeOrMark);
|
|
27
|
+
var commonAttributes = {
|
|
28
|
+
'data-prosemirror-content-type': isNode ? 'node' : 'mark'
|
|
29
|
+
};
|
|
30
|
+
if (!isNode) {
|
|
31
|
+
return _objectSpread(_objectSpread({}, commonAttributes), {}, _defineProperty({}, 'data-prosemirror-mark-name', name));
|
|
32
|
+
}
|
|
33
|
+
commonAttributes['data-prosemirror-node-name'] = name;
|
|
34
|
+
if (nodeOrMark.type.isBlock) {
|
|
35
|
+
commonAttributes['data-prosemirror-node-block'] = 'true';
|
|
36
|
+
}
|
|
37
|
+
if (nodeOrMark.type.isInline) {
|
|
38
|
+
commonAttributes['data-prosemirror-node-inline'] = 'true';
|
|
39
|
+
}
|
|
40
|
+
return commonAttributes;
|
|
41
|
+
};
|
|
@@ -10,7 +10,6 @@ import React from 'react';
|
|
|
10
10
|
|
|
11
11
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
12
12
|
import { jsx } from '@emotion/react';
|
|
13
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
14
13
|
import { ACTION_SUBJECT, ACTION_SUBJECT_ID } from '../analytics';
|
|
15
14
|
import { ErrorBoundary } from '../ui/ErrorBoundary';
|
|
16
15
|
import { analyticsEventKey, browser, getPerformanceOptions, startMeasureReactNodeViewRendered, stopMeasureReactNodeViewRendered } from '../utils';
|
|
@@ -42,10 +41,6 @@ function createNodeView(_ref) {
|
|
|
42
41
|
// nodeView if DOM structure has nested plain "div"s, it doesn't see the
|
|
43
42
|
// difference between them and it kills the nodeView
|
|
44
43
|
domRef.classList.add("".concat(nodeViewParams.node.type.name, "View-content-wrap"), "".concat(inlineNodeViewClassname));
|
|
45
|
-
if (fg('platform_editor_breakout_use_css')) {
|
|
46
|
-
domRef.dataset.prosemirrorNodeName = nodeViewParams.node.type.name;
|
|
47
|
-
domRef.dataset.prosemirrorNodeInline = 'true';
|
|
48
|
-
}
|
|
49
44
|
|
|
50
45
|
// This util is shared for tracking rendering, and the ErrorBoundary that
|
|
51
46
|
// is setup to wrap the Component when rendering
|
|
@@ -3,7 +3,6 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
|
3
3
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
5
|
import React from 'react';
|
|
6
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
6
|
import { ACTION_SUBJECT, ACTION_SUBJECT_ID } from '../analytics';
|
|
8
7
|
import { createDispatch } from '../event-dispatcher';
|
|
9
8
|
import { ErrorBoundary } from '../ui/ErrorBoundary';
|
|
@@ -70,12 +69,6 @@ var ReactNodeView = /*#__PURE__*/function () {
|
|
|
70
69
|
// nodeView if DOM structure has nested plain "div"s, it doesn't see the
|
|
71
70
|
// difference between them and it kills the nodeView
|
|
72
71
|
this.domRef.classList.add("".concat(this.node.type.name, "View-content-wrap"));
|
|
73
|
-
if (this.domRef && fg('platform_editor_breakout_use_css')) {
|
|
74
|
-
this.domRef.dataset.prosemirrorNodeName = this.node.type.name;
|
|
75
|
-
if (this.node.type.isBlock) {
|
|
76
|
-
this.domRef.dataset.prosemirrorNodeBlock = 'true';
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
72
|
var _getPerformanceOption = getPerformanceOptions(this.view),
|
|
80
73
|
samplingRate = _getPerformanceOption.samplingRate,
|
|
81
74
|
slowThreshold = _getPerformanceOption.slowThreshold,
|
|
@@ -5,9 +5,35 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
5
5
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
6
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
7
7
|
import _toArray from "@babel/runtime/helpers/toArray";
|
|
8
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
8
9
|
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
10
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
10
11
|
import { Plugin } from '@atlaskit/editor-prosemirror/state';
|
|
12
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
13
|
+
import { createProseMirrorMetadata } from '../prosemirror-dom-metadata';
|
|
14
|
+
/**
|
|
15
|
+
* 🧱 Internal Helper Function: Editor FE Platform
|
|
16
|
+
*
|
|
17
|
+
* Attaches generic ProseMirror metadata attributes to a given DOM element based on the properties of a ProseMirror node.
|
|
18
|
+
* This function is useful for annotating DOM elements with metadata that describes the type and characteristics of the ProseMirror node.
|
|
19
|
+
*
|
|
20
|
+
*
|
|
21
|
+
* @param {Object} params - The parameters for the function.
|
|
22
|
+
* @param {PMNode} params.node - The ProseMirror node from which to derive metadata.
|
|
23
|
+
* @param {HTMLElement} params.dom - The DOM element to which the metadata attributes will be attached.
|
|
24
|
+
*/
|
|
25
|
+
export var attachGenericProseMirrorMetadata = function attachGenericProseMirrorMetadata(_ref) {
|
|
26
|
+
var nodeOrMark = _ref.nodeOrMark,
|
|
27
|
+
dom = _ref.dom;
|
|
28
|
+
var metadata = createProseMirrorMetadata(nodeOrMark);
|
|
29
|
+
Object.entries(metadata).forEach(function (_ref2) {
|
|
30
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
31
|
+
name = _ref3[0],
|
|
32
|
+
value = _ref3[1];
|
|
33
|
+
dom.setAttribute(name, value);
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
|
|
11
37
|
// Wraper to avoid any exception during the get pos operation
|
|
12
38
|
// See this https://hello.atlassian.net/wiki/spaces/EDITOR/pages/2849713193/ED-19672+Extensions+Regression
|
|
13
39
|
// And this https://discuss.prosemirror.net/t/possible-bug-on-viewdesc-posbeforechild/5783
|
|
@@ -35,7 +61,14 @@ var wrapGetPosExceptions = function wrapGetPosExceptions(spec) {
|
|
|
35
61
|
return;
|
|
36
62
|
// eslint-disable-next-line no-extra-bind
|
|
37
63
|
}.bind(thisArg);
|
|
38
|
-
|
|
64
|
+
var result = Reflect.apply(target, thisArg, [node, view, safeGetPos].concat(_toConsumableArray(more)));
|
|
65
|
+
if ((result === null || result === void 0 ? void 0 : result.dom) instanceof HTMLElement && fg('platform_editor_breakout_use_css')) {
|
|
66
|
+
attachGenericProseMirrorMetadata({
|
|
67
|
+
nodeOrMark: node,
|
|
68
|
+
dom: result.dom
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
39
72
|
}
|
|
40
73
|
});
|
|
41
74
|
return safeNodeView;
|
|
@@ -21,7 +21,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
|
|
|
21
21
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
22
22
|
import Layer from '../Layer';
|
|
23
23
|
var packageName = "@atlaskit/editor-common";
|
|
24
|
-
var packageVersion = "93.1.
|
|
24
|
+
var packageVersion = "93.1.6";
|
|
25
25
|
var halfFocusRing = 1;
|
|
26
26
|
var dropOffset = '0, 8';
|
|
27
27
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -6,6 +6,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
6
6
|
import React, { useEffect } from 'react';
|
|
7
7
|
import Button from '@atlaskit/button/custom-theme-button';
|
|
8
8
|
import Tooltip from '@atlaskit/tooltip';
|
|
9
|
+
import { Pulse } from '../Pulse/Pulse';
|
|
9
10
|
import { getButtonStyles, iconOnlySpacing } from './styles';
|
|
10
11
|
export default (function (_ref) {
|
|
11
12
|
var title = _ref.title,
|
|
@@ -35,7 +36,8 @@ export default (function (_ref) {
|
|
|
35
36
|
tabIndex = _ref.tabIndex,
|
|
36
37
|
areaControls = _ref.areaControls,
|
|
37
38
|
ariaLabel = _ref.ariaLabel,
|
|
38
|
-
isRadioButton = _ref.isRadioButton
|
|
39
|
+
isRadioButton = _ref.isRadioButton,
|
|
40
|
+
pulse = _ref.pulse;
|
|
39
41
|
// Check if there's only an icon and add additional styles
|
|
40
42
|
var iconOnly = (icon || iconAfter) && !children;
|
|
41
43
|
var customSpacing = iconOnly ? iconOnlySpacing : {};
|
|
@@ -58,6 +60,8 @@ export default (function (_ref) {
|
|
|
58
60
|
}, /*#__PURE__*/React.createElement("div", {
|
|
59
61
|
onMouseEnter: onMouseEnter,
|
|
60
62
|
onMouseLeave: onMouseLeave
|
|
63
|
+
}, /*#__PURE__*/React.createElement(Pulse, {
|
|
64
|
+
pulse: pulse
|
|
61
65
|
}, /*#__PURE__*/React.createElement(Button
|
|
62
66
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
63
67
|
, {
|
|
@@ -100,5 +104,5 @@ export default (function (_ref) {
|
|
|
100
104
|
// should be fixed here https://a11y-internal.atlassian.net/browse/DST-287
|
|
101
105
|
,
|
|
102
106
|
tabIndex: tabIndex
|
|
103
|
-
}, children)));
|
|
107
|
+
}, children))));
|
|
104
108
|
});
|