@atlaskit/editor-plugin-show-diff 10.5.0 → 10.5.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.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/pm-plugins/calculateDiff/calculateDiffDecorations.js +30 -3
- package/dist/cjs/pm-plugins/decorations/colorSchemes/standard.js +14 -1
- package/dist/cjs/pm-plugins/decorations/colorSchemes/traditional.js +15 -2
- package/dist/cjs/pm-plugins/decorations/createAnchorDecorationWidgets.js +52 -18
- package/dist/cjs/pm-plugins/decorations/createBlockChangedDecoration.js +6 -1
- package/dist/cjs/pm-plugins/decorations/createInlineChangedDecoration.js +23 -4
- package/dist/cjs/pm-plugins/decorations/utils/getAttrChangeRanges.js +64 -4
- package/dist/es2019/pm-plugins/calculateDiff/calculateDiffDecorations.js +30 -3
- package/dist/es2019/pm-plugins/decorations/colorSchemes/standard.js +13 -0
- package/dist/es2019/pm-plugins/decorations/colorSchemes/traditional.js +14 -1
- package/dist/es2019/pm-plugins/decorations/createAnchorDecorationWidgets.js +60 -28
- package/dist/es2019/pm-plugins/decorations/createBlockChangedDecoration.js +8 -3
- package/dist/es2019/pm-plugins/decorations/createInlineChangedDecoration.js +16 -1
- package/dist/es2019/pm-plugins/decorations/utils/getAttrChangeRanges.js +53 -4
- package/dist/esm/pm-plugins/calculateDiff/calculateDiffDecorations.js +30 -3
- package/dist/esm/pm-plugins/decorations/colorSchemes/standard.js +13 -0
- package/dist/esm/pm-plugins/decorations/colorSchemes/traditional.js +14 -1
- package/dist/esm/pm-plugins/decorations/createAnchorDecorationWidgets.js +51 -18
- package/dist/esm/pm-plugins/decorations/createBlockChangedDecoration.js +8 -3
- package/dist/esm/pm-plugins/decorations/createInlineChangedDecoration.js +23 -4
- package/dist/esm/pm-plugins/decorations/utils/getAttrChangeRanges.js +63 -4
- package/dist/types/pm-plugins/decorations/colorSchemes/standard.d.ts +1 -0
- package/dist/types/pm-plugins/decorations/colorSchemes/traditional.d.ts +2 -1
- package/dist/types/pm-plugins/decorations/createInlineChangedDecoration.d.ts +4 -1
- package/dist/types/pm-plugins/decorations/utils/getAttrChangeRanges.d.ts +11 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-show-diff
|
|
2
2
|
|
|
3
|
+
## 10.5.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`75c7e6a9aa4ec`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/75c7e6a9aa4ec) -
|
|
8
|
+
[ux] Improve showing diff for attribute changes for inline nodes.
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 10.5.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [`ded72f3ee293f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ded72f3ee293f) -
|
|
16
|
+
Fix table diff cell overlays to use rounded corners for delete row diffs when
|
|
17
|
+
platform_editor_table_diff_rounded_corners is enabled
|
|
18
|
+
- [`11b7096b9b80c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/11b7096b9b80c) -
|
|
19
|
+
CCI-17981: Fix diff indicator misalignment on page resize by observing measured DOM elements for
|
|
20
|
+
size changes
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
|
|
3
23
|
## 10.5.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
|
@@ -427,16 +427,43 @@ var calculateDiffDecorationsInner = function calculateDiffDecorationsInner(_ref3
|
|
|
427
427
|
isInserted: true
|
|
428
428
|
})));
|
|
429
429
|
});
|
|
430
|
-
(0, _getAttrChangeRanges.getAttrChangeRanges)(tr.doc, attrSteps).forEach(function (change) {
|
|
430
|
+
(0, _getAttrChangeRanges.getAttrChangeRanges)(tr.doc, attrSteps, originalDoc).forEach(function (change) {
|
|
431
431
|
if (change.isInline) {
|
|
432
|
-
// Inline nodes (e.g. date) need an inline decoration rather than a block decoration
|
|
432
|
+
// Inline nodes (e.g. date, emoji, mention, status) need an inline decoration rather than a block decoration
|
|
433
433
|
var isActive = activeIndexPos && change.fromB === activeIndexPos.from && change.toB === activeIndexPos.to;
|
|
434
|
+
var isAtomicInlineNodeFlag = (0, _expValEquals.expValEquals)('platform_editor_improve_inline_diffs', 'isEnabled', true);
|
|
434
435
|
decorations.push.apply(decorations, (0, _toConsumableArray2.default)((0, _createInlineChangedDecoration.createInlineChangedDecoration)({
|
|
435
436
|
change: change,
|
|
436
437
|
colorScheme: colorScheme,
|
|
437
438
|
isActive: isActive,
|
|
438
|
-
isInserted: true
|
|
439
|
+
isInserted: true,
|
|
440
|
+
isAtomicInlineNode: isAtomicInlineNodeFlag,
|
|
441
|
+
inlineNodeName: change.inlineNodeName,
|
|
442
|
+
// Suppress the border-bottom underline for atomic inline nodeviews —
|
|
443
|
+
// it doesn't render on custom nodeview DOM elements and is unnecessary noise.
|
|
444
|
+
hideAddedDiffsUnderline: isAtomicInlineNodeFlag,
|
|
445
|
+
diffType: diffType
|
|
439
446
|
})));
|
|
447
|
+
// If we have the original node position, also render the old node as a "deleted" widget
|
|
448
|
+
// so the user can see what it looked like before the change.
|
|
449
|
+
if (change.fromA !== undefined && change.toA !== undefined && (0, _expValEquals.expValEquals)('platform_editor_improve_inline_diffs', 'isEnabled', true)) {
|
|
450
|
+
decorations.push.apply(decorations, (0, _toConsumableArray2.default)((0, _createNodeChangedDecorationWidget.createNodeChangedDecorationWidget)({
|
|
451
|
+
change: {
|
|
452
|
+
fromA: change.fromA,
|
|
453
|
+
toA: change.toA,
|
|
454
|
+
fromB: change.fromB,
|
|
455
|
+
toB: change.toB,
|
|
456
|
+
deleted: []
|
|
457
|
+
},
|
|
458
|
+
doc: originalDoc,
|
|
459
|
+
nodeViewSerializer: nodeViewSerializer,
|
|
460
|
+
colorScheme: colorScheme,
|
|
461
|
+
newDoc: tr.doc,
|
|
462
|
+
intl: intl,
|
|
463
|
+
activeIndexPos: activeIndexPos,
|
|
464
|
+
isInserted: false
|
|
465
|
+
})));
|
|
466
|
+
}
|
|
440
467
|
} else {
|
|
441
468
|
decorations.push.apply(decorations, (0, _toConsumableArray2.default)(calculateNodesForBlockDecoration({
|
|
442
469
|
doc: tr.doc,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.standardDecorationMarkerVariable = exports.editingStyleRuleNode = exports.editingStyleQuoteNode = exports.editingStyleNode = exports.editingStyleExtendedNoUnderline = exports.editingStyleExtended = exports.editingStyleCardBlockNode = exports.editingStyleActiveExtendedNoUnderline = exports.editingStyleActiveExtended = exports.editingStyleActive = exports.editingStyle = exports.editingContentStyleInBlockExtendedNoUnderline = exports.editingContentStyleInBlockExtended = exports.editingContentStyleInBlock = exports.deletedStyleQuoteNodeWithLozengeActive = exports.deletedStyleQuoteNodeWithLozenge = exports.deletedStyleQuoteNode = exports.deletedRowStyle = exports.deletedInlineContentStyleExtended = exports.deletedDecorationMarkerVariable = exports.deletedContentStyleUnbounded = exports.deletedContentStyleNew = exports.deletedContentStyleActive = exports.deletedContentStyle = exports.deletedCellOverlayStyle = exports.deletedBlockOutlineRoundedActive = exports.deletedBlockOutlineRounded = exports.deletedBlockOutlineActive = exports.deletedBlockOutline = exports.addedCellOverlayStyle = void 0;
|
|
6
|
+
exports.standardDecorationMarkerVariable = exports.editingStyleRuleNode = exports.editingStyleQuoteNode = exports.editingStyleNode = exports.editingStyleExtendedNoUnderline = exports.editingStyleExtended = exports.editingStyleCardBlockNode = exports.editingStyleActiveExtendedNoUnderline = exports.editingStyleActiveExtended = exports.editingStyleActive = exports.editingStyle = exports.editingContentStyleInBlockExtendedNoUnderline = exports.editingContentStyleInBlockExtended = exports.editingContentStyleInBlock = exports.deletedStyleQuoteNodeWithLozengeActive = exports.deletedStyleQuoteNodeWithLozenge = exports.deletedStyleQuoteNode = exports.deletedRowStyle = exports.deletedInlineContentStyleExtended = exports.deletedDecorationMarkerVariable = exports.deletedContentStyleUnbounded = exports.deletedContentStyleNew = exports.deletedContentStyleActive = exports.deletedContentStyle = exports.deletedCellOverlayStyle = exports.deletedCellOverlayRoundedStyle = exports.deletedBlockOutlineRoundedActive = exports.deletedBlockOutlineRounded = exports.deletedBlockOutlineActive = exports.deletedBlockOutline = exports.addedCellOverlayStyle = void 0;
|
|
7
7
|
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
8
8
|
// delete on platform_editor_diff_plugin_extended cleanup
|
|
9
9
|
var editingStyle = exports.editingStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
@@ -186,4 +186,17 @@ var deletedCellOverlayStyle = exports.deletedCellOverlayStyle = (0, _lazyNodeVie
|
|
|
186
186
|
zIndex: 1,
|
|
187
187
|
outline: "1px solid ".concat("var(--ds-border-accent-gray, #7D818A)"),
|
|
188
188
|
pointerEvents: 'none'
|
|
189
|
+
});
|
|
190
|
+
var deletedCellOverlayRoundedStyle = exports.deletedCellOverlayRoundedStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
191
|
+
position: 'absolute',
|
|
192
|
+
top: 0,
|
|
193
|
+
left: 0,
|
|
194
|
+
width: '100%',
|
|
195
|
+
height: '100%',
|
|
196
|
+
backgroundColor: "rgba(from ".concat("var(--ds-background-accent-gray-subtlest, #F0F1F2)", " r g b / 0.5)"),
|
|
197
|
+
zIndex: 2,
|
|
198
|
+
outline: "1px solid ".concat("var(--ds-border-accent-gray, #7D818A)"),
|
|
199
|
+
pointerEvents: 'none',
|
|
200
|
+
border: 'inherit',
|
|
201
|
+
borderRadius: 'inherit'
|
|
189
202
|
});
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.deletedTraditionalStyleQuoteNodeActive = exports.deletedTraditionalStyleQuoteNode = exports.deletedTraditionalRowStyle = exports.deletedTraditionalContentStyleUnboundedActive = exports.deletedTraditionalContentStyleUnbounded = exports.deletedTraditionalCellOverlayStyle = exports.deletedTraditionalBlockOutlineRoundedNew = exports.deletedTraditionalBlockOutlineRoundedActive = exports.deletedTraditionalBlockOutlineRounded = exports.deletedTraditionalBlockOutlineNew = exports.deletedTraditionalBlockOutlineActive = exports.deletedTraditionalBlockOutline = void 0;
|
|
7
|
+
exports.deletedTraditionalStyleQuoteNodeActive = exports.deletedTraditionalStyleQuoteNode = exports.deletedTraditionalRowStyle = exports.deletedTraditionalContentStyleUnboundedActive = exports.deletedTraditionalContentStyleUnbounded = exports.deletedTraditionalCellOverlayStyle = exports.deletedTraditionalCellOverlayRoundedStyle = exports.deletedTraditionalBlockOutlineRoundedNew = exports.deletedTraditionalBlockOutlineRoundedActive = exports.deletedTraditionalBlockOutlineRounded = exports.deletedTraditionalBlockOutlineNew = exports.deletedTraditionalBlockOutlineActive = exports.deletedTraditionalBlockOutline = void 0;
|
|
8
8
|
exports.getDeletedTraditionalInlineStyle = getDeletedTraditionalInlineStyle;
|
|
9
9
|
exports.traditionalStyleRuleNodeNew = exports.traditionalStyleRuleNodeActive = exports.traditionalStyleRuleNode = exports.traditionalStyleQuoteNodeNew = exports.traditionalStyleQuoteNodeActive = exports.traditionalStyleQuoteNode = exports.traditionalStyleNodeNew = exports.traditionalStyleNodeActive = exports.traditionalStyleNode = exports.traditionalStyleCardBlockNodeNew = exports.traditionalStyleCardBlockNodeActive = exports.traditionalStyleCardBlockNode = exports.traditionalInsertStyleActive = exports.traditionalInsertStyle = exports.traditionalDeletedDecorationMarkerVariableNew = exports.traditionalDeletedDecorationMarkerVariableActive = exports.traditionalDeletedDecorationMarkerVariable = exports.traditionalDecorationMarkerVariableNew = exports.traditionalDecorationMarkerVariableActive = exports.traditionalDecorationMarkerVariable = exports.traditionalAddedCellOverlayStyleNew = exports.traditionalAddedCellOverlayStyle = void 0;
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -93,7 +93,7 @@ var deletedTraditionalBlockOutlineRoundedActive = exports.deletedTraditionalBloc
|
|
|
93
93
|
borderRadius: "calc(".concat("var(--ds-radius-xsmall, 2px)", " + 1px)")
|
|
94
94
|
});
|
|
95
95
|
|
|
96
|
-
/** Scroll-navigation “new” emphasis: 4px ring
|
|
96
|
+
/** Scroll-navigation “new” emphasis: 4px ring. */
|
|
97
97
|
var deletedTraditionalBlockOutlineNew = exports.deletedTraditionalBlockOutlineNew = (0, _lazyNodeView.convertToInlineCss)({
|
|
98
98
|
boxShadow: "0 0 0 4px ".concat("var(--ds-background-accent-red-subtlest, #FFECEB)"),
|
|
99
99
|
borderRadius: "var(--ds-radius-small, 4px)"
|
|
@@ -214,4 +214,17 @@ var deletedTraditionalCellOverlayStyle = exports.deletedTraditionalCellOverlaySt
|
|
|
214
214
|
zIndex: 1,
|
|
215
215
|
outline: "1px solid ".concat("var(--ds-border-disabled, #0515240F)"),
|
|
216
216
|
pointerEvents: 'none'
|
|
217
|
+
});
|
|
218
|
+
var deletedTraditionalCellOverlayRoundedStyle = exports.deletedTraditionalCellOverlayRoundedStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
219
|
+
position: 'absolute',
|
|
220
|
+
top: 0,
|
|
221
|
+
left: 0,
|
|
222
|
+
width: '100%',
|
|
223
|
+
height: '100%',
|
|
224
|
+
backgroundColor: "rgba(from ".concat("var(--ds-background-accent-gray-subtlest, #F0F1F2)", " r g b / 0.5)"),
|
|
225
|
+
zIndex: 2,
|
|
226
|
+
outline: "1px solid ".concat("var(--ds-border-disabled, #0515240F)"),
|
|
227
|
+
pointerEvents: 'none',
|
|
228
|
+
border: 'inherit',
|
|
229
|
+
borderRadius: 'inherit'
|
|
217
230
|
});
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.createLeftAnchorWidget = exports.createInlineIndicatorAnchorWidgets = exports.createDocMarginAnchorWidget = exports.createBlockIndicatorAnchorWidgets = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
9
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
8
10
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
9
11
|
var _decorationKeys = require("./decorationKeys");
|
|
12
|
+
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; }
|
|
13
|
+
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) { (0, _defineProperty2.default)(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; }
|
|
10
14
|
/**
|
|
11
15
|
* Resolves the doc-level block node (table/expand/layout) for `from`, along with
|
|
12
16
|
* the position right before it (`beforePos`). Falls back to `$from.nodeAfter`
|
|
@@ -138,6 +142,7 @@ var createLeftAnchorWidget = exports.createLeftAnchorWidget = function createLef
|
|
|
138
142
|
diffId: diffId,
|
|
139
143
|
anchorType: _decorationKeys.AnchorTypeKey.left
|
|
140
144
|
});
|
|
145
|
+
var leftResizeObserver;
|
|
141
146
|
return _view.Decoration.widget(beforePos, function (view, getPos) {
|
|
142
147
|
// Outer span stays in the flow but takes up no space.
|
|
143
148
|
var wrapper = document.createElement('div');
|
|
@@ -152,13 +157,7 @@ var createLeftAnchorWidget = exports.createLeftAnchorWidget = function createLef
|
|
|
152
157
|
anchor.style.setProperty('left', "calc(50% - ".concat((edgeCase === null || edgeCase === void 0 ? void 0 : edgeCase.leftOffset) || 0, "px)"));
|
|
153
158
|
anchor.style.setProperty('transform', 'translateX(-50%)');
|
|
154
159
|
wrapper.appendChild(anchor);
|
|
155
|
-
|
|
156
|
-
// The block DOM may not be settled synchronously (e.g. after a
|
|
157
|
-
// transaction), so defer the measurement like the gap cursor does.
|
|
158
|
-
requestAnimationFrame(function () {
|
|
159
|
-
// The widget may have been unmounted; bail if its position is gone.
|
|
160
|
-
// We still measure the stable block node position, not the widget's
|
|
161
|
-
// own position.
|
|
160
|
+
var measureWidth = function measureWidth() {
|
|
162
161
|
if (getPos() === undefined || edgeCase.measurePos === undefined) {
|
|
163
162
|
return;
|
|
164
163
|
}
|
|
@@ -167,13 +166,33 @@ var createLeftAnchorWidget = exports.createLeftAnchorWidget = function createLef
|
|
|
167
166
|
// The left anchor only needs the container width so the
|
|
168
167
|
// IndicatorBar can align against the block's horizontal extent.
|
|
169
168
|
anchor.style.setProperty('width', "".concat(dom.offsetWidth, "px"));
|
|
169
|
+
|
|
170
|
+
// Observe the measured element for size changes (e.g. page
|
|
171
|
+
// resize) so the indicator stays aligned. CCI-17981
|
|
172
|
+
if (!leftResizeObserver) {
|
|
173
|
+
leftResizeObserver = new ResizeObserver(function () {
|
|
174
|
+
if (getPos() !== undefined) {
|
|
175
|
+
anchor.style.setProperty('width', "".concat(dom.offsetWidth, "px"));
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
leftResizeObserver.observe(dom);
|
|
179
|
+
}
|
|
170
180
|
}
|
|
171
|
-
}
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
// The block DOM may not be settled synchronously (e.g. after a
|
|
184
|
+
// transaction), so defer the measurement like the gap cursor does.
|
|
185
|
+
requestAnimationFrame(measureWidth);
|
|
172
186
|
return wrapper;
|
|
173
|
-
}, (0, _decorationKeys.buildAnchorDecorationSpec)({
|
|
187
|
+
}, _objectSpread(_objectSpread({}, (0, _decorationKeys.buildAnchorDecorationSpec)({
|
|
174
188
|
diffId: diffId,
|
|
175
189
|
anchorType: _decorationKeys.AnchorTypeKey.left,
|
|
176
190
|
side: -999
|
|
191
|
+
})), {}, {
|
|
192
|
+
destroy: function destroy() {
|
|
193
|
+
var _leftResizeObserver;
|
|
194
|
+
return (_leftResizeObserver = leftResizeObserver) === null || _leftResizeObserver === void 0 ? void 0 : _leftResizeObserver.disconnect();
|
|
195
|
+
}
|
|
177
196
|
}));
|
|
178
197
|
};
|
|
179
198
|
|
|
@@ -234,6 +253,7 @@ var createBlockIndicatorAnchorWidgets = exports.createBlockIndicatorAnchorWidget
|
|
|
234
253
|
// Measure the actual cell/row DOM when inside one; otherwise measure the
|
|
235
254
|
// widget's own position.
|
|
236
255
|
var measurePos = parentCellOrRow ? parentCellOrRow.pos : from;
|
|
256
|
+
var blockResizeObserver;
|
|
237
257
|
var blockWidget = _view.Decoration.widget(widgetPos, function (view, getPos) {
|
|
238
258
|
// Outer span stays in the flow but takes up no space.
|
|
239
259
|
var wrapper = document.createElement('span');
|
|
@@ -245,13 +265,7 @@ var createBlockIndicatorAnchorWidgets = exports.createBlockIndicatorAnchorWidget
|
|
|
245
265
|
anchor.style.setProperty('position', 'absolute');
|
|
246
266
|
anchor.style.setProperty('anchor-name', "--".concat(blockAnchorKey));
|
|
247
267
|
wrapper.appendChild(anchor);
|
|
248
|
-
|
|
249
|
-
// The block DOM may not be settled synchronously (e.g. after a
|
|
250
|
-
// transaction), so defer the measurement like the gap cursor does.
|
|
251
|
-
requestAnimationFrame(function () {
|
|
252
|
-
// The widget may have been unmounted; bail if its position is gone.
|
|
253
|
-
// We still measure the stable cell/row node position, not the
|
|
254
|
-
// widget's own position.
|
|
268
|
+
var _measureBlock = function measureBlock() {
|
|
255
269
|
if (getPos() === undefined) {
|
|
256
270
|
return;
|
|
257
271
|
}
|
|
@@ -270,15 +284,35 @@ var createBlockIndicatorAnchorWidgets = exports.createBlockIndicatorAnchorWidget
|
|
|
270
284
|
// The offset already accounts for the cell/row's position, so the
|
|
271
285
|
// margin-top must not be double-applied.
|
|
272
286
|
anchor.style.setProperty('margin-top', '0px');
|
|
287
|
+
|
|
288
|
+
// Observe the measured element for size changes (e.g. page
|
|
289
|
+
// resize) so the indicator stays aligned. CCI-17981
|
|
290
|
+
if (!blockResizeObserver) {
|
|
291
|
+
blockResizeObserver = new ResizeObserver(function () {
|
|
292
|
+
if (getPos() !== undefined) {
|
|
293
|
+
_measureBlock();
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
blockResizeObserver.observe(dom);
|
|
297
|
+
}
|
|
273
298
|
}
|
|
274
|
-
}
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
// The block DOM may not be settled synchronously (e.g. after a
|
|
302
|
+
// transaction), so defer the measurement like the gap cursor does.
|
|
303
|
+
requestAnimationFrame(_measureBlock);
|
|
275
304
|
return wrapper;
|
|
276
|
-
}, (0, _decorationKeys.buildAnchorDecorationSpec)({
|
|
305
|
+
}, _objectSpread(_objectSpread({}, (0, _decorationKeys.buildAnchorDecorationSpec)({
|
|
277
306
|
diffId: diffId,
|
|
278
307
|
// Reuse the `from` anchor type slot; the generated key intentionally
|
|
279
308
|
// omits the anchor type so the single element backs top/bottom/left.
|
|
280
309
|
anchorType: _decorationKeys.AnchorTypeKey.from,
|
|
281
310
|
side: -1
|
|
311
|
+
})), {}, {
|
|
312
|
+
destroy: function destroy() {
|
|
313
|
+
var _blockResizeObserver;
|
|
314
|
+
return (_blockResizeObserver = blockResizeObserver) === null || _blockResizeObserver === void 0 ? void 0 : _blockResizeObserver.disconnect();
|
|
315
|
+
}
|
|
282
316
|
}));
|
|
283
317
|
return [blockWidget].concat(maybeLeftAnchor);
|
|
284
318
|
};
|
|
@@ -8,6 +8,7 @@ exports.createBlockChangedDecoration = void 0;
|
|
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
9
|
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
10
10
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
11
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
11
12
|
var _isExtendedEnabled = require("../isExtendedEnabled");
|
|
12
13
|
var _standard = require("./colorSchemes/standard");
|
|
13
14
|
var _traditional = require("./colorSchemes/traditional");
|
|
@@ -155,7 +156,11 @@ var createBlockChangedDecoration = exports.createBlockChangedDecoration = functi
|
|
|
155
156
|
var style;
|
|
156
157
|
if ((0, _isExtendedEnabled.isExtendedEnabled)(diffType) && ['tableCell', 'tableHeader'].includes(change.name)) {
|
|
157
158
|
var cellOverlay = document.createElement('div');
|
|
158
|
-
var
|
|
159
|
+
var isTraditional = colorScheme === 'traditional';
|
|
160
|
+
var isRoundedTable = (0, _expValEquals.expValEquals)('platform_editor_table_diff_rounded_corners', 'isEnabled', true);
|
|
161
|
+
var addedCellStyle = isTraditional ? _traditional.traditionalAddedCellOverlayStyle : _standard.addedCellOverlayStyle;
|
|
162
|
+
var deletedCellStyle = isTraditional ? isRoundedTable ? _traditional.deletedTraditionalCellOverlayRoundedStyle : _traditional.deletedTraditionalCellOverlayStyle : isRoundedTable ? _standard.deletedCellOverlayRoundedStyle : _standard.deletedCellOverlayStyle;
|
|
163
|
+
var cellOverlayStyle = isInserted ? addedCellStyle : deletedCellStyle;
|
|
159
164
|
cellOverlay.setAttribute('style', cellOverlayStyle);
|
|
160
165
|
decorations.push(
|
|
161
166
|
// change.to - 1 to position the overlay inside the end of the cell
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.createInlineChangedDecoration = void 0;
|
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
10
11
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
11
12
|
var _isExtendedEnabled = require("../isExtendedEnabled");
|
|
@@ -13,9 +14,21 @@ var _standard = require("./colorSchemes/standard");
|
|
|
13
14
|
var _traditional = require("./colorSchemes/traditional");
|
|
14
15
|
var _createAnchorDecorationWidgets = require("./createAnchorDecorationWidgets");
|
|
15
16
|
var _decorationKeys = require("./decorationKeys");
|
|
17
|
+
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; }
|
|
18
|
+
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) { (0, _defineProperty2.default)(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; }
|
|
16
19
|
var displayNoneStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
17
20
|
display: 'none'
|
|
18
21
|
});
|
|
22
|
+
var getAtomicInlineNodeClassName = function getAtomicInlineNodeClassName(inlineNodeName, colorScheme) {
|
|
23
|
+
var classNames = ['show-diff-atomic-inline-changed'];
|
|
24
|
+
if (inlineNodeName) {
|
|
25
|
+
classNames.push("show-diff-atomic-inline-changed-".concat(inlineNodeName));
|
|
26
|
+
}
|
|
27
|
+
if (colorScheme === 'traditional') {
|
|
28
|
+
classNames.push('show-diff-atomic-inline-changed-traditional');
|
|
29
|
+
}
|
|
30
|
+
return classNames.join(' ');
|
|
31
|
+
};
|
|
19
32
|
/**
|
|
20
33
|
* Inline decoration used for insertions as the content already exists in the document
|
|
21
34
|
*
|
|
@@ -30,6 +43,8 @@ var createInlineChangedDecoration = exports.createInlineChangedDecoration = func
|
|
|
30
43
|
isActive = _ref$isActive === void 0 ? false : _ref$isActive,
|
|
31
44
|
_ref$isInserted = _ref.isInserted,
|
|
32
45
|
isInserted = _ref$isInserted === void 0 ? true : _ref$isInserted,
|
|
46
|
+
_ref$isAtomicInlineNo = _ref.isAtomicInlineNode,
|
|
47
|
+
isAtomicInlineNode = _ref$isAtomicInlineNo === void 0 ? false : _ref$isAtomicInlineNo,
|
|
33
48
|
_ref$shouldHideDelete = _ref.shouldHideDeleted,
|
|
34
49
|
shouldHideDeleted = _ref$shouldHideDelete === void 0 ? false : _ref$shouldHideDelete,
|
|
35
50
|
_ref$showIndicators = _ref.showIndicators,
|
|
@@ -37,7 +52,8 @@ var createInlineChangedDecoration = exports.createInlineChangedDecoration = func
|
|
|
37
52
|
doc = _ref.doc,
|
|
38
53
|
diffType = _ref.diffType,
|
|
39
54
|
_ref$hideAddedDiffsUn = _ref.hideAddedDiffsUnderline,
|
|
40
|
-
hideAddedDiffsUnderline = _ref$hideAddedDiffsUn === void 0 ? false : _ref$hideAddedDiffsUn
|
|
55
|
+
hideAddedDiffsUnderline = _ref$hideAddedDiffsUn === void 0 ? false : _ref$hideAddedDiffsUn,
|
|
56
|
+
inlineNodeName = _ref.inlineNodeName;
|
|
41
57
|
var diffId = crypto.randomUUID();
|
|
42
58
|
if (shouldHideDeleted) {
|
|
43
59
|
return [_view.Decoration.inline(change.fromB, change.toB, {
|
|
@@ -76,10 +92,13 @@ var createInlineChangedDecoration = exports.createInlineChangedDecoration = func
|
|
|
76
92
|
style = isActive ? _standard.editingStyleActive : _standard.editingStyle;
|
|
77
93
|
}
|
|
78
94
|
}
|
|
79
|
-
var decorations = [_view.Decoration.inline(change.fromB, change.toB, {
|
|
80
|
-
style: style
|
|
95
|
+
var decorations = [_view.Decoration.inline(change.fromB, change.toB, _objectSpread(_objectSpread({
|
|
96
|
+
style: style
|
|
97
|
+
}, isAtomicInlineNode && isInserted && {
|
|
98
|
+
class: getAtomicInlineNodeClassName(inlineNodeName, colorScheme)
|
|
99
|
+
}), {}, {
|
|
81
100
|
'data-testid': 'show-diff-changed-decoration'
|
|
82
|
-
}, (0, _decorationKeys.buildDiffDecorationSpec)({
|
|
101
|
+
}), (0, _decorationKeys.buildDiffDecorationSpec)({
|
|
83
102
|
decorationType: 'inline',
|
|
84
103
|
diffId: diffId,
|
|
85
104
|
isActive: isActive
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.stepIsValidAttrChange = exports.getAttrChangeRanges = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
9
|
var _steps = require("@atlaskit/adf-schema/steps");
|
|
8
10
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
11
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
12
|
+
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; }
|
|
13
|
+
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) { (0, _defineProperty2.default)(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; }
|
|
9
14
|
var filterUndefined = function filterUndefined(x) {
|
|
10
15
|
return !!x;
|
|
11
16
|
};
|
|
@@ -19,6 +24,26 @@ var dateAttrs = ['timestamp'];
|
|
|
19
24
|
// Attribute that indicates a task item state change
|
|
20
25
|
var taskItemAttrs = ['state'];
|
|
21
26
|
|
|
27
|
+
// Attributes that indicate an emoji change
|
|
28
|
+
var emojiAttrs = ['shortName', 'id', 'text'];
|
|
29
|
+
|
|
30
|
+
// Attributes that indicate a mention change (who is mentioned)
|
|
31
|
+
var mentionAttrs = ['id', 'text'];
|
|
32
|
+
|
|
33
|
+
// Attributes that indicate a status change (label or colour)
|
|
34
|
+
var statusAttrs = ['text', 'color'];
|
|
35
|
+
|
|
36
|
+
// Map of node type name → the attrs that represent a meaningful content change for that node
|
|
37
|
+
var inlineNodeAttrMap = {
|
|
38
|
+
date: dateAttrs,
|
|
39
|
+
emoji: emojiAttrs,
|
|
40
|
+
mention: mentionAttrs,
|
|
41
|
+
status: statusAttrs
|
|
42
|
+
};
|
|
43
|
+
var isInlineAttrChangeNodeName = function isInlineAttrChangeNodeName(nodeName) {
|
|
44
|
+
return nodeName in inlineNodeAttrMap;
|
|
45
|
+
};
|
|
46
|
+
|
|
22
47
|
// Attributes excluded from extension change detection (not meaningful content changes)
|
|
23
48
|
var extensionExcludedAttrs = ['localId'];
|
|
24
49
|
|
|
@@ -33,7 +58,7 @@ var getStepAttrs = function getStepAttrs(step) {
|
|
|
33
58
|
}
|
|
34
59
|
return [];
|
|
35
60
|
};
|
|
36
|
-
var getAttrChangeRanges = exports.getAttrChangeRanges = function getAttrChangeRanges(doc, steps) {
|
|
61
|
+
var getAttrChangeRanges = exports.getAttrChangeRanges = function getAttrChangeRanges(doc, steps, originalDoc) {
|
|
37
62
|
return steps.map(function (step) {
|
|
38
63
|
if (!(step instanceof _transform.AttrStep) && !(step instanceof _steps.SetAttrsStep)) {
|
|
39
64
|
return undefined;
|
|
@@ -45,14 +70,39 @@ var getAttrChangeRanges = exports.getAttrChangeRanges = function getAttrChangeRa
|
|
|
45
70
|
// date node: timestamp attribute change — highlight the date node itself (inline)
|
|
46
71
|
if (stepAttrs.some(function (v) {
|
|
47
72
|
return dateAttrs.includes(v);
|
|
48
|
-
}) && (nodeAtPos === null || nodeAtPos === void 0 ? void 0 : nodeAtPos.type.name) === 'date') {
|
|
73
|
+
}) && (nodeAtPos === null || nodeAtPos === void 0 ? void 0 : nodeAtPos.type.name) === 'date' && !(0, _expValEquals.expValEquals)('platform_editor_improve_inline_diffs', 'isEnabled', true)) {
|
|
49
74
|
return {
|
|
50
75
|
fromB: step.pos,
|
|
51
76
|
toB: step.pos + nodeAtPos.nodeSize,
|
|
52
|
-
isInline: true
|
|
77
|
+
isInline: true,
|
|
78
|
+
inlineNodeName: 'date'
|
|
53
79
|
};
|
|
54
80
|
}
|
|
55
81
|
|
|
82
|
+
// The following inline node attr changes are gated behind platform_editor_improve_inline_diffs.
|
|
83
|
+
// The changeset path (createDecorationsForChange) handles the deletion widget via
|
|
84
|
+
// prosemirror-changeset; we only need to add the inline insertion highlight here.
|
|
85
|
+
if ((0, _expValEquals.expValEquals)('platform_editor_improve_inline_diffs', 'isEnabled', true) && nodeAtPos) {
|
|
86
|
+
var nodeName = nodeAtPos.type.name;
|
|
87
|
+
if (isInlineAttrChangeNodeName(nodeName)) {
|
|
88
|
+
var watchedAttrs = inlineNodeAttrMap[nodeName];
|
|
89
|
+
if (stepAttrs.some(function (v) {
|
|
90
|
+
return watchedAttrs.includes(v);
|
|
91
|
+
})) {
|
|
92
|
+
var originalNodeAtPos = originalDoc === null || originalDoc === void 0 ? void 0 : originalDoc.nodeAt(step.pos);
|
|
93
|
+
return _objectSpread({
|
|
94
|
+
fromB: step.pos,
|
|
95
|
+
toB: step.pos + nodeAtPos.nodeSize,
|
|
96
|
+
isInline: true,
|
|
97
|
+
inlineNodeName: nodeName
|
|
98
|
+
}, originalNodeAtPos && {
|
|
99
|
+
fromA: step.pos,
|
|
100
|
+
toA: step.pos + originalNodeAtPos.nodeSize
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
56
106
|
// taskItem node: state attribute change — highlight the taskItem node
|
|
57
107
|
if (stepAttrs.some(function (v) {
|
|
58
108
|
return taskItemAttrs.includes(v);
|
|
@@ -86,7 +136,17 @@ var getAttrChangeRanges = exports.getAttrChangeRanges = function getAttrChangeRa
|
|
|
86
136
|
};
|
|
87
137
|
}
|
|
88
138
|
return undefined;
|
|
89
|
-
}).filter(filterUndefined)
|
|
139
|
+
}).filter(filterUndefined)
|
|
140
|
+
// Deduplicate by node position: multiple AttrSteps on the same node
|
|
141
|
+
// (e.g. setNodeAttribute(pos, 'text', ...) + setNodeAttribute(pos, 'color', ...))
|
|
142
|
+
// should produce only one decoration, not one per step.
|
|
143
|
+
// Gated behind the same experiment as the inline node attr changes that introduced
|
|
144
|
+
// the possibility of multiple ranges for the same node position.
|
|
145
|
+
.filter(function (range, i, arr) {
|
|
146
|
+
return !(0, _expValEquals.expValEquals)('platform_editor_improve_inline_diffs', 'isEnabled', true) || arr.findIndex(function (r) {
|
|
147
|
+
return r.fromB === range.fromB;
|
|
148
|
+
}) === i;
|
|
149
|
+
});
|
|
90
150
|
};
|
|
91
151
|
|
|
92
152
|
/**
|
|
@@ -390,16 +390,43 @@ const calculateDiffDecorationsInner = ({
|
|
|
390
390
|
isInserted: true
|
|
391
391
|
}));
|
|
392
392
|
});
|
|
393
|
-
getAttrChangeRanges(tr.doc, attrSteps).forEach(change => {
|
|
393
|
+
getAttrChangeRanges(tr.doc, attrSteps, originalDoc).forEach(change => {
|
|
394
394
|
if (change.isInline) {
|
|
395
|
-
// Inline nodes (e.g. date) need an inline decoration rather than a block decoration
|
|
395
|
+
// Inline nodes (e.g. date, emoji, mention, status) need an inline decoration rather than a block decoration
|
|
396
396
|
const isActive = activeIndexPos && change.fromB === activeIndexPos.from && change.toB === activeIndexPos.to;
|
|
397
|
+
const isAtomicInlineNodeFlag = expValEquals('platform_editor_improve_inline_diffs', 'isEnabled', true);
|
|
397
398
|
decorations.push(...createInlineChangedDecoration({
|
|
398
399
|
change,
|
|
399
400
|
colorScheme,
|
|
400
401
|
isActive,
|
|
401
|
-
isInserted: true
|
|
402
|
+
isInserted: true,
|
|
403
|
+
isAtomicInlineNode: isAtomicInlineNodeFlag,
|
|
404
|
+
inlineNodeName: change.inlineNodeName,
|
|
405
|
+
// Suppress the border-bottom underline for atomic inline nodeviews —
|
|
406
|
+
// it doesn't render on custom nodeview DOM elements and is unnecessary noise.
|
|
407
|
+
hideAddedDiffsUnderline: isAtomicInlineNodeFlag,
|
|
408
|
+
diffType
|
|
402
409
|
}));
|
|
410
|
+
// If we have the original node position, also render the old node as a "deleted" widget
|
|
411
|
+
// so the user can see what it looked like before the change.
|
|
412
|
+
if (change.fromA !== undefined && change.toA !== undefined && expValEquals('platform_editor_improve_inline_diffs', 'isEnabled', true)) {
|
|
413
|
+
decorations.push(...createNodeChangedDecorationWidget({
|
|
414
|
+
change: {
|
|
415
|
+
fromA: change.fromA,
|
|
416
|
+
toA: change.toA,
|
|
417
|
+
fromB: change.fromB,
|
|
418
|
+
toB: change.toB,
|
|
419
|
+
deleted: []
|
|
420
|
+
},
|
|
421
|
+
doc: originalDoc,
|
|
422
|
+
nodeViewSerializer,
|
|
423
|
+
colorScheme,
|
|
424
|
+
newDoc: tr.doc,
|
|
425
|
+
intl,
|
|
426
|
+
activeIndexPos,
|
|
427
|
+
isInserted: false
|
|
428
|
+
}));
|
|
429
|
+
}
|
|
403
430
|
} else {
|
|
404
431
|
decorations.push(...calculateNodesForBlockDecoration({
|
|
405
432
|
doc: tr.doc,
|
|
@@ -180,4 +180,17 @@ export const deletedCellOverlayStyle = convertToInlineCss({
|
|
|
180
180
|
zIndex: 1,
|
|
181
181
|
outline: `1px solid ${"var(--ds-border-accent-gray, #7D818A)"}`,
|
|
182
182
|
pointerEvents: 'none'
|
|
183
|
+
});
|
|
184
|
+
export const deletedCellOverlayRoundedStyle = convertToInlineCss({
|
|
185
|
+
position: 'absolute',
|
|
186
|
+
top: 0,
|
|
187
|
+
left: 0,
|
|
188
|
+
width: '100%',
|
|
189
|
+
height: '100%',
|
|
190
|
+
backgroundColor: `rgba(from ${"var(--ds-background-accent-gray-subtlest, #F0F1F2)"} r g b / 0.5)`,
|
|
191
|
+
zIndex: 2,
|
|
192
|
+
outline: `1px solid ${"var(--ds-border-accent-gray, #7D818A)"}`,
|
|
193
|
+
pointerEvents: 'none',
|
|
194
|
+
border: 'inherit',
|
|
195
|
+
borderRadius: 'inherit'
|
|
183
196
|
});
|
|
@@ -82,7 +82,7 @@ export const deletedTraditionalBlockOutlineRoundedActive = convertToInlineCss({
|
|
|
82
82
|
borderRadius: `calc(${"var(--ds-radius-xsmall, 2px)"} + 1px)`
|
|
83
83
|
});
|
|
84
84
|
|
|
85
|
-
/** Scroll-navigation “new” emphasis: 4px ring
|
|
85
|
+
/** Scroll-navigation “new” emphasis: 4px ring. */
|
|
86
86
|
export const deletedTraditionalBlockOutlineNew = convertToInlineCss({
|
|
87
87
|
boxShadow: `0 0 0 4px ${"var(--ds-background-accent-red-subtlest, #FFECEB)"}`,
|
|
88
88
|
borderRadius: "var(--ds-radius-small, 4px)"
|
|
@@ -206,4 +206,17 @@ export const deletedTraditionalCellOverlayStyle = convertToInlineCss({
|
|
|
206
206
|
zIndex: 1,
|
|
207
207
|
outline: `1px solid ${"var(--ds-border-disabled, #0515240F)"}`,
|
|
208
208
|
pointerEvents: 'none'
|
|
209
|
+
});
|
|
210
|
+
export const deletedTraditionalCellOverlayRoundedStyle = convertToInlineCss({
|
|
211
|
+
position: 'absolute',
|
|
212
|
+
top: 0,
|
|
213
|
+
left: 0,
|
|
214
|
+
width: '100%',
|
|
215
|
+
height: '100%',
|
|
216
|
+
backgroundColor: `rgba(from ${"var(--ds-background-accent-gray-subtlest, #F0F1F2)"} r g b / 0.5)`,
|
|
217
|
+
zIndex: 2,
|
|
218
|
+
outline: `1px solid ${"var(--ds-border-disabled, #0515240F)"}`,
|
|
219
|
+
pointerEvents: 'none',
|
|
220
|
+
border: 'inherit',
|
|
221
|
+
borderRadius: 'inherit'
|
|
209
222
|
});
|