@atlaskit/editor-plugin-insert-block 30.0.5 → 31.0.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.
Files changed (29) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/ui/ToolbarInsertBlock/block-insert-element-browser.js +2 -2
  3. package/dist/cjs/ui/registered-insert-menu/RegisteredInsertButton.js +2 -2
  4. package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenu.compiled.css +1 -0
  5. package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenu.js +113 -238
  6. package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuContent.js +1 -4
  7. package/dist/es2019/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -1
  8. package/dist/es2019/ui/registered-insert-menu/RegisteredInsertButton.js +1 -1
  9. package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenu.compiled.css +1 -0
  10. package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenu.js +97 -204
  11. package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuContent.js +1 -4
  12. package/dist/esm/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -1
  13. package/dist/esm/ui/registered-insert-menu/RegisteredInsertButton.js +1 -1
  14. package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenu.compiled.css +1 -0
  15. package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenu.js +115 -240
  16. package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuContent.js +1 -4
  17. package/dist/types/ui/registered-insert-menu/RegisteredInsertMenu.d.ts +5 -7
  18. package/package.json +32 -32
  19. package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuItem.js +0 -64
  20. package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuList.compiled.css +0 -11
  21. package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuList.js +0 -324
  22. package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuItem.js +0 -54
  23. package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuList.compiled.css +0 -11
  24. package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuList.js +0 -273
  25. package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuItem.js +0 -56
  26. package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuList.compiled.css +0 -11
  27. package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuList.js +0 -317
  28. package/dist/types/ui/registered-insert-menu/RegisteredInsertMenuItem.d.ts +0 -16
  29. package/dist/types/ui/registered-insert-menu/RegisteredInsertMenuList.d.ts +0 -31
@@ -1,284 +1,159 @@
1
1
  /* RegisteredInsertMenu.tsx generated by @compiled/babel-plugin v3.0.2 */
2
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
3
  import "./RegisteredInsertMenu.compiled.css";
5
4
  import { ax, ix } from "@compiled/react/runtime";
6
- import React, { useCallback, useId, useLayoutEffect, useMemo, useRef, useState } from 'react';
5
+ import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
7
6
  import { useIntl } from 'react-intl';
8
- import { getDocument } from '@atlaskit/browser-apis';
9
- import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages/insert-block';
7
+ import { insertSelectedItem } from '@atlaskit/editor-common/insert';
8
+ import { toolbarInsertBlockMessages } from '@atlaskit/editor-common/messages/insert-block';
10
9
  import { MENU } from '@atlaskit/editor-common/quick-insert/keys';
11
- import { getQuickInsertMenuModel, getQuickInsertMenuRows, selectQuickInsertCategoryItems } from '@atlaskit/editor-common/quick-insert/registered-menu-model';
12
- import { useQuickInsertSearchAnalytics } from '@atlaskit/editor-common/quick-insert/use-search-analytics';
13
- import { isSectionOverflowItemKey } from '@atlaskit/editor-common/type-ahead-is-section-overflow-item-key';
14
- import { TYPE_AHEAD_SURFACE_CONTEXT } from '@atlaskit/editor-common/type-ahead-surface-context';
15
- import { createSurfaceContext } from '@atlaskit/editor-ui-control-model/create-surface-context';
10
+ import { RegisteredMenuContext } from '@atlaskit/editor-common/registered-menu/context';
11
+ import { createRegisteredMenuSurfaceContext } from '@atlaskit/editor-common/registered-menu/surface-context';
12
+ import { typeAheadListMessages } from '@atlaskit/editor-common/type-ahead/messages';
16
13
  import { Box } from '@atlaskit/primitives/compiled/box';
17
14
  import Textfield from '@atlaskit/textfield/text-field';
18
- import { RegisteredInsertMenuList } from './RegisteredInsertMenuList';
19
15
  var DEFAULT_MENU_MAX_HEIGHT = 520;
16
+ var SEARCH_HEIGHT = 64;
20
17
  var styles = {
21
18
  menu: "_2rko1mok _1reo15vq _18m915vq _bfhk1bhr _16qs130s _1e0c1txw _2lx21bp4 _1bsb1edt",
19
+ hidden: "_1e0cglyw",
22
20
  search: "_18zrutpp _1o9zidpf _1q51utpp _85i5u2gc"
23
21
  };
24
- export var RegisteredInsertMenu = function RegisteredInsertMenu(_ref) {
25
- var components = _ref.components,
26
- emptyStateHandler = _ref.emptyStateHandler,
27
- fireAnalyticsEvent = _ref.fireAnalyticsEvent,
28
- getItemRank = _ref.getItemRank,
29
- editorView = _ref.editorView,
30
- isOffline = _ref.isOffline,
31
- _ref$maxHeight = _ref.maxHeight,
32
- maxHeight = _ref$maxHeight === void 0 ? DEFAULT_MENU_MAX_HEIGHT : _ref$maxHeight,
33
- onClose = _ref.onClose,
34
- onSelect = _ref.onSelect;
35
- var menuStyle = {
36
- maxHeight: maxHeight
37
- };
22
+ export var RegisteredInsertMenu = function RegisteredInsertMenu(props) {
23
+ var _props$maxHeight, _interaction$expanded;
24
+ var components = props.components,
25
+ editorView = props.editorView,
26
+ isOffline = props.isOffline,
27
+ onSelect = props.onSelect;
38
28
  var _useIntl = useIntl(),
39
29
  formatMessage = _useIntl.formatMessage;
40
- var listId = useId();
41
- var _useState = useState(function () {
30
+ var _useState = useState(),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ interaction = _useState2[0],
33
+ setInteraction = _useState2[1];
34
+ var registerInteraction = useCallback(function (next) {
35
+ setInteraction(next);
36
+ return function () {
37
+ return setInteraction(function (current) {
38
+ return current === next ? undefined : current;
39
+ });
40
+ };
41
+ }, []);
42
+ var searchRef = useRef(null);
43
+ var hasInteraction = Boolean(interaction);
44
+ useLayoutEffect(function () {
45
+ if (hasInteraction) {
46
+ var _searchRef$current;
47
+ (_searchRef$current = searchRef.current) === null || _searchRef$current === void 0 || _searchRef$current.focus({
48
+ preventScroll: true
49
+ });
50
+ }
51
+ }, [hasInteraction]);
52
+ var maxHeight = (_props$maxHeight = props.maxHeight) !== null && _props$maxHeight !== void 0 ? _props$maxHeight : DEFAULT_MENU_MAX_HEIGHT;
53
+ var menuStyle = useMemo(function () {
54
+ return {
55
+ maxHeight: maxHeight
56
+ };
57
+ }, [maxHeight]);
58
+ var _useState3 = useState(function () {
42
59
  return Symbol('registered-insert-menu-open');
43
60
  }),
44
- _useState2 = _slicedToArray(_useState, 1),
45
- menuOpenId = _useState2[0];
46
- var _useState3 = useState(''),
47
- _useState4 = _slicedToArray(_useState3, 2),
48
- query = _useState4[0],
49
- setQuery = _useState4[1];
50
- var _useState5 = useState(0),
61
+ _useState4 = _slicedToArray(_useState3, 1),
62
+ menuOpenId = _useState4[0];
63
+ var _useState5 = useState(''),
51
64
  _useState6 = _slicedToArray(_useState5, 2),
52
- selectedItemIndex = _useState6[0],
53
- setSelectedItemIndex = _useState6[1];
54
- var selectedItemIndexRef = useRef(selectedItemIndex);
55
- var _useState7 = useState({
56
- startIndex: -1,
57
- stopIndex: -1
58
- }),
59
- _useState8 = _slicedToArray(_useState7, 2),
60
- renderedItems = _useState8[0],
61
- setRenderedItems = _useState8[1];
62
- var searchRef = useRef(null);
63
- useLayoutEffect(function () {
64
- var _searchRef$current;
65
- // Popup positions on the next frame; focusing must not scroll to its initial location.
66
- (_searchRef$current = searchRef.current) === null || _searchRef$current === void 0 || _searchRef$current.focus({
67
- preventScroll: true
68
- });
69
- }, []);
65
+ query = _useState6[0],
66
+ setQuery = _useState6[1];
70
67
  var surfaceContext = useMemo(function () {
71
- return createSurfaceContext(TYPE_AHEAD_SURFACE_CONTEXT, {
72
- menuOpenId: menuOpenId
68
+ return createRegisteredMenuSurfaceContext({
69
+ menuOpenId: menuOpenId,
70
+ surface: 'toolbar'
73
71
  });
74
72
  }, [menuOpenId]);
75
- var hasSectionOverflowItems = useMemo(function () {
76
- return components.some(function (_ref2) {
77
- var key = _ref2.key;
78
- return isSectionOverflowItemKey(key);
79
- });
73
+ var Root = useMemo(function () {
74
+ var _components$find;
75
+ return (_components$find = components.find(function (_ref) {
76
+ var key = _ref.key,
77
+ type = _ref.type,
78
+ parents = _ref.parents;
79
+ return key === MENU.key && type === MENU.type && !(parents !== null && parents !== void 0 && parents.length);
80
+ })) === null || _components$find === void 0 ? void 0 : _components$find.component;
80
81
  }, [components]);
81
- var model = useMemo(function () {
82
- return getQuickInsertMenuModel({
83
- components: components,
84
- formatMessage: formatMessage,
85
- getItemRank: getItemRank,
86
- query: query,
87
- rootComponent: MENU,
88
- selectCategoryItems: hasSectionOverflowItems ? selectQuickInsertCategoryItems : undefined,
89
- surfaceContext: surfaceContext
90
- });
91
- }, [components, formatMessage, getItemRank, hasSectionOverflowItems, query, surfaceContext]);
92
- var _useState9 = useState(),
93
- _useState0 = _slicedToArray(_useState9, 2),
94
- previewActivation = _useState0[0],
95
- setPreviewActivation = _useState0[1];
96
- var activePreviewItemKey = (previewActivation === null || previewActivation === void 0 ? void 0 : previewActivation.model) === model ? previewActivation.itemKey : undefined;
97
- var searchResultCount = useMemo(function () {
98
- return model.sections.reduce(function (count, section) {
99
- return count + section.filter(function (_ref3) {
100
- var key = _ref3.key,
101
- type = _ref3.type;
102
- return type === 'menu-item' && !isSectionOverflowItemKey(key);
103
- }).length;
104
- }, 0);
105
- }, [model.sections]);
106
- var flushSearchAnalytics = useQuickInsertSearchAnalytics({
107
- fireAnalyticsEvent: fireAnalyticsEvent,
108
- query: query,
109
- resultCount: searchResultCount,
110
- surface: 'toolbar'
111
- });
112
- var closeWithAnalytics = useCallback(function () {
113
- flushSearchAnalytics();
114
- onClose();
115
- }, [flushSearchAnalytics, onClose]);
116
- var selectWithAnalytics = useCallback(function () {
117
- flushSearchAnalytics();
82
+ // Interaction updates should not recreate the registered component's own props.
83
+ var menu = useMemo(function () {
84
+ return Root && /*#__PURE__*/React.createElement(Root, null, null);
85
+ }, [Root]);
86
+ var select = useCallback(function (selection) {
118
87
  onSelect();
119
- }, [flushSearchAnalytics, onSelect]);
120
- var selectableItems = useMemo(function () {
121
- return getQuickInsertMenuRows(model).filter(function (row) {
122
- return row.type === 'menu-item';
123
- });
124
- }, [model]);
125
- var itemCount = selectableItems.length + (model.footer ? 1 : 0);
126
- var selectableItemKeys = useMemo(function () {
127
- return [].concat(_toConsumableArray(selectableItems), _toConsumableArray(model.footer ? [model.footer] : [])).map(function (_ref4) {
128
- var key = _ref4.key;
129
- return key;
130
- }).join(',');
131
- }, [model.footer, selectableItems]);
132
- useLayoutEffect(function () {
133
- var initialItemIndex = itemCount > 0 ? 0 : -1;
134
- selectedItemIndexRef.current = initialItemIndex;
135
- setSelectedItemIndex(initialItemIndex);
136
- }, [itemCount, query, selectableItemKeys]);
137
- useLayoutEffect(function () {
138
- setPreviewActivation(undefined);
139
- }, [model, query]);
140
- var isActiveItemMounted = selectedItemIndex >= 0 && selectedItemIndex < itemCount && (selectedItemIndex >= renderedItems.startIndex && selectedItemIndex <= renderedItems.stopIndex || Boolean(model.footer) && selectedItemIndex === itemCount - 1);
141
- var activeItemId = "".concat(listId, "-").concat(selectedItemIndex);
142
- var setKeyboardPreview = useCallback(function (itemIndex) {
143
- var item = selectableItems[itemIndex];
144
- setPreviewActivation(item ? {
145
- itemKey: item.key,
146
- model: model,
147
- source: 'keyboard'
148
- } : undefined);
149
- }, [model, selectableItems]);
150
- var selectNextItem = useCallback(function () {
151
- var currentIndex = selectedItemIndexRef.current;
152
- var nextIndex = itemCount === 0 ? -1 : currentIndex < 0 ? 0 : (currentIndex + 1) % itemCount;
153
- selectedItemIndexRef.current = nextIndex;
154
- setSelectedItemIndex(nextIndex);
155
- setKeyboardPreview(nextIndex);
156
- }, [itemCount, setKeyboardPreview]);
157
- var selectPreviousItem = useCallback(function () {
158
- var currentIndex = selectedItemIndexRef.current;
159
- var previousIndex = itemCount === 0 ? -1 : currentIndex <= 0 ? itemCount - 1 : currentIndex - 1;
160
- selectedItemIndexRef.current = previousIndex;
161
- setSelectedItemIndex(previousIndex);
162
- setKeyboardPreview(previousIndex);
163
- }, [itemCount, setKeyboardPreview]);
164
- var onItemHover = useCallback(function (itemIndex, itemKey) {
165
- selectedItemIndexRef.current = itemIndex;
166
- setSelectedItemIndex(itemIndex);
167
- setPreviewActivation(function (current) {
168
- if ((current === null || current === void 0 ? void 0 : current.itemKey) === itemKey && (current === null || current === void 0 ? void 0 : current.model) === model && (current === null || current === void 0 ? void 0 : current.source) === 'pointer') {
169
- return current;
170
- }
171
- return itemKey ? {
172
- itemKey: itemKey,
173
- model: model,
174
- source: 'pointer'
175
- } : undefined;
176
- });
177
- }, [model]);
178
- var onItemFocus = useCallback(function (itemIndex, itemKey) {
179
- selectedItemIndexRef.current = itemIndex;
180
- setSelectedItemIndex(itemIndex);
181
- setPreviewActivation(function (current) {
182
- if ((current === null || current === void 0 ? void 0 : current.itemKey) === itemKey && (current === null || current === void 0 ? void 0 : current.model) === model) {
183
- return current;
88
+ queueMicrotask(function () {
89
+ var state = editorView.state;
90
+ var insert = function insert(content) {
91
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
92
+ return insertSelectedItem(content, options)(state, state.tr, state.selection.head);
93
+ };
94
+ var transaction = selection(insert);
95
+ if (transaction) {
96
+ editorView.dispatch(transaction);
184
97
  }
185
- return itemKey ? {
186
- itemKey: itemKey,
187
- model: model,
188
- source: 'keyboard'
189
- } : undefined;
190
98
  });
191
- }, [model]);
192
- var onItemLeave = useCallback(function (itemKey) {
193
- setPreviewActivation(function (current) {
194
- return (current === null || current === void 0 ? void 0 : current.source) === 'pointer' && current.itemKey === itemKey ? undefined : current;
195
- });
196
- }, []);
197
- var onItemBlur = useCallback(function (itemKey) {
198
- setPreviewActivation(function (current) {
199
- return (current === null || current === void 0 ? void 0 : current.itemKey) === itemKey ? undefined : current;
200
- });
201
- }, []);
202
- var onItemVisibilityChange = useCallback(function (itemKey, isVisible) {
203
- if (!isVisible) {
204
- setPreviewActivation(function (current) {
205
- return (current === null || current === void 0 ? void 0 : current.source) === 'pointer' && current.itemKey === itemKey ? undefined : current;
206
- });
207
- }
208
- }, []);
209
- var selectActiveItem = useCallback(function () {
210
- if (isActiveItemMounted) {
211
- var _getDocument;
212
- (_getDocument = getDocument()) === null || _getDocument === void 0 || (_getDocument = _getDocument.getElementById(activeItemId)) === null || _getDocument === void 0 || _getDocument.click();
213
- }
214
- }, [activeItemId, isActiveItemMounted]);
99
+ }, [editorView, onSelect]);
100
+ var registeredMenu = useMemo(function () {
101
+ return {
102
+ components: components,
103
+ onClose: props.onClose,
104
+ maxHeight: Math.max(0, maxHeight - SEARCH_HEIGHT),
105
+ registerInteraction: registerInteraction,
106
+ editorView: editorView,
107
+ isOffline: isOffline,
108
+ menuOpenId: menuOpenId,
109
+ rootComponent: MENU,
110
+ query: query,
111
+ select: select,
112
+ surfaceContext: surfaceContext
113
+ };
114
+ }, [components, props.onClose, maxHeight, registerInteraction, editorView, isOffline, menuOpenId, query, select, surfaceContext]);
215
115
  var onQueryChange = useCallback(function (event) {
216
- setQuery(event.currentTarget.value);
116
+ return setQuery(event.currentTarget.value);
217
117
  }, []);
218
118
  var onKeyDown = useCallback(function (event) {
219
119
  if (event.key === 'Escape') {
120
+ var _interaction$onClose;
220
121
  event.preventDefault();
221
- closeWithAnalytics();
122
+ interaction === null || interaction === void 0 || (_interaction$onClose = interaction.onClose) === null || _interaction$onClose === void 0 || _interaction$onClose.call(interaction);
123
+ props.onClose();
222
124
  return;
223
125
  }
224
-
225
- // The search field owns the composite's arrow-key and Enter behaviour. Other
226
- // focusable controls, including consumer-provided empty-state content, need
227
- // to retain their native keyboard behaviour.
228
- if (event.target !== searchRef.current) {
126
+ // Some IME key events report 229 without setting isComposing. Let the input finish
127
+ // composing text before handling menu navigation or selection.
128
+ if (event.target !== searchRef.current || event.nativeEvent.isComposing || event.keyCode === 229) {
229
129
  return;
230
130
  }
231
- switch (event.key) {
232
- case 'ArrowDown':
233
- event.preventDefault();
234
- selectNextItem();
235
- break;
236
- case 'ArrowUp':
237
- event.preventDefault();
238
- selectPreviousItem();
239
- break;
240
- case 'Enter':
241
- event.preventDefault();
242
- selectActiveItem();
243
- break;
131
+ if (interaction !== null && interaction !== void 0 && interaction.onKeyDown(event.nativeEvent)) {
132
+ event.preventDefault();
244
133
  }
245
- }, [closeWithAnalytics, selectActiveItem, selectNextItem, selectPreviousItem]);
246
- return /*#__PURE__*/React.createElement(Box, {
247
- "data-keyboard-navigation-independent": "",
248
- testId: "registered-insert-menu",
134
+ }, [interaction, props.onClose]);
135
+ return /*#__PURE__*/React.createElement(RegisteredMenuContext.Provider, {
136
+ value: registeredMenu
137
+ }, Root && /*#__PURE__*/React.createElement("div", {
138
+ "data-registered-insert-menu-root": "",
249
139
  onKeyDownCapture: onKeyDown,
250
- xcss: styles.menu,
251
- style: menuStyle
140
+ "data-keyboard-navigation-independent": "",
141
+ "data-testid": "registered-insert-menu",
142
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- The popup supplies the available height at runtime.
143
+ style: menuStyle,
144
+ className: ax([styles.menu, !interaction && styles.hidden])
252
145
  }, /*#__PURE__*/React.createElement(Box, {
253
146
  xcss: styles.search
254
147
  }, /*#__PURE__*/React.createElement(Textfield, {
255
- "aria-activedescendant": isActiveItemMounted ? activeItemId : undefined,
256
- "aria-controls": listId,
257
- "aria-expanded": "true",
258
- placeholder: "Search",
148
+ "aria-label": (interaction === null || interaction === void 0 ? void 0 : interaction.label) || formatMessage(toolbarInsertBlockMessages.insertMenu),
149
+ "aria-activedescendant": interaction === null || interaction === void 0 ? void 0 : interaction.activeDescendantId,
150
+ "aria-controls": interaction === null || interaction === void 0 ? void 0 : interaction.listId,
151
+ "aria-expanded": (_interaction$expanded = interaction === null || interaction === void 0 ? void 0 : interaction.expanded) !== null && _interaction$expanded !== void 0 ? _interaction$expanded : false,
152
+ "aria-autocomplete": "list",
153
+ placeholder: formatMessage(typeAheadListMessages.quickInsertInputPlaceholderLabel),
259
154
  ref: searchRef,
260
155
  role: "combobox",
261
156
  value: query,
262
157
  onChange: onQueryChange
263
- })), /*#__PURE__*/React.createElement(RegisteredInsertMenuList, {
264
- editorView: editorView,
265
- emptyStateHandler: emptyStateHandler,
266
- isOffline: isOffline,
267
- listId: listId,
268
- listLabel: formatMessage(messages.insertMenu),
269
- maxHeight: maxHeight,
270
- menuOpenId: menuOpenId,
271
- model: model,
272
- onClose: selectWithAnalytics,
273
- onItemFocus: onItemFocus,
274
- onItemHover: onItemHover,
275
- onItemBlur: onItemBlur,
276
- onItemLeave: onItemLeave,
277
- onItemVisibilityChange: onItemVisibilityChange,
278
- onRenderedItemsChange: setRenderedItems,
279
- query: query,
280
- selectedItemIndex: selectedItemIndex,
281
- surfaceContext: surfaceContext,
282
- activePreviewItemKey: activePreviewItemKey
283
- }));
158
+ })), menu));
284
159
  };
@@ -16,7 +16,7 @@ var RegisteredInsertMenuContainer = function RegisteredInsertMenuContainer(_ref)
16
16
  };
17
17
  var RegisteredInsertMenuWithListeners = withOuterListeners(RegisteredInsertMenuContainer);
18
18
  export var RegisteredInsertMenuContent = function RegisteredInsertMenuContent(_ref2) {
19
- var _api$uiControlRegistr2, _api$uiControlRegistr3, _api$quickInsert, _api$analytics, _api$quickInsert2;
19
+ var _api$uiControlRegistr2, _api$uiControlRegistr3;
20
20
  var api = _ref2.api,
21
21
  editorView = _ref2.editorView,
22
22
  isOffline = _ref2.isOffline,
@@ -42,9 +42,6 @@ export var RegisteredInsertMenuContent = function RegisteredInsertMenuContent(_r
42
42
  }, /*#__PURE__*/React.createElement(RegisteredInsertMenu, {
43
43
  components: components,
44
44
  editorView: editorView,
45
- emptyStateHandler: api === null || api === void 0 || (_api$quickInsert = api.quickInsert) === null || _api$quickInsert === void 0 || (_api$quickInsert = _api$quickInsert.sharedState.currentState()) === null || _api$quickInsert === void 0 ? void 0 : _api$quickInsert.emptyStateHandler,
46
- fireAnalyticsEvent: api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions.fireAnalyticsEvent,
47
- getItemRank: api === null || api === void 0 || (_api$quickInsert2 = api.quickInsert) === null || _api$quickInsert2 === void 0 || (_api$quickInsert2 = _api$quickInsert2.sharedState.currentState()) === null || _api$quickInsert2 === void 0 ? void 0 : _api$quickInsert2.getItemRank,
48
45
  isOffline: isOffline,
49
46
  maxHeight: maxHeight,
50
47
  onClose: onClose,
@@ -1,19 +1,17 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ */
1
5
  import React from 'react';
2
- import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics/api';
3
- import type { RegisteredItemRankResolver } from '@atlaskit/editor-common/type-ahead/item-rank';
4
- import type { EmptyStateHandler } from '@atlaskit/editor-common/types/empty-state-handler';
5
6
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
7
  import type { RegisterComponent } from '@atlaskit/editor-ui-control-model/types';
7
8
  type Props = {
8
9
  components: RegisterComponent[];
9
10
  editorView: EditorView;
10
- emptyStateHandler?: EmptyStateHandler;
11
- fireAnalyticsEvent?: EditorAnalyticsAPI['fireAnalyticsEvent'];
12
- getItemRank?: RegisteredItemRankResolver;
13
11
  isOffline: boolean;
14
12
  maxHeight?: number;
15
13
  onClose: () => void;
16
14
  onSelect: () => void;
17
15
  };
18
- export declare const RegisteredInsertMenu: ({ components, emptyStateHandler, fireAnalyticsEvent, getItemRank, editorView, isOffline, maxHeight, onClose, onSelect, }: Props) => React.JSX.Element;
16
+ export declare const RegisteredInsertMenu: (props: Props) => React.JSX.Element;
19
17
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-insert-block",
3
- "version": "30.0.5",
3
+ "version": "31.0.1",
4
4
  "description": "Insert block plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -23,38 +23,38 @@
23
23
  "dependencies": {
24
24
  "@atlaskit/browser-apis": "^1.2.0",
25
25
  "@atlaskit/css": "^1.1.0",
26
- "@atlaskit/editor-plugin-analytics": "^29.0.0",
27
- "@atlaskit/editor-plugin-block-type": "^33.0.0",
28
- "@atlaskit/editor-plugin-code-block": "^31.0.0",
29
- "@atlaskit/editor-plugin-connectivity": "^29.0.0",
30
- "@atlaskit/editor-plugin-date": "^31.0.0",
31
- "@atlaskit/editor-plugin-emoji": "^30.0.0",
32
- "@atlaskit/editor-plugin-expand": "^30.0.0",
33
- "@atlaskit/editor-plugin-extension": "^32.0.0",
34
- "@atlaskit/editor-plugin-feature-flags": "^28.0.0",
35
- "@atlaskit/editor-plugin-hyperlink": "^31.0.0",
36
- "@atlaskit/editor-plugin-image-upload": "^29.0.0",
37
- "@atlaskit/editor-plugin-layout": "^30.0.0",
38
- "@atlaskit/editor-plugin-media": "^31.0.0",
39
- "@atlaskit/editor-plugin-media-insert": "^47.0.0",
40
- "@atlaskit/editor-plugin-mentions": "^31.0.0",
41
- "@atlaskit/editor-plugin-metrics": "^30.0.0",
42
- "@atlaskit/editor-plugin-panel": "^31.0.0",
43
- "@atlaskit/editor-plugin-placeholder-text": "^30.0.0",
44
- "@atlaskit/editor-plugin-primary-toolbar": "^30.0.0",
45
- "@atlaskit/editor-plugin-quick-insert": "^29.0.0",
46
- "@atlaskit/editor-plugin-rule": "^29.0.0",
47
- "@atlaskit/editor-plugin-status": "^30.0.0",
48
- "@atlaskit/editor-plugin-table": "^41.0.0",
49
- "@atlaskit/editor-plugin-tasks-and-decisions": "^32.0.0",
50
- "@atlaskit/editor-plugin-toolbar": "^26.0.0",
51
- "@atlaskit/editor-plugin-type-ahead": "^30.0.0",
52
- "@atlaskit/editor-plugin-ui-control-registry": "^23.0.0",
26
+ "@atlaskit/editor-plugin-analytics": "^30.0.0",
27
+ "@atlaskit/editor-plugin-block-type": "^34.0.0",
28
+ "@atlaskit/editor-plugin-code-block": "^32.0.0",
29
+ "@atlaskit/editor-plugin-connectivity": "^30.0.0",
30
+ "@atlaskit/editor-plugin-date": "^32.0.0",
31
+ "@atlaskit/editor-plugin-emoji": "^31.0.0",
32
+ "@atlaskit/editor-plugin-expand": "^31.0.0",
33
+ "@atlaskit/editor-plugin-extension": "^33.0.0",
34
+ "@atlaskit/editor-plugin-feature-flags": "^29.0.0",
35
+ "@atlaskit/editor-plugin-hyperlink": "^32.0.0",
36
+ "@atlaskit/editor-plugin-image-upload": "^30.0.0",
37
+ "@atlaskit/editor-plugin-layout": "^31.0.0",
38
+ "@atlaskit/editor-plugin-media": "^32.0.0",
39
+ "@atlaskit/editor-plugin-media-insert": "^48.0.0",
40
+ "@atlaskit/editor-plugin-mentions": "^32.0.0",
41
+ "@atlaskit/editor-plugin-metrics": "^31.0.0",
42
+ "@atlaskit/editor-plugin-panel": "^32.0.0",
43
+ "@atlaskit/editor-plugin-placeholder-text": "^31.0.0",
44
+ "@atlaskit/editor-plugin-primary-toolbar": "^31.0.0",
45
+ "@atlaskit/editor-plugin-quick-insert": "^30.0.0",
46
+ "@atlaskit/editor-plugin-rule": "^30.0.0",
47
+ "@atlaskit/editor-plugin-status": "^31.0.0",
48
+ "@atlaskit/editor-plugin-table": "^42.0.0",
49
+ "@atlaskit/editor-plugin-tasks-and-decisions": "^33.0.0",
50
+ "@atlaskit/editor-plugin-toolbar": "^27.0.0",
51
+ "@atlaskit/editor-plugin-type-ahead": "^31.0.0",
52
+ "@atlaskit/editor-plugin-ui-control-registry": "^24.0.0",
53
53
  "@atlaskit/editor-prosemirror": "^9.0.0",
54
54
  "@atlaskit/editor-shared-styles": "^4.6.0",
55
55
  "@atlaskit/editor-toolbar": "^2.8.0",
56
56
  "@atlaskit/editor-toolbar-model": "^1.2.0",
57
- "@atlaskit/editor-ui-control-model": "^2.10.0",
57
+ "@atlaskit/editor-ui-control-model": "^3.0.0",
58
58
  "@atlaskit/emoji": "^73.1.0",
59
59
  "@atlaskit/icon": "^38.0.0",
60
60
  "@atlaskit/icon-lab": "^7.11.0",
@@ -62,8 +62,8 @@
62
62
  "@atlaskit/platform-feature-flags": "^2.2.0",
63
63
  "@atlaskit/primitives": "^22.6.0",
64
64
  "@atlaskit/textfield": "^10.2.0",
65
- "@atlaskit/tmp-editor-statsig": "^246.0.0",
66
- "@atlaskit/tokens": "^20.7.0",
65
+ "@atlaskit/tmp-editor-statsig": "^247.0.0",
66
+ "@atlaskit/tokens": "^20.8.0",
67
67
  "@babel/runtime": "^7.0.0",
68
68
  "@emotion/react": "^11.7.1",
69
69
  "bind-event-listener": "^3.0.0",
@@ -72,7 +72,7 @@
72
72
  "react-virtualized": "^9.22.6"
73
73
  },
74
74
  "peerDependencies": {
75
- "@atlaskit/editor-common": "^133.6.0",
75
+ "@atlaskit/editor-common": "^134.0.0",
76
76
  "react": "^18.2.0 || ^19.2.0",
77
77
  "react-dom": "^18.2.0 || ^19.2.0",
78
78
  "react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.RegisteredInsertMenuPreviewContext = exports.RegisteredInsertMenuItem = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _enums = require("@atlaskit/editor-common/analytics/types/enums");
10
- var _insert = require("@atlaskit/editor-common/insert");
11
- var _provider = require("@atlaskit/editor-common/quick-insert/provider");
12
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
- // Preview updates must remain live while react-virtualized caches row elements during scrolling.
14
- var RegisteredInsertMenuPreviewContext = exports.RegisteredInsertMenuPreviewContext = /*#__PURE__*/(0, _react.createContext)(undefined);
15
- var RegisteredInsertMenuItem = exports.RegisteredInsertMenuItem = function RegisteredInsertMenuItem(_ref) {
16
- var _registration$compone;
17
- var editorView = _ref.editorView,
18
- id = _ref.id,
19
- isOffline = _ref.isOffline,
20
- isSelected = _ref.isSelected,
21
- menuOpenId = _ref.menuOpenId,
22
- onClose = _ref.onClose,
23
- registration = _ref.registration,
24
- surfaceContext = _ref.surfaceContext;
25
- var Component = (_registration$compone = registration.component) !== null && _registration$compone !== void 0 ? _registration$compone : _react.default.Fragment;
26
- var activePreviewItemKey = (0, _react.useContext)(RegisteredInsertMenuPreviewContext);
27
- var isPreviewActive = activePreviewItemKey === registration.key;
28
- var select = (0, _react.useCallback)(function (selectionHandler) {
29
- // Close first so a registered item may safely focus the editor or open its picker.
30
- onClose();
31
- queueMicrotask(function () {
32
- var state = editorView.state;
33
- var insert = function insert(content) {
34
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
35
- return (0, _insert.insertSelectedItem)(content, options)(state, state.tr, state.selection.head);
36
- };
37
- var transaction = selectionHandler({
38
- insert: insert,
39
- source: _enums.INPUT_METHOD.INSERT_MENU
40
- });
41
- if (transaction) {
42
- editorView.dispatch(transaction);
43
- }
44
- });
45
- }, [editorView, onClose]);
46
- var contextValue = (0, _react.useMemo)(function () {
47
- return {
48
- editorView: editorView,
49
- isOffline: isOffline,
50
- item: {
51
- id: id,
52
- isPreviewActive: isPreviewActive,
53
- isSelected: isSelected
54
- },
55
- menuOpenId: menuOpenId,
56
- select: select,
57
- surface: 'toolbar',
58
- surfaceContext: surfaceContext
59
- };
60
- }, [editorView, id, isOffline, isPreviewActive, isSelected, menuOpenId, select, surfaceContext]);
61
- return /*#__PURE__*/_react.default.createElement(_provider.QuickInsertProvider, {
62
- value: contextValue
63
- }, /*#__PURE__*/_react.default.createElement(Component, null, null));
64
- };
@@ -1,11 +0,0 @@
1
- ._15a5nqa1{border-top-style:solid}
2
- ._16jlkb7n{flex-grow:1}
3
- ._18m91wug{overflow-y:auto}
4
- ._1e0c1txw{display:flex}
5
- ._1i531l7x{border-top-color:var(--ds-border,#0b120e24)}
6
- ._1o9zidpf{flex-shrink:0}
7
- ._1q51u2gc{padding-block-start:var(--ds-space-100,8px)}
8
- ._1tkeidpf{min-height:0}
9
- ._2lx21bp4{flex-direction:column}
10
- ._85i5u2gc{padding-block-end:var(--ds-space-100,8px)}
11
- ._uwhke4h9{border-top-width:var(--ds-border-width,1px)}