@atlaskit/editor-plugin-show-diff 16.0.17 → 16.1.1
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.
- package/CHANGELOG.md +28 -0
- package/afm-products/tsconfig.json +3 -0
- package/dist/cjs/pm-plugins/decorations/createNodeChangedDecorationWidget.js +83 -3
- package/dist/cjs/pm-plugins/decorations/utils/absorbFirstChildMarginReset.js +33 -0
- package/dist/cjs/pm-plugins/decorations/utils/createMarginAbsorber.js +43 -0
- package/dist/cjs/pm-plugins/decorations/utils/createNodeShapedMarginSpacer.js +76 -0
- package/dist/cjs/pm-plugins/decorations/utils/safeResolve.js +24 -0
- package/dist/cjs/pm-plugins/main.js +20 -18
- package/dist/cjs/ui/ContributorTag/contributorTagController.js +4 -4
- package/dist/es2019/pm-plugins/decorations/createNodeChangedDecorationWidget.js +83 -3
- package/dist/es2019/pm-plugins/decorations/utils/absorbFirstChildMarginReset.js +29 -0
- package/dist/es2019/pm-plugins/decorations/utils/createMarginAbsorber.js +39 -0
- package/dist/es2019/pm-plugins/decorations/utils/createNodeShapedMarginSpacer.js +69 -0
- package/dist/es2019/pm-plugins/decorations/utils/safeResolve.js +18 -0
- package/dist/es2019/pm-plugins/main.js +19 -17
- package/dist/es2019/ui/ContributorTag/contributorTagController.js +4 -4
- package/dist/esm/pm-plugins/decorations/createNodeChangedDecorationWidget.js +83 -3
- package/dist/esm/pm-plugins/decorations/utils/absorbFirstChildMarginReset.js +28 -0
- package/dist/esm/pm-plugins/decorations/utils/createMarginAbsorber.js +37 -0
- package/dist/esm/pm-plugins/decorations/utils/createNodeShapedMarginSpacer.js +70 -0
- package/dist/esm/pm-plugins/decorations/utils/safeResolve.js +18 -0
- package/dist/esm/pm-plugins/main.js +20 -18
- package/dist/esm/ui/ContributorTag/contributorTagController.js +4 -4
- package/dist/types/entry-points/show-diff-plugin-type.d.ts +1 -1
- package/dist/types/pm-plugins/decorations/colorSchemes/attributions.d.ts +2 -2
- package/dist/types/pm-plugins/decorations/utils/absorbFirstChildMarginReset.d.ts +23 -0
- package/dist/types/pm-plugins/decorations/utils/createMarginAbsorber.d.ts +23 -0
- package/dist/types/pm-plugins/decorations/utils/createNodeShapedMarginSpacer.d.ts +26 -0
- package/dist/types/pm-plugins/decorations/utils/safeResolve.d.ts +13 -0
- package/dist/types/pm-plugins/main.d.ts +7 -1
- package/dist/types/showDiffPluginType.d.ts +17 -2
- package/package.json +14 -6
|
@@ -87,7 +87,7 @@ export var createPlugin = function createPlugin(config, getIntl, api, onEditorVi
|
|
|
87
87
|
var newPluginState = currentPluginState;
|
|
88
88
|
if (meta) {
|
|
89
89
|
if ((meta === null || meta === void 0 ? void 0 : meta.action) === 'SHOW_DIFF' || (meta === null || meta === void 0 ? void 0 : meta.action) === 'REVEAL_COMPLETE') {
|
|
90
|
-
var _newPluginState, _newPluginState2, _newPluginState3, _newPluginState4, _newPluginState5, _newPluginState6, _newPluginState7, _newPluginState8, _newPluginState9, _newPluginState0, _newPluginState1;
|
|
90
|
+
var _newPluginState$color, _newPluginState, _newPluginState2, _newPluginState3, _newPluginState4, _newPluginState5, _newPluginState6, _newPluginState7, _newPluginState8, _newPluginState9, _newPluginState0, _newPluginState1, _newPluginState10;
|
|
91
91
|
// REVEAL_COMPLETE repaints with the reveal dropped, so the decorations render their
|
|
92
92
|
// ordinary resting style. Without it the reveal stays in state indefinitely and the
|
|
93
93
|
// next unrelated repaint re-emits the hidden, zero-width highlight with no animation
|
|
@@ -107,23 +107,23 @@ export var createPlugin = function createPlugin(config, getIntl, api, onEditorVi
|
|
|
107
107
|
state: newState,
|
|
108
108
|
pluginState: newPluginState,
|
|
109
109
|
nodeViewSerializer: nodeViewSerializer,
|
|
110
|
-
colorScheme: config === null || config === void 0 ? void 0 : config.colorScheme,
|
|
110
|
+
colorScheme: (_newPluginState$color = (_newPluginState = newPluginState) === null || _newPluginState === void 0 ? void 0 : _newPluginState.colorScheme) !== null && _newPluginState$color !== void 0 ? _newPluginState$color : config === null || config === void 0 ? void 0 : config.colorScheme,
|
|
111
111
|
intl: getIntl(),
|
|
112
112
|
activeIndexPos: newPluginState.activeIndexPos,
|
|
113
113
|
api: api,
|
|
114
114
|
tagMountContext: tagMountContext
|
|
115
|
-
}, isExtendedEnabled((
|
|
116
|
-
isInverted: (
|
|
117
|
-
diffType: (
|
|
118
|
-
hideDeletedDiffs: (
|
|
119
|
-
hideAddedDiffsUnderline: (
|
|
120
|
-
showIndicators: (
|
|
121
|
-
smartThresholds: (
|
|
122
|
-
deletedDiffPlacement: (
|
|
123
|
-
inlineDeletedDiffPlacement: (
|
|
115
|
+
}, isExtendedEnabled((_newPluginState2 = newPluginState) === null || _newPluginState2 === void 0 ? void 0 : _newPluginState2.diffType) ? {
|
|
116
|
+
isInverted: (_newPluginState3 = newPluginState) === null || _newPluginState3 === void 0 ? void 0 : _newPluginState3.isInverted,
|
|
117
|
+
diffType: (_newPluginState4 = newPluginState) === null || _newPluginState4 === void 0 ? void 0 : _newPluginState4.diffType,
|
|
118
|
+
hideDeletedDiffs: (_newPluginState5 = newPluginState) === null || _newPluginState5 === void 0 ? void 0 : _newPluginState5.hideDeletedDiffs,
|
|
119
|
+
hideAddedDiffsUnderline: (_newPluginState6 = newPluginState) === null || _newPluginState6 === void 0 ? void 0 : _newPluginState6.hideAddedDiffsUnderline,
|
|
120
|
+
showIndicators: (_newPluginState7 = newPluginState) === null || _newPluginState7 === void 0 ? void 0 : _newPluginState7.showIndicators,
|
|
121
|
+
smartThresholds: (_newPluginState8 = newPluginState) === null || _newPluginState8 === void 0 ? void 0 : _newPluginState8.smartThresholds,
|
|
122
|
+
deletedDiffPlacement: (_newPluginState9 = newPluginState) === null || _newPluginState9 === void 0 ? void 0 : _newPluginState9.deletedDiffPlacement,
|
|
123
|
+
inlineDeletedDiffPlacement: (_newPluginState0 = newPluginState) === null || _newPluginState0 === void 0 ? void 0 : _newPluginState0.inlineDeletedDiffPlacement,
|
|
124
124
|
// SHOW_DIFF only. The scroll-to-next recalculation further down deliberately
|
|
125
125
|
// omits this so stepping through changes cannot replay the choreography.
|
|
126
|
-
reveal: (
|
|
126
|
+
reveal: (_newPluginState1 = newPluginState) === null || _newPluginState1 === void 0 ? void 0 : _newPluginState1.reveal
|
|
127
127
|
} : {})),
|
|
128
128
|
contributorTags = _calculateDiffDecorat.contributorTags,
|
|
129
129
|
decorations = _calculateDiffDecorat.decorations,
|
|
@@ -131,7 +131,7 @@ export var createPlugin = function createPlugin(config, getIntl, api, onEditorVi
|
|
|
131
131
|
// Update the decorations and their ids
|
|
132
132
|
newPluginState.decorations = decorations;
|
|
133
133
|
newPluginState.contributorTags = contributorTags;
|
|
134
|
-
if (isExtendedEnabled((
|
|
134
|
+
if (isExtendedEnabled((_newPluginState10 = newPluginState) === null || _newPluginState10 === void 0 ? void 0 : _newPluginState10.diffType)) {
|
|
135
135
|
newPluginState.diffDescriptors = diffDescriptors;
|
|
136
136
|
}
|
|
137
137
|
} else if ((meta === null || meta === void 0 ? void 0 : meta.action) === 'HIDE_DIFF') {
|
|
@@ -140,7 +140,9 @@ export var createPlugin = function createPlugin(config, getIntl, api, onEditorVi
|
|
|
140
140
|
isDisplayingChanges: false,
|
|
141
141
|
activeIndex: undefined,
|
|
142
142
|
contributorTags: [],
|
|
143
|
-
reveal: undefined
|
|
143
|
+
reveal: undefined,
|
|
144
|
+
// Per-call override — do not let it leak into the next, unrelated `showDiff` call.
|
|
145
|
+
colorScheme: undefined
|
|
144
146
|
}, isExtendedEnabled(currentPluginState.diffType) ? {
|
|
145
147
|
isInverted: false,
|
|
146
148
|
diffType: getDefaultDiffType(),
|
|
@@ -149,11 +151,11 @@ export var createPlugin = function createPlugin(config, getIntl, api, onEditorVi
|
|
|
149
151
|
diffDescriptors: []
|
|
150
152
|
} : {});
|
|
151
153
|
} else if ((meta === null || meta === void 0 ? void 0 : meta.action) === 'SCROLL_TO_NEXT' || (meta === null || meta === void 0 ? void 0 : meta.action) === 'SCROLL_TO_PREVIOUS') {
|
|
152
|
-
var
|
|
154
|
+
var _newPluginState11;
|
|
153
155
|
// Update the active index in plugin state and recalculate decorations
|
|
154
|
-
var _decorations = getScrollableDecorations(currentPluginState.decorations, newState.doc, (
|
|
156
|
+
var _decorations = getScrollableDecorations(currentPluginState.decorations, newState.doc, (_newPluginState11 = newPluginState) === null || _newPluginState11 === void 0 ? void 0 : _newPluginState11.diffType);
|
|
155
157
|
if (_decorations.length > 0) {
|
|
156
|
-
var _currentPluginState$a;
|
|
158
|
+
var _currentPluginState$a, _newPluginState$color2, _newPluginState12;
|
|
157
159
|
// Initialize to -1 if undefined so that the first "next" scroll takes us to index 0 (first change).
|
|
158
160
|
// This allows the UI to start with no selection and only highlight on first user interaction.
|
|
159
161
|
var nextIndex = (_currentPluginState$a = currentPluginState.activeIndex) !== null && _currentPluginState$a !== void 0 ? _currentPluginState$a : -1;
|
|
@@ -181,7 +183,7 @@ export var createPlugin = function createPlugin(config, getIntl, api, onEditorVi
|
|
|
181
183
|
state: newState,
|
|
182
184
|
pluginState: newPluginState,
|
|
183
185
|
nodeViewSerializer: nodeViewSerializer,
|
|
184
|
-
colorScheme: config === null || config === void 0 ? void 0 : config.colorScheme,
|
|
186
|
+
colorScheme: (_newPluginState$color2 = (_newPluginState12 = newPluginState) === null || _newPluginState12 === void 0 ? void 0 : _newPluginState12.colorScheme) !== null && _newPluginState$color2 !== void 0 ? _newPluginState$color2 : config === null || config === void 0 ? void 0 : config.colorScheme,
|
|
185
187
|
intl: getIntl(),
|
|
186
188
|
activeIndexPos: newPluginState.activeIndexPos,
|
|
187
189
|
api: api,
|
|
@@ -325,11 +325,11 @@ export var ContributorTagController = /*#__PURE__*/function () {
|
|
|
325
325
|
|
|
326
326
|
// Hand-rolled avatar stack: `@atlaskit/avatar-group` cannot render below 24px and the tag uses
|
|
327
327
|
// 16px avatars.
|
|
328
|
-
var stack = model.connectedContributor ? [].concat(_toConsumableArray(
|
|
329
|
-
contributor: user,
|
|
330
|
-
stackIndex: 1
|
|
331
|
-
}] : []), _toConsumableArray(agent ? [{
|
|
328
|
+
var stack = model.connectedContributor ? [].concat(_toConsumableArray(agent ? [{
|
|
332
329
|
contributor: agent,
|
|
330
|
+
stackIndex: 1
|
|
331
|
+
}] : []), _toConsumableArray(user ? [{
|
|
332
|
+
contributor: user,
|
|
333
333
|
stackIndex: 0
|
|
334
334
|
}] : [])) : [{
|
|
335
335
|
contributor: model.contributor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { DeletedDiffPlacement, DeletedDiffWidget, DiffContributorProfile, DiffParams, DiffStepAttribution, DiffType, PMDiffParams, RevealMode, RevealOptions, ShowDiffParams, ShowDiffPlugin, SmartDiffThresholds, StepWithAttribution, } from '../showDiffPluginType';
|
|
1
|
+
export type { ColorScheme, DeletedDiffPlacement, DeletedDiffWidget, DiffContributorProfile, DiffParams, DiffStepAttribution, DiffType, PMDiffParams, RevealMode, RevealOptions, ShowDiffParams, ShowDiffPlugin, SmartDiffThresholds, StepWithAttribution, } from '../showDiffPluginType';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Change } from 'prosemirror-changeset';
|
|
2
2
|
import type { DiffContributors, DiffStepAttribution, TagContributor } from '../../../showDiffPluginType';
|
|
3
|
-
import { type AdsAccentColor, type ColorScheme
|
|
3
|
+
import { type AdsAccentColor, type ColorScheme } from './types';
|
|
4
4
|
export type DiffAttributionSpanData = DiffStepAttribution & {
|
|
5
5
|
stepIndex: number;
|
|
6
6
|
};
|
|
@@ -31,4 +31,4 @@ export declare const createAttributionColorMap: (stepAttributions: Array<DiffSte
|
|
|
31
31
|
* back to the latest overlapping attributed step.
|
|
32
32
|
*/
|
|
33
33
|
export declare const getAttributionKeyForChange: (change: Change, attributedChanges: Change[]) => string | undefined;
|
|
34
|
-
export declare const getColorSchemeForChange: (change: Change, attributedChanges: Change[], attributionColors: Map<string, AdsAccentColor>, fallback:
|
|
34
|
+
export declare const getColorSchemeForChange: (change: Change, attributedChanges: Change[], attributionColors: Map<string, AdsAccentColor>, fallback: ColorScheme | undefined) => ColorScheme | undefined;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeps a block node rendered inside a diff widget from losing its own top margin.
|
|
3
|
+
*
|
|
4
|
+
* The editor's leading-block margin reset is written against the parent element, not the document
|
|
5
|
+
* position, so it fires wherever a text block is a first child — including inside the widget's own
|
|
6
|
+
* `span`, which is what a whole-block deletion renders into. The widget then has no margin of its
|
|
7
|
+
* own, and the block sits flush against whatever is above it, regardless of where in the document
|
|
8
|
+
* the widget landed.
|
|
9
|
+
*
|
|
10
|
+
* The margin is not re-supplied; it is never taken away. Prepending an element the reset does not
|
|
11
|
+
* select moves the real block off the leading position, so the ordinary `.ProseMirror p`,
|
|
12
|
+
* `.ProseMirror h2` and similar rules go on applying to it untouched. That is why this needs no
|
|
13
|
+
* knowledge of which margin the block should have — unlike `createNodeShapedMarginSpacer`, which
|
|
14
|
+
* replicates a margin that has already been zeroed and cannot be read back.
|
|
15
|
+
*
|
|
16
|
+
* Unconditional, because the absorber generates no box: it costs nothing in a widget holding
|
|
17
|
+
* inline content, which the reset was never going to match anyway. Deciding here instead would mean
|
|
18
|
+
* restating the reset's selector list, and a copy of another package's CSS drifts silently.
|
|
19
|
+
*/
|
|
20
|
+
export declare const absorbFirstChildMarginReset: ({ dom, testId, }: {
|
|
21
|
+
dom: HTMLElement;
|
|
22
|
+
testId: string;
|
|
23
|
+
}) => void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An empty, invisible element whose only job is to occupy a position in the DOM.
|
|
3
|
+
*
|
|
4
|
+
* At the top of the document `firstBlockNodeStyles` zeroes the top margin of whatever element
|
|
5
|
+
* follows a leading `.ProseMirror-widget`, and it does so with `!important` — which no inline style
|
|
6
|
+
* can outrank. This takes that hit so the shaped spacer after it, one position further along, keeps
|
|
7
|
+
* the margin it is there to supply.
|
|
8
|
+
*
|
|
9
|
+
* It contributes no height (no content, border or padding) and margins collapse through it, so it
|
|
10
|
+
* cannot affect layout beyond the selector it absorbs.
|
|
11
|
+
*/
|
|
12
|
+
export declare const createMarginAbsorber: ({ testId }: {
|
|
13
|
+
testId: string;
|
|
14
|
+
}) => HTMLElement;
|
|
15
|
+
/**
|
|
16
|
+
* An absorber that occupies a DOM position without generating a box.
|
|
17
|
+
*
|
|
18
|
+
* Not interchangeable with `createMarginAbsorber`: a rule that selects the *rendered* sibling of a
|
|
19
|
+
* leading widget needs an element that generates a box, and this one does not.
|
|
20
|
+
*/
|
|
21
|
+
export declare const createBoxlessMarginAbsorber: ({ testId }: {
|
|
22
|
+
testId: string;
|
|
23
|
+
}) => HTMLElement;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
import type { NodeViewSerializer } from '../../NodeViewSerializer';
|
|
3
|
+
/**
|
|
4
|
+
* An invisible element shaped like `node`, used to supply the top margin `node` no longer gets.
|
|
5
|
+
*
|
|
6
|
+
* A node at the start of its parent has its top margin reset, so a diff widget rendered above it
|
|
7
|
+
* sits flush against it. The reset cannot simply be taken off the node: the container variants skip
|
|
8
|
+
* widgets when counting — `nth-child(1 of :not(style, .ProseMirror-gapcursor, .ProseMirror-widget,
|
|
9
|
+
* span))` in layout columns, expands, sync blocks and table cells — so no amount of extra elements
|
|
10
|
+
* moves the match. That exclusion is what makes this work instead: the spacer is a
|
|
11
|
+
* `.ProseMirror-widget`, so it is never the counted first child and keeps its own margin, while the
|
|
12
|
+
* real node goes on taking the reset.
|
|
13
|
+
*
|
|
14
|
+
* The margin is not measured. Reading it off the real node is impossible — by then the reset has
|
|
15
|
+
* set it to `0`, and both `firstBlockNodeStyles` (`!important`) and block controls' `firstNodeDec`
|
|
16
|
+
* (an inline style) make it unrecoverable. Instead the spacer carries the node's own tag, classes
|
|
17
|
+
* and attributes, so the same rules that would have given the node its margin match the spacer
|
|
18
|
+
* (`.ProseMirror p`, `.ProseMirror h2`, the root-list rule, and so on).
|
|
19
|
+
*
|
|
20
|
+
* Returns `null` when the node is not safely shapeable or serialization fails.
|
|
21
|
+
*/
|
|
22
|
+
export declare const createNodeShapedMarginSpacer: ({ node, serializer, testId, }: {
|
|
23
|
+
node: PMNode;
|
|
24
|
+
serializer: NodeViewSerializer;
|
|
25
|
+
testId: string;
|
|
26
|
+
}) => HTMLElement | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Node as PMNode, ResolvedPos } from '@atlaskit/editor-prosemirror/model';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a document position, or returns `null` if it cannot be resolved.
|
|
4
|
+
*
|
|
5
|
+
* `Node.resolve` throws a `RangeError` for a position outside the document. Diff decorations are
|
|
6
|
+
* built from change ranges computed against a document that may since have moved on, so a position
|
|
7
|
+
* arriving out of range is a normal outcome rather than a defect — but an exception escaping here
|
|
8
|
+
* takes down the whole decoration set, leaving the diff unrendered.
|
|
9
|
+
*
|
|
10
|
+
* Callers are expected to treat `null` as "cannot tell" and fall back to behaviour that does not
|
|
11
|
+
* need the resolved position.
|
|
12
|
+
*/
|
|
13
|
+
export declare const safeResolve: (doc: PMNode, pos: number) => ResolvedPos | null;
|
|
@@ -6,7 +6,7 @@ import { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
|
6
6
|
import { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform-override';
|
|
7
7
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
8
8
|
import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
|
|
9
|
-
import type { ContributorTagModel, DeletedDiffPlacement, DiffDescriptor, DiffParams, DiffStepAttribution, DiffType, InlineDeletedDiffPlacement, RevealOptions, ShowDiffPlugin, SmartDiffThresholds } from '../showDiffPluginType';
|
|
9
|
+
import type { ColorScheme, ContributorTagModel, DeletedDiffPlacement, DiffDescriptor, DiffParams, DiffStepAttribution, DiffType, InlineDeletedDiffPlacement, RevealOptions, ShowDiffPlugin, SmartDiffThresholds } from '../showDiffPluginType';
|
|
10
10
|
import type { ResolvedDiffContributors } from './decorations/colorSchemes/attributions';
|
|
11
11
|
export declare const showDiffPluginKey: PluginKey<ShowDiffPluginState>;
|
|
12
12
|
export type ShowDiffPluginState = {
|
|
@@ -15,6 +15,12 @@ export type ShowDiffPluginState = {
|
|
|
15
15
|
from: number;
|
|
16
16
|
to: number;
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Per-call override, set via SHOW_DIFF meta. Falls back to the plugin's configured
|
|
20
|
+
* `DiffParams.colorScheme` (see `createPlugin`'s `config` argument) when unset, and persists
|
|
21
|
+
* across `SCROLL_TO_NEXT`/`SCROLL_TO_PREVIOUS` repaints of the same diff. Reset on HIDE_DIFF.
|
|
22
|
+
*/
|
|
23
|
+
colorScheme?: ColorScheme;
|
|
18
24
|
/** Set via SHOW_DIFF meta, after `normalizeShowDiffParams` has keyed the public list. */
|
|
19
25
|
contributors?: ResolvedDiffContributors;
|
|
20
26
|
/** Resolved per calculation, never set via meta. */
|
|
@@ -8,8 +8,16 @@ import type { UserIntentPlugin } from '@atlaskit/editor-plugin-user-intent';
|
|
|
8
8
|
import type { Node } from '@atlaskit/editor-prosemirror/model';
|
|
9
9
|
import type { Step } from '@atlaskit/editor-prosemirror/transform-override';
|
|
10
10
|
import type { SmartDiffThresholds as SmartDiffThresholdsInternal } from './pm-plugins/calculateDiff/smart/thresholds';
|
|
11
|
-
import type { ColorScheme as ResolvedColorScheme
|
|
12
|
-
|
|
11
|
+
import type { ColorScheme as ResolvedColorScheme } from './pm-plugins/decorations/colorSchemes/types';
|
|
12
|
+
/**
|
|
13
|
+
* `'standard'` (purple insertions, default) and `'traditional'` (green/red) are the two
|
|
14
|
+
* plugin-configured schemes. The remaining accent names are the attribution palette used for
|
|
15
|
+
* per-contributor colouring (`stepsWithAttribution`) — callers of the imperative `showDiff`
|
|
16
|
+
* command (see `PMDiffParams.colorScheme`) can also pass one of these directly to match a
|
|
17
|
+
* specific contributor's colour outside of attribution mode, for example matching a Review
|
|
18
|
+
* moment diff to the streaming highlight of the agent that produced it.
|
|
19
|
+
*/
|
|
20
|
+
export type ColorScheme = ResolvedColorScheme;
|
|
13
21
|
export type DiffType = 'inline' | 'block' | 'step' | 'smart';
|
|
14
22
|
/**
|
|
15
23
|
* Attribution for a ProseMirror step.
|
|
@@ -143,6 +151,13 @@ export type DiffParams = {
|
|
|
143
151
|
steps: StepJson[];
|
|
144
152
|
};
|
|
145
153
|
export type PMDiffParams = {
|
|
154
|
+
/**
|
|
155
|
+
* Overrides the colour scheme for this repaint only. Unset falls back to the plugin's
|
|
156
|
+
* configured `DiffParams.colorScheme` (ultimately `'standard'`, purple). Persists across
|
|
157
|
+
* `SCROLL_TO_NEXT`/`SCROLL_TO_PREVIOUS` repaints of the same diff, and resets when the diff
|
|
158
|
+
* is hidden.
|
|
159
|
+
*/
|
|
160
|
+
colorScheme?: ColorScheme;
|
|
146
161
|
/**
|
|
147
162
|
* For the `smart` diffType, where node/paragraph-level deleted content is rendered relative to
|
|
148
163
|
* the new content. Defaults to `'top'`. Ignored for other diff types.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-show-diff",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.1.1",
|
|
4
4
|
"description": "ShowDiff plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
"registry": "https://registry.npmjs.org/"
|
|
9
9
|
},
|
|
10
10
|
"atlassian": {
|
|
11
|
+
"website": {
|
|
12
|
+
"tags": [
|
|
13
|
+
"platform-labs"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
11
16
|
"team": "Editor: Lego",
|
|
12
17
|
"releaseModel": "continuous",
|
|
13
18
|
"singleton": true
|
|
@@ -20,7 +25,7 @@
|
|
|
20
25
|
"sideEffects": false,
|
|
21
26
|
"atlaskit:src": "src/index.ts",
|
|
22
27
|
"dependencies": {
|
|
23
|
-
"@atlaskit/adf-schema": "^57.
|
|
28
|
+
"@atlaskit/adf-schema": "^57.5.0",
|
|
24
29
|
"@atlaskit/avatar": "^28.0.0",
|
|
25
30
|
"@atlaskit/custom-steps": "^1.1.0",
|
|
26
31
|
"@atlaskit/editor-plugin-accessibility-utils": "^18.0.0",
|
|
@@ -33,8 +38,8 @@
|
|
|
33
38
|
"@atlaskit/platform-feature-experiments": "^0.3.0",
|
|
34
39
|
"@atlaskit/platform-feature-flags": "^2.2.0",
|
|
35
40
|
"@atlaskit/primitives": "^22.5.0",
|
|
36
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
37
|
-
"@atlaskit/tokens": "^
|
|
41
|
+
"@atlaskit/tmp-editor-statsig": "^199.0.0",
|
|
42
|
+
"@atlaskit/tokens": "^18.0.0",
|
|
38
43
|
"@babel/runtime": "^7.0.0",
|
|
39
44
|
"@compiled/react": "^1.0.2",
|
|
40
45
|
"bind-event-listener": "^3.0.0",
|
|
@@ -58,14 +63,14 @@
|
|
|
58
63
|
"@atlassian/confluence-presets": "workspace:^",
|
|
59
64
|
"@atlassian/content-reconciliation": "^0.1.3506",
|
|
60
65
|
"@atlassian/editor-ai-injected-editors": "^32.0.0",
|
|
61
|
-
"@atlassian/editor-plugin-ai": "^72.
|
|
66
|
+
"@atlassian/editor-plugin-ai": "^72.3.0",
|
|
62
67
|
"@atlassian/structured-docs-types": "workspace:^",
|
|
63
68
|
"react": "^19.2.0",
|
|
64
69
|
"react-dom": "^19.2.0",
|
|
65
70
|
"react-intl": "^7.0.0"
|
|
66
71
|
},
|
|
67
72
|
"peerDependencies": {
|
|
68
|
-
"@atlaskit/editor-common": "^122.
|
|
73
|
+
"@atlaskit/editor-common": "^122.11.0",
|
|
69
74
|
"react": "^18.2.0 || ^19.2.0",
|
|
70
75
|
"react-dom": "^18.2.0 || ^19.2.0",
|
|
71
76
|
"react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
|
|
@@ -80,6 +85,9 @@
|
|
|
80
85
|
"platform_editor_ai_show_diff_patch_1": {
|
|
81
86
|
"type": "boolean"
|
|
82
87
|
},
|
|
88
|
+
"platform_editor_ai_show_diff_patch_2": {
|
|
89
|
+
"type": "boolean"
|
|
90
|
+
},
|
|
83
91
|
"platform_editor_ai_smart_diff": {
|
|
84
92
|
"type": "boolean"
|
|
85
93
|
},
|