@atlaskit/editor-common 105.9.1 → 105.11.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 (49) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +0 -12
  3. package/dist/cjs/extensions/combine-extension-providers.js +5 -13
  4. package/dist/cjs/extensions/extension-handlers.js +2 -2
  5. package/dist/cjs/keymaps/index.js +4 -3
  6. package/dist/cjs/messages/breakout.js +5 -0
  7. package/dist/cjs/messages/toolbar.js +5 -0
  8. package/dist/cjs/monitoring/error.js +1 -1
  9. package/dist/cjs/node-visibility/node-visibility-manager.js +81 -0
  10. package/dist/cjs/resizer/Resizer.js +6 -1
  11. package/dist/cjs/styles/shared/table.js +1 -1
  12. package/dist/cjs/ui/DropList/index.js +1 -1
  13. package/dist/cjs/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +30 -4
  14. package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +0 -12
  15. package/dist/es2019/extensions/combine-extension-providers.js +5 -13
  16. package/dist/es2019/extensions/extension-handlers.js +2 -2
  17. package/dist/es2019/keymaps/index.js +1 -0
  18. package/dist/es2019/messages/breakout.js +5 -0
  19. package/dist/es2019/messages/toolbar.js +5 -0
  20. package/dist/es2019/monitoring/error.js +1 -1
  21. package/dist/es2019/node-visibility/node-visibility-manager.js +72 -0
  22. package/dist/es2019/resizer/Resizer.js +7 -1
  23. package/dist/es2019/styles/shared/table.js +5 -0
  24. package/dist/es2019/ui/DropList/index.js +1 -1
  25. package/dist/es2019/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +29 -5
  26. package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +0 -12
  27. package/dist/esm/extensions/combine-extension-providers.js +5 -13
  28. package/dist/esm/extensions/extension-handlers.js +2 -2
  29. package/dist/esm/keymaps/index.js +1 -0
  30. package/dist/esm/messages/breakout.js +5 -0
  31. package/dist/esm/messages/toolbar.js +5 -0
  32. package/dist/esm/monitoring/error.js +1 -1
  33. package/dist/esm/node-visibility/node-visibility-manager.js +75 -0
  34. package/dist/esm/resizer/Resizer.js +6 -1
  35. package/dist/esm/styles/shared/table.js +1 -1
  36. package/dist/esm/ui/DropList/index.js +1 -1
  37. package/dist/esm/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +31 -5
  38. package/dist/types/analytics/types/offline-editing-event.d.ts +1 -0
  39. package/dist/types/keymaps/index.d.ts +1 -0
  40. package/dist/types/messages/breakout.d.ts +5 -0
  41. package/dist/types/messages/toolbar.d.ts +5 -0
  42. package/dist/types/node-visibility/node-visibility-manager.d.ts +29 -0
  43. package/dist/types-ts4.5/analytics/types/offline-editing-event.d.ts +1 -0
  44. package/dist/types-ts4.5/keymaps/index.d.ts +1 -0
  45. package/dist/types-ts4.5/messages/breakout.d.ts +5 -0
  46. package/dist/types-ts4.5/messages/toolbar.d.ts +5 -0
  47. package/dist/types-ts4.5/node-visibility/node-visibility-manager.d.ts +29 -0
  48. package/node-visibility/package.json +17 -0
  49. package/package.json +10 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,68 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 105.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#160500](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/160500)
8
+ [`c359a92c058b0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c359a92c058b0) -
9
+ [ux] EDITOR-713 Add borders to panel when they are nested in table
10
+
11
+ ### Patch Changes
12
+
13
+ - [#160017](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/160017)
14
+ [`c0ea9c5a5156b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c0ea9c5a5156b) -
15
+ ED-27999 - Offline Editing, update type for analytics payload.
16
+ - [#159336](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159336)
17
+ [`0f0a3a5e7e218`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0f0a3a5e7e218) -
18
+ [EDITOR-793] Added changes to reflect experiment quickstart command
19
+ - [#161016](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/161016)
20
+ [`5edd5fccf1a76`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/5edd5fccf1a76) -
21
+ ENGHEALTH-28085: Added aria label for resize handle
22
+ - Updated dependencies
23
+
24
+ ## 105.10.1
25
+
26
+ ### Patch Changes
27
+
28
+ - [#159090](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159090)
29
+ [`9cbae97c20f84`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9cbae97c20f84) -
30
+ Reduces rerenders of text formatting options and the toolbar when it is docked to top.
31
+ - Updated dependencies
32
+
33
+ ## 105.10.0
34
+
35
+ ### Minor Changes
36
+
37
+ - [#156919](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/156919)
38
+ [`379f5c27f4939`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/379f5c27f4939) -
39
+ delay table sticky headers until table is in viewport
40
+
41
+ ### Patch Changes
42
+
43
+ - [#160973](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/160973)
44
+ [`9f2837a46dd98`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9f2837a46dd98) -
45
+ Ignore error thrown from getPreloadedExtension fallback to sync method
46
+ - [#159655](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159655)
47
+ [`24f8c627d50f2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/24f8c627d50f2) - ##
48
+ WHAT? Remove experimental graceful edit mode from view mode plugin and associated props.
49
+
50
+ ## WHY?
51
+
52
+ This experiment is being cleaned up and we are no longer proceeding in this direction.
53
+
54
+ ## HOW to adjust?
55
+
56
+ This experiment was only enabled for Confluence and should not have been enabled in other places.
57
+ If for some reason any of the following props/state/methdos were used please remove them:
58
+
59
+ - isConsumption
60
+ - contentMode
61
+ - initialContentMode
62
+ - updateContentMode
63
+
64
+ - Updated dependencies
65
+
3
66
  ## 105.9.1
4
67
 
5
68
  ### Patch Changes
@@ -11,7 +11,6 @@ var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _reactIntlNext = require("react-intl-next");
12
12
  var _customize = _interopRequireDefault(require("@atlaskit/icon/core/customize"));
13
13
  var _primitives = require("@atlaskit/primitives");
14
- var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
15
14
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
16
15
  /**
17
16
  * @jsxRuntime classic
@@ -168,17 +167,6 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
168
167
  onMouseLeave: function onMouseLeave() {
169
168
  setIsNodeHovered === null || setIsNodeHovered === void 0 || setIsNodeHovered(false);
170
169
  },
171
- onClick: function onClick() {
172
- if ((0, _experiments.editorExperiment)('live_pages_graceful_edit', 'text-click-delayed') || (0, _experiments.editorExperiment)('live_pages_graceful_edit', 'text-click-no-delay')) {
173
- var _pluginInjectionApi$c, _pluginInjectionApi$e;
174
- pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c = pluginInjectionApi.core) === null || _pluginInjectionApi$c === void 0 || (_pluginInjectionApi$c = _pluginInjectionApi$c.actions) === null || _pluginInjectionApi$c === void 0 || _pluginInjectionApi$c.execute( // Extensions are not yet using the new plugin architecture, and the use of the pluginInjectionApi
175
- // is not type safe in editor-common.
176
- // @ts-ignore
177
- pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$e = pluginInjectionApi.editorViewMode) === null || _pluginInjectionApi$e === void 0 ? void 0 : _pluginInjectionApi$e.commands.updateContentMode({
178
- type: 'intent-to-edit'
179
- }));
180
- }
181
- },
182
170
  "data-testid": "new-lozenge-container",
183
171
  contentEditable: false
184
172
  }, (0, _react.jsx)(_tooltip.default, {
@@ -57,37 +57,29 @@ var _default = exports.default = function _default(extensionProviders) {
57
57
  // preload() has not been called yet
58
58
  return;
59
59
  }
60
- var error;
61
60
  var _iterator = _createForOfIteratorHelper(providersCache),
62
61
  _step;
63
62
  try {
64
63
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
65
64
  var provider = _step.value;
66
- // Similar to invokeSingle. We are returning the first result that not throwing an error.
67
- // It's OK to get exception here because we have a lot of providers.
68
- // The current provider may not have the extension type we are looking for.
69
65
  try {
70
66
  var _provider$getPreloade;
71
67
  var result = provider === null || provider === void 0 || (_provider$getPreloade = provider.getPreloadedExtension) === null || _provider$getPreloade === void 0 ? void 0 : _provider$getPreloade.call(provider, type, key);
72
68
  if (result) {
73
69
  return result;
74
70
  }
75
- } catch (e) {
76
- error = e instanceof Error ? e : new Error(String(e));
71
+ } catch (_unused) {
72
+ // Not every provider will implement this method.
73
+ // In that case we would get error from other providers in the loop
74
+ // and undefined from that particular provider.
75
+ // We can safely ignore it and fallback to the async getExtension when nothing was found.
77
76
  }
78
77
  }
79
-
80
- // If we exhausted all providers and none of them returned a result, we throw the last error.
81
- // However as a extra precaution, we only throw in the dev environment.
82
- // In production we will return undefined and getExtensionModuleNodeMaybePreloaded will fallback to regular getExtension call.
83
78
  } catch (err) {
84
79
  _iterator.e(err);
85
80
  } finally {
86
81
  _iterator.f();
87
82
  }
88
- if (error && process.env.NODE_ENV !== 'production') {
89
- throw error;
90
- }
91
83
  },
92
84
  getExtension: function getExtension(type, key) {
93
85
  return invokeSingle('getExtension', [type, key]);
@@ -126,9 +126,9 @@ function getNodeRenderer(extensionProvider, extensionType, extensionKey) {
126
126
  var preloaded = maybePromise === null || maybePromise === void 0 || (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
127
127
  // Only product implemented preloading will return sync result
128
128
  // However the out-of-box won't handle this. Confluence uses a custom implementation
129
- return preloaded
129
+ return preloaded ?
130
130
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
131
- ? (0, _manifestHelpers.resolveImportSync)(preloaded) : (0, _manifestHelpers.resolveImport)(maybePromise.render());
131
+ (0, _manifestHelpers.resolveImportSync)(preloaded) : (0, _manifestHelpers.resolveImport)(maybePromise.render());
132
132
  }
133
133
  } else {
134
134
  return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(function (node) {
@@ -78,7 +78,7 @@ Object.defineProperty(exports, "UP", {
78
78
  return _consts.UP;
79
79
  }
80
80
  });
81
- exports.backspace = exports.applyYellowHighlight = exports.altPaste = exports.alignRight = exports.alignLeft = exports.alignCenter = exports.addRowBeforeVO = exports.addRowBefore = exports.addRowAfterVO = exports.addRowAfter = exports.addLink = exports.addInlineComment = exports.addColumnBeforeVO = exports.addColumnBefore = exports.addColumnAfterVO = exports.addColumnAfter = exports.addAltText = exports.activateVideoControls = void 0;
81
+ exports.backspace = exports.askAIQuickInsert = exports.applyYellowHighlight = exports.altPaste = exports.alignRight = exports.alignLeft = exports.alignCenter = exports.addRowBeforeVO = exports.addRowBefore = exports.addRowAfterVO = exports.addRowAfter = exports.addLink = exports.addInlineComment = exports.addColumnBeforeVO = exports.addColumnBefore = exports.addColumnAfterVO = exports.addColumnAfter = exports.addAltText = exports.activateVideoControls = void 0;
82
82
  exports.bindKeymapArrayWithCommand = bindKeymapArrayWithCommand;
83
83
  exports.bindKeymapWithCommand = bindKeymapWithCommand;
84
84
  exports.bindKeymapWithEditorCommand = bindKeymapWithEditorCommand;
@@ -102,8 +102,8 @@ Object.defineProperty(exports, "keymap", {
102
102
  exports.makeKeyMapArrayWithCommon = makeKeyMapArrayWithCommon;
103
103
  exports.makeKeyMapWithCommon = makeKeyMapWithCommon;
104
104
  exports.makeKeymap = makeKeymap;
105
- exports.splitCodeBlock = exports.space = exports.showElementDragHandle = exports.shiftTab = exports.shiftEnter = exports.shiftBackspace = exports.shiftArrowUp = exports.setNormalText = exports.selectTable = exports.selectRow = exports.selectColumn = exports.redoAlt = exports.redo = exports.previousCell = exports.pastePlainText = exports.paste = exports.outdentList = exports.outdent = exports.openHelp = exports.nextCell = exports.navToFloatingToolbar = exports.navToEditorToolbar = exports.moveUp = exports.moveRowUp = exports.moveRowDown = exports.moveRight = exports.moveLeft = exports.moveDown = exports.moveColumnRight = exports.moveColumnLeft = void 0;
106
- exports.toggleUnderline = exports.toggleTaskItemCheckbox = exports.toggleTable = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleOrderedList = exports.toggleItalic = exports.toggleHighlightPalette = exports.toggleHeading6 = exports.toggleHeading5 = exports.toggleHeading4 = exports.toggleHeading3 = exports.toggleHeading2 = exports.toggleHeading1 = exports.toggleCode = exports.toggleBulletList = exports.toggleBold = exports.toggleBlockQuote = exports.tab = exports.submit = exports.startColumnResizing = exports.splitListItem = void 0;
105
+ exports.space = exports.showElementDragHandle = exports.shiftTab = exports.shiftEnter = exports.shiftBackspace = exports.shiftArrowUp = exports.setNormalText = exports.selectTable = exports.selectRow = exports.selectColumn = exports.redoAlt = exports.redo = exports.previousCell = exports.pastePlainText = exports.paste = exports.outdentList = exports.outdent = exports.openHelp = exports.nextCell = exports.navToFloatingToolbar = exports.navToEditorToolbar = exports.moveUp = exports.moveRowUp = exports.moveRowDown = exports.moveRight = exports.moveLeft = exports.moveDown = exports.moveColumnRight = exports.moveColumnLeft = void 0;
106
+ exports.toggleUnderline = exports.toggleTaskItemCheckbox = exports.toggleTable = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleOrderedList = exports.toggleItalic = exports.toggleHighlightPalette = exports.toggleHeading6 = exports.toggleHeading5 = exports.toggleHeading4 = exports.toggleHeading3 = exports.toggleHeading2 = exports.toggleHeading1 = exports.toggleCode = exports.toggleBulletList = exports.toggleBold = exports.toggleBlockQuote = exports.tab = exports.submit = exports.startColumnResizing = exports.splitListItem = exports.splitCodeBlock = void 0;
107
107
  exports.tooltip = tooltip;
108
108
  exports.undo = void 0;
109
109
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
@@ -126,6 +126,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
126
126
  var addAltText = exports.addAltText = makeKeyMapWithCommon('Add Alt Text', 'Mod-Alt-y');
127
127
  var navToEditorToolbar = exports.navToEditorToolbar = makeKeyMapWithCommon('Navigate to editor toolbar', 'Alt-F9');
128
128
  var navToFloatingToolbar = exports.navToFloatingToolbar = makeKeyMapWithCommon('Navigate to floating toolbar', 'Alt-F10');
129
+ var askAIQuickInsert = exports.askAIQuickInsert = makeKeyMapWithCommon('Ask AI', "Mod-'");
129
130
  var toggleBold = exports.toggleBold = makeKeyMapWithCommon('Bold', 'Mod-b');
130
131
  var toggleItalic = exports.toggleItalic = makeKeyMapWithCommon('Italic', 'Mod-i');
131
132
  var toggleUnderline = exports.toggleUnderline = makeKeyMapWithCommon('Underline', 'Mod-u');
@@ -15,5 +15,10 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
15
15
  id: 'fabric.editor.breakoutWideWidthLabel',
16
16
  defaultMessage: 'Wide',
17
17
  description: 'Resize current element to wide mode'
18
+ },
19
+ resizeHandle: {
20
+ id: 'fabric.editor.resizeHandle',
21
+ defaultMessage: 'Resize handle',
22
+ description: 'Resize handle'
18
23
  }
19
24
  });
@@ -110,5 +110,10 @@ var toolbarMessages = exports.toolbarMessages = (0, _reactIntlNext.defineMessage
110
110
  id: 'fabric.editor.navigate.toolbar.floating',
111
111
  defaultMessage: 'Navigate to floating toolbar',
112
112
  description: 'Navigate to a floating toolbar for relevant nodes (e.g. tables or panels).'
113
+ },
114
+ askAI: {
115
+ id: 'fabric.editor.navigate.toolbar.askAI',
116
+ defaultMessage: 'Ask AI',
117
+ description: 'Open the AI panel to ask a question or generate content.'
113
118
  }
114
119
  });
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "105.9.1";
20
+ var packageVersion = "105.11.0";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // Ignored via go/ees007
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.nodeVisibilityManager = void 0;
7
+ // Use this selector to set the intersection observer boundary for editor's inline node views
8
+ // If this does not exist, it will use the IntersectionObserver's default root
9
+ var INTERSECTION_OBSERVER_ROOT_SELECTOR = '[data-editor-scroll-container="true"]';
10
+ var editorObservers = new WeakMap();
11
+ var callbackMap = new WeakMap();
12
+
13
+ /**
14
+ * Creates a node visibility manager
15
+ * @param editorElement
16
+ * @returns
17
+ */
18
+ var nodeVisibilityManager = exports.nodeVisibilityManager = function nodeVisibilityManager(editorElement) {
19
+ // Warning! do not reference editorElement outside of internal functions.
20
+ // editorElement is passed to allow support for multiple editors,
21
+
22
+ var unObserveInternal = function unObserveInternal(nodeElement) {
23
+ var _editorObservers$get;
24
+ (_editorObservers$get = editorObservers.get(editorElement)) === null || _editorObservers$get === void 0 || _editorObservers$get.unobserve(nodeElement);
25
+ callbackMap.delete(nodeElement);
26
+ };
27
+ var observe = function observe(observerConfig) {
28
+ var _editorObservers$get2;
29
+ callbackMap.set(observerConfig.element, observerConfig);
30
+ (_editorObservers$get2 = editorObservers.get(editorElement)) === null || _editorObservers$get2 === void 0 || _editorObservers$get2.observe(observerConfig.element);
31
+
32
+ // return clean up
33
+ return function () {
34
+ // consumer needs to unobserve on destroy if their element
35
+ // was observed but never scrolled into view
36
+ unObserveInternal(observerConfig.element);
37
+ };
38
+ };
39
+ var initialiseNodeObserver = function initialiseNodeObserver() {
40
+ if (editorObservers.has(editorElement)) {
41
+ return;
42
+ }
43
+ var intersectionObserverOptions = {
44
+ root: editorElement.closest(INTERSECTION_OBSERVER_ROOT_SELECTOR),
45
+ rootMargin: '0px 0px 100px 0px',
46
+ threshold: 0
47
+ };
48
+ var editorObserver = new IntersectionObserver(function (entries) {
49
+ return entries.map(function (entry) {
50
+ return {
51
+ entry: entry,
52
+ callback: callbackMap.get(entry.target)
53
+ };
54
+ })
55
+ // Invoke callbacks together to group browser rendering
56
+ // Avoiding requestAnimationFrame to reduce visual flickering
57
+ .forEach(function (_ref) {
58
+ var entry = _ref.entry,
59
+ callback = _ref.callback;
60
+ if (entry.isIntersecting) {
61
+ callback === null || callback === void 0 || callback.onFirstVisible();
62
+ if (entry.target instanceof HTMLElement) {
63
+ // immediately unobserve the element after it is visible
64
+ unObserveInternal(entry.target);
65
+ }
66
+ }
67
+ });
68
+ }, intersectionObserverOptions);
69
+ editorObservers.set(editorElement, editorObserver);
70
+ };
71
+ var disconnect = function disconnect() {
72
+ var _editorObservers$get3;
73
+ (_editorObservers$get3 = editorObservers.get(editorElement)) === null || _editorObservers$get3 === void 0 || _editorObservers$get3.disconnect();
74
+ editorObservers.delete(editorElement);
75
+ };
76
+ return {
77
+ initialiseNodeObserver: initialiseNodeObserver,
78
+ observe: observe,
79
+ disconnect: disconnect
80
+ };
81
+ };
@@ -13,9 +13,11 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _classnames3 = _interopRequireDefault(require("classnames"));
15
15
  var _reResizable = require("re-resizable");
16
+ var _reactIntlNext = require("react-intl-next");
16
17
  var _primitives = require("@atlaskit/primitives");
17
18
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
18
19
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
20
+ var _breakout = require("../messages/breakout");
19
21
  var _resizer = require("../styles/shared/resizer");
20
22
  var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent", "needExtendedResizeZone", "childrenDOMRef", "labelComponent"];
21
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -141,12 +143,15 @@ var ResizerNext = function ResizerNext(props, ref) {
141
143
  'display-handle': isHandleVisible
142
144
  }, _resizer.resizerDangerClassName, appearance === 'danger'));
143
145
  var resizerZoneClassName = (0, _classnames3.default)(_resizer.resizerHoverZoneClassName, (0, _defineProperty2.default)({}, _resizer.resizerExtendedZone, needExtendedResizeZone));
146
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
147
+ formatMessage = _useIntl.formatMessage;
144
148
  var handleComponent = (0, _react.useMemo)(function () {
145
149
  return SUPPORTED_HANDLES.reduce(function (result, position) {
146
150
  var thumb = /*#__PURE__*/_react.default.createElement("button", {
147
151
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
148
152
  className: _resizer.resizerHandleThumbClassName,
149
153
  "data-testid": "resizer-handle-".concat(position, "-thumb"),
154
+ "aria-label": formatMessage(_breakout.messages.resizeHandle),
150
155
  contentEditable: false,
151
156
  ref: resizeHandleThumbRef,
152
157
  type: "button",
@@ -186,7 +191,7 @@ var ResizerNext = function ResizerNext(props, ref) {
186
191
  style: inheritedCSS
187
192
  }, thumbWithTrack)));
188
193
  }, {});
189
- }, [handleHighlight, handleTooltipContent]);
194
+ }, [handleHighlight, handleTooltipContent, formatMessage]);
190
195
 
191
196
  // snapGap is usually a constant, if snap.x?.length is 0 and snapGap has a value resizer cannot be resized
192
197
  var snapGapActual = (0, _react.useMemo)(function () {
@@ -59,7 +59,7 @@ var firstNodeWithNotMarginTop = function firstNodeWithNotMarginTop() {
59
59
 
60
60
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Appears safe to auto-fix, but leaving it up to the team to remediate as the readability only gets worse with autofixing
61
61
  var tableSharedStyle = exports.tableSharedStyle = function tableSharedStyle() {
62
- return (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t", "\n\t.", " {\n\t\tposition: relative;\n\t\tmargin: 0 auto ", ";\n\t\tbox-sizing: border-box;\n\n\t\t/**\n * Fix block top alignment inside table cells.\n */\n\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n\t.", "[data-number-column='true'] {\n\t\tpadding-left: ", "px;\n\t\tclear: both;\n\t}\n\n\t.", " {\n\t\twill-change: width, margin-left;\n\t}\n\n\t.", " table {\n\t\twill-change: width;\n\t}\n\n\t.", " > table {\n\t\tmargin: ", " 0 0 0;\n\t}\n\n\t.", " > table,\n\t.", " > table {\n\t\tmargin: ", " ", " 0 0;\n\t}\n\n\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\tborder-collapse: collapse;\n\t\tborder: ", "px solid\n\t\t\t", ";\n\t\ttable-layout: fixed;\n\t\tfont-size: 1em;\n\t\twidth: 100%;\n\n\t\t&[data-autosize='true'] {\n\t\t\ttable-layout: auto;\n\t\t}\n\n\t\t& {\n\t\t\t* {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\thr {\n\t\t\t\tbox-sizing: content-box;\n\t\t\t}\n\n\t\t\ttbody {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\t\t\tth td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\t", " {\n\t\t\t\tmin-width: ", "px;\n\t\t\t\tfont-weight: ", ";\n\t\t\t\tvertical-align: top;\n\t\t\t\tborder: 1px solid ", ";\n\t\t\t\tborder-right-width: 0;\n\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\tpadding: ", ";\n\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t", "\n\n\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t> tbody > tr > td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\tth {\n\t\t\t\tbackground-color: ", ";\n\t\t\t\ttext-align: left;\n\n\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t&:not([style]):not(.danger) {\n\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n"])), (0, _tableCell.tableCellBackgroundStyleOverride)(), TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", TableSharedCssClassName.TABLE_CONTAINER, _editorSharedStyles.akEditorTableNumberColumnWidth - 1, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, tableCellBorderWidth, "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-background-neutral-subtle, white)", (0, _platformFeatureFlags.fg)('platform_editor_renderer_table_header_styles') ? "> tbody > tr > th, > tbody > tr > td" : 'th, td', tableCellMinWidth, "var(--ds-font-weight-regular, 400)", "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-space-100, 8px)", _browser.browser.gecko || _browser.browser.ie || _browser.browser.mac && _browser.browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", "var(--ds-background-accent-gray-subtlest, ".concat(_editorSharedStyles.akEditorTableToolbar, ")"), _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, rgb(235, 237, 240))", _editorSharedStyles.akEditorSelectedNodeClassName, "var(--ds-border, transparent)", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, (0, _editorSharedStyles.overflowShadow)({
62
+ return (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t", "\n\t.", " {\n\t\tposition: relative;\n\t\tmargin: 0 auto ", ";\n\t\tbox-sizing: border-box;\n\n\t\t/**\n * Fix block top alignment inside table cells.\n */\n\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n\t.", "[data-number-column='true'] {\n\t\tpadding-left: ", "px;\n\t\tclear: both;\n\t}\n\n\t.", " {\n\t\twill-change: width, margin-left;\n\t}\n\n\t.", " table {\n\t\twill-change: width;\n\t}\n\n\t.", " > table {\n\t\tmargin: ", " 0 0 0;\n\t}\n\n\t.", " > table,\n\t.", " > table {\n\t\tmargin: ", " ", " 0 0;\n\t}\n\n\t/* support panel nested in table */\n\t", "\n\n\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\tborder-collapse: collapse;\n\t\tborder: ", "px solid\n\t\t\t", ";\n\t\ttable-layout: fixed;\n\t\tfont-size: 1em;\n\t\twidth: 100%;\n\n\t\t&[data-autosize='true'] {\n\t\t\ttable-layout: auto;\n\t\t}\n\n\t\t& {\n\t\t\t* {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\thr {\n\t\t\t\tbox-sizing: content-box;\n\t\t\t}\n\n\t\t\ttbody {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\t\t\tth td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\t", " {\n\t\t\t\tmin-width: ", "px;\n\t\t\t\tfont-weight: ", ";\n\t\t\t\tvertical-align: top;\n\t\t\t\tborder: 1px solid ", ";\n\t\t\t\tborder-right-width: 0;\n\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\tpadding: ", ";\n\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t", "\n\n\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t> tbody > tr > td {\n\t\t\t\tbackground-color: ", ";\n\t\t\t}\n\n\t\t\tth {\n\t\t\t\tbackground-color: ", ";\n\t\t\t\ttext-align: left;\n\n\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t&:not([style]):not(.danger) {\n\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n"])), (0, _tableCell.tableCellBackgroundStyleOverride)(), TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", TableSharedCssClassName.TABLE_CONTAINER, _editorSharedStyles.akEditorTableNumberColumnWidth - 1, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", (0, _platformFeatureFlags.fg)('platform_editor_bordered_panel_nested_in_table') ? ".".concat(TableSharedCssClassName.TABLE_NODE_WRAPPER, " .ak-editor-panel {\n\t\t\tborder: ", "var(--ds-border-width, 1px)", " solid ", "var(--ds-border, #d9dbea)", ";\n\t\t}") : '', TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, tableCellBorderWidth, "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-background-neutral-subtle, white)", (0, _platformFeatureFlags.fg)('platform_editor_renderer_table_header_styles') ? "> tbody > tr > th, > tbody > tr > td" : 'th, td', tableCellMinWidth, "var(--ds-font-weight-regular, 400)", "var(--ds-background-accent-gray-subtler, ".concat(_editorSharedStyles.akEditorTableBorder, ")"), "var(--ds-space-100, 8px)", _browser.browser.gecko || _browser.browser.ie || _browser.browser.mac && _browser.browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", "var(--ds-background-accent-gray-subtlest, ".concat(_editorSharedStyles.akEditorTableToolbar, ")"), _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, rgb(235, 237, 240))", _editorSharedStyles.akEditorSelectedNodeClassName, "var(--ds-border, transparent)", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, (0, _editorSharedStyles.overflowShadow)({
63
63
  leftCoverWidth: "var(--ds-space-300, 24px)"
64
64
  }), "var(--ds-background-neutral, rgb(235, 237, 240))", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_LINE_NUMBER_GUTTER, "var(--ds-background-neutral, rgb(226, 229, 233))", (0, _editorSharedStyles.overflowShadow)({
65
65
  leftCoverWidth: "var(--ds-space-300, 24px)"
@@ -23,7 +23,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
23
23
  * @jsx jsx
24
24
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
25
25
  var packageName = "@atlaskit/editor-common";
26
- var packageVersion = "105.9.1";
26
+ var packageVersion = "105.11.0";
27
27
  var halfFocusRing = 1;
28
28
  var dropOffset = '0, 8';
29
29
  // Ignored via go/ees005
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.ToolbarArrowKeyNavigationProvider = exports.KeyDownHandlerContext = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _react2 = require("@emotion/react");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _elementBrowser = require("../../element-browser");
11
12
  var _messages = require("../../messages");
12
13
  var _mediaInsert = require("../../messages/media-insert");
@@ -91,6 +92,23 @@ var ToolbarArrowKeyNavigationProvider = exports.ToolbarArrowKeyNavigationProvide
91
92
  var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
92
93
  (_filteredFocusableEle3 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle3 === void 0 || _filteredFocusableEle3.focus();
93
94
  };
95
+ var handleArrowRightMemoized = (0, _react.useCallback)(function () {
96
+ var _filteredFocusableEle4;
97
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
98
+ incrementIndex(filteredFocusableElements);
99
+ (_filteredFocusableEle4 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle4 === void 0 || _filteredFocusableEle4.focus();
100
+ }, [incrementIndex]);
101
+ var handleArrowLeftMemoized = (0, _react.useCallback)(function () {
102
+ var _filteredFocusableEle5;
103
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
104
+ decrementIndex(filteredFocusableElements);
105
+ (_filteredFocusableEle5 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle5 === void 0 || _filteredFocusableEle5.focus();
106
+ }, [decrementIndex]);
107
+ var handleTabMemoized = (0, _react.useCallback)(function () {
108
+ var _filteredFocusableEle6;
109
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
110
+ (_filteredFocusableEle6 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle6 === void 0 || _filteredFocusableEle6.focus();
111
+ }, []);
94
112
  var handleTabLocal = function handleTabLocal() {
95
113
  var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
96
114
  filteredFocusableElements.forEach(function (element) {
@@ -109,11 +127,19 @@ var ToolbarArrowKeyNavigationProvider = exports.ToolbarArrowKeyNavigationProvide
109
127
  }
110
128
  element.focus();
111
129
  };
112
- var submenuKeydownHandleContext = {
130
+ var submenuKeydownHandleContextRaw = {
113
131
  handleArrowLeft: handleArrowLeft,
114
132
  handleArrowRight: handleArrowRight,
115
133
  handleTab: handleTab
116
134
  };
135
+ var submenuKeydownHandleContextMemoized = (0, _react.useMemo)(function () {
136
+ return {
137
+ handleArrowLeft: handleArrowLeftMemoized,
138
+ handleArrowRight: handleArrowRightMemoized,
139
+ handleTab: handleTabMemoized
140
+ };
141
+ }, [handleArrowLeftMemoized, handleArrowRightMemoized, handleTabMemoized]);
142
+ var submenuKeydownHandleContext = (0, _platformFeatureFlags.fg)('platform_editor_toolbar_rerender_optimization') ? submenuKeydownHandleContextMemoized : submenuKeydownHandleContextRaw;
117
143
  (0, _react.useLayoutEffect)(function () {
118
144
  if (!wrapperRef.current || disableArrowKeyNavigation) {
119
145
  return;
@@ -188,10 +214,10 @@ var ToolbarArrowKeyNavigationProvider = exports.ToolbarArrowKeyNavigationProvide
188
214
  // Ignored via go/ees005
189
215
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
190
216
  if (isShortcutToFocusToolbar(event)) {
191
- var _filteredFocusableEle4, _filteredFocusableEle5;
217
+ var _filteredFocusableEle7, _filteredFocusableEle8;
192
218
  var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
193
- (_filteredFocusableEle4 = filteredFocusableElements[0]) === null || _filteredFocusableEle4 === void 0 || _filteredFocusableEle4.focus();
194
- (_filteredFocusableEle5 = filteredFocusableElements[0]) === null || _filteredFocusableEle5 === void 0 || _filteredFocusableEle5.scrollIntoView({
219
+ (_filteredFocusableEle7 = filteredFocusableElements[0]) === null || _filteredFocusableEle7 === void 0 || _filteredFocusableEle7.focus();
220
+ (_filteredFocusableEle8 = filteredFocusableElements[0]) === null || _filteredFocusableEle8 === void 0 || _filteredFocusableEle8.scrollIntoView({
195
221
  behavior: 'smooth',
196
222
  block: 'center',
197
223
  inline: 'nearest'
@@ -10,7 +10,6 @@ import classnames from 'classnames';
10
10
  import { FormattedMessage, defineMessages } from 'react-intl-next';
11
11
  import CustomizeIcon from '@atlaskit/icon/core/customize';
12
12
  import { Box, xcss } from '@atlaskit/primitives';
13
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
14
13
  import Tooltip from '@atlaskit/tooltip';
15
14
  const containerStyles = css({
16
15
  textAlign: 'left',
@@ -161,17 +160,6 @@ export const ExtensionLabel = ({
161
160
  onMouseLeave: () => {
162
161
  setIsNodeHovered === null || setIsNodeHovered === void 0 ? void 0 : setIsNodeHovered(false);
163
162
  },
164
- onClick: () => {
165
- if (editorExperiment('live_pages_graceful_edit', 'text-click-delayed') || editorExperiment('live_pages_graceful_edit', 'text-click-no-delay')) {
166
- var _pluginInjectionApi$c, _pluginInjectionApi$c2, _pluginInjectionApi$e;
167
- pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$c = pluginInjectionApi.core) === null || _pluginInjectionApi$c === void 0 ? void 0 : (_pluginInjectionApi$c2 = _pluginInjectionApi$c.actions) === null || _pluginInjectionApi$c2 === void 0 ? void 0 : _pluginInjectionApi$c2.execute( // Extensions are not yet using the new plugin architecture, and the use of the pluginInjectionApi
168
- // is not type safe in editor-common.
169
- // @ts-ignore
170
- pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$e = pluginInjectionApi.editorViewMode) === null || _pluginInjectionApi$e === void 0 ? void 0 : _pluginInjectionApi$e.commands.updateContentMode({
171
- type: 'intent-to-edit'
172
- }));
173
- }
174
- },
175
163
  "data-testid": "new-lozenge-container",
176
164
  contentEditable: false
177
165
  }, jsx(Tooltip, {
@@ -27,28 +27,20 @@ export default (extensionProviders => {
27
27
  // preload() has not been called yet
28
28
  return;
29
29
  }
30
- let error;
31
30
  for (const provider of providersCache) {
32
- // Similar to invokeSingle. We are returning the first result that not throwing an error.
33
- // It's OK to get exception here because we have a lot of providers.
34
- // The current provider may not have the extension type we are looking for.
35
31
  try {
36
32
  var _provider$getPreloade;
37
33
  const result = provider === null || provider === void 0 ? void 0 : (_provider$getPreloade = provider.getPreloadedExtension) === null || _provider$getPreloade === void 0 ? void 0 : _provider$getPreloade.call(provider, type, key);
38
34
  if (result) {
39
35
  return result;
40
36
  }
41
- } catch (e) {
42
- error = e instanceof Error ? e : new Error(String(e));
37
+ } catch {
38
+ // Not every provider will implement this method.
39
+ // In that case we would get error from other providers in the loop
40
+ // and undefined from that particular provider.
41
+ // We can safely ignore it and fallback to the async getExtension when nothing was found.
43
42
  }
44
43
  }
45
-
46
- // If we exhausted all providers and none of them returned a result, we throw the last error.
47
- // However as a extra precaution, we only throw in the dev environment.
48
- // In production we will return undefined and getExtensionModuleNodeMaybePreloaded will fallback to regular getExtension call.
49
- if (error && process.env.NODE_ENV !== 'production') {
50
- throw error;
51
- }
52
44
  },
53
45
  getExtension(type, key) {
54
46
  return invokeSingle('getExtension', [type, key]);
@@ -68,9 +68,9 @@ export function getNodeRenderer(extensionProvider, extensionType, extensionKey)
68
68
  const preloaded = maybePromise === null || maybePromise === void 0 ? void 0 : (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
69
69
  // Only product implemented preloading will return sync result
70
70
  // However the out-of-box won't handle this. Confluence uses a custom implementation
71
- return preloaded
71
+ return preloaded ?
72
72
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
- ? resolveImportSync(preloaded) : resolveImport(maybePromise.render());
73
+ resolveImportSync(preloaded) : resolveImport(maybePromise.render());
74
74
  }
75
75
  } else {
76
76
  return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(node => resolveImport(node.render()));
@@ -12,6 +12,7 @@ import { browser } from '../utils';
12
12
  export const addAltText = makeKeyMapWithCommon('Add Alt Text', 'Mod-Alt-y');
13
13
  export const navToEditorToolbar = makeKeyMapWithCommon('Navigate to editor toolbar', 'Alt-F9');
14
14
  export const navToFloatingToolbar = makeKeyMapWithCommon('Navigate to floating toolbar', 'Alt-F10');
15
+ export const askAIQuickInsert = makeKeyMapWithCommon('Ask AI', "Mod-'");
15
16
  export const toggleBold = makeKeyMapWithCommon('Bold', 'Mod-b');
16
17
  export const toggleItalic = makeKeyMapWithCommon('Italic', 'Mod-i');
17
18
  export const toggleUnderline = makeKeyMapWithCommon('Underline', 'Mod-u');
@@ -9,5 +9,10 @@ export const messages = defineMessages({
9
9
  id: 'fabric.editor.breakoutWideWidthLabel',
10
10
  defaultMessage: 'Wide',
11
11
  description: 'Resize current element to wide mode'
12
+ },
13
+ resizeHandle: {
14
+ id: 'fabric.editor.resizeHandle',
15
+ defaultMessage: 'Resize handle',
16
+ description: 'Resize handle'
12
17
  }
13
18
  });
@@ -104,5 +104,10 @@ export const toolbarMessages = defineMessages({
104
104
  id: 'fabric.editor.navigate.toolbar.floating',
105
105
  defaultMessage: 'Navigate to floating toolbar',
106
106
  description: 'Navigate to a floating toolbar for relevant nodes (e.g. tables or panels).'
107
+ },
108
+ askAI: {
109
+ id: 'fabric.editor.navigate.toolbar.askAI',
110
+ defaultMessage: 'Ask AI',
111
+ description: 'Open the AI panel to ask a question or generate content.'
107
112
  }
108
113
  });
@@ -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 = "105.9.1";
4
+ const packageVersion = "105.11.0";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // Ignored via go/ees007