@atlaskit/editor-core 216.10.0 → 216.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 (34) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/afm-cc/tsconfig.json +0 -1
  3. package/afm-jira/tsconfig.json +0 -1
  4. package/afm-products/tsconfig.json +0 -1
  5. package/dist/cjs/composable-editor/editor-internal.js +1 -0
  6. package/dist/cjs/composable-editor/hooks/useMemoEditorProps.js +2 -1
  7. package/dist/cjs/create-editor/ReactEditorView.js +92 -21
  8. package/dist/cjs/ui/Appearance/FullPage/FullPage.js +10 -2
  9. package/dist/cjs/utils/getNodesCount.js +1 -0
  10. package/dist/cjs/utils/getNodesCountWithExtensionKeys.js +32 -0
  11. package/dist/cjs/version-wrapper.js +1 -1
  12. package/dist/es2019/composable-editor/editor-internal.js +1 -0
  13. package/dist/es2019/composable-editor/hooks/useMemoEditorProps.js +2 -1
  14. package/dist/es2019/create-editor/ReactEditorView.js +82 -17
  15. package/dist/es2019/ui/Appearance/FullPage/FullPage.js +10 -2
  16. package/dist/es2019/utils/getNodesCount.js +1 -0
  17. package/dist/es2019/utils/getNodesCountWithExtensionKeys.js +26 -0
  18. package/dist/es2019/version-wrapper.js +1 -1
  19. package/dist/esm/composable-editor/editor-internal.js +1 -0
  20. package/dist/esm/composable-editor/hooks/useMemoEditorProps.js +2 -1
  21. package/dist/esm/create-editor/ReactEditorView.js +93 -22
  22. package/dist/esm/ui/Appearance/FullPage/FullPage.js +10 -2
  23. package/dist/esm/utils/getNodesCount.js +1 -0
  24. package/dist/esm/utils/getNodesCountWithExtensionKeys.js +26 -0
  25. package/dist/esm/version-wrapper.js +1 -1
  26. package/dist/types/create-editor/ReactEditorView.d.ts +5 -0
  27. package/dist/types/types/editor-appearance-component.d.ts +5 -0
  28. package/dist/types/types/editor-props.d.ts +26 -0
  29. package/dist/types/utils/getNodesCountWithExtensionKeys.d.ts +12 -0
  30. package/dist/types-ts4.5/create-editor/ReactEditorView.d.ts +5 -0
  31. package/dist/types-ts4.5/types/editor-appearance-component.d.ts +5 -0
  32. package/dist/types-ts4.5/types/editor-props.d.ts +26 -0
  33. package/dist/types-ts4.5/utils/getNodesCountWithExtensionKeys.d.ts +12 -0
  34. package/package.json +7 -4
@@ -119,6 +119,32 @@ interface EditorBaseProps {
119
119
  onChange?: EditorOnChangeHandler;
120
120
  onDestroy?: () => void;
121
121
  onEditorReady?: (editorActions: EditorActions) => void;
122
+ /**
123
+ * Callback for measuring Server-Side Rendering (SSR) performance metrics.
124
+ * Invoked during SSR to track timing information for different segments of the rendering process.
125
+ *
126
+ * @param measure - Performance measurement data
127
+ * @param measure.startTimestamp - Absolute timestamp when the segment started (from `performance.now()`)
128
+ * @param measure.endTimestamp - Absolute timestamp when the segment completed (from `performance.now()`)
129
+ * @param measure.segmentName - Name identifier of the SSR segment being measured
130
+ *
131
+ * @remarks
132
+ * Both timestamps are absolute values from `performance.now()`, not relative to measurement start.
133
+ * Calculate duration as: `measure.endTimestamp - measure.startTimestamp`
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * onSSRMeasure={(measure) => {
138
+ * const duration = measure.endTimestamp - measure.startTimestamp;
139
+ * console.log(`${measure.segmentName}: ${duration}ms`);
140
+ * }}
141
+ * ```
142
+ */
143
+ onSSRMeasure?: (measure: {
144
+ endTimestamp: number;
145
+ segmentName: string;
146
+ startTimestamp: number;
147
+ }) => void;
122
148
  persistScrollGutter?: boolean;
123
149
  popupsBoundariesElement?: HTMLElement;
124
150
  popupsMountPoint?: HTMLElement;
@@ -0,0 +1,12 @@
1
+ import type { Node } from '@atlaskit/editor-prosemirror/model';
2
+ type NodesAndExtensionKeys = {
3
+ extensionKeys: Record<string, number>;
4
+ nodes: Record<string, number>;
5
+ };
6
+ /**
7
+ * Counts node types and extension keys in a single traversal.
8
+ * We exclude the end-of-doc token by iterating to nodeSize - 2,
9
+ * which matches the typical ProseMirror pattern for traversing all child nodes.
10
+ */
11
+ export declare function getNodesCountWithExtensionKeys(node: Node): NodesAndExtensionKeys;
12
+ export {};
@@ -29,6 +29,11 @@ export interface EditorViewProps extends WrappedComponentProps {
29
29
  transformer?: Transformer<string>;
30
30
  view: EditorView;
31
31
  }) => void;
32
+ onSSRMeasure?: (measure: {
33
+ endTimestamp: number;
34
+ segmentName: string;
35
+ startTimestamp: number;
36
+ }) => void;
32
37
  portalProviderAPI: PortalProviderAPI;
33
38
  preset: EditorPresetBuilder<string[], AllEditorPresetPluginTypes[]>;
34
39
  providerFactory: ProviderFactory;
@@ -37,6 +37,11 @@ export interface EditorAppearanceComponentProps<Plugins extends NextEditorPlugin
37
37
  minHeight?: number;
38
38
  onCancel?: (editorView: EditorView) => void;
39
39
  onSave?: (editorView: EditorView) => void;
40
+ onSSRMeasure?: (measure: {
41
+ endTimestamp: number;
42
+ segmentName: string;
43
+ startTimestamp: number;
44
+ }) => void;
40
45
  persistScrollGutter?: boolean;
41
46
  pluginHooks?: ReactHookFactory[];
42
47
  popupsBoundariesElement?: HTMLElement;
@@ -119,6 +119,32 @@ interface EditorBaseProps {
119
119
  onChange?: EditorOnChangeHandler;
120
120
  onDestroy?: () => void;
121
121
  onEditorReady?: (editorActions: EditorActions) => void;
122
+ /**
123
+ * Callback for measuring Server-Side Rendering (SSR) performance metrics.
124
+ * Invoked during SSR to track timing information for different segments of the rendering process.
125
+ *
126
+ * @param measure - Performance measurement data
127
+ * @param measure.startTimestamp - Absolute timestamp when the segment started (from `performance.now()`)
128
+ * @param measure.endTimestamp - Absolute timestamp when the segment completed (from `performance.now()`)
129
+ * @param measure.segmentName - Name identifier of the SSR segment being measured
130
+ *
131
+ * @remarks
132
+ * Both timestamps are absolute values from `performance.now()`, not relative to measurement start.
133
+ * Calculate duration as: `measure.endTimestamp - measure.startTimestamp`
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * onSSRMeasure={(measure) => {
138
+ * const duration = measure.endTimestamp - measure.startTimestamp;
139
+ * console.log(`${measure.segmentName}: ${duration}ms`);
140
+ * }}
141
+ * ```
142
+ */
143
+ onSSRMeasure?: (measure: {
144
+ endTimestamp: number;
145
+ segmentName: string;
146
+ startTimestamp: number;
147
+ }) => void;
122
148
  persistScrollGutter?: boolean;
123
149
  popupsBoundariesElement?: HTMLElement;
124
150
  popupsMountPoint?: HTMLElement;
@@ -0,0 +1,12 @@
1
+ import type { Node } from '@atlaskit/editor-prosemirror/model';
2
+ type NodesAndExtensionKeys = {
3
+ extensionKeys: Record<string, number>;
4
+ nodes: Record<string, number>;
5
+ };
6
+ /**
7
+ * Counts node types and extension keys in a single traversal.
8
+ * We exclude the end-of-doc token by iterating to nodeSize - 2,
9
+ * which matches the typical ProseMirror pattern for traversing all child nodes.
10
+ */
11
+ export declare function getNodesCountWithExtensionKeys(node: Node): NodesAndExtensionKeys;
12
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "216.10.0",
3
+ "version": "216.11.2",
4
4
  "description": "A package contains Atlassian editor core functionality",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -54,7 +54,7 @@
54
54
  "@atlaskit/editor-plugins": "^12.0.0",
55
55
  "@atlaskit/editor-prosemirror": "^7.3.0",
56
56
  "@atlaskit/editor-shared-styles": "^3.10.0",
57
- "@atlaskit/editor-ssr-renderer": "^2.1.0",
57
+ "@atlaskit/editor-ssr-renderer": "^2.2.0",
58
58
  "@atlaskit/editor-toolbar": "^0.19.0",
59
59
  "@atlaskit/editor-toolbar-model": "^0.3.0",
60
60
  "@atlaskit/emoji": "^69.10.0",
@@ -66,7 +66,7 @@
66
66
  "@atlaskit/platform-feature-flags-react": "^0.4.0",
67
67
  "@atlaskit/react-ufo": "^5.2.0",
68
68
  "@atlaskit/task-decision": "^19.2.0",
69
- "@atlaskit/tmp-editor-statsig": "^25.7.0",
69
+ "@atlaskit/tmp-editor-statsig": "^27.1.0",
70
70
  "@atlaskit/tokens": "^11.0.0",
71
71
  "@atlaskit/tooltip": "^20.14.0",
72
72
  "@atlaskit/width-detector": "^5.0.0",
@@ -95,7 +95,7 @@
95
95
  "@af/suppress-react-warnings": "workspace:^",
96
96
  "@af/visual-regression": "workspace:^",
97
97
  "@atlaskit/adf-utils": "^19.27.0",
98
- "@atlaskit/analytics-listeners": "^9.3.0",
98
+ "@atlaskit/analytics-listeners": "^10.0.0",
99
99
  "@atlaskit/collab-provider": "^15.3.0",
100
100
  "@atlaskit/editor-plugin-annotation": "^7.1.0",
101
101
  "@atlaskit/editor-plugin-card": "^12.3.0",
@@ -331,6 +331,9 @@
331
331
  "platform_editor_a11y_find_replace_focus_ring": {
332
332
  "type": "boolean"
333
333
  },
334
+ "platform_editor_better_editor_ssr_spans": {
335
+ "type": "boolean"
336
+ },
334
337
  "platform_editor_context_context_types_migration": {
335
338
  "type": "boolean"
336
339
  },