@atlaskit/editor-plugin-floating-toolbar 0.5.0 → 0.6.0

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 (135) hide show
  1. package/CHANGELOG.md +22 -10
  2. package/README.md +1 -1
  3. package/dist/cjs/index.js +8 -1
  4. package/dist/cjs/plugin.js +385 -0
  5. package/dist/cjs/pm-plugins/force-focus/index.js +73 -0
  6. package/dist/cjs/pm-plugins/toolbar-data/commands.js +26 -0
  7. package/dist/cjs/pm-plugins/toolbar-data/plugin-factory.js +16 -0
  8. package/dist/cjs/pm-plugins/toolbar-data/plugin-key.js +9 -0
  9. package/dist/cjs/pm-plugins/toolbar-data/plugin.js +16 -0
  10. package/dist/cjs/pm-plugins/toolbar-data/reducer.js +25 -0
  11. package/dist/cjs/pm-plugins/toolbar-data/types.js +5 -0
  12. package/dist/cjs/ui/CheckboxModal.js +83 -0
  13. package/dist/cjs/ui/ConfirmationModal.js +22 -0
  14. package/dist/cjs/ui/Dropdown.js +212 -0
  15. package/dist/cjs/ui/DropdownMenu.js +218 -0
  16. package/dist/cjs/ui/EditorEmojiAddIcon.js +32 -0
  17. package/dist/cjs/ui/EmojiPickerButton.js +121 -0
  18. package/dist/cjs/ui/ExtensionsPlaceholder.js +179 -0
  19. package/dist/cjs/ui/Input.js +80 -0
  20. package/dist/cjs/ui/ScrollButtons.js +155 -0
  21. package/dist/cjs/ui/Select.js +74 -0
  22. package/dist/cjs/ui/Separator.js +9 -0
  23. package/dist/cjs/ui/SimpleModal.js +42 -0
  24. package/dist/cjs/ui/Toolbar.js +436 -0
  25. package/dist/cjs/ui/ToolbarLoader.js +25 -0
  26. package/dist/cjs/ui/messages.js +55 -0
  27. package/dist/cjs/ui/styles.js +79 -0
  28. package/dist/cjs/utils.js +22 -0
  29. package/dist/es2019/index.js +1 -1
  30. package/dist/es2019/plugin.js +366 -0
  31. package/dist/es2019/pm-plugins/force-focus/index.js +63 -0
  32. package/dist/es2019/pm-plugins/toolbar-data/commands.js +10 -0
  33. package/dist/es2019/pm-plugins/toolbar-data/plugin-factory.js +8 -0
  34. package/dist/es2019/pm-plugins/toolbar-data/plugin-key.js +2 -0
  35. package/dist/es2019/pm-plugins/toolbar-data/plugin.js +9 -0
  36. package/dist/es2019/pm-plugins/toolbar-data/reducer.js +16 -0
  37. package/dist/es2019/pm-plugins/toolbar-data/types.js +1 -0
  38. package/dist/es2019/ui/CheckboxModal.js +71 -0
  39. package/dist/es2019/ui/ConfirmationModal.js +13 -0
  40. package/dist/es2019/ui/Dropdown.js +185 -0
  41. package/dist/es2019/ui/DropdownMenu.js +205 -0
  42. package/dist/es2019/ui/EditorEmojiAddIcon.js +25 -0
  43. package/dist/es2019/ui/EmojiPickerButton.js +108 -0
  44. package/dist/es2019/ui/ExtensionsPlaceholder.js +100 -0
  45. package/dist/es2019/ui/Input.js +54 -0
  46. package/dist/es2019/ui/ScrollButtons.js +141 -0
  47. package/dist/es2019/ui/Select.js +62 -0
  48. package/dist/es2019/ui/Separator.js +2 -0
  49. package/dist/es2019/ui/SimpleModal.js +35 -0
  50. package/dist/es2019/ui/Toolbar.js +428 -0
  51. package/dist/es2019/ui/ToolbarLoader.js +6 -0
  52. package/dist/es2019/ui/messages.js +48 -0
  53. package/dist/es2019/ui/styles.js +64 -0
  54. package/dist/es2019/utils.js +16 -0
  55. package/dist/esm/index.js +1 -1
  56. package/dist/esm/plugin.js +373 -0
  57. package/dist/esm/pm-plugins/force-focus/index.js +64 -0
  58. package/dist/esm/pm-plugins/toolbar-data/commands.js +18 -0
  59. package/dist/esm/pm-plugins/toolbar-data/plugin-factory.js +8 -0
  60. package/dist/esm/pm-plugins/toolbar-data/plugin-key.js +2 -0
  61. package/dist/esm/pm-plugins/toolbar-data/plugin.js +9 -0
  62. package/dist/esm/pm-plugins/toolbar-data/reducer.js +17 -0
  63. package/dist/esm/pm-plugins/toolbar-data/types.js +1 -0
  64. package/dist/esm/ui/CheckboxModal.js +72 -0
  65. package/dist/esm/ui/ConfirmationModal.js +14 -0
  66. package/dist/esm/ui/Dropdown.js +204 -0
  67. package/dist/esm/ui/DropdownMenu.js +211 -0
  68. package/dist/esm/ui/EditorEmojiAddIcon.js +25 -0
  69. package/dist/esm/ui/EmojiPickerButton.js +114 -0
  70. package/dist/esm/ui/ExtensionsPlaceholder.js +168 -0
  71. package/dist/esm/ui/Input.js +72 -0
  72. package/dist/esm/ui/ScrollButtons.js +145 -0
  73. package/dist/esm/ui/Select.js +64 -0
  74. package/dist/esm/ui/Separator.js +2 -0
  75. package/dist/esm/ui/SimpleModal.js +31 -0
  76. package/dist/esm/ui/Toolbar.js +426 -0
  77. package/dist/esm/ui/ToolbarLoader.js +12 -0
  78. package/dist/esm/ui/messages.js +48 -0
  79. package/dist/esm/ui/styles.js +68 -0
  80. package/dist/esm/utils.js +16 -0
  81. package/dist/types/index.d.ts +1 -0
  82. package/dist/types/plugin.d.ts +12 -0
  83. package/dist/types/pm-plugins/force-focus/index.d.ts +21 -0
  84. package/dist/types/pm-plugins/toolbar-data/commands.d.ts +3 -0
  85. package/dist/types/pm-plugins/toolbar-data/plugin-factory.d.ts +1 -0
  86. package/dist/types/pm-plugins/toolbar-data/plugin-key.d.ts +3 -0
  87. package/dist/types/pm-plugins/toolbar-data/plugin.d.ts +3 -0
  88. package/dist/types/pm-plugins/toolbar-data/reducer.d.ts +3 -0
  89. package/dist/types/pm-plugins/toolbar-data/types.d.ts +8 -0
  90. package/dist/types/ui/CheckboxModal.d.ts +4 -0
  91. package/dist/types/ui/ConfirmationModal.d.ts +6 -0
  92. package/dist/types/ui/Dropdown.d.ts +41 -0
  93. package/dist/types/ui/DropdownMenu.d.ts +29 -0
  94. package/dist/types/ui/EditorEmojiAddIcon.d.ts +2 -0
  95. package/dist/types/ui/EmojiPickerButton.d.ts +16 -0
  96. package/dist/types/ui/ExtensionsPlaceholder.d.ts +16 -0
  97. package/dist/types/ui/Input.d.ts +23 -0
  98. package/dist/types/ui/ScrollButtons.d.ts +13 -0
  99. package/dist/types/ui/Select.d.ts +21 -0
  100. package/dist/types/ui/Separator.d.ts +2 -0
  101. package/dist/types/ui/SimpleModal.d.ts +4 -0
  102. package/dist/types/ui/Toolbar.d.ts +44 -0
  103. package/dist/types/ui/ToolbarLoader.d.ts +4 -0
  104. package/dist/types/ui/messages.d.ts +48 -0
  105. package/dist/types/ui/styles.d.ts +20 -0
  106. package/dist/types/utils.d.ts +2 -0
  107. package/dist/types-ts4.5/index.d.ts +1 -0
  108. package/dist/types-ts4.5/plugin.d.ts +12 -0
  109. package/dist/types-ts4.5/pm-plugins/force-focus/index.d.ts +21 -0
  110. package/dist/types-ts4.5/pm-plugins/toolbar-data/commands.d.ts +3 -0
  111. package/dist/types-ts4.5/pm-plugins/toolbar-data/plugin-factory.d.ts +1 -0
  112. package/dist/types-ts4.5/pm-plugins/toolbar-data/plugin-key.d.ts +3 -0
  113. package/dist/types-ts4.5/pm-plugins/toolbar-data/plugin.d.ts +3 -0
  114. package/dist/types-ts4.5/pm-plugins/toolbar-data/reducer.d.ts +3 -0
  115. package/dist/types-ts4.5/pm-plugins/toolbar-data/types.d.ts +8 -0
  116. package/dist/types-ts4.5/ui/CheckboxModal.d.ts +4 -0
  117. package/dist/types-ts4.5/ui/ConfirmationModal.d.ts +6 -0
  118. package/dist/types-ts4.5/ui/Dropdown.d.ts +41 -0
  119. package/dist/types-ts4.5/ui/DropdownMenu.d.ts +29 -0
  120. package/dist/types-ts4.5/ui/EditorEmojiAddIcon.d.ts +2 -0
  121. package/dist/types-ts4.5/ui/EmojiPickerButton.d.ts +16 -0
  122. package/dist/types-ts4.5/ui/ExtensionsPlaceholder.d.ts +16 -0
  123. package/dist/types-ts4.5/ui/Input.d.ts +23 -0
  124. package/dist/types-ts4.5/ui/ScrollButtons.d.ts +13 -0
  125. package/dist/types-ts4.5/ui/Select.d.ts +21 -0
  126. package/dist/types-ts4.5/ui/Separator.d.ts +2 -0
  127. package/dist/types-ts4.5/ui/SimpleModal.d.ts +4 -0
  128. package/dist/types-ts4.5/ui/Toolbar.d.ts +44 -0
  129. package/dist/types-ts4.5/ui/ToolbarLoader.d.ts +4 -0
  130. package/dist/types-ts4.5/ui/messages.d.ts +48 -0
  131. package/dist/types-ts4.5/ui/styles.d.ts +20 -0
  132. package/dist/types-ts4.5/utils.d.ts +2 -0
  133. package/package.json +32 -3
  134. package/report.api.md +3 -0
  135. package/tmp/api-report-tmp.d.ts +3 -0
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SimpleModal = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
11
+ var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
12
+ var _messages = _interopRequireDefault(require("./messages"));
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var SimpleModal = function SimpleModal(props) {
16
+ var onConfirm = props.onConfirm,
17
+ onClose = props.onClose,
18
+ options = props.options,
19
+ formatMessage = props.intl.formatMessage,
20
+ testId = props.testId;
21
+ var heading = (options === null || options === void 0 ? void 0 : options.title) || formatMessage(_messages.default.confirmModalDefaultHeading);
22
+ var okButtonLabel = (options === null || options === void 0 ? void 0 : options.okButtonLabel) || formatMessage(_messages.default.confirmModalOK);
23
+ var cancelButtonLabel = (options === null || options === void 0 ? void 0 : options.cancelButtonLabel) || formatMessage(_messages.default.confirmModalCancel);
24
+ return /*#__PURE__*/_react.default.createElement(_modalDialog.default, {
25
+ onClose: onClose,
26
+ testId: testId
27
+ }, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalHeader, null, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTitle, {
28
+ appearance: "warning"
29
+ }, heading)), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, /*#__PURE__*/_react.default.createElement("p", null, options === null || options === void 0 ? void 0 : options.message)), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_standardButton.default, {
30
+ appearance: "default",
31
+ onClick: onClose,
32
+ testId: testId ? "".concat(testId, "-cancel-button") : undefined
33
+ }, cancelButtonLabel), /*#__PURE__*/_react.default.createElement(_standardButton.default, {
34
+ appearance: "warning",
35
+ onClick: function onClick() {
36
+ onConfirm();
37
+ onClose();
38
+ },
39
+ testId: testId ? "".concat(testId, "-confirm-button") : undefined
40
+ }, okButtonLabel)));
41
+ };
42
+ exports.SimpleModal = SimpleModal;
@@ -0,0 +1,436 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
18
+ var _react = _interopRequireWildcard(require("react"));
19
+ var _react2 = require("@emotion/react");
20
+ var _reactIntlNext = require("react-intl-next");
21
+ var _buttonGroup = _interopRequireDefault(require("@atlaskit/button/button-group"));
22
+ var _floatingToolbar = require("@atlaskit/editor-common/floating-toolbar");
23
+ var _ui = require("@atlaskit/editor-common/ui");
24
+ var _uiColor = require("@atlaskit/editor-common/ui-color");
25
+ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
26
+ var _editorPalette = require("@atlaskit/editor-palette");
27
+ var _commands = require("@atlaskit/editor-plugin-table/commands");
28
+ var _colors = require("@atlaskit/theme/colors");
29
+ var _components = require("@atlaskit/theme/components");
30
+ var _constants = require("@atlaskit/theme/constants");
31
+ var _forceFocus = require("../pm-plugins/force-focus");
32
+ var _commands2 = require("../pm-plugins/toolbar-data/commands");
33
+ var _Dropdown = _interopRequireDefault(require("./Dropdown"));
34
+ var _EmojiPickerButton = require("./EmojiPickerButton");
35
+ var _ExtensionsPlaceholder = require("./ExtensionsPlaceholder");
36
+ var _Input = _interopRequireDefault(require("./Input"));
37
+ var _messages = _interopRequireDefault(require("./messages"));
38
+ var _ScrollButtons = require("./ScrollButtons");
39
+ var _Select = _interopRequireDefault(require("./Select"));
40
+ var _Separator = _interopRequireDefault(require("./Separator"));
41
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
42
+ /** @jsx jsx */
43
+ // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
44
+ // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
45
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
46
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
+ var ToolbarItems = /*#__PURE__*/_react.default.memo(function (_ref) {
50
+ var items = _ref.items,
51
+ dispatchCommand = _ref.dispatchCommand,
52
+ popupsMountPoint = _ref.popupsMountPoint,
53
+ popupsBoundariesElement = _ref.popupsBoundariesElement,
54
+ editorView = _ref.editorView,
55
+ dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent,
56
+ popupsScrollableElement = _ref.popupsScrollableElement,
57
+ scrollable = _ref.scrollable,
58
+ providerFactory = _ref.providerFactory,
59
+ extensionsProvider = _ref.extensionsProvider,
60
+ node = _ref.node,
61
+ setDisableScroll = _ref.setDisableScroll,
62
+ mountRef = _ref.mountRef,
63
+ featureFlags = _ref.featureFlags,
64
+ api = _ref.api;
65
+ var emojiAndColourPickerMountPoint = scrollable ? popupsMountPoint || (editorView === null || editorView === void 0 ? void 0 : editorView.dom.closest('.fabric-editor-popup-scroll-parent')) || (editorView === null || editorView === void 0 ? void 0 : editorView.dom.closest('.ak-editor-content-area')) || undefined : popupsMountPoint;
66
+ return (0, _react2.jsx)(_buttonGroup.default, null, items.filter(function (item) {
67
+ return !item.hidden;
68
+ }).map(function (item, idx) {
69
+ var _api$contextPanel, _api$extension;
70
+ switch (item.type) {
71
+ case 'button':
72
+ var ButtonIcon = item.icon;
73
+ var onClickHandler = function onClickHandler() {
74
+ if (item.confirmDialog) {
75
+ dispatchCommand((0, _commands2.showConfirmDialog)(idx));
76
+ } else {
77
+ dispatchCommand(item.onClick);
78
+ if (item.focusEditoronEnter && !(editorView !== null && editorView !== void 0 && editorView.hasFocus())) {
79
+ editorView === null || editorView === void 0 ? void 0 : editorView.focus();
80
+ }
81
+ }
82
+ };
83
+ return (0, _react2.jsx)(_ui.FloatingToolbarButton, {
84
+ className: item.className,
85
+ key: idx,
86
+ title: item.title,
87
+ href: item.href,
88
+ icon: item.icon ? (0, _react2.jsx)(ButtonIcon, {
89
+ label: item.title
90
+ }) : undefined,
91
+ appearance: item.appearance,
92
+ target: item.target,
93
+ onClick: onClickHandler,
94
+ onMouseEnter: function onMouseEnter() {
95
+ return dispatchCommand(item.onMouseEnter);
96
+ },
97
+ onMouseLeave: function onMouseLeave() {
98
+ return dispatchCommand(item.onMouseLeave);
99
+ },
100
+ onFocus: function onFocus() {
101
+ return dispatchCommand(item.onFocus);
102
+ },
103
+ onBlur: function onBlur() {
104
+ return dispatchCommand(item.onBlur);
105
+ },
106
+ selected: item.selected,
107
+ disabled: item.disabled,
108
+ tooltipContent: item.tooltipContent,
109
+ testId: item.testId,
110
+ hideTooltipOnClick: item.hideTooltipOnClick,
111
+ ariaHasPopup: item.ariaHasPopup,
112
+ tabIndex: item.tabIndex
113
+ }, item.showTitle && item.title);
114
+ case 'input':
115
+ return (0, _react2.jsx)(_Input.default, {
116
+ key: idx,
117
+ mountPoint: popupsMountPoint,
118
+ boundariesElement: popupsBoundariesElement,
119
+ defaultValue: item.defaultValue,
120
+ placeholder: item.placeholder,
121
+ onSubmit: function onSubmit(value) {
122
+ return dispatchCommand(item.onSubmit(value));
123
+ },
124
+ onBlur: function onBlur(value) {
125
+ return dispatchCommand(item.onBlur(value));
126
+ }
127
+ });
128
+ case 'custom':
129
+ {
130
+ return item.render(editorView, idx, dispatchAnalyticsEvent);
131
+ }
132
+ case 'dropdown':
133
+ var DropdownIcon = item.icon;
134
+ return (0, _react2.jsx)(_Dropdown.default, {
135
+ key: idx,
136
+ title: item.title,
137
+ icon: DropdownIcon && (0, _react2.jsx)(DropdownIcon, {
138
+ label: item.title
139
+ }),
140
+ dispatchCommand: dispatchCommand,
141
+ options: item.options,
142
+ disabled: item.disabled,
143
+ tooltip: item.tooltip,
144
+ hideExpandIcon: item.hideExpandIcon,
145
+ mountPoint: popupsMountPoint,
146
+ boundariesElement: popupsBoundariesElement,
147
+ scrollableElement: popupsScrollableElement,
148
+ dropdownWidth: item.dropdownWidth,
149
+ showSelected: item.showSelected,
150
+ buttonTestId: item.testId,
151
+ editorView: editorView,
152
+ setDisableParentScroll: scrollable ? setDisableScroll : undefined,
153
+ dropdownListId: (item === null || item === void 0 ? void 0 : item.id) && "".concat(item.id, "-dropdownList"),
154
+ alignDropdownWithToolbar: items.length === 1
155
+ });
156
+ case 'select':
157
+ if (item.selectType === 'list') {
158
+ var ariaLabel = item.title || item.placeholder;
159
+ return (0, _react2.jsx)(_Select.default, {
160
+ key: idx,
161
+ dispatchCommand: dispatchCommand,
162
+ options: item.options,
163
+ hideExpandIcon: item.hideExpandIcon,
164
+ mountPoint: scrollable ? mountRef.current : undefined,
165
+ boundariesElement: popupsBoundariesElement,
166
+ scrollableElement: popupsScrollableElement,
167
+ defaultValue: item.defaultValue,
168
+ placeholder: item.placeholder,
169
+ onChange: function onChange(selected) {
170
+ return dispatchCommand(item.onChange(selected));
171
+ },
172
+ ariaLabel: ariaLabel,
173
+ filterOption: item.filterOption,
174
+ setDisableParentScroll: scrollable ? setDisableScroll : undefined,
175
+ classNamePrefix: 'floating-toolbar-select'
176
+ });
177
+ }
178
+ if (item.selectType === 'color') {
179
+ return (0, _react2.jsx)(_uiMenu.ColorPickerButton, {
180
+ skipFocusButtonAfterPick: true,
181
+ key: idx,
182
+ title: item.title,
183
+ onChange: function onChange(selected) {
184
+ dispatchCommand(item.onChange(selected));
185
+ },
186
+ colorPalette: item.options,
187
+ currentColor: item.defaultValue ? item.defaultValue.value : undefined,
188
+ placement: "Panels",
189
+ mountPoint: emojiAndColourPickerMountPoint,
190
+ setDisableParentScroll: scrollable ? setDisableScroll : undefined
191
+ // Currently in floating toolbar, color picker is only
192
+ // used in panel and table cell background color.
193
+ // Both uses same color palette.
194
+ // That's why hard-coding hexToEditorBackgroundPaletteColor
195
+ // and paletteColorTooltipMessages.
196
+ // When we need to support different color palette
197
+ // in floating toolbar, we need to set hexToPaletteColor
198
+ // and paletteColorTooltipMessages in item options.
199
+ ,
200
+ hexToPaletteColor: _editorPalette.hexToEditorBackgroundPaletteColor,
201
+ paletteColorTooltipMessages: _uiColor.backgroundPaletteTooltipMessages
202
+ });
203
+ }
204
+ if (item.selectType === 'emoji') {
205
+ return (0, _react2.jsx)(_EmojiPickerButton.EmojiPickerButton, {
206
+ key: idx,
207
+ editorView: editorView,
208
+ title: item.title,
209
+ providerFactory: providerFactory,
210
+ isSelected: item.selected,
211
+ onChange: function onChange(selected) {
212
+ return dispatchCommand(item.onChange(selected));
213
+ },
214
+ mountPoint: emojiAndColourPickerMountPoint,
215
+ setDisableParentScroll: scrollable ? setDisableScroll : undefined
216
+ });
217
+ }
218
+ return null;
219
+ case 'extensions-placeholder':
220
+ if (!editorView || !extensionsProvider) {
221
+ return null;
222
+ }
223
+ var _ref2 = featureFlags || {},
224
+ extendFloatingToolbar = _ref2.extendFloatingToolbar;
225
+ if (!extendFloatingToolbar) {
226
+ return null;
227
+ }
228
+ return (0, _react2.jsx)(_ExtensionsPlaceholder.ExtensionsPlaceholder, {
229
+ key: idx,
230
+ node: node,
231
+ editorView: editorView,
232
+ extensionProvider: extensionsProvider,
233
+ separator: item.separator,
234
+ applyChangeToContextPanel: api === null || api === void 0 ? void 0 : (_api$contextPanel = api.contextPanel) === null || _api$contextPanel === void 0 ? void 0 : _api$contextPanel.actions.applyChange,
235
+ extensionApi: api === null || api === void 0 ? void 0 : (_api$extension = api.extension) === null || _api$extension === void 0 ? void 0 : _api$extension.actions.api()
236
+ });
237
+ case 'separator':
238
+ return (0, _react2.jsx)(_Separator.default, {
239
+ key: idx
240
+ });
241
+ }
242
+ }));
243
+ }, function (prevProps, nextProps) {
244
+ if (!nextProps.node) {
245
+ return false;
246
+ }
247
+ // only rerender toolbar items if the node is different
248
+ // otherwise it causes an issue where multiple popups stays open
249
+ return !(prevProps.node.type !== nextProps.node.type || prevProps.node.attrs.localId !== nextProps.node.attrs.localId || !(0, _floatingToolbar.areSameItems)(prevProps.items, nextProps.items) || !prevProps.mounted !== !nextProps.mounted);
250
+ });
251
+
252
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
253
+ var toolbarContainer = function toolbarContainer(theme, scrollable, hasSelect, firstElementIsSelect) {
254
+ return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n border-radius: ", "px;\n box-shadow: ", ";\n display: flex;\n line-height: 1;\n box-sizing: border-box;\n\n & > div > div {\n align-items: center;\n }\n ", "\n"])), (0, _components.themed)({
255
+ light: "var(--ds-surface-overlay, white)",
256
+ dark: "var(--ds-surface-overlay, ".concat(_colors.DN70, ")")
257
+ })(theme), (0, _constants.borderRadius)(), "var(--ds-shadow-overlay, ".concat("0 0 1px rgba(9, 30, 66, 0.31), 0 4px 8px -2px rgba(9, 30, 66, 0.25)", ")"), scrollable ? (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n overflow: hidden;\n "])), hasSelect ? (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n height: 40px;\n "]))) : (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n height: 32px;\n "])))) : (0, _react2.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n padding: ", " ", ";\n ", "\n "])), "var(--ds-space-050, 4px)", "var(--ds-space-100, 8px)", firstElementIsSelect && (0, _react2.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n padding-left: ", ";\n "])), "var(--ds-space-050, 4px)")));
258
+ };
259
+
260
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
261
+ var toolbarOverflow = function toolbarOverflow(scrollable, scrollDisabled, firstElementIsSelect) {
262
+ return (0, _react2.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n"])), scrollable ? (0, _react2.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n -webkit-overflow-scrolling: touch;\n padding: ", " 0 50px;\n > div {\n > div:first-child {\n ", "\n }\n > div:last-child {\n margin-right: ", ";\n }\n }\n "])), scrollDisabled ? (0, _react2.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n "]))) : (0, _react2.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n overflow-x: auto;\n overflow-y: hidden;\n "]))), "var(--ds-space-050, 4px)", firstElementIsSelect ? (0, _react2.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", ";\n "])), "var(--ds-space-050, 4px)") : (0, _react2.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", ";\n "])), "var(--ds-space-100, 8px)"), "var(--ds-space-100, 8px)") : (0, _react2.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n "]))));
263
+ };
264
+ // eslint-disable-next-line @repo/internal/react/no-class-components
265
+ var Toolbar = /*#__PURE__*/function (_Component) {
266
+ (0, _inherits2.default)(Toolbar, _Component);
267
+ var _super = _createSuper(Toolbar);
268
+ function Toolbar(props) {
269
+ var _this;
270
+ (0, _classCallCheck2.default)(this, Toolbar);
271
+ _this = _super.call(this, props);
272
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "shouldHandleArrowKeys", function () {
273
+ var _this$props$items;
274
+ //To prevent the keydown handling of arrow keys for custom toolbar items with 'disableArrowNavigation' prop enabled,
275
+ //Usually the button which has menus or popups
276
+ return !((_this$props$items = _this.props.items) !== null && _this$props$items !== void 0 && _this$props$items.find(function (item) {
277
+ return item.type === 'custom' && item.disableArrowNavigation;
278
+ }));
279
+ });
280
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleEscape", function (event) {
281
+ var _this$props$editorVie;
282
+ // If any menu is open inside the floating toolbar 'Esc' key should not
283
+ // focus the editorview.
284
+ // Event can't be stopped as they are not childnodes of floating toolbar
285
+
286
+ var isDropdownOpen = !!document.querySelector('[data-role="droplistContent"]');
287
+ var isSelectMenuOpen = !!document.querySelector('.floating-toolbar-select__menu');
288
+ if (isDropdownOpen || isSelectMenuOpen) {
289
+ return;
290
+ }
291
+ (_this$props$editorVie = _this.props.editorView) === null || _this$props$editorVie === void 0 ? void 0 : _this$props$editorVie.focus();
292
+ event.preventDefault();
293
+ event.stopPropagation();
294
+ });
295
+ _this.scrollContainerRef = /*#__PURE__*/_react.default.createRef();
296
+ _this.mountRef = /*#__PURE__*/_react.default.createRef();
297
+ _this.toolbarContainerRef = /*#__PURE__*/_react.default.createRef();
298
+ _this.state = {
299
+ scrollDisabled: false,
300
+ mounted: false
301
+ };
302
+ return _this;
303
+ }
304
+ // remove any decorations added by toolbar buttons i.e danger and selected styling
305
+ // this prevents https://product-fabric.atlassian.net/browse/ED-10207
306
+ (0, _createClass2.default)(Toolbar, [{
307
+ key: "resetStyling",
308
+ value: function resetStyling(_ref3) {
309
+ var table = _ref3.table;
310
+ if (this.props.editorView) {
311
+ var _this$props$api;
312
+ var _this$props$editorVie2 = this.props.editorView,
313
+ state = _this$props$editorVie2.state,
314
+ dispatch = _this$props$editorVie2.dispatch;
315
+ if (table) {
316
+ return (0, _commands.clearHoverSelection)()(state, dispatch);
317
+ }
318
+ (_this$props$api = this.props.api) === null || _this$props$api === void 0 ? void 0 : _this$props$api.decorations.actions.removeDecoration(state, dispatch);
319
+ }
320
+ }
321
+ }, {
322
+ key: "setDisableScroll",
323
+ value: function setDisableScroll(disabled) {
324
+ var _this2 = this;
325
+ // wait before setting disabled state incase users jumping from one popup to another
326
+ if (disabled) {
327
+ requestAnimationFrame(function () {
328
+ _this2.setState({
329
+ scrollDisabled: disabled
330
+ });
331
+ });
332
+ } else {
333
+ this.setState({
334
+ scrollDisabled: disabled
335
+ });
336
+ }
337
+ }
338
+ }, {
339
+ key: "componentDidMount",
340
+ value: function componentDidMount() {
341
+ this.setState({
342
+ mounted: true
343
+ });
344
+ }
345
+ }, {
346
+ key: "componentDidUpdate",
347
+ value: function componentDidUpdate(prevProps) {
348
+ var _this$props;
349
+ (0, _forceFocus.checkShouldForceFocusAndApply)((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.editorView);
350
+ if (this.props.node !== prevProps.node) {
351
+ this.resetStyling({
352
+ table: (prevProps === null || prevProps === void 0 ? void 0 : prevProps.node.type.name) === 'table'
353
+ });
354
+ }
355
+ }
356
+ }, {
357
+ key: "componentWillUnmount",
358
+ value: function componentWillUnmount() {
359
+ var editorView = this.props.editorView;
360
+ if (editorView) {
361
+ var tr = editorView.state.tr,
362
+ dispatch = editorView.dispatch;
363
+ dispatch((0, _forceFocus.forceFocusSelector)(null)(tr));
364
+ }
365
+ this.resetStyling({
366
+ table: this.props.node.type.name === 'table'
367
+ });
368
+ }
369
+ }, {
370
+ key: "render",
371
+ value: function render() {
372
+ var _this$props2 = this.props,
373
+ items = _this$props2.items,
374
+ className = _this$props2.className,
375
+ node = _this$props2.node,
376
+ intl = _this$props2.intl,
377
+ scrollable = _this$props2.scrollable;
378
+ if (!items || !items.length) {
379
+ return null;
380
+ }
381
+
382
+ // Select has left padding of 4px to the border, everything else 8px
383
+ var firstElementIsSelect = items[0].type === 'select';
384
+ var hasSelect = items.find(function (item) {
385
+ return item.type === 'select' && item.selectType === 'list';
386
+ });
387
+ var isShortcutToFocusToolbar = function isShortcutToFocusToolbar(event) {
388
+ //Alt + F10 to reach first element in this floating toolbar
389
+ return event.altKey && (event.key === 'F10' || event.keyCode === 121);
390
+ };
391
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_uiMenu.ToolbarArrowKeyNavigationProvider, {
392
+ editorView: this.props.editorView,
393
+ handleEscape: this.handleEscape,
394
+ disableArrowKeyNavigation: !this.shouldHandleArrowKeys(),
395
+ childComponentSelector: "[data-testid='editor-floating-toolbar']",
396
+ isShortcutToFocusToolbar: isShortcutToFocusToolbar,
397
+ intl: intl
398
+ }, (0, _react2.jsx)("div", {
399
+ ref: this.toolbarContainerRef,
400
+ css: function css(theme) {
401
+ return [toolbarContainer({
402
+ theme: theme
403
+ }, scrollable, hasSelect !== undefined, firstElementIsSelect)];
404
+ },
405
+ "aria-label": intl.formatMessage(_messages.default.floatingToolbarAriaLabel),
406
+ role: "toolbar",
407
+ "data-testid": "editor-floating-toolbar",
408
+ className: className
409
+ }, (0, _react2.jsx)(_ui.Announcer, {
410
+ text: intl.formatMessage(_messages.default.floatingToolbarAnnouncer),
411
+ delay: 250
412
+ }), (0, _react2.jsx)("div", {
413
+ "data-testid": "floating-toolbar-items",
414
+ ref: this.scrollContainerRef
415
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
416
+ ,
417
+ css: toolbarOverflow(scrollable, this.state.scrollDisabled, firstElementIsSelect)
418
+ }, (0, _react2.jsx)(ToolbarItems, (0, _extends2.default)({}, this.props, {
419
+ setDisableScroll: this.setDisableScroll.bind(this),
420
+ mountRef: this.mountRef,
421
+ mounted: this.state.mounted,
422
+ featureFlags: this.props.featureFlags
423
+ }))), scrollable && (0, _react2.jsx)(_ScrollButtons.ScrollButtons, {
424
+ intl: intl,
425
+ scrollContainerRef: this.scrollContainerRef,
426
+ node: node,
427
+ disabled: this.state.scrollDisabled
428
+ })), (0, _react2.jsx)("div", {
429
+ ref: this.mountRef
430
+ })));
431
+ }
432
+ }]);
433
+ return Toolbar;
434
+ }(_react.Component);
435
+ var _default = (0, _reactIntlNext.injectIntl)(Toolbar);
436
+ exports.default = _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ToolbarLoader = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _reactLoadable = _interopRequireDefault(require("react-loadable"));
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2.default)(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ var ToolbarLoader = (0, _reactLoadable.default)({
13
+ loader: function loader() {
14
+ return Promise.resolve().then(function () {
15
+ return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_editor-core-floating-toolbar" */
16
+ './Toolbar'));
17
+ }).then(function (mod) {
18
+ return mod.default;
19
+ });
20
+ },
21
+ loading: function loading() {
22
+ return null;
23
+ }
24
+ });
25
+ exports.ToolbarLoader = ToolbarLoader;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactIntlNext = require("react-intl-next");
8
+ var _default = (0, _reactIntlNext.defineMessages)({
9
+ confirmModalDefaultHeading: {
10
+ id: 'fabric.editor.floatingToolbar.confirmModalHeading',
11
+ defaultMessage: 'Are you sure?',
12
+ description: 'Default heading of floating toolbar confirmation modal.'
13
+ },
14
+ confirmModalOK: {
15
+ id: 'fabric.editor.floatingToolbar.confirmModalOK',
16
+ defaultMessage: 'OK',
17
+ description: 'OK button for floating toolbar confirmation modal.'
18
+ },
19
+ confirmModalCancel: {
20
+ id: 'fabric.editor.floatingToolbar.confirmModalCancel',
21
+ defaultMessage: 'Cancel',
22
+ description: 'Cancel button for floating toolbar confirmation modal.'
23
+ },
24
+ confirmModalListUnit: {
25
+ id: 'fabric.editor.floatingToolbar.confirmModalConnectedUnit',
26
+ defaultMessage: '{name}{amount, plural, =0 {} one { (+1 connected element)} other { (+# connected elements)}}',
27
+ description: 'Text displayed in confirmation modal which highlights the nodes and the amount of connected nodes that will be deleted'
28
+ },
29
+ confirmDeleteLinkedModalMessage: {
30
+ id: 'fabric.editor.extension.confirmDeleteLinkedModalMessage',
31
+ defaultMessage: 'Deleting {nodeName} will break anything connected to it.',
32
+ description: 'Message for confirm modal when deleting a extension linked to an data consumer.'
33
+ },
34
+ floatingToolbarAriaLabel: {
35
+ id: 'fabric.editor.floatingToolbar.floatingToolbarAriaLabel',
36
+ defaultMessage: 'Floating Toolbar',
37
+ description: "a floating toolbar's aria label"
38
+ },
39
+ floatingToolbarAnnouncer: {
40
+ id: 'fabric.editor.floatingToolbar.floatingToolbarAnnouncer',
41
+ defaultMessage: 'Floating toolbar controls have been opened',
42
+ description: 'message that will be announced to screenreaders that the floating toolbar is opened'
43
+ },
44
+ floatingToolbarScrollLeft: {
45
+ id: 'fabric.editor.floatingToolbar.scrollLeft',
46
+ defaultMessage: 'Scroll left',
47
+ description: 'Button to scroll left when the toolbar is in the overflow state'
48
+ },
49
+ floatingToolbarScrollRight: {
50
+ id: 'fabric.editor.floatingToolbar.scrollRight',
51
+ defaultMessage: 'Scroll right',
52
+ description: 'Button to scroll right when the toolbar is in the overflow state'
53
+ }
54
+ });
55
+ exports.default = _default;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.iconOnlySpacing = exports.getButtonStyles = void 0;
8
+ var _adfSchema = require("@atlaskit/adf-schema");
9
+ var colors = _interopRequireWildcard(require("@atlaskit/theme/colors"));
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ var background = {
13
+ danger: {
14
+ default: {
15
+ light: 'inherit',
16
+ dark: 'inherit'
17
+ },
18
+ hover: {
19
+ light: "var(--ds-background-neutral-subtle-hovered, ".concat(colors.N30A, ")"),
20
+ dark: "var(--ds-background-neutral-subtle-hovered, ".concat(colors.N30A, ")")
21
+ },
22
+ active: {
23
+ light: "var(--ds-background-neutral-pressed, ".concat("".concat((0, _adfSchema.hexToRgba)(colors.B75, 0.6)), ")"),
24
+ dark: "var(--ds-background-neutral-pressed, ".concat("".concat((0, _adfSchema.hexToRgba)(colors.B75, 0.6)), ")")
25
+ }
26
+ }
27
+ };
28
+ var color = {
29
+ danger: {
30
+ default: {
31
+ light: "var(--ds-icon, ".concat(colors.N400, ")"),
32
+ dark: "var(--ds-icon, ".concat(colors.DN400, ")")
33
+ },
34
+ hover: {
35
+ light: "var(--ds-icon-danger, ".concat(colors.R400, ")"),
36
+ dark: "var(--ds-icon-danger, ".concat(colors.R400, ")")
37
+ },
38
+ active: {
39
+ light: "var(--ds-icon-danger, ".concat(colors.R400, ")"),
40
+ dark: "var(--ds-icon-danger, ".concat(colors.R400, ")")
41
+ }
42
+ }
43
+ };
44
+ var getStyles = function getStyles(property, _ref) {
45
+ var _ref$appearance = _ref.appearance,
46
+ appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
47
+ _ref$state = _ref.state,
48
+ state = _ref$state === void 0 ? 'default' : _ref$state,
49
+ _ref$mode = _ref.mode,
50
+ mode = _ref$mode === void 0 ? 'light' : _ref$mode;
51
+ if (!property[appearance] || !property[appearance][state]) {
52
+ return 'initial';
53
+ }
54
+ return property[appearance][state][mode];
55
+ };
56
+ var iconOnlySpacing = {
57
+ '&&': {
58
+ padding: '0px',
59
+ /**
60
+ Increased specificity here because css for .hyperlink-open-link defined in
61
+ packages/editor/editor-core/src/ui/ContentStyles/index.tsx file
62
+ overrides padding left-right 2px with 4px.
63
+ */
64
+ '&&[href]': {
65
+ padding: '0 2px'
66
+ }
67
+ },
68
+ '& > span': {
69
+ margin: '0px'
70
+ }
71
+ };
72
+ exports.iconOnlySpacing = iconOnlySpacing;
73
+ var getButtonStyles = function getButtonStyles(props) {
74
+ return {
75
+ background: getStyles(background, props),
76
+ color: getStyles(color, props)
77
+ };
78
+ };
79
+ exports.getButtonStyles = getButtonStyles;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findNode = findNode;
7
+ // find node in descendants by condition
8
+ function findNode(parent, predicate) {
9
+ var matchedNode;
10
+ parent.descendants(function (node) {
11
+ // dont run predicate if node already found
12
+ if (matchedNode) {
13
+ return false;
14
+ }
15
+ if (predicate(node)) {
16
+ matchedNode = node;
17
+ return false;
18
+ }
19
+ return true;
20
+ });
21
+ return matchedNode;
22
+ }