@atlaskit/editor-common 78.3.0 → 78.3.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 +9 -0
- package/dist/cjs/extensibility/MultiBodiedExtension/action-api.js +6 -5
- package/dist/cjs/extensibility/MultiBodiedExtension/index.js +3 -2
- package/dist/cjs/extensibility/MultiBodiedExtension/styles.js +3 -9
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/resizer/Resizer.js +7 -2
- package/dist/cjs/styles/shared/resizer.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/MediaSingle/styled.js +1 -1
- package/dist/cjs/ui/MultiBodiedExtension/index.js +21 -0
- package/dist/cjs/ui/index.js +7 -0
- package/dist/es2019/extensibility/MultiBodiedExtension/action-api.js +6 -5
- package/dist/es2019/extensibility/MultiBodiedExtension/index.js +5 -4
- package/dist/es2019/extensibility/MultiBodiedExtension/styles.js +2 -64
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/resizer/Resizer.js +5 -1
- package/dist/es2019/styles/shared/resizer.js +5 -2
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/MediaSingle/styled.js +1 -0
- package/dist/es2019/ui/MultiBodiedExtension/index.js +87 -0
- package/dist/es2019/ui/index.js +2 -1
- package/dist/esm/extensibility/MultiBodiedExtension/action-api.js +6 -5
- package/dist/esm/extensibility/MultiBodiedExtension/index.js +4 -3
- package/dist/esm/extensibility/MultiBodiedExtension/styles.js +2 -8
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/resizer/Resizer.js +7 -2
- package/dist/esm/styles/shared/resizer.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/MediaSingle/styled.js +1 -1
- package/dist/esm/ui/MultiBodiedExtension/index.js +15 -0
- package/dist/esm/ui/index.js +2 -1
- package/dist/types/extensibility/MultiBodiedExtension/styles.d.ts +0 -3
- package/dist/types/resizer/Resizer.d.ts +4 -0
- package/dist/types/ui/MultiBodiedExtension/index.d.ts +6 -0
- package/dist/types/ui/index.d.ts +1 -0
- package/dist/types-ts4.5/extensibility/MultiBodiedExtension/styles.d.ts +0 -3
- package/dist/types-ts4.5/resizer/Resizer.d.ts +4 -0
- package/dist/types-ts4.5/ui/MultiBodiedExtension/index.d.ts +6 -0
- package/dist/types-ts4.5/ui/index.d.ts +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 78.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#74333](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/74333) [`600bcf196eab`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/600bcf196eab) - [ux] ED-21950: CSS fixes related to MBE
|
|
8
|
+
- [#75026](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/75026) [`7a7995739cfa`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/7a7995739cfa) - ED-22247 Set max-width to 100% when rendering media inside panel
|
|
9
|
+
- [#73364](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/73364) [`1c4d3e31c0e8`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1c4d3e31c0e8) - fix last insert row button hard to select issue
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
3
12
|
## 78.3.0
|
|
4
13
|
|
|
5
14
|
### Minor Changes
|
|
@@ -21,6 +21,7 @@ var useMultiBodiedExtensionActions = exports.useMultiBodiedExtensionActions = fu
|
|
|
21
21
|
var actions = _react.default.useMemo(function () {
|
|
22
22
|
return {
|
|
23
23
|
changeActive: function changeActive(index) {
|
|
24
|
+
var _possiblyMbeNode$type;
|
|
24
25
|
var state = editorView.state,
|
|
25
26
|
dispatch = editorView.dispatch;
|
|
26
27
|
var updateActiveChildResult = updateActiveChild(index);
|
|
@@ -28,12 +29,12 @@ var useMultiBodiedExtensionActions = exports.useMultiBodiedExtensionActions = fu
|
|
|
28
29
|
(0, _utils.sendMBEAnalyticsEvent)(_analytics.ACTION.CHANGE_ACTIVE, node, eventDispatcher);
|
|
29
30
|
}
|
|
30
31
|
// On selection of a childFrame, we need to change the focus/selection to the end of the target child Frame
|
|
31
|
-
var
|
|
32
|
+
var possiblyMbeNode = state.doc.nodeAt(state.tr.selection.from);
|
|
32
33
|
var desiredPos = state.tr.selection.from || 0;
|
|
33
|
-
if (
|
|
34
|
-
for (var i = 0; i <= index && i < (
|
|
35
|
-
var
|
|
36
|
-
desiredPos += (
|
|
34
|
+
if (possiblyMbeNode && (possiblyMbeNode === null || possiblyMbeNode === void 0 || (_possiblyMbeNode$type = possiblyMbeNode.type) === null || _possiblyMbeNode$type === void 0 ? void 0 : _possiblyMbeNode$type.name) === 'multiBodiedExtension' && possiblyMbeNode !== null && possiblyMbeNode !== void 0 && possiblyMbeNode.content) {
|
|
35
|
+
for (var i = 0; i <= index && i < (possiblyMbeNode === null || possiblyMbeNode === void 0 || (_possiblyMbeNode$cont = possiblyMbeNode.content) === null || _possiblyMbeNode$cont === void 0 ? void 0 : _possiblyMbeNode$cont.childCount); i++) {
|
|
36
|
+
var _possiblyMbeNode$cont, _possiblyMbeNode$cont2;
|
|
37
|
+
desiredPos += (possiblyMbeNode === null || possiblyMbeNode === void 0 || (_possiblyMbeNode$cont2 = possiblyMbeNode.content) === null || _possiblyMbeNode$cont2 === void 0 || (_possiblyMbeNode$cont2 = _possiblyMbeNode$cont2.child(i)) === null || _possiblyMbeNode$cont2 === void 0 ? void 0 : _possiblyMbeNode$cont2.nodeSize) || 0;
|
|
37
38
|
}
|
|
38
39
|
/* desiredPos gives the cursor at the end of last child of the current frame, in case of paragraph nodes, this will be the end of the paragraph
|
|
39
40
|
* Performing -1 brings the cursor inside the paragraph, similar to a user click, so any pasted text will be inside the last paragraph rather than a new line
|
|
@@ -16,6 +16,7 @@ var _react2 = require("@emotion/react");
|
|
|
16
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
17
|
var _file = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/file"));
|
|
18
18
|
var _hooks = require("../../hooks");
|
|
19
|
+
var _MultiBodiedExtension = require("../../ui/MultiBodiedExtension");
|
|
19
20
|
var _utils = require("../../utils");
|
|
20
21
|
var _withPluginState = require("../../with-plugin-state");
|
|
21
22
|
var _actionApi = require("./action-api");
|
|
@@ -89,7 +90,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
|
|
|
89
90
|
var articleRef = _react.default.useCallback(function (node) {
|
|
90
91
|
return handleContentDOMRef(node);
|
|
91
92
|
}, [handleContentDOMRef]);
|
|
92
|
-
var containerCssExtended = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n .multiBodiedExtension-content-dom-wrapper\n > [data-extension-frame='true']:nth-of-type(", ") {\n ", "\n }\n "])),
|
|
93
|
+
var containerCssExtended = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n .multiBodiedExtension-content-dom-wrapper\n > [data-extension-frame='true']:nth-of-type(", ") {\n ", "\n }\n "])), _MultiBodiedExtension.sharedMultiBodiedExtensionStyles.mbeExtensionContainer, activeChildIndex + 1, _MultiBodiedExtension.sharedMultiBodiedExtensionStyles.extensionFrameContent);
|
|
93
94
|
var shouldBreakout =
|
|
94
95
|
// Extension should breakout when the layout is set to 'full-width' or 'wide'.
|
|
95
96
|
['full-width', 'wide'].includes(node.attrs.layout) &&
|
|
@@ -118,7 +119,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
|
|
|
118
119
|
"data-active-child-index": activeChildIndex
|
|
119
120
|
}, (0, _react2.jsx)("nav", {
|
|
120
121
|
className: "multiBodiedExtension-navigation",
|
|
121
|
-
css:
|
|
122
|
+
css: _MultiBodiedExtension.sharedMultiBodiedExtensionStyles.mbeNavigation,
|
|
122
123
|
"data-testid": "multiBodiedExtension-navigation"
|
|
123
124
|
}, extensionHandlerResult), (0, _react2.jsx)("article", {
|
|
124
125
|
className: "multiBodiedExtension--frames",
|
|
@@ -4,16 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.mbeExtensionWrapperCSS = void 0;
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
|
-
var _colors = require("@atlaskit/theme/colors");
|
|
11
10
|
var _styles = require("../Extension/styles");
|
|
12
|
-
var _templateObject
|
|
11
|
+
var _templateObject;
|
|
13
12
|
// Wrapper the extension title and extensionContainer
|
|
14
|
-
var mbeExtensionWrapperCSS = exports.mbeExtensionWrapperCSS = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n cursor: pointer;\n .extension-title {\n display: flex;\n align-items: center;\n line-height: 16px !important;\n margin-bottom: ", ";\n margin-left: ", " !important;\n margin-right: ", ";\n padding-top: ", " !important;\n }\n"])), _styles.wrapperDefault, "var(--ds-space-100, 8px)", "var(--ds-space-050, 4px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
15
|
-
|
|
16
|
-
// Wraps the navigation bar and extensionFrames
|
|
17
|
-
var mbeExtensionContainerCSS = exports.mbeExtensionContainerCSS = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n background: transpaent !important;\n padding: {\n bottom: ", " !important;\n left: ", " !important;\n right: ", " !important;\n }\n padding-bottom: ", ";\n position: relative;\n vertical-align: middle;\n cursor: pointer;\n\n .multiBodiedExtension-content-dom-wrapper > [data-extension-frame='true'] {\n display: none;\n background: ", ";\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-surface, white)");
|
|
18
|
-
var mbeNavigationCSS = exports.mbeNavigationCSS = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n // make sure the user can't see a range selection inside the navigation\n // This is really important to keep the navigation working properly\n border-top-left-radius: ", ";\n border-top-right-radius: ", ";\n\n user-select: none;\n -webkit-user-modify: read-only;\n border: 1px solid ", ";\n border-bottom: none;\n background: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-border, ".concat(_colors.N40, ")"), "var(--ds-surface, white)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
19
|
-
var extensionFrameContentCSS = exports.extensionFrameContentCSS = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n padding: ", " !important;\n border: 1px solid ", ";\n display: block;\n min-height: 100px;\n background: ", ";\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n\n margin-left: ", ";\n margin-right: ", ";\n cursor: initial;\n\n .pm-table-container {\n margin-left: ", " !important;\n padding-right: ", " !important;\n }\n .pm-table-with-controls {\n margin-left: ", " !important;\n padding-right: ", " !important;\n }\n .bodiedExtensionView-content-wrap {\n margin-top: ", " !important;\n }\n // Extension wrap have an additional margin on all four borders, so we need to adjust the spacing\n // compared to the bodiedExtensionView-content-wrap\n .extensionView-content-wrap {\n margin-top: ", " !important;\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-border, ".concat(_colors.N30, ")"), "var(--ds-surface, white)", "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-200, 16px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-100, 8px)");
|
|
13
|
+
var mbeExtensionWrapperCSS = exports.mbeExtensionWrapperCSS = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n cursor: pointer;\n margin-top: ", ";\n margin-bottom: ", ";\n .extension-title {\n display: flex;\n align-items: center;\n line-height: 16px !important;\n margin-bottom: ", ";\n margin-left: ", " !important;\n margin-right: ", ";\n padding-top: ", " !important;\n }\n"])), _styles.wrapperDefault, "var(--ds-space-250, 24px)", "var(--ds-space-200, 16px)", "var(--ds-space-100, 8px)", "var(--ds-space-050, 4px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
16
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
17
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
18
18
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
19
|
-
var packageVersion = "78.3.
|
|
19
|
+
var packageVersion = "78.3.1";
|
|
20
20
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
21
21
|
// Remove URL as it has UGC
|
|
22
22
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -15,7 +15,7 @@ var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
|
15
15
|
var _reResizable = require("re-resizable");
|
|
16
16
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
17
17
|
var _resizer = require("../styles/shared/resizer");
|
|
18
|
-
var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent"];
|
|
18
|
+
var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent", "needExtendedResizeZone"];
|
|
19
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
20
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
21
|
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; }
|
|
@@ -59,6 +59,8 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
59
59
|
_props$handleHighligh = props.handleHighlight,
|
|
60
60
|
handleHighlight = _props$handleHighligh === void 0 ? 'none' : _props$handleHighligh,
|
|
61
61
|
handleTooltipContent = props.handleTooltipContent,
|
|
62
|
+
_props$needExtendedRe = props.needExtendedResizeZone,
|
|
63
|
+
needExtendedResizeZone = _props$needExtendedRe === void 0 ? true : _props$needExtendedRe,
|
|
62
64
|
otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
63
65
|
var onResizeStart = (0, _react.useCallback)(function (event) {
|
|
64
66
|
// prevent creating a drag event on Firefox
|
|
@@ -111,6 +113,9 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
111
113
|
'is-resizing': isResizing,
|
|
112
114
|
'display-handle': isHandleVisible
|
|
113
115
|
}, _resizer.resizerDangerClassName, appearance === 'danger'));
|
|
116
|
+
var resizerZoneClassName = (0, _classnames2.default)(_resizer.resizerHoverZoneClassName, {
|
|
117
|
+
'is-extended': needExtendedResizeZone
|
|
118
|
+
});
|
|
114
119
|
var handleComponent = (0, _react.useMemo)(function () {
|
|
115
120
|
return SUPPORTED_HANDLES.reduce(function (result, position) {
|
|
116
121
|
var thumb = /*#__PURE__*/_react.default.createElement("button", {
|
|
@@ -172,7 +177,7 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
172
177
|
snap: snap,
|
|
173
178
|
handleComponent: handleComponent
|
|
174
179
|
}, otherProps), /*#__PURE__*/_react.default.createElement("span", {
|
|
175
|
-
className:
|
|
180
|
+
className: resizerZoneClassName
|
|
176
181
|
}, children));
|
|
177
182
|
};
|
|
178
183
|
var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(ResizerNext);
|
|
@@ -26,4 +26,4 @@ var resizerDangerClassName = exports.resizerDangerClassName = "".concat(resizerH
|
|
|
26
26
|
var akEditorSelectedNodeClassName = 'ak-editor-selected-node';
|
|
27
27
|
var handleWrapperClass = exports.handleWrapperClass = 'resizer-handle-wrapper';
|
|
28
28
|
var resizerHandleZIndex = exports.resizerHandleZIndex = 1;
|
|
29
|
-
var resizerStyles = exports.resizerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .", " {\n will-change: width;\n\n &:hover,\n &.display-handle {\n & > .", " > .", " {\n visibility: visible;\n opacity: 1;\n }\n }\n\n &.is-resizing {\n & .", " {\n background: ", ";\n }\n }\n\n &.", " {\n & .", " {\n transition: none;\n background: ", ";\n }\n }\n }\n\n .", " {\n display: flex;\n visibility: hidden;\n opacity: 0;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 7px;\n transition: visibility 0.2s, opacity 0.2s;\n\n /*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n & div[role='presentation'] {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: ", ";\n white-space: normal;\n }\n\n /*\n Handle Positions\n */\n &.left {\n align-items: flex-start;\n }\n &.right {\n align-items: flex-end;\n }\n\n /*\n Handle Sizing\n */\n &.small {\n & .", " {\n height: 43px;\n }\n }\n &.medium {\n & .", " {\n height: 64px;\n }\n }\n &.large {\n & .", " {\n height: 96px;\n }\n }\n\n /*\n Handle Alignment\n */\n &.sticky {\n & .", " {\n position: sticky;\n top: ", ";\n bottom: ", ";\n }\n }\n\n &:hover {\n & .", " {\n background: ", ";\n }\n\n & .", " {\n visibility: visible;\n opacity: 0.5;\n }\n }\n }\n\n .", " {\n content: ' ';\n display: flex;\n width: 3px;\n margin: 0 ", ";\n height: 64px;\n transition: background-color 0.2s;\n border-radius: 6px;\n border: 0;\n padding: 0;\n z-index: 2;\n outline: none;\n min-height: 24px;\n background: ", ";\n\n &:hover {\n cursor: col-resize;\n }\n\n &:focus {\n background: ", ";\n\n &::after {\n content: '';\n position: absolute;\n top: ", ";\n right: ", ";\n bottom: ", ";\n left: ", ";\n border: 2px solid ", ";\n border-radius: inherit;\n z-index: -1;\n }\n }\n }\n\n .", " {\n visibility: hidden;\n position: absolute;\n width: 7px;\n height: calc(100% - 40px);\n border-radius: 4px;\n opacity: 0;\n transition: background-color 0.2s, visibility 0.2s, opacity 0.2s;\n\n &.none {\n background: none;\n }\n\n &.shadow {\n background: ", ";\n }\n\n &.full-height {\n background: ", ";\n height: 100%;\n min-height: 36px;\n }\n }\n\n .", " {\n & .", " {\n background: ", ";\n }\n }\n\n .", " {\n
|
|
29
|
+
var resizerStyles = exports.resizerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n .", " {\n will-change: width;\n\n &:hover,\n &.display-handle {\n & > .", " > .", " {\n visibility: visible;\n opacity: 1;\n }\n }\n\n &.is-resizing {\n & .", " {\n background: ", ";\n }\n }\n\n &.", " {\n & .", " {\n transition: none;\n background: ", ";\n }\n }\n }\n\n .", " {\n display: flex;\n visibility: hidden;\n opacity: 0;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 7px;\n transition: visibility 0.2s, opacity 0.2s;\n\n /*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n & div[role='presentation'] {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: ", ";\n white-space: normal;\n }\n\n /*\n Handle Positions\n */\n &.left {\n align-items: flex-start;\n }\n &.right {\n align-items: flex-end;\n }\n\n /*\n Handle Sizing\n */\n &.small {\n & .", " {\n height: 43px;\n }\n }\n &.medium {\n & .", " {\n height: 64px;\n }\n }\n &.large {\n & .", " {\n height: 96px;\n }\n }\n\n /*\n Handle Alignment\n */\n &.sticky {\n & .", " {\n position: sticky;\n top: ", ";\n bottom: ", ";\n }\n }\n\n &:hover {\n & .", " {\n background: ", ";\n }\n\n & .", " {\n visibility: visible;\n opacity: 0.5;\n }\n }\n }\n\n .", " {\n content: ' ';\n display: flex;\n width: 3px;\n margin: 0 ", ";\n height: 64px;\n transition: background-color 0.2s;\n border-radius: 6px;\n border: 0;\n padding: 0;\n z-index: 2;\n outline: none;\n min-height: 24px;\n background: ", ";\n\n &:hover {\n cursor: col-resize;\n }\n\n &:focus {\n background: ", ";\n\n &::after {\n content: '';\n position: absolute;\n top: ", ";\n right: ", ";\n bottom: ", ";\n left: ", ";\n border: 2px solid ", ";\n border-radius: inherit;\n z-index: -1;\n }\n }\n }\n\n .", " {\n visibility: hidden;\n position: absolute;\n width: 7px;\n height: calc(100% - 40px);\n border-radius: 4px;\n opacity: 0;\n transition: background-color 0.2s, visibility 0.2s, opacity 0.2s;\n\n &.none {\n background: none;\n }\n\n &.shadow {\n background: ", ";\n }\n\n &.full-height {\n background: ", ";\n height: 100%;\n min-height: 36px;\n }\n }\n\n .", " {\n & .", " {\n background: ", ";\n }\n }\n\n .", " {\n position: relative;\n display: inline-block;\n width: 100%;\n\n &.is-extended {\n padding: 0 ", ";\n left: ", ";\n }\n }\n\n // This below style is here to make sure the image width is correct when nested in a table\n table .", " {\n padding: unset;\n left: unset;\n }\n"])), resizerItemClassName, handleWrapperClass, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border-focused, ".concat(_colors.B200, ")"), resizerDangerClassName, resizerHandleThumbClassName, "var(--ds-icon-danger, ".concat(_editorSharedStyles.akEditorDeleteIconColor, ")"), resizerHandleClassName, "var(--ds-space-negative-200, -16px)", resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", resizerHandleThumbClassName, "var(--ds-border-focused, ".concat(_colors.B200, ")"), resizerHandleTrackClassName, resizerHandleThumbClassName, "var(--ds-space-025, 2px)", "var(--ds-border, ".concat(_colors.N60, ")"), "var(--ds-border-selected, #0C66E4)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, "var(--ds-background-selected, ".concat(_colors.B50, ")"), "var(--ds-background-selected, ".concat(_colors.B50, ")"), akEditorSelectedNodeClassName, resizerHandleThumbClassName, "var(--ds-border-focused, ".concat(_colors.B200, ")"), resizerHoverZoneClassName, "var(--ds-space-150, 12px)", "var(--ds-space-negative-150, -12px)", resizerHoverZoneClassName);
|
|
@@ -22,7 +22,7 @@ var _templateObject, _templateObject2, _templateObject3;
|
|
|
22
22
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
23
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
|
|
24
24
|
var packageName = "@atlaskit/editor-common";
|
|
25
|
-
var packageVersion = "78.3.
|
|
25
|
+
var packageVersion = "78.3.1";
|
|
26
26
|
var halfFocusRing = 1;
|
|
27
27
|
var dropOffset = '0, 8';
|
|
28
28
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -123,7 +123,7 @@ var MediaSingleDimensionHelper = exports.MediaSingleDimensionHelper = function M
|
|
|
123
123
|
isExtendedResizeExperienceOn = _ref.isExtendedResizeExperienceOn,
|
|
124
124
|
_ref$isNestedNode = _ref.isNestedNode,
|
|
125
125
|
isNestedNode = _ref$isNestedNode === void 0 ? false : _ref$isNestedNode;
|
|
126
|
-
return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* For nested rich media items, set max-width to 100% */\n tr &,\n [data-layout-column] &,\n [data-node-type='expand'] &,\n li & {\n max-width: 100%;\n }\n\n width: ", ";\n ", "\n max-width: ", ";\n\n ", "\n\n &:not(.is-resizing) {\n transition: width 100ms ease-in;\n }\n\n float: ", ";\n margin: ", ";\n\n &[class*='not-resizing'] {\n ", "\n }\n\n ", ";\n"])), isExtendedResizeExperienceOn ? "".concat(mediaSingleWidth || width, "px") : mediaSingleWidth ? calcResizedWidth(layout, width || 0, containerWidth) : calcLegacyWidth(layout, width || 0, containerWidth, fullWidthMode, isResized), layout === 'full-width' &&
|
|
126
|
+
return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* For nested rich media items, set max-width to 100% */\n tr &,\n [data-layout-column] &,\n [data-node-type='expand'] &,\n [data-panel-type] &,\n li & {\n max-width: 100%;\n }\n\n width: ", ";\n ", "\n max-width: ", ";\n\n ", "\n\n &:not(.is-resizing) {\n transition: width 100ms ease-in;\n }\n\n float: ", ";\n margin: ", ";\n\n &[class*='not-resizing'] {\n ", "\n }\n\n ", ";\n"])), isExtendedResizeExperienceOn ? "".concat(mediaSingleWidth || width, "px") : mediaSingleWidth ? calcResizedWidth(layout, width || 0, containerWidth) : calcLegacyWidth(layout, width || 0, containerWidth, fullWidthMode, isResized), layout === 'full-width' &&
|
|
127
127
|
/* This causes issues for new experience where we don't strip layout attributes
|
|
128
128
|
when copying top-level node and pasting into a table/layout,
|
|
129
129
|
because full-width layout will remain, causing node to be edge-to-edge */
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.sharedMultiBodiedExtensionStyles = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _react = require("@emotion/react");
|
|
10
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
11
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
12
|
+
/** @jsx jsx */
|
|
13
|
+
// Wraps the navigation bar and extensionFrames
|
|
14
|
+
var mbeExtensionContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: transpaent !important;\n padding: {\n bottom: ", " !important;\n left: ", " !important;\n right: ", " !important;\n }\n padding-bottom: ", ";\n position: relative;\n vertical-align: middle;\n cursor: pointer;\n\n .multiBodiedExtension-handler-result {\n margin-left: ", ";\n }\n\n .multiBodiedExtension-content-dom-wrapper > [data-extension-frame='true'],\n .multiBodiedExtension--frames > [data-extension-frame='true'] {\n display: none;\n background: ", ";\n }\n\n .multiBodiedExtension-content-dom-wrapper,\n .multiBodiedExtension--frames {\n [data-extension-frame='true'] > :not(style):first-child,\n [data-extension-frame='true'] > style:first-child + * {\n margin-top: 0;\n }\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-surface, white)");
|
|
15
|
+
var mbeNavigation = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n // make sure the user can't see a range selection inside the navigation\n // This is really important to keep the navigation working properly\n border-top-left-radius: ", ";\n border-top-right-radius: ", ";\n\n user-select: none;\n -webkit-user-modify: read-only;\n border: 1px solid ", ";\n border-bottom: none !important;\n background: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-border, ".concat(_colors.N40, ")"), "var(--ds-surface, white)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
16
|
+
var extensionFrameContent = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: ", " !important;\n border: 1px solid ", ";\n display: block;\n min-height: 100px;\n background: ", ";\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n\n margin-left: ", ";\n margin-right: ", ";\n cursor: initial;\n\n .pm-table-with-controls {\n margin-left: ", " !important;\n padding-right: ", " !important;\n }\n .bodiedExtensionView-content-wrap {\n margin-top: ", " !important;\n }\n // Extension wrap have an additional margin on all four borders, so we need to adjust the spacing\n // compared to the bodiedExtensionView-content-wrap\n .extensionView-content-wrap {\n margin-top: ", " !important;\n }\n .decisionItemView-content-wrap {\n margin-top: 0px !important;\n }\n\n .decisionItemView-content-wrap > [data-decision-wrapper] {\n margin-top: 0px !important;\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-border, ".concat(_colors.N30, ")"), "var(--ds-surface, white)", "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-100, 8px)");
|
|
17
|
+
var sharedMultiBodiedExtensionStyles = exports.sharedMultiBodiedExtensionStyles = {
|
|
18
|
+
mbeExtensionContainer: mbeExtensionContainer,
|
|
19
|
+
mbeNavigation: mbeNavigation,
|
|
20
|
+
extensionFrameContent: extensionFrameContent
|
|
21
|
+
};
|
package/dist/cjs/ui/index.js
CHANGED
|
@@ -353,6 +353,12 @@ Object.defineProperty(exports, "sharedExpandStyles", {
|
|
|
353
353
|
return _Expand.sharedExpandStyles;
|
|
354
354
|
}
|
|
355
355
|
});
|
|
356
|
+
Object.defineProperty(exports, "sharedMultiBodiedExtensionStyles", {
|
|
357
|
+
enumerable: true,
|
|
358
|
+
get: function get() {
|
|
359
|
+
return _MultiBodiedExtension.sharedMultiBodiedExtensionStyles;
|
|
360
|
+
}
|
|
361
|
+
});
|
|
356
362
|
Object.defineProperty(exports, "snapTo", {
|
|
357
363
|
enumerable: true,
|
|
358
364
|
get: function get() {
|
|
@@ -415,5 +421,6 @@ var _PanelTextInput = _interopRequireDefault(require("./PanelTextInput"));
|
|
|
415
421
|
var _announcer = _interopRequireDefault(require("./Announcer/announcer"));
|
|
416
422
|
var _Toolbar = require("./Toolbar");
|
|
417
423
|
var _DropList = _interopRequireDefault(require("./DropList"));
|
|
424
|
+
var _MultiBodiedExtension = require("./MultiBodiedExtension");
|
|
418
425
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
419
426
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -12,6 +12,7 @@ export const useMultiBodiedExtensionActions = ({
|
|
|
12
12
|
const actions = React.useMemo(() => {
|
|
13
13
|
return {
|
|
14
14
|
changeActive(index) {
|
|
15
|
+
var _possiblyMbeNode$type;
|
|
15
16
|
const {
|
|
16
17
|
state,
|
|
17
18
|
dispatch
|
|
@@ -21,12 +22,12 @@ export const useMultiBodiedExtensionActions = ({
|
|
|
21
22
|
sendMBEAnalyticsEvent(ACTION.CHANGE_ACTIVE, node, eventDispatcher);
|
|
22
23
|
}
|
|
23
24
|
// On selection of a childFrame, we need to change the focus/selection to the end of the target child Frame
|
|
24
|
-
const
|
|
25
|
+
const possiblyMbeNode = state.doc.nodeAt(state.tr.selection.from);
|
|
25
26
|
let desiredPos = state.tr.selection.from || 0;
|
|
26
|
-
if (
|
|
27
|
-
for (let i = 0; i <= index && i < (
|
|
28
|
-
var
|
|
29
|
-
desiredPos += (
|
|
27
|
+
if (possiblyMbeNode && (possiblyMbeNode === null || possiblyMbeNode === void 0 ? void 0 : (_possiblyMbeNode$type = possiblyMbeNode.type) === null || _possiblyMbeNode$type === void 0 ? void 0 : _possiblyMbeNode$type.name) === 'multiBodiedExtension' && possiblyMbeNode !== null && possiblyMbeNode !== void 0 && possiblyMbeNode.content) {
|
|
28
|
+
for (let i = 0; i <= index && i < (possiblyMbeNode === null || possiblyMbeNode === void 0 ? void 0 : (_possiblyMbeNode$cont = possiblyMbeNode.content) === null || _possiblyMbeNode$cont === void 0 ? void 0 : _possiblyMbeNode$cont.childCount); i++) {
|
|
29
|
+
var _possiblyMbeNode$cont, _possiblyMbeNode$cont2, _possiblyMbeNode$cont3;
|
|
30
|
+
desiredPos += (possiblyMbeNode === null || possiblyMbeNode === void 0 ? void 0 : (_possiblyMbeNode$cont2 = possiblyMbeNode.content) === null || _possiblyMbeNode$cont2 === void 0 ? void 0 : (_possiblyMbeNode$cont3 = _possiblyMbeNode$cont2.child(i)) === null || _possiblyMbeNode$cont3 === void 0 ? void 0 : _possiblyMbeNode$cont3.nodeSize) || 0;
|
|
30
31
|
}
|
|
31
32
|
/* desiredPos gives the cursor at the end of last child of the current frame, in case of paragraph nodes, this will be the end of the paragraph
|
|
32
33
|
* Performing -1 brings the cursor inside the paragraph, similar to a user click, so any pasted text will be inside the last paragraph rather than a new line
|
|
@@ -7,10 +7,11 @@ import { css, jsx } from '@emotion/react';
|
|
|
7
7
|
import classnames from 'classnames';
|
|
8
8
|
import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
|
|
9
9
|
import { useSharedPluginState } from '../../hooks';
|
|
10
|
+
import { sharedMultiBodiedExtensionStyles } from '../../ui/MultiBodiedExtension';
|
|
10
11
|
import { calculateBreakoutStyles, getExtensionLozengeData } from '../../utils';
|
|
11
12
|
import { WithPluginState } from '../../with-plugin-state';
|
|
12
13
|
import { useMultiBodiedExtensionActions } from './action-api';
|
|
13
|
-
import {
|
|
14
|
+
import { mbeExtensionWrapperCSS } from './styles';
|
|
14
15
|
// Similar to the one in platform/packages/editor/editor-common/src/extensibility/Extension/Lozenge.tsx
|
|
15
16
|
const getWrapperTitleContent = (imageData, title) => {
|
|
16
17
|
if (imageData) {
|
|
@@ -79,10 +80,10 @@ const MultiBodiedExtensionWithWidth = ({
|
|
|
79
80
|
return handleContentDOMRef(node);
|
|
80
81
|
}, [handleContentDOMRef]);
|
|
81
82
|
const containerCssExtended = css`
|
|
82
|
-
${
|
|
83
|
+
${sharedMultiBodiedExtensionStyles.mbeExtensionContainer};
|
|
83
84
|
.multiBodiedExtension-content-dom-wrapper
|
|
84
85
|
> [data-extension-frame='true']:nth-of-type(${activeChildIndex + 1}) {
|
|
85
|
-
${
|
|
86
|
+
${sharedMultiBodiedExtensionStyles.extensionFrameContent}
|
|
86
87
|
}
|
|
87
88
|
`;
|
|
88
89
|
const shouldBreakout =
|
|
@@ -114,7 +115,7 @@ const MultiBodiedExtensionWithWidth = ({
|
|
|
114
115
|
"data-active-child-index": activeChildIndex
|
|
115
116
|
}, jsx("nav", {
|
|
116
117
|
className: "multiBodiedExtension-navigation",
|
|
117
|
-
css:
|
|
118
|
+
css: sharedMultiBodiedExtensionStyles.mbeNavigation,
|
|
118
119
|
"data-testid": "multiBodiedExtension-navigation"
|
|
119
120
|
}, extensionHandlerResult), jsx("article", {
|
|
120
121
|
className: "multiBodiedExtension--frames",
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { css } from '@emotion/react';
|
|
2
|
-
import { N30, N40 } from '@atlaskit/theme/colors';
|
|
3
2
|
import { wrapperDefault } from '../Extension/styles';
|
|
4
3
|
|
|
5
4
|
// Wrapper the extension title and extensionContainer
|
|
6
5
|
export const mbeExtensionWrapperCSS = css`
|
|
7
6
|
${wrapperDefault};
|
|
8
7
|
cursor: pointer;
|
|
8
|
+
margin-top: ${"var(--ds-space-250, 24px)"};
|
|
9
|
+
margin-bottom: ${"var(--ds-space-200, 16px)"};
|
|
9
10
|
.extension-title {
|
|
10
11
|
display: flex;
|
|
11
12
|
align-items: center;
|
|
@@ -15,67 +16,4 @@ export const mbeExtensionWrapperCSS = css`
|
|
|
15
16
|
margin-right: ${"var(--ds-space-100, 8px)"};
|
|
16
17
|
padding-top: ${"var(--ds-space-100, 8px)"} !important;
|
|
17
18
|
}
|
|
18
|
-
`;
|
|
19
|
-
|
|
20
|
-
// Wraps the navigation bar and extensionFrames
|
|
21
|
-
export const mbeExtensionContainerCSS = css`
|
|
22
|
-
background: transpaent !important;
|
|
23
|
-
padding: {
|
|
24
|
-
bottom: ${"var(--ds-space-100, 8px)"} !important;
|
|
25
|
-
left: ${"var(--ds-space-100, 8px)"} !important;
|
|
26
|
-
right: ${"var(--ds-space-100, 8px)"} !important;
|
|
27
|
-
}
|
|
28
|
-
padding-bottom: ${"var(--ds-space-100, 8px)"};
|
|
29
|
-
position: relative;
|
|
30
|
-
vertical-align: middle;
|
|
31
|
-
cursor: pointer;
|
|
32
|
-
|
|
33
|
-
.multiBodiedExtension-content-dom-wrapper > [data-extension-frame='true'] {
|
|
34
|
-
display: none;
|
|
35
|
-
background: ${"var(--ds-surface, white)"};
|
|
36
|
-
}
|
|
37
|
-
`;
|
|
38
|
-
export const mbeNavigationCSS = css`
|
|
39
|
-
// make sure the user can't see a range selection inside the navigation
|
|
40
|
-
// This is really important to keep the navigation working properly
|
|
41
|
-
border-top-left-radius: ${"var(--ds-border-radius, 3px)"};
|
|
42
|
-
border-top-right-radius: ${"var(--ds-border-radius, 3px)"};
|
|
43
|
-
|
|
44
|
-
user-select: none;
|
|
45
|
-
-webkit-user-modify: read-only;
|
|
46
|
-
border: 1px solid ${`var(--ds-border, ${N40})`};
|
|
47
|
-
border-bottom: none;
|
|
48
|
-
background: ${"var(--ds-surface, white)"};
|
|
49
|
-
margin-left: ${"var(--ds-space-100, 8px)"};
|
|
50
|
-
margin-right: ${"var(--ds-space-100, 8px)"};
|
|
51
|
-
`;
|
|
52
|
-
export const extensionFrameContentCSS = css`
|
|
53
|
-
padding: ${"var(--ds-space-100, 8px)"} !important;
|
|
54
|
-
border: 1px solid ${`var(--ds-border, ${N30})`};
|
|
55
|
-
display: block;
|
|
56
|
-
min-height: 100px;
|
|
57
|
-
background: ${"var(--ds-surface, white)"};
|
|
58
|
-
border-bottom-left-radius: ${"var(--ds-border-radius, 3px)"};
|
|
59
|
-
border-bottom-right-radius: ${"var(--ds-border-radius, 3px)"};
|
|
60
|
-
|
|
61
|
-
margin-left: ${"var(--ds-space-100, 8px)"};
|
|
62
|
-
margin-right: ${"var(--ds-space-100, 8px)"};
|
|
63
|
-
cursor: initial;
|
|
64
|
-
|
|
65
|
-
.pm-table-container {
|
|
66
|
-
margin-left: ${"var(--ds-space-100, 8px)"} !important;
|
|
67
|
-
padding-right: ${"var(--ds-space-200, 16px)"} !important;
|
|
68
|
-
}
|
|
69
|
-
.pm-table-with-controls {
|
|
70
|
-
margin-left: ${"var(--ds-space-150, 12px)"} !important;
|
|
71
|
-
padding-right: ${"var(--ds-space-150, 12px)"} !important;
|
|
72
|
-
}
|
|
73
|
-
.bodiedExtensionView-content-wrap {
|
|
74
|
-
margin-top: ${"var(--ds-space-150, 12px)"} !important;
|
|
75
|
-
}
|
|
76
|
-
// Extension wrap have an additional margin on all four borders, so we need to adjust the spacing
|
|
77
|
-
// compared to the bodiedExtensionView-content-wrap
|
|
78
|
-
.extensionView-content-wrap {
|
|
79
|
-
margin-top: ${"var(--ds-space-100, 8px)"} !important;
|
|
80
|
-
}
|
|
81
19
|
`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
2
2
|
const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
3
|
-
const packageVersion = "78.3.
|
|
3
|
+
const packageVersion = "78.3.1";
|
|
4
4
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
5
5
|
// Remove URL as it has UGC
|
|
6
6
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -35,6 +35,7 @@ const ResizerNext = (props, ref) => {
|
|
|
35
35
|
isHandleVisible = false,
|
|
36
36
|
handleHighlight = 'none',
|
|
37
37
|
handleTooltipContent,
|
|
38
|
+
needExtendedResizeZone = true,
|
|
38
39
|
...otherProps
|
|
39
40
|
} = props;
|
|
40
41
|
const onResizeStart = useCallback(event => {
|
|
@@ -94,6 +95,9 @@ const ResizerNext = (props, ref) => {
|
|
|
94
95
|
'display-handle': isHandleVisible,
|
|
95
96
|
[resizerDangerClassName]: appearance === 'danger'
|
|
96
97
|
});
|
|
98
|
+
const resizerZoneClassName = classnames(resizerHoverZoneClassName, {
|
|
99
|
+
'is-extended': needExtendedResizeZone
|
|
100
|
+
});
|
|
97
101
|
const handleComponent = useMemo(() => {
|
|
98
102
|
return SUPPORTED_HANDLES.reduce((result, position) => {
|
|
99
103
|
const thumb = /*#__PURE__*/React.createElement("button", {
|
|
@@ -164,7 +168,7 @@ const ResizerNext = (props, ref) => {
|
|
|
164
168
|
snap: snap,
|
|
165
169
|
handleComponent: handleComponent
|
|
166
170
|
}, otherProps), /*#__PURE__*/React.createElement("span", {
|
|
167
|
-
className:
|
|
171
|
+
className: resizerZoneClassName
|
|
168
172
|
}, children));
|
|
169
173
|
};
|
|
170
174
|
export default /*#__PURE__*/forwardRef(ResizerNext);
|
|
@@ -187,11 +187,14 @@ export const resizerStyles = css`
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
.${resizerHoverZoneClassName} {
|
|
190
|
-
padding: 0 ${"var(--ds-space-150, 12px)"};
|
|
191
190
|
position: relative;
|
|
192
191
|
display: inline-block;
|
|
193
192
|
width: 100%;
|
|
194
|
-
|
|
193
|
+
|
|
194
|
+
&.is-extended {
|
|
195
|
+
padding: 0 ${"var(--ds-space-150, 12px)"};
|
|
196
|
+
left: ${"var(--ds-space-negative-150, -12px)"};
|
|
197
|
+
}
|
|
195
198
|
}
|
|
196
199
|
|
|
197
200
|
// This below style is here to make sure the image width is correct when nested in a table
|
|
@@ -7,7 +7,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
|
|
|
7
7
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
8
8
|
import Layer from '../Layer';
|
|
9
9
|
const packageName = "@atlaskit/editor-common";
|
|
10
|
-
const packageVersion = "78.3.
|
|
10
|
+
const packageVersion = "78.3.1";
|
|
11
11
|
const halfFocusRing = 1;
|
|
12
12
|
const dropOffset = '0, 8';
|
|
13
13
|
class DropList extends Component {
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
|
|
3
|
+
import { css } from '@emotion/react';
|
|
4
|
+
import { N30, N40 } from '@atlaskit/theme/colors';
|
|
5
|
+
// Wraps the navigation bar and extensionFrames
|
|
6
|
+
const mbeExtensionContainer = css`
|
|
7
|
+
background: transpaent !important;
|
|
8
|
+
padding: {
|
|
9
|
+
bottom: ${"var(--ds-space-100, 8px)"} !important;
|
|
10
|
+
left: ${"var(--ds-space-100, 8px)"} !important;
|
|
11
|
+
right: ${"var(--ds-space-100, 8px)"} !important;
|
|
12
|
+
}
|
|
13
|
+
padding-bottom: ${"var(--ds-space-100, 8px)"};
|
|
14
|
+
position: relative;
|
|
15
|
+
vertical-align: middle;
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
|
|
18
|
+
.multiBodiedExtension-handler-result {
|
|
19
|
+
margin-left: ${"var(--ds-space-100, 8px)"};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.multiBodiedExtension-content-dom-wrapper > [data-extension-frame='true'],
|
|
23
|
+
.multiBodiedExtension--frames > [data-extension-frame='true'] {
|
|
24
|
+
display: none;
|
|
25
|
+
background: ${"var(--ds-surface, white)"};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.multiBodiedExtension-content-dom-wrapper,
|
|
29
|
+
.multiBodiedExtension--frames {
|
|
30
|
+
[data-extension-frame='true'] > :not(style):first-child,
|
|
31
|
+
[data-extension-frame='true'] > style:first-child + * {
|
|
32
|
+
margin-top: 0;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
const mbeNavigation = css`
|
|
37
|
+
// make sure the user can't see a range selection inside the navigation
|
|
38
|
+
// This is really important to keep the navigation working properly
|
|
39
|
+
border-top-left-radius: ${"var(--ds-border-radius, 3px)"};
|
|
40
|
+
border-top-right-radius: ${"var(--ds-border-radius, 3px)"};
|
|
41
|
+
|
|
42
|
+
user-select: none;
|
|
43
|
+
-webkit-user-modify: read-only;
|
|
44
|
+
border: 1px solid ${`var(--ds-border, ${N40})`};
|
|
45
|
+
border-bottom: none !important;
|
|
46
|
+
background: ${"var(--ds-surface, white)"};
|
|
47
|
+
margin-left: ${"var(--ds-space-100, 8px)"};
|
|
48
|
+
margin-right: ${"var(--ds-space-100, 8px)"};
|
|
49
|
+
`;
|
|
50
|
+
const extensionFrameContent = css`
|
|
51
|
+
padding: ${"var(--ds-space-100, 8px)"} !important;
|
|
52
|
+
border: 1px solid ${`var(--ds-border, ${N30})`};
|
|
53
|
+
display: block;
|
|
54
|
+
min-height: 100px;
|
|
55
|
+
background: ${"var(--ds-surface, white)"};
|
|
56
|
+
border-bottom-left-radius: ${"var(--ds-border-radius, 3px)"};
|
|
57
|
+
border-bottom-right-radius: ${"var(--ds-border-radius, 3px)"};
|
|
58
|
+
|
|
59
|
+
margin-left: ${"var(--ds-space-100, 8px)"};
|
|
60
|
+
margin-right: ${"var(--ds-space-100, 8px)"};
|
|
61
|
+
cursor: initial;
|
|
62
|
+
|
|
63
|
+
.pm-table-with-controls {
|
|
64
|
+
margin-left: ${"var(--ds-space-150, 12px)"} !important;
|
|
65
|
+
padding-right: ${"var(--ds-space-150, 12px)"} !important;
|
|
66
|
+
}
|
|
67
|
+
.bodiedExtensionView-content-wrap {
|
|
68
|
+
margin-top: ${"var(--ds-space-150, 12px)"} !important;
|
|
69
|
+
}
|
|
70
|
+
// Extension wrap have an additional margin on all four borders, so we need to adjust the spacing
|
|
71
|
+
// compared to the bodiedExtensionView-content-wrap
|
|
72
|
+
.extensionView-content-wrap {
|
|
73
|
+
margin-top: ${"var(--ds-space-100, 8px)"} !important;
|
|
74
|
+
}
|
|
75
|
+
.decisionItemView-content-wrap {
|
|
76
|
+
margin-top: 0px !important;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.decisionItemView-content-wrap > [data-decision-wrapper] {
|
|
80
|
+
margin-top: 0px !important;
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
export const sharedMultiBodiedExtensionStyles = {
|
|
84
|
+
mbeExtensionContainer,
|
|
85
|
+
mbeNavigation,
|
|
86
|
+
extensionFrameContent
|
|
87
|
+
};
|
package/dist/es2019/ui/index.js
CHANGED
|
@@ -29,4 +29,5 @@ export { panelTextInput } from './PanelTextInput/styles';
|
|
|
29
29
|
export { default as PanelTextInput } from './PanelTextInput';
|
|
30
30
|
export { default as Announcer } from './Announcer/announcer';
|
|
31
31
|
export { EDIT_AREA_ID } from './Toolbar';
|
|
32
|
-
export { default as DropList } from './DropList';
|
|
32
|
+
export { default as DropList } from './DropList';
|
|
33
|
+
export { sharedMultiBodiedExtensionStyles } from './MultiBodiedExtension';
|
|
@@ -14,6 +14,7 @@ export var useMultiBodiedExtensionActions = function useMultiBodiedExtensionActi
|
|
|
14
14
|
var actions = React.useMemo(function () {
|
|
15
15
|
return {
|
|
16
16
|
changeActive: function changeActive(index) {
|
|
17
|
+
var _possiblyMbeNode$type;
|
|
17
18
|
var state = editorView.state,
|
|
18
19
|
dispatch = editorView.dispatch;
|
|
19
20
|
var updateActiveChildResult = updateActiveChild(index);
|
|
@@ -21,12 +22,12 @@ export var useMultiBodiedExtensionActions = function useMultiBodiedExtensionActi
|
|
|
21
22
|
sendMBEAnalyticsEvent(ACTION.CHANGE_ACTIVE, node, eventDispatcher);
|
|
22
23
|
}
|
|
23
24
|
// On selection of a childFrame, we need to change the focus/selection to the end of the target child Frame
|
|
24
|
-
var
|
|
25
|
+
var possiblyMbeNode = state.doc.nodeAt(state.tr.selection.from);
|
|
25
26
|
var desiredPos = state.tr.selection.from || 0;
|
|
26
|
-
if (
|
|
27
|
-
for (var i = 0; i <= index && i < (
|
|
28
|
-
var
|
|
29
|
-
desiredPos += (
|
|
27
|
+
if (possiblyMbeNode && (possiblyMbeNode === null || possiblyMbeNode === void 0 || (_possiblyMbeNode$type = possiblyMbeNode.type) === null || _possiblyMbeNode$type === void 0 ? void 0 : _possiblyMbeNode$type.name) === 'multiBodiedExtension' && possiblyMbeNode !== null && possiblyMbeNode !== void 0 && possiblyMbeNode.content) {
|
|
28
|
+
for (var i = 0; i <= index && i < (possiblyMbeNode === null || possiblyMbeNode === void 0 || (_possiblyMbeNode$cont = possiblyMbeNode.content) === null || _possiblyMbeNode$cont === void 0 ? void 0 : _possiblyMbeNode$cont.childCount); i++) {
|
|
29
|
+
var _possiblyMbeNode$cont, _possiblyMbeNode$cont2;
|
|
30
|
+
desiredPos += (possiblyMbeNode === null || possiblyMbeNode === void 0 || (_possiblyMbeNode$cont2 = possiblyMbeNode.content) === null || _possiblyMbeNode$cont2 === void 0 || (_possiblyMbeNode$cont2 = _possiblyMbeNode$cont2.child(i)) === null || _possiblyMbeNode$cont2 === void 0 ? void 0 : _possiblyMbeNode$cont2.nodeSize) || 0;
|
|
30
31
|
}
|
|
31
32
|
/* desiredPos gives the cursor at the end of last child of the current frame, in case of paragraph nodes, this will be the end of the paragraph
|
|
32
33
|
* Performing -1 brings the cursor inside the paragraph, similar to a user click, so any pasted text will be inside the last paragraph rather than a new line
|
|
@@ -13,10 +13,11 @@ import { css, jsx } from '@emotion/react';
|
|
|
13
13
|
import classnames from 'classnames';
|
|
14
14
|
import EditorFileIcon from '@atlaskit/icon/glyph/editor/file';
|
|
15
15
|
import { useSharedPluginState } from '../../hooks';
|
|
16
|
+
import { sharedMultiBodiedExtensionStyles } from '../../ui/MultiBodiedExtension';
|
|
16
17
|
import { calculateBreakoutStyles, getExtensionLozengeData } from '../../utils';
|
|
17
18
|
import { WithPluginState } from '../../with-plugin-state';
|
|
18
19
|
import { useMultiBodiedExtensionActions } from './action-api';
|
|
19
|
-
import {
|
|
20
|
+
import { mbeExtensionWrapperCSS } from './styles';
|
|
20
21
|
// Similar to the one in platform/packages/editor/editor-common/src/extensibility/Extension/Lozenge.tsx
|
|
21
22
|
var getWrapperTitleContent = function getWrapperTitleContent(imageData, title) {
|
|
22
23
|
if (imageData) {
|
|
@@ -80,7 +81,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
|
|
|
80
81
|
var articleRef = React.useCallback(function (node) {
|
|
81
82
|
return handleContentDOMRef(node);
|
|
82
83
|
}, [handleContentDOMRef]);
|
|
83
|
-
var containerCssExtended = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", ";\n .multiBodiedExtension-content-dom-wrapper\n > [data-extension-frame='true']:nth-of-type(", ") {\n ", "\n }\n "])),
|
|
84
|
+
var containerCssExtended = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", ";\n .multiBodiedExtension-content-dom-wrapper\n > [data-extension-frame='true']:nth-of-type(", ") {\n ", "\n }\n "])), sharedMultiBodiedExtensionStyles.mbeExtensionContainer, activeChildIndex + 1, sharedMultiBodiedExtensionStyles.extensionFrameContent);
|
|
84
85
|
var shouldBreakout =
|
|
85
86
|
// Extension should breakout when the layout is set to 'full-width' or 'wide'.
|
|
86
87
|
['full-width', 'wide'].includes(node.attrs.layout) &&
|
|
@@ -109,7 +110,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref)
|
|
|
109
110
|
"data-active-child-index": activeChildIndex
|
|
110
111
|
}, jsx("nav", {
|
|
111
112
|
className: "multiBodiedExtension-navigation",
|
|
112
|
-
css:
|
|
113
|
+
css: sharedMultiBodiedExtensionStyles.mbeNavigation,
|
|
113
114
|
"data-testid": "multiBodiedExtension-navigation"
|
|
114
115
|
}, extensionHandlerResult), jsx("article", {
|
|
115
116
|
className: "multiBodiedExtension--frames",
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
-
var _templateObject
|
|
2
|
+
var _templateObject;
|
|
3
3
|
import { css } from '@emotion/react';
|
|
4
|
-
import { N30, N40 } from '@atlaskit/theme/colors';
|
|
5
4
|
import { wrapperDefault } from '../Extension/styles';
|
|
6
5
|
|
|
7
6
|
// Wrapper the extension title and extensionContainer
|
|
8
|
-
export var mbeExtensionWrapperCSS = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", ";\n cursor: pointer;\n .extension-title {\n display: flex;\n align-items: center;\n line-height: 16px !important;\n margin-bottom: ", ";\n margin-left: ", " !important;\n margin-right: ", ";\n padding-top: ", " !important;\n }\n"])), wrapperDefault, "var(--ds-space-100, 8px)", "var(--ds-space-050, 4px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
9
|
-
|
|
10
|
-
// Wraps the navigation bar and extensionFrames
|
|
11
|
-
export var mbeExtensionContainerCSS = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background: transpaent !important;\n padding: {\n bottom: ", " !important;\n left: ", " !important;\n right: ", " !important;\n }\n padding-bottom: ", ";\n position: relative;\n vertical-align: middle;\n cursor: pointer;\n\n .multiBodiedExtension-content-dom-wrapper > [data-extension-frame='true'] {\n display: none;\n background: ", ";\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-surface, white)");
|
|
12
|
-
export var mbeNavigationCSS = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n // make sure the user can't see a range selection inside the navigation\n // This is really important to keep the navigation working properly\n border-top-left-radius: ", ";\n border-top-right-radius: ", ";\n\n user-select: none;\n -webkit-user-modify: read-only;\n border: 1px solid ", ";\n border-bottom: none;\n background: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-border, ".concat(N40, ")"), "var(--ds-surface, white)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
13
|
-
export var extensionFrameContentCSS = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n padding: ", " !important;\n border: 1px solid ", ";\n display: block;\n min-height: 100px;\n background: ", ";\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n\n margin-left: ", ";\n margin-right: ", ";\n cursor: initial;\n\n .pm-table-container {\n margin-left: ", " !important;\n padding-right: ", " !important;\n }\n .pm-table-with-controls {\n margin-left: ", " !important;\n padding-right: ", " !important;\n }\n .bodiedExtensionView-content-wrap {\n margin-top: ", " !important;\n }\n // Extension wrap have an additional margin on all four borders, so we need to adjust the spacing\n // compared to the bodiedExtensionView-content-wrap\n .extensionView-content-wrap {\n margin-top: ", " !important;\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-border, ".concat(N30, ")"), "var(--ds-surface, white)", "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-200, 16px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-100, 8px)");
|
|
7
|
+
export var mbeExtensionWrapperCSS = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", ";\n cursor: pointer;\n margin-top: ", ";\n margin-bottom: ", ";\n .extension-title {\n display: flex;\n align-items: center;\n line-height: 16px !important;\n margin-bottom: ", ";\n margin-left: ", " !important;\n margin-right: ", ";\n padding-top: ", " !important;\n }\n"])), wrapperDefault, "var(--ds-space-250, 24px)", "var(--ds-space-200, 16px)", "var(--ds-space-100, 8px)", "var(--ds-space-050, 4px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
6
6
|
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; }
|
|
7
7
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
8
8
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
9
|
-
var packageVersion = "78.3.
|
|
9
|
+
var packageVersion = "78.3.1";
|
|
10
10
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
11
11
|
// Remove URL as it has UGC
|
|
12
12
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
|
-
var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent"];
|
|
5
|
+
var _excluded = ["width", "children", "handleClassName", "className", "handleResize", "handleResizeStart", "handleResizeStop", "handleSize", "handleAlignmentMethod", "handlePositioning", "appearance", "handleStyles", "resizeRatio", "snap", "snapGap", "isHandleVisible", "handleHighlight", "handleTooltipContent", "needExtendedResizeZone"];
|
|
6
6
|
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; }
|
|
7
7
|
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; }
|
|
8
8
|
import React, { forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
@@ -49,6 +49,8 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
49
49
|
_props$handleHighligh = props.handleHighlight,
|
|
50
50
|
handleHighlight = _props$handleHighligh === void 0 ? 'none' : _props$handleHighligh,
|
|
51
51
|
handleTooltipContent = props.handleTooltipContent,
|
|
52
|
+
_props$needExtendedRe = props.needExtendedResizeZone,
|
|
53
|
+
needExtendedResizeZone = _props$needExtendedRe === void 0 ? true : _props$needExtendedRe,
|
|
52
54
|
otherProps = _objectWithoutProperties(props, _excluded);
|
|
53
55
|
var onResizeStart = useCallback(function (event) {
|
|
54
56
|
// prevent creating a drag event on Firefox
|
|
@@ -101,6 +103,9 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
101
103
|
'is-resizing': isResizing,
|
|
102
104
|
'display-handle': isHandleVisible
|
|
103
105
|
}, resizerDangerClassName, appearance === 'danger'));
|
|
106
|
+
var resizerZoneClassName = classnames(resizerHoverZoneClassName, {
|
|
107
|
+
'is-extended': needExtendedResizeZone
|
|
108
|
+
});
|
|
104
109
|
var handleComponent = useMemo(function () {
|
|
105
110
|
return SUPPORTED_HANDLES.reduce(function (result, position) {
|
|
106
111
|
var thumb = /*#__PURE__*/React.createElement("button", {
|
|
@@ -162,7 +167,7 @@ var ResizerNext = function ResizerNext(props, ref) {
|
|
|
162
167
|
snap: snap,
|
|
163
168
|
handleComponent: handleComponent
|
|
164
169
|
}, otherProps), /*#__PURE__*/React.createElement("span", {
|
|
165
|
-
className:
|
|
170
|
+
className: resizerZoneClassName
|
|
166
171
|
}, children));
|
|
167
172
|
};
|
|
168
173
|
export default /*#__PURE__*/forwardRef(ResizerNext);
|
|
@@ -19,4 +19,4 @@ export var resizerDangerClassName = "".concat(resizerHandleClassName, "-danger")
|
|
|
19
19
|
var akEditorSelectedNodeClassName = 'ak-editor-selected-node';
|
|
20
20
|
export var handleWrapperClass = 'resizer-handle-wrapper';
|
|
21
21
|
export var resizerHandleZIndex = 1;
|
|
22
|
-
export var resizerStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " {\n will-change: width;\n\n &:hover,\n &.display-handle {\n & > .", " > .", " {\n visibility: visible;\n opacity: 1;\n }\n }\n\n &.is-resizing {\n & .", " {\n background: ", ";\n }\n }\n\n &.", " {\n & .", " {\n transition: none;\n background: ", ";\n }\n }\n }\n\n .", " {\n display: flex;\n visibility: hidden;\n opacity: 0;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 7px;\n transition: visibility 0.2s, opacity 0.2s;\n\n /*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n & div[role='presentation'] {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: ", ";\n white-space: normal;\n }\n\n /*\n Handle Positions\n */\n &.left {\n align-items: flex-start;\n }\n &.right {\n align-items: flex-end;\n }\n\n /*\n Handle Sizing\n */\n &.small {\n & .", " {\n height: 43px;\n }\n }\n &.medium {\n & .", " {\n height: 64px;\n }\n }\n &.large {\n & .", " {\n height: 96px;\n }\n }\n\n /*\n Handle Alignment\n */\n &.sticky {\n & .", " {\n position: sticky;\n top: ", ";\n bottom: ", ";\n }\n }\n\n &:hover {\n & .", " {\n background: ", ";\n }\n\n & .", " {\n visibility: visible;\n opacity: 0.5;\n }\n }\n }\n\n .", " {\n content: ' ';\n display: flex;\n width: 3px;\n margin: 0 ", ";\n height: 64px;\n transition: background-color 0.2s;\n border-radius: 6px;\n border: 0;\n padding: 0;\n z-index: 2;\n outline: none;\n min-height: 24px;\n background: ", ";\n\n &:hover {\n cursor: col-resize;\n }\n\n &:focus {\n background: ", ";\n\n &::after {\n content: '';\n position: absolute;\n top: ", ";\n right: ", ";\n bottom: ", ";\n left: ", ";\n border: 2px solid ", ";\n border-radius: inherit;\n z-index: -1;\n }\n }\n }\n\n .", " {\n visibility: hidden;\n position: absolute;\n width: 7px;\n height: calc(100% - 40px);\n border-radius: 4px;\n opacity: 0;\n transition: background-color 0.2s, visibility 0.2s, opacity 0.2s;\n\n &.none {\n background: none;\n }\n\n &.shadow {\n background: ", ";\n }\n\n &.full-height {\n background: ", ";\n height: 100%;\n min-height: 36px;\n }\n }\n\n .", " {\n & .", " {\n background: ", ";\n }\n }\n\n .", " {\n
|
|
22
|
+
export var resizerStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .", " {\n will-change: width;\n\n &:hover,\n &.display-handle {\n & > .", " > .", " {\n visibility: visible;\n opacity: 1;\n }\n }\n\n &.is-resizing {\n & .", " {\n background: ", ";\n }\n }\n\n &.", " {\n & .", " {\n transition: none;\n background: ", ";\n }\n }\n }\n\n .", " {\n display: flex;\n visibility: hidden;\n opacity: 0;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 7px;\n transition: visibility 0.2s, opacity 0.2s;\n\n /*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n & div[role='presentation'] {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: ", ";\n white-space: normal;\n }\n\n /*\n Handle Positions\n */\n &.left {\n align-items: flex-start;\n }\n &.right {\n align-items: flex-end;\n }\n\n /*\n Handle Sizing\n */\n &.small {\n & .", " {\n height: 43px;\n }\n }\n &.medium {\n & .", " {\n height: 64px;\n }\n }\n &.large {\n & .", " {\n height: 96px;\n }\n }\n\n /*\n Handle Alignment\n */\n &.sticky {\n & .", " {\n position: sticky;\n top: ", ";\n bottom: ", ";\n }\n }\n\n &:hover {\n & .", " {\n background: ", ";\n }\n\n & .", " {\n visibility: visible;\n opacity: 0.5;\n }\n }\n }\n\n .", " {\n content: ' ';\n display: flex;\n width: 3px;\n margin: 0 ", ";\n height: 64px;\n transition: background-color 0.2s;\n border-radius: 6px;\n border: 0;\n padding: 0;\n z-index: 2;\n outline: none;\n min-height: 24px;\n background: ", ";\n\n &:hover {\n cursor: col-resize;\n }\n\n &:focus {\n background: ", ";\n\n &::after {\n content: '';\n position: absolute;\n top: ", ";\n right: ", ";\n bottom: ", ";\n left: ", ";\n border: 2px solid ", ";\n border-radius: inherit;\n z-index: -1;\n }\n }\n }\n\n .", " {\n visibility: hidden;\n position: absolute;\n width: 7px;\n height: calc(100% - 40px);\n border-radius: 4px;\n opacity: 0;\n transition: background-color 0.2s, visibility 0.2s, opacity 0.2s;\n\n &.none {\n background: none;\n }\n\n &.shadow {\n background: ", ";\n }\n\n &.full-height {\n background: ", ";\n height: 100%;\n min-height: 36px;\n }\n }\n\n .", " {\n & .", " {\n background: ", ";\n }\n }\n\n .", " {\n position: relative;\n display: inline-block;\n width: 100%;\n\n &.is-extended {\n padding: 0 ", ";\n left: ", ";\n }\n }\n\n // This below style is here to make sure the image width is correct when nested in a table\n table .", " {\n padding: unset;\n left: unset;\n }\n"])), resizerItemClassName, handleWrapperClass, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border-focused, ".concat(B200, ")"), resizerDangerClassName, resizerHandleThumbClassName, "var(--ds-icon-danger, ".concat(akEditorDeleteIconColor, ")"), resizerHandleClassName, "var(--ds-space-negative-200, -16px)", resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", resizerHandleThumbClassName, "var(--ds-border-focused, ".concat(B200, ")"), resizerHandleTrackClassName, resizerHandleThumbClassName, "var(--ds-space-025, 2px)", "var(--ds-border, ".concat(N60, ")"), "var(--ds-border-selected, #0C66E4)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, "var(--ds-background-selected, ".concat(B50, ")"), "var(--ds-background-selected, ".concat(B50, ")"), akEditorSelectedNodeClassName, resizerHandleThumbClassName, "var(--ds-border-focused, ".concat(B200, ")"), resizerHoverZoneClassName, "var(--ds-space-150, 12px)", "var(--ds-space-negative-150, -12px)", resizerHoverZoneClassName);
|
|
@@ -17,7 +17,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
|
|
|
17
17
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
18
18
|
import Layer from '../Layer';
|
|
19
19
|
var packageName = "@atlaskit/editor-common";
|
|
20
|
-
var packageVersion = "78.3.
|
|
20
|
+
var packageVersion = "78.3.1";
|
|
21
21
|
var halfFocusRing = 1;
|
|
22
22
|
var dropOffset = '0, 8';
|
|
23
23
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -114,7 +114,7 @@ export var MediaSingleDimensionHelper = function MediaSingleDimensionHelper(_ref
|
|
|
114
114
|
isExtendedResizeExperienceOn = _ref.isExtendedResizeExperienceOn,
|
|
115
115
|
_ref$isNestedNode = _ref.isNestedNode,
|
|
116
116
|
isNestedNode = _ref$isNestedNode === void 0 ? false : _ref$isNestedNode;
|
|
117
|
-
return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n /* For nested rich media items, set max-width to 100% */\n tr &,\n [data-layout-column] &,\n [data-node-type='expand'] &,\n li & {\n max-width: 100%;\n }\n\n width: ", ";\n ", "\n max-width: ", ";\n\n ", "\n\n &:not(.is-resizing) {\n transition: width 100ms ease-in;\n }\n\n float: ", ";\n margin: ", ";\n\n &[class*='not-resizing'] {\n ", "\n }\n\n ", ";\n"])), isExtendedResizeExperienceOn ? "".concat(mediaSingleWidth || width, "px") : mediaSingleWidth ? calcResizedWidth(layout, width || 0, containerWidth) : calcLegacyWidth(layout, width || 0, containerWidth, fullWidthMode, isResized), layout === 'full-width' &&
|
|
117
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n /* For nested rich media items, set max-width to 100% */\n tr &,\n [data-layout-column] &,\n [data-node-type='expand'] &,\n [data-panel-type] &,\n li & {\n max-width: 100%;\n }\n\n width: ", ";\n ", "\n max-width: ", ";\n\n ", "\n\n &:not(.is-resizing) {\n transition: width 100ms ease-in;\n }\n\n float: ", ";\n margin: ", ";\n\n &[class*='not-resizing'] {\n ", "\n }\n\n ", ";\n"])), isExtendedResizeExperienceOn ? "".concat(mediaSingleWidth || width, "px") : mediaSingleWidth ? calcResizedWidth(layout, width || 0, containerWidth) : calcLegacyWidth(layout, width || 0, containerWidth, fullWidthMode, isResized), layout === 'full-width' &&
|
|
118
118
|
/* This causes issues for new experience where we don't strip layout attributes
|
|
119
119
|
when copying top-level node and pasting into a table/layout,
|
|
120
120
|
because full-width layout will remain, causing node to be edge-to-edge */
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
3
|
+
/** @jsx jsx */
|
|
4
|
+
|
|
5
|
+
import { css } from '@emotion/react';
|
|
6
|
+
import { N30, N40 } from '@atlaskit/theme/colors';
|
|
7
|
+
// Wraps the navigation bar and extensionFrames
|
|
8
|
+
var mbeExtensionContainer = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: transpaent !important;\n padding: {\n bottom: ", " !important;\n left: ", " !important;\n right: ", " !important;\n }\n padding-bottom: ", ";\n position: relative;\n vertical-align: middle;\n cursor: pointer;\n\n .multiBodiedExtension-handler-result {\n margin-left: ", ";\n }\n\n .multiBodiedExtension-content-dom-wrapper > [data-extension-frame='true'],\n .multiBodiedExtension--frames > [data-extension-frame='true'] {\n display: none;\n background: ", ";\n }\n\n .multiBodiedExtension-content-dom-wrapper,\n .multiBodiedExtension--frames {\n [data-extension-frame='true'] > :not(style):first-child,\n [data-extension-frame='true'] > style:first-child + * {\n margin-top: 0;\n }\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-surface, white)");
|
|
9
|
+
var mbeNavigation = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n // make sure the user can't see a range selection inside the navigation\n // This is really important to keep the navigation working properly\n border-top-left-radius: ", ";\n border-top-right-radius: ", ";\n\n user-select: none;\n -webkit-user-modify: read-only;\n border: 1px solid ", ";\n border-bottom: none !important;\n background: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-border, ".concat(N40, ")"), "var(--ds-surface, white)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
|
|
10
|
+
var extensionFrameContent = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: ", " !important;\n border: 1px solid ", ";\n display: block;\n min-height: 100px;\n background: ", ";\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n\n margin-left: ", ";\n margin-right: ", ";\n cursor: initial;\n\n .pm-table-with-controls {\n margin-left: ", " !important;\n padding-right: ", " !important;\n }\n .bodiedExtensionView-content-wrap {\n margin-top: ", " !important;\n }\n // Extension wrap have an additional margin on all four borders, so we need to adjust the spacing\n // compared to the bodiedExtensionView-content-wrap\n .extensionView-content-wrap {\n margin-top: ", " !important;\n }\n .decisionItemView-content-wrap {\n margin-top: 0px !important;\n }\n\n .decisionItemView-content-wrap > [data-decision-wrapper] {\n margin-top: 0px !important;\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-border, ".concat(N30, ")"), "var(--ds-surface, white)", "var(--ds-border-radius, 3px)", "var(--ds-border-radius, 3px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-100, 8px)");
|
|
11
|
+
export var sharedMultiBodiedExtensionStyles = {
|
|
12
|
+
mbeExtensionContainer: mbeExtensionContainer,
|
|
13
|
+
mbeNavigation: mbeNavigation,
|
|
14
|
+
extensionFrameContent: extensionFrameContent
|
|
15
|
+
};
|
package/dist/esm/ui/index.js
CHANGED
|
@@ -29,4 +29,5 @@ export { panelTextInput } from './PanelTextInput/styles';
|
|
|
29
29
|
export { default as PanelTextInput } from './PanelTextInput';
|
|
30
30
|
export { default as Announcer } from './Announcer/announcer';
|
|
31
31
|
export { EDIT_AREA_ID } from './Toolbar';
|
|
32
|
-
export { default as DropList } from './DropList';
|
|
32
|
+
export { default as DropList } from './DropList';
|
|
33
|
+
export { sharedMultiBodiedExtensionStyles } from './MultiBodiedExtension';
|
|
@@ -1,4 +1 @@
|
|
|
1
1
|
export declare const mbeExtensionWrapperCSS: import("@emotion/react").SerializedStyles;
|
|
2
|
-
export declare const mbeExtensionContainerCSS: import("@emotion/react").SerializedStyles;
|
|
3
|
-
export declare const mbeNavigationCSS: import("@emotion/react").SerializedStyles;
|
|
4
|
-
export declare const extensionFrameContentCSS: import("@emotion/react").SerializedStyles;
|
|
@@ -49,6 +49,10 @@ export type ResizerProps = {
|
|
|
49
49
|
* The handle can display a tooltip when mouse hovers.
|
|
50
50
|
*/
|
|
51
51
|
handleTooltipContent?: TooltipProps['content'];
|
|
52
|
+
/**
|
|
53
|
+
* control if extended resize zone is needed, by default we apply it to the resizer
|
|
54
|
+
*/
|
|
55
|
+
needExtendedResizeZone?: boolean;
|
|
52
56
|
};
|
|
53
57
|
type forwardRefType = {
|
|
54
58
|
getResizerThumbEl: () => HTMLButtonElement | null;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
export declare const sharedMultiBodiedExtensionStyles: {
|
|
3
|
+
mbeExtensionContainer: import("@emotion/react").SerializedStyles;
|
|
4
|
+
mbeNavigation: import("@emotion/react").SerializedStyles;
|
|
5
|
+
extensionFrameContent: import("@emotion/react").SerializedStyles;
|
|
6
|
+
};
|
package/dist/types/ui/index.d.ts
CHANGED
|
@@ -42,3 +42,4 @@ export { EDIT_AREA_ID } from './Toolbar';
|
|
|
42
42
|
export { default as DropList } from './DropList';
|
|
43
43
|
export type { UseStickyToolbarType } from './Toolbar';
|
|
44
44
|
export type { OpenChangedEvent } from './DropList';
|
|
45
|
+
export { sharedMultiBodiedExtensionStyles } from './MultiBodiedExtension';
|
|
@@ -1,4 +1 @@
|
|
|
1
1
|
export declare const mbeExtensionWrapperCSS: import("@emotion/react").SerializedStyles;
|
|
2
|
-
export declare const mbeExtensionContainerCSS: import("@emotion/react").SerializedStyles;
|
|
3
|
-
export declare const mbeNavigationCSS: import("@emotion/react").SerializedStyles;
|
|
4
|
-
export declare const extensionFrameContentCSS: import("@emotion/react").SerializedStyles;
|
|
@@ -49,6 +49,10 @@ export type ResizerProps = {
|
|
|
49
49
|
* The handle can display a tooltip when mouse hovers.
|
|
50
50
|
*/
|
|
51
51
|
handleTooltipContent?: TooltipProps['content'];
|
|
52
|
+
/**
|
|
53
|
+
* control if extended resize zone is needed, by default we apply it to the resizer
|
|
54
|
+
*/
|
|
55
|
+
needExtendedResizeZone?: boolean;
|
|
52
56
|
};
|
|
53
57
|
type forwardRefType = {
|
|
54
58
|
getResizerThumbEl: () => HTMLButtonElement | null;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
export declare const sharedMultiBodiedExtensionStyles: {
|
|
3
|
+
mbeExtensionContainer: import("@emotion/react").SerializedStyles;
|
|
4
|
+
mbeNavigation: import("@emotion/react").SerializedStyles;
|
|
5
|
+
extensionFrameContent: import("@emotion/react").SerializedStyles;
|
|
6
|
+
};
|
|
@@ -42,3 +42,4 @@ export { EDIT_AREA_ID } from './Toolbar';
|
|
|
42
42
|
export { default as DropList } from './DropList';
|
|
43
43
|
export type { UseStickyToolbarType } from './Toolbar';
|
|
44
44
|
export type { OpenChangedEvent } from './DropList';
|
|
45
|
+
export { sharedMultiBodiedExtensionStyles } from './MultiBodiedExtension';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "78.3.
|
|
3
|
+
"version": "78.3.1",
|
|
4
4
|
"description": "A package that contains common classes and components for editor and renderer",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"@atlaskit/icon-object": "^6.3.0",
|
|
113
113
|
"@atlaskit/in-product-testing": "^0.2.0",
|
|
114
114
|
"@atlaskit/link-datasource": "^1.22.0",
|
|
115
|
-
"@atlaskit/link-picker": "^1.
|
|
115
|
+
"@atlaskit/link-picker": "^1.34.0",
|
|
116
116
|
"@atlaskit/media-card": "^77.10.0",
|
|
117
117
|
"@atlaskit/media-client": "^26.2.0",
|
|
118
118
|
"@atlaskit/media-client-react": "^2.0.0",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"@atlaskit/task-decision": "^17.9.0",
|
|
131
131
|
"@atlaskit/textfield": "^6.0.0",
|
|
132
132
|
"@atlaskit/theme": "^12.6.0",
|
|
133
|
-
"@atlaskit/tokens": "^1.
|
|
133
|
+
"@atlaskit/tokens": "^1.38.0",
|
|
134
134
|
"@atlaskit/tooltip": "^18.1.0",
|
|
135
135
|
"@atlaskit/ufo": "^0.2.0",
|
|
136
136
|
"@atlaskit/width-detector": "^4.1.0",
|