@atlaskit/editor-plugin-type-ahead 1.11.2 → 1.11.4

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 (83) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/pm-plugins/actions.js +1 -0
  3. package/dist/cjs/pm-plugins/api.js +2 -0
  4. package/dist/cjs/pm-plugins/commands/update-list-error.js +24 -0
  5. package/dist/cjs/pm-plugins/input-rules.js +3 -0
  6. package/dist/cjs/pm-plugins/main.js +3 -0
  7. package/dist/cjs/pm-plugins/reducer.js +8 -0
  8. package/dist/cjs/pm-plugins/utils.js +49 -11
  9. package/dist/cjs/typeAheadPlugin.js +3 -1
  10. package/dist/cjs/ui/AssistiveText.js +7 -0
  11. package/dist/cjs/ui/InputQuery.js +24 -0
  12. package/dist/cjs/ui/TypeAheadErrorFallback/EmptyState.js +38 -0
  13. package/dist/cjs/ui/TypeAheadErrorFallback/GenericErrorSVG.js +67 -0
  14. package/dist/cjs/ui/TypeAheadErrorFallback/MinHeightContainer.js +41 -0
  15. package/dist/cjs/ui/TypeAheadErrorFallback/index.js +38 -0
  16. package/dist/cjs/ui/TypeAheadList.js +6 -0
  17. package/dist/cjs/ui/TypeAheadListItem.js +1 -0
  18. package/dist/cjs/ui/TypeAheadMenu.js +7 -2
  19. package/dist/cjs/ui/TypeAheadPopup.js +22 -2
  20. package/dist/cjs/ui/WrapperTypeAhead.js +15 -4
  21. package/dist/cjs/ui/hooks/use-item-insert.js +4 -1
  22. package/dist/cjs/ui/hooks/use-load-items.js +13 -0
  23. package/dist/es2019/pm-plugins/actions.js +1 -0
  24. package/dist/es2019/pm-plugins/api.js +2 -0
  25. package/dist/es2019/pm-plugins/commands/update-list-error.js +18 -0
  26. package/dist/es2019/pm-plugins/input-rules.js +3 -0
  27. package/dist/es2019/pm-plugins/main.js +3 -0
  28. package/dist/es2019/pm-plugins/reducer.js +11 -0
  29. package/dist/es2019/pm-plugins/utils.js +44 -4
  30. package/dist/es2019/typeAheadPlugin.js +3 -1
  31. package/dist/es2019/ui/AssistiveText.js +7 -0
  32. package/dist/es2019/ui/InputQuery.js +25 -1
  33. package/dist/es2019/ui/TypeAheadErrorFallback/EmptyState.js +32 -0
  34. package/dist/es2019/ui/TypeAheadErrorFallback/GenericErrorSVG.js +59 -0
  35. package/dist/es2019/ui/TypeAheadErrorFallback/MinHeightContainer.js +33 -0
  36. package/dist/es2019/ui/TypeAheadErrorFallback/index.js +29 -0
  37. package/dist/es2019/ui/TypeAheadList.js +6 -0
  38. package/dist/es2019/ui/TypeAheadListItem.js +1 -0
  39. package/dist/es2019/ui/TypeAheadMenu.js +7 -2
  40. package/dist/es2019/ui/TypeAheadPopup.js +22 -2
  41. package/dist/es2019/ui/WrapperTypeAhead.js +13 -2
  42. package/dist/es2019/ui/hooks/use-item-insert.js +4 -1
  43. package/dist/es2019/ui/hooks/use-load-items.js +13 -0
  44. package/dist/esm/pm-plugins/actions.js +1 -0
  45. package/dist/esm/pm-plugins/api.js +2 -0
  46. package/dist/esm/pm-plugins/commands/update-list-error.js +18 -0
  47. package/dist/esm/pm-plugins/input-rules.js +3 -0
  48. package/dist/esm/pm-plugins/main.js +3 -0
  49. package/dist/esm/pm-plugins/reducer.js +8 -0
  50. package/dist/esm/pm-plugins/utils.js +49 -11
  51. package/dist/esm/typeAheadPlugin.js +3 -1
  52. package/dist/esm/ui/AssistiveText.js +7 -0
  53. package/dist/esm/ui/InputQuery.js +24 -0
  54. package/dist/esm/ui/TypeAheadErrorFallback/EmptyState.js +31 -0
  55. package/dist/esm/ui/TypeAheadErrorFallback/GenericErrorSVG.js +59 -0
  56. package/dist/esm/ui/TypeAheadErrorFallback/MinHeightContainer.js +33 -0
  57. package/dist/esm/ui/TypeAheadErrorFallback/index.js +31 -0
  58. package/dist/esm/ui/TypeAheadList.js +6 -0
  59. package/dist/esm/ui/TypeAheadListItem.js +1 -0
  60. package/dist/esm/ui/TypeAheadMenu.js +7 -2
  61. package/dist/esm/ui/TypeAheadPopup.js +22 -2
  62. package/dist/esm/ui/WrapperTypeAhead.js +15 -4
  63. package/dist/esm/ui/hooks/use-item-insert.js +4 -1
  64. package/dist/esm/ui/hooks/use-load-items.js +13 -0
  65. package/dist/types/pm-plugins/actions.d.ts +1 -0
  66. package/dist/types/pm-plugins/commands/update-list-error.d.ts +2 -0
  67. package/dist/types/pm-plugins/utils.d.ts +12 -2
  68. package/dist/types/types/index.d.ts +6 -0
  69. package/dist/types/ui/TypeAheadErrorFallback/EmptyState.d.ts +9 -0
  70. package/dist/types/ui/TypeAheadErrorFallback/GenericErrorSVG.d.ts +6 -0
  71. package/dist/types/ui/TypeAheadErrorFallback/MinHeightContainer.d.ts +9 -0
  72. package/dist/types/ui/TypeAheadErrorFallback/index.d.ts +6 -0
  73. package/dist/types/ui/TypeAheadPopup.d.ts +2 -1
  74. package/dist/types-ts4.5/pm-plugins/actions.d.ts +1 -0
  75. package/dist/types-ts4.5/pm-plugins/commands/update-list-error.d.ts +2 -0
  76. package/dist/types-ts4.5/pm-plugins/utils.d.ts +12 -2
  77. package/dist/types-ts4.5/types/index.d.ts +6 -0
  78. package/dist/types-ts4.5/ui/TypeAheadErrorFallback/EmptyState.d.ts +9 -0
  79. package/dist/types-ts4.5/ui/TypeAheadErrorFallback/GenericErrorSVG.d.ts +6 -0
  80. package/dist/types-ts4.5/ui/TypeAheadErrorFallback/MinHeightContainer.d.ts +9 -0
  81. package/dist/types-ts4.5/ui/TypeAheadErrorFallback/index.d.ts +6 -0
  82. package/dist/types-ts4.5/ui/TypeAheadPopup.d.ts +2 -1
  83. package/package.json +7 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/editor-plugin-type-ahead
2
2
 
3
+ ## 1.11.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#101866](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101866)
8
+ [`f22dfbe75b007`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/f22dfbe75b007) -
9
+ [ux] Fix first typeahead item inserting in an inconsistent manner while offline
10
+
11
+ ## 1.11.3
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies
16
+
3
17
  ## 1.11.2
4
18
 
5
19
  ### Patch Changes
@@ -11,6 +11,7 @@ var ACTIONS = exports.ACTIONS = /*#__PURE__*/function (ACTIONS) {
11
11
  ACTIONS["INSERT_ITEM"] = "INSERT_ITEM";
12
12
  ACTIONS["INSERT_RAW_QUERY"] = "INSERT_RAW_QUERY";
13
13
  ACTIONS["UPDATE_LIST_ITEMS"] = "UPDATE_LIST_ITEMS";
14
+ ACTIONS["UPDATE_LIST_ERROR"] = "UPDATE_LIST_ERROR";
14
15
  ACTIONS["UPDATE_SELECTED_INDEX"] = "UPDATE_SELECTED_INDEX";
15
16
  return ACTIONS;
16
17
  }({});
@@ -50,6 +50,8 @@ var close = function close(_ref2) {
50
50
  }
51
51
  (0, _closeTypeAhead.closeTypeAhead)(tr);
52
52
  if (options.insertCurrentQueryAsRawText && currentQuery && currentQuery.length > 0) {
53
+ // Ignored via go/ees005
54
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
53
55
  var handler = (0, _utils.getTypeAheadHandler)(state);
54
56
  var text = handler.trigger.concat(currentQuery);
55
57
  tr.replaceSelectionWith(state.schema.text(text));
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateListError = void 0;
7
+ var _actions = require("../actions");
8
+ var _key = require("../key");
9
+ var updateListError = exports.updateListError = function updateListError(errorInfo) {
10
+ return function (state, dispatch) {
11
+ var tr = state.tr;
12
+ tr.setMeta(_key.pluginKey, {
13
+ action: _actions.ACTIONS.UPDATE_LIST_ERROR,
14
+ params: {
15
+ errorInfo: errorInfo,
16
+ items: []
17
+ }
18
+ });
19
+ if (dispatch) {
20
+ dispatch(tr);
21
+ }
22
+ return true;
23
+ };
24
+ };
@@ -19,6 +19,9 @@ function inputRulePlugin(schema, typeAheads, featureFlags) {
19
19
  if (!trigger) {
20
20
  return acc;
21
21
  }
22
+
23
+ // Ignored via go/ees005
24
+ // eslint-disable-next-line require-unicode-regexp
22
25
  var regex = new RegExp("(^|[.!?\\s".concat(_prosemirrorInputRules.leafNodeReplacementCharacter, "])(").concat(trigger, ")$"));
23
26
  acc.push((0, _utils.createRule)(regex, function (state, match) {
24
27
  return (0, _openTypeaheadAtCursor.openTypeAheadAtCursor)({
@@ -58,11 +58,14 @@ function createPlugin(_ref) {
58
58
  decorationSet: _view.DecorationSet.empty,
59
59
  decorationElement: null,
60
60
  items: [],
61
+ errorInfo: null,
61
62
  selectedIndex: -1,
62
63
  stats: null,
63
64
  inputMethod: null
64
65
  };
65
66
  },
67
+ // Ignored via go/ees005
68
+ // eslint-disable-next-line @typescript-eslint/max-params
66
69
  apply: function apply(tr, currentPluginState, oldEditorState, state) {
67
70
  var customStep = hasValidTypeAheadStep(tr);
68
71
  var nextPluginState = reducer(tr, currentPluginState, customStep);
@@ -109,6 +109,7 @@ var createReducer = exports.createReducer = function createReducer(_ref) {
109
109
  var shouldCloseMenu = [_actions.ACTIONS.CLOSE_TYPE_AHEAD, _actions.ACTIONS.INSERT_ITEM].includes(action) || selectionChanged;
110
110
  var shouldUpdateQuery = action === _actions.ACTIONS.CHANGE_QUERY;
111
111
  var shouldUpdateListItems = action === _actions.ACTIONS.UPDATE_LIST_ITEMS;
112
+ var shouldUpdateListError = action === _actions.ACTIONS.UPDATE_LIST_ERROR;
112
113
  var shouldUpdateSelectedIndex = action === _actions.ACTIONS.UPDATE_SELECTED_INDEX;
113
114
  if (shouldOpenMenu) {
114
115
  return openMenu(currentPluginState, {
@@ -123,6 +124,13 @@ var createReducer = exports.createReducer = function createReducer(_ref) {
123
124
  return _objectSpread(_objectSpread({}, currentPluginState), {}, {
124
125
  query: params.query
125
126
  });
127
+ } else if (shouldUpdateListError) {
128
+ var errorInfo = params.errorInfo;
129
+ return _objectSpread(_objectSpread({}, currentPluginState), {}, {
130
+ errorInfo: errorInfo,
131
+ items: [],
132
+ selectedIndex: -1
133
+ });
126
134
  } else if (shouldUpdateListItems) {
127
135
  var items = params.items;
128
136
  var selectedIndex = currentPluginState.selectedIndex;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.skipForwardToSafeItem = exports.skipBackwardToSafeItem = exports.moveSelectedIndex = exports.isTypeAheadOpen = exports.isTypeAheadHandler = exports.isTypeAheadAllowed = exports.getTypeAheadQuery = exports.getTypeAheadListAriaLabels = exports.getTypeAheadHandler = exports.getPluginState = exports.findHandlerByTrigger = exports.findHandler = void 0;
7
7
  var _typeAhead = require("@atlaskit/editor-common/type-ahead");
8
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
9
  var _updateSelectedIndex = require("./commands/update-selected-index");
9
10
  var _itemIsDisabled = require("./item-is-disabled");
10
11
  var _key = require("./key");
@@ -45,29 +46,56 @@ var findHandler = exports.findHandler = function findHandler(id, state) {
45
46
  return h.id === id;
46
47
  }) || null;
47
48
  };
48
- var skipForwardToSafeItem = exports.skipForwardToSafeItem = function skipForwardToSafeItem(currentIndex, nextIndex, listSize, itemIsDisabled) {
49
+ var skipForwardToSafeItem = exports.skipForwardToSafeItem = function skipForwardToSafeItem(_ref) {
50
+ var currentIndex = _ref.currentIndex,
51
+ nextIndex = _ref.nextIndex,
52
+ listSize = _ref.listSize,
53
+ itemIsDisabled = _ref.itemIsDisabled;
49
54
  // Use a loop to find the next selectable item
50
55
  for (var idx = nextIndex; idx < listSize; idx++) {
51
56
  if (!itemIsDisabled(idx)) {
52
57
  return idx;
53
58
  }
54
59
  }
60
+
61
+ // We got to the end of the list ^, now try from the start
62
+ if ((0, _platformFeatureFlags.fg)('platform_editor_offline_editing_ga')) {
63
+ for (var _idx = 0; _idx < nextIndex; _idx++) {
64
+ if (!itemIsDisabled(_idx)) {
65
+ return _idx;
66
+ }
67
+ }
68
+ }
69
+
55
70
  // If no selectable items are found, return currentIndex
56
71
  return currentIndex;
57
72
  };
58
- var skipBackwardToSafeItem = exports.skipBackwardToSafeItem = function skipBackwardToSafeItem(currentIndex, nextIndex, itemIsDisabled) {
73
+ var skipBackwardToSafeItem = exports.skipBackwardToSafeItem = function skipBackwardToSafeItem(_ref2) {
74
+ var currentIndex = _ref2.currentIndex,
75
+ nextIndex = _ref2.nextIndex,
76
+ listSize = _ref2.listSize,
77
+ itemIsDisabled = _ref2.itemIsDisabled;
59
78
  // Use a loop to find the next non-selectable item when going backwards
60
79
  for (var idx = nextIndex; idx >= 0; idx--) {
61
80
  if (!itemIsDisabled(idx)) {
62
81
  return idx;
63
82
  }
64
83
  }
84
+
85
+ // We got to the start of the list ^, now try from the end
86
+ if ((0, _platformFeatureFlags.fg)('platform_editor_offline_editing_ga')) {
87
+ for (var _idx2 = listSize; _idx2 > nextIndex; _idx2--) {
88
+ if (!itemIsDisabled(_idx2)) {
89
+ return _idx2;
90
+ }
91
+ }
92
+ }
65
93
  // If no non-selectable items are found, return currentIndex
66
94
  return currentIndex;
67
95
  };
68
- var findHandlerByTrigger = exports.findHandlerByTrigger = function findHandlerByTrigger(_ref) {
69
- var trigger = _ref.trigger,
70
- editorState = _ref.editorState;
96
+ var findHandlerByTrigger = exports.findHandlerByTrigger = function findHandlerByTrigger(_ref3) {
97
+ var trigger = _ref3.trigger,
98
+ editorState = _ref3.editorState;
71
99
  var pluginState = _key.pluginKey.getState(editorState);
72
100
  if (!pluginState || !pluginState.typeAheadHandlers || pluginState.typeAheadHandlers.length === 0) {
73
101
  return null;
@@ -77,10 +105,10 @@ var findHandlerByTrigger = exports.findHandlerByTrigger = function findHandlerBy
77
105
  return h.trigger === trigger;
78
106
  }) || null;
79
107
  };
80
- var moveSelectedIndex = exports.moveSelectedIndex = function moveSelectedIndex(_ref2) {
81
- var editorView = _ref2.editorView,
82
- direction = _ref2.direction,
83
- api = _ref2.api;
108
+ var moveSelectedIndex = exports.moveSelectedIndex = function moveSelectedIndex(_ref4) {
109
+ var editorView = _ref4.editorView,
110
+ direction = _ref4.direction,
111
+ api = _ref4.api;
84
112
  return function () {
85
113
  var typeAheadState = getPluginState(editorView.state);
86
114
  if (!typeAheadState) {
@@ -114,11 +142,21 @@ var moveSelectedIndex = exports.moveSelectedIndex = function moveSelectedIndex(_
114
142
  } else {
115
143
  nextIndex = selectedIndex >= items.length - 1 ? 0 : selectedIndex + 1;
116
144
  }
117
- nextIndex = skipForwardToSafeItem(selectedIndex, nextIndex, items.length, isDisabled);
145
+ nextIndex = skipForwardToSafeItem({
146
+ currentIndex: selectedIndex,
147
+ nextIndex: nextIndex,
148
+ listSize: items.length,
149
+ itemIsDisabled: isDisabled
150
+ });
118
151
  } else {
119
152
  stats.increaseArrowUp();
120
153
  nextIndex = selectedIndex <= 0 ? items.length - 1 : selectedIndex - 1;
121
- nextIndex = skipBackwardToSafeItem(selectedIndex, nextIndex, isDisabled);
154
+ nextIndex = skipBackwardToSafeItem({
155
+ currentIndex: selectedIndex,
156
+ nextIndex: nextIndex,
157
+ listSize: items.length,
158
+ itemIsDisabled: isDisabled
159
+ });
122
160
  }
123
161
  (0, _updateSelectedIndex.updateSelectedIndex)(nextIndex, api)(editorView.state, editorView.dispatch);
124
162
  };
@@ -201,7 +201,7 @@ var typeAheadPlugin = exports.typeAheadPlugin = function typeAheadPlugin(_ref) {
201
201
  }];
202
202
  },
203
203
  getSharedState: function getSharedState(editorState) {
204
- var _state$decorationSet, _state$decorationElem, _state$items, _state$selectedIndex;
204
+ var _state$decorationSet, _state$decorationElem, _state$items, _state$errorInfo, _state$selectedIndex;
205
205
  if (!editorState) {
206
206
  return {
207
207
  query: '',
@@ -212,6 +212,7 @@ var typeAheadPlugin = exports.typeAheadPlugin = function typeAheadPlugin(_ref) {
212
212
  decorationElement: null,
213
213
  triggerHandler: undefined,
214
214
  items: [],
215
+ errorInfo: null,
215
216
  selectedIndex: 0
216
217
  };
217
218
  }
@@ -226,6 +227,7 @@ var typeAheadPlugin = exports.typeAheadPlugin = function typeAheadPlugin(_ref) {
226
227
  decorationElement: (_state$decorationElem = state === null || state === void 0 ? void 0 : state.decorationElement) !== null && _state$decorationElem !== void 0 ? _state$decorationElem : null,
227
228
  triggerHandler: state === null || state === void 0 ? void 0 : state.triggerHandler,
228
229
  items: (_state$items = state === null || state === void 0 ? void 0 : state.items) !== null && _state$items !== void 0 ? _state$items : [],
230
+ errorInfo: (_state$errorInfo = state === null || state === void 0 ? void 0 : state.errorInfo) !== null && _state$errorInfo !== void 0 ? _state$errorInfo : null,
229
231
  selectedIndex: (_state$selectedIndex = state === null || state === void 0 ? void 0 : state.selectedIndex) !== null && _state$selectedIndex !== void 0 ? _state$selectedIndex : 0
230
232
  };
231
233
  },
@@ -37,6 +37,9 @@ var assitiveTextStyles = (0, _react2.css)({
37
37
  whitespace: 'nowrap',
38
38
  width: '1px'
39
39
  });
40
+
41
+ // Ignored via go/ees005
42
+ // eslint-disable-next-line @repo/internal/react/no-class-components
40
43
  var AssistveTextOld = /*#__PURE__*/function (_React$Component) {
41
44
  function AssistveTextOld() {
42
45
  var _this;
@@ -190,8 +193,12 @@ var AssistiveTextNew = exports.AssistiveTextNew = function AssistiveTextNew(_ref
190
193
  };
191
194
  var AssistiveText = exports.AssistiveText = function AssistiveText(props) {
192
195
  if ((0, _platformFeatureFlags.fg)('platform_editor_react18_phase2_v2')) {
196
+ // Ignored via go/ees005
197
+ // eslint-disable-next-line react/jsx-props-no-spreading
193
198
  return (0, _react2.jsx)(AssistiveTextNew, props);
194
199
  } else {
200
+ // Ignored via go/ees005
201
+ // eslint-disable-next-line react/jsx-props-no-spreading
195
202
  return (0, _react2.jsx)(AssistveTextOld, props);
196
203
  }
197
204
  };
@@ -332,18 +332,40 @@ var InputQuery = exports.InputQuery = /*#__PURE__*/_react.default.memo(function
332
332
  return;
333
333
  }
334
334
  };
335
+
336
+ // Ignored via go/ees005
337
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
335
338
  element.addEventListener('input', _onInput);
336
339
  }
340
+
341
+ // Ignored via go/ees005
342
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
337
343
  element.addEventListener('focusout', onFocusOut);
344
+ // Ignored via go/ees005
345
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
338
346
  element.addEventListener('focusin', onFocusIn);
347
+ // Ignored via go/ees005
348
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
339
349
  element.addEventListener('keydown', keyDown);
350
+ // Ignored via go/ees005
351
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
340
352
  element.addEventListener('beforeinput', beforeinput);
341
353
  return function () {
354
+ // Ignored via go/ees005
355
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
342
356
  element.removeEventListener('focusout', onFocusOut);
357
+ // Ignored via go/ees005
358
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
343
359
  element.removeEventListener('focusin', onFocusIn);
360
+ // Ignored via go/ees005
361
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
344
362
  element.removeEventListener('keydown', keyDown);
363
+ // Ignored via go/ees005
364
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
345
365
  element.removeEventListener('beforeinput', beforeinput);
346
366
  if (_browser.browser.safari) {
367
+ // Ignored via go/ees005
368
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
347
369
  element.removeEventListener('input', onInput);
348
370
  }
349
371
  };
@@ -351,6 +373,8 @@ var InputQuery = exports.InputQuery = /*#__PURE__*/_react.default.memo(function
351
373
  (0, _react.useLayoutEffect)(function () {
352
374
  var hasReopenQuery = typeof reopenQuery === 'string' && reopenQuery.trim().length > 0;
353
375
  if (ref.current && forceFocus) {
376
+ // Ignored via go/ees005
377
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
354
378
  setQuery(hasReopenQuery ? reopenQuery : null);
355
379
  requestAnimationFrame(function () {
356
380
  if (!(ref !== null && ref !== void 0 && ref.current)) {
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.EmptyState = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _heading = _interopRequireDefault(require("@atlaskit/heading"));
10
+ var _primitives = require("@atlaskit/primitives");
11
+ var containerStyles = (0, _primitives.xcss)({
12
+ marginBlockStart: 'space.600',
13
+ marginBlockEnd: 'space.600',
14
+ textAlign: 'center'
15
+ });
16
+ var EmptyState = exports.EmptyState = function EmptyState(_ref) {
17
+ var testId = _ref.testId,
18
+ header = _ref.header,
19
+ description = _ref.description,
20
+ renderImage = _ref.renderImage;
21
+ return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
22
+ xcss: containerStyles,
23
+ testId: testId,
24
+ direction: "column",
25
+ alignItems: "center",
26
+ gap: "space.300"
27
+ }, renderImage === null || renderImage === void 0 ? void 0 : renderImage(), /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
28
+ direction: "column",
29
+ alignItems: "center",
30
+ gap: "space.200"
31
+ }, /*#__PURE__*/_react.default.createElement(_heading.default, {
32
+ size: "medium",
33
+ as: "h2"
34
+ }, header), description && /*#__PURE__*/_react.default.createElement(_primitives.Text, {
35
+ as: "p",
36
+ color: "color.text"
37
+ }, description)));
38
+ };
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GenericErrorSVG = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ /**
11
+ * @jsxRuntime classic
12
+ * @jsx jsx
13
+ */
14
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
15
+
16
+ var HEIGHT = 90;
17
+ var genericErrorStyles = (0, _react.css)({
18
+ height: "".concat(HEIGHT, "px"),
19
+ display: 'block'
20
+ });
21
+ var GenericErrorSVG = exports.GenericErrorSVG = function GenericErrorSVG(props) {
22
+ var id = 'link-picker-ui-generic-error-svg';
23
+ return (0, _react.jsx)("svg", (0, _extends2.default)({
24
+ height: "90",
25
+ viewBox: "0 0 164 212",
26
+ fill: "none",
27
+ xmlns: "http://www.w3.org/2000/svg",
28
+ css: genericErrorStyles
29
+ // eslint-disable-next-line react/jsx-props-no-spreading
30
+ }, props), (0, _react.jsx)("path", {
31
+ d: "m95.43 74.16 66.44 115.08c5.84 10.12-1.46 22.76-13.14 22.76H15.85c-11.68 0-18.98-12.65-13.14-22.76L69.15 74.16c5.84-10.12 20.44-10.12 26.28 0Zm-7.56 83.55 2.88-44.35c.34-5.29-3.86-9.78-9.16-9.78-5.31 0-9.51 4.48-9.16 9.78l2.88 44.35a6.3 6.3 0 0 0 6.28 5.89c3.31 0 6.06-2.58 6.28-5.89Zm-15.84 23.54c0 5.66 4.76 10.1 10.39 9.58 4.85-.45 8.73-4.5 8.83-9.37.11-5.45-4.31-9.94-9.73-9.94-5.23-.01-9.49 4.37-9.49 9.73Z",
32
+ fill: "url(#".concat(id, ")")
33
+ }), (0, _react.jsx)("path", {
34
+ opacity: ".6",
35
+ d: "M93.35 27.17 85.94.45c-.17-.62-1.07-.58-1.19.05l-4.66 25.1-5.8-1.08a.612.612 0 0 0-.7.76L81 52c.17.62 1.07.58 1.19-.05l4.66-25.1 5.8 1.08c.45.08.82-.33.7-.76ZM66.77 41.81 55.9 33.26c-.22-.18-.53.07-.41.33l5.53 11.43-2.66 1.29c-.18.09-.2.33-.05.45l10.87 8.55c.22.18.53-.07.41-.33l-5.53-11.43 2.66-1.29c.17-.08.2-.33.05-.45Z",
36
+ fill: "#C1C7D0"
37
+ }), (0, _react.jsx)("path", {
38
+ opacity: ".6",
39
+ d: "M102.78 56.75a.993.993 0 0 1-.92-1.38c-.24-.77-2.29-2.85-3.54-4.11-2.97-3.01-4.93-5-3.84-6.49 1.09-1.48 3.58-.22 7.35 1.7 1.32.67 3.35 1.7 4.45 2.03-.64-.95-2.24-2.58-3.28-3.63-2.97-3.01-4.93-5-3.84-6.49 1.08-1.48 3.58-.22 7.34 1.7 1.32.67 3.34 1.7 4.45 2.03-.64-.95-2.24-2.57-3.28-3.62-2.97-3.01-4.93-5-3.84-6.49 1.08-1.48 3.57-.22 7.34 1.7 1.58.8 4.18 2.13 4.98 2.13a1.005 1.005 0 0 1 1.46 1.36c-1.09 1.48-3.57.22-7.34-1.7-1.32-.67-3.34-1.7-4.44-2.03.64.95 2.24 2.57 3.28 3.62 2.97 3.01 4.93 5 3.84 6.49-1.08 1.48-3.57.22-7.34-1.7-1.32-.67-3.35-1.7-4.45-2.03.64.95 2.24 2.57 3.28 3.63 2.97 3.01 4.93 5 3.84 6.49-1.09 1.48-3.58.22-7.35-1.7-1.32-.67-3.35-1.71-4.45-2.03.64.95 2.24 2.58 3.28 3.63 2.97 3.01 4.93 5 3.84 6.49-.21.26-.51.4-.82.4Zm5.56 14.32c-.35 0-.69-.19-.88-.52-1.04-1.88-2.22-4.02-.91-5.21 1.31-1.2 3.34.18 5.49 1.63.87.59 2.26 1.53 2.93 1.71-.12-.68-.93-2.15-1.45-3.07-1.26-2.27-2.45-4.41-1.14-5.61 1.31-1.2 3.34.18 5.49 1.63.96.65 2.54 1.72 3.1 1.74a1 1 0 0 1 1.27 1.54c-1.31 1.2-3.34-.17-5.49-1.63-.87-.59-2.26-1.53-2.93-1.71.12.68.93 2.15 1.45 3.07 1.26 2.27 2.45 4.41 1.14 5.61-1.31 1.2-3.34-.18-5.49-1.63-.87-.59-2.26-1.53-2.93-1.71.12.68.93 2.14 1.22 2.67.27.48.09 1.09-.39 1.36-.15.09-.32.13-.48.13Zm-54.32-2.89c-.22 0-.44-.04-.67-.14-1.64-.69-1.24-3.11-.81-5.67.17-1.04.45-2.7.33-3.38-.57.39-1.56 1.75-2.18 2.6-1.53 2.09-2.99 4.07-4.62 3.38a.991.991 0 0 1-.53-1.31c.2-.48.73-.72 1.21-.57.52-.21 1.65-1.75 2.34-2.68 1.53-2.09 2.98-4.08 4.62-3.38 1.64.69 1.24 3.11.81 5.67-.17 1.04-.45 2.7-.33 3.38.57-.39 1.56-1.75 2.18-2.6 1.53-2.09 2.98-4.08 4.62-3.38 1.63.69 1.24 3.09.89 5.21-.09.54-.6.91-1.15.83-.54-.09-.92-.6-.83-1.15.1-.59.37-2.24.26-2.92-.57.39-1.56 1.75-2.18 2.6-1.33 1.79-2.59 3.51-3.96 3.51Z",
40
+ fill: "#B3BAC5"
41
+ }), (0, _react.jsx)("defs", null, (0, _react.jsx)("linearGradient", {
42
+ id: id,
43
+ x1: "26.169",
44
+ y1: "228.621",
45
+ x2: "138.408",
46
+ y2: "116.382",
47
+ gradientUnits: "userSpaceOnUse"
48
+ }, (0, _react.jsx)("stop", {
49
+ stopColor: "#C1C7D0"
50
+ }), (0, _react.jsx)("stop", {
51
+ offset: ".297",
52
+ stopColor: "#C6CBD4",
53
+ stopOpacity: ".881"
54
+ }), (0, _react.jsx)("stop", {
55
+ offset: ".63",
56
+ stopColor: "#D3D7DE",
57
+ stopOpacity: ".748"
58
+ }), (0, _react.jsx)("stop", {
59
+ offset: ".98",
60
+ stopColor: "#E9EBEF",
61
+ stopOpacity: ".608"
62
+ }), (0, _react.jsx)("stop", {
63
+ offset: "1",
64
+ stopColor: "#EBECF0",
65
+ stopOpacity: ".6"
66
+ }))));
67
+ };
@@ -0,0 +1,41 @@
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.minHeightComponentStyles = exports.MinHeightContainer = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _react2 = require("@emotion/react");
14
+ var _excluded = ["minHeight"];
15
+ /**
16
+ * @jsxRuntime classic
17
+ * @jsx jsx
18
+ */
19
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles -- Ignored via go/DSP-18766
23
+ var minHeightComponentStyles = exports.minHeightComponentStyles = (0, _react2.css)({
24
+ display: 'flex',
25
+ alignItems: 'stretch',
26
+ justifyContent: 'center',
27
+ minHeight: 'var(--link-picker-min-height)'
28
+ });
29
+ var MinHeightContainer = exports.MinHeightContainer = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
30
+ var minHeight = _ref.minHeight,
31
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
32
+ return (0, _react2.jsx)("div", (0, _extends2.default)({
33
+ ref: ref
34
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
35
+ ,
36
+ css: minHeightComponentStyles
37
+ // eslint-disable-next-line react/jsx-props-no-spreading
38
+ }, props, {
39
+ style: (0, _defineProperty2.default)({}, '--link-picker-min-height', minHeight)
40
+ }));
41
+ });
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TypeAheadErrorFallback = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _reactIntlNext = require("react-intl-next");
9
+ var _typeAhead = require("@atlaskit/editor-common/type-ahead");
10
+ var _EmptyState = require("./EmptyState");
11
+ var _GenericErrorSVG = require("./GenericErrorSVG");
12
+ /**
13
+ * @jsxRuntime classic
14
+ * @jsx jsx
15
+ */
16
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
17
+
18
+ var minHeightComponentStyles = (0, _react.css)({
19
+ display: 'flex',
20
+ alignItems: 'stretch',
21
+ justifyContent: 'center',
22
+ minHeight: '290px'
23
+ });
24
+ var TypeAheadErrorFallback = exports.TypeAheadErrorFallback = function TypeAheadErrorFallback() {
25
+ var intl = (0, _reactIntlNext.useIntl)();
26
+ var header = intl.formatMessage(_typeAhead.typeAheadListMessages.offlineErrorFallbackHeading);
27
+ var description = intl.formatMessage(_typeAhead.typeAheadListMessages.offlineErrorFallbackDesc);
28
+ return (0, _react.jsx)("div", {
29
+ "data-testid": "mentions-typeahead-error-boundary-ui",
30
+ css: minHeightComponentStyles
31
+ }, (0, _react.jsx)(_EmptyState.EmptyState, {
32
+ header: header,
33
+ renderImage: function renderImage() {
34
+ return (0, _react.jsx)(_GenericErrorSVG.GenericErrorSVG, null);
35
+ },
36
+ description: description
37
+ }));
38
+ };
@@ -177,6 +177,8 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
177
177
  requestAnimationFrame(function () {
178
178
  var _listContainerRef$cur;
179
179
  if ((_listContainerRef$cur = listContainerRef.current) !== null && _listContainerRef$cur !== void 0 && _listContainerRef$cur.firstChild) {
180
+ // Ignored via go/ees005
181
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
180
182
  listContainerRef.current.firstChild.scrollTo(0, 0);
181
183
  }
182
184
  });
@@ -233,8 +235,12 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
233
235
  focusTargetElement();
234
236
  }
235
237
  };
238
+ // Ignored via go/ees005
239
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
236
240
  element === null || element === void 0 || element.addEventListener('keydown', handleKeyDown);
237
241
  return function () {
242
+ // Ignored via go/ees005
243
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
238
244
  element === null || element === void 0 || element.removeEventListener('keydown', handleKeyDown);
239
245
  };
240
246
  }, [editorView.state, focusTargetElement, selectNextItem, selectPreviousItem, selectedIndex, onItemClick, items.length]);
@@ -67,6 +67,7 @@ var itemText = (0, _react2.css)({
67
67
  color: "".concat("var(--ds-text, ".concat(_colors.N800, ")"))
68
68
  });
69
69
  var itemTitle = (0, _react2.css)({
70
+ // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
70
71
  lineHeight: '1.4'
71
72
  });
72
73
  var itemTitleOverride = (0, _react2.css)({
@@ -20,11 +20,15 @@ var TypeAheadMenu = exports.TypeAheadMenu = /*#__PURE__*/_react.default.memo(fun
20
20
  var isOpen = typeAheadState.decorationSet.find().length > 0;
21
21
  var triggerHandler = typeAheadState.triggerHandler,
22
22
  items = typeAheadState.items,
23
+ errorInfo = typeAheadState.errorInfo,
23
24
  selectedIndex = typeAheadState.selectedIndex,
24
25
  decorationElement = typeAheadState.decorationElement,
25
26
  decorationSet = typeAheadState.decorationSet,
26
27
  query = typeAheadState.query;
27
- var _useItemInsert = (0, _useItemInsert3.useItemInsert)(triggerHandler, editorView, items, api),
28
+ var _useItemInsert = (0, _useItemInsert3.useItemInsert)(
29
+ // Ignored via go/ees005
30
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
31
+ triggerHandler, editorView, items, api),
28
32
  _useItemInsert2 = (0, _slicedToArray2.default)(_useItemInsert, 3),
29
33
  onItemInsert = _useItemInsert2[0],
30
34
  onTextInsert = _useItemInsert2[1],
@@ -73,7 +77,7 @@ var TypeAheadMenu = exports.TypeAheadMenu = /*#__PURE__*/_react.default.memo(fun
73
77
  return;
74
78
  }
75
79
  }, [isOpen, query, onItemMatch]);
76
- if (!isOpen || !triggerHandler || !(decorationElement instanceof HTMLElement) || items.length === 0) {
80
+ if (!isOpen || !triggerHandler || !(decorationElement instanceof HTMLElement) || items.length === 0 && !errorInfo) {
77
81
  return null;
78
82
  }
79
83
  return /*#__PURE__*/_react.default.createElement(_TypeAheadPopup.TypeAheadPopup, {
@@ -84,6 +88,7 @@ var TypeAheadMenu = exports.TypeAheadMenu = /*#__PURE__*/_react.default.memo(fun
84
88
  anchorElement: decorationElement,
85
89
  triggerHandler: triggerHandler,
86
90
  items: items,
91
+ errorInfo: errorInfo,
87
92
  selectedIndex: selectedIndex,
88
93
  setSelectedItem: setSelectedItem,
89
94
  onItemInsert: insertItem,