@atlaskit/editor-plugin-quick-insert 29.0.4 → 30.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 (87) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/quickInsertPlugin.js +10 -5
  3. package/dist/cjs/ui/QuickInsertRecommendedSlot.js +11 -8
  4. package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowser.js +31 -7
  5. package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +13 -7
  6. package/dist/cjs/ui/RegistryElementBrowser/model.js +31 -18
  7. package/dist/cjs/ui/getQuickInsertComponents.js +28 -16
  8. package/dist/cjs/ui/getRecommendedComponents.js +2 -2
  9. package/dist/cjs/ui/registered-menu/QuickInsertEmptyState.compiled.css +11 -0
  10. package/dist/cjs/ui/registered-menu/QuickInsertEmptyState.js +61 -0
  11. package/dist/cjs/ui/registered-menu/QuickInsertMenuRoot.js +220 -0
  12. package/dist/cjs/ui/registered-menu/QuickInsertMenuSection.js +23 -0
  13. package/dist/cjs/ui/registered-menu/QuickInsertSearchResultsSection.js +19 -0
  14. package/dist/cjs/ui/registered-menu/RegisteredQuickInsertMenuItem.js +42 -0
  15. package/dist/cjs/ui/registered-menu/ToolbarQuickInsertMenu.compiled.css +11 -0
  16. package/dist/cjs/ui/registered-menu/ToolbarQuickInsertMenu.js +128 -0
  17. package/dist/cjs/ui/registered-menu/TypeAheadQuickInsertMenu.compiled.css +3 -0
  18. package/dist/cjs/ui/registered-menu/TypeAheadQuickInsertMenu.js +90 -0
  19. package/dist/cjs/ui/registered-menu/assets/no-results.js +36 -0
  20. package/dist/cjs/ui/registered-menu/get-quick-insert-menu-model.js +254 -0
  21. package/dist/cjs/ui/registered-menu/getQuickInsertMenuItemId.js +9 -0
  22. package/dist/cjs/ui/registered-menu/selectQuickInsertCategoryItems.js +27 -0
  23. package/dist/cjs/ui/registered-menu/useQuickInsertSearchAnalytics.js +100 -0
  24. package/dist/es2019/quickInsertPlugin.js +10 -5
  25. package/dist/es2019/ui/QuickInsertRecommendedSlot.js +10 -5
  26. package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowser.js +19 -2
  27. package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +12 -7
  28. package/dist/es2019/ui/RegistryElementBrowser/model.js +27 -16
  29. package/dist/es2019/ui/getQuickInsertComponents.js +24 -10
  30. package/dist/es2019/ui/getRecommendedComponents.js +2 -2
  31. package/dist/es2019/ui/registered-menu/QuickInsertEmptyState.compiled.css +11 -0
  32. package/dist/es2019/ui/registered-menu/QuickInsertEmptyState.js +47 -0
  33. package/dist/es2019/ui/registered-menu/QuickInsertMenuRoot.js +191 -0
  34. package/dist/es2019/ui/registered-menu/QuickInsertMenuSection.js +15 -0
  35. package/dist/es2019/ui/registered-menu/QuickInsertSearchResultsSection.js +14 -0
  36. package/dist/es2019/ui/registered-menu/RegisteredQuickInsertMenuItem.js +34 -0
  37. package/dist/es2019/ui/registered-menu/ToolbarQuickInsertMenu.compiled.css +11 -0
  38. package/dist/es2019/ui/registered-menu/ToolbarQuickInsertMenu.js +116 -0
  39. package/dist/es2019/ui/registered-menu/TypeAheadQuickInsertMenu.compiled.css +3 -0
  40. package/dist/es2019/ui/registered-menu/TypeAheadQuickInsertMenu.js +78 -0
  41. package/dist/es2019/ui/registered-menu/assets/no-results.js +30 -0
  42. package/dist/es2019/ui/registered-menu/get-quick-insert-menu-model.js +191 -0
  43. package/dist/es2019/ui/registered-menu/getQuickInsertMenuItemId.js +1 -0
  44. package/dist/es2019/ui/registered-menu/selectQuickInsertCategoryItems.js +19 -0
  45. package/dist/es2019/ui/registered-menu/useQuickInsertSearchAnalytics.js +91 -0
  46. package/dist/esm/quickInsertPlugin.js +10 -5
  47. package/dist/esm/ui/QuickInsertRecommendedSlot.js +11 -8
  48. package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowser.js +30 -6
  49. package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +12 -7
  50. package/dist/esm/ui/RegistryElementBrowser/model.js +31 -18
  51. package/dist/esm/ui/getQuickInsertComponents.js +27 -15
  52. package/dist/esm/ui/getRecommendedComponents.js +2 -2
  53. package/dist/esm/ui/registered-menu/QuickInsertEmptyState.compiled.css +11 -0
  54. package/dist/esm/ui/registered-menu/QuickInsertEmptyState.js +50 -0
  55. package/dist/esm/ui/registered-menu/QuickInsertMenuRoot.js +211 -0
  56. package/dist/esm/ui/registered-menu/QuickInsertMenuSection.js +16 -0
  57. package/dist/esm/ui/registered-menu/QuickInsertSearchResultsSection.js +12 -0
  58. package/dist/esm/ui/registered-menu/RegisteredQuickInsertMenuItem.js +34 -0
  59. package/dist/esm/ui/registered-menu/ToolbarQuickInsertMenu.compiled.css +11 -0
  60. package/dist/esm/ui/registered-menu/ToolbarQuickInsertMenu.js +120 -0
  61. package/dist/esm/ui/registered-menu/TypeAheadQuickInsertMenu.compiled.css +3 -0
  62. package/dist/esm/ui/registered-menu/TypeAheadQuickInsertMenu.js +82 -0
  63. package/dist/esm/ui/registered-menu/assets/no-results.js +29 -0
  64. package/dist/esm/ui/registered-menu/get-quick-insert-menu-model.js +247 -0
  65. package/dist/esm/ui/registered-menu/getQuickInsertMenuItemId.js +3 -0
  66. package/dist/esm/ui/registered-menu/selectQuickInsertCategoryItems.js +21 -0
  67. package/dist/esm/ui/registered-menu/useQuickInsertSearchAnalytics.js +93 -0
  68. package/dist/types/quickInsertPluginType.d.ts +1 -1
  69. package/dist/types/ui/QuickInsertRecommendedSlot.d.ts +3 -3
  70. package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.d.ts +5 -2
  71. package/dist/types/ui/RegistryElementBrowser/model.d.ts +3 -2
  72. package/dist/types/ui/getQuickInsertComponents.d.ts +8 -2
  73. package/dist/types/ui/registered-menu/QuickInsertEmptyState.d.ts +7 -0
  74. package/dist/types/ui/registered-menu/QuickInsertMenuRoot.d.ts +11 -0
  75. package/dist/types/ui/registered-menu/QuickInsertMenuSection.d.ts +4 -0
  76. package/dist/types/ui/registered-menu/QuickInsertSearchResultsSection.d.ts +2 -0
  77. package/dist/types/ui/registered-menu/RegisteredQuickInsertMenuItem.d.ts +3 -0
  78. package/dist/types/ui/registered-menu/ToolbarQuickInsertMenu.d.ts +28 -0
  79. package/dist/types/ui/registered-menu/TypeAheadQuickInsertMenu.d.ts +27 -0
  80. package/dist/types/ui/registered-menu/assets/no-results.d.ts +7 -0
  81. package/dist/types/ui/registered-menu/get-quick-insert-menu-model.d.ts +19 -0
  82. package/dist/types/ui/registered-menu/getQuickInsertMenuItemId.d.ts +1 -0
  83. package/dist/types/ui/registered-menu/selectQuickInsertCategoryItems.d.ts +7 -0
  84. package/dist/types/ui/registered-menu/useQuickInsertSearchAnalytics.d.ts +12 -0
  85. package/package.json +15 -12
  86. package/registered-menu/model/package.json +10 -0
  87. package/registered-menu/search-analytics/package.json +10 -0
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _reactIntl = require("react-intl");
14
+ var _enums = require("@atlaskit/editor-common/analytics/types/enums");
15
+ var _insertBlock = require("@atlaskit/editor-common/messages/insert-block");
16
+ var _provider = require("@atlaskit/editor-common/quick-insert/provider");
17
+ var _context = require("@atlaskit/editor-common/registered-menu/context");
18
+ var _surfaceContext = require("@atlaskit/editor-common/registered-menu/surface-context");
19
+ var _useRegisteredMenu2 = require("@atlaskit/editor-common/registered-menu/use-registered-menu");
20
+ var _typeAheadIsSectionOverflowItemKey = require("@atlaskit/editor-common/type-ahead-is-section-overflow-item-key");
21
+ var _messages = require("@atlaskit/editor-common/type-ahead/messages");
22
+ var _menuGroup = _interopRequireDefault(require("@atlaskit/menu/menu-group"));
23
+ var _getQuickInsertMenuModel = require("./get-quick-insert-menu-model");
24
+ var _getQuickInsertMenuItemId = require("./getQuickInsertMenuItemId");
25
+ var _RegisteredQuickInsertMenuItem = require("./RegisteredQuickInsertMenuItem");
26
+ var _selectQuickInsertCategoryItems = require("./selectQuickInsertCategoryItems");
27
+ var _ToolbarQuickInsertMenu = require("./ToolbarQuickInsertMenu");
28
+ var _TypeAheadQuickInsertMenu = require("./TypeAheadQuickInsertMenu");
29
+ var _useQuickInsertSearchAnalytics = require("./useQuickInsertSearchAnalytics");
30
+ var _excluded = ["rows", "selectableItems", "selectedItemIndex", "activeItemKey"];
31
+ 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); }
32
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
33
+ var DEFAULT_MENU_MAX_HEIGHT = 480;
34
+ var isImeEnter = function isImeEnter(event) {
35
+ return event.isComposing || event.keyCode === 229;
36
+ };
37
+ var QuickInsertMenuRoot = function QuickInsertMenuRoot(_ref) {
38
+ var _surfaceContext$get, _registeredMenu$maxHe;
39
+ var emptyStateHandler = _ref.emptyStateHandler,
40
+ fireAnalyticsEvent = _ref.fireAnalyticsEvent,
41
+ getItemRank = _ref.getItemRank;
42
+ var registeredMenu = (0, _context.useRegisteredMenuContext)();
43
+ var _registeredMenu$query = registeredMenu.query,
44
+ query = _registeredMenu$query === void 0 ? '' : _registeredMenu$query,
45
+ selectFromHost = registeredMenu.select,
46
+ surfaceContext = registeredMenu.surfaceContext;
47
+ var surface = (_surfaceContext$get = surfaceContext.get(_surfaceContext.REGISTERED_MENU_SURFACE_CONTEXT)) === null || _surfaceContext$get === void 0 ? void 0 : _surfaceContext$get.surface;
48
+ if (!selectFromHost || !surface || surface === 'element-browser') {
49
+ throw new Error('QuickInsertMenuRoot requires a selection action and registered menu surface');
50
+ }
51
+ var _useIntl = (0, _reactIntl.useIntl)(),
52
+ formatMessage = _useIntl.formatMessage;
53
+ var components = registeredMenu.components,
54
+ runtimeItemRank = registeredMenu.getItemRank,
55
+ rootComponent = registeredMenu.rootComponent;
56
+ var model = (0, _react.useMemo)(function () {
57
+ return (0, _getQuickInsertMenuModel.getQuickInsertMenuModel)({
58
+ components: components,
59
+ formatMessage: formatMessage,
60
+ getItemRank: runtimeItemRank !== null && runtimeItemRank !== void 0 ? runtimeItemRank : getItemRank,
61
+ query: query,
62
+ rootComponent: rootComponent,
63
+ selectCategoryItems: components.some(function (_ref2) {
64
+ var key = _ref2.key;
65
+ return (0, _typeAheadIsSectionOverflowItemKey.isSectionOverflowItemKey)(key);
66
+ }) ? _selectQuickInsertCategoryItems.selectQuickInsertCategoryItems : undefined,
67
+ surfaceContext: surfaceContext
68
+ });
69
+ }, [components, formatMessage, getItemRank, query, rootComponent, runtimeItemRank, surfaceContext]);
70
+ var resultCount = (0, _react.useMemo)(function () {
71
+ return model.sections.reduce(function (count, _ref3) {
72
+ var _ref4 = (0, _toArray2.default)(_ref3),
73
+ items = _arrayLikeToArray(_ref4).slice(1);
74
+ return count + items.filter(function (_ref5) {
75
+ var key = _ref5.key;
76
+ return !(0, _typeAheadIsSectionOverflowItemKey.isSectionOverflowItemKey)(key);
77
+ }).length;
78
+ }, 0);
79
+ }, [model.sections]);
80
+ var flushSearchAnalytics = (0, _useQuickInsertSearchAnalytics.useQuickInsertSearchAnalytics)({
81
+ surface: surface,
82
+ fireAnalyticsEvent: fireAnalyticsEvent,
83
+ query: query,
84
+ resultCount: resultCount
85
+ });
86
+ var selectItem = (0, _react.useCallback)(function (selection) {
87
+ flushSearchAnalytics();
88
+ selectFromHost(function (insert) {
89
+ return selection({
90
+ insert: insert,
91
+ source: surface === 'toolbar' ? _enums.INPUT_METHOD.INSERT_MENU : _enums.INPUT_METHOD.QUICK_INSERT
92
+ });
93
+ });
94
+ }, [flushSearchAnalytics, selectFromHost, surface]);
95
+ var menuContextValue = (0, _react.useMemo)(function () {
96
+ return {
97
+ editorView: registeredMenu.editorView,
98
+ isOffline: registeredMenu.isOffline,
99
+ popupsMountPoint: registeredMenu.portalMountPoint,
100
+ select: selectItem,
101
+ surfaceContext: registeredMenu.surfaceContext
102
+ };
103
+ }, [registeredMenu.editorView, registeredMenu.isOffline, registeredMenu.portalMountPoint, registeredMenu.surfaceContext, selectItem]);
104
+ var listLabel = formatMessage(surface === 'typeahead' ? _messages.typeAheadListMessages.quickInsertInputLabel : _insertBlock.toolbarInsertBlockMessages.insertMenu);
105
+ var _useRegisteredMenu = (0, _useRegisteredMenu2.useRegisteredMenu)({
106
+ model: model,
107
+ resetKey: query
108
+ }),
109
+ rows = _useRegisteredMenu.rows,
110
+ selectableItems = _useRegisteredMenu.selectableItems,
111
+ selectedItemIndex = _useRegisteredMenu.selectedItemIndex,
112
+ activeItemKey = _useRegisteredMenu.activeItemKey,
113
+ listEvents = (0, _objectWithoutProperties2.default)(_useRegisteredMenu, _excluded);
114
+ var listId = (0, _react.useId)();
115
+ var _useState = (0, _react.useState)({
116
+ startIndex: -1,
117
+ stopIndex: -1
118
+ }),
119
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
120
+ renderedItems = _useState2[0],
121
+ setRenderedItems = _useState2[1];
122
+ var menuRef = (0, _react.useRef)(null);
123
+ var maxHeight = (_registeredMenu$maxHe = registeredMenu.maxHeight) !== null && _registeredMenu$maxHe !== void 0 ? _registeredMenu$maxHe : DEFAULT_MENU_MAX_HEIGHT;
124
+ var itemCount = selectableItems.length + (model.footer ? 1 : 0);
125
+ var activeItemId = selectedItemIndex >= 0 && selectedItemIndex < itemCount ? (0, _getQuickInsertMenuItemId.getQuickInsertMenuItemId)(listId, selectedItemIndex) : undefined;
126
+ var isActiveItemMounted = selectedItemIndex >= 0 && selectedItemIndex < itemCount && (selectedItemIndex >= renderedItems.startIndex && selectedItemIndex <= renderedItems.stopIndex || Boolean(model.footer) && selectedItemIndex === itemCount - 1);
127
+ var selectActiveItem = (0, _react.useCallback)(function () {
128
+ if (isActiveItemMounted && activeItemId) {
129
+ var _menuRef$current;
130
+ (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 || (_menuRef$current = _menuRef$current.ownerDocument.getElementById(activeItemId)) === null || _menuRef$current === void 0 || _menuRef$current.click();
131
+ }
132
+ }, [activeItemId, isActiveItemMounted]);
133
+ var onMenuKeyDown = (0, _react.useCallback)(function (event) {
134
+ if (event.key === 'ArrowDown') {
135
+ listEvents.selectNext();
136
+ return true;
137
+ }
138
+ if (event.key === 'ArrowUp') {
139
+ listEvents.selectPrevious();
140
+ return true;
141
+ }
142
+ if (event.key === 'Enter') {
143
+ if (isImeEnter(event)) {
144
+ return false;
145
+ }
146
+ selectActiveItem();
147
+ return true;
148
+ }
149
+ return false;
150
+ }, [listEvents.selectNext, listEvents.selectPrevious, selectActiveItem]);
151
+ var containsTarget = (0, _react.useCallback)(function (target) {
152
+ var _menuRef$current2;
153
+ return Boolean((_menuRef$current2 = menuRef.current) === null || _menuRef$current2 === void 0 ? void 0 : _menuRef$current2.contains(target));
154
+ }, []);
155
+ var interaction = (0, _react.useMemo)(function () {
156
+ return {
157
+ activeDescendantId: isActiveItemMounted ? activeItemId : undefined,
158
+ containsTarget: containsTarget,
159
+ expanded: itemCount > 0,
160
+ label: listLabel,
161
+ listId: listId,
162
+ onKeyDown: onMenuKeyDown,
163
+ onClose: flushSearchAnalytics,
164
+ optionCount: itemCount,
165
+ selectNext: listEvents.selectNext,
166
+ selectPrevious: listEvents.selectPrevious
167
+ };
168
+ }, [activeItemId, containsTarget, flushSearchAnalytics, isActiveItemMounted, itemCount, listId, listLabel, listEvents.selectNext, listEvents.selectPrevious, onMenuKeyDown]);
169
+ (0, _react.useLayoutEffect)(function () {
170
+ if (!model.root) {
171
+ return;
172
+ }
173
+ return registeredMenu.registerInteraction(interaction);
174
+ }, [model.root, interaction, registeredMenu.registerInteraction]);
175
+ if (!model.root) {
176
+ return null;
177
+ }
178
+ return /*#__PURE__*/_react.default.createElement(_provider.QuickInsertProvider, {
179
+ value: menuContextValue
180
+ }, /*#__PURE__*/_react.default.createElement("div", {
181
+ ref: menuRef
182
+ }, /*#__PURE__*/_react.default.createElement(_menuGroup.default, null, surface === 'typeahead' ? /*#__PURE__*/_react.default.createElement(_TypeAheadQuickInsertMenu.TypeAheadQuickInsertMenu, {
183
+ Item: _RegisteredQuickInsertMenuItem.RegisteredQuickInsertMenuItem,
184
+ activeItemKey: activeItemKey,
185
+ hasScrollPadding: true,
186
+ itemCount: itemCount,
187
+ listId: listId,
188
+ listLabel: listLabel,
189
+ maxHeight: maxHeight,
190
+ model: model,
191
+ onItemBlur: listEvents.onItemBlur,
192
+ onItemFocus: listEvents.onItemFocus,
193
+ onItemHover: listEvents.onItemHover,
194
+ onItemLeave: listEvents.onItemLeave,
195
+ onItemVisibilityChange: listEvents.onItemVisibilityChange,
196
+ onRenderedItemsChange: setRenderedItems,
197
+ query: query,
198
+ rows: rows,
199
+ selectedItemIndex: selectedItemIndex
200
+ }) : /*#__PURE__*/_react.default.createElement(_ToolbarQuickInsertMenu.ToolbarQuickInsertMenu, {
201
+ Item: _RegisteredQuickInsertMenuItem.RegisteredQuickInsertMenuItem,
202
+ activePreviewItemKey: activeItemKey,
203
+ emptyStateHandler: emptyStateHandler,
204
+ itemCount: itemCount,
205
+ listId: listId,
206
+ listLabel: listLabel,
207
+ maxHeight: maxHeight,
208
+ model: model,
209
+ onItemBlur: listEvents.onItemBlur,
210
+ onItemFocus: listEvents.onItemFocus,
211
+ onItemHover: listEvents.onItemHover,
212
+ onItemLeave: listEvents.onItemLeave,
213
+ onItemVisibilityChange: listEvents.onItemVisibilityChange,
214
+ onRenderedItemsChange: setRenderedItems,
215
+ query: query,
216
+ rows: rows,
217
+ selectedItemIndex: selectedItemIndex
218
+ }))));
219
+ };
220
+ var _default = exports.default = QuickInsertMenuRoot;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.QuickInsertMenuSection = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _headingItem = _interopRequireDefault(require("@atlaskit/menu/heading-item"));
10
+ var _box = require("@atlaskit/primitives/compiled/box");
11
+ var QuickInsertMenuSection = exports.QuickInsertMenuSection = function QuickInsertMenuSection(_ref) {
12
+ var children = _ref.children,
13
+ title = _ref.title;
14
+ return /*#__PURE__*/_react.default.createElement(_box.Box, {
15
+ role: "group",
16
+ "aria-label": title
17
+ }, /*#__PURE__*/_react.default.createElement(_box.Box, {
18
+ paddingBlockStart: "space.150",
19
+ paddingBlockEnd: "space.050"
20
+ }, /*#__PURE__*/_react.default.createElement(_headingItem.default, {
21
+ "aria-hidden": true
22
+ }, title)), children);
23
+ };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.QuickInsertSearchResultsSection = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactIntl = require("react-intl");
10
+ var _messages = require("@atlaskit/editor-common/quick-insert/messages");
11
+ var _QuickInsertMenuSection = require("./QuickInsertMenuSection");
12
+ var QuickInsertSearchResultsSection = exports.QuickInsertSearchResultsSection = function QuickInsertSearchResultsSection(_ref) {
13
+ var children = _ref.children;
14
+ var _useIntl = (0, _reactIntl.useIntl)(),
15
+ formatMessage = _useIntl.formatMessage;
16
+ return /*#__PURE__*/_react.default.createElement(_QuickInsertMenuSection.QuickInsertMenuSection, {
17
+ title: formatMessage(_messages.messages.searchResults)
18
+ }, children);
19
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.RegisteredQuickInsertMenuItem = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _provider = require("@atlaskit/editor-common/quick-insert/provider");
10
+ var _useQuickInsertContext = require("@atlaskit/editor-common/quick-insert/use-quick-insert-context");
11
+ 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); }
12
+ var RegisteredQuickInsertMenuItem = exports.RegisteredQuickInsertMenuItem = function RegisteredQuickInsertMenuItem(_ref) {
13
+ var _registration$compone;
14
+ var id = _ref.id,
15
+ isSelected = _ref.isSelected,
16
+ isActive = _ref.isActive,
17
+ registration = _ref.registration;
18
+ var _useQuickInsertContex = (0, _useQuickInsertContext.useQuickInsertContext)(),
19
+ editorView = _useQuickInsertContex.editorView,
20
+ isOffline = _useQuickInsertContex.isOffline,
21
+ popupsMountPoint = _useQuickInsertContex.popupsMountPoint,
22
+ select = _useQuickInsertContex.select,
23
+ surfaceContext = _useQuickInsertContex.surfaceContext;
24
+ var value = (0, _react.useMemo)(function () {
25
+ return {
26
+ editorView: editorView,
27
+ isOffline: isOffline,
28
+ item: {
29
+ id: id,
30
+ isSelected: isSelected,
31
+ isPreviewActive: isActive
32
+ },
33
+ popupsMountPoint: popupsMountPoint,
34
+ select: select,
35
+ surfaceContext: surfaceContext
36
+ };
37
+ }, [editorView, isOffline, popupsMountPoint, select, surfaceContext, isActive, id, isSelected]);
38
+ var Component = (_registration$compone = registration.component) !== null && _registration$compone !== void 0 ? _registration$compone : _react.default.Fragment;
39
+ return /*#__PURE__*/_react.default.createElement(_provider.QuickInsertProvider, {
40
+ value: value
41
+ }, /*#__PURE__*/_react.default.createElement(Component, null, null));
42
+ };
@@ -0,0 +1,11 @@
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)}
@@ -0,0 +1,128 @@
1
+ /* ToolbarQuickInsertMenu.tsx generated by @compiled/babel-plugin v3.0.2 */
2
+ "use strict";
3
+
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ToolbarQuickInsertMenu = void 0;
9
+ require("./ToolbarQuickInsertMenu.compiled.css");
10
+ var _runtime = require("@compiled/react/runtime");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _list = require("@atlaskit/editor-common/registered-menu/list");
13
+ var _box = require("@atlaskit/primitives/compiled/box");
14
+ var _getQuickInsertMenuItemId = require("./getQuickInsertMenuItemId");
15
+ var _QuickInsertEmptyState = require("./QuickInsertEmptyState");
16
+ 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); }
17
+ var MENU_FOOTER_HEIGHT = 45;
18
+ var LIST_WIDTH = 350;
19
+ var styles = {
20
+ content: "_1e0c1txw _2lx21bp4 _1tkeidpf",
21
+ scrollable: "_16jlkb7n _1tkeidpf _18m91wug",
22
+ footer: "_1o9zidpf",
23
+ externalControls: "_1i531l7x _15a5nqa1 _uwhke4h9 _1q51u2gc _85i5u2gc",
24
+ footerDivider: "_1i531l7x _15a5nqa1 _uwhke4h9 _1o9zidpf"
25
+ };
26
+ var ToolbarQuickInsertMenu = exports.ToolbarQuickInsertMenu = function ToolbarQuickInsertMenu(_ref) {
27
+ var Item = _ref.Item,
28
+ model = _ref.model,
29
+ emptyStateHandler = _ref.emptyStateHandler,
30
+ listLabel = _ref.listLabel,
31
+ activePreviewItemKey = _ref.activePreviewItemKey,
32
+ itemCount = _ref.itemCount,
33
+ listId = _ref.listId,
34
+ maxHeight = _ref.maxHeight,
35
+ rows = _ref.rows,
36
+ onItemBlur = _ref.onItemBlur,
37
+ onItemFocus = _ref.onItemFocus,
38
+ onItemHover = _ref.onItemHover,
39
+ onItemLeave = _ref.onItemLeave,
40
+ onItemVisibilityChange = _ref.onItemVisibilityChange,
41
+ onRenderedItemsChange = _ref.onRenderedItemsChange,
42
+ query = _ref.query,
43
+ selectedItemIndex = _ref.selectedItemIndex;
44
+ var footerItemIndex = itemCount - 1;
45
+ var footerItemId = (0, _getQuickInsertMenuItemId.getQuickInsertMenuItemId)(listId, footerItemIndex);
46
+ var isEmptySearch = query !== '' && model.sections.length === 0;
47
+ var hasNoSearchResults = model.sections.length === 0 && model.fallbackItems.length === 0;
48
+ var externalControls = isEmptySearch ? emptyStateHandler === null || emptyStateHandler === void 0 ? void 0 : emptyStateHandler({
49
+ mode: 'inline',
50
+ searchTerm: query,
51
+ showNoResultsMessage: false
52
+ }) : null;
53
+ var onFooterItemFocus = (0, _react.useCallback)(function () {
54
+ return onItemFocus(footerItemIndex);
55
+ }, [footerItemIndex, onItemFocus]);
56
+ var onFooterItemHover = (0, _react.useCallback)(function () {
57
+ return onItemHover(footerItemIndex);
58
+ }, [footerItemIndex, onItemHover]);
59
+ var listMaxHeight = Math.max(0, maxHeight - (model.footer ? MENU_FOOTER_HEIGHT : 0));
60
+ var contentStyle = {
61
+ maxHeight: maxHeight
62
+ };
63
+ var getItemId = (0, _react.useCallback)(function (_ref2) {
64
+ var itemIndex = _ref2.itemIndex;
65
+ return (0, _getQuickInsertMenuItemId.getQuickInsertMenuItemId)(listId, itemIndex);
66
+ }, [listId]);
67
+ var onScrollableContentScroll = (0, _react.useCallback)(function (event) {
68
+ if (event.target === event.currentTarget && activePreviewItemKey) {
69
+ onItemVisibilityChange(activePreviewItemKey, false);
70
+ }
71
+ }, [activePreviewItemKey, onItemVisibilityChange]);
72
+ if (!model.root) {
73
+ return null;
74
+ }
75
+ return /*#__PURE__*/_react.default.createElement(_box.Box, {
76
+ xcss: styles.content,
77
+ style: contentStyle
78
+ }, /*#__PURE__*/_react.default.createElement(_box.Box, {
79
+ xcss: styles.scrollable,
80
+ onScroll: onScrollableContentScroll
81
+ }, /*#__PURE__*/_react.default.createElement(_box.Box, {
82
+ "aria-label": listLabel,
83
+ "aria-owns": model.footer ? footerItemId : undefined,
84
+ id: listId,
85
+ role: "listbox"
86
+ }, rows.length > 0 && /*#__PURE__*/_react.default.createElement(_list.RegisteredMenuList, {
87
+ rows: rows,
88
+ Item: Item,
89
+ width: LIST_WIDTH,
90
+ maxHeight: listMaxHeight,
91
+ getItemId: getItemId,
92
+ activeItemKey: activePreviewItemKey,
93
+ selectedItemIndex: selectedItemIndex,
94
+ scrollResetKey: query,
95
+ onItemHover: onItemHover,
96
+ onItemFocus: onItemFocus,
97
+ onItemBlur: onItemBlur,
98
+ onItemLeave: onItemLeave,
99
+ onItemVisibilityChange: onItemVisibilityChange,
100
+ onRenderedItemsChange: onRenderedItemsChange,
101
+ role: "group",
102
+ tabIndex: null,
103
+ omitAriaReadonly: true,
104
+ lastRowPadding: "space.100",
105
+ scrollTo: "top-on-reset"
106
+ })), query !== '' && hasNoSearchResults && /*#__PURE__*/_react.default.createElement(_QuickInsertEmptyState.QuickInsertEmptyState, {
107
+ mode: "inline"
108
+ }), externalControls && /*#__PURE__*/_react.default.createElement(_box.Box, {
109
+ testId: "registered-insert-menu-external-controls",
110
+ xcss: styles.externalControls
111
+ }, externalControls)), model.footer && /*#__PURE__*/_react.default.createElement(_box.Box, {
112
+ xcss: styles.footer
113
+ }, /*#__PURE__*/_react.default.createElement(_box.Box, {
114
+ testId: "registered-insert-menu-footer",
115
+ xcss: styles.footer
116
+ }, !isEmptySearch || !hasNoSearchResults || Boolean(externalControls) ? /*#__PURE__*/_react.default.createElement(_box.Box, {
117
+ "aria-hidden": "true",
118
+ xcss: styles.footerDivider
119
+ }) : null, /*#__PURE__*/_react.default.createElement(_box.Box, {
120
+ onFocus: onFooterItemFocus,
121
+ onMouseMove: onFooterItemHover
122
+ }, /*#__PURE__*/_react.default.createElement(Item, {
123
+ id: footerItemId,
124
+ isSelected: selectedItemIndex === footerItemIndex,
125
+ isActive: false,
126
+ registration: model.footer
127
+ })))));
128
+ };
@@ -0,0 +1,3 @@
1
+ ._15a5nqa1{border-top-style:solid}
2
+ ._1i531l7x{border-top-color:var(--ds-border,#0b120e24)}
3
+ ._uwhke4h9{border-top-width:var(--ds-border-width,1px)}
@@ -0,0 +1,90 @@
1
+ /* TypeAheadQuickInsertMenu.tsx generated by @compiled/babel-plugin v3.0.2 */
2
+ "use strict";
3
+
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TypeAheadQuickInsertMenu = void 0;
9
+ require("./TypeAheadQuickInsertMenu.compiled.css");
10
+ var _runtime = require("@compiled/react/runtime");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _list = require("@atlaskit/editor-common/registered-menu/list");
13
+ var _box = require("@atlaskit/primitives/compiled/box");
14
+ var _getQuickInsertMenuItemId = require("./getQuickInsertMenuItemId");
15
+ var _QuickInsertEmptyState = require("./QuickInsertEmptyState");
16
+ 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); }
17
+ var LIST_WIDTH = 320;
18
+ var MENU_FOOTER_HEIGHT = 45;
19
+ var MENU_FOOTER_HEIGHT_WITH_SCROLL_PADDING = 51;
20
+ var styles = {
21
+ footer: "_1i531l7x _15a5nqa1 _uwhke4h9"
22
+ };
23
+ var TypeAheadQuickInsertMenu = exports.TypeAheadQuickInsertMenu = function TypeAheadQuickInsertMenu(_ref) {
24
+ var Item = _ref.Item,
25
+ rows = _ref.rows,
26
+ activeItemKey = _ref.activeItemKey,
27
+ itemCount = _ref.itemCount,
28
+ listId = _ref.listId,
29
+ listLabel = _ref.listLabel,
30
+ maxHeight = _ref.maxHeight,
31
+ model = _ref.model,
32
+ onItemFocus = _ref.onItemFocus,
33
+ onItemBlur = _ref.onItemBlur,
34
+ onItemHover = _ref.onItemHover,
35
+ onItemLeave = _ref.onItemLeave,
36
+ onItemVisibilityChange = _ref.onItemVisibilityChange,
37
+ onRenderedItemsChange = _ref.onRenderedItemsChange,
38
+ _ref$query = _ref.query,
39
+ query = _ref$query === void 0 ? '' : _ref$query,
40
+ selectedItemIndex = _ref.selectedItemIndex,
41
+ _ref$hasScrollPadding = _ref.hasScrollPadding,
42
+ hasScrollPadding = _ref$hasScrollPadding === void 0 ? false : _ref$hasScrollPadding;
43
+ var footerItemIndex = itemCount - 1;
44
+ var onFooterItemHover = (0, _react.useCallback)(function () {
45
+ return onItemHover(footerItemIndex);
46
+ }, [footerItemIndex, onItemHover]);
47
+ var getItemId = (0, _react.useCallback)(function (_ref2) {
48
+ var itemIndex = _ref2.itemIndex;
49
+ return (0, _getQuickInsertMenuItemId.getQuickInsertMenuItemId)(listId, itemIndex);
50
+ }, [listId]);
51
+ if (!model.root) {
52
+ return null;
53
+ }
54
+ var listMaxHeight = Math.max(0, maxHeight - (model.footer ? hasScrollPadding ? MENU_FOOTER_HEIGHT_WITH_SCROLL_PADDING : MENU_FOOTER_HEIGHT : 0));
55
+ var hasListboxContent = rows.length > 0 || model.footer !== undefined;
56
+ return /*#__PURE__*/_react.default.createElement(_box.Box, {
57
+ "aria-label": hasListboxContent ? listLabel : undefined,
58
+ id: listId,
59
+ role: hasListboxContent ? 'listbox' : undefined
60
+ }, rows.length > 0 ? /*#__PURE__*/_react.default.createElement(_list.RegisteredMenuList, {
61
+ rows: rows,
62
+ Item: Item,
63
+ width: LIST_WIDTH,
64
+ maxHeight: listMaxHeight,
65
+ getItemId: getItemId,
66
+ activeItemKey: activeItemKey,
67
+ selectedItemIndex: selectedItemIndex,
68
+ scrollResetKey: query,
69
+ hasScrollPadding: hasScrollPadding,
70
+ scrollTo: "top-on-reset",
71
+ onItemFocus: onItemFocus,
72
+ onItemBlur: onItemBlur,
73
+ onItemHover: onItemHover,
74
+ onItemLeave: onItemLeave,
75
+ onItemVisibilityChange: onItemVisibilityChange,
76
+ onRenderedItemsChange: onRenderedItemsChange
77
+ }) : query !== '' && /*#__PURE__*/_react.default.createElement(_QuickInsertEmptyState.QuickInsertEmptyState, {
78
+ mode: "inline",
79
+ spacing: "spacious"
80
+ }), model.footer && /*#__PURE__*/_react.default.createElement(_box.Box, {
81
+ onMouseMove: onFooterItemHover,
82
+ paddingBlockEnd: hasScrollPadding ? 'space.075' : undefined,
83
+ xcss: styles.footer
84
+ }, /*#__PURE__*/_react.default.createElement(Item, {
85
+ id: (0, _getQuickInsertMenuItemId.getQuickInsertMenuItemId)(listId, footerItemIndex),
86
+ isSelected: selectedItemIndex === footerItemIndex,
87
+ isActive: false,
88
+ registration: model.footer
89
+ })));
90
+ };
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = NoResultsIllustration;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ function NoResultsIllustration(_ref) {
10
+ var height = _ref.height,
11
+ width = _ref.width;
12
+ return /*#__PURE__*/_react.default.createElement("svg", {
13
+ width: width,
14
+ height: height,
15
+ viewBox: "0 0 57 63",
16
+ fill: "none",
17
+ xmlns: "http://www.w3.org/2000/svg",
18
+ "aria-hidden": "true",
19
+ focusable: "false"
20
+ }, /*#__PURE__*/_react.default.createElement("path", {
21
+ fill: "#dddee1",
22
+ d: "M23.5 49.223c-5.196 0-10.166-1.955-14.442-5.814a30 30 0 0 1-3.545-3.85 29.6 29.6 0 0 1-2.868-4.456c-4.56-8.775-3.179-18.124 3.79-25.647a32.6 32.6 0 0 1 3.942-3.593 32 32 0 0 1 4.287-2.81c9.017-4.89 18.424-3.869 25.803 2.8a30.3 30.3 0 0 1 3.59 3.897 29.7 29.7 0 0 1 2.837 4.396C51.5 22.96 50.12 32.324 43.106 39.83a31.5 31.5 0 0 1-3.797 3.442 33 33 0 0 1-4.468 2.912c-3.777 2.03-7.62 3.036-11.341 3.036zm2.478-44.539c-2.957 0-6.02.824-9.082 2.489a28 28 0 0 0-3.658 2.396 27.5 27.5 0 0 0-3.37 3.07C4.24 18.711 3.15 25.92 6.798 32.941a25 25 0 0 0 2.42 3.75 25 25 0 0 0 2.981 3.24c5.866 5.299 13.119 6.054 20.427 2.13a27.4 27.4 0 0 0 3.818-2.492 27.5 27.5 0 0 0 3.24-2.936c5.658-6.054 6.741-13.27 3.06-20.318a25 25 0 0 0-2.39-3.698 25.3 25.3 0 0 0-3.021-3.289c-3.418-3.086-7.288-4.645-11.348-4.645z"
23
+ }), /*#__PURE__*/_react.default.createElement("path", {
24
+ fill: "#dddee1",
25
+ d: "M42.822 42.291c-1.21-1.685-2.509-1.675-3.777-.694-1.19.92-1.507 2.164-.24 3.801l1.45 1.873 4.017-3.107z"
26
+ }), /*#__PURE__*/_react.default.createElement("path", {
27
+ fill: "#dddee1",
28
+ d: "m45.28 43.385-6.03 4.663 11.332 14.657 6.03-4.663z"
29
+ }), /*#__PURE__*/_react.default.createElement("path", {
30
+ fill: "#b7b9be",
31
+ d: "m44.31 44.134-4.091 3.163 3.843 4.97 4.091-3.163z"
32
+ }), /*#__PURE__*/_react.default.createElement("path", {
33
+ fill: "#dddee1",
34
+ d: "M26.834 30.328h-3.42v-.217c-.116-2.432 1.264-5.066 3.227-6.143l.037-.02q.08-.042.154-.093c1.071-.69 1.68-1.88 1.643-3.189-.037-1.298-.707-2.439-1.791-3.052a4.5 4.5 0 0 0-2.21-.592c-2.315 0-4.198 1.897-4.198 4.229h-3.42c0-4.23 3.417-7.672 7.618-7.672a7.9 7.9 0 0 1 3.884 1.033c2.14 1.211 3.462 3.437 3.534 5.955.073 2.53-1.125 4.84-3.203 6.18q-.211.139-.424.251c-.815.458-1.497 1.868-1.434 2.97zM24.795 32.303a3.4 3.4 0 0 1 1.096-.004c1.115.183 2.021.965 2.241 2.182l.002.01.002.009a3.4 3.4 0 0 1-.002 1.103v.004c-.216 1.23-1.136 2.009-2.247 2.19a3.417 3.417 0 0 1-1.085-.003c-1.117-.18-2.027-.961-2.249-2.179l-.002-.01-.001-.01a3.3 3.3 0 0 1 0-1.095l.002-.01.001-.01c.223-1.223 1.137-1.992 2.24-2.177z"
35
+ }));
36
+ }