@atlaskit/editor-common 78.37.0 → 78.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/cjs/element-browser/components/CategoryList.js +89 -8
- package/dist/cjs/element-browser/components/ElementList/ElementList.js +30 -4
- package/dist/cjs/element-browser/components/StatelessElementBrowser.js +77 -12
- package/dist/cjs/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +38 -4
- package/dist/cjs/messages/insert-block.js +9 -4
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/styles/index.js +7 -0
- package/dist/cjs/styles/shared/background-color.js +15 -0
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/FloatingToolbar/Separator.js +2 -1
- package/dist/es2019/element-browser/components/CategoryList.js +96 -12
- package/dist/es2019/element-browser/components/ElementList/ElementList.js +29 -3
- package/dist/es2019/element-browser/components/StatelessElementBrowser.js +78 -13
- package/dist/es2019/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +39 -5
- package/dist/es2019/messages/insert-block.js +9 -4
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/styles/index.js +1 -0
- package/dist/es2019/styles/shared/background-color.js +9 -0
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/FloatingToolbar/Separator.js +2 -1
- package/dist/esm/element-browser/components/CategoryList.js +89 -9
- package/dist/esm/element-browser/components/ElementList/ElementList.js +30 -4
- package/dist/esm/element-browser/components/StatelessElementBrowser.js +78 -13
- package/dist/esm/element-browser/hooks/use-select-and-focus-on-arrow-navigation.js +38 -4
- package/dist/esm/messages/insert-block.js +9 -4
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/styles/index.js +1 -0
- package/dist/esm/styles/shared/background-color.js +9 -0
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/FloatingToolbar/Separator.js +2 -1
- package/dist/types/element-browser/components/CategoryList.d.ts +5 -0
- package/dist/types/element-browser/components/ElementList/ElementList.d.ts +2 -0
- package/dist/types/element-browser/hooks/use-select-and-focus-on-arrow-navigation.d.ts +4 -1
- package/dist/types/messages/insert-block.d.ts +5 -0
- package/dist/types/styles/index.d.ts +1 -0
- package/dist/types/styles/shared/background-color.d.ts +1 -0
- package/dist/types-ts4.5/element-browser/components/CategoryList.d.ts +5 -0
- package/dist/types-ts4.5/element-browser/components/ElementList/ElementList.d.ts +2 -0
- package/dist/types-ts4.5/element-browser/hooks/use-select-and-focus-on-arrow-navigation.d.ts +4 -1
- package/dist/types-ts4.5/messages/insert-block.d.ts +5 -0
- package/dist/types-ts4.5/styles/index.d.ts +1 -0
- package/dist/types-ts4.5/styles/shared/background-color.d.ts +1 -0
- package/package.json +8 -5
|
@@ -7,31 +7,65 @@ var _excluded = ["categories"],
|
|
|
7
7
|
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; }
|
|
8
8
|
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; }
|
|
9
9
|
/** @jsx jsx */
|
|
10
|
-
|
|
11
10
|
import React, { Fragment, memo, useCallback } from 'react';
|
|
12
11
|
import { css, jsx } from '@emotion/react';
|
|
13
12
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
14
13
|
import Button from '@atlaskit/button/custom-theme-button';
|
|
14
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
15
15
|
import { B400, B50, N800 } from '@atlaskit/theme/colors';
|
|
16
16
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, fireAnalyticsEvent } from '../../analytics';
|
|
17
17
|
import { DEVICE_BREAKPOINT_NUMBERS, GRID_SIZE } from '../constants';
|
|
18
18
|
import useFocus from '../hooks/use-focus';
|
|
19
|
+
var arrowsKeys = new Set(['ArrowUp', 'ArrowDown']);
|
|
19
20
|
function CategoryList(_ref) {
|
|
20
21
|
var _ref$categories = _ref.categories,
|
|
21
22
|
categories = _ref$categories === void 0 ? [] : _ref$categories,
|
|
22
23
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
23
24
|
var _React$useState = React.useState(null),
|
|
24
25
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
focusedCategoryIndexState = _React$useState2[0],
|
|
27
|
+
setFocusedCategoryIndexState = _React$useState2[1];
|
|
28
|
+
var focusedCategoryIndexProp = props.focusedCategoryIndex,
|
|
29
|
+
setFocusedCategoryIndexProp = props.setFocusedCategoryIndex,
|
|
30
|
+
onSelectCategory = props.onSelectCategory;
|
|
31
|
+
var focusedCategoryIndex = getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1') ? focusedCategoryIndexProp : focusedCategoryIndexState;
|
|
32
|
+
var setFocusedCategoryIndex = getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1') ? setFocusedCategoryIndexProp : setFocusedCategoryIndexState;
|
|
27
33
|
return jsx(Fragment, null, categories.map(function (category, index) {
|
|
34
|
+
var categoriesLength = categories === null || categories === void 0 ? void 0 : categories.length;
|
|
35
|
+
var selectNextCategory;
|
|
36
|
+
var selectPreviousCategory;
|
|
37
|
+
if (getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1') && categoriesLength > 1) {
|
|
38
|
+
selectNextCategory = function selectNextCategory() {
|
|
39
|
+
if (index !== categoriesLength - 1) {
|
|
40
|
+
setFocusedCategoryIndex(index + 1);
|
|
41
|
+
onSelectCategory(categories[index + 1]);
|
|
42
|
+
} else {
|
|
43
|
+
setFocusedCategoryIndex(0);
|
|
44
|
+
onSelectCategory(categories[0]);
|
|
45
|
+
}
|
|
46
|
+
return;
|
|
47
|
+
};
|
|
48
|
+
selectPreviousCategory = function selectPreviousCategory() {
|
|
49
|
+
if (index !== 0) {
|
|
50
|
+
setFocusedCategoryIndex(index - 1);
|
|
51
|
+
onSelectCategory(categories[index - 1]);
|
|
52
|
+
} else {
|
|
53
|
+
setFocusedCategoryIndex(categoriesLength - 1);
|
|
54
|
+
onSelectCategory(categories[categoriesLength - 1]);
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
28
59
|
return jsx(CategoryListItem, _extends({
|
|
29
60
|
key: category.title,
|
|
30
61
|
index: index,
|
|
31
62
|
category: category,
|
|
32
|
-
focus: focusedCategoryIndex === index
|
|
33
|
-
|
|
34
|
-
|
|
63
|
+
focus: focusedCategoryIndex === index
|
|
64
|
+
}, props, {
|
|
65
|
+
setFocusedCategoryIndex: setFocusedCategoryIndex,
|
|
66
|
+
selectPreviousCategory: selectPreviousCategory,
|
|
67
|
+
selectNextCategory: selectNextCategory
|
|
68
|
+
}));
|
|
35
69
|
}));
|
|
36
70
|
}
|
|
37
71
|
function CategoryListItem(_ref2) {
|
|
@@ -41,10 +75,16 @@ function CategoryListItem(_ref2) {
|
|
|
41
75
|
index = _ref2.index,
|
|
42
76
|
focus = _ref2.focus,
|
|
43
77
|
setFocusedCategoryIndex = _ref2.setFocusedCategoryIndex,
|
|
44
|
-
createAnalyticsEvent = _ref2.createAnalyticsEvent
|
|
78
|
+
createAnalyticsEvent = _ref2.createAnalyticsEvent,
|
|
79
|
+
setFocusedItemIndex = _ref2.setFocusedItemIndex,
|
|
80
|
+
setFocusOnSearch = _ref2.setFocusOnSearch,
|
|
81
|
+
selectPreviousCategory = _ref2.selectPreviousCategory,
|
|
82
|
+
selectNextCategory = _ref2.selectNextCategory;
|
|
45
83
|
var ref = useFocus(focus);
|
|
46
84
|
var onClick = useCallback(function () {
|
|
47
|
-
|
|
85
|
+
if (!getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
86
|
+
onSelectCategory(category);
|
|
87
|
+
}
|
|
48
88
|
/**
|
|
49
89
|
* When user double clicks on same category, focus on first item.
|
|
50
90
|
*/
|
|
@@ -53,6 +93,9 @@ function CategoryListItem(_ref2) {
|
|
|
53
93
|
} else {
|
|
54
94
|
setFocusedCategoryIndex(index);
|
|
55
95
|
}
|
|
96
|
+
if (getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
97
|
+
onSelectCategory(category);
|
|
98
|
+
}
|
|
56
99
|
fireAnalyticsEvent(createAnalyticsEvent)({
|
|
57
100
|
payload: {
|
|
58
101
|
action: ACTION.CLICKED,
|
|
@@ -83,6 +126,41 @@ function CategoryListItem(_ref2) {
|
|
|
83
126
|
})
|
|
84
127
|
}, rest);
|
|
85
128
|
}, [category.name, selectedCategory]);
|
|
129
|
+
var onTabPress = useCallback(function (e) {
|
|
130
|
+
var isShiftPressed = e.shiftKey;
|
|
131
|
+
if (!isShiftPressed) {
|
|
132
|
+
// set focus from focused category to first item in it
|
|
133
|
+
if (setFocusedItemIndex) {
|
|
134
|
+
setFocusedItemIndex(0);
|
|
135
|
+
e.preventDefault();
|
|
136
|
+
}
|
|
137
|
+
} else {
|
|
138
|
+
// jump from first category back to search
|
|
139
|
+
if (setFocusOnSearch) {
|
|
140
|
+
setFocusOnSearch();
|
|
141
|
+
e.preventDefault();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return;
|
|
145
|
+
}, [setFocusedItemIndex, setFocusOnSearch]);
|
|
146
|
+
var onArrowPress = useCallback(function (e) {
|
|
147
|
+
if (e.key === 'ArrowUp' && selectPreviousCategory) {
|
|
148
|
+
return selectPreviousCategory();
|
|
149
|
+
}
|
|
150
|
+
if (e.key === 'ArrowDown' && selectNextCategory) {
|
|
151
|
+
return selectNextCategory();
|
|
152
|
+
}
|
|
153
|
+
}, [selectPreviousCategory, selectNextCategory]);
|
|
154
|
+
var onKeyDown = useCallback(function (e) {
|
|
155
|
+
var isTabPressed = e.key === 'Tab';
|
|
156
|
+
var isArrowPressed = arrowsKeys.has(e.key);
|
|
157
|
+
if (isTabPressed) {
|
|
158
|
+
return onTabPress(e);
|
|
159
|
+
}
|
|
160
|
+
if (isArrowPressed) {
|
|
161
|
+
return onArrowPress(e);
|
|
162
|
+
}
|
|
163
|
+
}, [onTabPress, onArrowPress]);
|
|
86
164
|
return jsx("div", {
|
|
87
165
|
css: buttonWrapper,
|
|
88
166
|
role: "presentation"
|
|
@@ -91,13 +169,15 @@ function CategoryListItem(_ref2) {
|
|
|
91
169
|
isSelected: selectedCategory === category.name,
|
|
92
170
|
onClick: onClick,
|
|
93
171
|
onFocus: onFocus,
|
|
172
|
+
onKeyDown: getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1') ? onKeyDown : undefined,
|
|
94
173
|
theme: getTheme,
|
|
95
174
|
role: "tab",
|
|
96
175
|
"aria-selected": selectedCategory === category.name ? 'true' : 'false',
|
|
97
176
|
"aria-controls": "browse-category-".concat(category.name, "-tab"),
|
|
98
177
|
id: "browse-category--".concat(category.name, "-button"),
|
|
99
178
|
ref: ref,
|
|
100
|
-
testId: "element-browser-category-item"
|
|
179
|
+
testId: "element-browser-category-item",
|
|
180
|
+
tabIndex: -1
|
|
101
181
|
}, category.title));
|
|
102
182
|
}
|
|
103
183
|
var buttonWrapper = css(_defineProperty({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["items", "mode", "selectedItemIndex", "focusedItemIndex", "setColumnCount", "createAnalyticsEvent", "emptyStateHandler", "selectedCategory", "searchTerm"];
|
|
4
|
+
var _excluded = ["items", "mode", "selectedItemIndex", "focusedItemIndex", "setColumnCount", "createAnalyticsEvent", "emptyStateHandler", "selectedCategory", "selectedCategoryIndex", "searchTerm", "setFocusedCategoryIndex", "setFocusedItemIndex"];
|
|
5
5
|
/** @jsx jsx */
|
|
6
6
|
import React, { Fragment, memo, useCallback, useEffect, useMemo, useState } from 'react';
|
|
7
7
|
import { css, jsx } from '@emotion/react';
|
|
@@ -11,6 +11,7 @@ import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
|
11
11
|
import { relativeFontSizeToBase16 } from '@atlaskit/editor-shared-styles';
|
|
12
12
|
import { shortcutStyle } from '@atlaskit/editor-shared-styles/shortcut';
|
|
13
13
|
import { ButtonItem } from '@atlaskit/menu';
|
|
14
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
14
15
|
import { B100, N200 } from '@atlaskit/theme/colors';
|
|
15
16
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
16
17
|
import Tooltip from '@atlaskit/tooltip';
|
|
@@ -49,7 +50,10 @@ function ElementList(_ref) {
|
|
|
49
50
|
createAnalyticsEvent = _ref.createAnalyticsEvent,
|
|
50
51
|
emptyStateHandler = _ref.emptyStateHandler,
|
|
51
52
|
selectedCategory = _ref.selectedCategory,
|
|
53
|
+
selectedCategoryIndex = _ref.selectedCategoryIndex,
|
|
52
54
|
searchTerm = _ref.searchTerm,
|
|
55
|
+
setFocusedCategoryIndex = _ref.setFocusedCategoryIndex,
|
|
56
|
+
setFocusedItemIndex = _ref.setFocusedItemIndex,
|
|
53
57
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
54
58
|
var _useContainerWidth = useContainerWidth(),
|
|
55
59
|
containerWidth = _useContainerWidth.containerWidth,
|
|
@@ -93,16 +97,38 @@ function ElementList(_ref) {
|
|
|
93
97
|
style: style,
|
|
94
98
|
key: key,
|
|
95
99
|
className: "element-item-wrapper",
|
|
96
|
-
css: elementItemWrapper
|
|
100
|
+
css: elementItemWrapper,
|
|
101
|
+
onKeyDown: getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1') ? function (e) {
|
|
102
|
+
if (e.key === 'Tab') {
|
|
103
|
+
if (e.shiftKey && index === 0) {
|
|
104
|
+
if (setFocusedCategoryIndex) {
|
|
105
|
+
if (!!selectedCategoryIndex) {
|
|
106
|
+
setFocusedCategoryIndex(selectedCategoryIndex);
|
|
107
|
+
} else {
|
|
108
|
+
setFocusedCategoryIndex(0);
|
|
109
|
+
}
|
|
110
|
+
e.preventDefault();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// before focus jumps from elements list we need to rerender react-virtualized collection.
|
|
114
|
+
// Otherwise on the next render 'scrollToCell' will have same cached value
|
|
115
|
+
// and collection will not be scrolled to top.
|
|
116
|
+
// So Tab press on category will not work anymore due to invisible 1-t element.
|
|
117
|
+
else if (index === items.length - 2) {
|
|
118
|
+
setFocusedItemIndex(items.length - 1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
} : undefined
|
|
97
122
|
}, jsx(MemoizedElementItem, _extends({
|
|
98
123
|
inlineMode: !fullMode,
|
|
99
124
|
index: index,
|
|
100
125
|
item: items[index],
|
|
101
126
|
selected: selectedItemIndex === index,
|
|
102
|
-
focus: focusedItemIndex === index
|
|
127
|
+
focus: focusedItemIndex === index,
|
|
128
|
+
setFocusedItemIndex: setFocusedItemIndex
|
|
103
129
|
}, props)));
|
|
104
130
|
};
|
|
105
|
-
}, [items, fullMode, selectedItemIndex, focusedItemIndex, props]);
|
|
131
|
+
}, [items, fullMode, selectedItemIndex, focusedItemIndex, selectedCategoryIndex, setFocusedCategoryIndex, setFocusedItemIndex, props]);
|
|
106
132
|
return jsx(Fragment, null, jsx(ContainerWidthMonitor, null), jsx("div", {
|
|
107
133
|
css: elementItemsWrapper,
|
|
108
134
|
"data-testid": "element-items",
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
/** @jsx jsx */
|
|
4
|
-
import React, { memo, useCallback, useEffect, useState } from 'react';
|
|
4
|
+
import React, { memo, useCallback, useEffect, useRef, useState } from 'react';
|
|
5
5
|
import { css, jsx } from '@emotion/react';
|
|
6
6
|
import { FormattedMessage } from 'react-intl-next';
|
|
7
7
|
import { withAnalyticsContext, withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
8
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
8
9
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, fireAnalyticsEvent } from '../../analytics';
|
|
9
10
|
import { DEVICE_BREAKPOINT_NUMBERS, GRID_SIZE, INLINE_SIDEBAR_HEIGHT, SIDEBAR_HEADING_WRAPPER_HEIGHT, SIDEBAR_WIDTH } from '../constants';
|
|
10
11
|
import useContainerWidth from '../hooks/use-container-width';
|
|
@@ -90,18 +91,43 @@ function StatelessElementBrowser(props) {
|
|
|
90
91
|
var items = props.items,
|
|
91
92
|
onSelectItem = props.onSelectItem,
|
|
92
93
|
onInsertItem = props.onInsertItem,
|
|
93
|
-
viewMoreItem = props.viewMoreItem
|
|
94
|
+
viewMoreItem = props.viewMoreItem,
|
|
95
|
+
selectedCategory = props.selectedCategory,
|
|
96
|
+
onSelectCategory = props.onSelectCategory,
|
|
97
|
+
searchTerm = props.searchTerm,
|
|
98
|
+
showCategories = props.showCategories;
|
|
94
99
|
var _useContainerWidth = useContainerWidth(),
|
|
95
100
|
containerWidth = _useContainerWidth.containerWidth,
|
|
96
101
|
ContainerWidthMonitor = _useContainerWidth.ContainerWidthMonitor;
|
|
102
|
+
var categoryBeenChosen = useRef(false);
|
|
97
103
|
var _useState = useState(1),
|
|
98
104
|
_useState2 = _slicedToArray(_useState, 2),
|
|
99
105
|
columnCount = _useState2[0],
|
|
100
106
|
setColumnCount = _useState2[1];
|
|
101
|
-
var
|
|
107
|
+
var selectedCategoryIndex;
|
|
108
|
+
var isFocusSearch;
|
|
109
|
+
if (getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
110
|
+
var _props$categories;
|
|
111
|
+
selectedCategoryIndex = (_props$categories = props.categories) === null || _props$categories === void 0 ? void 0 : _props$categories.findIndex(function (category) {
|
|
112
|
+
return category.name === selectedCategory;
|
|
113
|
+
});
|
|
114
|
+
if (showCategories) {
|
|
115
|
+
var isEmptySearchTerm = !searchTerm || (searchTerm === null || searchTerm === void 0 ? void 0 : searchTerm.length) === 0;
|
|
116
|
+
if (!isEmptySearchTerm) {
|
|
117
|
+
// clear the flag if the search happens after a user has chosen the category
|
|
118
|
+
categoryBeenChosen.current = false;
|
|
119
|
+
}
|
|
120
|
+
// A11Y: if categories exists, on the initial render search element should receive focus.
|
|
121
|
+
// After user pick some category the category should stay focused.
|
|
122
|
+
isFocusSearch = !categoryBeenChosen.current || !isEmptySearchTerm;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
var _useSelectAndFocusOnA = useSelectAndFocusOnArrowNavigation(items.length - 1, columnCount, !!viewMoreItem, isFocusSearch),
|
|
102
126
|
selectedItemIndex = _useSelectAndFocusOnA.selectedItemIndex,
|
|
103
127
|
focusedItemIndex = _useSelectAndFocusOnA.focusedItemIndex,
|
|
104
128
|
setFocusedItemIndex = _useSelectAndFocusOnA.setFocusedItemIndex,
|
|
129
|
+
setFocusedCategoryIndex = _useSelectAndFocusOnA.setFocusedCategoryIndex,
|
|
130
|
+
focusedCategoryIndex = _useSelectAndFocusOnA.focusedCategoryIndex,
|
|
105
131
|
focusOnSearch = _useSelectAndFocusOnA.focusOnSearch,
|
|
106
132
|
focusOnViewMore = _useSelectAndFocusOnA.focusOnViewMore,
|
|
107
133
|
onKeyDown = _useSelectAndFocusOnA.onKeyDown,
|
|
@@ -135,15 +161,29 @@ function StatelessElementBrowser(props) {
|
|
|
135
161
|
* The actual enter key press is handled on individual items level.
|
|
136
162
|
*/
|
|
137
163
|
var selectedItem = selectedItemIndex !== undefined ? items[selectedItemIndex] : null;
|
|
138
|
-
var
|
|
139
|
-
if (
|
|
140
|
-
|
|
164
|
+
var onItemsEnterTabKeyPress = useCallback(function (e) {
|
|
165
|
+
if (getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
166
|
+
if (e.key !== 'Enter' && (e.key !== 'Tab' || !showCategories)) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
if (e.key !== 'Enter') {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
175
|
+
if (showCategories && e.key === 'Tab' && selectedCategoryIndex !== undefined) {
|
|
176
|
+
// A11Y: Set focus on first category if tab pressed on search
|
|
177
|
+
setFocusedCategoryIndex(selectedCategoryIndex);
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
141
181
|
}
|
|
142
182
|
if (onInsertItem && selectedItem != null) {
|
|
143
183
|
onInsertItem(selectedItem);
|
|
144
184
|
}
|
|
145
185
|
e.preventDefault();
|
|
146
|
-
}, [onInsertItem, selectedItem]);
|
|
186
|
+
}, [onInsertItem, selectedItem, setFocusedCategoryIndex, showCategories, selectedCategoryIndex]);
|
|
147
187
|
|
|
148
188
|
/**
|
|
149
189
|
* On arrow key selection and clicks the selectedItemIndex will change.
|
|
@@ -154,6 +194,10 @@ function StatelessElementBrowser(props) {
|
|
|
154
194
|
onSelectItem(selectedItem);
|
|
155
195
|
}
|
|
156
196
|
}, [onSelectItem, selectedItem]);
|
|
197
|
+
var onSelectCategoryCB = useCallback(function (category) {
|
|
198
|
+
onSelectCategory(category);
|
|
199
|
+
categoryBeenChosen.current = true;
|
|
200
|
+
}, [categoryBeenChosen, onSelectCategory]);
|
|
157
201
|
return jsx("div", {
|
|
158
202
|
css: wrapper,
|
|
159
203
|
"data-testid": "element-browser"
|
|
@@ -161,10 +205,12 @@ function StatelessElementBrowser(props) {
|
|
|
161
205
|
selectedItemIndex: selectedItemIndex,
|
|
162
206
|
focusedItemIndex: focusedItemIndex,
|
|
163
207
|
setFocusedItemIndex: setFocusedItemIndex,
|
|
208
|
+
focusedCategoryIndex: focusedCategoryIndex,
|
|
209
|
+
setFocusedCategoryIndex: setFocusedCategoryIndex,
|
|
164
210
|
focusOnSearch: focusOnSearch,
|
|
165
211
|
setColumnCount: setColumnCount,
|
|
166
212
|
setFocusOnSearch: setFocusOnSearch,
|
|
167
|
-
onKeyPress:
|
|
213
|
+
onKeyPress: onItemsEnterTabKeyPress,
|
|
168
214
|
onKeyDown: onKeyDown,
|
|
169
215
|
viewMoreItem: viewMoreItem,
|
|
170
216
|
focusOnViewMore: focusOnViewMore
|
|
@@ -175,8 +221,12 @@ function StatelessElementBrowser(props) {
|
|
|
175
221
|
focusOnSearch: focusOnSearch,
|
|
176
222
|
setColumnCount: setColumnCount,
|
|
177
223
|
setFocusOnSearch: setFocusOnSearch,
|
|
178
|
-
onKeyPress:
|
|
179
|
-
onKeyDown: onKeyDown
|
|
224
|
+
onKeyPress: onItemsEnterTabKeyPress,
|
|
225
|
+
onKeyDown: onKeyDown,
|
|
226
|
+
focusedCategoryIndex: focusedCategoryIndex,
|
|
227
|
+
setFocusedCategoryIndex: setFocusedCategoryIndex,
|
|
228
|
+
selectedCategoryIndex: selectedCategoryIndex,
|
|
229
|
+
onSelectCategory: getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1') ? onSelectCategoryCB : onSelectCategory
|
|
180
230
|
})));
|
|
181
231
|
}
|
|
182
232
|
function MobileBrowser(_ref) {
|
|
@@ -192,6 +242,8 @@ function MobileBrowser(_ref) {
|
|
|
192
242
|
selectedItemIndex = _ref.selectedItemIndex,
|
|
193
243
|
focusedItemIndex = _ref.focusedItemIndex,
|
|
194
244
|
setFocusedItemIndex = _ref.setFocusedItemIndex,
|
|
245
|
+
focusedCategoryIndex = _ref.focusedCategoryIndex,
|
|
246
|
+
setFocusedCategoryIndex = _ref.setFocusedCategoryIndex,
|
|
195
247
|
focusOnSearch = _ref.focusOnSearch,
|
|
196
248
|
focusOnViewMore = _ref.focusOnViewMore,
|
|
197
249
|
setColumnCount = _ref.setColumnCount,
|
|
@@ -223,7 +275,11 @@ function MobileBrowser(_ref) {
|
|
|
223
275
|
}, jsx(CategoryList, {
|
|
224
276
|
categories: categories,
|
|
225
277
|
onSelectCategory: onSelectCategory,
|
|
226
|
-
selectedCategory: selectedCategory
|
|
278
|
+
selectedCategory: selectedCategory,
|
|
279
|
+
focusedCategoryIndex: focusedCategoryIndex,
|
|
280
|
+
setFocusedCategoryIndex: setFocusedCategoryIndex,
|
|
281
|
+
setFocusedItemIndex: setFocusedItemIndex,
|
|
282
|
+
setFocusOnSearch: setFocusOnSearch
|
|
227
283
|
}))), jsx("div", {
|
|
228
284
|
css: mobileMainContent
|
|
229
285
|
}, jsx(ElementList, {
|
|
@@ -256,6 +312,9 @@ function DesktopBrowser(_ref2) {
|
|
|
256
312
|
selectedItemIndex = _ref2.selectedItemIndex,
|
|
257
313
|
focusedItemIndex = _ref2.focusedItemIndex,
|
|
258
314
|
setFocusedItemIndex = _ref2.setFocusedItemIndex,
|
|
315
|
+
focusedCategoryIndex = _ref2.focusedCategoryIndex,
|
|
316
|
+
setFocusedCategoryIndex = _ref2.setFocusedCategoryIndex,
|
|
317
|
+
selectedCategoryIndex = _ref2.selectedCategoryIndex,
|
|
259
318
|
focusOnSearch = _ref2.focusOnSearch,
|
|
260
319
|
setColumnCount = _ref2.setColumnCount,
|
|
261
320
|
setFocusOnSearch = _ref2.setFocusOnSearch,
|
|
@@ -285,7 +344,11 @@ function DesktopBrowser(_ref2) {
|
|
|
285
344
|
categories: categories,
|
|
286
345
|
onSelectCategory: onSelectCategory,
|
|
287
346
|
selectedCategory: selectedCategory,
|
|
288
|
-
createAnalyticsEvent: createAnalyticsEvent
|
|
347
|
+
createAnalyticsEvent: createAnalyticsEvent,
|
|
348
|
+
focusedCategoryIndex: focusedCategoryIndex,
|
|
349
|
+
setFocusedCategoryIndex: setFocusedCategoryIndex,
|
|
350
|
+
setFocusedItemIndex: setFocusedItemIndex,
|
|
351
|
+
setFocusOnSearch: setFocusOnSearch
|
|
289
352
|
}))), jsx("div", {
|
|
290
353
|
css: mainContent,
|
|
291
354
|
onKeyDown: onKeyDown,
|
|
@@ -314,7 +377,9 @@ function DesktopBrowser(_ref2) {
|
|
|
314
377
|
createAnalyticsEvent: createAnalyticsEvent,
|
|
315
378
|
emptyStateHandler: emptyStateHandler,
|
|
316
379
|
selectedCategory: selectedCategory,
|
|
317
|
-
|
|
380
|
+
selectedCategoryIndex: selectedCategoryIndex,
|
|
381
|
+
searchTerm: searchTerm,
|
|
382
|
+
setFocusedCategoryIndex: showCategories ? setFocusedCategoryIndex : undefined
|
|
318
383
|
})));
|
|
319
384
|
}
|
|
320
385
|
var MemoizedElementBrowser = /*#__PURE__*/memo(withAnalyticsContext({
|
|
@@ -3,6 +3,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
3
3
|
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; }
|
|
4
4
|
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; }
|
|
5
5
|
import { useCallback, useEffect, useReducer, useRef } from 'react';
|
|
6
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* a custom hook that handles keyboard navigation for Arrow keys based on a
|
|
@@ -57,6 +58,7 @@ var reducer = function reducer(state, action) {
|
|
|
57
58
|
case ACTIONS.FOCUS_SEARCH:
|
|
58
59
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
59
60
|
focusedItemIndex: undefined,
|
|
61
|
+
focusedCategoryIndex: undefined,
|
|
60
62
|
focusOnSearch: true,
|
|
61
63
|
focusOnViewMore: false
|
|
62
64
|
});
|
|
@@ -166,7 +168,7 @@ var getInitialState = function getInitialState(listSize, canFocusViewMore) {
|
|
|
166
168
|
});
|
|
167
169
|
};
|
|
168
170
|
};
|
|
169
|
-
function useSelectAndFocusOnArrowNavigation(listSize, step, canFocusViewMore) {
|
|
171
|
+
function useSelectAndFocusOnArrowNavigation(listSize, step, canFocusViewMore, isFocusSearch) {
|
|
170
172
|
var _useReducer = useReducer(reducer, initialState, getInitialState(listSize, canFocusViewMore)),
|
|
171
173
|
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
172
174
|
state = _useReducer2[0],
|
|
@@ -182,16 +184,26 @@ function useSelectAndFocusOnArrowNavigation(listSize, step, canFocusViewMore) {
|
|
|
182
184
|
var selectedItemIndex = state.selectedItemIndex,
|
|
183
185
|
focusedItemIndex = state.focusedItemIndex,
|
|
184
186
|
focusOnSearch = state.focusOnSearch,
|
|
185
|
-
focusOnViewMore = state.focusOnViewMore
|
|
187
|
+
focusOnViewMore = state.focusOnViewMore,
|
|
188
|
+
focusedCategoryIndex = state.focusedCategoryIndex;
|
|
189
|
+
|
|
190
|
+
// calls if items size changed
|
|
186
191
|
var reset = useCallback(function (listSize) {
|
|
187
192
|
var payload = _objectSpread(_objectSpread({}, initialState), {}, {
|
|
188
193
|
listSize: listSize
|
|
189
194
|
});
|
|
195
|
+
if (getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
196
|
+
// A11Y: if categories exist ,on the initial render search element should receive focus.
|
|
197
|
+
// After user pick some category the category should stay focused.
|
|
198
|
+
payload = Object.assign(payload, {
|
|
199
|
+
focusOnSearch: isFocusSearch !== null && isFocusSearch !== void 0 ? isFocusSearch : initialState.focusOnSearch
|
|
200
|
+
});
|
|
201
|
+
}
|
|
190
202
|
dispatch({
|
|
191
203
|
type: ACTIONS.UPDATE_STATE,
|
|
192
204
|
payload: payload
|
|
193
205
|
});
|
|
194
|
-
}, []);
|
|
206
|
+
}, [isFocusSearch]);
|
|
195
207
|
var removeFocusFromSearchAndSetOnItem = useCallback(function (index) {
|
|
196
208
|
var payload = {
|
|
197
209
|
focusedItemIndex: index,
|
|
@@ -199,6 +211,26 @@ function useSelectAndFocusOnArrowNavigation(listSize, step, canFocusViewMore) {
|
|
|
199
211
|
focusOnSearch: false,
|
|
200
212
|
focusOnViewMore: false
|
|
201
213
|
};
|
|
214
|
+
if (getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
215
|
+
payload = Object.assign(payload, {
|
|
216
|
+
focusedCategoryIndex: undefined
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
dispatch({
|
|
220
|
+
type: ACTIONS.UPDATE_STATE,
|
|
221
|
+
payload: payload
|
|
222
|
+
});
|
|
223
|
+
}, [dispatch]);
|
|
224
|
+
var setFocusedCategoryIndex = useCallback(function (index) {
|
|
225
|
+
if (!getBooleanFF('platform.editor.a11y-focus-order-for-element-browser-categories_ztiw1')) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
var payload = {
|
|
229
|
+
focusOnSearch: false,
|
|
230
|
+
focusOnViewMore: false,
|
|
231
|
+
focusedCategoryIndex: index,
|
|
232
|
+
focusedItemIndex: undefined
|
|
233
|
+
};
|
|
202
234
|
dispatch({
|
|
203
235
|
type: ACTIONS.UPDATE_STATE,
|
|
204
236
|
payload: payload
|
|
@@ -263,7 +295,9 @@ function useSelectAndFocusOnArrowNavigation(listSize, step, canFocusViewMore) {
|
|
|
263
295
|
focusOnViewMore: focusOnViewMore,
|
|
264
296
|
setFocusOnSearch: setFocusOnSearch,
|
|
265
297
|
focusedItemIndex: focusedItemIndex,
|
|
266
|
-
setFocusedItemIndex: removeFocusFromSearchAndSetOnItem
|
|
298
|
+
setFocusedItemIndex: removeFocusFromSearchAndSetOnItem,
|
|
299
|
+
focusedCategoryIndex: focusedCategoryIndex,
|
|
300
|
+
setFocusedCategoryIndex: setFocusedCategoryIndex
|
|
267
301
|
};
|
|
268
302
|
}
|
|
269
303
|
export var ensureSafeIndex = function ensureSafeIndex(index, listSize) {
|
|
@@ -197,12 +197,17 @@ export var toolbarInsertBlockMessages = defineMessages({
|
|
|
197
197
|
},
|
|
198
198
|
addLoomVideo: {
|
|
199
199
|
id: 'fabric.editor.addLoomVideo',
|
|
200
|
-
defaultMessage: '
|
|
201
|
-
description: 'Record a
|
|
200
|
+
defaultMessage: 'Record a Loom video',
|
|
201
|
+
description: 'Record a Loom video'
|
|
202
|
+
},
|
|
203
|
+
addLoomVideoComment: {
|
|
204
|
+
id: 'fabric.editor.addLoomVideoComment',
|
|
205
|
+
defaultMessage: 'Record a Loom video comment',
|
|
206
|
+
description: 'Record a Loom video comment'
|
|
202
207
|
},
|
|
203
208
|
recordVideoDescription: {
|
|
204
209
|
id: 'fabric.editor.recordVideo.description',
|
|
205
|
-
defaultMessage: 'Record your screen and
|
|
206
|
-
description: 'Record your screen and
|
|
210
|
+
defaultMessage: 'Record and share your screen and thoughts',
|
|
211
|
+
description: 'Record and share your screen and thoughts'
|
|
207
212
|
}
|
|
208
213
|
});
|
|
@@ -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.37.
|
|
9
|
+
var packageVersion = "78.37.2";
|
|
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
|
package/dist/esm/styles/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { textColorStyles } from './shared/text-color';
|
|
2
|
+
export { backgroundColorStyles } from './shared/background-color';
|
|
2
3
|
export { tableSharedStyle, tableMarginTop, tableMarginBottom, tableMarginSides, tableCellMinWidth, tableNewColumnMinWidth, tableCellBorderWidth, calcTableWidth, TableSharedCssClassName, tableResizeHandleWidth, tableCellPadding, tableMarginTopWithControl } from './shared/table';
|
|
3
4
|
export { AnnotationSharedClassNames, BlockAnnotationSharedClassNames, AnnotationSharedCSSByState, annotationSharedStyles } from './shared/annotation';
|
|
4
5
|
export { columnLayoutSharedStyle } from './shared/column-layout';
|
|
@@ -15,7 +15,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
|
|
|
15
15
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
16
16
|
import Layer from '../Layer';
|
|
17
17
|
var packageName = "@atlaskit/editor-common";
|
|
18
|
-
var packageVersion = "78.37.
|
|
18
|
+
var packageVersion = "78.37.2";
|
|
19
19
|
var halfFocusRing = 1;
|
|
20
20
|
var dropOffset = '0, 8';
|
|
21
21
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import type { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
|
|
3
4
|
import type { Category } from '../types';
|
|
@@ -5,6 +6,10 @@ interface Props {
|
|
|
5
6
|
categories?: Category[];
|
|
6
7
|
onSelectCategory: (category: Category) => void;
|
|
7
8
|
selectedCategory?: string;
|
|
9
|
+
focusedCategoryIndex?: number;
|
|
10
|
+
setFocusedCategoryIndex: (index: number) => void;
|
|
11
|
+
setFocusedItemIndex: (index: number) => void;
|
|
12
|
+
setFocusOnSearch?: () => void;
|
|
8
13
|
}
|
|
9
14
|
declare const MemoizedCategoryListWithAnalytics: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<Props & WithAnalyticsEventsProps & import("@atlaskit/analytics-next").WithContextProps, "createAnalyticsEvent" | "analyticsContext" | keyof Props> & React.RefAttributes<any>>>;
|
|
10
15
|
export default MemoizedCategoryListWithAnalytics;
|
|
@@ -15,8 +15,10 @@ export interface Props {
|
|
|
15
15
|
onInsertItem: (item: QuickInsertItem) => void;
|
|
16
16
|
setColumnCount: (columnCount: number) => void;
|
|
17
17
|
setFocusedItemIndex: (index: number) => void;
|
|
18
|
+
setFocusedCategoryIndex?: (index: number) => void;
|
|
18
19
|
emptyStateHandler?: EmptyStateHandler;
|
|
19
20
|
selectedCategory?: string;
|
|
21
|
+
selectedCategoryIndex?: number;
|
|
20
22
|
searchTerm?: string;
|
|
21
23
|
}
|
|
22
24
|
type ElementItemType = {
|
|
@@ -45,6 +45,7 @@ type ReducerState = {
|
|
|
45
45
|
focusedItemIndex?: number;
|
|
46
46
|
listSize: number;
|
|
47
47
|
canFocusViewMore?: boolean;
|
|
48
|
+
focusedCategoryIndex?: number;
|
|
48
49
|
};
|
|
49
50
|
export declare enum ACTIONS {
|
|
50
51
|
FOCUS_SEARCH = "focusOnSearch",
|
|
@@ -64,9 +65,11 @@ export type useSelectAndFocusReturnType = {
|
|
|
64
65
|
focusOnSearch: boolean;
|
|
65
66
|
focusOnViewMore: boolean;
|
|
66
67
|
focusedItemIndex?: number;
|
|
68
|
+
focusedCategoryIndex?: number;
|
|
67
69
|
setFocusedItemIndex: (index?: number) => void;
|
|
70
|
+
setFocusedCategoryIndex: (index?: number) => void;
|
|
68
71
|
setFocusOnSearch: () => void;
|
|
69
72
|
};
|
|
70
|
-
declare function useSelectAndFocusOnArrowNavigation(listSize: number, step: number, canFocusViewMore: boolean): useSelectAndFocusReturnType;
|
|
73
|
+
declare function useSelectAndFocusOnArrowNavigation(listSize: number, step: number, canFocusViewMore: boolean, isFocusSearch?: boolean): useSelectAndFocusReturnType;
|
|
71
74
|
export declare const ensureSafeIndex: (index: number, listSize: number) => number;
|
|
72
75
|
export default useSelectAndFocusOnArrowNavigation;
|
|
@@ -199,6 +199,11 @@ export declare const toolbarInsertBlockMessages: {
|
|
|
199
199
|
defaultMessage: string;
|
|
200
200
|
description: string;
|
|
201
201
|
};
|
|
202
|
+
addLoomVideoComment: {
|
|
203
|
+
id: string;
|
|
204
|
+
defaultMessage: string;
|
|
205
|
+
description: string;
|
|
206
|
+
};
|
|
202
207
|
recordVideoDescription: {
|
|
203
208
|
id: string;
|
|
204
209
|
defaultMessage: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { textColorStyles } from './shared/text-color';
|
|
2
|
+
export { backgroundColorStyles } from './shared/background-color';
|
|
2
3
|
export { tableSharedStyle, tableMarginTop, tableMarginBottom, tableMarginSides, tableCellMinWidth, tableNewColumnMinWidth, tableCellBorderWidth, calcTableWidth, TableSharedCssClassName, tableResizeHandleWidth, tableCellPadding, tableMarginTopWithControl, } from './shared/table';
|
|
3
4
|
export { AnnotationSharedClassNames, BlockAnnotationSharedClassNames, AnnotationSharedCSSByState, annotationSharedStyles, } from './shared/annotation';
|
|
4
5
|
export { columnLayoutSharedStyle } from './shared/column-layout';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const backgroundColorStyles: import("@emotion/react").SerializedStyles;
|