@atlaskit/editor-common 110.32.3 → 110.33.1

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 (42) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/cjs/element-browser/components/ElementSearch.js +3 -1
  3. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +1 -1
  4. package/dist/cjs/extensions/extension-handlers.js +1 -0
  5. package/dist/cjs/hooks/useSharedPluginState.js +1 -1
  6. package/dist/cjs/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -2
  7. package/dist/cjs/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -0
  8. package/dist/cjs/messages/placeholder-text.js +25 -0
  9. package/dist/cjs/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +108 -36
  10. package/dist/cjs/ui-menu/DropdownMenu/index.js +3 -2
  11. package/dist/cjs/utils/document.js +19 -4
  12. package/dist/es2019/element-browser/components/ElementSearch.js +3 -1
  13. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +1 -1
  14. package/dist/es2019/extensions/extension-handlers.js +1 -0
  15. package/dist/es2019/hooks/useSharedPluginState.js +1 -1
  16. package/dist/es2019/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -2
  17. package/dist/es2019/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -0
  18. package/dist/es2019/messages/placeholder-text.js +25 -0
  19. package/dist/es2019/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +108 -36
  20. package/dist/es2019/ui-menu/DropdownMenu/index.js +5 -4
  21. package/dist/es2019/utils/document.js +19 -4
  22. package/dist/esm/element-browser/components/ElementSearch.js +3 -1
  23. package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +1 -1
  24. package/dist/esm/extensions/extension-handlers.js +1 -0
  25. package/dist/esm/hooks/useSharedPluginState.js +1 -1
  26. package/dist/esm/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +2 -2
  27. package/dist/esm/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -0
  28. package/dist/esm/messages/placeholder-text.js +25 -0
  29. package/dist/esm/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +108 -36
  30. package/dist/esm/ui-menu/DropdownMenu/index.js +3 -2
  31. package/dist/esm/utils/document.js +19 -4
  32. package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +1 -1
  33. package/dist/types/hooks/useSharedPluginState.d.ts +1 -1
  34. package/dist/types/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +1 -1
  35. package/dist/types/messages/placeholder-text.d.ts +25 -0
  36. package/dist/types/utils/document.d.ts +2 -1
  37. package/dist/types-ts4.5/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +1 -1
  38. package/dist/types-ts4.5/hooks/useSharedPluginState.d.ts +1 -1
  39. package/dist/types-ts4.5/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +1 -1
  40. package/dist/types-ts4.5/messages/placeholder-text.d.ts +25 -0
  41. package/dist/types-ts4.5/utils/document.d.ts +2 -1
  42. package/package.json +6 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 110.33.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`d3461a5b84b81`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d3461a5b84b81) -
8
+ Suppress i18n errors
9
+ - Updated dependencies
10
+
11
+ ## 110.33.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`025002b2a71fc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/025002b2a71fc) -
16
+ [ux] [EDITOR-3320] fix bug on panel and table placeholders/ added code mark on keyboard shorcuts
17
+ on panel and table placeholders
18
+ - [`e12aaa9abfa83`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e12aaa9abfa83) -
19
+ EDITOR-3302 - Support multiple editor streaming
20
+
21
+ ### Patch Changes
22
+
23
+ - [`05ee61c6ace09`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/05ee61c6ace09) -
24
+ Improve performance of show diff by increasing merge of steps
25
+ - [`516909774accc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/516909774accc) -
26
+ Fixing type issues
27
+ - [`3ff392895f5d3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3ff392895f5d3) -
28
+ [ux] A11y issue fix: The fallback colors used for menu items are not accessible and does not match
29
+ with tokens
30
+ - Updated dependencies
31
+
3
32
  ## 110.32.3
4
33
 
5
34
  ### Patch Changes
@@ -113,7 +113,9 @@ function ElementSearch(_ref) {
113
113
  }, (0, _react2.jsx)("div", {
114
114
  css: styledShortcut
115
115
  }, "\u23CE ", formatMessage(_messages.default.elementAfterInputMessage))),
116
- placeholder: formatMessage(_messages.default.placeHolderMessage),
116
+ placeholder: formatMessage(_messages.default.placeHolderMessage)
117
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
118
+ ,
117
119
  "aria-label": "search",
118
120
  "aria-labelledby": "search-assistive"
119
121
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
@@ -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);
@@ -106,6 +106,7 @@ function ExtensionLoading(props) {
106
106
  if (props.error || props.timedOut) {
107
107
  // eslint-disable-next-line no-console
108
108
  console.error('Error rendering extension', props.error);
109
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
109
110
  return /*#__PURE__*/_react.default.createElement("div", null, "Error loading the extension!");
110
111
  } else {
111
112
  return null;
@@ -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.
@@ -881,6 +881,7 @@ var HyperlinkLinkAddToolbar = exports.HyperlinkLinkAddToolbar = /*#__PURE__*/fun
881
881
  var screenReaderText = browser.safari && this.getScreenReaderText();
882
882
  var containerWidth = (0, _platformFeatureFlags.fg)('platform_editor_link_picker_width_fix') ? _ToolbarComponents.narrowContainerWidth : !!activityProvider && _ToolbarComponents.containerWithProvider;
883
883
  return (0, _react2.jsx)("div", {
884
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
884
885
  "aria-label": "Hyperlink Edit"
885
886
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
886
887
  ,
@@ -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',
@@ -12,67 +12,109 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
12
12
  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; } /* eslint-disable @atlassian/i18n/no-literal-string-in-object */
13
13
  /** this is not new usage - old code extracted from editor-core */
14
14
  /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
15
- var panelBackgroundPalette = exports.panelBackgroundPalette = [{
15
+ var panelBackgroundPalette = exports.panelBackgroundPalette = [
16
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
17
+ {
16
18
  label: 'White',
17
19
  value: '#FFFFFF'
18
- }, {
20
+ },
21
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
22
+ {
19
23
  label: 'Light blue',
20
24
  value: '#DEEBFF'
21
- }, {
25
+ },
26
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
27
+ {
22
28
  label: 'Light teal',
23
29
  value: '#E6FCFF'
24
- }, {
30
+ },
31
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
32
+ {
25
33
  label: 'Light green',
26
34
  value: '#E3FCEF'
27
- }, {
35
+ },
36
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
37
+ {
28
38
  label: 'Light yellow',
29
39
  value: '#FFFAE6'
30
- }, {
40
+ },
41
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
42
+ {
31
43
  label: 'Light red',
32
44
  value: '#FFEBE6'
33
- }, {
45
+ },
46
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
47
+ {
34
48
  label: 'Light purple',
35
49
  value: '#EAE6FF'
36
- }, {
50
+ },
51
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
52
+ {
37
53
  label: 'Light gray',
38
54
  value: '#F4F5F7'
39
- }, {
55
+ },
56
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
57
+ {
40
58
  label: 'Blue',
41
59
  value: '#B3D4FF'
42
- }, {
60
+ },
61
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
62
+ {
43
63
  label: 'Teal',
44
64
  value: '#B3F5FF'
45
- }, {
65
+ },
66
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
67
+ {
46
68
  label: 'Green',
47
69
  value: '#ABF5D1'
48
- }, {
70
+ },
71
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
72
+ {
49
73
  label: 'Yellow',
50
74
  value: '#FFF0B3'
51
- }, {
75
+ },
76
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
77
+ {
52
78
  label: 'Red',
53
79
  value: '#FFBDAD'
54
- }, {
80
+ },
81
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
82
+ {
55
83
  label: 'Purple',
56
84
  value: '#C0B6F2'
57
- }, {
85
+ },
86
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
87
+ {
58
88
  label: 'Gray',
59
89
  value: '#B3BAC5'
60
- }, {
90
+ },
91
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
92
+ {
61
93
  label: 'Dark blue',
62
94
  value: '#4C9AFF'
63
- }, {
95
+ },
96
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
97
+ {
64
98
  label: 'Dark teal',
65
99
  value: '#79E2F2'
66
- }, {
100
+ },
101
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
102
+ {
67
103
  label: 'Dark green',
68
104
  value: '#57D9A3'
69
- }, {
105
+ },
106
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
107
+ {
70
108
  label: 'Dark yellow',
71
109
  value: '#FFC400'
72
- }, {
110
+ },
111
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
112
+ {
73
113
  label: 'Dark red',
74
114
  value: '#FF8F73'
75
- }, {
115
+ },
116
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
117
+ {
76
118
  label: 'Dark purple',
77
119
  value: '#998DD9'
78
120
  }].map(function (color) {
@@ -82,28 +124,44 @@ var panelBackgroundPalette = exports.panelBackgroundPalette = [{
82
124
  });
83
125
  /* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
84
126
 
85
- var panelDarkModeBackgroundPalette = exports.panelDarkModeBackgroundPalette = [{
127
+ var panelDarkModeBackgroundPalette = exports.panelDarkModeBackgroundPalette = [
128
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
129
+ {
86
130
  label: 'Dark gray',
87
131
  value: _panel.darkPanelColors.DarkGray
88
- }, {
132
+ },
133
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
134
+ {
89
135
  label: 'Dark blue',
90
136
  value: _panel.darkPanelColors.B1200S
91
- }, {
137
+ },
138
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
139
+ {
92
140
  label: 'Dark teal',
93
141
  value: _panel.darkPanelColors.T1200S
94
- }, {
142
+ },
143
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
144
+ {
95
145
  label: 'Dark green',
96
146
  value: _panel.darkPanelColors.G1200S
97
- }, {
147
+ },
148
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
149
+ {
98
150
  label: 'Dark yellow',
99
151
  value: _panel.darkPanelColors.Y1200S
100
- }, {
152
+ },
153
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
154
+ {
101
155
  label: 'Dark red',
102
156
  value: _panel.darkPanelColors.R1200S
103
- }, {
157
+ },
158
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
159
+ {
104
160
  label: 'Dark purple',
105
161
  value: _panel.darkPanelColors.P1200S
106
- }, {
162
+ },
163
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
164
+ {
107
165
  label: 'Gray',
108
166
  value: _panel.darkPanelColors.Gray
109
167
  }, {
@@ -124,25 +182,39 @@ var panelDarkModeBackgroundPalette = exports.panelDarkModeBackgroundPalette = [{
124
182
  }, {
125
183
  label: 'purple',
126
184
  value: _panel.darkPanelColors.P900
127
- }, {
185
+ },
186
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
187
+ {
128
188
  label: 'Light gray',
129
189
  value: _panel.darkPanelColors.LightGray
130
- }, {
190
+ },
191
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
192
+ {
131
193
  label: 'Light blue',
132
194
  value: _panel.darkPanelColors.B800S
133
- }, {
195
+ },
196
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
197
+ {
134
198
  label: 'Light teal',
135
199
  value: _panel.darkPanelColors.T900S
136
- }, {
200
+ },
201
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
202
+ {
137
203
  label: 'Light green',
138
204
  value: _panel.darkPanelColors.G900S
139
- }, {
205
+ },
206
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
207
+ {
140
208
  label: 'Light yellow',
141
209
  value: _panel.darkPanelColors.Y800S
142
- }, {
210
+ },
211
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
212
+ {
143
213
  label: 'Light red',
144
214
  value: _panel.darkPanelColors.R800S
145
- }, {
215
+ },
216
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-object
217
+ {
146
218
  label: 'Light purple',
147
219
  value: _panel.darkPanelColors.P800S
148
220
  }].map(function (color) {
@@ -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;
@@ -105,7 +105,9 @@ function ElementSearch({
105
105
  }, jsx("div", {
106
106
  css: styledShortcut
107
107
  }, "\u23CE ", formatMessage(commonMessages.elementAfterInputMessage))),
108
- placeholder: formatMessage(commonMessages.placeHolderMessage),
108
+ placeholder: formatMessage(commonMessages.placeHolderMessage)
109
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
110
+ ,
109
111
  "aria-label": "search",
110
112
  "aria-labelledby": "search-assistive"
111
113
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
@@ -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;
@@ -50,6 +50,7 @@ function ExtensionLoading(props) {
50
50
  if (props.error || props.timedOut) {
51
51
  // eslint-disable-next-line no-console
52
52
  console.error('Error rendering extension', props.error);
53
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
53
54
  return /*#__PURE__*/React.createElement("div", null, "Error loading the extension!");
54
55
  } else {
55
56
  return null;
@@ -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.
@@ -733,6 +733,7 @@ export class HyperlinkLinkAddToolbar extends PureComponent {
733
733
  const screenReaderText = browser.safari && this.getScreenReaderText();
734
734
  const containerWidth = fg('platform_editor_link_picker_width_fix') ? narrowContainerWidth : !!activityProvider && containerWithProvider;
735
735
  return jsx("div", {
736
+ // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx
736
737
  "aria-label": "Hyperlink Edit"
737
738
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
738
739
  ,
@@ -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',