@atlaskit/editor-plugin-block-type 6.1.3 → 6.2.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 (41) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/blockTypePlugin.js +14 -7
  3. package/dist/cjs/pm-plugins/block-types.js +56 -1
  4. package/dist/cjs/pm-plugins/ui/ToolbarBlockType/HeadingButton.compiled.css +7 -0
  5. package/dist/cjs/pm-plugins/ui/ToolbarBlockType/HeadingButton.js +66 -0
  6. package/dist/cjs/pm-plugins/ui/ToolbarBlockType/QuoteButton.js +40 -0
  7. package/dist/cjs/pm-plugins/ui/ToolbarBlockType/TextStylesMenuButton.js +35 -0
  8. package/dist/cjs/pm-plugins/ui/ToolbarComponents.js +72 -0
  9. package/dist/es2019/blockTypePlugin.js +40 -31
  10. package/dist/es2019/pm-plugins/block-types.js +58 -0
  11. package/dist/es2019/pm-plugins/ui/ToolbarBlockType/HeadingButton.compiled.css +7 -0
  12. package/dist/es2019/pm-plugins/ui/ToolbarBlockType/HeadingButton.js +59 -0
  13. package/dist/es2019/pm-plugins/ui/ToolbarBlockType/QuoteButton.js +33 -0
  14. package/dist/es2019/pm-plugins/ui/ToolbarBlockType/TextStylesMenuButton.js +28 -0
  15. package/dist/es2019/pm-plugins/ui/ToolbarComponents.js +60 -0
  16. package/dist/esm/blockTypePlugin.js +14 -7
  17. package/dist/esm/pm-plugins/block-types.js +55 -0
  18. package/dist/esm/pm-plugins/ui/ToolbarBlockType/HeadingButton.compiled.css +7 -0
  19. package/dist/esm/pm-plugins/ui/ToolbarBlockType/HeadingButton.js +59 -0
  20. package/dist/esm/pm-plugins/ui/ToolbarBlockType/QuoteButton.js +33 -0
  21. package/dist/esm/pm-plugins/ui/ToolbarBlockType/TextStylesMenuButton.js +28 -0
  22. package/dist/esm/pm-plugins/ui/ToolbarComponents.js +65 -0
  23. package/dist/types/blockTypePluginType.d.ts +3 -1
  24. package/dist/types/pm-plugins/block-types.d.ts +13 -1
  25. package/dist/types/pm-plugins/types.d.ts +4 -0
  26. package/dist/types/pm-plugins/ui/ToolbarBlockType/HeadingButton.d.ts +10 -0
  27. package/dist/types/pm-plugins/ui/ToolbarBlockType/QuoteButton.d.ts +10 -0
  28. package/dist/types/pm-plugins/ui/ToolbarBlockType/TextStylesMenuButton.d.ts +9 -0
  29. package/dist/types/pm-plugins/ui/ToolbarBlockType/styled.d.ts +1 -1
  30. package/dist/types/pm-plugins/ui/ToolbarComponents.d.ts +4 -0
  31. package/dist/types/ui/styles.d.ts +1 -1
  32. package/dist/types-ts4.5/blockTypePluginType.d.ts +3 -1
  33. package/dist/types-ts4.5/pm-plugins/block-types.d.ts +13 -1
  34. package/dist/types-ts4.5/pm-plugins/types.d.ts +4 -0
  35. package/dist/types-ts4.5/pm-plugins/ui/ToolbarBlockType/HeadingButton.d.ts +10 -0
  36. package/dist/types-ts4.5/pm-plugins/ui/ToolbarBlockType/QuoteButton.d.ts +10 -0
  37. package/dist/types-ts4.5/pm-plugins/ui/ToolbarBlockType/TextStylesMenuButton.d.ts +9 -0
  38. package/dist/types-ts4.5/pm-plugins/ui/ToolbarBlockType/styled.d.ts +1 -1
  39. package/dist/types-ts4.5/pm-plugins/ui/ToolbarComponents.d.ts +4 -0
  40. package/dist/types-ts4.5/ui/styles.d.ts +1 -1
  41. package/package.json +12 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/editor-plugin-block-type
2
2
 
3
+ ## 6.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 6.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`428e4e6ff8ac9`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/428e4e6ff8ac9) -
14
+ [ux] ED-28683 register text styles dropdown to new toolbar. add `@atlaskit/editor-plugin-toolbar`,
15
+ `@atlaskit-editor-toolbar`, `@atlaskit/editor-toolbar-model`, `@atlaskit/css` as dependencies
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies
20
+
3
21
  ## 6.1.3
4
22
 
5
23
  ### Patch Changes
@@ -15,6 +15,7 @@ var _messages = require("@atlaskit/editor-common/messages");
15
15
  var _quickInsert = require("@atlaskit/editor-common/quick-insert");
16
16
  var _types = require("@atlaskit/editor-common/types");
17
17
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
18
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
18
19
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
19
20
  var _blockType = require("./pm-plugins/commands/block-type");
20
21
  var _inputRule = _interopRequireDefault(require("./pm-plugins/input-rule"));
@@ -22,6 +23,7 @@ var _keymap = _interopRequireDefault(require("./pm-plugins/keymap"));
22
23
  var _main = require("./pm-plugins/main");
23
24
  var _FloatingToolbarComponent = require("./pm-plugins/ui/FloatingToolbarComponent");
24
25
  var _PrimaryToolbarComponent = require("./pm-plugins/ui/PrimaryToolbarComponent");
26
+ var _ToolbarComponents = require("./pm-plugins/ui/ToolbarComponents");
25
27
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
28
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
29
  var headingPluginOptions = function headingPluginOptions(_ref, isAllowed, editorAnalyticsApi) {
@@ -100,7 +102,6 @@ var blockquotePluginOptions = function blockquotePluginOptions(_ref2, isAllowed,
100
102
  }];
101
103
  };
102
104
  var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3) {
103
- var _api$primaryToolbar;
104
105
  var options = _ref3.config,
105
106
  api = _ref3.api;
106
107
  var primaryToolbarComponent = function primaryToolbarComponent(_ref4) {
@@ -125,10 +126,16 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
125
126
  shouldUseDefaultRole: false
126
127
  });
127
128
  };
128
- api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 || _api$primaryToolbar.actions.registerComponent({
129
- name: 'blockType',
130
- component: primaryToolbarComponent
131
- });
129
+ if ((0, _expValEquals.expValEquals)('platform_editor_toolbar_aifc', 'isEnabled', true)) {
130
+ var _api$toolbar;
131
+ api === null || api === void 0 || (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 || _api$toolbar.actions.registerComponents((0, _ToolbarComponents.getToolbarComponents)(api));
132
+ } else {
133
+ var _api$primaryToolbar;
134
+ api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 || _api$primaryToolbar.actions.registerComponent({
135
+ name: 'blockType',
136
+ component: primaryToolbarComponent
137
+ });
138
+ }
132
139
  return {
133
140
  name: 'blockType',
134
141
  nodes: function nodes() {
@@ -206,7 +213,7 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
206
213
  return _main.pluginKey.getState(editorState);
207
214
  },
208
215
  primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined,
209
- pluginsOptions: _objectSpread({
216
+ pluginsOptions: _objectSpread(_objectSpread({}, !(0, _expValEquals.expValEquals)('platform_editor_toolbar_aifc', 'isEnabled', true) && {
210
217
  selectionToolbar: function selectionToolbar() {
211
218
  var _api$userPreferences, _api$selectionToolbar;
212
219
  var toolbarDocking = (0, _platformFeatureFlags.fg)('platform_editor_use_preferences_plugin') ? api === null || api === void 0 || (_api$userPreferences = api.userPreferences) === null || _api$userPreferences === void 0 || (_api$userPreferences = _api$userPreferences.sharedState.currentState()) === null || _api$userPreferences === void 0 || (_api$userPreferences = _api$userPreferences.preferences) === null || _api$userPreferences === void 0 ? void 0 : _api$userPreferences.toolbarDockingPosition : api === null || api === void 0 || (_api$selectionToolbar = api.selectionToolbar) === null || _api$selectionToolbar === void 0 || (_api$selectionToolbar = _api$selectionToolbar.sharedState) === null || _api$selectionToolbar === void 0 || (_api$selectionToolbar = _api$selectionToolbar.currentState()) === null || _api$selectionToolbar === void 0 ? void 0 : _api$selectionToolbar.toolbarDocking;
@@ -234,7 +241,7 @@ var blockTypePlugin = exports.blockTypePlugin = function blockTypePlugin(_ref3)
234
241
  return undefined;
235
242
  }
236
243
  }
237
- }, (0, _experiments.editorExperiment)('platform_editor_insertion', 'control') && {
244
+ }), (0, _experiments.editorExperiment)('platform_editor_insertion', 'control') && {
238
245
  quickInsert: function quickInsert(intl) {
239
246
  var _api$analytics7, _api$analytics8;
240
247
  var exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
@@ -4,9 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getBlockTypesInDropdown = exports.WRAPPER_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = exports.PANEL = exports.OTHER = exports.NORMAL_TEXT = exports.HEADING_6 = exports.HEADING_5 = exports.HEADING_4 = exports.HEADING_3 = exports.HEADING_2 = exports.HEADING_1 = exports.HEADINGS_BY_NAME = exports.HEADINGS_BY_LEVEL = exports.FORMATTING_NODE_TYPES = exports.FORMATTING_MARK_TYPES = exports.CODE_BLOCK = exports.BLOCK_QUOTE = exports.ALL_BLOCK_TYPES = void 0;
7
+ exports.toolbarBlockTypesWithRank = exports.getBlockTypesInDropdown = exports.WRAPPER_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = exports.PANEL = exports.OTHER = exports.NORMAL_TEXT = exports.HEADING_6 = exports.HEADING_5 = exports.HEADING_4 = exports.HEADING_3 = exports.HEADING_2 = exports.HEADING_1 = exports.HEADINGS_BY_NAME = exports.HEADINGS_BY_LEVEL = exports.FORMATTING_NODE_TYPES = exports.FORMATTING_MARK_TYPES = exports.CODE_BLOCK = exports.BLOCK_QUOTE = exports.ALL_BLOCK_TYPES = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _react = _interopRequireDefault(require("react"));
9
10
  var _messages = require("@atlaskit/editor-common/messages");
11
+ var _toolbar = require("@atlaskit/editor-common/toolbar");
12
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
10
13
  var _textHeadingFive = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-five"));
11
14
  var _textHeadingFour = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-four"));
12
15
  var _textHeadingOne = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-one"));
@@ -16,6 +19,8 @@ var _textHeadingTwo = _interopRequireDefault(require("@atlaskit/icon-lab/core/te
16
19
  var _text = _interopRequireDefault(require("@atlaskit/icon/core/text"));
17
20
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
18
21
  var _icons = require("./ui/ToolbarBlockType/icons");
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
24
  var NORMAL_TEXT = exports.NORMAL_TEXT = {
20
25
  name: 'normal',
21
26
  title: _messages.blockTypeMessages.normal,
@@ -114,6 +119,56 @@ var OTHER = exports.OTHER = {
114
119
  nodeName: ''
115
120
  };
116
121
  var TEXT_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = [NORMAL_TEXT, HEADING_1, HEADING_2, HEADING_3, HEADING_4, HEADING_5, HEADING_6];
122
+ var ToolbarBlockTypes = /*#__PURE__*/function (ToolbarBlockTypes) {
123
+ ToolbarBlockTypes["normal"] = "normal";
124
+ ToolbarBlockTypes["heading1"] = "heading1";
125
+ ToolbarBlockTypes["heading2"] = "heading2";
126
+ ToolbarBlockTypes["heading3"] = "heading3";
127
+ ToolbarBlockTypes["heading4"] = "heading4";
128
+ ToolbarBlockTypes["heading5"] = "heading5";
129
+ ToolbarBlockTypes["heading6"] = "heading6";
130
+ ToolbarBlockTypes["blockquote"] = "blockquote";
131
+ return ToolbarBlockTypes;
132
+ }(ToolbarBlockTypes || {});
133
+ var toolbarBlockTypesWithRank = exports.toolbarBlockTypesWithRank = function toolbarBlockTypesWithRank() {
134
+ return {
135
+ normal: _objectSpread(_objectSpread({}, NORMAL_TEXT), {}, {
136
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.NORMAL_TEXT_MENU_ITEM.key],
137
+ toolbarKey: _toolbar.NORMAL_TEXT_MENU_ITEM.key
138
+ }),
139
+ heading1: _objectSpread(_objectSpread({}, HEADING_1), {}, {
140
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_1_MENU_ITEM.key],
141
+ toolbarKey: _toolbar.HEADING_1_MENU_ITEM.key
142
+ }),
143
+ heading2: _objectSpread(_objectSpread({}, HEADING_2), {}, {
144
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_2_MENU_ITEM.key],
145
+ toolbarKey: _toolbar.HEADING_2_MENU_ITEM.key
146
+ }),
147
+ heading3: _objectSpread(_objectSpread({}, HEADING_3), {}, {
148
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_3_MENU_ITEM.key],
149
+ toolbarKey: _toolbar.HEADING_3_MENU_ITEM.key
150
+ }),
151
+ heading4: _objectSpread(_objectSpread({}, HEADING_4), {}, {
152
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_4_MENU_ITEM.key],
153
+ toolbarKey: _toolbar.HEADING_4_MENU_ITEM.key
154
+ }),
155
+ heading5: _objectSpread(_objectSpread({}, HEADING_5), {}, {
156
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_5_MENU_ITEM.key],
157
+ toolbarKey: _toolbar.HEADING_5_MENU_ITEM.key
158
+ }),
159
+ heading6: _objectSpread(_objectSpread({}, HEADING_6), {}, {
160
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_6_MENU_ITEM.key],
161
+ toolbarKey: _toolbar.HEADING_6_MENU_ITEM.key
162
+ }),
163
+ blockquote: _objectSpread(_objectSpread({}, BLOCK_QUOTE), {}, {
164
+ icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.QuoteIcon, {
165
+ label: ""
166
+ }),
167
+ toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.BLOCK_QUOTE_MENU_ITEM.key],
168
+ toolbarKey: _toolbar.BLOCK_QUOTE_MENU_ITEM.key
169
+ })
170
+ };
171
+ };
117
172
  var FORMATTING_NODE_TYPES = exports.FORMATTING_NODE_TYPES = ['heading', 'blockquote'];
118
173
  var FORMATTING_MARK_TYPES = exports.FORMATTING_MARK_TYPES = ['em', 'code', 'strike', 'strong', 'underline', 'textColor', 'subsup', 'backgroundColor'];
119
174
  var WRAPPER_BLOCK_TYPES = exports.WRAPPER_BLOCK_TYPES = [BLOCK_QUOTE, CODE_BLOCK, PANEL];
@@ -0,0 +1,7 @@
1
+ ._11c8140y{font:var(--ds-font-heading-xsmall,normal 600 14px/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
+ ._11c81c04{font:var(--ds-font-heading-xlarge,normal 600 29px/2pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._11c81vhk{font:var(--ds-font-heading-xxsmall,normal 600 9pt/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
4
+ ._11c82smr{font:var(--ds-font-body,normal 400 14px/20px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
5
+ ._11c8lodh{font:var(--ds-font-heading-medium,normal 500 20px/24px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
6
+ ._11c8nbxd{font:var(--ds-font-heading-small,normal 600 1pc/20px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
7
+ ._11c8nf1z{font:var(--ds-font-heading-large,normal 500 24px/28px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
@@ -0,0 +1,66 @@
1
+ /* HeadingButton.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.HeadingButton = void 0;
9
+ require("./HeadingButton.compiled.css");
10
+ var _runtime = require("@compiled/react/runtime");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _reactIntlNext = require("react-intl-next");
13
+ var _analytics = require("@atlaskit/editor-common/analytics");
14
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
15
+ var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
16
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
17
+ var _compiled = require("@atlaskit/primitives/compiled");
18
+ var headingSizeStylesMap = {
19
+ normal: "_11c82smr",
20
+ heading1: "_11c81c04",
21
+ heading2: "_11c8nf1z",
22
+ heading3: "_11c8lodh",
23
+ heading4: "_11c8nbxd",
24
+ heading5: "_11c8140y",
25
+ heading6: "_11c81vhk"
26
+ };
27
+ var shortcuts = {
28
+ normal: _keymaps.setNormalText,
29
+ heading1: _keymaps.toggleHeading1,
30
+ heading2: _keymaps.toggleHeading2,
31
+ heading3: _keymaps.toggleHeading3,
32
+ heading4: _keymaps.toggleHeading4,
33
+ heading5: _keymaps.toggleHeading5,
34
+ heading6: _keymaps.toggleHeading6
35
+ };
36
+ var HeadingButton = exports.HeadingButton = function HeadingButton(_ref) {
37
+ var blockType = _ref.blockType,
38
+ api = _ref.api;
39
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
40
+ formatMessage = _useIntl.formatMessage;
41
+ var currentBlockType = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockType.currentBlockType');
42
+ var availableBlockTypesInDropdown = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockType.availableBlockTypesInDropdown');
43
+ if (!(availableBlockTypesInDropdown !== null && availableBlockTypesInDropdown !== void 0 && availableBlockTypesInDropdown.some(function (availableBlockType) {
44
+ return availableBlockType.name === blockType.name;
45
+ }))) {
46
+ return null;
47
+ }
48
+ var fromBlockQuote = (currentBlockType === null || currentBlockType === void 0 ? void 0 : currentBlockType.name) === 'blockquote';
49
+ var onClick = function onClick() {
50
+ var _api$core, _api$blockType;
51
+ api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$blockType = api.blockType) === null || _api$blockType === void 0 || (_api$blockType = _api$blockType.commands) === null || _api$blockType === void 0 ? void 0 : _api$blockType.setTextLevel(blockType.name, _analytics.INPUT_METHOD.TOOLBAR, fromBlockQuote));
52
+ };
53
+ var shortcut = (0, _keymaps.formatShortcut)(shortcuts[blockType.name]);
54
+ var isSelected = currentBlockType === blockType;
55
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
56
+ elemBefore: blockType.icon,
57
+ elemAfter: shortcut ? /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarKeyboardShortcutHint, {
58
+ shortcut: shortcut
59
+ }) : undefined,
60
+ onClick: onClick,
61
+ isSelected: isSelected,
62
+ ariaKeyshortcuts: shortcut
63
+ }, /*#__PURE__*/_react.default.createElement(_compiled.Box, {
64
+ xcss: headingSizeStylesMap[blockType.name]
65
+ }, formatMessage(blockType.title)));
66
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.QuoteButton = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactIntlNext = require("react-intl-next");
10
+ var _analytics = require("@atlaskit/editor-common/analytics");
11
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
12
+ var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
13
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
14
+ var QuoteButton = exports.QuoteButton = function QuoteButton(_ref) {
15
+ var blockType = _ref.blockType,
16
+ api = _ref.api;
17
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
18
+ formatMessage = _useIntl.formatMessage;
19
+ var availableBlockTypesInDropdown = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockType.availableBlockTypesInDropdown');
20
+ var currentBlockType = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockType.currentBlockType');
21
+ if (!(availableBlockTypesInDropdown !== null && availableBlockTypesInDropdown !== void 0 && availableBlockTypesInDropdown.some(function (availableBlockType) {
22
+ return availableBlockType.name === blockType.name;
23
+ }))) {
24
+ return null;
25
+ }
26
+ var onClick = function onClick() {
27
+ var _api$core, _api$blockType;
28
+ api === null || api === void 0 || (_api$core = api.core) === null || _api$core === void 0 || _api$core.actions.execute(api === null || api === void 0 || (_api$blockType = api.blockType) === null || _api$blockType === void 0 || (_api$blockType = _api$blockType.commands) === null || _api$blockType === void 0 ? void 0 : _api$blockType.insertBlockQuote(_analytics.INPUT_METHOD.TOOLBAR));
29
+ };
30
+ var shortcut = (0, _keymaps.formatShortcut)(_keymaps.toggleBlockQuote);
31
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
32
+ elemBefore: blockType.icon,
33
+ elemAfter: shortcut ? /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarKeyboardShortcutHint, {
34
+ shortcut: shortcut
35
+ }) : undefined,
36
+ onClick: onClick,
37
+ isSelected: currentBlockType === blockType,
38
+ ariaKeyshortcuts: shortcut
39
+ }, formatMessage(blockType.title));
40
+ };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TextStylesMenuButton = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactIntlNext = require("react-intl-next");
10
+ var _messages = require("@atlaskit/editor-common/messages");
11
+ var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
12
+ var _editorToolbar = require("@atlaskit/editor-toolbar");
13
+ var _blockTypes = require("../../block-types");
14
+ var TextStylesMenuButton = exports.TextStylesMenuButton = function TextStylesMenuButton(_ref) {
15
+ var _Object$values$find;
16
+ var api = _ref.api,
17
+ children = _ref.children;
18
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
19
+ formatMessage = _useIntl.formatMessage;
20
+ var blockTypesDisabled = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockType.blockTypesDisabled');
21
+ var currentBlockType = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockType.currentBlockType');
22
+ var CurrentIcon = (_Object$values$find = Object.values((0, _blockTypes.toolbarBlockTypesWithRank)()).find(function (blockType) {
23
+ return blockType.name === (currentBlockType === null || currentBlockType === void 0 ? void 0 : currentBlockType.name);
24
+ })) === null || _Object$values$find === void 0 || (_Object$values$find = _Object$values$find.icon) === null || _Object$values$find === void 0 ? void 0 : _Object$values$find.type;
25
+ return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarTooltip, {
26
+ content: formatMessage(_messages.toolbarMessages.textStylesTooltip)
27
+ }, /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownMenu, {
28
+ isDisabled: blockTypesDisabled,
29
+ iconBefore: CurrentIcon ? /*#__PURE__*/_react.default.createElement(CurrentIcon, {
30
+ label: "".concat(currentBlockType === null || currentBlockType === void 0 ? void 0 : currentBlockType.name, " ").concat(formatMessage(_messages.toolbarMessages.textStylesTooltip))
31
+ }) : /*#__PURE__*/_react.default.createElement(_editorToolbar.TextIcon, {
32
+ label: formatMessage(_messages.toolbarMessages.textStylesTooltip)
33
+ })
34
+ }, children));
35
+ };
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getToolbarComponents = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _toolbar = require("@atlaskit/editor-common/toolbar");
10
+ var _blockTypes = require("../block-types");
11
+ var _HeadingButton = require("./ToolbarBlockType/HeadingButton");
12
+ var _QuoteButton = require("./ToolbarBlockType/QuoteButton");
13
+ var _TextStylesMenuButton = require("./ToolbarBlockType/TextStylesMenuButton");
14
+ var getToolbarComponents = exports.getToolbarComponents = function getToolbarComponents(api) {
15
+ var toolbarComponents = [{
16
+ type: _toolbar.TEXT_STYLES_GROUP.type,
17
+ key: _toolbar.TEXT_STYLES_GROUP.key,
18
+ parents: [{
19
+ type: _toolbar.TEXT_SECTION.type,
20
+ key: _toolbar.TEXT_SECTION.key,
21
+ rank: _toolbar.TEXT_SECTION_RANK[_toolbar.TEXT_STYLES_GROUP.key]
22
+ }]
23
+ }, {
24
+ type: _toolbar.TEXT_STYLES_MENU.type,
25
+ key: _toolbar.TEXT_STYLES_MENU.key,
26
+ parents: [{
27
+ type: _toolbar.TEXT_STYLES_GROUP.type,
28
+ key: _toolbar.TEXT_STYLES_GROUP.key,
29
+ rank: _toolbar.TEXT_STYLES_GROUP_RANK[_toolbar.TEXT_STYLES_MENU.key]
30
+ }],
31
+ component: function component(_ref) {
32
+ var children = _ref.children;
33
+ return /*#__PURE__*/_react.default.createElement(_TextStylesMenuButton.TextStylesMenuButton, {
34
+ api: api
35
+ }, children);
36
+ }
37
+ }, {
38
+ type: _toolbar.TEXT_STYLES_MENU_SECTION.type,
39
+ key: _toolbar.TEXT_STYLES_MENU_SECTION.key,
40
+ parents: [{
41
+ type: _toolbar.TEXT_STYLES_MENU.type,
42
+ key: _toolbar.TEXT_STYLES_MENU.key,
43
+ rank: _toolbar.TEXT_STYLES_MENU_RANK[_toolbar.TEXT_STYLES_MENU_SECTION.key]
44
+ }]
45
+ }];
46
+ Object.values((0, _blockTypes.toolbarBlockTypesWithRank)()).forEach(function (blockType) {
47
+ if (blockType.toolbarKey) {
48
+ var menuItem = {
49
+ type: 'menu-item',
50
+ key: blockType.toolbarKey,
51
+ parents: [{
52
+ type: _toolbar.TEXT_STYLES_MENU_SECTION.type,
53
+ key: _toolbar.TEXT_STYLES_MENU_SECTION.key,
54
+ rank: blockType.toolbarRank
55
+ }],
56
+ component: blockType.name === 'blockquote' ? function () {
57
+ return /*#__PURE__*/_react.default.createElement(_QuoteButton.QuoteButton, {
58
+ blockType: blockType,
59
+ api: api
60
+ });
61
+ } : function () {
62
+ return /*#__PURE__*/_react.default.createElement(_HeadingButton.HeadingButton, {
63
+ blockType: blockType,
64
+ api: api
65
+ });
66
+ }
67
+ };
68
+ toolbarComponents.push(menuItem);
69
+ }
70
+ });
71
+ return toolbarComponents;
72
+ };
@@ -6,6 +6,7 @@ import { blockTypeMessages as messages } from '@atlaskit/editor-common/messages'
6
6
  import { IconHeading, IconQuote } from '@atlaskit/editor-common/quick-insert';
7
7
  import { ToolbarSize } from '@atlaskit/editor-common/types';
8
8
  import { fg } from '@atlaskit/platform-feature-flags';
9
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
9
10
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
10
11
  import { clearFormatting, insertBlockQuoteWithAnalytics, insertBlockQuoteWithAnalyticsCommand, setBlockTypeWithAnalytics } from './pm-plugins/commands/block-type';
11
12
  import inputRulePlugin from './pm-plugins/input-rule';
@@ -13,6 +14,7 @@ import keymapPlugin from './pm-plugins/keymap';
13
14
  import { createPlugin, pluginKey } from './pm-plugins/main';
14
15
  import { FloatingToolbarComponent } from './pm-plugins/ui/FloatingToolbarComponent';
15
16
  import { PrimaryToolbarComponent } from './pm-plugins/ui/PrimaryToolbarComponent';
17
+ import { getToolbarComponents } from './pm-plugins/ui/ToolbarComponents';
16
18
  const headingPluginOptions = ({
17
19
  formatMessage
18
20
  }, isAllowed, editorAnalyticsApi) => {
@@ -90,7 +92,6 @@ const blockTypePlugin = ({
90
92
  config: options,
91
93
  api
92
94
  }) => {
93
- var _api$primaryToolbar;
94
95
  const primaryToolbarComponent = ({
95
96
  popupsMountPoint,
96
97
  popupsBoundariesElement,
@@ -114,10 +115,16 @@ const blockTypePlugin = ({
114
115
  shouldUseDefaultRole: false
115
116
  });
116
117
  };
117
- api === null || api === void 0 ? void 0 : (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.actions.registerComponent({
118
- name: 'blockType',
119
- component: primaryToolbarComponent
120
- });
118
+ if (expValEquals('platform_editor_toolbar_aifc', 'isEnabled', true)) {
119
+ var _api$toolbar;
120
+ api === null || api === void 0 ? void 0 : (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 ? void 0 : _api$toolbar.actions.registerComponents(getToolbarComponents(api));
121
+ } else {
122
+ var _api$primaryToolbar;
123
+ api === null || api === void 0 ? void 0 : (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 ? void 0 : _api$primaryToolbar.actions.registerComponent({
124
+ name: 'blockType',
125
+ component: primaryToolbarComponent
126
+ });
127
+ }
121
128
  return {
122
129
  name: 'blockType',
123
130
  nodes() {
@@ -194,33 +201,35 @@ const blockTypePlugin = ({
194
201
  },
195
202
  primaryToolbarComponent: !(api !== null && api !== void 0 && api.primaryToolbar) ? primaryToolbarComponent : undefined,
196
203
  pluginsOptions: {
197
- selectionToolbar: () => {
198
- var _api$userPreferences, _api$userPreferences$, _api$userPreferences$2, _api$selectionToolbar, _api$selectionToolbar2, _api$selectionToolbar3;
199
- const toolbarDocking = fg('platform_editor_use_preferences_plugin') ? api === null || api === void 0 ? void 0 : (_api$userPreferences = api.userPreferences) === null || _api$userPreferences === void 0 ? void 0 : (_api$userPreferences$ = _api$userPreferences.sharedState.currentState()) === null || _api$userPreferences$ === void 0 ? void 0 : (_api$userPreferences$2 = _api$userPreferences$.preferences) === null || _api$userPreferences$2 === void 0 ? void 0 : _api$userPreferences$2.toolbarDockingPosition : api === null || api === void 0 ? void 0 : (_api$selectionToolbar = api.selectionToolbar) === null || _api$selectionToolbar === void 0 ? void 0 : (_api$selectionToolbar2 = _api$selectionToolbar.sharedState) === null || _api$selectionToolbar2 === void 0 ? void 0 : (_api$selectionToolbar3 = _api$selectionToolbar2.currentState()) === null || _api$selectionToolbar3 === void 0 ? void 0 : _api$selectionToolbar3.toolbarDocking;
200
- if (toolbarDocking === 'none' && editorExperiment('platform_editor_controls', 'variant1', {
201
- exposure: true
202
- })) {
203
- const toolbarCustom = {
204
- type: 'custom',
205
- render: (view, _idx, _dispatchAnalyticsEvent) => {
206
- if (!view) {
207
- return;
208
- }
209
- return /*#__PURE__*/React.createElement(FloatingToolbarComponent, {
210
- api: api
211
- });
212
- },
213
- fallback: []
214
- };
215
- return {
216
- isToolbarAbove: true,
217
- items: [toolbarCustom],
218
- rank: 8
219
- };
220
- } else {
221
- return undefined;
204
+ ...(!expValEquals('platform_editor_toolbar_aifc', 'isEnabled', true) && {
205
+ selectionToolbar: () => {
206
+ var _api$userPreferences, _api$userPreferences$, _api$userPreferences$2, _api$selectionToolbar, _api$selectionToolbar2, _api$selectionToolbar3;
207
+ const toolbarDocking = fg('platform_editor_use_preferences_plugin') ? api === null || api === void 0 ? void 0 : (_api$userPreferences = api.userPreferences) === null || _api$userPreferences === void 0 ? void 0 : (_api$userPreferences$ = _api$userPreferences.sharedState.currentState()) === null || _api$userPreferences$ === void 0 ? void 0 : (_api$userPreferences$2 = _api$userPreferences$.preferences) === null || _api$userPreferences$2 === void 0 ? void 0 : _api$userPreferences$2.toolbarDockingPosition : api === null || api === void 0 ? void 0 : (_api$selectionToolbar = api.selectionToolbar) === null || _api$selectionToolbar === void 0 ? void 0 : (_api$selectionToolbar2 = _api$selectionToolbar.sharedState) === null || _api$selectionToolbar2 === void 0 ? void 0 : (_api$selectionToolbar3 = _api$selectionToolbar2.currentState()) === null || _api$selectionToolbar3 === void 0 ? void 0 : _api$selectionToolbar3.toolbarDocking;
208
+ if (toolbarDocking === 'none' && editorExperiment('platform_editor_controls', 'variant1', {
209
+ exposure: true
210
+ })) {
211
+ const toolbarCustom = {
212
+ type: 'custom',
213
+ render: (view, _idx, _dispatchAnalyticsEvent) => {
214
+ if (!view) {
215
+ return;
216
+ }
217
+ return /*#__PURE__*/React.createElement(FloatingToolbarComponent, {
218
+ api: api
219
+ });
220
+ },
221
+ fallback: []
222
+ };
223
+ return {
224
+ isToolbarAbove: true,
225
+ items: [toolbarCustom],
226
+ rank: 8
227
+ };
228
+ } else {
229
+ return undefined;
230
+ }
222
231
  }
223
- },
232
+ }),
224
233
  ...(editorExperiment('platform_editor_insertion', 'control') && {
225
234
  quickInsert: intl => {
226
235
  var _api$analytics7, _api$analytics8;
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
2
  import { blockTypeMessages as messages } from '@atlaskit/editor-common/messages';
3
+ import { BLOCK_QUOTE_MENU_ITEM, HEADING_1_MENU_ITEM, HEADING_2_MENU_ITEM, HEADING_3_MENU_ITEM, HEADING_4_MENU_ITEM, HEADING_5_MENU_ITEM, HEADING_6_MENU_ITEM, NORMAL_TEXT_MENU_ITEM, TEXT_STYLES_MENU_SECTION_RANK } from '@atlaskit/editor-common/toolbar';
4
+ import { QuoteIcon } from '@atlaskit/editor-toolbar';
3
5
  import TextHeadingFiveIcon from '@atlaskit/icon-lab/core/text-heading-five';
4
6
  import TextHeadingFourIcon from '@atlaskit/icon-lab/core/text-heading-four';
5
7
  import TextHeadingOneIcon from '@atlaskit/icon-lab/core/text-heading-one';
@@ -107,6 +109,62 @@ export const OTHER = {
107
109
  nodeName: ''
108
110
  };
109
111
  export const TEXT_BLOCK_TYPES = [NORMAL_TEXT, HEADING_1, HEADING_2, HEADING_3, HEADING_4, HEADING_5, HEADING_6];
112
+ var ToolbarBlockTypes = /*#__PURE__*/function (ToolbarBlockTypes) {
113
+ ToolbarBlockTypes["normal"] = "normal";
114
+ ToolbarBlockTypes["heading1"] = "heading1";
115
+ ToolbarBlockTypes["heading2"] = "heading2";
116
+ ToolbarBlockTypes["heading3"] = "heading3";
117
+ ToolbarBlockTypes["heading4"] = "heading4";
118
+ ToolbarBlockTypes["heading5"] = "heading5";
119
+ ToolbarBlockTypes["heading6"] = "heading6";
120
+ ToolbarBlockTypes["blockquote"] = "blockquote";
121
+ return ToolbarBlockTypes;
122
+ }(ToolbarBlockTypes || {});
123
+ export const toolbarBlockTypesWithRank = () => ({
124
+ normal: {
125
+ ...NORMAL_TEXT,
126
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[NORMAL_TEXT_MENU_ITEM.key],
127
+ toolbarKey: NORMAL_TEXT_MENU_ITEM.key
128
+ },
129
+ heading1: {
130
+ ...HEADING_1,
131
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[HEADING_1_MENU_ITEM.key],
132
+ toolbarKey: HEADING_1_MENU_ITEM.key
133
+ },
134
+ heading2: {
135
+ ...HEADING_2,
136
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[HEADING_2_MENU_ITEM.key],
137
+ toolbarKey: HEADING_2_MENU_ITEM.key
138
+ },
139
+ heading3: {
140
+ ...HEADING_3,
141
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[HEADING_3_MENU_ITEM.key],
142
+ toolbarKey: HEADING_3_MENU_ITEM.key
143
+ },
144
+ heading4: {
145
+ ...HEADING_4,
146
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[HEADING_4_MENU_ITEM.key],
147
+ toolbarKey: HEADING_4_MENU_ITEM.key
148
+ },
149
+ heading5: {
150
+ ...HEADING_5,
151
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[HEADING_5_MENU_ITEM.key],
152
+ toolbarKey: HEADING_5_MENU_ITEM.key
153
+ },
154
+ heading6: {
155
+ ...HEADING_6,
156
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[HEADING_6_MENU_ITEM.key],
157
+ toolbarKey: HEADING_6_MENU_ITEM.key
158
+ },
159
+ blockquote: {
160
+ ...BLOCK_QUOTE,
161
+ icon: /*#__PURE__*/React.createElement(QuoteIcon, {
162
+ label: ""
163
+ }),
164
+ toolbarRank: TEXT_STYLES_MENU_SECTION_RANK[BLOCK_QUOTE_MENU_ITEM.key],
165
+ toolbarKey: BLOCK_QUOTE_MENU_ITEM.key
166
+ }
167
+ });
110
168
  export const FORMATTING_NODE_TYPES = ['heading', 'blockquote'];
111
169
  export const FORMATTING_MARK_TYPES = ['em', 'code', 'strike', 'strong', 'underline', 'textColor', 'subsup', 'backgroundColor'];
112
170
  export const WRAPPER_BLOCK_TYPES = [BLOCK_QUOTE, CODE_BLOCK, PANEL];
@@ -0,0 +1,7 @@
1
+ ._11c8140y{font:var(--ds-font-heading-xsmall,normal 600 14px/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
+ ._11c81c04{font:var(--ds-font-heading-xlarge,normal 600 29px/2pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._11c81vhk{font:var(--ds-font-heading-xxsmall,normal 600 9pt/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
4
+ ._11c82smr{font:var(--ds-font-body,normal 400 14px/20px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
5
+ ._11c8lodh{font:var(--ds-font-heading-medium,normal 500 20px/24px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
6
+ ._11c8nbxd{font:var(--ds-font-heading-small,normal 600 1pc/20px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
7
+ ._11c8nf1z{font:var(--ds-font-heading-large,normal 500 24px/28px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
@@ -0,0 +1,59 @@
1
+ /* HeadingButton.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ import "./HeadingButton.compiled.css";
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import React from 'react';
5
+ import { useIntl } from 'react-intl-next';
6
+ import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
7
+ import { formatShortcut, setNormalText, toggleHeading1, toggleHeading2, toggleHeading3, toggleHeading4, toggleHeading5, toggleHeading6 } from '@atlaskit/editor-common/keymaps';
8
+ import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
9
+ import { ToolbarDropdownItem, ToolbarKeyboardShortcutHint } from '@atlaskit/editor-toolbar';
10
+ import { Box } from '@atlaskit/primitives/compiled';
11
+ const headingSizeStylesMap = {
12
+ normal: "_11c82smr",
13
+ heading1: "_11c81c04",
14
+ heading2: "_11c8nf1z",
15
+ heading3: "_11c8lodh",
16
+ heading4: "_11c8nbxd",
17
+ heading5: "_11c8140y",
18
+ heading6: "_11c81vhk"
19
+ };
20
+ const shortcuts = {
21
+ normal: setNormalText,
22
+ heading1: toggleHeading1,
23
+ heading2: toggleHeading2,
24
+ heading3: toggleHeading3,
25
+ heading4: toggleHeading4,
26
+ heading5: toggleHeading5,
27
+ heading6: toggleHeading6
28
+ };
29
+ export const HeadingButton = ({
30
+ blockType,
31
+ api
32
+ }) => {
33
+ const {
34
+ formatMessage
35
+ } = useIntl();
36
+ const currentBlockType = useSharedPluginStateSelector(api, 'blockType.currentBlockType');
37
+ const availableBlockTypesInDropdown = useSharedPluginStateSelector(api, 'blockType.availableBlockTypesInDropdown');
38
+ if (!(availableBlockTypesInDropdown !== null && availableBlockTypesInDropdown !== void 0 && availableBlockTypesInDropdown.some(availableBlockType => availableBlockType.name === blockType.name))) {
39
+ return null;
40
+ }
41
+ const fromBlockQuote = (currentBlockType === null || currentBlockType === void 0 ? void 0 : currentBlockType.name) === 'blockquote';
42
+ const onClick = () => {
43
+ var _api$core, _api$blockType, _api$blockType$comman;
44
+ api === null || api === void 0 ? void 0 : (_api$core = api.core) === null || _api$core === void 0 ? void 0 : _api$core.actions.execute(api === null || api === void 0 ? void 0 : (_api$blockType = api.blockType) === null || _api$blockType === void 0 ? void 0 : (_api$blockType$comman = _api$blockType.commands) === null || _api$blockType$comman === void 0 ? void 0 : _api$blockType$comman.setTextLevel(blockType.name, INPUT_METHOD.TOOLBAR, fromBlockQuote));
45
+ };
46
+ const shortcut = formatShortcut(shortcuts[blockType.name]);
47
+ const isSelected = currentBlockType === blockType;
48
+ return /*#__PURE__*/React.createElement(ToolbarDropdownItem, {
49
+ elemBefore: blockType.icon,
50
+ elemAfter: shortcut ? /*#__PURE__*/React.createElement(ToolbarKeyboardShortcutHint, {
51
+ shortcut: shortcut
52
+ }) : undefined,
53
+ onClick: onClick,
54
+ isSelected: isSelected,
55
+ ariaKeyshortcuts: shortcut
56
+ }, /*#__PURE__*/React.createElement(Box, {
57
+ xcss: headingSizeStylesMap[blockType.name]
58
+ }, formatMessage(blockType.title)));
59
+ };