@atlaskit/editor-common 124.0.0 → 125.1.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 (57) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/cjs/element-browser/components/ElementBrowserLoader.js +31 -8
  3. package/dist/cjs/extensibility/Extension.js +4 -2
  4. package/dist/cjs/extensibility/ExtensionComponent.js +3 -1
  5. package/dist/cjs/extensibility/ExtensionNodeWrapper.js +3 -0
  6. package/dist/cjs/extensibility/GeneratedContentReveal.js +18 -20
  7. package/dist/cjs/extensibility/extensionNodeView.js +61 -24
  8. package/dist/cjs/extensions/extension-handlers.js +96 -17
  9. package/dist/cjs/floating-toolbar/DropdownMenuExtensionItems.js +25 -4
  10. package/dist/cjs/icons/index.js +33 -10
  11. package/dist/cjs/monitoring/error.js +1 -1
  12. package/dist/cjs/quick-insert/assets/index.js +888 -257
  13. package/dist/cjs/table/getStickyHeaderHeight.js +9 -2
  14. package/dist/cjs/ui/DropList/index.js +1 -1
  15. package/dist/cjs/ui/Mention/mention-with-profilecard.js +30 -11
  16. package/dist/es2019/element-browser/components/ElementBrowserLoader.js +16 -2
  17. package/dist/es2019/extensibility/Extension.js +4 -2
  18. package/dist/es2019/extensibility/ExtensionComponent.js +3 -1
  19. package/dist/es2019/extensibility/ExtensionNodeWrapper.js +2 -0
  20. package/dist/es2019/extensibility/GeneratedContentReveal.js +11 -16
  21. package/dist/es2019/extensibility/extensionNodeView.js +51 -23
  22. package/dist/es2019/extensions/extension-handlers.js +70 -15
  23. package/dist/es2019/floating-toolbar/DropdownMenuExtensionItems.js +16 -2
  24. package/dist/es2019/icons/index.js +17 -3
  25. package/dist/es2019/monitoring/error.js +1 -1
  26. package/dist/es2019/quick-insert/assets/index.js +386 -66
  27. package/dist/es2019/table/getStickyHeaderHeight.js +10 -2
  28. package/dist/es2019/ui/DropList/index.js +1 -1
  29. package/dist/es2019/ui/Mention/mention-with-profilecard.js +15 -4
  30. package/dist/esm/element-browser/components/ElementBrowserLoader.js +28 -6
  31. package/dist/esm/extensibility/Extension.js +4 -2
  32. package/dist/esm/extensibility/ExtensionComponent.js +3 -1
  33. package/dist/esm/extensibility/ExtensionNodeWrapper.js +3 -0
  34. package/dist/esm/extensibility/GeneratedContentReveal.js +18 -20
  35. package/dist/esm/extensibility/extensionNodeView.js +56 -23
  36. package/dist/esm/extensions/extension-handlers.js +97 -17
  37. package/dist/esm/floating-toolbar/DropdownMenuExtensionItems.js +24 -4
  38. package/dist/esm/icons/index.js +29 -7
  39. package/dist/esm/monitoring/error.js +1 -1
  40. package/dist/esm/quick-insert/assets/index.js +764 -194
  41. package/dist/esm/table/getStickyHeaderHeight.js +10 -2
  42. package/dist/esm/ui/DropList/index.js +1 -1
  43. package/dist/esm/ui/Mention/mention-with-profilecard.js +25 -8
  44. package/dist/types/analytics/types/ai-suggestions-events.d.ts +4 -6
  45. package/dist/types/extensibility/Extension.d.ts +2 -0
  46. package/dist/types/extensibility/ExtensionComponent.d.ts +2 -0
  47. package/dist/types/extensibility/ExtensionNodeWrapper.d.ts +3 -1
  48. package/dist/types/extensibility/GeneratedContentReveal.d.ts +3 -1
  49. package/dist/types/extensibility/extensionNodeView.d.ts +13 -12
  50. package/dist/types/icons/index.d.ts +5 -3
  51. package/dist/types/quick-insert/assets/index.d.ts +34 -32
  52. package/dist/types/table/getStickyHeaderHeight.d.ts +1 -1
  53. package/package.json +23 -25
  54. package/dist/cjs/extensibility/useNativeEmbedSettled.js +0 -56
  55. package/dist/es2019/extensibility/useNativeEmbedSettled.js +0 -49
  56. package/dist/esm/extensibility/useNativeEmbedSettled.js +0 -51
  57. package/dist/types/extensibility/useNativeEmbedSettled.d.ts +0 -12
@@ -1,6 +1,8 @@
1
1
  import { findParentNodeOfTypeClosestToPos } from '@atlaskit/editor-prosemirror/utils';
2
+ import { fg } from '@atlaskit/platform-feature-flags/fg';
3
+
2
4
  /**
3
- * Returns the outermost table's sticky header height for `targetPos` when it is eligible to be
5
+ * Returns the outermost table's sticky header height for `targetPos` if its a table row and eligible to be
4
6
  * sticky. Table headers at least half the viewport high intentionally do not become sticky.
5
7
  */
6
8
  export function getStickyHeaderHeight(view, targetPos) {
@@ -18,7 +20,13 @@ export function getStickyHeaderHeight(view, targetPos) {
18
20
  if (!isHeaderRow) {
19
21
  return undefined;
20
22
  }
21
- var firstRowDom = view.nodeDOM(outermostTable.pos + 1);
23
+ var firstRowPos = outermostTable.pos + 1;
24
+
25
+ // do not add sticky header offset if the target is in the sticky header
26
+ if (firstRow && targetPos >= firstRowPos && targetPos < firstRowPos + firstRow.nodeSize && fg('platform_editor_ai_show_diff_patch_2')) {
27
+ return undefined;
28
+ }
29
+ var firstRowDom = view.nodeDOM(firstRowPos);
22
30
  if (!(firstRowDom instanceof HTMLTableRowElement)) {
23
31
  return undefined;
24
32
  }
@@ -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 = "123.8.1";
24
+ var packageVersion = "125.0.0";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var fadeIn = keyframes({
@@ -1,5 +1,7 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import Loadable from 'react-loadable';
3
+ // oxlint-disable-next-line @atlassian/no-restricted-imports
4
+ import { lazy, LazySuspense } from 'react-loosely-lazy';
3
5
  import ResourcedMention from '@atlaskit/mention/resourced-mention';
4
6
  import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
5
7
  import { fg } from '@atlaskit/platform-feature-flags/fg';
@@ -11,18 +13,33 @@ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
11
13
  // Lazy-loaded so the agent profile card chunk (and its `@atlaskit/rovo-agent-components`
12
14
  // dependency) stays off the critical path — it is only fetched when an agent mention
13
15
  // (`userType === 'APP'`) actually renders, never for person mentions.
14
- // Uses react-loadable to match editor-common's code-splitting factory (see src/icons/index.ts).
15
- var AgentProfileCardTrigger = Loadable({
16
- loader: function loader() {
17
- return import( /* webpackChunkName: "@atlaskit-internal_profilecard/agent-profile-card-trigger" */
18
- '@atlaskit/profilecard/agent-profile-card-trigger').then(function (mod) {
19
- return mod.AgentProfileCardTrigger;
20
- });
21
- },
16
+ var loadAgentProfileCardTrigger = function loadAgentProfileCardTrigger() {
17
+ return import( /* webpackChunkName: "@atlaskit-internal_profilecard/agent-profile-card-trigger" */
18
+ '@atlaskit/profilecard/agent-profile-card-trigger').then(function (mod) {
19
+ return mod.AgentProfileCardTrigger;
20
+ });
21
+ };
22
+ var AgentProfileCardTriggerLazy = lazy(function () {
23
+ return import( /* webpackChunkName: "@atlaskit-internal_profilecard/agent-profile-card-trigger" */
24
+ '@atlaskit/profilecard/agent-profile-card-trigger').then(function (mod) {
25
+ return mod.AgentProfileCardTrigger;
26
+ });
27
+ });
28
+ AgentProfileCardTriggerLazy.displayName = 'lazy(AgentProfileCardTrigger)';
29
+ var AgentProfileCardTriggerLoadable = Loadable({
30
+ loader: loadAgentProfileCardTrigger,
22
31
  loading: function loading() {
23
32
  return null;
24
33
  }
25
34
  });
35
+ var AgentProfileCardTrigger = function AgentProfileCardTrigger(props) {
36
+ return isExperimentEnabled('platform_editor_loosely_lazy_migration') ? /*#__PURE__*/React.createElement(LazySuspense, {
37
+ fallback: null
38
+ }, /*#__PURE__*/React.createElement(AgentProfileCardTriggerLazy, props)) :
39
+ /*#__PURE__*/
40
+ // eslint-disable-next-line react/jsx-props-no-spreading
41
+ React.createElement(AgentProfileCardTriggerLoadable, props);
42
+ };
26
43
 
27
44
  // Ignored via go/ees005
28
45
  // eslint-disable-next-line require-unicode-regexp
@@ -2,16 +2,14 @@ import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID } from './enums';
2
2
  import type { OperationalAEP, TrackAEP } from './utils';
3
3
  export type AiSuggestionsEntryPoint = 'primaryToolbar'
4
4
  /**
5
- * Legacy entry point retained for the suggestions surface in the comments panel.
5
+ * @private
6
+ * @deprecated Legacy entry point retained for backwards compatibility.
6
7
  * Use `suggestionsPanelEmptyState` for the standalone suggestions panel.
7
8
  */
8
9
  | 'commentsEmptyState' | 'suggestionsPanelEmptyState' | 'suggestionsPanelHeader' | 'objectSidebarControl'
9
10
  /**
10
- * Generation started automatically because a suggestions surface was opened
11
- * with nothing to show — no explicit user action. Kept distinct from
12
- * `suggestionsPanelEmptyState` and the legacy `commentsEmptyState` (the "Review"
13
- * button in those empty states) so automatic and user-initiated generation can
14
- * be told apart in analytics.
11
+ * @private
12
+ * @deprecated Legacy automatic-generation entry point retained for backwards compatibility.
15
13
  */
16
14
  | 'suggestionsPanelMount'
17
15
  /**
@@ -21,6 +21,8 @@ export interface Props {
21
21
  pluginInjectionApi: ExtensionsPluginInjectionAPI;
22
22
  providerFactory?: ProviderFactory;
23
23
  references?: ReferenceEntity[];
24
+ /** Called by the extension once its content is ready to be shown. */
25
+ onContentReady?: () => void;
24
26
  rendererExtensionHandlers?: ExtensionHandlers;
25
27
  showLivePagesBodiedMacrosRendererView?: (node: ADFEntity) => boolean;
26
28
  showUpdatedLivePages1PBodiedExtensionUI?: (node: ADFEntity) => boolean;
@@ -19,6 +19,8 @@ export interface Props {
19
19
  isLivePageViewMode?: boolean;
20
20
  macroInteractionDesignFeatureFlags?: MacroInteractionDesignFeatureFlags;
21
21
  node: PMNode;
22
+ /** Handed to the extension's render, which calls it once its content is ready to be shown. */
23
+ onContentReady?: () => void;
22
24
  pluginInjectionApi: ExtensionsPluginInjectionAPI;
23
25
  references?: ReferenceEntity[];
24
26
  rendererExtensionHandlers?: ExtensionHandlers;
@@ -9,6 +9,8 @@ import type { IntlShape } from 'react-intl';
9
9
  import type { MacroInteractionDesignFeatureFlags } from './types';
10
10
  type Props = {
11
11
  children: React.ReactNode;
12
+ /** True once the extension has reported its content ready. Only read with the motion on. */
13
+ contentReady?: boolean;
12
14
  /**
13
15
  * Renders the node through `GeneratedContentReveal`, which holds it closed while its embed loads
14
16
  * and then animates it in. Set by the node view for native embeds only; see
@@ -27,5 +29,5 @@ type Props = {
27
29
  * @param param0
28
30
  * @returns
29
31
  */
30
- export declare const ExtensionNodeWrapper: ({ children, nodeType, macroInteractionDesignFeatureFlags, generatedContentMotion, intl, }: Props) => jsx.JSX.Element;
32
+ export declare const ExtensionNodeWrapper: ({ children, nodeType, macroInteractionDesignFeatureFlags, generatedContentMotion, contentReady, intl, }: Props) => jsx.JSX.Element;
31
33
  export {};
@@ -6,8 +6,10 @@ import React from 'react';
6
6
  import type { IntlShape } from 'react-intl';
7
7
  type Props = {
8
8
  children: React.ReactNode;
9
+ /** True once the extension has reported its content ready. */
10
+ contentReady: boolean;
9
11
  intl: IntlShape | undefined;
10
12
  showMacroInteractionDesignUpdates: boolean | undefined;
11
13
  };
12
- export declare const GeneratedContentReveal: ({ children, intl, showMacroInteractionDesignUpdates, }: Props) => React.JSX.Element;
14
+ export declare const GeneratedContentReveal: ({ children, contentReady, intl, showMacroInteractionDesignUpdates, }: Props) => React.JSX.Element;
13
15
  export {};
@@ -76,18 +76,19 @@ export declare class ExtensionNode<AdditionalParams = unknown> extends ReactNode
76
76
  contentDOM?: undefined;
77
77
  dom: HTMLDivElement;
78
78
  } | undefined;
79
- render(props: {
80
- extensionHandlers: ExtensionHandlers;
81
- extensionLoadingHandlers?: ExtensionHandlers;
82
- extensionNodeViewOptions?: ExtensionNodeViewOptions;
83
- intl?: IntlShape;
84
- macroInteractionDesignFeatureFlags?: MacroInteractionDesignFeatureFlags;
85
- pluginInjectionApi: ExtensionsPluginInjectionAPI;
86
- providerFactory: ProviderFactory;
87
- rendererExtensionHandlers?: ExtensionHandlers;
88
- showLivePagesBodiedMacrosRendererView?: (node: ADFEntity) => boolean;
89
- showUpdatedLivePages1PBodiedExtensionUI?: (node: ADFEntity) => boolean;
90
- }, forwardRef: ForwardRef): React.JSX.Element;
79
+ render(props: ExtensionRenderProps, forwardRef: ForwardRef): React.JSX.Element;
91
80
  }
81
+ type ExtensionRenderProps = {
82
+ extensionHandlers: ExtensionHandlers;
83
+ extensionLoadingHandlers?: ExtensionHandlers;
84
+ extensionNodeViewOptions?: ExtensionNodeViewOptions;
85
+ intl?: IntlShape;
86
+ macroInteractionDesignFeatureFlags?: MacroInteractionDesignFeatureFlags;
87
+ pluginInjectionApi: ExtensionsPluginInjectionAPI;
88
+ providerFactory: ProviderFactory;
89
+ rendererExtensionHandlers?: ExtensionHandlers;
90
+ showLivePagesBodiedMacrosRendererView?: (node: ADFEntity) => boolean;
91
+ showUpdatedLivePages1PBodiedExtensionUI?: (node: ADFEntity) => boolean;
92
+ };
92
93
  export default function ExtensionNodeView(portalProviderAPI: PortalProviderAPI, eventDispatcher: EventDispatcher, providerFactory: ProviderFactory, extensionHandlers: ExtensionHandlers, extensionLoadingHandlers: ExtensionHandlers | undefined, extensionNodeViewOptions: ExtensionNodeViewOptions, pluginInjectionApi: ExtensionsPluginInjectionAPI, macroInteractionDesignFeatureFlags?: MacroInteractionDesignFeatureFlags, showLivePagesBodiedMacrosRendererView?: (node: ADFEntity) => boolean, showUpdatedLivePages1PBodiedExtensionUI?: (node: ADFEntity) => boolean, rendererExtensionHandlers?: ExtensionHandlers, intl?: IntlShape): (node: PmNode, view: EditorView, getPos: getPosHandler) => NodeView;
93
94
  export {};
@@ -1,5 +1,4 @@
1
- import type React from 'react';
2
- import Loadable from 'react-loadable';
1
+ import React from 'react';
3
2
  import type { IconProps } from '../types';
4
3
  export { PanelInfoIcon } from './shared/PanelInfoIcon';
5
4
  export { PanelWarningIcon } from './shared/PanelWarningIcon';
@@ -9,4 +8,7 @@ export { PanelNoteIcon } from './shared/PanelNoteIcon';
9
8
  export { BorderIcon } from './shared/BorderIcon';
10
9
  export { SteppedRainbowIconDecoration, rainbow, disabledRainbow, } from './shared/SteppedRainbowIconDecoration';
11
10
  export { DynamicStrokeIconDecoration } from './shared/DynamicStrokeIconDecoration';
12
- export declare const IconTable: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
11
+ export declare const IconTable: {
12
+ (props: React.PropsWithChildren<IconProps>): React.ReactElement;
13
+ preload: () => void;
14
+ };
@@ -1,39 +1,41 @@
1
1
  import React from 'react';
2
- import Loadable from 'react-loadable';
3
2
  import type { HeadingLevels, IconProps } from '../../types';
4
- export declare const IconAction: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
5
- export declare const IconCode: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
6
- export declare const IconDate: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
7
- export declare const IconDecision: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
8
- export declare const IconDivider: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
9
- export declare const IconEmoji: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
10
- export declare const IconImages: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
11
- export declare const IconLayout: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
12
- export declare const IconLink: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
13
- export declare const IconListNumber: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
14
- export declare const IconList: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
15
- export declare const IconMention: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
16
- export declare const IconPanelError: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
17
- export declare const IconPanelNote: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
18
- export declare const IconPanelSuccess: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
19
- export declare const IconPanelWarning: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
20
- export declare const IconPanel: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
21
- export declare const IconQuote: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
22
- export declare const IconStatus: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
23
- export declare const IconOneColumnLayout: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
24
- export declare const IconTwoColumnLayout: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
25
- export declare const IconThreeColumnLayout: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
26
- export declare const IconFourColumnLayout: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
27
- export declare const IconFiveColumnLayout: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
3
+ type PreloadableComponent<Props extends object> = React.ComponentType<Props> & {
4
+ preload: () => unknown;
5
+ };
6
+ export declare const IconAction: PreloadableComponent<React.PropsWithChildren<IconProps>>;
7
+ export declare const IconCode: PreloadableComponent<React.PropsWithChildren<IconProps>>;
8
+ export declare const IconDate: PreloadableComponent<React.PropsWithChildren<IconProps>>;
9
+ export declare const IconDecision: PreloadableComponent<React.PropsWithChildren<IconProps>>;
10
+ export declare const IconDivider: PreloadableComponent<React.PropsWithChildren<IconProps>>;
11
+ export declare const IconEmoji: PreloadableComponent<React.PropsWithChildren<IconProps>>;
12
+ export declare const IconImages: PreloadableComponent<React.PropsWithChildren<IconProps>>;
13
+ export declare const IconLayout: PreloadableComponent<React.PropsWithChildren<IconProps>>;
14
+ export declare const IconLink: PreloadableComponent<React.PropsWithChildren<IconProps>>;
15
+ export declare const IconListNumber: PreloadableComponent<React.PropsWithChildren<IconProps>>;
16
+ export declare const IconList: PreloadableComponent<React.PropsWithChildren<IconProps>>;
17
+ export declare const IconMention: PreloadableComponent<React.PropsWithChildren<IconProps>>;
18
+ export declare const IconPanelError: PreloadableComponent<React.PropsWithChildren<IconProps>>;
19
+ export declare const IconPanelNote: PreloadableComponent<React.PropsWithChildren<IconProps>>;
20
+ export declare const IconPanelSuccess: PreloadableComponent<React.PropsWithChildren<IconProps>>;
21
+ export declare const IconPanelWarning: PreloadableComponent<React.PropsWithChildren<IconProps>>;
22
+ export declare const IconPanel: PreloadableComponent<React.PropsWithChildren<IconProps>>;
23
+ export declare const IconQuote: PreloadableComponent<React.PropsWithChildren<IconProps>>;
24
+ export declare const IconStatus: PreloadableComponent<React.PropsWithChildren<IconProps>>;
25
+ export declare const IconOneColumnLayout: PreloadableComponent<React.PropsWithChildren<IconProps>>;
26
+ export declare const IconTwoColumnLayout: PreloadableComponent<React.PropsWithChildren<IconProps>>;
27
+ export declare const IconThreeColumnLayout: PreloadableComponent<React.PropsWithChildren<IconProps>>;
28
+ export declare const IconFourColumnLayout: PreloadableComponent<React.PropsWithChildren<IconProps>>;
29
+ export declare const IconFiveColumnLayout: PreloadableComponent<React.PropsWithChildren<IconProps>>;
28
30
  type HeadingProps = IconProps & {
29
31
  level: HeadingLevels;
30
32
  };
31
33
  export declare const IconHeading: ({ level, label, }: Pick<HeadingProps, 'level' | 'label'>) => React.JSX.Element;
32
- export declare const IconFeedback: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
33
- export declare const IconExpand: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
34
- export declare const IconDatasourceJiraIssue: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
35
- export declare const IconDatasourceAssetsObjects: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
36
- export declare const IconDatasourceConfluenceSearch: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
37
- export declare const IconLoom: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
38
- export declare const IconSyncBlock: React.ComponentType<React.PropsWithChildren<IconProps>> & Loadable.LoadableComponent;
34
+ export declare const IconFeedback: PreloadableComponent<React.PropsWithChildren<IconProps>>;
35
+ export declare const IconExpand: PreloadableComponent<React.PropsWithChildren<IconProps>>;
36
+ export declare const IconDatasourceJiraIssue: PreloadableComponent<React.PropsWithChildren<IconProps>>;
37
+ export declare const IconDatasourceAssetsObjects: PreloadableComponent<React.PropsWithChildren<IconProps>>;
38
+ export declare const IconDatasourceConfluenceSearch: PreloadableComponent<React.PropsWithChildren<IconProps>>;
39
+ export declare const IconLoom: PreloadableComponent<React.PropsWithChildren<IconProps>>;
40
+ export declare const IconSyncBlock: PreloadableComponent<React.PropsWithChildren<IconProps>>;
39
41
  export {};
@@ -1,6 +1,6 @@
1
1
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
2
2
  /**
3
- * Returns the outermost table's sticky header height for `targetPos` when it is eligible to be
3
+ * Returns the outermost table's sticky header height for `targetPos` if its a table row and eligible to be
4
4
  * sticky. Table headers at least half the viewport high intentionally do not become sticky.
5
5
  */
6
6
  export declare function getStickyHeaderHeight(view: EditorView, targetPos: number): number | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "124.0.0",
3
+ "version": "125.1.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -35,14 +35,14 @@
35
35
  "@atlaskit/analytics-listeners": "^11.4.0",
36
36
  "@atlaskit/analytics-namespaced-context": "^8.2.0",
37
37
  "@atlaskit/analytics-next": "^12.5.0",
38
- "@atlaskit/atlassian-context": "^1.2.0",
38
+ "@atlaskit/atlassian-context": "^2.0.0",
39
39
  "@atlaskit/browser-apis": "^1.2.0",
40
40
  "@atlaskit/button": "^25.4.0",
41
41
  "@atlaskit/codemod-utils": "^5.1.0",
42
42
  "@atlaskit/css": "^1.1.0",
43
43
  "@atlaskit/custom-steps": "^1.1.0",
44
44
  "@atlaskit/dropdown-menu": "^18.3.0",
45
- "@atlaskit/editor-json-transformer": "^9.8.0",
45
+ "@atlaskit/editor-json-transformer": "^10.0.0",
46
46
  "@atlaskit/editor-palette": "^3.5.0",
47
47
  "@atlaskit/editor-prosemirror": "^9.0.0",
48
48
  "@atlaskit/editor-shared-styles": "^4.3.0",
@@ -51,20 +51,20 @@
51
51
  "@atlaskit/editor-toolbar-model": "^1.2.0",
52
52
  "@atlaskit/editor-ui-control-model": "^2.10.0",
53
53
  "@atlaskit/emoji": "^72.4.0",
54
- "@atlaskit/feature-gate-js-client": "^6.0.0",
55
- "@atlaskit/icon": "^37.7.0",
54
+ "@atlaskit/feature-gate-js-client": "^7.0.0",
55
+ "@atlaskit/icon": "^38.0.0",
56
56
  "@atlaskit/link": "^5.1.0",
57
- "@atlaskit/link-datasource": "^6.14.0",
57
+ "@atlaskit/link-datasource": "^7.0.0",
58
58
  "@atlaskit/link-picker": "^6.9.0",
59
- "@atlaskit/media-card": "^81.12.0",
60
- "@atlaskit/media-client": "^38.1.0",
61
- "@atlaskit/media-client-react": "^6.4.0",
59
+ "@atlaskit/media-card": "^82.1.0",
60
+ "@atlaskit/media-client": "^39.0.0",
61
+ "@atlaskit/media-client-react": "^7.0.0",
62
62
  "@atlaskit/media-common": "^14.6.0",
63
- "@atlaskit/media-file-preview": "^1.3.0",
64
- "@atlaskit/media-picker": "^72.4.0",
65
- "@atlaskit/media-ui": "^30.16.0",
66
- "@atlaskit/media-viewer": "^54.8.0",
67
- "@atlaskit/mention": "^29.2.0",
63
+ "@atlaskit/media-file-preview": "^2.0.0",
64
+ "@atlaskit/media-picker": "^73.0.0",
65
+ "@atlaskit/media-ui": "^31.0.0",
66
+ "@atlaskit/media-viewer": "^54.9.0",
67
+ "@atlaskit/mention": "^30.0.0",
68
68
  "@atlaskit/menu": "^11.0.0",
69
69
  "@atlaskit/object": "^2.3.0",
70
70
  "@atlaskit/onboarding": "^15.4.0",
@@ -73,19 +73,19 @@
73
73
  "@atlaskit/platform-feature-flags-react": "^1.2.0",
74
74
  "@atlaskit/popper": "^9.4.0",
75
75
  "@atlaskit/primitives": "^22.5.0",
76
- "@atlaskit/profilecard": "^26.25.0",
76
+ "@atlaskit/profilecard": "^27.0.0",
77
77
  "@atlaskit/prosemirror-history": "^1.2.0",
78
78
  "@atlaskit/react-compiler-gating": "^0.2.0",
79
- "@atlaskit/react-ufo": "^7.13.0",
79
+ "@atlaskit/react-ufo": "^8.0.0",
80
80
  "@atlaskit/section-message": "^10.2.0",
81
- "@atlaskit/smart-card": "^45.28.0",
82
- "@atlaskit/smart-user-picker": "^11.9.0",
81
+ "@atlaskit/smart-card": "^46.0.0",
82
+ "@atlaskit/smart-user-picker": "^12.0.0",
83
83
  "@atlaskit/spinner": "^20.4.0",
84
84
  "@atlaskit/task-decision": "^21.10.0",
85
85
  "@atlaskit/teams-app-config": "^3.1.0",
86
86
  "@atlaskit/textfield": "^10.2.0",
87
- "@atlaskit/tmp-editor-statsig": "^205.0.0",
88
- "@atlaskit/tokens": "^19.0.0",
87
+ "@atlaskit/tmp-editor-statsig": "^206.0.0",
88
+ "@atlaskit/tokens": "^20.0.0",
89
89
  "@atlaskit/tooltip": "^24.3.0",
90
90
  "@atlaskit/width-detector": "^7.2.0",
91
91
  "@babel/runtime": "^7.0.0",
@@ -112,19 +112,20 @@
112
112
  "re-resizable": "6.0.0",
113
113
  "react-focus-lock": "^2.9.5",
114
114
  "react-loadable": "^5.1.0",
115
+ "react-loosely-lazy": "^1.0.0",
115
116
  "react-virtualized": "^9.22.6",
116
117
  "rusha": "^0.8.13",
117
118
  "uuid": "^11.1.1",
118
119
  "w3c-keyname": "^2.1.8"
119
120
  },
120
121
  "peerDependencies": {
121
- "@atlaskit/media-core": "^38.2.0",
122
+ "@atlaskit/media-core": "^39.0.0",
122
123
  "react": "^18.2.0 || ^19.2.0",
123
124
  "react-dom": "^18.2.0 || ^19.2.0",
124
125
  "react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
125
126
  },
126
127
  "devDependencies": {
127
- "@atlaskit/media-core": "^38.2.0",
128
+ "@atlaskit/media-core": "^39.0.0",
128
129
  "@atlassian/a11y-jest-testing": "^0.17.0",
129
130
  "@atlassian/experiment-test-utils": "^0.2.0",
130
131
  "@atlassian/feature-flags-test-utils": "^1.3.0",
@@ -207,9 +208,6 @@
207
208
  "jfp_a11y_fix_create_issue_no_results_link_focus": {
208
209
  "type": "boolean"
209
210
  },
210
- "platform_editor_fix_unsubscribe_of_provider": {
211
- "type": "boolean"
212
- },
213
211
  "platform_editor_legacy_content_macro_visual_update": {
214
212
  "type": "boolean"
215
213
  },
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useNativeEmbedSettled = void 0;
7
- var _react = require("react");
8
- /** Set to `"true"` by the embed frame while loading, then removed — never set to `"false"`. */
9
- var NATIVE_EMBED_LOADING_ATTRIBUTE = 'data-native-embed-loading';
10
-
11
- /**
12
- * Calls `onSettled` once the native embed inside `container` has finished loading, successfully or
13
- * not. The extension handler mounts the embed asynchronously, so the subtree is observed rather
14
- * than a known element.
15
- *
16
- * Two signals, because neither alone catches every embed: the attribute having been seen and gone,
17
- * which covers a failure that renders no frame; or a frame with no attribute, which covers an embed
18
- * that never advertises loading. The frame is present either way, so the attribute comes first.
19
- *
20
- * `onSettled` must be stable, and runs at most once per container.
21
- */
22
- var useNativeEmbedSettled = exports.useNativeEmbedSettled = function useNativeEmbedSettled(container, onSettled) {
23
- (0, _react.useEffect)(function () {
24
- if (!container || typeof MutationObserver === 'undefined') {
25
- return;
26
- }
27
- var hasBeenLoading = false;
28
- var settled = false;
29
- var read = function read() {
30
- if (settled) {
31
- return;
32
- }
33
- if (container.querySelector("[".concat(NATIVE_EMBED_LOADING_ATTRIBUTE, "=\"true\"]"))) {
34
- hasBeenLoading = true;
35
- return;
36
- }
37
- if (hasBeenLoading || container.querySelector('iframe')) {
38
- settled = true;
39
- onSettled();
40
- }
41
- };
42
- var observer = new MutationObserver(read);
43
- observer.observe(container, {
44
- attributes: true,
45
- attributeFilter: [NATIVE_EMBED_LOADING_ATTRIBUTE],
46
- childList: true,
47
- subtree: true
48
- });
49
-
50
- // After `observe`, so a change landing in between is either read here or queued.
51
- read();
52
- return function () {
53
- return observer.disconnect();
54
- };
55
- }, [container, onSettled]);
56
- };
@@ -1,49 +0,0 @@
1
- import { useEffect } from 'react';
2
-
3
- /** Set to `"true"` by the embed frame while loading, then removed — never set to `"false"`. */
4
- const NATIVE_EMBED_LOADING_ATTRIBUTE = 'data-native-embed-loading';
5
-
6
- /**
7
- * Calls `onSettled` once the native embed inside `container` has finished loading, successfully or
8
- * not. The extension handler mounts the embed asynchronously, so the subtree is observed rather
9
- * than a known element.
10
- *
11
- * Two signals, because neither alone catches every embed: the attribute having been seen and gone,
12
- * which covers a failure that renders no frame; or a frame with no attribute, which covers an embed
13
- * that never advertises loading. The frame is present either way, so the attribute comes first.
14
- *
15
- * `onSettled` must be stable, and runs at most once per container.
16
- */
17
- export const useNativeEmbedSettled = (container, onSettled) => {
18
- useEffect(() => {
19
- if (!container || typeof MutationObserver === 'undefined') {
20
- return;
21
- }
22
- let hasBeenLoading = false;
23
- let settled = false;
24
- const read = () => {
25
- if (settled) {
26
- return;
27
- }
28
- if (container.querySelector(`[${NATIVE_EMBED_LOADING_ATTRIBUTE}="true"]`)) {
29
- hasBeenLoading = true;
30
- return;
31
- }
32
- if (hasBeenLoading || container.querySelector('iframe')) {
33
- settled = true;
34
- onSettled();
35
- }
36
- };
37
- const observer = new MutationObserver(read);
38
- observer.observe(container, {
39
- attributes: true,
40
- attributeFilter: [NATIVE_EMBED_LOADING_ATTRIBUTE],
41
- childList: true,
42
- subtree: true
43
- });
44
-
45
- // After `observe`, so a change landing in between is either read here or queued.
46
- read();
47
- return () => observer.disconnect();
48
- }, [container, onSettled]);
49
- };
@@ -1,51 +0,0 @@
1
- import { useEffect } from 'react';
2
-
3
- /** Set to `"true"` by the embed frame while loading, then removed — never set to `"false"`. */
4
- var NATIVE_EMBED_LOADING_ATTRIBUTE = 'data-native-embed-loading';
5
-
6
- /**
7
- * Calls `onSettled` once the native embed inside `container` has finished loading, successfully or
8
- * not. The extension handler mounts the embed asynchronously, so the subtree is observed rather
9
- * than a known element.
10
- *
11
- * Two signals, because neither alone catches every embed: the attribute having been seen and gone,
12
- * which covers a failure that renders no frame; or a frame with no attribute, which covers an embed
13
- * that never advertises loading. The frame is present either way, so the attribute comes first.
14
- *
15
- * `onSettled` must be stable, and runs at most once per container.
16
- */
17
- export var useNativeEmbedSettled = function useNativeEmbedSettled(container, onSettled) {
18
- useEffect(function () {
19
- if (!container || typeof MutationObserver === 'undefined') {
20
- return;
21
- }
22
- var hasBeenLoading = false;
23
- var settled = false;
24
- var read = function read() {
25
- if (settled) {
26
- return;
27
- }
28
- if (container.querySelector("[".concat(NATIVE_EMBED_LOADING_ATTRIBUTE, "=\"true\"]"))) {
29
- hasBeenLoading = true;
30
- return;
31
- }
32
- if (hasBeenLoading || container.querySelector('iframe')) {
33
- settled = true;
34
- onSettled();
35
- }
36
- };
37
- var observer = new MutationObserver(read);
38
- observer.observe(container, {
39
- attributes: true,
40
- attributeFilter: [NATIVE_EMBED_LOADING_ATTRIBUTE],
41
- childList: true,
42
- subtree: true
43
- });
44
-
45
- // After `observe`, so a change landing in between is either read here or queued.
46
- read();
47
- return function () {
48
- return observer.disconnect();
49
- };
50
- }, [container, onSettled]);
51
- };
@@ -1,12 +0,0 @@
1
- /**
2
- * Calls `onSettled` once the native embed inside `container` has finished loading, successfully or
3
- * not. The extension handler mounts the embed asynchronously, so the subtree is observed rather
4
- * than a known element.
5
- *
6
- * Two signals, because neither alone catches every embed: the attribute having been seen and gone,
7
- * which covers a failure that renders no frame; or a frame with no attribute, which covers an embed
8
- * that never advertises loading. The frame is present either way, so the attribute comes first.
9
- *
10
- * `onSettled` must be stable, and runs at most once per container.
11
- */
12
- export declare const useNativeEmbedSettled: (container: HTMLElement | null, onSettled: () => void) => void;