@atlaskit/editor-common 110.32.3 → 110.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +1 -1
  3. package/dist/cjs/hooks/useSharedPluginState.js +1 -1
  4. package/dist/cjs/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -2
  5. package/dist/cjs/messages/placeholder-text.js +25 -0
  6. package/dist/cjs/monitoring/error.js +1 -1
  7. package/dist/cjs/ui/DropList/index.js +1 -1
  8. package/dist/cjs/ui-menu/DropdownMenu/index.js +3 -2
  9. package/dist/cjs/utils/document.js +19 -4
  10. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +1 -1
  11. package/dist/es2019/hooks/useSharedPluginState.js +1 -1
  12. package/dist/es2019/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -2
  13. package/dist/es2019/messages/placeholder-text.js +25 -0
  14. package/dist/es2019/monitoring/error.js +1 -1
  15. package/dist/es2019/ui/DropList/index.js +1 -1
  16. package/dist/es2019/ui-menu/DropdownMenu/index.js +5 -4
  17. package/dist/es2019/utils/document.js +19 -4
  18. package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +1 -1
  19. package/dist/esm/hooks/useSharedPluginState.js +1 -1
  20. package/dist/esm/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -2
  21. package/dist/esm/messages/placeholder-text.js +25 -0
  22. package/dist/esm/monitoring/error.js +1 -1
  23. package/dist/esm/ui/DropList/index.js +1 -1
  24. package/dist/esm/ui-menu/DropdownMenu/index.js +3 -2
  25. package/dist/esm/utils/document.js +19 -4
  26. package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +1 -1
  27. package/dist/types/hooks/useSharedPluginState.d.ts +1 -1
  28. package/dist/types/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +1 -1
  29. package/dist/types/messages/placeholder-text.d.ts +25 -0
  30. package/dist/types/utils/document.d.ts +2 -1
  31. package/dist/types-ts4.5/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +1 -1
  32. package/dist/types-ts4.5/hooks/useSharedPluginState.d.ts +1 -1
  33. package/dist/types-ts4.5/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +1 -1
  34. package/dist/types-ts4.5/messages/placeholder-text.d.ts +25 -0
  35. package/dist/types-ts4.5/utils/document.d.ts +2 -1
  36. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 110.33.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`025002b2a71fc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/025002b2a71fc) -
8
+ [ux] [EDITOR-3320] fix bug on panel and table placeholders/ added code mark on keyboard shorcuts
9
+ on panel and table placeholders
10
+ - [`e12aaa9abfa83`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e12aaa9abfa83) -
11
+ EDITOR-3302 - Support multiple editor streaming
12
+
13
+ ### Patch Changes
14
+
15
+ - [`05ee61c6ace09`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/05ee61c6ace09) -
16
+ Improve performance of show diff by increasing merge of steps
17
+ - [`516909774accc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/516909774accc) -
18
+ Fixing type issues
19
+ - [`3ff392895f5d3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3ff392895f5d3) -
20
+ [ux] A11y issue fix: The fallback colors used for menu items are not accessible and does not match
21
+ with tokens
22
+ - Updated dependencies
23
+
3
24
  ## 110.32.3
4
25
 
5
26
  ### Patch Changes
@@ -138,7 +138,7 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
138
138
  showUpdatedLivePages1PBodiedExtensionUI = _ref.showUpdatedLivePages1PBodiedExtensionUI,
139
139
  showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
140
140
  showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
141
- pluginInjectionApi = _ref.pluginInjectionApi;
141
+ _pluginInjectionApi = _ref.pluginInjectionApi;
142
142
  var isInlineExtension = extensionName === 'inlineExtension';
143
143
  var showDefaultBodiedStyles = (0, _expValEquals.expValEquals)('cc_editor_ttvc_release_bundle_one', 'isEnabled', true) ? isBodiedMacro : isBodiedMacro && !isNodeHovered;
144
144
  var shouldShowBodiedMacroLabel = getShouldShowBodiedMacroLabel(isBodiedMacro, isNodeHovered, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, showUpdatedLivePages1PBodiedExtensionUI);
@@ -43,7 +43,7 @@ function useStaticPlugins(plugins) {
43
43
  }
44
44
  /**
45
45
  *
46
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
46
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
47
47
  * but selects a slice of the state which is more performant.
48
48
  *
49
49
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
@@ -41,9 +41,9 @@ var _usePluginStateEffect = require("../usePluginStateEffect");
41
41
 
42
42
  /**
43
43
  *
44
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
44
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
45
45
  * but selects a slice of the state which is more performant.
46
- *
46
+ *
47
47
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
48
48
  * If the plugins you are listening to generate multiple shared states while the user is typing,
49
49
  * your React Component will get only the last one.
@@ -16,11 +16,36 @@ var placeholderTextMessages = exports.placeholderTextMessages = (0, _reactIntlNe
16
16
  defaultMessage: '/ to insert',
17
17
  description: 'Short placeholder text for empty nodes'
18
18
  },
19
+ shortEmptyNodePlaceholderADFSlashShortcut: {
20
+ id: 'fabric.editor.shortEmptyNodePlaceholderSlash',
21
+ defaultMessage: '/',
22
+ description: 'Slash character in short empty node placeholder'
23
+ },
24
+ shortEmptyNodePlaceholderADFSuffix: {
25
+ id: 'fabric.editor.shortEmptyNodePlaceholderSuffix',
26
+ defaultMessage: ' to insert',
27
+ description: 'Text after slash in short empty node placeholder'
28
+ },
19
29
  longEmptyNodePlaceholderText: {
20
30
  id: 'fabric.editor.longEmptyNodePlaceholderText',
21
31
  defaultMessage: 'Type / to insert elements',
22
32
  description: 'Long placeholder text for empty nodes'
23
33
  },
34
+ longEmptyNodePlaceholderADFPrefix: {
35
+ id: 'fabric.editor.longEmptyNodePlaceholderPrefix',
36
+ defaultMessage: 'Type ',
37
+ description: 'Text before slash in long empty node placeholder'
38
+ },
39
+ longEmptyNodePlaceholderADFSlashShortcut: {
40
+ id: 'fabric.editor.longEmptyNodePlaceholderSlash',
41
+ defaultMessage: '/',
42
+ description: 'Slash character in long empty node placeholder'
43
+ },
44
+ longEmptyNodePlaceholderADFSuffix: {
45
+ id: 'fabric.editor.longEmptyNodePlaceholderSuffix',
46
+ defaultMessage: ' to insert elements',
47
+ description: 'Text after slash in long empty node placeholder'
48
+ },
24
49
  syncBlockPlaceholderText: {
25
50
  id: 'fabric.editor.syncBlockPlaceholderText',
26
51
  defaultMessage: 'Add content then copy this synced block to access it across spaces',
@@ -16,7 +16,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
17
17
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
18
18
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
19
- var packageVersion = "0.0.0-development";
19
+ var packageVersion = "110.32.3";
20
20
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
21
21
  // Remove URL as it has UGC
22
22
  // Ignored via go/ees007
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
  * @jsx jsx
25
25
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "0.0.0-development";
27
+ var packageVersion = "110.32.3";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var fadeIn = (0, _react2.keyframes)({
@@ -22,6 +22,7 @@ var _react = _interopRequireWildcard(require("react"));
22
22
  var _react2 = require("@emotion/react");
23
23
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
24
24
  var _menu = require("@atlaskit/menu");
25
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
25
26
  var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
26
27
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
27
28
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
@@ -63,14 +64,14 @@ var buttonStyles = function buttonStyles(isActive, submenuActive) {
63
64
  * Hack for item to imitate old dropdown-menu selected styles
64
65
  */
65
66
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
66
- return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\tposition: relative;\n\t\t\t\t&::before {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\twidth: 2px;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcontent: '';\n\t\t\t\t}\n\t\t\t\t> span,\n\t\t\t\t> span:hover,\n\t\t\t\t> span:active {\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcolor: ", ";\n\t\t\t\t}\n\t\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t\t", ";\n\t\t\t\t}\n\t\t\t\t:focus-visible,\n\t\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\t\toutline: none;\n\t\t\t\t}\n\t\t\t"])), "var(--ds-border-selected, transparent)", "var(--ds-background-selected, #6c798f)", "var(--ds-text-selected, #0C66E4)", focusedMenuItemStyle);
67
+ return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\tposition: relative;\n\t\t\t\t&::before {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\twidth: 2px;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcontent: '';\n\t\t\t\t}\n\t\t\t\t> span,\n\t\t\t\t> span:hover,\n\t\t\t\t> span:active {\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcolor: ", ";\n\t\t\t\t}\n\t\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t\t", ";\n\t\t\t\t}\n\t\t\t\t:focus-visible,\n\t\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\t\toutline: none;\n\t\t\t\t}\n\t\t\t"])), "var(--ds-border-selected, transparent)", "var(--ds-background-selected, ".concat((0, _platformFeatureFlags.fg)('platform_editor_updated_dropdown_colors') ? '#E9F2FE' : '#6c798f', ")"), "var(--ds-text-selected, ".concat((0, _platformFeatureFlags.fg)('platform_editor_updated_dropdown_colors') ? '#1868DB' : '#0C66E4', ")"), focusedMenuItemStyle);
67
68
  }
68
69
 
69
70
  /**
70
71
  * Hack for item to imitate old dropdown-menu selected styles
71
72
  */
72
73
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
73
- return (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t> span,\n\t\t\t> span:hover,\n\t\t\t> span:active {\n\t\t\t\tbackground: ", ";\n\t\t\t\tcolor: ", ";\n\t\t\t}\n\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t", ";\n\t\t\t}\n\t\t\t:focus-visible,\n\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t"])), "var(--ds-background-selected, #6c798f)", "var(--ds-text-selected, #0C66E4)", focusedMenuItemStyle);
74
+ return (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t> span,\n\t\t\t> span:hover,\n\t\t\t> span:active {\n\t\t\t\tbackground: ", ";\n\t\t\t\tcolor: ", ";\n\t\t\t}\n\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t", ";\n\t\t\t}\n\t\t\t:focus-visible,\n\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t"])), "var(--ds-background-selected, ".concat((0, _platformFeatureFlags.fg)('platform_editor_updated_dropdown_colors') ? '#E9F2FE' : '#6c798f', ")"), "var(--ds-text-selected, ".concat((0, _platformFeatureFlags.fg)('platform_editor_updated_dropdown_colors') ? '#1868DB' : '#0C66E4', ")"), focusedMenuItemStyle);
74
75
  } else {
75
76
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
76
77
  return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t> span:hover[aria-disabled='false'] {\n\t\t\t\tcolor: ", ";\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\t\t\t", "\n\t\t\t> span[aria-disabled='true'] {\n\t\t\t\tcolor: ", ";\n\t\t\t}\n\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t", ";\n\t\t\t}\n\t\t\t:focus-visible,\n\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t"])), "var(--ds-text, #292A2E)", "var(--ds-background-neutral-subtle-hovered, rgb(244, 245, 247))", !submenuActive && "\n\t\t\t\t\t> span:active[aria-disabled='false'] {\n\t\t\t\t\t\tbackground-color: ".concat("var(--ds-background-neutral-subtle-pressed, rgb(179, 212, 255))", ";\n\t\t\t\t\t}"), "var(--ds-text-disabled, #080F214A)", focusedMenuItemStyle); // The default focus-visible style is removed to ensure consistency across browsers
@@ -168,22 +168,37 @@ var isReplaceDocOperation = exports.isReplaceDocOperation = function isReplaceDo
168
168
  *
169
169
  * @param doc1 PMNode
170
170
  * @param doc2 PMNode
171
+ * @param attributesToIgnore Specific array of attribute keys to ignore - defaults to ignoring all
171
172
  * @returns boolean
172
173
  */
173
- function areNodesEqualIgnoreAttrs(node1, node2) {
174
+ function areNodesEqualIgnoreAttrs(node1, node2, attributesToIgnore) {
174
175
  if (node1.isText) {
175
176
  return node1.eq(node2);
176
177
  }
177
- return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
178
+
179
+ // If no attributes to ignore, compare all attributes
180
+ if (!attributesToIgnore || attributesToIgnore.length === 0) {
181
+ return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
182
+ }
183
+
184
+ // Build attrs to compare by excluding ignored attributes
185
+ var attrsToCompare = node2.attrs;
186
+ var ignoreSet = new Set(attributesToIgnore);
187
+ for (var key in node2.attrs) {
188
+ if (ignoreSet.has(key)) {
189
+ attrsToCompare[key] = node1.attrs[key];
190
+ }
191
+ }
192
+ return node1 === node2 || node1.hasMarkup(node2.type, attrsToCompare, node2.marks) && areFragmentsEqual(node1.content, node2.content, attributesToIgnore);
178
193
  }
179
- function areFragmentsEqual(frag1, frag2) {
194
+ function areFragmentsEqual(frag1, frag2, attributesToIgnore) {
180
195
  if (frag1.content.length !== frag2.content.length) {
181
196
  return false;
182
197
  }
183
198
  var childrenEqual = true;
184
199
  frag1.content.forEach(function (child, i) {
185
200
  var otherChild = frag2.child(i);
186
- if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild)) {
201
+ if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild, attributesToIgnore)) {
187
202
  return;
188
203
  }
189
204
  childrenEqual = false;
@@ -128,7 +128,7 @@ export const ExtensionLabel = ({
128
128
  showUpdatedLivePages1PBodiedExtensionUI,
129
129
  showLivePagesBodiedMacrosRendererView,
130
130
  showBodiedExtensionRendererView,
131
- pluginInjectionApi
131
+ pluginInjectionApi: _pluginInjectionApi
132
132
  }) => {
133
133
  const isInlineExtension = extensionName === 'inlineExtension';
134
134
  const showDefaultBodiedStyles = expValEquals('cc_editor_ttvc_release_bundle_one', 'isEnabled', true) ? isBodiedMacro : isBodiedMacro && !isNodeHovered;
@@ -29,7 +29,7 @@ function useStaticPlugins(plugins) {
29
29
  }
30
30
  /**
31
31
  *
32
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
32
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
33
33
  * but selects a slice of the state which is more performant.
34
34
  *
35
35
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
@@ -32,9 +32,9 @@ import { usePluginStateEffect } from '../usePluginStateEffect';
32
32
 
33
33
  /**
34
34
  *
35
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
35
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
36
36
  * but selects a slice of the state which is more performant.
37
- *
37
+ *
38
38
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
39
39
  * If the plugins you are listening to generate multiple shared states while the user is typing,
40
40
  * your React Component will get only the last one.
@@ -10,11 +10,36 @@ export const placeholderTextMessages = defineMessages({
10
10
  defaultMessage: '/ to insert',
11
11
  description: 'Short placeholder text for empty nodes'
12
12
  },
13
+ shortEmptyNodePlaceholderADFSlashShortcut: {
14
+ id: 'fabric.editor.shortEmptyNodePlaceholderSlash',
15
+ defaultMessage: '/',
16
+ description: 'Slash character in short empty node placeholder'
17
+ },
18
+ shortEmptyNodePlaceholderADFSuffix: {
19
+ id: 'fabric.editor.shortEmptyNodePlaceholderSuffix',
20
+ defaultMessage: ' to insert',
21
+ description: 'Text after slash in short empty node placeholder'
22
+ },
13
23
  longEmptyNodePlaceholderText: {
14
24
  id: 'fabric.editor.longEmptyNodePlaceholderText',
15
25
  defaultMessage: 'Type / to insert elements',
16
26
  description: 'Long placeholder text for empty nodes'
17
27
  },
28
+ longEmptyNodePlaceholderADFPrefix: {
29
+ id: 'fabric.editor.longEmptyNodePlaceholderPrefix',
30
+ defaultMessage: 'Type ',
31
+ description: 'Text before slash in long empty node placeholder'
32
+ },
33
+ longEmptyNodePlaceholderADFSlashShortcut: {
34
+ id: 'fabric.editor.longEmptyNodePlaceholderSlash',
35
+ defaultMessage: '/',
36
+ description: 'Slash character in long empty node placeholder'
37
+ },
38
+ longEmptyNodePlaceholderADFSuffix: {
39
+ id: 'fabric.editor.longEmptyNodePlaceholderSuffix',
40
+ defaultMessage: ' to insert elements',
41
+ description: 'Text after slash in long empty node placeholder'
42
+ },
18
43
  syncBlockPlaceholderText: {
19
44
  id: 'fabric.editor.syncBlockPlaceholderText',
20
45
  defaultMessage: 'Add content then copy this synced block to access it across spaces',
@@ -1,7 +1,7 @@
1
1
  import { isFedRamp } from './environment';
2
2
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
3
3
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
4
- const packageVersion = "0.0.0-development";
4
+ const packageVersion = "110.32.3";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // Ignored via go/ees007
@@ -14,7 +14,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import { fg } from '@atlaskit/platform-feature-flags';
15
15
  import Layer from '../Layer';
16
16
  const packageName = "@atlaskit/editor-common";
17
- const packageVersion = "0.0.0-development";
17
+ const packageVersion = "110.32.3";
18
18
  const halfFocusRing = 1;
19
19
  const dropOffset = '0, 8';
20
20
  const fadeIn = keyframes({
@@ -12,6 +12,7 @@ import React, { PureComponent, useContext } from 'react';
12
12
  import { css, jsx } from '@emotion/react';
13
13
  import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
14
14
  import { CustomItem, MenuGroup, Section } from '@atlaskit/menu';
15
+ import { fg } from '@atlaskit/platform-feature-flags';
15
16
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
16
17
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
17
18
  import Tooltip from '@atlaskit/tooltip';
@@ -55,8 +56,8 @@ const buttonStyles = (isActive, submenuActive) => {
55
56
  > span,
56
57
  > span:hover,
57
58
  > span:active {
58
- background: ${"var(--ds-background-selected, #6c798f)"};
59
- color: ${"var(--ds-text-selected, #0C66E4)"};
59
+ background: ${`var(--ds-background-selected, ${fg('platform_editor_updated_dropdown_colors') ? '#E9F2FE' : '#6c798f'})`};
60
+ color: ${`var(--ds-text-selected, ${fg('platform_editor_updated_dropdown_colors') ? '#1868DB' : '#0C66E4'})`};
60
61
  }
61
62
  :focus > span[aria-disabled='false'] {
62
63
  ${focusedMenuItemStyle};
@@ -76,8 +77,8 @@ const buttonStyles = (isActive, submenuActive) => {
76
77
  > span,
77
78
  > span:hover,
78
79
  > span:active {
79
- background: ${"var(--ds-background-selected, #6c798f)"};
80
- color: ${"var(--ds-text-selected, #0C66E4)"};
80
+ background: ${`var(--ds-background-selected, ${fg('platform_editor_updated_dropdown_colors') ? '#E9F2FE' : '#6c798f'})`};
81
+ color: ${`var(--ds-text-selected, ${fg('platform_editor_updated_dropdown_colors') ? '#1868DB' : '#0C66E4'})`};
81
82
  }
82
83
  :focus > span[aria-disabled='false'] {
83
84
  ${focusedMenuItemStyle};
@@ -155,22 +155,37 @@ export const isReplaceDocOperation = (transactions, oldState) => {
155
155
  *
156
156
  * @param doc1 PMNode
157
157
  * @param doc2 PMNode
158
+ * @param attributesToIgnore Specific array of attribute keys to ignore - defaults to ignoring all
158
159
  * @returns boolean
159
160
  */
160
- export function areNodesEqualIgnoreAttrs(node1, node2) {
161
+ export function areNodesEqualIgnoreAttrs(node1, node2, attributesToIgnore) {
161
162
  if (node1.isText) {
162
163
  return node1.eq(node2);
163
164
  }
164
- return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
165
+
166
+ // If no attributes to ignore, compare all attributes
167
+ if (!attributesToIgnore || attributesToIgnore.length === 0) {
168
+ return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
169
+ }
170
+
171
+ // Build attrs to compare by excluding ignored attributes
172
+ const attrsToCompare = node2.attrs;
173
+ const ignoreSet = new Set(attributesToIgnore);
174
+ for (const key in node2.attrs) {
175
+ if (ignoreSet.has(key)) {
176
+ attrsToCompare[key] = node1.attrs[key];
177
+ }
178
+ }
179
+ return node1 === node2 || node1.hasMarkup(node2.type, attrsToCompare, node2.marks) && areFragmentsEqual(node1.content, node2.content, attributesToIgnore);
165
180
  }
166
- function areFragmentsEqual(frag1, frag2) {
181
+ function areFragmentsEqual(frag1, frag2, attributesToIgnore) {
167
182
  if (frag1.content.length !== frag2.content.length) {
168
183
  return false;
169
184
  }
170
185
  let childrenEqual = true;
171
186
  frag1.content.forEach((child, i) => {
172
187
  const otherChild = frag2.child(i);
173
- if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild)) {
188
+ if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild, attributesToIgnore)) {
174
189
  return;
175
190
  }
176
191
  childrenEqual = false;
@@ -129,7 +129,7 @@ export var ExtensionLabel = function ExtensionLabel(_ref) {
129
129
  showUpdatedLivePages1PBodiedExtensionUI = _ref.showUpdatedLivePages1PBodiedExtensionUI,
130
130
  showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
131
131
  showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
132
- pluginInjectionApi = _ref.pluginInjectionApi;
132
+ _pluginInjectionApi = _ref.pluginInjectionApi;
133
133
  var isInlineExtension = extensionName === 'inlineExtension';
134
134
  var showDefaultBodiedStyles = expValEquals('cc_editor_ttvc_release_bundle_one', 'isEnabled', true) ? isBodiedMacro : isBodiedMacro && !isNodeHovered;
135
135
  var shouldShowBodiedMacroLabel = getShouldShowBodiedMacroLabel(isBodiedMacro, isNodeHovered, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, showUpdatedLivePages1PBodiedExtensionUI);
@@ -37,7 +37,7 @@ function useStaticPlugins(plugins) {
37
37
  }
38
38
  /**
39
39
  *
40
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
40
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
41
41
  * but selects a slice of the state which is more performant.
42
42
  *
43
43
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
@@ -35,9 +35,9 @@ import { usePluginStateEffect } from '../usePluginStateEffect';
35
35
 
36
36
  /**
37
37
  *
38
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
38
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
39
39
  * but selects a slice of the state which is more performant.
40
- *
40
+ *
41
41
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
42
42
  * If the plugins you are listening to generate multiple shared states while the user is typing,
43
43
  * your React Component will get only the last one.
@@ -10,11 +10,36 @@ export var placeholderTextMessages = defineMessages({
10
10
  defaultMessage: '/ to insert',
11
11
  description: 'Short placeholder text for empty nodes'
12
12
  },
13
+ shortEmptyNodePlaceholderADFSlashShortcut: {
14
+ id: 'fabric.editor.shortEmptyNodePlaceholderSlash',
15
+ defaultMessage: '/',
16
+ description: 'Slash character in short empty node placeholder'
17
+ },
18
+ shortEmptyNodePlaceholderADFSuffix: {
19
+ id: 'fabric.editor.shortEmptyNodePlaceholderSuffix',
20
+ defaultMessage: ' to insert',
21
+ description: 'Text after slash in short empty node placeholder'
22
+ },
13
23
  longEmptyNodePlaceholderText: {
14
24
  id: 'fabric.editor.longEmptyNodePlaceholderText',
15
25
  defaultMessage: 'Type / to insert elements',
16
26
  description: 'Long placeholder text for empty nodes'
17
27
  },
28
+ longEmptyNodePlaceholderADFPrefix: {
29
+ id: 'fabric.editor.longEmptyNodePlaceholderPrefix',
30
+ defaultMessage: 'Type ',
31
+ description: 'Text before slash in long empty node placeholder'
32
+ },
33
+ longEmptyNodePlaceholderADFSlashShortcut: {
34
+ id: 'fabric.editor.longEmptyNodePlaceholderSlash',
35
+ defaultMessage: '/',
36
+ description: 'Slash character in long empty node placeholder'
37
+ },
38
+ longEmptyNodePlaceholderADFSuffix: {
39
+ id: 'fabric.editor.longEmptyNodePlaceholderSuffix',
40
+ defaultMessage: ' to insert elements',
41
+ description: 'Text after slash in long empty node placeholder'
42
+ },
18
43
  syncBlockPlaceholderText: {
19
44
  id: 'fabric.editor.syncBlockPlaceholderText',
20
45
  defaultMessage: 'Add content then copy this synced block to access it across spaces',
@@ -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 = "0.0.0-development";
10
+ var packageVersion = "110.32.3";
11
11
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
12
12
  // Remove URL as it has UGC
13
13
  // Ignored via go/ees007
@@ -21,7 +21,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import { fg } from '@atlaskit/platform-feature-flags';
22
22
  import Layer from '../Layer';
23
23
  var packageName = "@atlaskit/editor-common";
24
- var packageVersion = "0.0.0-development";
24
+ var packageVersion = "110.32.3";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var fadeIn = keyframes({
@@ -27,6 +27,7 @@ import React, { PureComponent, useContext } from 'react';
27
27
  import { css, jsx } from '@emotion/react';
28
28
  import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
29
29
  import { CustomItem, MenuGroup, Section } from '@atlaskit/menu';
30
+ import { fg } from '@atlaskit/platform-feature-flags';
30
31
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
31
32
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
32
33
  import Tooltip from '@atlaskit/tooltip';
@@ -55,14 +56,14 @@ var buttonStyles = function buttonStyles(isActive, submenuActive) {
55
56
  * Hack for item to imitate old dropdown-menu selected styles
56
57
  */
57
58
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
58
- return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t\t\t\tposition: relative;\n\t\t\t\t&::before {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\twidth: 2px;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcontent: '';\n\t\t\t\t}\n\t\t\t\t> span,\n\t\t\t\t> span:hover,\n\t\t\t\t> span:active {\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcolor: ", ";\n\t\t\t\t}\n\t\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t\t", ";\n\t\t\t\t}\n\t\t\t\t:focus-visible,\n\t\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\t\toutline: none;\n\t\t\t\t}\n\t\t\t"])), "var(--ds-border-selected, transparent)", "var(--ds-background-selected, #6c798f)", "var(--ds-text-selected, #0C66E4)", focusedMenuItemStyle);
59
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t\t\t\tposition: relative;\n\t\t\t\t&::before {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\twidth: 2px;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcontent: '';\n\t\t\t\t}\n\t\t\t\t> span,\n\t\t\t\t> span:hover,\n\t\t\t\t> span:active {\n\t\t\t\t\tbackground: ", ";\n\t\t\t\t\tcolor: ", ";\n\t\t\t\t}\n\t\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t\t", ";\n\t\t\t\t}\n\t\t\t\t:focus-visible,\n\t\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\t\toutline: none;\n\t\t\t\t}\n\t\t\t"])), "var(--ds-border-selected, transparent)", "var(--ds-background-selected, ".concat(fg('platform_editor_updated_dropdown_colors') ? '#E9F2FE' : '#6c798f', ")"), "var(--ds-text-selected, ".concat(fg('platform_editor_updated_dropdown_colors') ? '#1868DB' : '#0C66E4', ")"), focusedMenuItemStyle);
59
60
  }
60
61
 
61
62
  /**
62
63
  * Hack for item to imitate old dropdown-menu selected styles
63
64
  */
64
65
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
65
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\t\t\t> span,\n\t\t\t> span:hover,\n\t\t\t> span:active {\n\t\t\t\tbackground: ", ";\n\t\t\t\tcolor: ", ";\n\t\t\t}\n\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t", ";\n\t\t\t}\n\t\t\t:focus-visible,\n\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t"])), "var(--ds-background-selected, #6c798f)", "var(--ds-text-selected, #0C66E4)", focusedMenuItemStyle);
66
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\t\t\t> span,\n\t\t\t> span:hover,\n\t\t\t> span:active {\n\t\t\t\tbackground: ", ";\n\t\t\t\tcolor: ", ";\n\t\t\t}\n\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t", ";\n\t\t\t}\n\t\t\t:focus-visible,\n\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t"])), "var(--ds-background-selected, ".concat(fg('platform_editor_updated_dropdown_colors') ? '#E9F2FE' : '#6c798f', ")"), "var(--ds-text-selected, ".concat(fg('platform_editor_updated_dropdown_colors') ? '#1868DB' : '#0C66E4', ")"), focusedMenuItemStyle);
66
67
  } else {
67
68
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
68
69
  return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\t\t\t> span:hover[aria-disabled='false'] {\n\t\t\t\tcolor: ", ";\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\t\t\t", "\n\t\t\t> span[aria-disabled='true'] {\n\t\t\t\tcolor: ", ";\n\t\t\t}\n\t\t\t:focus > span[aria-disabled='false'] {\n\t\t\t\t", ";\n\t\t\t}\n\t\t\t:focus-visible,\n\t\t\t:focus-visible > span[aria-disabled='false'] {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t"])), "var(--ds-text, #292A2E)", "var(--ds-background-neutral-subtle-hovered, rgb(244, 245, 247))", !submenuActive && "\n\t\t\t\t\t> span:active[aria-disabled='false'] {\n\t\t\t\t\t\tbackground-color: ".concat("var(--ds-background-neutral-subtle-pressed, rgb(179, 212, 255))", ";\n\t\t\t\t\t}"), "var(--ds-text-disabled, #080F214A)", focusedMenuItemStyle); // The default focus-visible style is removed to ensure consistency across browsers
@@ -153,22 +153,37 @@ export var isReplaceDocOperation = function isReplaceDocOperation(transactions,
153
153
  *
154
154
  * @param doc1 PMNode
155
155
  * @param doc2 PMNode
156
+ * @param attributesToIgnore Specific array of attribute keys to ignore - defaults to ignoring all
156
157
  * @returns boolean
157
158
  */
158
- export function areNodesEqualIgnoreAttrs(node1, node2) {
159
+ export function areNodesEqualIgnoreAttrs(node1, node2, attributesToIgnore) {
159
160
  if (node1.isText) {
160
161
  return node1.eq(node2);
161
162
  }
162
- return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
163
+
164
+ // If no attributes to ignore, compare all attributes
165
+ if (!attributesToIgnore || attributesToIgnore.length === 0) {
166
+ return node1 === node2 || node1.hasMarkup(node2.type, node1.attrs, node2.marks) && areFragmentsEqual(node1.content, node2.content);
167
+ }
168
+
169
+ // Build attrs to compare by excluding ignored attributes
170
+ var attrsToCompare = node2.attrs;
171
+ var ignoreSet = new Set(attributesToIgnore);
172
+ for (var key in node2.attrs) {
173
+ if (ignoreSet.has(key)) {
174
+ attrsToCompare[key] = node1.attrs[key];
175
+ }
176
+ }
177
+ return node1 === node2 || node1.hasMarkup(node2.type, attrsToCompare, node2.marks) && areFragmentsEqual(node1.content, node2.content, attributesToIgnore);
163
178
  }
164
- function areFragmentsEqual(frag1, frag2) {
179
+ function areFragmentsEqual(frag1, frag2, attributesToIgnore) {
165
180
  if (frag1.content.length !== frag2.content.length) {
166
181
  return false;
167
182
  }
168
183
  var childrenEqual = true;
169
184
  frag1.content.forEach(function (child, i) {
170
185
  var otherChild = frag2.child(i);
171
- if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild)) {
186
+ if (child === otherChild || otherChild && areNodesEqualIgnoreAttrs(child, otherChild, attributesToIgnore)) {
172
187
  return;
173
188
  }
174
189
  childrenEqual = false;
@@ -19,5 +19,5 @@ type ExtensionLabelProps = {
19
19
  showUpdatedLivePages1PBodiedExtensionUI?: boolean;
20
20
  text: string;
21
21
  };
22
- export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, showUpdatedLivePages1PBodiedExtensionUI, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, pluginInjectionApi, }: ExtensionLabelProps) => jsx.JSX.Element;
22
+ export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, showUpdatedLivePages1PBodiedExtensionUI, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, pluginInjectionApi: _pluginInjectionApi, }: ExtensionLabelProps) => jsx.JSX.Element;
23
23
  export {};
@@ -8,7 +8,7 @@ type Options = {
8
8
  };
9
9
  /**
10
10
  *
11
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
11
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
12
12
  * but selects a slice of the state which is more performant.
13
13
  *
14
14
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
@@ -31,7 +31,7 @@ type Options = {
31
31
  };
32
32
  /**
33
33
  *
34
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
34
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
35
35
  * but selects a slice of the state which is more performant.
36
36
  *
37
37
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
@@ -9,11 +9,36 @@ export declare const placeholderTextMessages: {
9
9
  defaultMessage: string;
10
10
  description: string;
11
11
  };
12
+ shortEmptyNodePlaceholderADFSlashShortcut: {
13
+ id: string;
14
+ defaultMessage: string;
15
+ description: string;
16
+ };
17
+ shortEmptyNodePlaceholderADFSuffix: {
18
+ id: string;
19
+ defaultMessage: string;
20
+ description: string;
21
+ };
12
22
  longEmptyNodePlaceholderText: {
13
23
  id: string;
14
24
  defaultMessage: string;
15
25
  description: string;
16
26
  };
27
+ longEmptyNodePlaceholderADFPrefix: {
28
+ id: string;
29
+ defaultMessage: string;
30
+ description: string;
31
+ };
32
+ longEmptyNodePlaceholderADFSlashShortcut: {
33
+ id: string;
34
+ defaultMessage: string;
35
+ description: string;
36
+ };
37
+ longEmptyNodePlaceholderADFSuffix: {
38
+ id: string;
39
+ defaultMessage: string;
40
+ description: string;
41
+ };
17
42
  syncBlockPlaceholderText: {
18
43
  id: string;
19
44
  defaultMessage: string;
@@ -30,7 +30,8 @@ export declare const isReplaceDocOperation: (transactions: readonly Transaction[
30
30
  *
31
31
  * @param doc1 PMNode
32
32
  * @param doc2 PMNode
33
+ * @param attributesToIgnore Specific array of attribute keys to ignore - defaults to ignoring all
33
34
  * @returns boolean
34
35
  */
35
- export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node): boolean;
36
+ export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node, attributesToIgnore?: string[]): boolean;
36
37
  export {};
@@ -19,5 +19,5 @@ type ExtensionLabelProps = {
19
19
  showUpdatedLivePages1PBodiedExtensionUI?: boolean;
20
20
  text: string;
21
21
  };
22
- export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, showUpdatedLivePages1PBodiedExtensionUI, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, pluginInjectionApi, }: ExtensionLabelProps) => jsx.JSX.Element;
22
+ export declare const ExtensionLabel: ({ text, extensionName, isNodeHovered, customContainerStyles, isNodeNested, setIsNodeHovered, isBodiedMacro, showUpdatedLivePages1PBodiedExtensionUI, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, pluginInjectionApi: _pluginInjectionApi, }: ExtensionLabelProps) => jsx.JSX.Element;
23
23
  export {};
@@ -8,7 +8,7 @@ type Options = {
8
8
  };
9
9
  /**
10
10
  *
11
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
11
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
12
12
  * but selects a slice of the state which is more performant.
13
13
  *
14
14
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
@@ -31,7 +31,7 @@ type Options = {
31
31
  };
32
32
  /**
33
33
  *
34
- * NOTE: Generally you want to use `usePluginStateWithSelector` over this which behaves similarly
34
+ * NOTE: Generally you want to use `useSharedPluginStateWithSelector` over this which behaves similarly
35
35
  * but selects a slice of the state which is more performant.
36
36
  *
37
37
  * ⚠️⚠️⚠️ This is a debounced hook ⚠️⚠️⚠️
@@ -9,11 +9,36 @@ export declare const placeholderTextMessages: {
9
9
  defaultMessage: string;
10
10
  description: string;
11
11
  };
12
+ shortEmptyNodePlaceholderADFSlashShortcut: {
13
+ id: string;
14
+ defaultMessage: string;
15
+ description: string;
16
+ };
17
+ shortEmptyNodePlaceholderADFSuffix: {
18
+ id: string;
19
+ defaultMessage: string;
20
+ description: string;
21
+ };
12
22
  longEmptyNodePlaceholderText: {
13
23
  id: string;
14
24
  defaultMessage: string;
15
25
  description: string;
16
26
  };
27
+ longEmptyNodePlaceholderADFPrefix: {
28
+ id: string;
29
+ defaultMessage: string;
30
+ description: string;
31
+ };
32
+ longEmptyNodePlaceholderADFSlashShortcut: {
33
+ id: string;
34
+ defaultMessage: string;
35
+ description: string;
36
+ };
37
+ longEmptyNodePlaceholderADFSuffix: {
38
+ id: string;
39
+ defaultMessage: string;
40
+ description: string;
41
+ };
17
42
  syncBlockPlaceholderText: {
18
43
  id: string;
19
44
  defaultMessage: string;
@@ -30,7 +30,8 @@ export declare const isReplaceDocOperation: (transactions: readonly Transaction[
30
30
  *
31
31
  * @param doc1 PMNode
32
32
  * @param doc2 PMNode
33
+ * @param attributesToIgnore Specific array of attribute keys to ignore - defaults to ignoring all
33
34
  * @returns boolean
34
35
  */
35
- export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node): boolean;
36
+ export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node, attributesToIgnore?: string[]): boolean;
36
37
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "110.32.3",
3
+ "version": "110.33.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -162,6 +162,9 @@
162
162
  "platform-custom-icon-migration": {
163
163
  "type": "boolean"
164
164
  },
165
+ "platform_editor_updated_dropdown_colors": {
166
+ "type": "boolean"
167
+ },
165
168
  "linking_platform_datasource_assets_objects": {
166
169
  "type": "boolean"
167
170
  },