@atlaskit/editor-plugin-show-diff 14.2.10 → 14.3.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 (55) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/afm-products/tsconfig.json +3 -0
  4. package/dist/cjs/pm-plugins/calculateDiff/attrAwareTokenEncoder.js +2 -22
  5. package/dist/cjs/pm-plugins/calculateDiff/calculateDiffDecorations.js +18 -7
  6. package/dist/cjs/pm-plugins/calculateDiff/computeDiffChanges.js +5 -6
  7. package/dist/cjs/pm-plugins/calculateDiff/encodeCharacterWithMarks.js +44 -0
  8. package/dist/cjs/pm-plugins/calculateDiff/isMarkOnlyChange.js +50 -0
  9. package/dist/cjs/pm-plugins/calculateDiff/markAwareTokenEncoder.js +38 -0
  10. package/dist/cjs/pm-plugins/calculateDiff/selectTokenEncoder.js +36 -0
  11. package/dist/cjs/pm-plugins/calculateDiff/simplifySteps.js +3 -3
  12. package/dist/cjs/pm-plugins/decorations/colorSchemes/attributions.js +68 -17
  13. package/dist/cjs/pm-plugins/decorations/colorSchemes/factory.js +68 -12
  14. package/dist/cjs/pm-plugins/decorations/colorSchemes/schemes.js +19 -7
  15. package/dist/cjs/pm-plugins/decorations/colorSchemes/types.js +16 -1
  16. package/dist/cjs/pm-plugins/decorations/createNodeChangedDecorationWidget.js +4 -2
  17. package/dist/cjs/pm-plugins/decorations/utils/getAttrChangeRanges.js +3 -3
  18. package/dist/es2019/pm-plugins/calculateDiff/attrAwareTokenEncoder.js +1 -21
  19. package/dist/es2019/pm-plugins/calculateDiff/calculateDiffDecorations.js +19 -7
  20. package/dist/es2019/pm-plugins/calculateDiff/computeDiffChanges.js +6 -6
  21. package/dist/es2019/pm-plugins/calculateDiff/encodeCharacterWithMarks.js +36 -0
  22. package/dist/es2019/pm-plugins/calculateDiff/isMarkOnlyChange.js +47 -0
  23. package/dist/es2019/pm-plugins/calculateDiff/markAwareTokenEncoder.js +25 -0
  24. package/dist/es2019/pm-plugins/calculateDiff/selectTokenEncoder.js +30 -0
  25. package/dist/es2019/pm-plugins/calculateDiff/simplifySteps.js +1 -1
  26. package/dist/es2019/pm-plugins/decorations/colorSchemes/attributions.js +55 -11
  27. package/dist/es2019/pm-plugins/decorations/colorSchemes/factory.js +67 -12
  28. package/dist/es2019/pm-plugins/decorations/colorSchemes/schemes.js +19 -7
  29. package/dist/es2019/pm-plugins/decorations/colorSchemes/types.js +14 -1
  30. package/dist/es2019/pm-plugins/decorations/createNodeChangedDecorationWidget.js +7 -0
  31. package/dist/es2019/pm-plugins/decorations/utils/getAttrChangeRanges.js +1 -1
  32. package/dist/esm/pm-plugins/calculateDiff/attrAwareTokenEncoder.js +1 -21
  33. package/dist/esm/pm-plugins/calculateDiff/calculateDiffDecorations.js +18 -7
  34. package/dist/esm/pm-plugins/calculateDiff/computeDiffChanges.js +5 -6
  35. package/dist/esm/pm-plugins/calculateDiff/encodeCharacterWithMarks.js +38 -0
  36. package/dist/esm/pm-plugins/calculateDiff/isMarkOnlyChange.js +44 -0
  37. package/dist/esm/pm-plugins/calculateDiff/markAwareTokenEncoder.js +33 -0
  38. package/dist/esm/pm-plugins/calculateDiff/selectTokenEncoder.js +30 -0
  39. package/dist/esm/pm-plugins/calculateDiff/simplifySteps.js +1 -1
  40. package/dist/esm/pm-plugins/decorations/colorSchemes/attributions.js +68 -17
  41. package/dist/esm/pm-plugins/decorations/colorSchemes/factory.js +69 -12
  42. package/dist/esm/pm-plugins/decorations/colorSchemes/schemes.js +19 -7
  43. package/dist/esm/pm-plugins/decorations/colorSchemes/types.js +14 -1
  44. package/dist/esm/pm-plugins/decorations/createNodeChangedDecorationWidget.js +4 -2
  45. package/dist/esm/pm-plugins/decorations/utils/getAttrChangeRanges.js +1 -1
  46. package/dist/types/pm-plugins/calculateDiff/encodeCharacterWithMarks.d.ts +9 -0
  47. package/dist/types/pm-plugins/calculateDiff/isMarkOnlyChange.d.ts +15 -0
  48. package/dist/types/pm-plugins/calculateDiff/markAwareTokenEncoder.d.ts +9 -0
  49. package/dist/types/pm-plugins/calculateDiff/selectTokenEncoder.d.ts +17 -0
  50. package/dist/types/pm-plugins/decorations/colorSchemes/attributions.d.ts +3 -3
  51. package/dist/types/pm-plugins/decorations/colorSchemes/factory.d.ts +1 -1
  52. package/dist/types/pm-plugins/decorations/colorSchemes/schemes.d.ts +1 -1
  53. package/dist/types/pm-plugins/decorations/colorSchemes/types.d.ts +19 -19
  54. package/dist/types/pm-plugins/decorations/utils/getAttrChangeRanges.d.ts +1 -1
  55. package/package.json +7 -39
@@ -65,14 +65,26 @@ var createAttributionScheme = function createAttributionScheme(color) {
65
65
  });
66
66
  };
67
67
 
68
- /** Maps public schemes and attribution-only accents to their data objects. */
68
+ /** Maps public schemes and attribution-only participant slots to their data objects. */
69
69
  export var colorSchemeRegistry = {
70
- blue: createAttributionScheme('blue'),
71
- green: createAttributionScheme('green'),
72
- magenta: createAttributionScheme('magenta'),
73
- orange: createAttributionScheme('orange'),
74
- purple: createAttributionScheme('purple'),
75
- teal: createAttributionScheme('teal'),
70
+ 'red-bolder': createAttributionScheme('red-bolder'),
71
+ 'blue-bolder': createAttributionScheme('blue-bolder'),
72
+ 'green-bolder': createAttributionScheme('green-bolder'),
73
+ 'yellow-bolder': createAttributionScheme('yellow-bolder'),
74
+ 'purple-bolder': createAttributionScheme('purple-bolder'),
75
+ 'magenta-bolder': createAttributionScheme('magenta-bolder'),
76
+ 'teal-bolder': createAttributionScheme('teal-bolder'),
77
+ 'orange-bolder': createAttributionScheme('orange-bolder'),
78
+ 'lime-bolder': createAttributionScheme('lime-bolder'),
79
+ 'gray-bolder': createAttributionScheme('gray-bolder'),
80
+ 'blue-subtle': createAttributionScheme('blue-subtle'),
81
+ 'red-subtle': createAttributionScheme('red-subtle'),
82
+ 'orange-subtle': createAttributionScheme('orange-subtle'),
83
+ 'yellow-subtle': createAttributionScheme('yellow-subtle'),
84
+ 'green-subtle': createAttributionScheme('green-subtle'),
85
+ 'teal-subtle': createAttributionScheme('teal-subtle'),
86
+ 'purple-subtle': createAttributionScheme('purple-subtle'),
87
+ 'magenta-subtle': createAttributionScheme('magenta-subtle'),
76
88
  traditional: traditionalScheme,
77
89
  standard: standardScheme
78
90
  };
@@ -1 +1,14 @@
1
- export {};
1
+ /** Attribution-only participant slots selected by the plugin, never by consumers. */
2
+ export var PARTICIPANT_COLOR_SCHEMES = ['red-bolder', 'blue-bolder', 'green-bolder', 'yellow-bolder', 'purple-bolder', 'magenta-bolder', 'teal-bolder', 'orange-bolder', 'lime-bolder', 'gray-bolder', 'blue-subtle', 'red-subtle', 'orange-subtle', 'yellow-subtle', 'green-subtle', 'teal-subtle', 'purple-subtle', 'magenta-subtle'];
3
+
4
+ /** ADS accent hues used by the public and participant colour schemes. */
5
+
6
+ /** A public scheme or an attribution participant slot resolved internally for one change. */
7
+
8
+ /** A colour value that the factory expands into a complete set of diff-safe ADS tokens. */
9
+
10
+ /**
11
+ * A show-diff colour scheme. Colour fields are ADS hues or shared participant slots that
12
+ * `factory.ts` expands into token paths; the rest encode structural differences no colour can
13
+ * express. Ring widths, padding, radius and pointer-events are fixed in the factory, not per scheme.
14
+ */
@@ -340,7 +340,7 @@ export var createNodeChangedDecorationWidget = function createNodeChangedDecorat
340
340
  decorations.push(leftAnchor);
341
341
  }
342
342
  }
343
- decorations.push(Decoration.widget(safeInsertPos, dom, _objectSpread(_objectSpread({}, buildDiffDecorationSpec(_objectSpread({
343
+ decorations.push(Decoration.widget(safeInsertPos, dom, _objectSpread(_objectSpread(_objectSpread({}, buildDiffDecorationSpec(_objectSpread({
344
344
  decorationType: 'widget',
345
345
  diffId: diffId,
346
346
  isActive: isActive,
@@ -349,7 +349,9 @@ export var createNodeChangedDecorationWidget = function createNodeChangedDecorat
349
349
  // placeBelow anchors at the end of the new content, so render on the
350
350
  // trailing side (1); otherwise render before the new content (-1).
351
351
  side: placeBelow ? 1 : -1
352
- }))), {}, {
352
+ }))), fg('platform_editor_diff_inline_mark_changes') && {
353
+ marks: []
354
+ }), {}, {
353
355
  destroy: function destroy() {
354
356
  var _constrainMediaObserv2;
355
357
  return (_constrainMediaObserv2 = constrainMediaObserver) === null || _constrainMediaObserv2 === void 0 ? void 0 : _constrainMediaObserv2.disconnect();
@@ -3,7 +3,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
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
4
  import isEqual from 'lodash/isEqual';
5
5
  import omit from 'lodash/omit';
6
- import { SetAttrsStep } from '@atlaskit/adf-schema/steps';
6
+ import { SetAttrsStep } from '@atlaskit/adf-schema/steps/set-attrs';
7
7
  import { isExperimentEnabled } from '@atlaskit/editor-common/deprecated-platform-feature-experiments';
8
8
  import { getBaseNodeTypeName } from '@atlaskit/editor-common/utils/node-type-utils';
9
9
  import { AttrStep } from '@atlaskit/editor-prosemirror/transform';
@@ -0,0 +1,9 @@
1
+ import type { Mark } from '@atlaskit/editor-prosemirror/model';
2
+ /**
3
+ * Folds a character's marks into its `prosemirror-changeset` token. The library default returns
4
+ * only the char code, so marked and unmarked text tokenise identically and a formatting-only edit
5
+ * is invisible to the changeset.
6
+ *
7
+ * Marks and attrs are sorted so the token is order-independent.
8
+ */
9
+ export declare const encodeCharacterWithMarks: (char: number, marks: readonly Mark[]) => number | string;
@@ -0,0 +1,15 @@
1
+ import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
2
+ /**
3
+ * Whether a change differs only in marks, with identical structure and text on both sides. Only
4
+ * produced when a mark-aware token encoder is in use.
5
+ */
6
+ export declare const isMarkOnlyChange: ({ change, newDoc, originalDoc, }: {
7
+ change: {
8
+ fromA: number;
9
+ fromB: number;
10
+ toA: number;
11
+ toB: number;
12
+ };
13
+ newDoc: PMNode;
14
+ originalDoc: PMNode;
15
+ }) => boolean;
@@ -0,0 +1,9 @@
1
+ import type { TokenEncoder } from 'prosemirror-changeset';
2
+ /**
3
+ * The library default encoder plus mark folding on text characters.
4
+ *
5
+ * Deliberately narrower than `attrAwareTokenEncoder`: node-start tokens keep the library default
6
+ * and do not fold in diffable attributes, which `getAttrChangeRanges` already reports for every
7
+ * diff type.
8
+ */
9
+ export declare const markAwareTokenEncoder: TokenEncoder<string | number>;
@@ -0,0 +1,17 @@
1
+ import type { TokenEncoder } from 'prosemirror-changeset';
2
+ export type TokenEncoderSelection = {
3
+ /** Non-smart mark-aware path only; lets callers suppress a duplicate deleted side. */
4
+ shouldHideMarkOnlyDeletions: boolean;
5
+ /** Encoder to hand to `ChangeSet.create`. `undefined` means the library default. */
6
+ tokenEncoder: TokenEncoder<string | number> | undefined;
7
+ };
8
+ /**
9
+ * Single place `platform_editor_diff_inline_mark_changes` is read, shared by
10
+ * `calculateDiffDecorations` and `computeDiffChanges` so the two cannot drift.
11
+ *
12
+ * With the gate off this returns what both callers computed before it existed.
13
+ *
14
+ * @param useAttrAwareEncoder Caller is running the smart classifier, which needs node attrs folded
15
+ * into the token.
16
+ */
17
+ export declare const selectTokenEncoder: (useAttrAwareEncoder: boolean) => TokenEncoderSelection;
@@ -1,6 +1,6 @@
1
1
  import type { Change } from 'prosemirror-changeset';
2
2
  import type { ColorScheme as PublicColorScheme, DiffStepAttribution } from '../../../showDiffPluginType';
3
- import type { ColorScheme, DiffAccentColor } from './types';
3
+ import { type ColorScheme, type DiffParticipantColorScheme } from './types';
4
4
  export type DiffAttributionSpanData = DiffStepAttribution & {
5
5
  stepIndex: number;
6
6
  };
@@ -8,5 +8,5 @@ export type DiffAttributionSpanData = DiffStepAttribution & {
8
8
  export declare const getAttributionKey: (attribution: DiffStepAttribution | undefined) => string | undefined;
9
9
  export declare const areAttributionColorGatesEnabled: () => boolean;
10
10
  export declare const isAttributionColoringEnabled: (stepAttributions: Array<DiffStepAttribution | undefined> | undefined) => boolean;
11
- export declare const createAttributionColorMap: (stepAttributions: Array<DiffStepAttribution | undefined>) => Map<string, DiffAccentColor>;
12
- export declare const getColorSchemeForChange: (change: Change, attributedChanges: Change[], attributionColors: Map<string, DiffAccentColor>, fallback: PublicColorScheme | undefined) => ColorScheme | undefined;
11
+ export declare const createAttributionColorMap: (stepAttributions: Array<DiffStepAttribution | undefined>) => Map<string, DiffParticipantColorScheme>;
12
+ export declare const getColorSchemeForChange: (change: Change, attributedChanges: Change[], attributionColors: Map<string, DiffParticipantColorScheme>, fallback: PublicColorScheme | undefined) => ColorScheme | undefined;
@@ -1,4 +1,4 @@
1
- import type { DiffColorScheme } from './types';
1
+ import { type DiffColorScheme } from './types';
2
2
  /** Inline inserted content — default state. */
3
3
  export declare function buildInsertStyle(colors: DiffColorScheme): string;
4
4
  /** Inline insert style for content within a block node (no background, underline only). */
@@ -4,7 +4,7 @@ import type { ColorScheme, DiffColorScheme } from './types';
4
4
  export declare const traditionalScheme: DiffColorScheme;
5
5
  /** Purple insertions, gray deletions (red on active). */
6
6
  export declare const standardScheme: DiffColorScheme;
7
- /** Maps public schemes and attribution-only accents to their data objects. */
7
+ /** Maps public schemes and attribution-only participant slots to their data objects. */
8
8
  export declare const colorSchemeRegistry: Record<ColorScheme, DiffColorScheme>;
9
9
  /** Attribution accents are impossible in the refactor-off cohort; fall back defensively. */
10
10
  export declare const getLegacyColorScheme: (colorScheme: ColorScheme | undefined) => PublicColorScheme | undefined;
@@ -1,37 +1,37 @@
1
1
  import type { ColorScheme as PublicColorScheme } from '../../../showDiffPluginType';
2
- /** Attribution-only accents selected by the plugin, never by consumers. */
3
- export type DiffAccentColor = 'blue' | 'green' | 'magenta' | 'orange' | 'purple' | 'teal';
4
- /** A public scheme or an attribution accent resolved internally for one change. */
5
- export type ColorScheme = PublicColorScheme | DiffAccentColor;
2
+ /** Attribution-only participant slots selected by the plugin, never by consumers. */
3
+ export declare const PARTICIPANT_COLOR_SCHEMES: readonly ['red-bolder', 'blue-bolder', 'green-bolder', 'yellow-bolder', 'purple-bolder', 'magenta-bolder', 'teal-bolder', 'orange-bolder', 'lime-bolder', 'gray-bolder', 'blue-subtle', 'red-subtle', 'orange-subtle', 'yellow-subtle', 'green-subtle', 'teal-subtle', 'purple-subtle', 'magenta-subtle'];
4
+ export type DiffParticipantColorScheme = (typeof PARTICIPANT_COLOR_SCHEMES)[number];
5
+ /** ADS accent hues used by the public and participant colour schemes. */
6
+ export type AdsAccentColor = 'blue' | 'gray' | 'green' | 'lime' | 'magenta' | 'orange' | 'purple' | 'red' | 'teal' | 'yellow';
7
+ /** A public scheme or an attribution participant slot resolved internally for one change. */
8
+ export type ColorScheme = PublicColorScheme | DiffParticipantColorScheme;
9
+ /** A colour value that the factory expands into a complete set of diff-safe ADS tokens. */
10
+ export type DiffSchemeColor = AdsAccentColor | DiffParticipantColorScheme;
6
11
  /**
7
- * ADS accent colours for which every token path used by `factory.ts` exists. Closed set, so
8
- * interpolating a colour name into a token path is compile-time safe.
9
- */
10
- export type AdsAccentColor = DiffAccentColor | 'red' | 'yellow' | 'gray';
11
- /**
12
- * A show-diff colour scheme. Colour fields are accent names that `factory.ts` expands into token
13
- * paths; the rest encode structural differences no colour can express. Ring widths, padding,
14
- * radius and pointer-events are fixed in the factory, not per scheme.
12
+ * A show-diff colour scheme. Colour fields are ADS hues or shared participant slots that
13
+ * `factory.ts` expands into token paths; the rest encode structural differences no colour can
14
+ * express. Ring widths, padding, radius and pointer-events are fixed in the factory, not per scheme.
15
15
  */
16
16
  export type DiffColorScheme = {
17
17
  /** Stacking order of the square added-cell overlay. The rounded variant is always 2. */
18
18
  addedCellOverlayZIndex: 1 | 2;
19
19
  /** Deleted inline content, active/focused state. */
20
- deleteActiveColor: AdsAccentColor;
20
+ deleteActiveColor: DiffSchemeColor;
21
21
  /** Deleted inline content. */
22
- deleteColor: AdsAccentColor;
22
+ deleteColor: DiffSchemeColor;
23
23
  /** Active deleted-block ring: pale `background.accent.*.subtler.pressed` vs saturated `border.accent.*`. */
24
24
  deletedBlockOutlineActiveEmphasis: 'background' | 'border';
25
25
  /** Deleted cell outline: `color.border.disabled` hairline vs opaque accent border. */
26
26
  deletedCellBorderProminence: 'subtle' | 'accent';
27
27
  /** Deleted cell overlays. Gray in both current schemes. */
28
- deletedCellColor: AdsAccentColor;
28
+ deletedCellColor: DiffSchemeColor;
29
29
  /** Opacity of the deleted cell overlay background. Counterpart to `insertedCellOpacity`. */
30
30
  deletedCellOpacity: number;
31
31
  /** Deleted inline content: tint the strikethrough, or tint and dim the glyph itself. */
32
32
  deletedInlineTreatment: 'strikethrough' | 'glyphTint';
33
33
  /** Resting "REMOVED" lozenge tint. Gray in both current schemes; the active state uses `deleteActiveColor`. */
34
- deletedLozengeColor: AdsAccentColor;
34
+ deletedLozengeColor: DiffSchemeColor;
35
35
  /**
36
36
  * "REMOVED" lozenge label, in both states: a fixed inverse tone that reads on any tint, or the
37
37
  * accent text colour matching `deletedLozengeColor`.
@@ -41,7 +41,7 @@ export type DiffColorScheme = {
41
41
  * Resting ring colour for a deleted media/embed card under the a11y-fixes treatment. Its own role
42
42
  * rather than a derivation of `deleteColor`: that treatment rings red even for gray deletes.
43
43
  */
44
- deletedMediaRingColor: AdsAccentColor;
44
+ deletedMediaRingColor: DiffSchemeColor;
45
45
  /** Deleted block ring: 4px stateful ring plus marker variables, or one resting treatment. */
46
46
  deletedNodeEmphasis: 'stateful' | 'static';
47
47
  /** Active deleted-blockquote ring tone, for the nodeview-wrapped case only. */
@@ -51,9 +51,9 @@ export type DiffColorScheme = {
51
51
  /** Deleted row de-emphasis: tint the line-through, or tint the row text. Both read `deleteColor`. */
52
52
  deletedRowTreatment: 'strikeColor' | 'textTint';
53
53
  /** Inserted content, active/focused state. */
54
- insertActiveColor: AdsAccentColor;
54
+ insertActiveColor: DiffSchemeColor;
55
55
  /** Inserted content, default state. */
56
- insertColor: AdsAccentColor;
56
+ insertColor: DiffSchemeColor;
57
57
  /** Opacity of the inserted cell overlay background. */
58
58
  insertedCellOpacity: number;
59
59
  /** Inserted content under the extended experience: underline, or a border-bottom rule with padding. */
@@ -1,4 +1,4 @@
1
- import { SetAttrsStep } from '@atlaskit/adf-schema/steps';
1
+ import { SetAttrsStep } from '@atlaskit/adf-schema/steps/set-attrs';
2
2
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
3
3
  import type { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform-override';
4
4
  import { AttrStep } from '@atlaskit/editor-prosemirror/transform';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-show-diff",
3
- "version": "14.2.10",
3
+ "version": "14.3.0",
4
4
  "description": "ShowDiff plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -25,10 +25,11 @@
25
25
  "@atlaskit/editor-plugin-analytics": "^16.1.0",
26
26
  "@atlaskit/editor-plugin-user-intent": "^14.0.0",
27
27
  "@atlaskit/editor-prosemirror": "^8.0.0",
28
+ "@atlaskit/editor-shared-styles": "^4.1.0",
28
29
  "@atlaskit/editor-tables": "^3.1.0",
29
30
  "@atlaskit/platform-feature-experiments": "^0.3.0",
30
31
  "@atlaskit/platform-feature-flags": "^2.2.0",
31
- "@atlaskit/tmp-editor-statsig": "^171.0.0",
32
+ "@atlaskit/tmp-editor-statsig": "^172.0.0",
32
33
  "@atlaskit/tokens": "^16.11.0",
33
34
  "@babel/runtime": "^7.0.0",
34
35
  "@compiled/react": "^1.0.2",
@@ -59,45 +60,9 @@
59
60
  "react-intl": "^7.0.0"
60
61
  },
61
62
  "peerDependencies": {
62
- "@atlaskit/editor-common": "^120.10.0",
63
+ "@atlaskit/editor-common": "^120.11.0",
63
64
  "react": "^18.2.0 || ^19.2.0"
64
65
  },
65
- "techstack": {
66
- "@atlassian/frontend": {
67
- "code-structure": [
68
- "editor-plugin"
69
- ],
70
- "import-structure": [
71
- "atlassian-conventions"
72
- ],
73
- "circular-dependencies": [
74
- "file-and-folder-level"
75
- ]
76
- },
77
- "@repo/internal": {
78
- "dom-events": "use-bind-event-listener",
79
- "analytics": [
80
- "analytics-next"
81
- ],
82
- "design-tokens": [
83
- "color"
84
- ],
85
- "theming": [
86
- "react-context"
87
- ],
88
- "ui-components": [
89
- "lite-mode"
90
- ],
91
- "deprecation": "no-deprecated-imports",
92
- "styling": [
93
- "emotion",
94
- "emotion"
95
- ],
96
- "imports": [
97
- "import-no-extraneous-disable-for-examples-and-docs"
98
- ]
99
- }
100
- },
101
66
  "platform-feature-flags": {
102
67
  "platform_editor_ai_show_diff_patch_1": {
103
68
  "type": "boolean"
@@ -110,6 +75,9 @@
110
75
  },
111
76
  "platform_editor_reduce_diff_attr_sensitivity": {
112
77
  "type": "boolean"
78
+ },
79
+ "platform_editor_diff_inline_mark_changes": {
80
+ "type": "boolean"
113
81
  }
114
82
  }
115
83
  }