@atlaskit/editor-common 120.11.0 → 120.11.2

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 (132) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/analytics/utils.js +2 -2
  3. package/dist/cjs/card/addLinkMetadata.js +2 -2
  4. package/dist/cjs/card/getLinkMetadataFromTransaction.js +2 -2
  5. package/dist/cjs/code-block/index.js +2 -2
  6. package/dist/cjs/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -2
  7. package/dist/cjs/media-inline/media-inline-image-card.js +2 -2
  8. package/dist/cjs/monitoring/error.js +1 -1
  9. package/dist/cjs/paste/md-plugins/linkify-md-plugin.js +2 -2
  10. package/dist/cjs/resizer/BreakoutResizer.js +6 -6
  11. package/dist/cjs/styles/shared/TableSharedCssClassName.js +21 -21
  12. package/dist/cjs/styles/shared/mapBackgroundColors.js +2 -2
  13. package/dist/cjs/styles/shared/panel.js +6 -6
  14. package/dist/cjs/transforms/extension.js +2 -2
  15. package/dist/cjs/ui/DropList/index.js +1 -1
  16. package/dist/cjs/ui/Mention/mention-with-profilecard.js +2 -2
  17. package/dist/cjs/ui/TableSelector/index.js +3 -3
  18. package/dist/cjs/ui-color/ColorPalette/Palettes/borderColorPalette.js +2 -2
  19. package/dist/cjs/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +3 -3
  20. package/dist/cjs/ui-color/ColorPalette/Palettes/highlightColorPalette.js +2 -2
  21. package/dist/cjs/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -2
  22. package/dist/cjs/ui-color/ColorPalette/utils.js +5 -4
  23. package/dist/cjs/ui-menu/ColorPickerButton/index.js +2 -2
  24. package/dist/cjs/utils/LinkMatcher.js +2 -2
  25. package/dist/cjs/utils/annotation/index.js +2 -2
  26. package/dist/cjs/utils/hyperlink.js +2 -2
  27. package/dist/cjs/utils/normalizeUrl.js +4 -3
  28. package/dist/cjs/utils/validator.js +19 -16
  29. package/dist/cjs/vanilla-tooltip/index.js +96 -25
  30. package/dist/es2019/analytics/utils.js +1 -1
  31. package/dist/es2019/card/addLinkMetadata.js +1 -1
  32. package/dist/es2019/card/getLinkMetadataFromTransaction.js +1 -1
  33. package/dist/es2019/code-block/index.js +1 -1
  34. package/dist/es2019/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  35. package/dist/es2019/media-inline/media-inline-image-card.js +1 -1
  36. package/dist/es2019/monitoring/error.js +1 -1
  37. package/dist/es2019/paste/md-plugins/linkify-md-plugin.js +1 -1
  38. package/dist/es2019/resizer/BreakoutResizer.js +1 -1
  39. package/dist/es2019/styles/shared/TableSharedCssClassName.js +1 -1
  40. package/dist/es2019/styles/shared/mapBackgroundColors.js +1 -1
  41. package/dist/es2019/styles/shared/panel.js +1 -1
  42. package/dist/es2019/transforms/extension.js +1 -1
  43. package/dist/es2019/ui/DropList/index.js +1 -1
  44. package/dist/es2019/ui/Mention/mention-with-profilecard.js +1 -1
  45. package/dist/es2019/ui/TableSelector/index.js +1 -1
  46. package/dist/es2019/ui-color/ColorPalette/Palettes/borderColorPalette.js +1 -1
  47. package/dist/es2019/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +1 -1
  48. package/dist/es2019/ui-color/ColorPalette/Palettes/highlightColorPalette.js +1 -1
  49. package/dist/es2019/ui-color/ColorPalette/Palettes/textColorPalette.js +1 -1
  50. package/dist/es2019/ui-color/ColorPalette/utils.js +3 -2
  51. package/dist/es2019/ui-menu/ColorPickerButton/index.js +1 -1
  52. package/dist/es2019/utils/LinkMatcher.js +1 -1
  53. package/dist/es2019/utils/annotation/index.js +1 -1
  54. package/dist/es2019/utils/hyperlink.js +1 -1
  55. package/dist/es2019/utils/normalizeUrl.js +2 -1
  56. package/dist/es2019/utils/validator.js +4 -1
  57. package/dist/es2019/vanilla-tooltip/index.js +96 -27
  58. package/dist/esm/analytics/utils.js +1 -1
  59. package/dist/esm/card/addLinkMetadata.js +1 -1
  60. package/dist/esm/card/getLinkMetadataFromTransaction.js +1 -1
  61. package/dist/esm/code-block/index.js +1 -1
  62. package/dist/esm/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  63. package/dist/esm/media-inline/media-inline-image-card.js +1 -1
  64. package/dist/esm/monitoring/error.js +1 -1
  65. package/dist/esm/paste/md-plugins/linkify-md-plugin.js +1 -1
  66. package/dist/esm/resizer/BreakoutResizer.js +1 -1
  67. package/dist/esm/styles/shared/TableSharedCssClassName.js +1 -1
  68. package/dist/esm/styles/shared/mapBackgroundColors.js +1 -1
  69. package/dist/esm/styles/shared/panel.js +1 -1
  70. package/dist/esm/transforms/extension.js +1 -1
  71. package/dist/esm/ui/DropList/index.js +1 -1
  72. package/dist/esm/ui/Mention/mention-with-profilecard.js +1 -1
  73. package/dist/esm/ui/TableSelector/index.js +1 -1
  74. package/dist/esm/ui-color/ColorPalette/Palettes/borderColorPalette.js +1 -1
  75. package/dist/esm/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +1 -1
  76. package/dist/esm/ui-color/ColorPalette/Palettes/highlightColorPalette.js +1 -1
  77. package/dist/esm/ui-color/ColorPalette/Palettes/textColorPalette.js +1 -1
  78. package/dist/esm/ui-color/ColorPalette/utils.js +3 -2
  79. package/dist/esm/ui-menu/ColorPickerButton/index.js +1 -1
  80. package/dist/esm/utils/LinkMatcher.js +1 -1
  81. package/dist/esm/utils/annotation/index.js +1 -1
  82. package/dist/esm/utils/hyperlink.js +1 -1
  83. package/dist/esm/utils/normalizeUrl.js +2 -1
  84. package/dist/esm/utils/validator.js +4 -1
  85. package/dist/esm/vanilla-tooltip/index.js +96 -25
  86. package/dist/types/analytics/types/extension-events.d.ts +1 -1
  87. package/dist/types/analytics/types/general-events.d.ts +1 -1
  88. package/dist/types/analytics/types/insert-events.d.ts +2 -1
  89. package/dist/types/analytics/types/media-events.d.ts +1 -1
  90. package/dist/types/analytics/types/node-events.d.ts +1 -1
  91. package/dist/types/analytics/types/table-events.d.ts +1 -1
  92. package/dist/types/annotation/index.d.ts +1 -1
  93. package/dist/types/annotation/manager.d.ts +1 -1
  94. package/dist/types/block-menu/scroll-to-block-utils.d.ts +1 -1
  95. package/dist/types/card/MediaAndEmbedsToolbar/index.d.ts +1 -1
  96. package/dist/types/card/addLinkMetadata.d.ts +1 -1
  97. package/dist/types/card/getLinkMetadataFromTransaction.d.ts +1 -1
  98. package/dist/types/card/utils.d.ts +1 -1
  99. package/dist/types/code-block/index.d.ts +1 -1
  100. package/dist/types/collab/index.d.ts +2 -1
  101. package/dist/types/guideline/getGuidelineSnaps.d.ts +1 -1
  102. package/dist/types/media-single/ExternalImageBadge.d.ts +1 -1
  103. package/dist/types/media-single/constants.d.ts +1 -1
  104. package/dist/types/media-single/utils.d.ts +1 -1
  105. package/dist/types/provider-factory/macro-provider.d.ts +1 -1
  106. package/dist/types/provider-factory/profile-card-provider.d.ts +2 -1
  107. package/dist/types/styles/shared/calcTableWidth.d.ts +1 -1
  108. package/dist/types/styles/shared/panel.d.ts +1 -1
  109. package/dist/types/types/annotation/emitter.d.ts +1 -1
  110. package/dist/types/types/annotation/index.d.ts +1 -1
  111. package/dist/types/ui/MediaSingle/calcResizedWidth.d.ts +1 -1
  112. package/dist/types/ui/MediaSingle/grid.d.ts +1 -1
  113. package/dist/types/ui/MediaSingle/index.d.ts +1 -1
  114. package/dist/types/ui/MediaSingle/styled.d.ts +1 -1
  115. package/dist/types/ui/MediaSingle/wrappedLayouts.d.ts +1 -1
  116. package/dist/types/ui/Mention/index.d.ts +1 -1
  117. package/dist/types/ui/Mention/mention-with-profilecard.d.ts +1 -1
  118. package/dist/types/ui/Mention/mention-with-providers.d.ts +1 -1
  119. package/dist/types/ui/ResizerLegacy/index.d.ts +1 -1
  120. package/dist/types/ui/ResizerLegacy/types.d.ts +1 -1
  121. package/dist/types/utils/breakout.d.ts +1 -1
  122. package/dist/types/utils/compareNodes.d.ts +1 -1
  123. package/dist/types/utils/create-adf-from-html.d.ts +1 -1
  124. package/dist/types/utils/grid.d.ts +1 -1
  125. package/dist/types/utils/nonWrappedLayouts.d.ts +1 -1
  126. package/dist/types/utils/parse-html-text-content.d.ts +1 -1
  127. package/dist/types/utils/referentiality.d.ts +1 -1
  128. package/dist/types/utils/rich-media-utils.d.ts +1 -1
  129. package/dist/types/utils/should-auto-linkify-tld.d.ts +1 -1
  130. package/dist/types/utils/shouldAddDefaultWrappedWidth.d.ts +1 -1
  131. package/dist/types/vanilla-tooltip/index.d.ts +9 -0
  132. package/package.json +2 -5
@@ -142,12 +142,33 @@ export class VanillaTooltip {
142
142
  }));
143
143
  }
144
144
 
145
- // Hide the tooltip if the hide transition has completed
146
- this.tooltip.ontransitionend = () => {
147
- if (this.shouldHidePopover) {
148
- this.tooltip.hidePopover();
149
- }
150
- };
145
+ // Hide the tooltip if the hide transition has completed.
146
+ //
147
+ // Only reachable in the control arm: no consumer declares a transition on the tooltip, so
148
+ // this never fires today, and the experiment closes the popover in `hide()` regardless.
149
+ if (!isExperimentEnabled('platform_editor_use_vanilla_components')) {
150
+ this.tooltip.ontransitionend = () => {
151
+ if (this.shouldHidePopover) {
152
+ this.tooltip.hidePopover();
153
+ }
154
+ };
155
+ }
156
+ }
157
+
158
+ /**
159
+ * Closes the popover, tolerating it already being closed.
160
+ *
161
+ * `hidePopover()` throws `InvalidStateError` when the popover is not showing, and that is a
162
+ * routine state rather than an exceptional one: showing any other `hint` or `auto` popover
163
+ * light-dismisses this one without notifying us, so the caller cannot know whether it is
164
+ * still open.
165
+ */
166
+ closePopover() {
167
+ try {
168
+ this.tooltip.hidePopover();
169
+ } catch (_error) {
170
+ // Already closed — nothing to do.
171
+ }
151
172
  }
152
173
  createPopperInstance() {
153
174
  this.popperInstance = getCreatePopper()(this.trigger, this.tooltip, {
@@ -166,6 +187,18 @@ export class VanillaTooltip {
166
187
  this.listeners.forEach(listener => {
167
188
  listener();
168
189
  });
190
+
191
+ // Undoes what the constructor added to the trigger, matching the React `@atlaskit/tooltip`
192
+ // callers are moving off, whose unmount took its DOM with it.
193
+ if (isExperimentEnabled('platform_editor_use_vanilla_components')) {
194
+ this.tooltip.remove();
195
+ if (this.trigger.getAttribute('aria-describedby') === this.tooltip.id) {
196
+ this.trigger.removeAttribute('aria-describedby');
197
+ }
198
+ if (this.trigger.getAttribute('popovertarget') === this.tooltip.id) {
199
+ this.trigger.removeAttribute('popovertarget');
200
+ }
201
+ }
169
202
  }
170
203
 
171
204
  /**
@@ -208,35 +241,71 @@ export class VanillaTooltip {
208
241
  this.shouldHidePopover = true;
209
242
  // Disable the event listeners
210
243
  this.currentTimeoutId = setTimeout(() => {
211
- var _this$popperInstance2;
212
- (_this$popperInstance2 = this.popperInstance) === null || _this$popperInstance2 === void 0 ? void 0 : _this$popperInstance2.setOptions(options => ({
213
- ...options,
214
- modifiers: [startingOffset, {
215
- name: 'eventListeners',
216
- enabled: false
217
- }]
218
- }));
219
- this.tooltip.style.opacity = '0';
220
- this.isDisplayed = false;
221
- // If transition animations are disabled immediately hide the popover
222
- if (this.tooltip.style.transition === 'none') {
223
- this.tooltip.hidePopover();
244
+ if (isExperimentEnabled('platform_editor_use_vanilla_components')) {
245
+ var _this$popperInstance2;
246
+ // Released rather than reconfigured. The instance was previously kept for the
247
+ // trigger's whole lifetime, so every element the pointer passed over retained
248
+ // one — and under `platform-dst-popper-consolidation` an instance owns a
249
+ // detached React root, so that was a retained root per hovered trigger.
250
+ //
251
+ // Destroying is also the only way to release that root's capture-phase
252
+ // `scroll`/`resize` listeners on the consolidated path, where the
253
+ // `eventListeners: false` reconfiguration in the control arm is accepted but
254
+ // does nothing.
255
+ (_this$popperInstance2 = this.popperInstance) === null || _this$popperInstance2 === void 0 ? void 0 : _this$popperInstance2.destroy();
256
+ this.popperInstance = undefined;
257
+ this.tooltip.style.opacity = '0';
258
+ this.isDisplayed = false;
259
+
260
+ // Closed here rather than from `ontransitionend`. No consumer declares a
261
+ // transition on the tooltip and none sets one inline, so that event never
262
+ // fires and the popover stayed open in the top layer for good: an invisible
263
+ // hit target over the content, and — because `showPopover()` throws
264
+ // `InvalidStateError` on an already-showing popover — an uncaught error out of
265
+ // the next `mouseenter`, after which the tooltip never appeared again.
266
+ this.closePopover();
267
+ // Paired with the `visibility` that `show()` sets, so a popover left open by
268
+ // a failed close cannot intercept pointer events over the content.
269
+ this.tooltip.style.visibility = 'hidden';
270
+ } else {
271
+ var _this$popperInstance3;
272
+ (_this$popperInstance3 = this.popperInstance) === null || _this$popperInstance3 === void 0 ? void 0 : _this$popperInstance3.setOptions(options => ({
273
+ ...options,
274
+ modifiers: [startingOffset, {
275
+ name: 'eventListeners',
276
+ enabled: false
277
+ }]
278
+ }));
279
+ this.tooltip.style.opacity = '0';
280
+ this.isDisplayed = false;
281
+ // If transition animations are disabled immediately hide the popover
282
+ if (this.tooltip.style.transition === 'none') {
283
+ this.tooltip.hidePopover();
284
+ }
224
285
  }
225
286
  }, immediate ? 0 : this.timeout);
226
287
  }
227
288
  show() {
228
- // Bound before the open delay so Escape can dismiss during it, and before the
229
- // `isDisplayed` guard so re-hovering a tooltip whose hide is still pending (`hide()`
230
- // unbinds synchronously, but the tooltip stays on screen until its timeout) restores
231
- // Escape rather than leaving the visible tooltip undismissable.
289
+ // Ahead of the `isDisplayed` guard, unlike the equivalent below: `hide()` takes effect
290
+ // synchronously but leaves the tooltip on screen until its timeout, so a pointer
291
+ // returning in that window finds `isDisplayed` still true and returns early. Cancelling
292
+ // first keeps the tooltip up and stops it being left undismissable with a hide pending.
232
293
  if (isExperimentEnabled('platform_editor_use_vanilla_components')) {
233
294
  this.bindEscapeListener();
295
+ clearTimeout(this.currentTimeoutId);
296
+ this.shouldHidePopover = false;
234
297
  }
235
298
  if (this.isDisplayed) {
236
299
  return;
237
300
  }
238
- clearTimeout(this.currentTimeoutId);
239
- this.shouldHidePopover = false;
301
+
302
+ // Control only: the experiment cancels above, ahead of the guard. Kept gated rather than
303
+ // left unconditional — despite being a no-op once the block above has run — so that
304
+ // experiment cleanup can delete it outright instead of having to reason about it.
305
+ if (!isExperimentEnabled('platform_editor_use_vanilla_components')) {
306
+ clearTimeout(this.currentTimeoutId);
307
+ this.shouldHidePopover = false;
308
+ }
240
309
 
241
310
  // Make the tooltip visible - but hide until
242
311
  this.tooltip.style.visibility = 'hidden';
@@ -251,10 +320,10 @@ export class VanillaTooltip {
251
320
 
252
321
  // Enable the event listeners
253
322
  this.currentTimeoutId = setTimeout(() => {
254
- var _this$popperInstance3, _this$onShow;
323
+ var _this$popperInstance4, _this$onShow;
255
324
  this.tooltip.style.opacity = '1';
256
325
  this.tooltip.style.visibility = 'visible';
257
- (_this$popperInstance3 = this.popperInstance) === null || _this$popperInstance3 === void 0 ? void 0 : _this$popperInstance3.setOptions(options => ({
326
+ (_this$popperInstance4 = this.popperInstance) === null || _this$popperInstance4 === void 0 ? void 0 : _this$popperInstance4.setOptions(options => ({
258
327
  ...options,
259
328
  modifiers: [endingOffset, {
260
329
  name: 'eventListeners',
@@ -1,5 +1,5 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import { AnalyticsStep } from '@atlaskit/adf-schema/steps';
2
+ import { AnalyticsStep } from '@atlaskit/adf-schema/steps/analytics';
3
3
  export function getAnalyticsEventsFromTransaction(tr) {
4
4
  return tr.steps.filter(function (step) {
5
5
  return step instanceof AnalyticsStep;
@@ -1,4 +1,4 @@
1
- import { LinkMetaStep } from '@atlaskit/adf-schema/steps';
1
+ import { LinkMetaStep } from '@atlaskit/adf-schema/steps/link-meta-step';
2
2
  /**
3
3
  * Records metadata about the user action and input method relating to a transaction
4
4
  * as a custom LinkStepMetadata prosemirror step so that it is preserved in
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { LinkMetaStep } from '@atlaskit/adf-schema/steps';
4
+ import { LinkMetaStep } from '@atlaskit/adf-schema/steps/link-meta-step';
5
5
  export function getLinkMetadataFromTransaction(tr) {
6
6
  return tr.steps.reduce(function (metadata, step) {
7
7
  if (!(step instanceof LinkMetaStep)) {
@@ -3,7 +3,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  /* eslint-disable @atlaskit/volt-strict-mode/no-multiple-exports */
6
- import { uuid } from '@atlaskit/adf-schema';
6
+ import { uuid } from '@atlaskit/adf-schema/uuid';
7
7
  import { ReplaceAroundStep, ReplaceStep } from '@atlaskit/editor-prosemirror/transform';
8
8
  import { fg } from '@atlaskit/platform-feature-flags/fg';
9
9
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
@@ -24,7 +24,7 @@ import debounce from 'lodash/debounce';
24
24
  import { flushSync } from 'react-dom';
25
25
  import FocusLock from 'react-focus-lock';
26
26
  import { injectIntl } from 'react-intl';
27
- import { isSafeUrl } from '@atlaskit/adf-schema';
27
+ import { isSafeUrl } from '@atlaskit/adf-schema/is-safe-url';
28
28
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
29
29
  import CrossCircleIcon from '@atlaskit/icon/core/cross-circle';
30
30
  import PageObject from '@atlaskit/object/page';
@@ -18,7 +18,7 @@ import { FileFetcherError } from '@atlaskit/media-client';
18
18
  import { MediaClientContext } from '@atlaskit/media-client-react/media-client-provider';
19
19
  import { MediaViewer } from '@atlaskit/media-viewer';
20
20
  import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
21
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
21
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/editor-experiment';
22
22
  import { messages } from '../messages/media-inline-card';
23
23
  import { referenceHeights } from './constants';
24
24
  import { InlineImageCard } from './inline-image-card';
@@ -20,7 +20,7 @@ var NETWORK_FAILURE_REGEX = /^network failure/i;
20
20
  var RESIZE_OBSERVER_LOOP_REGEX = /ResizeObserver loop completed with undelivered notifications/;
21
21
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
22
22
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
23
- var packageVersion = "120.10.4";
23
+ var packageVersion = "120.11.1";
24
24
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
25
25
  // Remove URL as it has UGC
26
26
  // Ignored via go/ees007
@@ -4,7 +4,7 @@
4
4
  // See https://product-fabric.atlassian.net/browse/ED-3097 for why this file exists.
5
5
 
6
6
  import LinkifyIt from 'linkify-it';
7
- import { linkifyMatch } from '@atlaskit/adf-schema';
7
+ import { linkifyMatch } from '@atlaskit/adf-schema/linkify-match';
8
8
  import { findFilepaths, isLinkInMatches, shouldAutoLinkifyMatch } from '../../utils';
9
9
 
10
10
  // Ignored via go/ees005
@@ -3,7 +3,7 @@ import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useSta
3
3
  import { bind, bindAll } from 'bind-event-listener';
4
4
  import { akEditorDefaultLayoutWidth, akEditorFullWidthLayoutWidth, akEditorGutterPadding, akEditorGutterPaddingDynamic, akEditorGutterPaddingReduced, akEditorFullPageNarrowBreakout } from '@atlaskit/editor-shared-styles';
5
5
  import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
6
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
6
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/editor-experiment';
7
7
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../analytics';
8
8
  import { LAYOUT_SECTION_MARGIN } from '../styles';
9
9
  import { getBrowserInfo } from '../utils/browser';
@@ -1,4 +1,4 @@
1
- import { tableCellContentDomSelector, tableCellSelector, tableHeaderSelector, tablePrefixSelector } from '@atlaskit/adf-schema';
1
+ import { tableCellContentDomSelector, tableCellSelector, tableHeaderSelector, tablePrefixSelector } from '@atlaskit/adf-schema/tableNodes';
2
2
  export var TableSharedCssClassName = {
3
3
  TABLE_CONTAINER: "".concat(tablePrefixSelector, "-container"),
4
4
  TABLE_NODE_WRAPPER: "".concat(tablePrefixSelector, "-wrapper"),
@@ -1,4 +1,4 @@
1
- import { tableBackgroundColorNames } from '@atlaskit/adf-schema';
1
+ import { tableBackgroundColorNames } from '@atlaskit/adf-schema/tableNodes';
2
2
  import { hexToEditorBackgroundPaletteColor } from '@atlaskit/editor-palette';
3
3
 
4
4
  // This is used in order to support usage of DS tokens. Table cell background-color
@@ -1,4 +1,4 @@
1
- import { PanelType } from '@atlaskit/adf-schema';
1
+ import { PanelType } from '@atlaskit/adf-schema/panel';
2
2
  import { hexToEditorBackgroundPaletteColor } from '@atlaskit/editor-palette';
3
3
  var lightPanelColors = {
4
4
  info: '#DEEBFF',
@@ -1,4 +1,4 @@
1
- import { uuid } from '@atlaskit/adf-schema';
1
+ import { uuid } from '@atlaskit/adf-schema/uuid';
2
2
  import { Slice } from '@atlaskit/editor-prosemirror/model';
3
3
  import { mapFragment, mapSlice } from '../utils/slice';
4
4
 
@@ -21,7 +21,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import { fg } from '@atlaskit/platform-feature-flags/fg';
22
22
  import Layer from '../Layer';
23
23
  var packageName = "@atlaskit/editor-common";
24
- var packageVersion = "120.10.4";
24
+ var packageVersion = "120.11.1";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var fadeIn = keyframes({
@@ -5,7 +5,7 @@ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-e
5
5
  import { fg } from '@atlaskit/platform-feature-flags/fg';
6
6
  // eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- TODO: migrate to @atlaskit/primitives/compiled
7
7
  import { Anchor } from '@atlaskit/primitives/anchor';
8
- import ProfileCardTrigger from '@atlaskit/profilecard/user';
8
+ import ProfileCardTrigger from '@atlaskit/profilecard/profile-card-trigger';
9
9
  import { navigateToTeamsApp } from '@atlaskit/teams-app-config/navigation';
10
10
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
11
11
  // Lazy-loaded so the agent profile card chunk (and its `@atlaskit/rovo-agent-components`
@@ -13,7 +13,7 @@ import { css, jsx } from '@emotion/react';
13
13
  import { bind } from 'bind-event-listener';
14
14
  import { akEditorMenuZIndex } from '@atlaskit/editor-shared-styles';
15
15
  import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
16
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
16
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/editor-experiment';
17
17
  import { withReactEditorViewOuterListeners as withOuterListeners } from '../../ui-react';
18
18
  import Popup from '../Popup';
19
19
  import tableSelectorPopup, { TABLE_SELECTOR_BUTTON_GAP, TABLE_SELECTOR_BUTTON_SIZE } from './table-selector';
@@ -1,4 +1,4 @@
1
- import { borderColorPalette as colorPalette } from '@atlaskit/adf-schema';
1
+ import { borderColorPalette as colorPalette } from '@atlaskit/adf-schema/border';
2
2
  import { DEFAULT_BORDER_COLOR } from './common';
3
3
  import getColorMessage from './getColorMessage';
4
4
  import paletteMessages from './paletteMessages';
@@ -1,4 +1,4 @@
1
- import { tableBackgroundBorderColor, tableBackgroundColorPalette } from '@atlaskit/adf-schema';
1
+ import { tableBackgroundBorderColor, tableBackgroundColorPalette } from '@atlaskit/adf-schema/tableNodes';
2
2
  import getColorMessage from './getColorMessage';
3
3
  import paletteMessages from './paletteMessages';
4
4
  var cellBackgroundColorPalette = [];
@@ -5,7 +5,7 @@
5
5
 
6
6
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports -- Ignored via go/DSP-18766; jsx required at runtime for @jsxRuntime classic
7
7
  import { jsx } from '@emotion/react';
8
- import { backgroundColorPalette } from '@atlaskit/adf-schema';
8
+ import { backgroundColorPalette } from '@atlaskit/adf-schema/background-color';
9
9
  import { useThemeObserver } from '@atlaskit/tokens/use-theme-observer';
10
10
  import getColorMessage from './getColorMessage';
11
11
  import { mapPaletteColor } from './mapPaletteColor';
@@ -1,4 +1,4 @@
1
- import { colorPalette } from '@atlaskit/adf-schema';
1
+ import { colorPalette } from '@atlaskit/adf-schema/text-color';
2
2
  import { mapPaletteColor } from './mapPaletteColor';
3
3
  // row 1
4
4
  export var textColorPalette = [];
@@ -1,7 +1,8 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import paletteRaw from '@atlaskit/tokens/palettes-raw';
2
+ import paletteRaw from '@atlaskit/tokens/palette';
3
3
  import tokenNames from '@atlaskit/tokens/token-names';
4
- import { dark as darkTokensRaw, light as lightTokensRaw } from '@atlaskit/tokens/tokens-raw';
4
+ import darkTokensRaw from '@atlaskit/tokens/atlassian-dark';
5
+ import lightTokensRaw from '@atlaskit/tokens/atlassian-light';
5
6
  import { getSelectedRowAndColumn } from './getSelectedRowAndColumn';
6
7
  export var DEFAULT_COLOR_PICKER_COLUMNS = 7;
7
8
  // Ignored via go/ees005
@@ -15,7 +15,7 @@ import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
15
15
  import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
16
16
  // eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
17
17
  import { Box, xcss, Inline } from '@atlaskit/primitives';
18
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
18
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/editor-experiment';
19
19
  import Tooltip from '@atlaskit/tooltip/Tooltip';
20
20
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, editorAnalyticsChannel, EVENT_TYPE } from '../../analytics';
21
21
  import { colorPickerButtonMessages } from '../../messages/color-picker-button';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
- import { linkify } from '@atlaskit/adf-schema';
3
+ import { linkify } from '@atlaskit/adf-schema/url';
4
4
  import { DONTLINKIFY_REGEXP } from './hyperlink';
5
5
 
6
6
  /* eslint-enable require-unicode-regexp */
@@ -1,6 +1,6 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  /* eslint-disable @atlaskit/volt-strict-mode/no-multiple-exports */
3
- import { AnnotationTypes } from '@atlaskit/adf-schema';
3
+ import { AnnotationTypes } from '@atlaskit/adf-schema/annotation';
4
4
  import { fg } from '@atlaskit/platform-feature-flags/fg';
5
5
  export var canApplyAnnotationOnRange = function canApplyAnnotationOnRange(rangeSelection, doc, schema) {
6
6
  var from = rangeSelection.from,
@@ -1,7 +1,7 @@
1
1
  // File has been copied to packages/editor/editor-plugin-ai/src/provider/markdown-transformer/utils/hyperlink.ts
2
2
  // If changes are made to this file, please make the same update in the linked file.
3
3
 
4
- import { linkify } from '@atlaskit/adf-schema';
4
+ import { linkify } from '@atlaskit/adf-schema/url';
5
5
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../analytics/types/enums';
6
6
  import { FILEPATH_REGEXP } from './FILEPATH_REGEXP';
7
7
  import { getLinkDomain } from './getLinkDomain';
@@ -1,4 +1,5 @@
1
- import { isSafeUrl, normalizeUrl as normaliseLinkHref } from '@atlaskit/adf-schema';
1
+ import { isSafeUrl } from '@atlaskit/adf-schema/is-safe-url';
2
+ import { normalizeUrl as normaliseLinkHref } from '@atlaskit/adf-schema/normalize-url';
2
3
 
3
4
  /**
4
5
  * Adds protocol to url if needed.
@@ -2,7 +2,10 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- import { inlineNodes, isSafeUrl, PanelType, generateUuid as uuid } from '@atlaskit/adf-schema';
5
+ import { inlineNodes } from '@atlaskit/adf-schema/inline-nodes';
6
+ import { isSafeUrl } from '@atlaskit/adf-schema/is-safe-url';
7
+ import { PanelType } from '@atlaskit/adf-schema/panel';
8
+ import { generateUuid as uuid } from '@atlaskit/adf-schema/uuid';
6
9
  import { defaultSchema } from '@atlaskit/adf-schema/schema-default';
7
10
  import { fg } from '@atlaskit/platform-feature-flags/fg';
8
11
  import { isSubSupType } from './isSubSupType';
@@ -157,14 +157,37 @@ export var VanillaTooltip = /*#__PURE__*/function () {
157
157
  }));
158
158
  }
159
159
 
160
- // Hide the tooltip if the hide transition has completed
161
- this.tooltip.ontransitionend = function () {
162
- if (_this.shouldHidePopover) {
163
- _this.tooltip.hidePopover();
164
- }
165
- };
160
+ // Hide the tooltip if the hide transition has completed.
161
+ //
162
+ // Only reachable in the control arm: no consumer declares a transition on the tooltip, so
163
+ // this never fires today, and the experiment closes the popover in `hide()` regardless.
164
+ if (!isExperimentEnabled('platform_editor_use_vanilla_components')) {
165
+ this.tooltip.ontransitionend = function () {
166
+ if (_this.shouldHidePopover) {
167
+ _this.tooltip.hidePopover();
168
+ }
169
+ };
170
+ }
166
171
  }
172
+
173
+ /**
174
+ * Closes the popover, tolerating it already being closed.
175
+ *
176
+ * `hidePopover()` throws `InvalidStateError` when the popover is not showing, and that is a
177
+ * routine state rather than an exceptional one: showing any other `hint` or `auto` popover
178
+ * light-dismisses this one without notifying us, so the caller cannot know whether it is
179
+ * still open.
180
+ */
167
181
  return _createClass(VanillaTooltip, [{
182
+ key: "closePopover",
183
+ value: function closePopover() {
184
+ try {
185
+ this.tooltip.hidePopover();
186
+ } catch (_error) {
187
+ // Already closed — nothing to do.
188
+ }
189
+ }
190
+ }, {
168
191
  key: "createPopperInstance",
169
192
  value: function createPopperInstance() {
170
193
  this.popperInstance = getCreatePopper()(this.trigger, this.tooltip, {
@@ -185,6 +208,18 @@ export var VanillaTooltip = /*#__PURE__*/function () {
185
208
  this.listeners.forEach(function (listener) {
186
209
  listener();
187
210
  });
211
+
212
+ // Undoes what the constructor added to the trigger, matching the React `@atlaskit/tooltip`
213
+ // callers are moving off, whose unmount took its DOM with it.
214
+ if (isExperimentEnabled('platform_editor_use_vanilla_components')) {
215
+ this.tooltip.remove();
216
+ if (this.trigger.getAttribute('aria-describedby') === this.tooltip.id) {
217
+ this.trigger.removeAttribute('aria-describedby');
218
+ }
219
+ if (this.trigger.getAttribute('popovertarget') === this.tooltip.id) {
220
+ this.trigger.removeAttribute('popovertarget');
221
+ }
222
+ }
188
223
  }
189
224
 
190
225
  /**
@@ -236,20 +271,48 @@ export var VanillaTooltip = /*#__PURE__*/function () {
236
271
  this.shouldHidePopover = true;
237
272
  // Disable the event listeners
238
273
  this.currentTimeoutId = setTimeout(function () {
239
- var _this3$popperInstance;
240
- (_this3$popperInstance = _this3.popperInstance) === null || _this3$popperInstance === void 0 || _this3$popperInstance.setOptions(function (options) {
241
- return _objectSpread(_objectSpread({}, options), {}, {
242
- modifiers: [startingOffset, {
243
- name: 'eventListeners',
244
- enabled: false
245
- }]
274
+ if (isExperimentEnabled('platform_editor_use_vanilla_components')) {
275
+ var _this3$popperInstance;
276
+ // Released rather than reconfigured. The instance was previously kept for the
277
+ // trigger's whole lifetime, so every element the pointer passed over retained
278
+ // one — and under `platform-dst-popper-consolidation` an instance owns a
279
+ // detached React root, so that was a retained root per hovered trigger.
280
+ //
281
+ // Destroying is also the only way to release that root's capture-phase
282
+ // `scroll`/`resize` listeners on the consolidated path, where the
283
+ // `eventListeners: false` reconfiguration in the control arm is accepted but
284
+ // does nothing.
285
+ (_this3$popperInstance = _this3.popperInstance) === null || _this3$popperInstance === void 0 || _this3$popperInstance.destroy();
286
+ _this3.popperInstance = undefined;
287
+ _this3.tooltip.style.opacity = '0';
288
+ _this3.isDisplayed = false;
289
+
290
+ // Closed here rather than from `ontransitionend`. No consumer declares a
291
+ // transition on the tooltip and none sets one inline, so that event never
292
+ // fires and the popover stayed open in the top layer for good: an invisible
293
+ // hit target over the content, and — because `showPopover()` throws
294
+ // `InvalidStateError` on an already-showing popover — an uncaught error out of
295
+ // the next `mouseenter`, after which the tooltip never appeared again.
296
+ _this3.closePopover();
297
+ // Paired with the `visibility` that `show()` sets, so a popover left open by
298
+ // a failed close cannot intercept pointer events over the content.
299
+ _this3.tooltip.style.visibility = 'hidden';
300
+ } else {
301
+ var _this3$popperInstance2;
302
+ (_this3$popperInstance2 = _this3.popperInstance) === null || _this3$popperInstance2 === void 0 || _this3$popperInstance2.setOptions(function (options) {
303
+ return _objectSpread(_objectSpread({}, options), {}, {
304
+ modifiers: [startingOffset, {
305
+ name: 'eventListeners',
306
+ enabled: false
307
+ }]
308
+ });
246
309
  });
247
- });
248
- _this3.tooltip.style.opacity = '0';
249
- _this3.isDisplayed = false;
250
- // If transition animations are disabled immediately hide the popover
251
- if (_this3.tooltip.style.transition === 'none') {
252
- _this3.tooltip.hidePopover();
310
+ _this3.tooltip.style.opacity = '0';
311
+ _this3.isDisplayed = false;
312
+ // If transition animations are disabled immediately hide the popover
313
+ if (_this3.tooltip.style.transition === 'none') {
314
+ _this3.tooltip.hidePopover();
315
+ }
253
316
  }
254
317
  }, immediate ? 0 : this.timeout);
255
318
  }
@@ -257,18 +320,26 @@ export var VanillaTooltip = /*#__PURE__*/function () {
257
320
  key: "show",
258
321
  value: function show() {
259
322
  var _this4 = this;
260
- // Bound before the open delay so Escape can dismiss during it, and before the
261
- // `isDisplayed` guard so re-hovering a tooltip whose hide is still pending (`hide()`
262
- // unbinds synchronously, but the tooltip stays on screen until its timeout) restores
263
- // Escape rather than leaving the visible tooltip undismissable.
323
+ // Ahead of the `isDisplayed` guard, unlike the equivalent below: `hide()` takes effect
324
+ // synchronously but leaves the tooltip on screen until its timeout, so a pointer
325
+ // returning in that window finds `isDisplayed` still true and returns early. Cancelling
326
+ // first keeps the tooltip up and stops it being left undismissable with a hide pending.
264
327
  if (isExperimentEnabled('platform_editor_use_vanilla_components')) {
265
328
  this.bindEscapeListener();
329
+ clearTimeout(this.currentTimeoutId);
330
+ this.shouldHidePopover = false;
266
331
  }
267
332
  if (this.isDisplayed) {
268
333
  return;
269
334
  }
270
- clearTimeout(this.currentTimeoutId);
271
- this.shouldHidePopover = false;
335
+
336
+ // Control only: the experiment cancels above, ahead of the guard. Kept gated rather than
337
+ // left unconditional — despite being a no-op once the block above has run — so that
338
+ // experiment cleanup can delete it outright instead of having to reason about it.
339
+ if (!isExperimentEnabled('platform_editor_use_vanilla_components')) {
340
+ clearTimeout(this.currentTimeoutId);
341
+ this.shouldHidePopover = false;
342
+ }
272
343
 
273
344
  // Make the tooltip visible - but hide until
274
345
  this.tooltip.style.visibility = 'hidden';
@@ -1,4 +1,4 @@
1
- import type { ExtensionLayout } from '@atlaskit/adf-schema';
1
+ import type { Layout as ExtensionLayout } from '@atlaskit/adf-schema/extensions';
2
2
  import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, INPUT_METHOD } from './enums';
3
3
  import type { SELECTION_TYPE, OperationalAEP, TrackAEP, UIAEP } from './utils';
4
4
  export declare enum GAP_CURSOR_POSITION {
@@ -1,4 +1,4 @@
1
- import type { RichMediaLayout } from '@atlaskit/adf-schema';
1
+ import type { Layout as RichMediaLayout } from '@atlaskit/adf-schema/rich-media-common';
2
2
  import type { FeatureFlagKey } from '../../types/feature-flags';
3
3
  import type { PropsDifference, ShallowPropsDifference } from '../../utils';
4
4
  import type { SEVERITY } from '../../utils/SEVERITY';
@@ -1,4 +1,5 @@
1
- import type { ExtensionLayout, PanelType } from '@atlaskit/adf-schema';
1
+ import type { Layout as ExtensionLayout } from '@atlaskit/adf-schema/extensions';
2
+ import type { PanelType } from '@atlaskit/adf-schema/panel';
2
3
  import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, INPUT_METHOD, INSERT_MEDIA_VIA } from './enums';
3
4
  import type { InsertNativeEmbedAEP } from './native-embed-events';
4
5
  import type { InsertSmartLinkAEP } from './smart-links';
@@ -1,4 +1,4 @@
1
- import type { RichMediaLayout } from '@atlaskit/adf-schema';
1
+ import type { Layout as RichMediaLayout } from '@atlaskit/adf-schema/rich-media-common';
2
2
  import type { GuidelineTypes, WidthTypes } from '../../guideline/types';
3
3
  import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, INPUT_METHOD } from './enums';
4
4
  import type { EventInput } from './type-ahead';
@@ -1,4 +1,4 @@
1
- import type { PanelType } from '@atlaskit/adf-schema';
1
+ import type { PanelType } from '@atlaskit/adf-schema/panel';
2
2
  import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, INPUT_METHOD } from './enums';
3
3
  import type { ChangeTypeAEP, TrackAEP, UIAEP } from './utils';
4
4
  export declare enum LAYOUT_TYPE {