@atlaskit/editor-plugin-media 1.23.2 → 1.24.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 +23 -0
- package/dist/cjs/nodeviews/mediaGroup.js +1 -2
- package/dist/cjs/nodeviews/mediaNodeView/index.js +1 -2
- package/dist/cjs/nodeviews/mediaSingle.js +1 -2
- package/dist/cjs/ui/ImageBorder/index.js +249 -18
- package/dist/cjs/ui/ImageBorder/styles.js +9 -3
- package/dist/es2019/nodeviews/mediaGroup.js +1 -2
- package/dist/es2019/nodeviews/mediaNodeView/index.js +1 -2
- package/dist/es2019/nodeviews/mediaSingle.js +1 -2
- package/dist/es2019/ui/ImageBorder/index.js +221 -8
- package/dist/es2019/ui/ImageBorder/styles.js +23 -0
- package/dist/esm/nodeviews/mediaGroup.js +1 -2
- package/dist/esm/nodeviews/mediaNodeView/index.js +1 -2
- package/dist/esm/nodeviews/mediaSingle.js +1 -2
- package/dist/esm/ui/ImageBorder/index.js +252 -21
- package/dist/esm/ui/ImageBorder/styles.js +8 -2
- package/dist/types/nodeviews/mediaGroup.d.ts +1 -2
- package/dist/types/nodeviews/mediaInline.d.ts +1 -2
- package/dist/types/nodeviews/mediaNodeView/index.d.ts +1 -2
- package/dist/types/nodeviews/mediaSingle.d.ts +1 -2
- package/dist/types/ui/ImageBorder/styles.d.ts +2 -0
- package/dist/types-ts4.5/nodeviews/mediaGroup.d.ts +1 -2
- package/dist/types-ts4.5/nodeviews/mediaInline.d.ts +1 -2
- package/dist/types-ts4.5/nodeviews/mediaNodeView/index.d.ts +1 -2
- package/dist/types-ts4.5/nodeviews/mediaSingle.d.ts +1 -2
- package/dist/types-ts4.5/ui/ImageBorder/styles.d.ts +2 -0
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-media
|
|
2
2
|
|
|
3
|
+
## 1.24.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#120417](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/120417)
|
|
8
|
+
[`26e76bb38b63f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/26e76bb38b63f) -
|
|
9
|
+
[ux] ECA11Y-175: This changes improves the floating toolbar a11y by making the image border
|
|
10
|
+
options menu accessible for keyboard-only users, and is behind the feature gate
|
|
11
|
+
`platform-editor-a11y-image-border-options-dropdown`.
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
14
|
+
## 1.24.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- [#119966](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/119966)
|
|
19
|
+
[`596ad24e38929`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/596ad24e38929) -
|
|
20
|
+
Clean up typescript references to LegacyPortalProviderAPI
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- Updated dependencies
|
|
25
|
+
|
|
3
26
|
## 1.23.2
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -372,11 +372,10 @@ var ReactMediaGroupNode = exports.ReactMediaGroupNode = function ReactMediaGroup
|
|
|
372
372
|
var mediaOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
373
373
|
var pluginInjectionApi = arguments.length > 4 ? arguments[4] : undefined;
|
|
374
374
|
return function (node, view, getPos) {
|
|
375
|
-
var hasIntlContext = true;
|
|
376
375
|
return new MediaGroupNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
377
376
|
providerFactory: providerFactory,
|
|
378
377
|
mediaOptions: mediaOptions,
|
|
379
378
|
pluginInjectionApi: pluginInjectionApi
|
|
380
|
-
}
|
|
379
|
+
}).init();
|
|
381
380
|
};
|
|
382
381
|
};
|
|
@@ -190,12 +190,11 @@ var ReactMediaNode = exports.ReactMediaNode = function ReactMediaNode(portalProv
|
|
|
190
190
|
var mediaOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
191
191
|
var pluginInjectionApi = arguments.length > 4 ? arguments[4] : undefined;
|
|
192
192
|
return function (node, view, getPos) {
|
|
193
|
-
var hasIntlContext = true;
|
|
194
193
|
return new MediaNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
195
194
|
eventDispatcher: eventDispatcher,
|
|
196
195
|
providerFactory: providerFactory,
|
|
197
196
|
mediaOptions: mediaOptions,
|
|
198
197
|
pluginInjectionApi: pluginInjectionApi
|
|
199
|
-
}
|
|
198
|
+
}).init();
|
|
200
199
|
};
|
|
201
200
|
};
|
|
@@ -698,7 +698,6 @@ var MediaSingleNodeView = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
698
698
|
var ReactMediaSingleNode = exports.ReactMediaSingleNode = function ReactMediaSingleNode(portalProviderAPI, eventDispatcher, providerFactory, pluginInjectionApi, dispatchAnalyticsEvent) {
|
|
699
699
|
var mediaOptions = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
700
700
|
return function (node, view, getPos) {
|
|
701
|
-
var hasIntlContext = true;
|
|
702
701
|
return new MediaSingleNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
703
702
|
eventDispatcher: eventDispatcher,
|
|
704
703
|
fullWidthMode: mediaOptions.fullWidthEnabled,
|
|
@@ -708,6 +707,6 @@ var ReactMediaSingleNode = exports.ReactMediaSingleNode = function ReactMediaSin
|
|
|
708
707
|
isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled,
|
|
709
708
|
pluginInjectionApi: pluginInjectionApi,
|
|
710
709
|
editorAppearance: mediaOptions.editorAppearance
|
|
711
|
-
}
|
|
710
|
+
}).init();
|
|
712
711
|
};
|
|
713
712
|
};
|
|
@@ -16,6 +16,7 @@ var _uiColor = require("@atlaskit/editor-common/ui-color");
|
|
|
16
16
|
var _uiMenu = require("@atlaskit/editor-common/ui-menu");
|
|
17
17
|
var _editorPalette = require("@atlaskit/editor-palette");
|
|
18
18
|
var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
|
|
19
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
19
20
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
20
21
|
var _styles2 = require("./styles");
|
|
21
22
|
/** @jsx jsx */
|
|
@@ -28,6 +29,11 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
28
29
|
borderMark = _ref.borderMark,
|
|
29
30
|
setBorder = _ref.setBorder;
|
|
30
31
|
var popupTarget = (0, _react.useRef)(null);
|
|
32
|
+
var dropDownColorOptionButton = (0, _react.useRef)(null);
|
|
33
|
+
var dropDownSizeOptionButton = (0, _react.useRef)(null);
|
|
34
|
+
var colorSubmenuRef = (0, _react.useRef)(null);
|
|
35
|
+
var sizeSubmenuRef = (0, _react.useRef)(null);
|
|
36
|
+
var openDropdownButtonRef = (0, _react.useRef)(null);
|
|
31
37
|
var enabled = !!borderMark;
|
|
32
38
|
var color = borderMark === null || borderMark === void 0 ? void 0 : borderMark.color;
|
|
33
39
|
var size = borderMark === null || borderMark === void 0 ? void 0 : borderMark.size;
|
|
@@ -37,12 +43,28 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
37
43
|
setIsOpen = _useState2[1];
|
|
38
44
|
var _useState3 = (0, _react.useState)(false),
|
|
39
45
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
isOpenByKeyboard = _useState4[0],
|
|
47
|
+
setIsOpenedByKeyboard = _useState4[1];
|
|
42
48
|
var _useState5 = (0, _react.useState)(false),
|
|
43
49
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
isColorSubmenuOpen = _useState6[0],
|
|
51
|
+
setIsColorSubmenuOpen = _useState6[1];
|
|
52
|
+
var _useState7 = (0, _react.useState)(false),
|
|
53
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
54
|
+
isSizeSubmenuOpen = _useState8[0],
|
|
55
|
+
setIsSizeSubmenuOpen = _useState8[1];
|
|
56
|
+
var handleColorSubmenuEsc = (0, _react.useCallback)(function () {
|
|
57
|
+
var _dropDownColorOptionB;
|
|
58
|
+
setIsOpenedByKeyboard(false);
|
|
59
|
+
setIsColorSubmenuOpen(false);
|
|
60
|
+
dropDownColorOptionButton === null || dropDownColorOptionButton === void 0 || (_dropDownColorOptionB = dropDownColorOptionButton.current) === null || _dropDownColorOptionB === void 0 || _dropDownColorOptionB.focus();
|
|
61
|
+
}, []);
|
|
62
|
+
var handleSizeSubmenuEsc = (0, _react.useCallback)(function () {
|
|
63
|
+
var _dropDownSizeOptionBu;
|
|
64
|
+
setIsOpenedByKeyboard(false);
|
|
65
|
+
setIsSizeSubmenuOpen(false);
|
|
66
|
+
dropDownSizeOptionButton === null || dropDownSizeOptionButton === void 0 || (_dropDownSizeOptionBu = dropDownSizeOptionButton.current) === null || _dropDownSizeOptionBu === void 0 || _dropDownSizeOptionBu.focus();
|
|
67
|
+
}, []);
|
|
46
68
|
var handleSubMenuRef = function handleSubMenuRef(ref) {
|
|
47
69
|
if (!ref) {
|
|
48
70
|
return;
|
|
@@ -52,6 +74,38 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
52
74
|
ref.style.left = "-".concat(rect.width, "px");
|
|
53
75
|
}
|
|
54
76
|
};
|
|
77
|
+
var handleTriggerByKeyboard = function handleTriggerByKeyboard(event, callback) {
|
|
78
|
+
if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
|
|
79
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
callback();
|
|
82
|
+
setIsOpenedByKeyboard(true);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
(0, _react.useEffect)(function () {
|
|
87
|
+
if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
|
|
88
|
+
var focusFirstOption = function focusFirstOption(submenuRef, isOpen) {
|
|
89
|
+
if (!isOpenByKeyboard) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (isOpen && submenuRef.current) {
|
|
93
|
+
var firstOption = submenuRef.current.querySelector('button');
|
|
94
|
+
if (!firstOption) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
firstOption.focus();
|
|
98
|
+
var keyboardEvent = new KeyboardEvent('keydown', {
|
|
99
|
+
key: 'ArrowDown',
|
|
100
|
+
bubbles: true
|
|
101
|
+
});
|
|
102
|
+
firstOption.dispatchEvent(keyboardEvent);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
focusFirstOption(colorSubmenuRef, isColorSubmenuOpen);
|
|
106
|
+
focusFirstOption(sizeSubmenuRef, isSizeSubmenuOpen);
|
|
107
|
+
}
|
|
108
|
+
}, [isColorSubmenuOpen, isSizeSubmenuOpen, isOpenByKeyboard]);
|
|
55
109
|
var borderSizeOptions = [{
|
|
56
110
|
name: formatMessage(_media.imageBorderMessages.borderSizeSubtle),
|
|
57
111
|
value: 1
|
|
@@ -62,7 +116,153 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
62
116
|
name: formatMessage(_media.imageBorderMessages.borderSizeBold),
|
|
63
117
|
value: 3
|
|
64
118
|
}];
|
|
65
|
-
var items = [{
|
|
119
|
+
var items = (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? [{
|
|
120
|
+
content: (0, _react2.jsx)("div", null, (0, _react2.jsx)("button", {
|
|
121
|
+
ref: dropDownColorOptionButton,
|
|
122
|
+
type: "button",
|
|
123
|
+
"aria-label": "Image border options Color dropdown button",
|
|
124
|
+
"data-testid": "image-border-dropdown-button-color"
|
|
125
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
|
|
126
|
+
,
|
|
127
|
+
css: [_styles2.dropdownOptionButton],
|
|
128
|
+
"aria-expanded": isColorSubmenuOpen,
|
|
129
|
+
onKeyDown: function onKeyDown(e) {
|
|
130
|
+
return handleTriggerByKeyboard(e, function () {
|
|
131
|
+
return setIsColorSubmenuOpen(!isColorSubmenuOpen);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}, (0, _react2.jsx)("span", null, formatMessage(_media.imageBorderMessages.borderColor)), (0, _react2.jsx)("div", {
|
|
135
|
+
css: (0, _styles2.contextualMenuColorIcon)(color && (0, _editorPalette.hexToEditorBorderPaletteColor)(color))
|
|
136
|
+
})), (0, _react2.jsx)("div", {
|
|
137
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
138
|
+
className: _styles.DropdownMenuSharedCssClassName.SUBMENU,
|
|
139
|
+
ref: colorSubmenuRef
|
|
140
|
+
}, isColorSubmenuOpen &&
|
|
141
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
|
|
142
|
+
(0, _react2.jsx)("div", {
|
|
143
|
+
css: (0, _styles2.contextualSubMenu)(0),
|
|
144
|
+
ref: handleSubMenuRef
|
|
145
|
+
}, (0, _react2.jsx)(_uiMenu.ArrowKeyNavigationProvider, {
|
|
146
|
+
type: _uiMenu.ArrowKeyNavigationType.MENU,
|
|
147
|
+
handleClose: function handleClose(e) {
|
|
148
|
+
e.preventDefault();
|
|
149
|
+
e.stopPropagation();
|
|
150
|
+
handleColorSubmenuEsc();
|
|
151
|
+
},
|
|
152
|
+
disableCloseOnArrowClick: true
|
|
153
|
+
}, (0, _react2.jsx)(_uiColor.ColorPalette, {
|
|
154
|
+
onClick: function onClick(color) {
|
|
155
|
+
setBorder({
|
|
156
|
+
color: color
|
|
157
|
+
});
|
|
158
|
+
setIsOpen(!isOpen);
|
|
159
|
+
},
|
|
160
|
+
onKeyDown: function onKeyDown(color, _, event) {
|
|
161
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
162
|
+
var _openDropdownButtonRe;
|
|
163
|
+
setBorder({
|
|
164
|
+
color: color
|
|
165
|
+
});
|
|
166
|
+
setIsOpen(!isOpen);
|
|
167
|
+
setIsColorSubmenuOpen(false);
|
|
168
|
+
setIsSizeSubmenuOpen(false);
|
|
169
|
+
(_openDropdownButtonRe = openDropdownButtonRef.current) === null || _openDropdownButtonRe === void 0 || _openDropdownButtonRe.focus();
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
selectedColor: color !== null && color !== void 0 ? color : null,
|
|
173
|
+
paletteOptions: {
|
|
174
|
+
palette: _uiColor.borderColorPalette,
|
|
175
|
+
paletteColorTooltipMessages: _uiColor.borderPaletteTooltipMessages,
|
|
176
|
+
hexToPaletteColor: _editorPalette.hexToEditorBorderPaletteColor
|
|
177
|
+
}
|
|
178
|
+
}))))),
|
|
179
|
+
'data-testid': 'dropdown-item__Color',
|
|
180
|
+
key: 'dropdown-menu-image-border-color-button',
|
|
181
|
+
value: {
|
|
182
|
+
name: 'color'
|
|
183
|
+
},
|
|
184
|
+
'aria-label': '',
|
|
185
|
+
wrapperTabIndex: null
|
|
186
|
+
}, {
|
|
187
|
+
content: (0, _react2.jsx)("div", null, (0, _react2.jsx)("button", {
|
|
188
|
+
type: "button",
|
|
189
|
+
"aria-label": "Image border options Size dropdown button",
|
|
190
|
+
"data-testid": "image-border-dropdown-button-size"
|
|
191
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
|
|
192
|
+
,
|
|
193
|
+
css: [_styles2.dropdownOptionButton],
|
|
194
|
+
"aria-expanded": isSizeSubmenuOpen,
|
|
195
|
+
ref: dropDownSizeOptionButton,
|
|
196
|
+
onKeyDown: function onKeyDown(e) {
|
|
197
|
+
return handleTriggerByKeyboard(e, function () {
|
|
198
|
+
return setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}, (0, _react2.jsx)("span", null, formatMessage(_media.imageBorderMessages.borderSize)), (0, _react2.jsx)("div", {
|
|
202
|
+
css: _styles2.contextualMenuArrow
|
|
203
|
+
})), (0, _react2.jsx)("div", {
|
|
204
|
+
//eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
205
|
+
className: _styles.DropdownMenuSharedCssClassName.SUBMENU,
|
|
206
|
+
ref: sizeSubmenuRef
|
|
207
|
+
}, isSizeSubmenuOpen && (0, _react2.jsx)(_uiMenu.ArrowKeyNavigationProvider, {
|
|
208
|
+
type: _uiMenu.ArrowKeyNavigationType.MENU,
|
|
209
|
+
handleClose: function handleClose(e) {
|
|
210
|
+
e.preventDefault();
|
|
211
|
+
handleSizeSubmenuEsc();
|
|
212
|
+
},
|
|
213
|
+
disableCloseOnArrowClick: true
|
|
214
|
+
}, (0, _react2.jsx)("div", {
|
|
215
|
+
css: (0, _styles2.contextualSubMenu)(1),
|
|
216
|
+
ref: handleSubMenuRef
|
|
217
|
+
}, borderSizeOptions.map(function (_ref2, idx) {
|
|
218
|
+
var name = _ref2.name,
|
|
219
|
+
value = _ref2.value;
|
|
220
|
+
return (0, _react2.jsx)(_tooltip.default, {
|
|
221
|
+
key: idx,
|
|
222
|
+
content: name
|
|
223
|
+
}, (0, _react2.jsx)("span", {
|
|
224
|
+
css: _styles2.buttonWrapperStyle
|
|
225
|
+
}, (0, _react2.jsx)("button", {
|
|
226
|
+
type: "button"
|
|
227
|
+
/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 */,
|
|
228
|
+
css: (0, _styles2.buttonStyle)(value === size),
|
|
229
|
+
"aria-label": name,
|
|
230
|
+
role: "radio",
|
|
231
|
+
"aria-checked": value === size,
|
|
232
|
+
onClick: function onClick() {
|
|
233
|
+
setBorder({
|
|
234
|
+
size: value
|
|
235
|
+
});
|
|
236
|
+
setIsOpen(false);
|
|
237
|
+
},
|
|
238
|
+
onKeyDown: function onKeyDown(event) {
|
|
239
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
240
|
+
var _openDropdownButtonRe2;
|
|
241
|
+
setBorder({
|
|
242
|
+
size: value
|
|
243
|
+
});
|
|
244
|
+
setIsOpen(false);
|
|
245
|
+
setIsColorSubmenuOpen(false);
|
|
246
|
+
setIsSizeSubmenuOpen(false);
|
|
247
|
+
(_openDropdownButtonRe2 = openDropdownButtonRef.current) === null || _openDropdownButtonRe2 === void 0 || _openDropdownButtonRe2.focus();
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
onMouseDown: function onMouseDown(e) {
|
|
251
|
+
e.preventDefault();
|
|
252
|
+
}
|
|
253
|
+
}, (0, _react2.jsx)("div", {
|
|
254
|
+
css: (0, _styles2.line)(value, value === size),
|
|
255
|
+
role: "presentation"
|
|
256
|
+
}))));
|
|
257
|
+
}))))),
|
|
258
|
+
'data-testid': 'dropdown-item__Size',
|
|
259
|
+
key: 'dropdown-menu-image-border-size-button',
|
|
260
|
+
value: {
|
|
261
|
+
name: 'size'
|
|
262
|
+
},
|
|
263
|
+
'aria-label': '',
|
|
264
|
+
wrapperTabIndex: null
|
|
265
|
+
}] : [{
|
|
66
266
|
content: formatMessage(_media.imageBorderMessages.borderColor),
|
|
67
267
|
value: {
|
|
68
268
|
name: 'color'
|
|
@@ -108,9 +308,9 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
108
308
|
(0, _react2.jsx)("div", {
|
|
109
309
|
css: (0, _styles2.contextualSubMenu)(1),
|
|
110
310
|
ref: handleSubMenuRef
|
|
111
|
-
}, borderSizeOptions.map(function (
|
|
112
|
-
var name =
|
|
113
|
-
value =
|
|
311
|
+
}, borderSizeOptions.map(function (_ref3, idx) {
|
|
312
|
+
var name = _ref3.name,
|
|
313
|
+
value = _ref3.value;
|
|
114
314
|
return (0, _react2.jsx)(_tooltip.default, {
|
|
115
315
|
key: idx,
|
|
116
316
|
content: name
|
|
@@ -139,7 +339,6 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
139
339
|
}))));
|
|
140
340
|
})))
|
|
141
341
|
}];
|
|
142
|
-
|
|
143
342
|
/**
|
|
144
343
|
* We want to change direction of our dropdowns a bit early,
|
|
145
344
|
* not exactly when it hits the boundary.
|
|
@@ -147,6 +346,7 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
147
346
|
var fitTolerance = 10;
|
|
148
347
|
var fitWidth = _styles2.menuItemDimensions.width;
|
|
149
348
|
var fitHeight = items.length * (_styles2.menuItemDimensions.height + _styles2.itemSpacing);
|
|
349
|
+
var isAnySubMenuOpen = isSizeSubmenuOpen || isColorSubmenuOpen;
|
|
150
350
|
return (0, _react2.jsx)("div", null, (0, _react2.jsx)("div", {
|
|
151
351
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
|
|
152
352
|
css: (0, _styles2.toolbarButtonWrapper)({
|
|
@@ -171,7 +371,9 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
171
371
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
172
372
|
, {
|
|
173
373
|
className: "image-border-toolbar-dropdown",
|
|
374
|
+
ref: openDropdownButtonRef,
|
|
174
375
|
selected: enabled || isOpen,
|
|
376
|
+
"aria-expanded": (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isOpen : undefined,
|
|
175
377
|
"aria-label": formatMessage(_media.imageBorderMessages.borderOptions),
|
|
176
378
|
title: formatMessage(_media.imageBorderMessages.borderOptions),
|
|
177
379
|
spacing: "compact",
|
|
@@ -180,7 +382,15 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
180
382
|
}),
|
|
181
383
|
onClick: function onClick() {
|
|
182
384
|
setIsOpen(!isOpen);
|
|
183
|
-
|
|
385
|
+
if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
|
|
386
|
+
setIsOpenedByKeyboard(false);
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
onKeyDown: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? function (e) {
|
|
390
|
+
return handleTriggerByKeyboard(e, function () {
|
|
391
|
+
return setIsOpen(!isOpen);
|
|
392
|
+
});
|
|
393
|
+
} : undefined
|
|
184
394
|
}))), (0, _react2.jsx)(_ui.Popup, {
|
|
185
395
|
target: popupTarget.current ? popupTarget.current : undefined,
|
|
186
396
|
fitWidth: fitWidth + fitTolerance,
|
|
@@ -191,7 +401,9 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
191
401
|
onMouseLeave: function onMouseLeave() {
|
|
192
402
|
setIsColorSubmenuOpen(false);
|
|
193
403
|
setIsSizeSubmenuOpen(false);
|
|
194
|
-
}
|
|
404
|
+
},
|
|
405
|
+
css: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? /* eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 */
|
|
406
|
+
_styles2.dropdownWrapper : undefined
|
|
195
407
|
}, (0, _react2.jsx)(_uiMenu.DropdownMenu
|
|
196
408
|
//This needs be removed when the a11y is completely handled
|
|
197
409
|
//Disabling key navigation now as it works only partially
|
|
@@ -199,19 +411,32 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
199
411
|
, {
|
|
200
412
|
arrowKeyNavigationProviderOptions: {
|
|
201
413
|
type: _uiMenu.ArrowKeyNavigationType.MENU,
|
|
202
|
-
disableArrowKeyNavigation: true
|
|
414
|
+
disableArrowKeyNavigation: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isAnySubMenuOpen ? true : false : true
|
|
203
415
|
},
|
|
416
|
+
allowEnterDefaultBehavior: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isAnySubMenuOpen ? true : false : undefined,
|
|
417
|
+
handleEscapeKeydown: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? isAnySubMenuOpen ? function () {
|
|
418
|
+
return;
|
|
419
|
+
} : function () {
|
|
420
|
+
var _openDropdownButtonRe3;
|
|
421
|
+
(_openDropdownButtonRe3 = openDropdownButtonRef.current) === null || _openDropdownButtonRe3 === void 0 || _openDropdownButtonRe3.focus();
|
|
422
|
+
} : undefined,
|
|
204
423
|
items: [{
|
|
205
424
|
items: items
|
|
206
425
|
}],
|
|
207
426
|
isOpen: isOpen,
|
|
427
|
+
shouldFocusFirstItem: (0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown') ? function () {
|
|
428
|
+
return isOpenByKeyboard;
|
|
429
|
+
} : undefined,
|
|
208
430
|
onOpenChange: function onOpenChange() {
|
|
209
431
|
setIsOpen(false);
|
|
210
432
|
setIsColorSubmenuOpen(false);
|
|
211
433
|
setIsSizeSubmenuOpen(false);
|
|
434
|
+
if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
|
|
435
|
+
setIsOpenedByKeyboard(false);
|
|
436
|
+
}
|
|
212
437
|
},
|
|
213
|
-
onItemActivated: function onItemActivated(
|
|
214
|
-
var item =
|
|
438
|
+
onItemActivated: function onItemActivated(_ref4) {
|
|
439
|
+
var item = _ref4.item;
|
|
215
440
|
if (item.value.name === 'color') {
|
|
216
441
|
setIsColorSubmenuOpen(!isColorSubmenuOpen);
|
|
217
442
|
}
|
|
@@ -219,17 +444,23 @@ var ImageBorder = function ImageBorder(_ref) {
|
|
|
219
444
|
setIsSizeSubmenuOpen(!isSizeSubmenuOpen);
|
|
220
445
|
}
|
|
221
446
|
},
|
|
222
|
-
onMouseEnter: function onMouseEnter(
|
|
223
|
-
var item =
|
|
447
|
+
onMouseEnter: function onMouseEnter(_ref5) {
|
|
448
|
+
var item = _ref5.item;
|
|
224
449
|
if (item.value.name === 'color') {
|
|
225
450
|
setIsColorSubmenuOpen(true);
|
|
451
|
+
if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
|
|
452
|
+
setIsOpenedByKeyboard(false);
|
|
453
|
+
}
|
|
226
454
|
}
|
|
227
455
|
if (item.value.name === 'size') {
|
|
228
456
|
setIsSizeSubmenuOpen(true);
|
|
457
|
+
if ((0, _platformFeatureFlags.fg)('platform-editor-a11y-image-border-options-dropdown')) {
|
|
458
|
+
setIsOpenedByKeyboard(false);
|
|
459
|
+
}
|
|
229
460
|
}
|
|
230
461
|
},
|
|
231
|
-
onMouseLeave: function onMouseLeave(
|
|
232
|
-
var item =
|
|
462
|
+
onMouseLeave: function onMouseLeave(_ref6) {
|
|
463
|
+
var item = _ref6.item;
|
|
233
464
|
if (item.value.name === 'color') {
|
|
234
465
|
setIsColorSubmenuOpen(false);
|
|
235
466
|
}
|
|
@@ -5,14 +5,14 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.toolbarButtonWrapper = exports.menuItemDimensions = exports.line = exports.itemSpacing = exports.contextualSubMenu = exports.contextualMenuColorIcon = exports.contextualMenuArrow = exports.buttonWrapperStyle = exports.buttonStyle = void 0;
|
|
8
|
+
exports.toolbarButtonWrapper = exports.menuItemDimensions = exports.line = exports.itemSpacing = exports.dropdownWrapper = exports.dropdownOptionButton = exports.contextualSubMenu = exports.contextualMenuColorIcon = exports.contextualMenuArrow = exports.buttonWrapperStyle = exports.buttonStyle = void 0;
|
|
9
9
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
10
|
var _react = require("@emotion/react");
|
|
11
11
|
var _uiColor = require("@atlaskit/editor-common/ui-color");
|
|
12
12
|
var _colors = _interopRequireWildcard(require("@atlaskit/theme/colors"));
|
|
13
13
|
var colors = _colors;
|
|
14
14
|
var _constants = require("@atlaskit/theme/constants");
|
|
15
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
15
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
16
16
|
/* eslint-disable @atlaskit/design-system/no-css-tagged-template-expression -- Needs manual remediation*/
|
|
17
17
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
18
18
|
// eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
|
|
@@ -55,4 +55,10 @@ var toolbarButtonWrapper = exports.toolbarButtonWrapper = function toolbarButton
|
|
|
55
55
|
var enabled = _ref.enabled,
|
|
56
56
|
isOpen = _ref.isOpen;
|
|
57
57
|
return (0, _react.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n\tdisplay: flex;\n\t.image-border-toolbar-btn {\n\t\tborder-top-right-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\t\tpadding: 0;\n\t\t& > span {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n\t.image-border-toolbar-dropdown {\n\t\tpadding: 0;\n\t\t& > span {\n\t\t\tmargin: 0;\n\t\t}\n\t\twidth: 16px !important;\n\t\tborder-top-left-radius: 0 !important;\n\t\tborder-bottom-left-radius: 0 !important;\n\t\tmargin-left: ", ";\n\t}\n\n\t", "\n\t", "\n"])), "var(--ds-space-025, 2px)", !enabled && getHoverStyles('.image-border-toolbar-btn'), !isOpen && !enabled && getHoverStyles('.image-border-toolbar-dropdown'));
|
|
58
|
-
};
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles
|
|
61
|
+
var dropdownOptionButton = exports.dropdownOptionButton = (0, _react.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n\tbackground: transparent;\n\tborder: 2px solid transparent;\n\tdisplay: flex;\n\twidth: 100%;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 8px 16px;\n\n\t&:focus {\n\t\tbackground-color: ", ";\n\t\tborder: 2px solid ", ";\n\t}\n"])), "var(--ds-background-neutral-subtle-hovered, rgb(244, 245, 247))", "var(--ds-border-focused, #2684FF)");
|
|
62
|
+
|
|
63
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles
|
|
64
|
+
var dropdownWrapper = exports.dropdownWrapper = (0, _react.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n\tspan[role='menuitem'] {\n\t\tpadding: 0;\n\t}\n"])));
|
|
@@ -311,10 +311,9 @@ class MediaGroupNodeView extends ReactNodeView {
|
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
export const ReactMediaGroupNode = (portalProviderAPI, eventDispatcher, providerFactory, mediaOptions = {}, pluginInjectionApi) => (node, view, getPos) => {
|
|
314
|
-
const hasIntlContext = true;
|
|
315
314
|
return new MediaGroupNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
316
315
|
providerFactory,
|
|
317
316
|
mediaOptions,
|
|
318
317
|
pluginInjectionApi
|
|
319
|
-
}
|
|
318
|
+
}).init();
|
|
320
319
|
};
|
|
@@ -161,11 +161,10 @@ class MediaNodeView extends SelectionBasedNodeView {
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
export const ReactMediaNode = (portalProviderAPI, eventDispatcher, providerFactory, mediaOptions = {}, pluginInjectionApi) => (node, view, getPos) => {
|
|
164
|
-
const hasIntlContext = true;
|
|
165
164
|
return new MediaNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
166
165
|
eventDispatcher,
|
|
167
166
|
providerFactory,
|
|
168
167
|
mediaOptions,
|
|
169
168
|
pluginInjectionApi
|
|
170
|
-
}
|
|
169
|
+
}).init();
|
|
171
170
|
};
|
|
@@ -585,7 +585,6 @@ class MediaSingleNodeView extends ReactNodeView {
|
|
|
585
585
|
}
|
|
586
586
|
}
|
|
587
587
|
export const ReactMediaSingleNode = (portalProviderAPI, eventDispatcher, providerFactory, pluginInjectionApi, dispatchAnalyticsEvent, mediaOptions = {}) => (node, view, getPos) => {
|
|
588
|
-
const hasIntlContext = true;
|
|
589
588
|
return new MediaSingleNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
590
589
|
eventDispatcher,
|
|
591
590
|
fullWidthMode: mediaOptions.fullWidthEnabled,
|
|
@@ -595,5 +594,5 @@ export const ReactMediaSingleNode = (portalProviderAPI, eventDispatcher, provide
|
|
|
595
594
|
isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled,
|
|
596
595
|
pluginInjectionApi,
|
|
597
596
|
editorAppearance: mediaOptions.editorAppearance
|
|
598
|
-
}
|
|
597
|
+
}).init();
|
|
599
598
|
};
|