@atlaskit/editor-plugin-insert-block 7.0.27 → 7.0.29

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 (31) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/ui/ToolbarInsertBlock/dropdown-button.js +2 -2
  3. package/dist/cjs/ui/ToolbarInsertBlock/index.js +3 -2
  4. package/dist/cjs/ui/ToolbarInsertBlock/item.js +29 -29
  5. package/dist/cjs/ui/toolbar-components/InsertButton.js +8 -3
  6. package/dist/cjs/ui/toolbar-components/hooks/filterDropdownItems.js +51 -0
  7. package/dist/cjs/ui/toolbar-components/hooks/useInsertButtonState.js +12 -2
  8. package/dist/cjs/ui/toolbar-components.js +167 -21
  9. package/dist/es2019/ui/ToolbarInsertBlock/dropdown-button.js +1 -1
  10. package/dist/es2019/ui/ToolbarInsertBlock/index.js +3 -2
  11. package/dist/es2019/ui/ToolbarInsertBlock/item.js +14 -14
  12. package/dist/es2019/ui/toolbar-components/InsertButton.js +8 -3
  13. package/dist/es2019/ui/toolbar-components/hooks/filterDropdownItems.js +44 -0
  14. package/dist/es2019/ui/toolbar-components/hooks/useInsertButtonState.js +12 -2
  15. package/dist/es2019/ui/toolbar-components.js +160 -21
  16. package/dist/esm/ui/ToolbarInsertBlock/dropdown-button.js +1 -1
  17. package/dist/esm/ui/ToolbarInsertBlock/index.js +3 -2
  18. package/dist/esm/ui/ToolbarInsertBlock/item.js +14 -14
  19. package/dist/esm/ui/toolbar-components/InsertButton.js +8 -3
  20. package/dist/esm/ui/toolbar-components/hooks/filterDropdownItems.js +44 -0
  21. package/dist/esm/ui/toolbar-components/hooks/useInsertButtonState.js +12 -2
  22. package/dist/esm/ui/toolbar-components.js +167 -21
  23. package/dist/types/ui/toolbar-components/InsertButton.d.ts +5 -1
  24. package/dist/types/ui/toolbar-components/TableSizePicker.d.ts +1 -1
  25. package/dist/types/ui/toolbar-components/hooks/filterDropdownItems.d.ts +5 -0
  26. package/dist/types/ui/toolbar-components/hooks/useInsertButtonState.d.ts +6 -2
  27. package/dist/types-ts4.5/ui/toolbar-components/InsertButton.d.ts +5 -1
  28. package/dist/types-ts4.5/ui/toolbar-components/TableSizePicker.d.ts +1 -1
  29. package/dist/types-ts4.5/ui/toolbar-components/hooks/filterDropdownItems.d.ts +5 -0
  30. package/dist/types-ts4.5/ui/toolbar-components/hooks/useInsertButtonState.d.ts +6 -2
  31. package/package.json +12 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/editor-plugin-insert-block
2
2
 
3
+ ## 7.0.29
4
+
5
+ ### Patch Changes
6
+
7
+ - [`90abe9b926a6f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/90abe9b926a6f) -
8
+ Icon entrypoint migration
9
+ - Updated dependencies
10
+
11
+ ## 7.0.28
12
+
13
+ ### Patch Changes
14
+
15
+ - [`1018562d37d5d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1018562d37d5d) -
16
+ Add dynamic dropdown filtering for insert block button based on visible toolbar buttons at
17
+ different breakpoints
18
+
3
19
  ## 7.0.27
4
20
 
5
21
  ### Patch Changes
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@emotion/react");
10
10
  var _keymaps = require("@atlaskit/editor-common/keymaps");
11
11
  var _uiMenu = require("@atlaskit/editor-common/ui-menu");
12
- var _addEditorAdd = _interopRequireDefault(require("@atlaskit/icon/core/migration/add--editor-add"));
12
+ var _add = _interopRequireDefault(require("@atlaskit/icon/core/add"));
13
13
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/core/migration/chevron-down"));
14
14
  var _styles = require("./styles");
15
15
  /**
@@ -24,7 +24,7 @@ var DropDownButtonIcon = /*#__PURE__*/_react.default.memo(function (props) {
24
24
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
25
25
  (0, _react2.jsx)("span", {
26
26
  css: _styles.triggerWrapper
27
- }, (0, _react2.jsx)(_addEditorAdd.default, {
27
+ }, (0, _react2.jsx)(_add.default, {
28
28
  label: props.label,
29
29
  color: "currentColor",
30
30
  spacing: "spacious"
@@ -28,6 +28,7 @@ var _picker = require("@atlaskit/emoji/picker");
28
28
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
29
29
  var _colors = require("@atlaskit/theme/colors");
30
30
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
31
+ var _filterDropdownItems = require("../toolbar-components/hooks/filterDropdownItems");
31
32
  var _blockInsertMenu = require("./block-insert-menu");
32
33
  var _createItems3 = require("./create-items");
33
34
  var _templateObject;
@@ -228,7 +229,7 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
228
229
  }
229
230
  });
230
231
  (0, _defineProperty2.default)(_this, "toggleTableSelector", function () {
231
- var inputMethod = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _analytics.INPUT_METHOD.TOOLBAR;
232
+ var _inputMethod = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _analytics.INPUT_METHOD.TOOLBAR;
232
233
  _this.setState(function (prevState) {
233
234
  return {
234
235
  isTableSelectorOpen: !prevState.isTableSelectorOpen
@@ -451,7 +452,7 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
451
452
  editorView.focus();
452
453
  }
453
454
  switch (item.value.name) {
454
- case 'link':
455
+ case _filterDropdownItems.LINK_BUTTON_KEY:
455
456
  _this.toggleLinkPanel(inputMethod);
456
457
  break;
457
458
  case 'table':
@@ -12,21 +12,21 @@ var _keymaps = require("@atlaskit/editor-common/keymaps");
12
12
  var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
13
13
  var _fieldText = _interopRequireDefault(require("@atlaskit/icon-lab/core/field-text"));
14
14
  var _lozenge = _interopRequireDefault(require("@atlaskit/icon-lab/core/lozenge"));
15
- var _angleBracketsEditorCode = _interopRequireDefault(require("@atlaskit/icon/core/migration/angle-brackets--editor-code"));
16
- var _calendarEditorDate = _interopRequireDefault(require("@atlaskit/icon/core/migration/calendar--editor-date"));
15
+ var _angleBrackets = _interopRequireDefault(require("@atlaskit/icon/core/angle-brackets"));
16
+ var _calendar = _interopRequireDefault(require("@atlaskit/icon/core/calendar"));
17
+ var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/core/chevron-right"));
18
+ var _decision = _interopRequireDefault(require("@atlaskit/icon/core/decision"));
19
+ var _emoji = _interopRequireDefault(require("@atlaskit/icon/core/emoji"));
20
+ var _grid = _interopRequireDefault(require("@atlaskit/icon/core/grid"));
21
+ var _image = _interopRequireDefault(require("@atlaskit/icon/core/image"));
22
+ var _layoutTwoColumns = _interopRequireDefault(require("@atlaskit/icon/core/layout-two-columns"));
23
+ var _link = _interopRequireDefault(require("@atlaskit/icon/core/link"));
24
+ var _mention = _interopRequireDefault(require("@atlaskit/icon/core/mention"));
17
25
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/core/migration/chevron-down"));
18
- var _chevronRightChevronRightCircle = _interopRequireDefault(require("@atlaskit/icon/core/migration/chevron-right--chevron-right-circle"));
19
- var _decisionEditorDecision = _interopRequireDefault(require("@atlaskit/icon/core/migration/decision--editor-decision"));
20
- var _emojiEditorEmoji = _interopRequireDefault(require("@atlaskit/icon/core/migration/emoji--editor-emoji"));
21
- var _gridEditorTable = _interopRequireDefault(require("@atlaskit/icon/core/migration/grid--editor-table"));
22
- var _imageEditorImage = _interopRequireDefault(require("@atlaskit/icon/core/migration/image--editor-image"));
23
- var _layoutTwoColumnsEditorLayoutTwoEqual = _interopRequireDefault(require("@atlaskit/icon/core/migration/layout-two-columns--editor-layout-two-equal"));
24
- var _linkEditorLink = _interopRequireDefault(require("@atlaskit/icon/core/migration/link--editor-link"));
25
- var _mentionEditorMention = _interopRequireDefault(require("@atlaskit/icon/core/migration/mention--editor-mention"));
26
- var _minusEditorHorizontalRule = _interopRequireDefault(require("@atlaskit/icon/core/migration/minus--editor-horizontal-rule"));
27
- var _quotationMarkQuote = _interopRequireDefault(require("@atlaskit/icon/core/migration/quotation-mark--quote"));
28
- var _showMoreHorizontalEditorMore = _interopRequireDefault(require("@atlaskit/icon/core/migration/show-more-horizontal--editor-more"));
29
- var _statusInformationEditorInfo = _interopRequireDefault(require("@atlaskit/icon/core/migration/status-information--editor-info"));
26
+ var _minus = _interopRequireDefault(require("@atlaskit/icon/core/minus"));
27
+ var _quotationMark = _interopRequireDefault(require("@atlaskit/icon/core/quotation-mark"));
28
+ var _showMoreHorizontal = _interopRequireDefault(require("@atlaskit/icon/core/show-more-horizontal"));
29
+ var _statusInformation = _interopRequireDefault(require("@atlaskit/icon/core/status-information"));
30
30
  var _task = _interopRequireDefault(require("@atlaskit/icon/core/task"));
31
31
  var _task2 = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/task"));
32
32
  var _text = _interopRequireDefault(require("@atlaskit/icon/glyph/media-services/text"));
@@ -91,7 +91,7 @@ var link = exports.link = mem(function (init) {
91
91
  disabled: init.disabled,
92
92
  name: 'link',
93
93
  shortcut: (0, _keymaps.tooltip)(_keymaps.addLink),
94
- Icon: _linkEditorLink.default,
94
+ Icon: _link.default,
95
95
  'aria-haspopup': init['aria-haspopup'],
96
96
  'aria-keyshortcuts': (0, _keymaps.getAriaKeyshortcuts)(_keymaps.addLink)
97
97
  });
@@ -102,7 +102,7 @@ var media = exports.media = mem(function (init) {
102
102
  tooltipDescription: init.tooltipDescription,
103
103
  disabled: init.disabled,
104
104
  name: 'media',
105
- Icon: _imageEditorImage.default
105
+ Icon: _image.default
106
106
  });
107
107
  });
108
108
  var imageUpload = exports.imageUpload = mem(function (init) {
@@ -111,7 +111,7 @@ var imageUpload = exports.imageUpload = mem(function (init) {
111
111
  tooltipDescription: init.tooltipDescription,
112
112
  disabled: init.disabled,
113
113
  name: 'image upload',
114
- Icon: _imageEditorImage.default
114
+ Icon: _image.default
115
115
  });
116
116
  });
117
117
  var mention = exports.mention = mem(function (init) {
@@ -120,7 +120,7 @@ var mention = exports.mention = mem(function (init) {
120
120
  tooltipDescription: init.tooltipDescription,
121
121
  disabled: init.disabled,
122
122
  name: 'mention',
123
- Icon: _mentionEditorMention.default,
123
+ Icon: _mention.default,
124
124
  shortcut: '@',
125
125
  'aria-haspopup': init['aria-haspopup'],
126
126
  'aria-keyshortcuts': 'Shift+2 Space'
@@ -132,7 +132,7 @@ var emoji = exports.emoji = mem(function (init) {
132
132
  tooltipDescription: init.tooltipDescription,
133
133
  disabled: init.disabled,
134
134
  name: 'emoji',
135
- Icon: _emojiEditorEmoji.default,
135
+ Icon: _emoji.default,
136
136
  shortcut: ':',
137
137
  'aria-haspopup': init['aria-haspopup'],
138
138
  'aria-keyshortcuts': 'Shift+;'
@@ -144,7 +144,7 @@ var table = exports.table = mem(function (init) {
144
144
  tooltipDescription: init.tooltipDescription,
145
145
  disabled: init.disabled,
146
146
  name: 'table',
147
- Icon: _gridEditorTable.default,
147
+ Icon: _grid.default,
148
148
  shortcut: (0, _keymaps.tooltip)(_keymaps.toggleTable),
149
149
  'aria-keyshortcuts': (0, _keymaps.getAriaKeyshortcuts)(_keymaps.toggleTable)
150
150
  });
@@ -170,7 +170,7 @@ var layout = exports.layout = mem(function (init) {
170
170
  tooltipDescription: init.tooltipDescription,
171
171
  disabled: init.disabled,
172
172
  name: 'layout',
173
- Icon: _layoutTwoColumnsEditorLayoutTwoEqual.default
173
+ Icon: _layoutTwoColumns.default
174
174
  });
175
175
  });
176
176
  var codeblock = exports.codeblock = mem(function (init) {
@@ -179,7 +179,7 @@ var codeblock = exports.codeblock = mem(function (init) {
179
179
  tooltipDescription: init.tooltipDescription,
180
180
  disabled: init.disabled,
181
181
  name: 'codeblock',
182
- Icon: _angleBracketsEditorCode.default,
182
+ Icon: _angleBrackets.default,
183
183
  shortcut: init.shortcut,
184
184
  'aria-keyshortcuts': (0, _keymaps.getAriaKeyshortcuts)(init.shortcut)
185
185
  });
@@ -190,7 +190,7 @@ var panel = exports.panel = mem(function (init) {
190
190
  tooltipDescription: init.tooltipDescription,
191
191
  disabled: init.disabled,
192
192
  name: 'panel',
193
- Icon: _statusInformationEditorInfo.default,
193
+ Icon: _statusInformation.default,
194
194
  shortcut: init.shortcut,
195
195
  'aria-keyshortcuts': (0, _keymaps.getAriaKeyshortcuts)(init.shortcut)
196
196
  });
@@ -201,7 +201,7 @@ var blockquote = exports.blockquote = mem(function (init) {
201
201
  tooltipDescription: init.tooltipDescription,
202
202
  disabled: init.disabled,
203
203
  name: 'blockquote',
204
- Icon: _quotationMarkQuote.default,
204
+ Icon: _quotationMark.default,
205
205
  shortcut: init.shortcut,
206
206
  'aria-keyshortcuts': 'Shift+. Space'
207
207
  });
@@ -212,7 +212,7 @@ var decision = exports.decision = mem(function (init) {
212
212
  tooltipDescription: init.tooltipDescription,
213
213
  disabled: init.disabled,
214
214
  name: 'decision',
215
- Icon: _decisionEditorDecision.default,
215
+ Icon: _decision.default,
216
216
  shortcut: '<>',
217
217
  'aria-keyshortcuts': 'Shift+, Shift+. Space'
218
218
  });
@@ -223,7 +223,7 @@ var horizontalrule = exports.horizontalrule = mem(function (init) {
223
223
  tooltipDescription: init.tooltipDescription,
224
224
  disabled: init.disabled,
225
225
  name: 'horizontalrule',
226
- Icon: _minusEditorHorizontalRule.default,
226
+ Icon: _minus.default,
227
227
  shortcut: '---',
228
228
  'aria-keyshortcuts': '- - -'
229
229
  });
@@ -235,7 +235,7 @@ var expand = exports.expand = mem(function (init) {
235
235
  disabled: init.disabled,
236
236
  name: 'expand',
237
237
  Icon: function Icon(iconProps) {
238
- return (0, _react2.jsx)(_chevronRightChevronRightCircle.default, {
238
+ return (0, _react2.jsx)(_chevronRight.default, {
239
239
  label: iconProps.label,
240
240
  size: "small"
241
241
  });
@@ -248,7 +248,7 @@ var date = exports.date = mem(function (init) {
248
248
  tooltipDescription: init.tooltipDescription,
249
249
  disabled: init.disabled,
250
250
  name: 'date',
251
- Icon: _calendarEditorDate.default,
251
+ Icon: _calendar.default,
252
252
  shortcut: '//',
253
253
  'aria-keyshortcuts': '/ / Enter'
254
254
  });
@@ -300,7 +300,7 @@ var more = exports.more = mem(function (init) {
300
300
  disabled: init.disabled,
301
301
  name: 'macro',
302
302
  Icon: function Icon() {
303
- return (0, _react2.jsx)(_showMoreHorizontalEditorMore.default, {
303
+ return (0, _react2.jsx)(_showMoreHorizontal.default, {
304
304
  label: "",
305
305
  color: "currentColor"
306
306
  });
@@ -20,6 +20,7 @@ var _editorToolbar = require("@atlaskit/editor-toolbar");
20
20
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
21
21
  var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
22
22
  var _InsertMenu = _interopRequireWildcard(require("../ElementBrowser/InsertMenu"));
23
+ var _filterDropdownItems = require("./hooks/filterDropdownItems");
23
24
  var _useEmojiPickerPopup = require("./hooks/useEmojiPickerPopup");
24
25
  var _useInsertButtonState2 = require("./hooks/useInsertButtonState");
25
26
  var _useTableSelectorPopup = require("./hooks/useTableSelectorPopup");
@@ -31,6 +32,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
31
32
  var FIT_HEIGHT_BUFFER = 100;
32
33
  var InsertButton = exports.InsertButton = function InsertButton(_ref) {
33
34
  var api = _ref.api,
35
+ breakpoint = _ref.breakpoint,
34
36
  _ref$showElementBrows = _ref.showElementBrowserLink,
35
37
  showElementBrowserLink = _ref$showElementBrows === void 0 ? false : _ref$showElementBrows,
36
38
  _ref$isFullPageAppear = _ref.isFullPageAppearance,
@@ -41,7 +43,8 @@ var InsertButton = exports.InsertButton = function InsertButton(_ref) {
41
43
  expandEnabled = _ref.expandEnabled,
42
44
  insertMenuItems = _ref.insertMenuItems,
43
45
  numberOfButtons = _ref.numberOfButtons,
44
- onInsertBlockType = _ref.onInsertBlockType;
46
+ onInsertBlockType = _ref.onInsertBlockType,
47
+ toolbarConfig = _ref.toolbarConfig;
45
48
  var _useEditorToolbar = (0, _toolbar.useEditorToolbar)(),
46
49
  editorView = _useEditorToolbar.editorView;
47
50
  var _useToolbarUI = (0, _editorToolbar.useToolbarUI)(),
@@ -67,6 +70,7 @@ var InsertButton = exports.InsertButton = function InsertButton(_ref) {
67
70
  var showMediaPicker = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'media.showMediaPicker');
68
71
  var _useInsertButtonState = (0, _useInsertButtonState2.useInsertButtonState)({
69
72
  api: api,
73
+ breakpoint: breakpoint,
70
74
  editorView: editorView || undefined,
71
75
  horizontalRuleEnabled: horizontalRuleEnabled,
72
76
  insertMenuItems: insertMenuItems,
@@ -74,7 +78,8 @@ var InsertButton = exports.InsertButton = function InsertButton(_ref) {
74
78
  numberOfButtons: numberOfButtons,
75
79
  tableSelectorSupported: tableSelectorSupported,
76
80
  expandEnabled: expandEnabled,
77
- showElementBrowserLink: showElementBrowserLink
81
+ showElementBrowserLink: showElementBrowserLink,
82
+ toolbarConfig: toolbarConfig
78
83
  }),
79
84
  dropdownItems = _useInsertButtonState.dropdownItems,
80
85
  emojiProvider = _useInsertButtonState.emojiProvider,
@@ -108,7 +113,7 @@ var InsertButton = exports.InsertButton = function InsertButton(_ref) {
108
113
  editorView.focus();
109
114
  }
110
115
  switch (item.value.name) {
111
- case 'link':
116
+ case _filterDropdownItems.LINK_BUTTON_KEY:
112
117
  api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$hyperlink = api.hyperlink) === null || _api$hyperlink === void 0 ? void 0 : _api$hyperlink.commands.showLinkToolbar(inputMethod));
113
118
  break;
114
119
  case 'table':
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LINK_BUTTON_KEY = void 0;
7
+ exports.filterDropdownItemsByBreakpoint = filterDropdownItemsByBreakpoint;
8
+ var ITEM_TO_BUTTON_MAP = {
9
+ action: 'taskList',
10
+ media: 'media',
11
+ 'image upload': 'media',
12
+ mention: 'mention',
13
+ emoji: 'emoji',
14
+ table: 'table',
15
+ layout: 'layout',
16
+ codeblock: 'codeBlock'
17
+ };
18
+ var LINK_BUTTON_KEY = exports.LINK_BUTTON_KEY = 'link';
19
+ var BREAKPOINT_ORDER = ['sm', 'md', 'lg', 'xl'];
20
+
21
+ /**
22
+ * Determines if a toolbar button is visible at the current breakpoint.
23
+ */
24
+ function isButtonVisibleAtBreakpoint(buttonShowAt, currentBreakpoint) {
25
+ if (!currentBreakpoint) {
26
+ return false;
27
+ }
28
+ var showAtIndex = BREAKPOINT_ORDER.indexOf(buttonShowAt);
29
+ var currentIndex = BREAKPOINT_ORDER.indexOf(currentBreakpoint);
30
+ return currentIndex >= showAtIndex;
31
+ }
32
+ function filterDropdownItemsByBreakpoint(items, currentBreakpoint, toolbarConfig) {
33
+ return items.filter(function (item) {
34
+ var itemName = item.value.name;
35
+ // filter out link button because it's always visible on the toolbar
36
+ if (itemName === LINK_BUTTON_KEY) {
37
+ return false;
38
+ }
39
+ var buttonKey = ITEM_TO_BUTTON_MAP[itemName];
40
+ if (!buttonKey) {
41
+ return true;
42
+ }
43
+ var buttonConfig = toolbarConfig[buttonKey];
44
+ if (!(buttonConfig !== null && buttonConfig !== void 0 && buttonConfig.enabled)) {
45
+ return true;
46
+ }
47
+ var showAt = buttonConfig.showAt || 'lg';
48
+ var isVisible = isButtonVisibleAtBreakpoint(showAt, currentBreakpoint);
49
+ return !isVisible;
50
+ });
51
+ }
@@ -6,11 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useInsertButtonState = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("react");
9
10
  var _reactIntlNext = require("react-intl-next");
10
11
  var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
11
12
  var _createItems = require("../../ToolbarInsertBlock/create-items");
13
+ var _filterDropdownItems = require("./filterDropdownItems");
12
14
  var useInsertButtonState = exports.useInsertButtonState = function useInsertButtonState(_ref) {
13
15
  var api = _ref.api,
16
+ breakpoint = _ref.breakpoint,
14
17
  editorView = _ref.editorView,
15
18
  horizontalRuleEnabled = _ref.horizontalRuleEnabled,
16
19
  insertMenuItems = _ref.insertMenuItems,
@@ -18,7 +21,8 @@ var useInsertButtonState = exports.useInsertButtonState = function useInsertButt
18
21
  numberOfButtons = _ref.numberOfButtons,
19
22
  tableSelectorSupported = _ref.tableSelectorSupported,
20
23
  expandEnabled = _ref.expandEnabled,
21
- showElementBrowserLink = _ref.showElementBrowserLink;
24
+ showElementBrowserLink = _ref.showElementBrowserLink,
25
+ toolbarConfig = _ref.toolbarConfig;
22
26
  var _useIntl = (0, _reactIntlNext.useIntl)(),
23
27
  formatMessage = _useIntl.formatMessage;
24
28
  var isTypeAheadAllowed = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'typeAhead.isAllowed');
@@ -80,7 +84,13 @@ var useInsertButtonState = exports.useInsertButtonState = function useInsertButt
80
84
  formatMessage: formatMessage
81
85
  }) : [, []],
82
86
  _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
83
- dropdownItems = _ref3[1];
87
+ allDropdownItems = _ref3[1];
88
+ var dropdownItems = (0, _react.useMemo)(function () {
89
+ if (!breakpoint || !toolbarConfig) {
90
+ return allDropdownItems;
91
+ }
92
+ return (0, _filterDropdownItems.filterDropdownItemsByBreakpoint)(allDropdownItems, breakpoint, toolbarConfig);
93
+ }, [allDropdownItems, breakpoint, toolbarConfig]);
84
94
  return {
85
95
  dropdownItems: dropdownItems,
86
96
  emojiProvider: emojiProvider,
@@ -263,26 +263,12 @@ var getToolbarComponents = exports.getToolbarComponents = function getToolbarCom
263
263
 
264
264
  // Insert Group
265
265
  if ((_config$insert = config.insert) !== null && _config$insert !== void 0 && _config$insert.enabled) {
266
- components.push({
267
- type: _toolbar.INSERT_GROUP.type,
268
- key: _toolbar.INSERT_GROUP.key,
269
- parents: [{
270
- type: _toolbar.INSERT_BLOCK_SECTION.type,
271
- key: _toolbar.INSERT_BLOCK_SECTION.key,
272
- rank: _toolbar.INSERT_BLOCK_SECTION_RANK[_toolbar.INSERT_GROUP.key]
273
- }]
274
- });
275
- components.push({
276
- type: _toolbar.INSERT_BUTTON.type,
277
- key: _toolbar.INSERT_BUTTON.key,
278
- parents: [{
279
- type: _toolbar.INSERT_GROUP.type,
280
- key: _toolbar.INSERT_GROUP.key,
281
- rank: _toolbar.INSERT_GROUP_RANK[_toolbar.INSERT_BUTTON.key]
282
- }],
283
- component: function component() {
266
+ var createInsertButtonComponent = function createInsertButtonComponent(breakpoint) {
267
+ return function () {
284
268
  return /*#__PURE__*/_react.default.createElement(_InsertButton.InsertButton, {
285
269
  api: api,
270
+ breakpoint: breakpoint,
271
+ toolbarConfig: config,
286
272
  showElementBrowserLink: options.showElementBrowserLink,
287
273
  tableSelectorSupported: options.tableSelectorSupported,
288
274
  onInsertBlockType: onInsertBlockType,
@@ -290,10 +276,170 @@ var getToolbarComponents = exports.getToolbarComponents = function getToolbarCom
290
276
  horizontalRuleEnabled: options.horizontalRuleEnabled,
291
277
  expandEnabled: options.allowExpand,
292
278
  insertMenuItems: options.insertMenuItems,
293
- numberOfButtons: 7 // TODO: ED-28759 - Default to 7 buttons - Remove this once we have a proper way to do toolbar responsiveness
279
+ numberOfButtons: 0
294
280
  });
295
- }
296
- });
281
+ };
282
+ };
283
+ if ((0, _platformFeatureFlags.fg)('platform_editor_toolbar_aifc_ga_blockers')) {
284
+ components.push({
285
+ type: _toolbar.INSERT_GROUP.type,
286
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-none"),
287
+ parents: [{
288
+ type: _toolbar.INSERT_BLOCK_SECTION.type,
289
+ key: _toolbar.INSERT_BLOCK_SECTION.key,
290
+ rank: _toolbar.INSERT_BLOCK_SECTION_RANK[_toolbar.INSERT_GROUP.key]
291
+ }],
292
+ component: function component(_ref3) {
293
+ var children = _ref3.children;
294
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.Show, {
295
+ below: "sm"
296
+ }, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButtonGroup, null, children));
297
+ }
298
+ });
299
+ components.push({
300
+ type: _toolbar.INSERT_BUTTON.type,
301
+ key: _toolbar.INSERT_BUTTON.key,
302
+ parents: [{
303
+ type: _toolbar.INSERT_GROUP.type,
304
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-none"),
305
+ rank: _toolbar.INSERT_GROUP_RANK[_toolbar.INSERT_BUTTON.key]
306
+ }],
307
+ component: createInsertButtonComponent(null)
308
+ });
309
+ components.push({
310
+ type: _toolbar.INSERT_GROUP.type,
311
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-sm"),
312
+ parents: [{
313
+ type: _toolbar.INSERT_BLOCK_SECTION.type,
314
+ key: _toolbar.INSERT_BLOCK_SECTION.key,
315
+ rank: _toolbar.INSERT_BLOCK_SECTION_RANK[_toolbar.INSERT_GROUP.key]
316
+ }],
317
+ component: function component(_ref4) {
318
+ var children = _ref4.children;
319
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.Show, {
320
+ only: "sm"
321
+ }, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButtonGroup, null, children));
322
+ }
323
+ });
324
+ components.push({
325
+ type: _toolbar.INSERT_BUTTON.type,
326
+ key: _toolbar.INSERT_BUTTON.key,
327
+ parents: [{
328
+ type: _toolbar.INSERT_GROUP.type,
329
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-sm"),
330
+ rank: _toolbar.INSERT_GROUP_RANK[_toolbar.INSERT_BUTTON.key]
331
+ }],
332
+ component: createInsertButtonComponent('sm')
333
+ });
334
+ components.push({
335
+ type: _toolbar.INSERT_GROUP.type,
336
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-md"),
337
+ parents: [{
338
+ type: _toolbar.INSERT_BLOCK_SECTION.type,
339
+ key: _toolbar.INSERT_BLOCK_SECTION.key,
340
+ rank: _toolbar.INSERT_BLOCK_SECTION_RANK[_toolbar.INSERT_GROUP.key]
341
+ }],
342
+ component: function component(_ref5) {
343
+ var children = _ref5.children;
344
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.Show, {
345
+ only: "md"
346
+ }, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButtonGroup, null, children));
347
+ }
348
+ });
349
+ components.push({
350
+ type: _toolbar.INSERT_BUTTON.type,
351
+ key: _toolbar.INSERT_BUTTON.key,
352
+ parents: [{
353
+ type: _toolbar.INSERT_GROUP.type,
354
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-md"),
355
+ rank: _toolbar.INSERT_GROUP_RANK[_toolbar.INSERT_BUTTON.key]
356
+ }],
357
+ component: createInsertButtonComponent('md')
358
+ });
359
+ components.push({
360
+ type: _toolbar.INSERT_GROUP.type,
361
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-lg"),
362
+ parents: [{
363
+ type: _toolbar.INSERT_BLOCK_SECTION.type,
364
+ key: _toolbar.INSERT_BLOCK_SECTION.key,
365
+ rank: _toolbar.INSERT_BLOCK_SECTION_RANK[_toolbar.INSERT_GROUP.key]
366
+ }],
367
+ component: function component(_ref6) {
368
+ var children = _ref6.children;
369
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.Show, {
370
+ only: "lg"
371
+ }, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButtonGroup, null, children));
372
+ }
373
+ });
374
+ components.push({
375
+ type: _toolbar.INSERT_BUTTON.type,
376
+ key: _toolbar.INSERT_BUTTON.key,
377
+ parents: [{
378
+ type: _toolbar.INSERT_GROUP.type,
379
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-lg"),
380
+ rank: _toolbar.INSERT_GROUP_RANK[_toolbar.INSERT_BUTTON.key]
381
+ }],
382
+ component: createInsertButtonComponent('lg')
383
+ });
384
+ components.push({
385
+ type: _toolbar.INSERT_GROUP.type,
386
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-xl"),
387
+ parents: [{
388
+ type: _toolbar.INSERT_BLOCK_SECTION.type,
389
+ key: _toolbar.INSERT_BLOCK_SECTION.key,
390
+ rank: _toolbar.INSERT_BLOCK_SECTION_RANK[_toolbar.INSERT_GROUP.key]
391
+ }],
392
+ component: function component(_ref7) {
393
+ var children = _ref7.children;
394
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.Show, {
395
+ only: "xl"
396
+ }, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarButtonGroup, null, children));
397
+ }
398
+ });
399
+ components.push({
400
+ type: _toolbar.INSERT_BUTTON.type,
401
+ key: _toolbar.INSERT_BUTTON.key,
402
+ parents: [{
403
+ type: _toolbar.INSERT_GROUP.type,
404
+ key: "".concat(_toolbar.INSERT_GROUP.key, "-xl"),
405
+ rank: _toolbar.INSERT_GROUP_RANK[_toolbar.INSERT_BUTTON.key]
406
+ }],
407
+ component: createInsertButtonComponent('xl')
408
+ });
409
+ } else {
410
+ components.push({
411
+ type: _toolbar.INSERT_GROUP.type,
412
+ key: _toolbar.INSERT_GROUP.key,
413
+ parents: [{
414
+ type: _toolbar.INSERT_BLOCK_SECTION.type,
415
+ key: _toolbar.INSERT_BLOCK_SECTION.key,
416
+ rank: _toolbar.INSERT_BLOCK_SECTION_RANK[_toolbar.INSERT_GROUP.key]
417
+ }]
418
+ });
419
+ components.push({
420
+ type: _toolbar.INSERT_BUTTON.type,
421
+ key: _toolbar.INSERT_BUTTON.key,
422
+ parents: [{
423
+ type: _toolbar.INSERT_GROUP.type,
424
+ key: _toolbar.INSERT_GROUP.key,
425
+ rank: _toolbar.INSERT_GROUP_RANK[_toolbar.INSERT_BUTTON.key]
426
+ }],
427
+ component: function component() {
428
+ return /*#__PURE__*/_react.default.createElement(_InsertButton.InsertButton, {
429
+ api: api,
430
+ toolbarConfig: config,
431
+ showElementBrowserLink: options.showElementBrowserLink,
432
+ tableSelectorSupported: options.tableSelectorSupported,
433
+ onInsertBlockType: onInsertBlockType,
434
+ nativeStatusSupported: options.nativeStatusSupported,
435
+ horizontalRuleEnabled: options.horizontalRuleEnabled,
436
+ expandEnabled: options.allowExpand,
437
+ insertMenuItems: options.insertMenuItems,
438
+ numberOfButtons: 7 // TODO: ED-28759 - Default to 7 buttons - Remove this once we have a proper way to do toolbar responsiveness
439
+ });
440
+ }
441
+ });
442
+ }
297
443
  }
298
444
  return components;
299
445
  };
@@ -8,7 +8,7 @@ import React from 'react';
8
8
  import { jsx } from '@emotion/react';
9
9
  import { ToolTipContent } from '@atlaskit/editor-common/keymaps';
10
10
  import { ToolbarButton } from '@atlaskit/editor-common/ui-menu';
11
- import AddIcon from '@atlaskit/icon/core/migration/add--editor-add';
11
+ import AddIcon from '@atlaskit/icon/core/add';
12
12
  import ChevronDownIcon from '@atlaskit/icon/core/migration/chevron-down';
13
13
  import { triggerWrapper } from './styles';
14
14
  const DropDownButtonIcon = /*#__PURE__*/React.memo(props =>
@@ -23,6 +23,7 @@ import { EmojiPicker as AkEmojiPicker } from '@atlaskit/emoji/picker';
23
23
  import { fg } from '@atlaskit/platform-feature-flags';
24
24
  import { N20A, N30A } from '@atlaskit/theme/colors';
25
25
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
26
+ import { LINK_BUTTON_KEY } from '../toolbar-components/hooks/filterDropdownItems';
26
27
  import { BlockInsertMenu } from './block-insert-menu';
27
28
  import { createItems } from './create-items';
28
29
  // Ignored via go/ees005
@@ -235,7 +236,7 @@ export class ToolbarInsertBlock extends React.PureComponent {
235
236
  this.dropdownButtonRef = new WeakRef(ref);
236
237
  }
237
238
  });
238
- _defineProperty(this, "toggleTableSelector", (inputMethod = INPUT_METHOD.TOOLBAR) => {
239
+ _defineProperty(this, "toggleTableSelector", (_inputMethod = INPUT_METHOD.TOOLBAR) => {
239
240
  this.setState(prevState => ({
240
241
  isTableSelectorOpen: !prevState.isTableSelectorOpen
241
242
  }));
@@ -481,7 +482,7 @@ export class ToolbarInsertBlock extends React.PureComponent {
481
482
  editorView.focus();
482
483
  }
483
484
  switch (item.value.name) {
484
- case 'link':
485
+ case LINK_BUTTON_KEY:
485
486
  this.toggleLinkPanel(inputMethod);
486
487
  break;
487
488
  case 'table':
@@ -11,21 +11,21 @@ import { addLink, getAriaKeyshortcuts, toggleTable, tooltip } from '@atlaskit/ed
11
11
  import { shortcutStyle } from '@atlaskit/editor-shared-styles/shortcut';
12
12
  import FieldTextIcon from '@atlaskit/icon-lab/core/field-text';
13
13
  import LozengeIcon from '@atlaskit/icon-lab/core/lozenge';
14
- import AngleBracketsIcon from '@atlaskit/icon/core/migration/angle-brackets--editor-code';
15
- import CalendarIcon from '@atlaskit/icon/core/migration/calendar--editor-date';
14
+ import AngleBracketsIcon from '@atlaskit/icon/core/angle-brackets';
15
+ import CalendarIcon from '@atlaskit/icon/core/calendar';
16
+ import ExpandNodeIcon from '@atlaskit/icon/core/chevron-right';
17
+ import DecisionIcon from '@atlaskit/icon/core/decision';
18
+ import EmojiIcon from '@atlaskit/icon/core/emoji';
19
+ import GridIcon from '@atlaskit/icon/core/grid';
20
+ import ImageIcon from '@atlaskit/icon/core/image';
21
+ import LayoutTwoColumnsIcon from '@atlaskit/icon/core/layout-two-columns';
22
+ import LinkIcon from '@atlaskit/icon/core/link';
23
+ import MentionIcon from '@atlaskit/icon/core/mention';
16
24
  import ChevronDownIcon from '@atlaskit/icon/core/migration/chevron-down';
17
- import ExpandNodeIcon from '@atlaskit/icon/core/migration/chevron-right--chevron-right-circle';
18
- import DecisionIcon from '@atlaskit/icon/core/migration/decision--editor-decision';
19
- import EmojiIcon from '@atlaskit/icon/core/migration/emoji--editor-emoji';
20
- import GridIcon from '@atlaskit/icon/core/migration/grid--editor-table';
21
- import ImageIcon from '@atlaskit/icon/core/migration/image--editor-image';
22
- import LayoutTwoColumnsIcon from '@atlaskit/icon/core/migration/layout-two-columns--editor-layout-two-equal';
23
- import LinkIcon from '@atlaskit/icon/core/migration/link--editor-link';
24
- import MentionIcon from '@atlaskit/icon/core/migration/mention--editor-mention';
25
- import HorizontalRuleIcon from '@atlaskit/icon/core/migration/minus--editor-horizontal-rule';
26
- import QuotationMarkIcon from '@atlaskit/icon/core/migration/quotation-mark--quote';
27
- import ShowMoreHorizontalIcon from '@atlaskit/icon/core/migration/show-more-horizontal--editor-more';
28
- import InformationIcon from '@atlaskit/icon/core/migration/status-information--editor-info';
25
+ import HorizontalRuleIcon from '@atlaskit/icon/core/minus';
26
+ import QuotationMarkIcon from '@atlaskit/icon/core/quotation-mark';
27
+ import ShowMoreHorizontalIcon from '@atlaskit/icon/core/show-more-horizontal';
28
+ import InformationIcon from '@atlaskit/icon/core/status-information';
29
29
  import TaskIcon from '@atlaskit/icon/core/task';
30
30
  import CheckboxCheckedIconLegacy from '@atlaskit/icon/glyph/editor/task';
31
31
  import PlaceholderTextIcon from '@atlaskit/icon/glyph/media-services/text';