@atlaskit/editor-plugin-text-formatting 2.1.3 → 2.1.5

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 (44) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/textFormattingPlugin.js +1 -10
  3. package/dist/cjs/ui/FloatingToolbarComponent.js +23 -7
  4. package/dist/cjs/ui/Toolbar/constants.js +2 -1
  5. package/dist/cjs/ui/Toolbar/dropdown-menu.js +9 -4
  6. package/dist/cjs/ui/Toolbar/{bold-button.js → dropdown-toolbar-button.js} +6 -5
  7. package/dist/cjs/ui/Toolbar/hooks/clear-formatting-icon.js +6 -0
  8. package/dist/cjs/ui/Toolbar/hooks/formatting-icons.js +45 -4
  9. package/dist/cjs/ui/Toolbar/hooks/responsive-toolbar-buttons.js +5 -23
  10. package/dist/cjs/ui/Toolbar/hooks/use-icon-list.js +34 -0
  11. package/dist/cjs/ui/Toolbar/icons.js +64 -0
  12. package/dist/es2019/textFormattingPlugin.js +1 -10
  13. package/dist/es2019/ui/FloatingToolbarComponent.js +21 -7
  14. package/dist/es2019/ui/Toolbar/constants.js +1 -0
  15. package/dist/es2019/ui/Toolbar/dropdown-menu.js +7 -4
  16. package/dist/es2019/ui/Toolbar/{bold-button.js → dropdown-toolbar-button.js} +5 -4
  17. package/dist/es2019/ui/Toolbar/hooks/clear-formatting-icon.js +5 -0
  18. package/dist/es2019/ui/Toolbar/hooks/formatting-icons.js +45 -1
  19. package/dist/es2019/ui/Toolbar/hooks/responsive-toolbar-buttons.js +5 -21
  20. package/dist/es2019/ui/Toolbar/hooks/use-icon-list.js +27 -0
  21. package/dist/es2019/ui/Toolbar/icons.js +49 -0
  22. package/dist/esm/textFormattingPlugin.js +1 -10
  23. package/dist/esm/ui/FloatingToolbarComponent.js +20 -7
  24. package/dist/esm/ui/Toolbar/constants.js +1 -0
  25. package/dist/esm/ui/Toolbar/dropdown-menu.js +9 -4
  26. package/dist/esm/ui/Toolbar/{bold-button.js → dropdown-toolbar-button.js} +5 -4
  27. package/dist/esm/ui/Toolbar/hooks/clear-formatting-icon.js +5 -0
  28. package/dist/esm/ui/Toolbar/hooks/formatting-icons.js +45 -1
  29. package/dist/esm/ui/Toolbar/hooks/responsive-toolbar-buttons.js +5 -22
  30. package/dist/esm/ui/Toolbar/hooks/use-icon-list.js +27 -0
  31. package/dist/esm/ui/Toolbar/icons.js +56 -0
  32. package/dist/types/ui/FloatingToolbarComponent.d.ts +7 -3
  33. package/dist/types/ui/Toolbar/constants.d.ts +1 -0
  34. package/dist/{types-ts4.5/ui/Toolbar/bold-button.d.ts → types/ui/Toolbar/dropdown-toolbar-button.d.ts} +4 -3
  35. package/dist/types/ui/Toolbar/hooks/responsive-toolbar-buttons.d.ts +1 -5
  36. package/dist/types/ui/Toolbar/hooks/use-icon-list.d.ts +11 -0
  37. package/dist/types/ui/Toolbar/icons.d.ts +4 -0
  38. package/dist/types-ts4.5/ui/FloatingToolbarComponent.d.ts +7 -3
  39. package/dist/types-ts4.5/ui/Toolbar/constants.d.ts +1 -0
  40. package/dist/{types/ui/Toolbar/bold-button.d.ts → types-ts4.5/ui/Toolbar/dropdown-toolbar-button.d.ts} +4 -3
  41. package/dist/types-ts4.5/ui/Toolbar/hooks/responsive-toolbar-buttons.d.ts +1 -5
  42. package/dist/types-ts4.5/ui/Toolbar/hooks/use-icon-list.d.ts +11 -0
  43. package/dist/types-ts4.5/ui/Toolbar/icons.d.ts +4 -0
  44. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/editor-plugin-text-formatting
2
2
 
3
+ ## 2.1.5
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 2.1.4
10
+
11
+ ### Patch Changes
12
+
13
+ - [#126339](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/126339)
14
+ [`d41ba7595dcd2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d41ba7595dcd2) -
15
+ [ux] Updates the look of Text Formatting Contextual toolbar dropdowns.
16
+
3
17
  ## 2.1.3
4
18
 
5
19
  ### Patch Changes
@@ -134,16 +134,7 @@ var textFormattingPlugin = exports.textFormattingPlugin = function textFormattin
134
134
  pluginsOptions: {
135
135
  selectionToolbar: function selectionToolbar() {
136
136
  var _api$selectionToolbar;
137
- if ((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) === 'top' && (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1', {
138
- exposure: true
139
- })) {
140
- return undefined;
141
- }
142
- if ((0, _experiments.editorExperiment)('contextual_formatting_toolbar', true, {
143
- exposure: true
144
- }) || (0, _experiments.editorExperiment)('platform_editor_contextual_formatting_toolbar_v2', 'variant1', {
145
- exposure: true
146
- }) || (0, _experiments.editorExperiment)('platform_editor_contextual_formatting_toolbar_v2', 'variant2', {
137
+ if ((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) === 'none' && (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1', {
147
138
  exposure: true
148
139
  })) {
149
140
  var toolbarCustom = {
@@ -1,19 +1,25 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.FloatingToolbarTextFormalWithIntl = void 0;
7
- var _react = require("react");
8
+ var _react = _interopRequireWildcard(require("react"));
8
9
  var _react2 = require("@emotion/react");
9
10
  var _reactIntlNext = require("react-intl-next");
10
11
  var _hooks = require("@atlaskit/editor-common/hooks");
11
12
  var _types = require("@atlaskit/editor-common/types");
12
13
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
14
+ var _constants = require("./Toolbar/constants");
13
15
  var _dropdownMenu = require("./Toolbar/dropdown-menu");
14
16
  var _clearFormattingIcon = require("./Toolbar/hooks/clear-formatting-icon");
15
17
  var _formattingIcons = require("./Toolbar/hooks/formatting-icons");
18
+ var _useIconList2 = require("./Toolbar/hooks/use-icon-list");
19
+ var _singleToolbarButtons = require("./Toolbar/single-toolbar-buttons");
16
20
  var _types2 = require("./Toolbar/types");
21
+ 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); }
22
+ 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; }
17
23
  /**
18
24
  * @jsxRuntime classic
19
25
  * @jsx jsx
@@ -25,7 +31,7 @@ var FloatingToolbarSettings = {
25
31
  disabled: false,
26
32
  isReducedSpacing: true,
27
33
  shouldUseResponsiveToolbar: false,
28
- toolbarSize: _types.ToolbarSize.XXXS,
34
+ toolbarSize: _types.ToolbarSize.S,
29
35
  hasMoreButton: false,
30
36
  moreButtonLabel: '',
31
37
  toolbarType: _types2.ToolbarType.FLOATING
@@ -45,6 +51,12 @@ var FloatingToolbarTextFormat = function FloatingToolbarTextFormat(_ref) {
45
51
  textFormattingState: textFormattingState,
46
52
  toolbarType: FloatingToolbarSettings.toolbarType
47
53
  });
54
+ var _useIconList = (0, _useIconList2.useIconList)({
55
+ icons: defaultIcons,
56
+ iconTypeList: _constants.DefaultFloatingToolbarButtonsNext
57
+ }),
58
+ dropdownItems = _useIconList.dropdownItems,
59
+ singleItems = _useIconList.singleItems;
48
60
  var clearIcon = (0, _clearFormattingIcon.useClearIcon)({
49
61
  textFormattingState: textFormattingState,
50
62
  intl: intl,
@@ -54,16 +66,20 @@ var FloatingToolbarTextFormat = function FloatingToolbarTextFormat(_ref) {
54
66
  var items = (0, _react.useMemo)(function () {
55
67
  if (!clearIcon) {
56
68
  return [{
57
- items: defaultIcons
69
+ items: dropdownItems
58
70
  }];
59
71
  }
60
72
  return [{
61
- items: defaultIcons
73
+ items: dropdownItems
62
74
  }, {
63
75
  items: [clearIcon]
64
76
  }];
65
- }, [clearIcon, defaultIcons]);
66
- return (0, _react2.jsx)(_dropdownMenu.FormattingTextDropdownMenu, {
77
+ }, [clearIcon, dropdownItems]);
78
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_singleToolbarButtons.SingleToolbarButtons, {
79
+ items: singleItems,
80
+ editorView: editorView,
81
+ isReducedSpacing: false
82
+ }), (0, _react2.jsx)(_dropdownMenu.FormattingTextDropdownMenu, {
67
83
  editorView: editorView,
68
84
  items: items,
69
85
  isReducedSpacing: (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? false : FloatingToolbarSettings.isReducedSpacing,
@@ -72,6 +88,6 @@ var FloatingToolbarTextFormat = function FloatingToolbarTextFormat(_ref) {
72
88
  hasMoreButton: FloatingToolbarSettings.hasMoreButton,
73
89
  intl: intl,
74
90
  toolbarType: FloatingToolbarSettings.toolbarType
75
- });
91
+ }));
76
92
  };
77
93
  var FloatingToolbarTextFormalWithIntl = exports.FloatingToolbarTextFormalWithIntl = (0, _reactIntlNext.injectIntl)(FloatingToolbarTextFormat);
@@ -4,11 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.ResponsiveCustomMenuNext = exports.ResponsiveCustomMenu = exports.ResponsiveCustomButtonToolbarNext = exports.ResponsiveCustomButtonToolbar = exports.DefaultButtonsToolbarNext = exports.DefaultButtonsToolbar = exports.DefaultButtonsMenuNext = exports.DefaultButtonsMenu = void 0;
7
+ exports.ResponsiveCustomMenuNext = exports.ResponsiveCustomMenu = exports.ResponsiveCustomButtonToolbarNext = exports.ResponsiveCustomButtonToolbar = exports.DefaultFloatingToolbarButtonsNext = exports.DefaultButtonsToolbarNext = exports.DefaultButtonsToolbar = exports.DefaultButtonsMenuNext = exports.DefaultButtonsMenu = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _types = require("@atlaskit/editor-common/types");
10
10
  var _types2 = require("./types");
11
11
  var DefaultButtonsToolbar = exports.DefaultButtonsToolbar = [_types2.IconTypes.strong, _types2.IconTypes.em];
12
+ var DefaultFloatingToolbarButtonsNext = exports.DefaultFloatingToolbarButtonsNext = [_types2.IconTypes.strong];
12
13
  var DefaultButtonsToolbarNext = exports.DefaultButtonsToolbarNext = [_types2.IconTypes.strong, _types2.IconTypes.em, _types2.IconTypes.underline];
13
14
  var DefaultButtonsMenu = exports.DefaultButtonsMenu = [_types2.IconTypes.underline, _types2.IconTypes.strike, _types2.IconTypes.code, _types2.IconTypes.subscript, _types2.IconTypes.superscript];
14
15
  var DefaultButtonsMenuNext = exports.DefaultButtonsMenuNext = [_types2.IconTypes.strike, _types2.IconTypes.code, _types2.IconTypes.subscript, _types2.IconTypes.superscript];
@@ -11,7 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
  var _messages = require("@atlaskit/editor-common/messages");
12
12
  var _uiMenu = require("@atlaskit/editor-common/ui-menu");
13
13
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
14
- var _boldButton = require("./bold-button");
14
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
15
+ var _dropdownToolbarButton = require("./dropdown-toolbar-button");
15
16
  var _menuState = require("./hooks/menu-state");
16
17
  var _moreButton = require("./more-button");
17
18
  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); }
@@ -48,6 +49,9 @@ var FormattingTextDropdownMenu = exports.FormattingTextDropdownMenu = /*#__PURE_
48
49
  }
49
50
  }
50
51
  }, [editorView.state, editorView.dispatch, closeMenu]);
52
+ var activeItem = items[0].items.find(function (item) {
53
+ return item.isActive;
54
+ });
51
55
  return /*#__PURE__*/_react.default.createElement(_uiMenu.DropdownMenuWithKeyboardNavigation, {
52
56
  mountTo: popupsMountPoint,
53
57
  onOpenChange: closeMenu,
@@ -58,7 +62,7 @@ var FormattingTextDropdownMenu = exports.FormattingTextDropdownMenu = /*#__PURE_
58
62
  items: items,
59
63
  zIndex: _editorSharedStyles.akEditorMenuZIndex,
60
64
  fitHeight: 188,
61
- fitWidth: 136,
65
+ fitWidth: (0, _experiments.editorExperiment)('platform_editor_controls', 'control') ? 136 : 230,
62
66
  shouldUseDefaultRole: true,
63
67
  section: {
64
68
  hasSeparator: true
@@ -86,7 +90,7 @@ var FormattingTextDropdownMenu = exports.FormattingTextDropdownMenu = /*#__PURE_
86
90
  }
87
91
  },
88
92
  "aria-expanded": isMenuOpen
89
- }) : /*#__PURE__*/_react.default.createElement(_boldButton.BoldToolbarButton, {
93
+ }) : /*#__PURE__*/_react.default.createElement(_dropdownToolbarButton.DropdownToolbarButton, {
90
94
  isReducedSpacing: isReducedSpacing,
91
95
  isDisabled: false,
92
96
  isSelected: isMenuOpen,
@@ -104,6 +108,7 @@ var FormattingTextDropdownMenu = exports.FormattingTextDropdownMenu = /*#__PURE_
104
108
  setIsOpenedByKeyboard(true);
105
109
  }
106
110
  },
107
- toolbarType: toolbarType
111
+ toolbarType: toolbarType,
112
+ iconBefore: activeItem ? activeItem === null || activeItem === void 0 ? void 0 : activeItem.elemBefore : undefined
108
113
  }));
109
114
  });
@@ -4,12 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.BoldToolbarButton = void 0;
7
+ exports.DropdownToolbarButton = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@emotion/react");
10
10
  var _styles = require("@atlaskit/editor-common/styles");
11
11
  var _uiMenu = require("@atlaskit/editor-common/ui-menu");
12
- var _textBoldEditorBold = _interopRequireDefault(require("@atlaskit/icon/core/migration/text-bold--editor-bold"));
12
+ var _textItalicEditorItalic = _interopRequireDefault(require("@atlaskit/icon/core/migration/text-italic--editor-italic"));
13
13
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/utility/migration/chevron-down"));
14
14
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
15
  var _types = require("./types");
@@ -20,7 +20,7 @@ var _types = require("./types");
20
20
 
21
21
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
22
 
23
- var BoldToolbarButton = exports.BoldToolbarButton = function BoldToolbarButton(_ref) {
23
+ var DropdownToolbarButton = exports.DropdownToolbarButton = function DropdownToolbarButton(_ref) {
24
24
  var label = _ref.label,
25
25
  isReducedSpacing = _ref.isReducedSpacing,
26
26
  isDisabled = _ref.isDisabled,
@@ -28,7 +28,8 @@ var BoldToolbarButton = exports.BoldToolbarButton = function BoldToolbarButton(_
28
28
  ariaExpanded = _ref['aria-expanded'],
29
29
  onClick = _ref.onClick,
30
30
  onKeyDown = _ref.onKeyDown,
31
- toolbarType = _ref.toolbarType;
31
+ toolbarType = _ref.toolbarType,
32
+ iconBefore = _ref.iconBefore;
32
33
  var reducedSpacing = toolbarType === _types.ToolbarType.FLOATING ? 'compact' : 'none';
33
34
  return (0, _react2.jsx)(_uiMenu.ToolbarButton
34
35
  // eslint-disable-next-line @atlaskit/design-system/no-unsafe-style-overrides, @atlaskit/ui-styling-standard/no-imported-style-values
@@ -52,7 +53,7 @@ var BoldToolbarButton = exports.BoldToolbarButton = function BoldToolbarButton(_
52
53
  _styles.triggerWrapperStylesWithPadding :
53
54
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values
54
55
  _styles.triggerWrapperStyles
55
- }, (0, _react2.jsx)(_textBoldEditorBold.default, {
56
+ }, iconBefore ? iconBefore : (0, _react2.jsx)(_textItalicEditorItalic.default, {
56
57
  color: "currentColor",
57
58
  spacing: "spacious",
58
59
  label: ""
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -9,6 +10,8 @@ var _react2 = require("@emotion/react");
9
10
  var _keymaps = require("@atlaskit/editor-common/keymaps");
10
11
  var _messages = require("@atlaskit/editor-common/messages");
11
12
  var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
13
+ var _tableCellClear = _interopRequireDefault(require("@atlaskit/icon/core/table-cell-clear"));
14
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
12
15
  var _clearFormatting = require("../../../editor-commands/clear-formatting");
13
16
  var _inputMethodUtils = require("../input-method-utils");
14
17
  /**
@@ -37,6 +40,9 @@ var useClearIcon = exports.useClearIcon = function useClearIcon(_ref) {
37
40
  key: 'clearFormatting',
38
41
  command: clearFormattingToolbar,
39
42
  content: clearFormattingLabel,
43
+ elemBefore: (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? (0, _react2.jsx)(_tableCellClear.default, {
44
+ label: ""
45
+ }) : undefined,
40
46
  elemAfter:
41
47
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
42
48
  (0, _react2.jsx)("div", {
@@ -1,27 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.useHasFormattingActived = exports.useFormattingIcons = void 0;
9
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = require("react");
11
10
  var _react2 = require("@emotion/react");
12
11
  var _analytics = require("@atlaskit/editor-common/analytics");
13
12
  var _keymaps = require("@atlaskit/editor-common/keymaps");
14
13
  var _messages = require("@atlaskit/editor-common/messages");
15
14
  var _preset = require("@atlaskit/editor-common/preset");
16
15
  var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
16
+ var _angleBracketsEditorCode = _interopRequireDefault(require("@atlaskit/icon/core/migration/angle-brackets--editor-code"));
17
17
  var _textBoldEditorBold = _interopRequireDefault(require("@atlaskit/icon/core/migration/text-bold--editor-bold"));
18
18
  var _textItalicEditorItalic = _interopRequireDefault(require("@atlaskit/icon/core/migration/text-italic--editor-italic"));
19
19
  var _textUnderline = _interopRequireDefault(require("@atlaskit/icon/core/text-underline"));
20
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
20
21
  var _commands = require("../../../pm-plugins/commands");
22
+ var _icons = require("../icons");
21
23
  var _inputMethodUtils = require("../input-method-utils");
22
24
  var _types = require("../types");
23
- 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); }
24
- 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; }
25
25
  /**
26
26
  * @jsxRuntime classic
27
27
  * @jsx jsx
@@ -95,6 +95,45 @@ var IconButtons = function IconButtons(editorAnalyticsAPI, toolbarType) {
95
95
  }
96
96
  };
97
97
  };
98
+ var IconBefore = {
99
+ strong: {
100
+ icon: (0, _react2.jsx)(_textBoldEditorBold.default, {
101
+ color: "currentColor",
102
+ spacing: "spacious",
103
+ label: ""
104
+ })
105
+ },
106
+ em: {
107
+ icon: (0, _react2.jsx)(_textItalicEditorItalic.default, {
108
+ color: "currentColor",
109
+ spacing: "spacious",
110
+ label: ""
111
+ })
112
+ },
113
+ underline: {
114
+ icon: (0, _react2.jsx)(_textUnderline.default, {
115
+ color: "currentColor",
116
+ spacing: "spacious",
117
+ label: ""
118
+ })
119
+ },
120
+ strike: {
121
+ icon: (0, _react2.jsx)(_icons.Strikethrough, null)
122
+ },
123
+ code: {
124
+ icon: (0, _react2.jsx)(_angleBracketsEditorCode.default, {
125
+ color: "currentColor",
126
+ spacing: "spacious",
127
+ label: ""
128
+ })
129
+ },
130
+ subscript: {
131
+ icon: (0, _react2.jsx)(_icons.Subscript, null)
132
+ },
133
+ superscript: {
134
+ icon: (0, _react2.jsx)(_icons.Superscript, null)
135
+ }
136
+ };
98
137
  var getIcon = function getIcon(_ref) {
99
138
  var iconType = _ref.iconType,
100
139
  isDisabled = _ref.isDisabled,
@@ -103,6 +142,7 @@ var getIcon = function getIcon(_ref) {
103
142
  editorAnalyticsAPI = _ref.editorAnalyticsAPI,
104
143
  toolbarType = _ref.toolbarType;
105
144
  var icon = IconButtons(editorAnalyticsAPI, toolbarType)[iconType];
145
+ var iconBefore = IconBefore[iconType].icon;
106
146
  var content = intl.formatMessage(icon.message);
107
147
  var tooltipKeymap = icon.tooltipKeymap;
108
148
  return {
@@ -116,6 +156,7 @@ var getIcon = function getIcon(_ref) {
116
156
  description: content,
117
157
  keymap: tooltipKeymap
118
158
  }) : undefined,
159
+ elemBefore: (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') ? iconBefore : undefined,
119
160
  elemAfter: tooltipKeymap ?
120
161
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
121
162
  (0, _react2.jsx)("div", {
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.useResponsiveToolbarButtons = exports.useResponsiveIconTypeMenu = exports.useResponsiveIconTypeButtons = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
7
  var _react = require("react");
10
8
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
11
9
  var _constants = require("../constants");
10
+ var _useIconList = require("./use-icon-list");
12
11
  var useResponsiveIconTypeButtons = exports.useResponsiveIconTypeButtons = function useResponsiveIconTypeButtons(_ref) {
13
12
  var toolbarSize = _ref.toolbarSize,
14
13
  responsivenessEnabled = _ref.responsivenessEnabled;
@@ -41,26 +40,9 @@ var useResponsiveToolbarButtons = exports.useResponsiveToolbarButtons = function
41
40
  toolbarSize: toolbarSize,
42
41
  responsivenessEnabled: responsivenessEnabled
43
42
  });
44
- var iconsPosition = (0, _react.useMemo)(function () {
45
- return icons.reduce(function (acc, icon) {
46
- if (!icon || !icon.iconMark) {
47
- return acc;
48
- }
49
- var isIconSingleButton = iconTypeList.includes(icon.iconMark);
50
- if (isIconSingleButton) {
51
- return {
52
- dropdownItems: acc.dropdownItems,
53
- singleItems: [].concat((0, _toConsumableArray2.default)(acc.singleItems), [icon])
54
- };
55
- }
56
- return {
57
- dropdownItems: [].concat((0, _toConsumableArray2.default)(acc.dropdownItems), [icon]),
58
- singleItems: acc.singleItems
59
- };
60
- }, {
61
- dropdownItems: [],
62
- singleItems: []
63
- });
64
- }, [icons, iconTypeList]);
43
+ var iconsPosition = (0, _useIconList.useIconList)({
44
+ icons: icons,
45
+ iconTypeList: iconTypeList
46
+ });
65
47
  return iconsPosition;
66
48
  };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useIconList = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _react = require("react");
10
+ var useIconList = exports.useIconList = function useIconList(_ref) {
11
+ var icons = _ref.icons,
12
+ iconTypeList = _ref.iconTypeList;
13
+ return (0, _react.useMemo)(function () {
14
+ return icons.reduce(function (acc, icon) {
15
+ if (!icon || !icon.iconMark) {
16
+ return acc;
17
+ }
18
+ var isIconSingleButton = iconTypeList.includes(icon.iconMark);
19
+ if (isIconSingleButton) {
20
+ return {
21
+ dropdownItems: acc.dropdownItems,
22
+ singleItems: [].concat((0, _toConsumableArray2.default)(acc.singleItems), [icon])
23
+ };
24
+ }
25
+ return {
26
+ dropdownItems: [].concat((0, _toConsumableArray2.default)(acc.dropdownItems), [icon]),
27
+ singleItems: acc.singleItems
28
+ };
29
+ }, {
30
+ dropdownItems: [],
31
+ singleItems: []
32
+ });
33
+ }, [icons, iconTypeList]);
34
+ };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Superscript = exports.Subscript = exports.Strikethrough = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ /* eslint-disable @atlaskit/ui-styling-standard/enforce-style-prop */
10
+
11
+ var SVGContainer = function SVGContainer(_ref) {
12
+ var children = _ref.children;
13
+ return /*#__PURE__*/_react.default.createElement("span", {
14
+ style: {
15
+ width: "var(--ds-space-300, 24px)",
16
+ height: "var(--ds-space-300, 24px)",
17
+ display: 'flex',
18
+ justifyContent: 'center',
19
+ alignItems: 'center'
20
+ }
21
+ }, children);
22
+ };
23
+ var Strikethrough = exports.Strikethrough = function Strikethrough() {
24
+ return /*#__PURE__*/_react.default.createElement(SVGContainer, null, /*#__PURE__*/_react.default.createElement("svg", {
25
+ width: "16",
26
+ height: "16",
27
+ viewBox: "0 0 16 16",
28
+ fill: "none",
29
+ xmlns: "http://www.w3.org/2000/svg"
30
+ }, /*#__PURE__*/_react.default.createElement("path", {
31
+ "fill-rule": "evenodd",
32
+ "clip-rule": "evenodd",
33
+ d: "M8.39644 7.25348H13.9004V7.25421H15V8.75421H1V7.25421H2.125V7.25H4.96062C4.45271 6.59457 4.15039 5.77182 4.15039 4.87845C4.15039 2.73833 5.8853 1.00342 8.02542 1.00342H11.9004V2.50342H8.02542C6.71373 2.50342 5.65039 3.56676 5.65039 4.87845C5.65039 6.14664 6.64437 7.18267 7.89576 7.25H8.23074C8.28625 7.25 8.3415 7.25117 8.39644 7.25348ZM12.1058 11.125C12.1058 10.6424 12.0175 10.1804 11.8563 9.75421H10.1705C10.4446 10.1415 10.6058 10.6144 10.6058 11.125C10.6058 12.4367 9.54243 13.5001 8.23074 13.5001H3.15064V15.0001H8.23074C10.3709 15.0001 12.1058 13.2652 12.1058 11.125Z",
34
+ fill: "#44546F"
35
+ })));
36
+ };
37
+ var Subscript = exports.Subscript = function Subscript() {
38
+ return /*#__PURE__*/_react.default.createElement(SVGContainer, null, /*#__PURE__*/_react.default.createElement("svg", {
39
+ width: "16",
40
+ height: "16",
41
+ viewBox: "0 0 16 16",
42
+ fill: "none",
43
+ xmlns: "http://www.w3.org/2000/svg"
44
+ }, /*#__PURE__*/_react.default.createElement("path", {
45
+ "fill-rule": "evenodd",
46
+ "clip-rule": "evenodd",
47
+ d: "M5.10609 6.54799L7.88895 2.09448L9.16102 2.88936L5.99047 7.9633L9.21219 13.1191L7.94012 13.914L5.10609 9.37861L2.27207 13.914L1 13.1191L4.2217 7.9633L1.05117 2.88939L2.32324 2.09451L5.10609 6.54799ZM10.858 15.0001V13.696H12.3499V10.3153L10.8418 11.4343V9.86413L12.3138 8.83114H13.8161V13.696H14.9999V15.0001H10.858Z",
48
+ fill: "#44546F"
49
+ })));
50
+ };
51
+ var Superscript = exports.Superscript = function Superscript() {
52
+ return /*#__PURE__*/_react.default.createElement(SVGContainer, null, /*#__PURE__*/_react.default.createElement("svg", {
53
+ width: "16",
54
+ height: "16",
55
+ viewBox: "0 0 16 16",
56
+ fill: "none",
57
+ xmlns: "http://www.w3.org/2000/svg"
58
+ }, /*#__PURE__*/_react.default.createElement("path", {
59
+ "fill-rule": "evenodd",
60
+ "clip-rule": "evenodd",
61
+ d: "M10.858 7.16892V5.86487H12.3499V2.4842L10.8418 3.60312V2.03298L12.3138 1H13.8161V5.86487H14.9999V7.16892H10.858ZM5.10609 6.5479L7.88895 2.09439L9.16102 2.88927L5.99047 7.96321L9.21219 13.119L7.94012 13.9139L5.10609 9.37852L2.27207 13.9139L1 13.119L4.2217 7.96321L1.05117 2.8893L2.32324 2.09442L5.10609 6.5479Z",
62
+ fill: "#44546F"
63
+ })));
64
+ };
@@ -128,16 +128,7 @@ export const textFormattingPlugin = ({
128
128
  pluginsOptions: {
129
129
  selectionToolbar: () => {
130
130
  var _api$selectionToolbar, _api$selectionToolbar2, _api$selectionToolbar3;
131
- if ((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) === 'top' && editorExperiment('platform_editor_controls', 'variant1', {
132
- exposure: true
133
- })) {
134
- return undefined;
135
- }
136
- if (editorExperiment('contextual_formatting_toolbar', true, {
137
- exposure: true
138
- }) || editorExperiment('platform_editor_contextual_formatting_toolbar_v2', 'variant1', {
139
- exposure: true
140
- }) || editorExperiment('platform_editor_contextual_formatting_toolbar_v2', 'variant2', {
131
+ if ((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) === 'none' && editorExperiment('platform_editor_controls', 'variant1', {
141
132
  exposure: true
142
133
  })) {
143
134
  const toolbarCustom = {
@@ -2,7 +2,7 @@
2
2
  * @jsxRuntime classic
3
3
  * @jsx jsx
4
4
  */
5
- import { useMemo } from 'react';
5
+ import React, { useMemo } from 'react';
6
6
 
7
7
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
8
  import { jsx } from '@emotion/react';
@@ -10,15 +10,18 @@ import { injectIntl } from 'react-intl-next';
10
10
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
11
11
  import { ToolbarSize } from '@atlaskit/editor-common/types';
12
12
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
13
+ import { DefaultFloatingToolbarButtonsNext } from './Toolbar/constants';
13
14
  import { FormattingTextDropdownMenu } from './Toolbar/dropdown-menu';
14
15
  import { useClearIcon } from './Toolbar/hooks/clear-formatting-icon';
15
16
  import { useFormattingIcons } from './Toolbar/hooks/formatting-icons';
17
+ import { useIconList } from './Toolbar/hooks/use-icon-list';
18
+ import { SingleToolbarButtons } from './Toolbar/single-toolbar-buttons';
16
19
  import { ToolbarType } from './Toolbar/types';
17
20
  const FloatingToolbarSettings = {
18
21
  disabled: false,
19
22
  isReducedSpacing: true,
20
23
  shouldUseResponsiveToolbar: false,
21
- toolbarSize: ToolbarSize.XXXS,
24
+ toolbarSize: ToolbarSize.S,
22
25
  hasMoreButton: false,
23
26
  moreButtonLabel: '',
24
27
  toolbarType: ToolbarType.FLOATING
@@ -40,6 +43,13 @@ const FloatingToolbarTextFormat = ({
40
43
  textFormattingState,
41
44
  toolbarType: FloatingToolbarSettings.toolbarType
42
45
  });
46
+ const {
47
+ dropdownItems,
48
+ singleItems
49
+ } = useIconList({
50
+ icons: defaultIcons,
51
+ iconTypeList: DefaultFloatingToolbarButtonsNext
52
+ });
43
53
  const clearIcon = useClearIcon({
44
54
  textFormattingState,
45
55
  intl,
@@ -49,16 +59,20 @@ const FloatingToolbarTextFormat = ({
49
59
  const items = useMemo(() => {
50
60
  if (!clearIcon) {
51
61
  return [{
52
- items: defaultIcons
62
+ items: dropdownItems
53
63
  }];
54
64
  }
55
65
  return [{
56
- items: defaultIcons
66
+ items: dropdownItems
57
67
  }, {
58
68
  items: [clearIcon]
59
69
  }];
60
- }, [clearIcon, defaultIcons]);
61
- return jsx(FormattingTextDropdownMenu, {
70
+ }, [clearIcon, dropdownItems]);
71
+ return jsx(React.Fragment, null, jsx(SingleToolbarButtons, {
72
+ items: singleItems,
73
+ editorView: editorView,
74
+ isReducedSpacing: false
75
+ }), jsx(FormattingTextDropdownMenu, {
62
76
  editorView: editorView,
63
77
  items: items,
64
78
  isReducedSpacing: editorExperiment('platform_editor_controls', 'variant1') ? false : FloatingToolbarSettings.isReducedSpacing,
@@ -67,6 +81,6 @@ const FloatingToolbarTextFormat = ({
67
81
  hasMoreButton: FloatingToolbarSettings.hasMoreButton,
68
82
  intl: intl,
69
83
  toolbarType: FloatingToolbarSettings.toolbarType
70
- });
84
+ }));
71
85
  };
72
86
  export const FloatingToolbarTextFormalWithIntl = injectIntl(FloatingToolbarTextFormat);
@@ -1,6 +1,7 @@
1
1
  import { ToolbarSize } from '@atlaskit/editor-common/types';
2
2
  import { IconTypes } from './types';
3
3
  export const DefaultButtonsToolbar = [IconTypes.strong, IconTypes.em];
4
+ export const DefaultFloatingToolbarButtonsNext = [IconTypes.strong];
4
5
  export const DefaultButtonsToolbarNext = [IconTypes.strong, IconTypes.em, IconTypes.underline];
5
6
  export const DefaultButtonsMenu = [IconTypes.underline, IconTypes.strike, IconTypes.code, IconTypes.subscript, IconTypes.superscript];
6
7
  export const DefaultButtonsMenuNext = [IconTypes.strike, IconTypes.code, IconTypes.subscript, IconTypes.superscript];
@@ -2,7 +2,8 @@ import React, { useCallback, useState } from 'react';
2
2
  import { toolbarMessages } from '@atlaskit/editor-common/messages';
3
3
  import { DropdownMenuWithKeyboardNavigation as DropdownMenu } from '@atlaskit/editor-common/ui-menu';
4
4
  import { akEditorMenuZIndex } from '@atlaskit/editor-shared-styles';
5
- import { BoldToolbarButton } from './bold-button';
5
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
6
+ import { DropdownToolbarButton } from './dropdown-toolbar-button';
6
7
  import { useMenuState } from './hooks/menu-state';
7
8
  import { MoreButton } from './more-button';
8
9
  export const FormattingTextDropdownMenu = /*#__PURE__*/React.memo(({
@@ -31,6 +32,7 @@ export const FormattingTextDropdownMenu = /*#__PURE__*/React.memo(({
31
32
  }
32
33
  }
33
34
  }, [editorView.state, editorView.dispatch, closeMenu]);
35
+ const activeItem = items[0].items.find(item => item.isActive);
34
36
  return /*#__PURE__*/React.createElement(DropdownMenu, {
35
37
  mountTo: popupsMountPoint,
36
38
  onOpenChange: closeMenu,
@@ -41,7 +43,7 @@ export const FormattingTextDropdownMenu = /*#__PURE__*/React.memo(({
41
43
  items: items,
42
44
  zIndex: akEditorMenuZIndex,
43
45
  fitHeight: 188,
44
- fitWidth: 136,
46
+ fitWidth: editorExperiment('platform_editor_controls', 'control') ? 136 : 230,
45
47
  shouldUseDefaultRole: true,
46
48
  section: {
47
49
  hasSeparator: true
@@ -69,7 +71,7 @@ export const FormattingTextDropdownMenu = /*#__PURE__*/React.memo(({
69
71
  }
70
72
  },
71
73
  "aria-expanded": isMenuOpen
72
- }) : /*#__PURE__*/React.createElement(BoldToolbarButton, {
74
+ }) : /*#__PURE__*/React.createElement(DropdownToolbarButton, {
73
75
  isReducedSpacing: isReducedSpacing,
74
76
  isDisabled: false,
75
77
  isSelected: isMenuOpen,
@@ -87,6 +89,7 @@ export const FormattingTextDropdownMenu = /*#__PURE__*/React.memo(({
87
89
  setIsOpenedByKeyboard(true);
88
90
  }
89
91
  },
90
- toolbarType: toolbarType
92
+ toolbarType: toolbarType,
93
+ iconBefore: activeItem ? activeItem === null || activeItem === void 0 ? void 0 : activeItem.elemBefore : undefined
91
94
  }));
92
95
  });