@atlaskit/editor-plugin-quick-insert 16.2.7 → 16.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 +37 -0
- package/dist/cjs/quickInsertPlugin.js +1 -1
- package/dist/cjs/ui/RegistryElementBrowser/NotFoundIllustration.js +76 -0
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowser.compiled.css +7 -2
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowser.js +61 -9
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserCategories.compiled.css +3 -1
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserCategories.js +12 -9
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserFooter.js +28 -10
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.compiled.css +20 -2
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +23 -31
- package/dist/cjs/ui/RegistryElementBrowser/model.js +9 -2
- package/dist/es2019/quickInsertPlugin.js +1 -1
- package/dist/es2019/ui/RegistryElementBrowser/NotFoundIllustration.js +69 -0
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowser.compiled.css +7 -2
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowser.js +61 -9
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserCategories.compiled.css +3 -1
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserCategories.js +11 -8
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserFooter.js +28 -10
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.compiled.css +20 -2
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +24 -32
- package/dist/es2019/ui/RegistryElementBrowser/model.js +10 -2
- package/dist/esm/quickInsertPlugin.js +1 -1
- package/dist/esm/ui/RegistryElementBrowser/NotFoundIllustration.js +69 -0
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowser.compiled.css +7 -2
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowser.js +61 -9
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserCategories.compiled.css +3 -1
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserCategories.js +12 -9
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserFooter.js +28 -10
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.compiled.css +20 -2
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +24 -32
- package/dist/esm/ui/RegistryElementBrowser/model.js +9 -2
- package/dist/types/quickInsertPluginType.d.ts +9 -1
- package/dist/types/ui/RegistryElementBrowser/NotFoundIllustration.d.ts +1 -0
- package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowserCategories.d.ts +1 -2
- package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowserFooter.d.ts +2 -1
- package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.d.ts +1 -2
- package/dist/types/ui/RegistryElementBrowser/model.d.ts +1 -0
- package/package.json +3 -3
|
@@ -4,21 +4,29 @@ import "./RegistryElementBrowser.compiled.css";
|
|
|
4
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
5
5
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
6
6
|
import { useIntl } from 'react-intl';
|
|
7
|
+
import IconButton from '@atlaskit/button/icon/button';
|
|
7
8
|
import Heading from '@atlaskit/heading/heading';
|
|
8
9
|
import { MENU, RECOMMENDED_SECTION } from '@atlaskit/editor-common/quick-insert/keys';
|
|
9
10
|
import { getMenuFooterSectionKey } from '@atlaskit/editor-common/type-ahead-get-menu-footer-section-key';
|
|
10
11
|
import { getSectionOverflowItemKey } from '@atlaskit/editor-common/type-ahead-get-section-overflow-item-key';
|
|
12
|
+
import CrossIcon from '@atlaskit/icon/core/cross';
|
|
11
13
|
import Modal from '@atlaskit/modal-dialog/modal-dialog';
|
|
12
14
|
import ModalBody from '@atlaskit/modal-dialog/modal-body';
|
|
13
15
|
import ModalFooter from '@atlaskit/modal-dialog/modal-footer';
|
|
14
16
|
import ModalHeader from '@atlaskit/modal-dialog/modal-header';
|
|
15
17
|
import ModalTransition from '@atlaskit/modal-dialog/modal-transition';
|
|
18
|
+
import Textfield from '@atlaskit/textfield/text-field';
|
|
16
19
|
import { createRegistryElementBrowserModel, getInitialRegistryElementBrowserSection, getRegistryElementBrowserItems } from './model';
|
|
17
20
|
import { RegistryElementBrowserCategories } from './RegistryElementBrowserCategories';
|
|
18
21
|
import { RegistryElementBrowserFooter } from './RegistryElementBrowserFooter';
|
|
19
22
|
import { RegistryElementBrowserSearchResults } from './RegistryElementBrowserSearchResults';
|
|
23
|
+
var browserGridTemplateColumns = '182px minmax(0, 1fr)';
|
|
24
|
+
var categoryColumnGap = "calc(".concat("var(--ds-space-200, 16px)", " + ", "var(--ds-space-150, 12px)", ")");
|
|
20
25
|
var browserLayoutStyles = null;
|
|
26
|
+
var headerContentStyles = null;
|
|
27
|
+
var headerSearchStyles = null;
|
|
21
28
|
var resultsId = 'registry-element-browser-results';
|
|
29
|
+
var modalTestId = 'registry-element-browser-modal';
|
|
22
30
|
export var RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
23
31
|
var components = _ref.components,
|
|
24
32
|
emptyStateHandler = _ref.emptyStateHandler,
|
|
@@ -60,6 +68,7 @@ export var RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
|
60
68
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
61
69
|
selectedKey = _useState6[0],
|
|
62
70
|
setSelectedKey = _useState6[1];
|
|
71
|
+
var searchInputRef = useRef(null);
|
|
63
72
|
var wasOpen = useRef(false);
|
|
64
73
|
var previousIsOffline = useRef(isOffline);
|
|
65
74
|
useEffect(function () {
|
|
@@ -78,7 +87,7 @@ export var RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
|
78
87
|
formatMessage: formatMessage,
|
|
79
88
|
model: model,
|
|
80
89
|
query: query,
|
|
81
|
-
section:
|
|
90
|
+
section: section
|
|
82
91
|
});
|
|
83
92
|
}, [formatMessage, model, query, section]);
|
|
84
93
|
useEffect(function () {
|
|
@@ -90,7 +99,6 @@ export var RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
|
90
99
|
}, [isOffline, onClearSelection]);
|
|
91
100
|
var onSearchChange = useCallback(function (event) {
|
|
92
101
|
setQuery(event.currentTarget.value);
|
|
93
|
-
setSection(undefined);
|
|
94
102
|
setSelectedKey(undefined);
|
|
95
103
|
onClearSelection();
|
|
96
104
|
}, [onClearSelection]);
|
|
@@ -100,10 +108,26 @@ export var RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
|
100
108
|
setSelectedKey(undefined);
|
|
101
109
|
onClearSelection();
|
|
102
110
|
}, [onClearSelection]);
|
|
111
|
+
var onClearSearch = useCallback(function () {
|
|
112
|
+
var _searchInputRef$curre;
|
|
113
|
+
setQuery('');
|
|
114
|
+
setSelectedKey(undefined);
|
|
115
|
+
onClearSelection();
|
|
116
|
+
(_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 || _searchInputRef$curre.focus();
|
|
117
|
+
}, [onClearSelection]);
|
|
103
118
|
var onRegistrySelect = useCallback(function (key, handler) {
|
|
104
119
|
setSelectedKey(key);
|
|
105
120
|
onSelect(handler);
|
|
106
121
|
}, [onSelect]);
|
|
122
|
+
var onModalOpenComplete = useCallback(function (node) {
|
|
123
|
+
node.style.borderRadius = "var(--ds-radius-large, 8px)";
|
|
124
|
+
var footer = node.querySelector("[data-testid=\"".concat(modalTestId, "--footer\"]"));
|
|
125
|
+
footer === null || footer === void 0 || footer.style.setProperty('box-sizing', 'border-box');
|
|
126
|
+
footer === null || footer === void 0 || footer.style.setProperty('height', '64px');
|
|
127
|
+
footer === null || footer === void 0 || footer.style.setProperty('padding-block', "var(--ds-space-200, 16px)");
|
|
128
|
+
var scrollableBody = node.querySelector("[data-testid=\"".concat(modalTestId, "--scrollable\"]"));
|
|
129
|
+
scrollableBody === null || scrollableBody === void 0 || scrollableBody.style.setProperty('border-block-end', 'none');
|
|
130
|
+
}, []);
|
|
107
131
|
var onKeyDown = useCallback(function (event) {
|
|
108
132
|
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
|
109
133
|
var _resultCollection$que;
|
|
@@ -135,18 +159,46 @@ export var RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
|
135
159
|
defaultMessage: 'Insert elements',
|
|
136
160
|
id: 'editor.quick-insert.title'
|
|
137
161
|
}),
|
|
162
|
+
height: "664px",
|
|
138
163
|
onClose: onClose,
|
|
139
164
|
onCloseComplete: onCloseComplete,
|
|
140
|
-
|
|
141
|
-
|
|
165
|
+
onOpenComplete: onModalOpenComplete,
|
|
166
|
+
testId: modalTestId,
|
|
167
|
+
width: "min(968px, calc(100vw - 32px))"
|
|
168
|
+
}, /*#__PURE__*/React.createElement(ModalHeader, null, /*#__PURE__*/React.createElement("div", {
|
|
169
|
+
className: ax(["_zulp1fka _1e0c11p5 _yv0e1xuv _1bsb1osq _lk4ji47z"])
|
|
170
|
+
}, /*#__PURE__*/React.createElement(Heading, {
|
|
142
171
|
size: "medium"
|
|
143
172
|
}, formatMessage({
|
|
144
173
|
defaultMessage: 'Insert elements',
|
|
145
174
|
id: 'editor.quick-insert.title'
|
|
146
|
-
}))
|
|
147
|
-
className: ax(["_zulp1ejb _1e0c11p5
|
|
175
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
176
|
+
className: ax(["_zulp1ejb _4cvr1h6o _1e0c11p5 _yv0ehpfy _1bsb1osq"])
|
|
177
|
+
}, /*#__PURE__*/React.createElement(Textfield, {
|
|
178
|
+
autoFocus: true,
|
|
179
|
+
"aria-controls": resultsId,
|
|
180
|
+
"aria-label": formatMessage({
|
|
181
|
+
defaultMessage: 'Search elements',
|
|
182
|
+
id: 'editor.quick-insert.search'
|
|
183
|
+
}),
|
|
184
|
+
isCompact: true,
|
|
185
|
+
name: "registry-element-browser-search",
|
|
186
|
+
onChange: onSearchChange,
|
|
187
|
+
onKeyDown: onKeyDown,
|
|
188
|
+
ref: searchInputRef,
|
|
189
|
+
value: query
|
|
190
|
+
}), /*#__PURE__*/React.createElement(IconButton, {
|
|
191
|
+
appearance: "subtle",
|
|
192
|
+
icon: CrossIcon,
|
|
193
|
+
label: formatMessage({
|
|
194
|
+
defaultMessage: 'Clear search',
|
|
195
|
+
id: 'editor.quick-insert.clear-search'
|
|
196
|
+
}),
|
|
197
|
+
onClick: onClearSearch,
|
|
198
|
+
spacing: "compact"
|
|
199
|
+
})))), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement("div", {
|
|
200
|
+
className: ax(["_zulp1fka _1e0c11p5 _yv0e1xuv _lk4ji47z"])
|
|
148
201
|
}, /*#__PURE__*/React.createElement(RegistryElementBrowserCategories, {
|
|
149
|
-
query: query,
|
|
150
202
|
section: section,
|
|
151
203
|
sections: model.sections,
|
|
152
204
|
onSectionClick: onSectionClick
|
|
@@ -160,12 +212,12 @@ export var RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
|
160
212
|
section: section,
|
|
161
213
|
selectedKey: selectedKey,
|
|
162
214
|
onKeyDown: onKeyDown,
|
|
163
|
-
onSearchChange: onSearchChange,
|
|
164
215
|
onSelect: onRegistrySelect
|
|
165
216
|
}))), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(RegistryElementBrowserFooter, {
|
|
166
217
|
helpUrl: helpUrl,
|
|
167
218
|
isInsertEnabled: Boolean(selectedKey),
|
|
168
219
|
onClose: onClose,
|
|
169
|
-
onConfirmInsert: onConfirmInsert
|
|
220
|
+
onConfirmInsert: onConfirmInsert,
|
|
221
|
+
resultCount: items.length
|
|
170
222
|
}))));
|
|
171
223
|
};
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
._zulpu2gc{gap:var(--ds-space-100,8px)}._1e0c11p5{display:grid}
|
|
2
|
-
.
|
|
2
|
+
._ae4vv2br{align-content:start}
|
|
3
|
+
._yv0ei47z{grid-template-columns:minmax(0,1fr)}
|
|
4
|
+
@media (max-width:599px){._1w2e1ris{grid-auto-columns:max-content}._1ato1bp4{grid-auto-flow:column}._lk4jglyw{grid-template-columns:none}._1cgyi47z{grid-template-rows:minmax(0,1fr)}._1s8e1wug{overflow-x:auto}._pevy15vq{overflow-y:hidden}}
|
|
@@ -10,36 +10,39 @@ import { messages } from '@atlaskit/editor-common/quick-insert/messages';
|
|
|
10
10
|
var sectionMessages = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, BLOCK_TEMPLATES_SECTION.key, messages.categoryBlockTemplates), DATA_AND_CHARTS_SECTION.key, messages.categoryDataAndCharts), EMBED_SECTION.key, messages.categoryEmbed), MEDIA_SECTION.key, messages.categoryMedia), OTHER_SECTION.key, messages.categoryOther), ROVO_SECTION.key, messages.categoryRovo), STRUCTURE_SECTION.key, messages.categoryStructure), TEXT_FORMATTING_SECTION.key, messages.categoryTextFormatting);
|
|
11
11
|
var categoryGridStyles = null;
|
|
12
12
|
export var RegistryElementBrowserCategories = function RegistryElementBrowserCategories(_ref) {
|
|
13
|
-
var
|
|
14
|
-
section = _ref.section,
|
|
13
|
+
var section = _ref.section,
|
|
15
14
|
sections = _ref.sections,
|
|
16
15
|
onSectionClick = _ref.onSectionClick;
|
|
17
16
|
var _useIntl = useIntl(),
|
|
18
17
|
formatMessage = _useIntl.formatMessage;
|
|
19
|
-
var isAllSelected = section === undefined
|
|
18
|
+
var isAllSelected = section === undefined;
|
|
20
19
|
return /*#__PURE__*/React.createElement("div", {
|
|
21
20
|
"aria-label": formatMessage({
|
|
22
21
|
defaultMessage: 'Element categories',
|
|
23
22
|
id: 'editor.quick-insert.categories-label'
|
|
24
23
|
}),
|
|
25
24
|
"data-testid": "registry-element-browser-categories",
|
|
26
|
-
className: ax(["_zulpu2gc _1e0c11p5
|
|
25
|
+
className: ax(["_zulpu2gc _ae4vv2br _1e0c11p5 _yv0ei47z _1w2e1ris _1ato1bp4 _lk4jglyw _1cgyi47z _1s8e1wug _pevy15vq"])
|
|
27
26
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
28
|
-
appearance:
|
|
27
|
+
appearance: 'subtle',
|
|
29
28
|
"aria-pressed": isAllSelected,
|
|
30
29
|
"data-section": "",
|
|
31
|
-
onClick: onSectionClick
|
|
30
|
+
onClick: onSectionClick,
|
|
31
|
+
isSelected: isAllSelected,
|
|
32
|
+
shouldFitContainer: true
|
|
32
33
|
}, formatMessage({
|
|
33
34
|
defaultMessage: 'All',
|
|
34
35
|
id: 'editor.quick-insert.all'
|
|
35
36
|
})), sections.map(function (entry) {
|
|
36
37
|
var _sectionMessages2;
|
|
37
38
|
return /*#__PURE__*/React.createElement(Button, {
|
|
38
|
-
appearance:
|
|
39
|
-
"aria-pressed": section === entry.key
|
|
39
|
+
appearance: 'subtle',
|
|
40
|
+
"aria-pressed": section === entry.key,
|
|
40
41
|
"data-section": entry.key,
|
|
41
42
|
key: entry.key,
|
|
42
|
-
onClick: onSectionClick
|
|
43
|
+
onClick: onSectionClick,
|
|
44
|
+
isSelected: section === entry.key,
|
|
45
|
+
shouldFitContainer: true
|
|
43
46
|
}, formatMessage((_sectionMessages2 = sectionMessages[entry.key]) !== null && _sectionMessages2 !== void 0 ? _sectionMessages2 : messages.categoryOther));
|
|
44
47
|
}));
|
|
45
48
|
};
|
|
@@ -2,32 +2,50 @@ import React from 'react';
|
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
3
|
import Button from '@atlaskit/button/default/button';
|
|
4
4
|
import LinkButton from '@atlaskit/button/link';
|
|
5
|
+
import { Inline, Text } from '@atlaskit/primitives/compiled';
|
|
5
6
|
export var RegistryElementBrowserFooter = function RegistryElementBrowserFooter(_ref) {
|
|
6
7
|
var helpUrl = _ref.helpUrl,
|
|
7
8
|
isInsertEnabled = _ref.isInsertEnabled,
|
|
8
9
|
onClose = _ref.onClose,
|
|
9
|
-
onConfirmInsert = _ref.onConfirmInsert
|
|
10
|
+
onConfirmInsert = _ref.onConfirmInsert,
|
|
11
|
+
resultCount = _ref.resultCount;
|
|
10
12
|
var _useIntl = useIntl(),
|
|
11
13
|
formatMessage = _useIntl.formatMessage;
|
|
12
|
-
return /*#__PURE__*/React.createElement(
|
|
14
|
+
return /*#__PURE__*/React.createElement(Inline, {
|
|
15
|
+
alignBlock: "center",
|
|
16
|
+
grow: "fill",
|
|
17
|
+
spread: "space-between"
|
|
18
|
+
}, /*#__PURE__*/React.createElement(Inline, {
|
|
19
|
+
alignBlock: "center",
|
|
20
|
+
space: "space.100"
|
|
21
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
22
|
+
color: "color.text.subtlest"
|
|
23
|
+
}, formatMessage({
|
|
24
|
+
defaultMessage: '{count, plural, one {# result available} other {# results available}}',
|
|
25
|
+
id: 'editor.quick-insert.results-available'
|
|
26
|
+
}, {
|
|
27
|
+
count: resultCount
|
|
28
|
+
})), helpUrl && /*#__PURE__*/React.createElement(LinkButton, {
|
|
13
29
|
appearance: "subtle",
|
|
14
30
|
href: helpUrl,
|
|
15
31
|
target: "_blank"
|
|
16
32
|
}, formatMessage({
|
|
17
33
|
defaultMessage: 'Help',
|
|
18
34
|
id: 'editor.quick-insert.help'
|
|
19
|
-
})), /*#__PURE__*/React.createElement(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}, formatMessage({
|
|
23
|
-
defaultMessage: 'Close',
|
|
24
|
-
id: 'editor.quick-insert.close'
|
|
25
|
-
})), /*#__PURE__*/React.createElement(Button, {
|
|
35
|
+
}))), /*#__PURE__*/React.createElement(Inline, {
|
|
36
|
+
space: "space.100"
|
|
37
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
26
38
|
appearance: "primary",
|
|
27
39
|
isDisabled: !isInsertEnabled,
|
|
28
40
|
onClick: onConfirmInsert
|
|
29
41
|
}, formatMessage({
|
|
30
42
|
defaultMessage: 'Insert',
|
|
31
43
|
id: 'editor.quick-insert.insert'
|
|
32
|
-
}))
|
|
44
|
+
})), /*#__PURE__*/React.createElement(Button, {
|
|
45
|
+
appearance: "subtle",
|
|
46
|
+
onClick: onClose
|
|
47
|
+
}, formatMessage({
|
|
48
|
+
defaultMessage: 'Close',
|
|
49
|
+
id: 'editor.quick-insert.close'
|
|
50
|
+
}))));
|
|
33
51
|
};
|
|
@@ -1,2 +1,20 @@
|
|
|
1
|
-
.
|
|
2
|
-
.
|
|
1
|
+
._11c81af2{font:var(--ds-font-heading-medium,normal 653 20px/24px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
|
|
2
|
+
._zulpu2gc{gap:var(--ds-space-100,8px)}
|
|
3
|
+
._yyhyjvu9{grid-column:1/-1}
|
|
4
|
+
._19pk1ejb{margin-top:var(--ds-space-300,24px)}
|
|
5
|
+
._19pkpxbi{margin-top:var(--ds-space-200,1pc)}
|
|
6
|
+
._19pkutpp{margin-top:var(--ds-space-150,9pt)}
|
|
7
|
+
._1bah1h6o{justify-content:center}
|
|
8
|
+
._1bsb1osq{width:100%}
|
|
9
|
+
._1e0c11p5{display:grid}
|
|
10
|
+
._1e0c1txw{display:flex}
|
|
11
|
+
._2lx21bp4{flex-direction:column}
|
|
12
|
+
._4cvr1h6o{align-items:center}
|
|
13
|
+
._4cvrv2br{align-items:start}
|
|
14
|
+
._ae4vv2br{align-content:start}
|
|
15
|
+
._p12f1kdj{max-width:25pc}
|
|
16
|
+
._syazi7uo{color:var(--ds-text,#292a2e)}
|
|
17
|
+
._y3gn1h6o{text-align:center}
|
|
18
|
+
._yv0ei47z{grid-template-columns:minmax(0,1fr)}
|
|
19
|
+
@media (min-width:550px) and (max-width:1023px){._16409sye{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
|
20
|
+
@media (min-width:1024px){._g98o1koq{grid-template-columns:repeat(3,232px)}}
|
|
@@ -5,9 +5,13 @@ import React, { useMemo } from 'react';
|
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import LinkButton from '@atlaskit/button/link';
|
|
7
7
|
import { QuickInsertProvider } from '@atlaskit/editor-common/quick-insert/provider';
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
8
|
+
import { Text } from '@atlaskit/primitives/compiled';
|
|
9
|
+
import NotFoundIllustration from './NotFoundIllustration';
|
|
10
10
|
var resultsGridStyles = null;
|
|
11
|
+
var emptyStateWrapperStyles = null;
|
|
12
|
+
var emptyStateHeadingStyles = null;
|
|
13
|
+
var emptyStateSubheadingStyles = null;
|
|
14
|
+
var emptyStateLinkStyles = null;
|
|
11
15
|
var RegistryElementBrowserItem = function RegistryElementBrowserItem(_ref) {
|
|
12
16
|
var editorView = _ref.editorView,
|
|
13
17
|
isOffline = _ref.isOffline,
|
|
@@ -22,6 +26,7 @@ var RegistryElementBrowserItem = function RegistryElementBrowserItem(_ref) {
|
|
|
22
26
|
editorView: editorView,
|
|
23
27
|
isOffline: isOffline,
|
|
24
28
|
item: {
|
|
29
|
+
description: item.description,
|
|
25
30
|
id: key,
|
|
26
31
|
isSelected: isSelected
|
|
27
32
|
},
|
|
@@ -30,7 +35,7 @@ var RegistryElementBrowserItem = function RegistryElementBrowserItem(_ref) {
|
|
|
30
35
|
},
|
|
31
36
|
surface: 'element-browser'
|
|
32
37
|
};
|
|
33
|
-
}, [editorView, isOffline, isSelected, key, onSelect]);
|
|
38
|
+
}, [editorView, isOffline, isSelected, item.description, key, onSelect]);
|
|
34
39
|
if (!Component) {
|
|
35
40
|
return null;
|
|
36
41
|
}
|
|
@@ -49,31 +54,10 @@ export var RegistryElementBrowserSearchResults = function RegistryElementBrowser
|
|
|
49
54
|
section = _ref2.section,
|
|
50
55
|
selectedKey = _ref2.selectedKey,
|
|
51
56
|
onKeyDown = _ref2.onKeyDown,
|
|
52
|
-
onSearchChange = _ref2.onSearchChange,
|
|
53
57
|
onSelect = _ref2.onSelect;
|
|
54
58
|
var _useIntl = useIntl(),
|
|
55
59
|
formatMessage = _useIntl.formatMessage;
|
|
56
|
-
return /*#__PURE__*/React.createElement(
|
|
57
|
-
space: "space.200"
|
|
58
|
-
}, /*#__PURE__*/React.createElement(Textfield, {
|
|
59
|
-
autoFocus: true,
|
|
60
|
-
"aria-controls": resultsId,
|
|
61
|
-
"aria-label": formatMessage({
|
|
62
|
-
defaultMessage: 'Search elements',
|
|
63
|
-
id: 'editor.quick-insert.search'
|
|
64
|
-
}),
|
|
65
|
-
name: "registry-element-browser-search",
|
|
66
|
-
onChange: onSearchChange,
|
|
67
|
-
onKeyDown: onKeyDown,
|
|
68
|
-
value: query
|
|
69
|
-
}), /*#__PURE__*/React.createElement(Text, {
|
|
70
|
-
"aria-live": "polite"
|
|
71
|
-
}, formatMessage({
|
|
72
|
-
defaultMessage: '{count} results',
|
|
73
|
-
id: 'editor.quick-insert.results'
|
|
74
|
-
}, {
|
|
75
|
-
count: items.length
|
|
76
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
60
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
77
61
|
"aria-label": formatMessage({
|
|
78
62
|
defaultMessage: 'Element results',
|
|
79
63
|
id: 'editor.quick-insert.results-label'
|
|
@@ -83,7 +67,7 @@ export var RegistryElementBrowserSearchResults = function RegistryElementBrowser
|
|
|
83
67
|
onKeyDown: onKeyDown,
|
|
84
68
|
tabIndex: -1,
|
|
85
69
|
role: items.length ? 'listbox' : undefined,
|
|
86
|
-
className: ax(["_zulpu2gc _1e0c11p5
|
|
70
|
+
className: ax(["_zulpu2gc _ae4vv2br _4cvrv2br _1e0c11p5 _yv0ei47z _16409sye _g98o1koq"])
|
|
87
71
|
}, items.length ? items.map(function (item) {
|
|
88
72
|
return /*#__PURE__*/React.createElement(RegistryElementBrowserItem, {
|
|
89
73
|
editorView: editorView,
|
|
@@ -97,18 +81,26 @@ export var RegistryElementBrowserSearchResults = function RegistryElementBrowser
|
|
|
97
81
|
mode: 'full',
|
|
98
82
|
searchTerm: query,
|
|
99
83
|
selectedCategory: section
|
|
100
|
-
})) !== null && _emptyStateHandler !== void 0 ? _emptyStateHandler : /*#__PURE__*/React.createElement(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
84
|
+
})) !== null && _emptyStateHandler !== void 0 ? _emptyStateHandler : /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: ax(["_yyhyjvu9 _4cvr1h6o _1e0c1txw _2lx21bp4 _1bah1h6o _1bsb1osq"])
|
|
86
|
+
}, /*#__PURE__*/React.createElement(NotFoundIllustration, null), /*#__PURE__*/React.createElement("div", {
|
|
87
|
+
className: ax(["_11c81af2 _syazi7uo _19pk1ejb"])
|
|
88
|
+
}, formatMessage({
|
|
104
89
|
defaultMessage: 'Nothing matches your search',
|
|
105
90
|
id: 'editor.quick-insert.empty'
|
|
106
|
-
})), /*#__PURE__*/React.createElement(
|
|
91
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
92
|
+
className: ax(["_19pkpxbi _p12f1kdj _y3gn1h6o"])
|
|
93
|
+
}, /*#__PURE__*/React.createElement(Text, null, formatMessage({
|
|
94
|
+
defaultMessage: 'Try searching with a different term or discover new apps for Atlassian products.',
|
|
95
|
+
id: 'editor.quick-insert.empty-description'
|
|
96
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
97
|
+
className: ax(["_19pkutpp"])
|
|
98
|
+
}, /*#__PURE__*/React.createElement(LinkButton, {
|
|
107
99
|
appearance: "primary",
|
|
108
100
|
href: "https://marketplace.atlassian.com/search?category=Macros&hosting=cloud&product=confluence",
|
|
109
101
|
target: "_blank"
|
|
110
102
|
}, formatMessage({
|
|
111
103
|
defaultMessage: 'Explore Atlassian Marketplace',
|
|
112
104
|
id: 'editor.quick-insert.explore-marketplace'
|
|
113
|
-
})))));
|
|
105
|
+
}))))));
|
|
114
106
|
};
|
|
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
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
|
+
import { createQuickInsertMatcher } from '@atlaskit/editor-common/quick-insert/create-quick-insert-matcher';
|
|
5
6
|
var compareRanks = function compareRanks(left, right) {
|
|
6
7
|
for (var index = 0; index < Math.max(left.length, right.length); index++) {
|
|
7
8
|
var _left$index, _right$index;
|
|
@@ -104,10 +105,16 @@ export var getRegistryElementBrowserItems = function getRegistryElementBrowserIt
|
|
|
104
105
|
var items = section ? model.items.filter(function (item) {
|
|
105
106
|
return item.sectionKeys.includes(section);
|
|
106
107
|
}) : model.items;
|
|
108
|
+
var itemsWithDescriptions = items.map(function (item) {
|
|
109
|
+
var _createQuickInsertMat;
|
|
110
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
111
|
+
description: (_createQuickInsertMat = createQuickInsertMatcher.getDescription) === null || _createQuickInsertMat === void 0 ? void 0 : _createQuickInsertMat.call(createQuickInsertMatcher, item.registration.match, formatMessage)
|
|
112
|
+
});
|
|
113
|
+
});
|
|
107
114
|
if (!normalizedQuery) {
|
|
108
|
-
return
|
|
115
|
+
return itemsWithDescriptions;
|
|
109
116
|
}
|
|
110
|
-
return
|
|
117
|
+
return itemsWithDescriptions.flatMap(function (item) {
|
|
111
118
|
var _item$registration$ma, _item$registration;
|
|
112
119
|
var result = (_item$registration$ma = (_item$registration = item.registration).match) === null || _item$registration$ma === void 0 ? void 0 : _item$registration$ma.call(_item$registration, {
|
|
113
120
|
formatMessage: formatMessage,
|
|
@@ -9,7 +9,15 @@ import type { UiControlRegistryPlugin } from '@atlaskit/editor-plugin-ui-control
|
|
|
9
9
|
export type QuickInsertSharedState = CommonQuickInsertSharedState & {
|
|
10
10
|
typeAheadHandler: TypeAheadHandler;
|
|
11
11
|
};
|
|
12
|
-
export type QuickInsertPluginOptions = CommonQuickInsertPluginOptions
|
|
12
|
+
export type QuickInsertPluginOptions = CommonQuickInsertPluginOptions & {
|
|
13
|
+
/**
|
|
14
|
+
* Enables the floating quick insert button, which appears inline alongside content in the editor.
|
|
15
|
+
*
|
|
16
|
+
* Warning: This option replaces the current block control plugin config `blockControls.quickInsertButtonEnabled`
|
|
17
|
+
* and is only available when `platform_editor_block_control_migration` experiment is enabled.
|
|
18
|
+
*/
|
|
19
|
+
blockControlButtonEnabled?: boolean;
|
|
20
|
+
};
|
|
13
21
|
export type OpenElementBrowserOptions = {
|
|
14
22
|
category?: string;
|
|
15
23
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function NotFoundIllustration(): JSX.Element;
|
|
@@ -6,9 +6,8 @@ import React from 'react';
|
|
|
6
6
|
import type { RegistryElementBrowserSection } from './model';
|
|
7
7
|
type Props = {
|
|
8
8
|
onSectionClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
9
|
-
query: string;
|
|
10
9
|
section?: string;
|
|
11
10
|
sections: RegistryElementBrowserSection[];
|
|
12
11
|
};
|
|
13
|
-
export declare const RegistryElementBrowserCategories: ({
|
|
12
|
+
export declare const RegistryElementBrowserCategories: ({ section, sections, onSectionClick, }: Props) => React.JSX.Element;
|
|
14
13
|
export {};
|
|
@@ -4,6 +4,7 @@ type Props = {
|
|
|
4
4
|
isInsertEnabled: boolean;
|
|
5
5
|
onClose: () => void;
|
|
6
6
|
onConfirmInsert: () => void;
|
|
7
|
+
resultCount: number;
|
|
7
8
|
};
|
|
8
|
-
export declare const RegistryElementBrowserFooter: ({ helpUrl, isInsertEnabled, onClose, onConfirmInsert, }: Props) => React.JSX.Element;
|
|
9
|
+
export declare const RegistryElementBrowserFooter: ({ helpUrl, isInsertEnabled, onClose, onConfirmInsert, resultCount, }: Props) => React.JSX.Element;
|
|
9
10
|
export {};
|
|
@@ -13,7 +13,6 @@ type Props = {
|
|
|
13
13
|
isOffline: boolean;
|
|
14
14
|
items: RegistryElementBrowserItem[];
|
|
15
15
|
onKeyDown: (event: React.KeyboardEvent) => void;
|
|
16
|
-
onSearchChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
17
16
|
onSelect: (key: string, handler: QuickInsertSelectionHandler) => void;
|
|
18
17
|
query: string;
|
|
19
18
|
resultsId: string;
|
|
@@ -27,5 +26,5 @@ declare const RegistryElementBrowserItem: ({ editorView, isOffline, isSelected,
|
|
|
27
26
|
item: RegistryElementBrowserItem;
|
|
28
27
|
onSelect: (key: string, handler: QuickInsertSelectionHandler) => void;
|
|
29
28
|
}) => React.JSX.Element | null;
|
|
30
|
-
export declare const RegistryElementBrowserSearchResults: ({ editorView, emptyStateHandler, isOffline, items, query, resultsId, section, selectedKey, onKeyDown,
|
|
29
|
+
export declare const RegistryElementBrowserSearchResults: ({ editorView, emptyStateHandler, isOffline, items, query, resultsId, section, selectedKey, onKeyDown, onSelect, }: Props) => React.JSX.Element;
|
|
31
30
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-quick-insert",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.3.1",
|
|
4
4
|
"description": "Quick insert plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@atlaskit/platform-feature-flags": "^2.2.0",
|
|
39
39
|
"@atlaskit/primitives": "^22.5.0",
|
|
40
40
|
"@atlaskit/textfield": "^10.2.0",
|
|
41
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
41
|
+
"@atlaskit/tmp-editor-statsig": "^176.0.0",
|
|
42
42
|
"@atlaskit/tokens": "^16.11.0",
|
|
43
43
|
"@atlaskit/tooltip": "^24.3.0",
|
|
44
44
|
"@babel/runtime": "^7.0.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@emotion/react": "^11.7.1"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@atlaskit/editor-common": "^120.
|
|
49
|
+
"@atlaskit/editor-common": "^120.16.0",
|
|
50
50
|
"react": "^18.2.0 || ^19.2.0",
|
|
51
51
|
"react-dom": "^18.2.0 || ^19.2.0",
|
|
52
52
|
"react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
|