@atlaskit/editor-plugin-help-dialog 0.1.0 → 0.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 (40) hide show
  1. package/.eslintrc.js +2 -0
  2. package/CHANGELOG.md +12 -0
  3. package/dist/cjs/commands.js +19 -0
  4. package/dist/cjs/index.js +15 -1
  5. package/dist/cjs/plugin-key.js +8 -0
  6. package/dist/cjs/plugin.js +137 -0
  7. package/dist/cjs/ui/HelpDialogLoader.js +24 -0
  8. package/dist/cjs/ui/index.js +563 -0
  9. package/dist/cjs/ui/styles.js +50 -0
  10. package/dist/es2019/commands.js +13 -0
  11. package/dist/es2019/index.js +6 -1
  12. package/dist/es2019/plugin-key.js +2 -0
  13. package/dist/es2019/plugin.js +124 -0
  14. package/dist/es2019/ui/HelpDialogLoader.js +6 -0
  15. package/dist/es2019/ui/index.js +441 -0
  16. package/dist/es2019/ui/styles.js +110 -0
  17. package/dist/esm/commands.js +13 -0
  18. package/dist/esm/index.js +6 -1
  19. package/dist/esm/plugin-key.js +2 -0
  20. package/dist/esm/plugin.js +129 -0
  21. package/dist/esm/ui/HelpDialogLoader.js +12 -0
  22. package/dist/esm/ui/index.js +552 -0
  23. package/dist/esm/ui/styles.js +40 -0
  24. package/dist/types/commands.d.ts +3 -0
  25. package/dist/types/index.d.ts +6 -0
  26. package/dist/types/plugin-key.d.ts +2 -0
  27. package/dist/types/plugin.d.ts +4 -0
  28. package/dist/types/ui/HelpDialogLoader.d.ts +4 -0
  29. package/dist/types/ui/index.d.ts +27 -0
  30. package/dist/types/ui/styles.d.ts +33 -0
  31. package/dist/types-ts4.5/commands.d.ts +3 -0
  32. package/dist/types-ts4.5/index.d.ts +6 -0
  33. package/dist/types-ts4.5/plugin-key.d.ts +2 -0
  34. package/dist/types-ts4.5/plugin.d.ts +4 -0
  35. package/dist/types-ts4.5/ui/HelpDialogLoader.d.ts +4 -0
  36. package/dist/types-ts4.5/ui/index.d.ts +27 -0
  37. package/dist/types-ts4.5/ui/styles.d.ts +33 -0
  38. package/package.json +13 -4
  39. package/report.api.md +10 -0
  40. package/tmp/api-report-tmp.d.ts +7 -0
@@ -0,0 +1,563 @@
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.getSupportedFormatting = exports.getComponentFromKeymap = exports.formatting = exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _react = require("react");
12
+ var _react2 = require("@emotion/react");
13
+ var _reactIntlNext = require("react-intl-next");
14
+ var _hooks = require("@atlaskit/editor-common/hooks");
15
+ var _keymaps = require("@atlaskit/editor-common/keymaps");
16
+ var _messages = require("@atlaskit/editor-common/messages");
17
+ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
18
+ var _utils = require("@atlaskit/editor-common/utils");
19
+ var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
20
+ var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
21
+ var _commands = require("../commands");
22
+ var _styles = require("./styles");
23
+ 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); }
24
+ 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; }
25
+ /** @jsx jsx */
26
+
27
+ var messages = (0, _reactIntlNext.defineMessages)({
28
+ editorHelp: {
29
+ id: 'fabric.editor.editorHelp',
30
+ defaultMessage: 'Editor help',
31
+ description: 'Title of editor help dialog.'
32
+ },
33
+ helpDialogTips: {
34
+ id: 'fabric.editor.helpDialogTips',
35
+ defaultMessage: 'Press {keyMap} to quickly open this dialog at any time',
36
+ description: 'Hint about how to open a dialog quickly using a shortcut.'
37
+ },
38
+ keyboardShortcuts: {
39
+ id: 'fabric.editor.keyboardShortcuts',
40
+ defaultMessage: 'Keyboard shortcuts',
41
+ description: ''
42
+ },
43
+ markdown: {
44
+ id: 'fabric.editor.markdown',
45
+ defaultMessage: 'Markdown',
46
+ description: 'It is a name of popular markup language.'
47
+ },
48
+ pastePlainText: {
49
+ id: 'fabric.editor.pastePlainText',
50
+ defaultMessage: 'Paste plain text',
51
+ description: ''
52
+ },
53
+ CheckUncheckActionItem: {
54
+ id: 'fabric.editor.checkUncheckActionItem',
55
+ defaultMessage: 'Toggle action item',
56
+ description: 'For Check/Uncheck Action item use shortcut'
57
+ },
58
+ altText: {
59
+ id: 'fabric.editor.altText',
60
+ defaultMessage: 'Alt text',
61
+ description: 'Alternative text for image.'
62
+ },
63
+ closeHelpDialog: {
64
+ id: 'fabric.editor.closeHelpDialog',
65
+ defaultMessage: 'Close help dialog',
66
+ description: ''
67
+ },
68
+ // TODO: Move it inside quick insert plugin
69
+ quickInsert: {
70
+ id: 'fabric.editor.quickInsert',
71
+ defaultMessage: 'Quick insert',
72
+ description: 'Name of a feature, which let you insert items quickly.'
73
+ }
74
+ });
75
+ var navigationKeymaps = function navigationKeymaps(_ref) {
76
+ var formatMessage = _ref.formatMessage;
77
+ return [{
78
+ name: formatMessage(_messages.toolbarMessages.navigateToEditorToolbar),
79
+ type: 'navigation',
80
+ keymap: function keymap() {
81
+ return _keymaps.navToEditorToolbar;
82
+ }
83
+ }, {
84
+ name: formatMessage(_messages.toolbarMessages.navigateToFloatingToolbar),
85
+ type: 'navigation',
86
+ keymap: function keymap() {
87
+ return _keymaps.navToFloatingToolbar;
88
+ }
89
+ }];
90
+ };
91
+ var formatting = exports.formatting = function formatting(_ref2) {
92
+ var formatMessage = _ref2.formatMessage;
93
+ return [{
94
+ name: formatMessage(_messages.toolbarMessages.bold),
95
+ type: 'strong',
96
+ keymap: function keymap() {
97
+ return _keymaps.toggleBold;
98
+ },
99
+ autoFormatting: function autoFormatting() {
100
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
101
+ css: _styles.codeLg
102
+ }, "**", (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.toolbarMessages.bold), "**"));
103
+ }
104
+ }, {
105
+ name: formatMessage(_messages.toolbarMessages.italic),
106
+ type: 'em',
107
+ keymap: function keymap() {
108
+ return _keymaps.toggleItalic;
109
+ },
110
+ autoFormatting: function autoFormatting() {
111
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
112
+ css: _styles.codeLg
113
+ }, "*", (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.toolbarMessages.italic), "*"));
114
+ }
115
+ }, {
116
+ name: formatMessage(_messages.toolbarMessages.underline),
117
+ type: 'underline',
118
+ keymap: function keymap() {
119
+ return _keymaps.toggleUnderline;
120
+ }
121
+ }, {
122
+ name: formatMessage(_messages.toolbarMessages.strike),
123
+ type: 'strike',
124
+ keymap: function keymap() {
125
+ return _keymaps.toggleStrikethrough;
126
+ },
127
+ autoFormatting: function autoFormatting() {
128
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
129
+ css: _styles.codeLg
130
+ }, "~~", (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.toolbarMessages.strike), "~~"));
131
+ }
132
+ }, {
133
+ name: formatMessage(_messages.toolbarMessages.subscript),
134
+ type: 'subsup',
135
+ keymap: function keymap() {
136
+ return _keymaps.toggleSubscript;
137
+ }
138
+ }, {
139
+ name: formatMessage(_messages.toolbarMessages.superscript),
140
+ type: 'subsup',
141
+ keymap: function keymap() {
142
+ return _keymaps.toggleSuperscript;
143
+ }
144
+ }, {
145
+ name: formatMessage(_messages.blockTypeMessages.heading1),
146
+ type: 'heading',
147
+ keymap: function keymap() {
148
+ return _keymaps.toggleHeading1;
149
+ },
150
+ autoFormatting: function autoFormatting() {
151
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
152
+ css: _styles.codeSm
153
+ }, "#"), " ", (0, _react2.jsx)("span", {
154
+ css: _styles.codeLg
155
+ }, "Space"));
156
+ }
157
+ }, {
158
+ name: formatMessage(_messages.blockTypeMessages.heading2),
159
+ type: 'heading',
160
+ keymap: function keymap() {
161
+ return _keymaps.toggleHeading2;
162
+ },
163
+ autoFormatting: function autoFormatting() {
164
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
165
+ css: _styles.codeLg
166
+ }, "##"), " ", (0, _react2.jsx)("span", {
167
+ css: _styles.codeLg
168
+ }, "Space"));
169
+ }
170
+ }, {
171
+ name: formatMessage(_messages.blockTypeMessages.heading3),
172
+ type: 'heading',
173
+ keymap: function keymap() {
174
+ return _keymaps.toggleHeading3;
175
+ },
176
+ autoFormatting: function autoFormatting() {
177
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
178
+ css: _styles.codeLg
179
+ }, "###"), " ", (0, _react2.jsx)("span", {
180
+ css: _styles.codeLg
181
+ }, "Space"));
182
+ }
183
+ }, {
184
+ name: formatMessage(_messages.blockTypeMessages.heading4),
185
+ type: 'heading',
186
+ keymap: function keymap() {
187
+ return _keymaps.toggleHeading4;
188
+ },
189
+ autoFormatting: function autoFormatting() {
190
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
191
+ css: _styles.codeLg
192
+ }, "####"), " ", (0, _react2.jsx)("span", {
193
+ css: _styles.codeLg
194
+ }, "Space"));
195
+ }
196
+ }, {
197
+ name: formatMessage(_messages.blockTypeMessages.heading5),
198
+ type: 'heading',
199
+ keymap: function keymap() {
200
+ return _keymaps.toggleHeading5;
201
+ },
202
+ autoFormatting: function autoFormatting() {
203
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
204
+ css: _styles.codeLg
205
+ }, "#####"), " ", (0, _react2.jsx)("span", {
206
+ css: _styles.codeLg
207
+ }, "Space"));
208
+ }
209
+ }, {
210
+ name: formatMessage(_messages.blockTypeMessages.heading6),
211
+ type: 'heading',
212
+ keymap: function keymap() {
213
+ return _keymaps.toggleHeading6;
214
+ },
215
+ autoFormatting: function autoFormatting() {
216
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
217
+ css: _styles.codeLg
218
+ }, "######"), " ", (0, _react2.jsx)("span", {
219
+ css: _styles.codeLg
220
+ }, "Space"));
221
+ }
222
+ }, {
223
+ name: formatMessage(_messages.blockTypeMessages.normal),
224
+ type: 'paragraph',
225
+ keymap: function keymap() {
226
+ return _keymaps.setNormalText;
227
+ }
228
+ }, {
229
+ name: formatMessage(_messages.listMessages.orderedList),
230
+ type: 'orderedList',
231
+ keymap: function keymap() {
232
+ return _keymaps.toggleOrderedList;
233
+ },
234
+ autoFormatting: function autoFormatting() {
235
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
236
+ css: _styles.codeSm
237
+ }, "1."), " ", (0, _react2.jsx)("span", {
238
+ css: _styles.codeLg
239
+ }, "Space"));
240
+ }
241
+ }, {
242
+ name: formatMessage(_messages.listMessages.unorderedList),
243
+ type: 'bulletList',
244
+ keymap: function keymap() {
245
+ return _keymaps.toggleBulletList;
246
+ },
247
+ autoFormatting: function autoFormatting() {
248
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
249
+ css: _styles.codeSm
250
+ }, "*"), " ", (0, _react2.jsx)("span", {
251
+ css: _styles.codeLg
252
+ }, "Space"));
253
+ }
254
+ }, {
255
+ name: formatMessage(_messages.blockTypeMessages.blockquote),
256
+ type: 'blockquote',
257
+ keymap: function keymap() {
258
+ return _keymaps.toggleBlockQuote;
259
+ },
260
+ autoFormatting: function autoFormatting() {
261
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
262
+ css: _styles.codeLg
263
+ }, '>'), " ", (0, _react2.jsx)("span", {
264
+ css: _styles.codeLg
265
+ }, "Space"));
266
+ }
267
+ }, {
268
+ name: formatMessage(_messages.blockTypeMessages.codeblock),
269
+ type: 'codeBlock',
270
+ autoFormatting: function autoFormatting() {
271
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
272
+ css: _styles.codeLg
273
+ }, "```"));
274
+ }
275
+ }, {
276
+ name: formatMessage(_messages.toolbarInsertBlockMessages.horizontalRule),
277
+ type: 'rule',
278
+ keymap: function keymap() {
279
+ return _keymaps.insertRule;
280
+ },
281
+ autoFormatting: function autoFormatting() {
282
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
283
+ css: _styles.codeLg
284
+ }, "---"));
285
+ }
286
+ }, {
287
+ name: formatMessage(_messages.toolbarInsertBlockMessages.link),
288
+ type: 'link',
289
+ keymap: function keymap() {
290
+ return _keymaps.addLink;
291
+ },
292
+ autoFormatting: function autoFormatting() {
293
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
294
+ css: _styles.codeLg
295
+ }, "[", (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.toolbarInsertBlockMessages.link), "](http://a.com)"));
296
+ }
297
+ }, {
298
+ name: formatMessage(_messages.toolbarMessages.code),
299
+ type: 'code',
300
+ keymap: function keymap() {
301
+ return _keymaps.toggleCode;
302
+ },
303
+ autoFormatting: function autoFormatting() {
304
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
305
+ css: _styles.codeLg
306
+ }, "`", (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.toolbarMessages.code), "`"));
307
+ }
308
+ }, {
309
+ name: formatMessage(_messages.toolbarInsertBlockMessages.action),
310
+ type: 'taskItem',
311
+ autoFormatting: function autoFormatting() {
312
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
313
+ css: _styles.codeSm
314
+ }, "[]"), " ", (0, _react2.jsx)("span", {
315
+ css: _styles.codeLg
316
+ }, "Space"));
317
+ }
318
+ }, {
319
+ name: formatMessage(_messages.toolbarInsertBlockMessages.decision),
320
+ type: 'decisionItem',
321
+ autoFormatting: function autoFormatting() {
322
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
323
+ css: _styles.codeSm
324
+ }, "<>"), " ", (0, _react2.jsx)("span", {
325
+ css: _styles.codeLg
326
+ }, "Space"));
327
+ }
328
+ }, {
329
+ name: formatMessage(_messages.toolbarInsertBlockMessages.emoji),
330
+ type: 'emoji',
331
+ autoFormatting: function autoFormatting() {
332
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
333
+ css: _styles.codeLg
334
+ }, ":"));
335
+ }
336
+ }, {
337
+ name: formatMessage(_messages.toolbarInsertBlockMessages.mention),
338
+ type: 'mention',
339
+ autoFormatting: function autoFormatting() {
340
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
341
+ css: _styles.codeLg
342
+ }, "@"));
343
+ }
344
+ }, {
345
+ name: formatMessage(_messages.alignmentMessages.alignLeft),
346
+ type: 'alignment',
347
+ keymap: function keymap() {
348
+ return _keymaps.alignLeft;
349
+ }
350
+ }, {
351
+ name: formatMessage(_messages.alignmentMessages.alignRight),
352
+ type: 'alignment'
353
+ }];
354
+ };
355
+ var shortcutNamesWithoutKeymap = ['emoji', 'mention', 'quickInsert'];
356
+ var otherFormatting = function otherFormatting(_ref3) {
357
+ var formatMessage = _ref3.formatMessage;
358
+ return [{
359
+ name: formatMessage(_messages.toolbarMessages.clearFormatting),
360
+ type: 'clearFormatting',
361
+ keymap: function keymap() {
362
+ return _keymaps.clearFormatting;
363
+ }
364
+ }, {
365
+ name: formatMessage(_messages.undoRedoMessages.undo),
366
+ type: 'undo',
367
+ keymap: function keymap() {
368
+ return _keymaps.undo;
369
+ }
370
+ }, {
371
+ name: formatMessage(_messages.undoRedoMessages.redo),
372
+ type: 'redo',
373
+ keymap: function keymap() {
374
+ return _keymaps.redo;
375
+ }
376
+ }, {
377
+ name: formatMessage(messages.pastePlainText),
378
+ type: 'paste',
379
+ keymap: function keymap() {
380
+ return _keymaps.pastePlainText;
381
+ }
382
+ }, {
383
+ name: formatMessage(_messages.annotationMessages.createComment),
384
+ type: 'annotation',
385
+ keymap: function keymap() {
386
+ return _keymaps.addInlineComment;
387
+ }
388
+ }, {
389
+ name: formatMessage(messages.CheckUncheckActionItem),
390
+ type: 'checkbox',
391
+ keymap: function keymap() {
392
+ return _keymaps.toggleTaskItemCheckbox;
393
+ }
394
+ }];
395
+ };
396
+ var imageAutoFormat = {
397
+ name: 'Image',
398
+ type: 'image',
399
+ autoFormatting: function autoFormatting() {
400
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
401
+ css: _styles.codeLg
402
+ }, "![", (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.altText), "](http://www.image.com)"));
403
+ }
404
+ };
405
+ var quickInsertAutoFormat = function quickInsertAutoFormat(_ref4) {
406
+ var formatMessage = _ref4.formatMessage;
407
+ return {
408
+ name: formatMessage(messages.quickInsert),
409
+ type: 'quickInsert',
410
+ autoFormatting: function autoFormatting() {
411
+ return (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
412
+ css: _styles.codeLg
413
+ }, "/"));
414
+ }
415
+ };
416
+ };
417
+ var getKeyParts = function getKeyParts(keymap) {
418
+ var shortcut = keymap[_utils.browser.mac ? 'mac' : 'windows'];
419
+ if (_utils.browser.mac) {
420
+ shortcut = shortcut.replace('Alt', 'Opt');
421
+ }
422
+ return shortcut.replace(/\-(?=.)/g, ' + ').split(' ');
423
+ };
424
+ var getSupportedFormatting = exports.getSupportedFormatting = function getSupportedFormatting(schema, intl, imageEnabled, quickInsertEnabled) {
425
+ var supportedBySchema = formatting(intl).filter(function (format) {
426
+ return schema.nodes[format.type] || schema.marks[format.type];
427
+ });
428
+ return [].concat((0, _toConsumableArray2.default)(navigationKeymaps(intl)), (0, _toConsumableArray2.default)(supportedBySchema), (0, _toConsumableArray2.default)(imageEnabled ? [imageAutoFormat] : []), (0, _toConsumableArray2.default)(quickInsertEnabled ? [quickInsertAutoFormat(intl)] : []), (0, _toConsumableArray2.default)(otherFormatting(intl)));
429
+ };
430
+ var getComponentFromKeymap = exports.getComponentFromKeymap = function getComponentFromKeymap(keymap) {
431
+ var keyParts = getKeyParts(keymap);
432
+ return (0, _react2.jsx)("span", null, keyParts.map(function (part, index) {
433
+ if (part === '+') {
434
+ return (0, _react2.jsx)("span", {
435
+ key: "".concat(keyParts, "-").concat(index)
436
+ }, ' + ');
437
+ } else if (part === 'Cmd') {
438
+ return (0, _react2.jsx)("span", {
439
+ css: _styles.codeSm,
440
+ key: "".concat(keyParts, "-").concat(index)
441
+ }, "\u2318");
442
+ } else if (['ctrl', 'alt', 'opt', 'shift'].indexOf(part.toLowerCase()) >= 0) {
443
+ return (0, _react2.jsx)("span", {
444
+ css: _styles.codeMd,
445
+ key: "".concat(keyParts, "-").concat(index)
446
+ }, part);
447
+ } else if (['f9', 'f10'].indexOf(part.toLowerCase()) >= 0) {
448
+ return (0, _react2.jsx)("span", {
449
+ css: _styles.codeLg,
450
+ key: "".concat(keyParts, "-").concat(index)
451
+ }, part);
452
+ } else if (part.toLowerCase() === 'enter') {
453
+ return (0, _react2.jsx)("span", {
454
+ css: _styles.codeSm,
455
+ key: "".concat(keyParts, "-").concat(index)
456
+ }, '⏎');
457
+ }
458
+ return (0, _react2.jsx)("span", {
459
+ css: _styles.codeSm,
460
+ key: "".concat(keyParts, "-").concat(index)
461
+ }, part.toUpperCase());
462
+ }));
463
+ };
464
+ var ModalHeader = (0, _reactIntlNext.injectIntl)(function (_ref5) {
465
+ var formatMessage = _ref5.intl.formatMessage;
466
+ var _useModal = (0, _modalDialog.useModal)(),
467
+ onClose = _useModal.onClose;
468
+ return (0, _react2.jsx)("div", {
469
+ css: _styles.header
470
+ }, (0, _react2.jsx)("h1", {
471
+ css: _styles.dialogHeader
472
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.editorHelp)), (0, _react2.jsx)("div", null, (0, _react2.jsx)(_uiMenu.ToolbarButton
473
+ // @ts-ignore
474
+ , {
475
+ onClick: onClose,
476
+ title: formatMessage(messages.closeHelpDialog),
477
+ spacing: "compact",
478
+ iconBefore: (0, _react2.jsx)(_cross.default, {
479
+ label: formatMessage(messages.closeHelpDialog),
480
+ size: "medium"
481
+ })
482
+ })));
483
+ });
484
+ var ModalFooter = function ModalFooter() {
485
+ return (0, _react2.jsx)("div", {
486
+ css: _styles.footer
487
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, messages.helpDialogTips, {
488
+ values: {
489
+ keyMap: getComponentFromKeymap(_keymaps.openHelp)
490
+ }
491
+ })));
492
+ };
493
+ var HelpDialog = function HelpDialog(_ref6) {
494
+ var pluginInjectionApi = _ref6.pluginInjectionApi,
495
+ editorView = _ref6.editorView,
496
+ quickInsertEnabled = _ref6.quickInsertEnabled,
497
+ intl = _ref6.intl;
498
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['helpDialog']),
499
+ helpDialogState = _useSharedPluginState.helpDialogState;
500
+ var closeDialog = (0, _react.useCallback)(function () {
501
+ var tr = editorView.state.tr,
502
+ dispatch = editorView.dispatch;
503
+ (0, _commands.closeHelpCommand)(tr, dispatch);
504
+ }, [editorView]);
505
+ var handleEsc = (0, _react.useCallback)(function (e) {
506
+ if (e.key === 'Escape' && helpDialogState !== null && helpDialogState !== void 0 && helpDialogState.isVisible) {
507
+ closeDialog();
508
+ }
509
+ }, [closeDialog, helpDialogState === null || helpDialogState === void 0 ? void 0 : helpDialogState.isVisible]);
510
+ (0, _react.useEffect)(function () {
511
+ document.addEventListener('keydown', handleEsc);
512
+ return function () {
513
+ document.removeEventListener('keydown', handleEsc);
514
+ };
515
+ }, [handleEsc]);
516
+ var formatting = getSupportedFormatting(editorView.state.schema, intl, helpDialogState === null || helpDialogState === void 0 ? void 0 : helpDialogState.imageEnabled, quickInsertEnabled);
517
+ return (0, _react2.jsx)(_modalDialog.ModalTransition, null, helpDialogState !== null && helpDialogState !== void 0 && helpDialogState.isVisible ? (0, _react2.jsx)(_modalDialog.default, {
518
+ width: "large",
519
+ onClose: closeDialog,
520
+ testId: "help-modal-dialog"
521
+ }, (0, _react2.jsx)(ModalHeader, null), (0, _react2.jsx)("div", {
522
+ css: _styles.contentWrapper
523
+ }, (0, _react2.jsx)("div", {
524
+ css: _styles.line
525
+ }), (0, _react2.jsx)("div", {
526
+ css: _styles.content
527
+ }, (0, _react2.jsx)("div", {
528
+ css: _styles.column
529
+ }, (0, _react2.jsx)("h2", {
530
+ css: _styles.title
531
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.keyboardShortcuts)), (0, _react2.jsx)("ul", null, formatting.filter(function (form) {
532
+ var keymap = form.keymap && form.keymap();
533
+ return keymap && keymap[_utils.browser.mac ? 'mac' : 'windows'];
534
+ }).map(function (form) {
535
+ return (0, _react2.jsx)("li", {
536
+ css: _styles.row,
537
+ key: "textFormatting-".concat(form.name)
538
+ }, (0, _react2.jsx)("span", null, form.name), getComponentFromKeymap(form.keymap()));
539
+ }), formatting.filter(function (form) {
540
+ return shortcutNamesWithoutKeymap.indexOf(form.type) !== -1;
541
+ }).filter(function (form) {
542
+ return form.autoFormatting;
543
+ }).map(function (form) {
544
+ return (0, _react2.jsx)("li", {
545
+ css: _styles.row,
546
+ key: "autoFormatting-".concat(form.name)
547
+ }, (0, _react2.jsx)("span", null, form.name), form.autoFormatting());
548
+ }))), (0, _react2.jsx)("div", {
549
+ css: _styles.line
550
+ }), (0, _react2.jsx)("div", {
551
+ css: _styles.column
552
+ }, (0, _react2.jsx)("h2", {
553
+ css: _styles.title
554
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.markdown)), (0, _react2.jsx)("ul", null, formatting.filter(function (form) {
555
+ return shortcutNamesWithoutKeymap.indexOf(form.type) === -1;
556
+ }).map(function (form) {
557
+ return form.autoFormatting && (0, _react2.jsx)("li", {
558
+ key: "autoFormatting-".concat(form.name),
559
+ css: _styles.row
560
+ }, (0, _react2.jsx)("span", null, form.name), form.autoFormatting());
561
+ }))))), (0, _react2.jsx)(ModalFooter, null)) : null);
562
+ };
563
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(HelpDialog);
@@ -0,0 +1,50 @@
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.title = exports.row = exports.line = exports.header = exports.footer = exports.dialogHeader = exports.contentWrapper = exports.content = exports.column = exports.codeSm = exports.codeMd = exports.codeLg = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = require("@emotion/react");
11
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
12
+ var _colors = _interopRequireWildcard(require("@atlaskit/theme/colors"));
13
+ var colors = _colors;
14
+ var _constants = require("@atlaskit/theme/constants");
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
16
+ 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); }
17
+ 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; }
18
+ var header = exports.header = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n z-index: ", ";\n min-height: 24px;\n padding: ", " ", ";\n font-size: ", ";\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-shadow: 'none';\n color: ", ";\n background-color: ", ";\n border-radius: ", "px;\n"])), _editorSharedStyles.akEditorUnitZIndex, "var(--ds-space-250, 20px)", "var(--ds-space-500, 40px)", (0, _editorSharedStyles.relativeFontSizeToBase16)(24), "var(--ds-text, ".concat(colors.N400, ")"), "var(--ds-background-neutral-subtle, ".concat(colors.N0, ")"), (0, _constants.borderRadius)());
19
+ var footer = exports.footer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n z-index: ", ";\n font-size: ", ";\n line-height: 20px;\n color: ", ";\n padding: ", ";\n text-align: right;\n box-shadow: 'none';\n"])), _editorSharedStyles.akEditorUnitZIndex, (0, _editorSharedStyles.relativeFontSizeToBase16)(14), "var(--ds-text-subtlest, ".concat(colors.N300, ")"), "var(--ds-space-300, 24px)");
20
+ var contentWrapper = exports.contentWrapper = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: ", " 44px;\n border-bottom-right-radius: ", "px;\n overflow: auto;\n position: relative;\n color: ", ";\n background-color: ", ";\n"])), "var(--ds-space-250, 20px)", (0, _constants.borderRadius)(), "var(--ds-text-subtle, ".concat(colors.N400, ")"), "var(--ds-background-neutral-subtle, ".concat(colors.N0, ")"));
21
+ var line = exports.line = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n content: '';\n display: block;\n height: 2px;\n left: 0;\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n min-width: 604px;\n"])), "var(--ds-background-neutral-subtle, #fff)");
22
+ var content = exports.content = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n min-width: 524px;\n width: 100%;\n position: relative;\n display: flex;\n justify-content: space-between;\n"])));
23
+ var column = exports.column = {
24
+ width: '44%',
25
+ '& > ul': {
26
+ padding: 0
27
+ }
28
+ };
29
+ var row = exports.row = (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n margin: ", " 0;\n display: flex;\n justify-content: space-between;\n"])), "var(--ds-space-250, 20px)");
30
+ var dialogHeader = exports.dialogHeader = {
31
+ '&': {
32
+ fontSize: (0, _editorSharedStyles.relativeFontSizeToBase16)(24),
33
+ fontWeight: 400,
34
+ color: "var(--ds-text-subtle, ".concat(_colors.N400, ")"),
35
+ letterSpacing: 'normal',
36
+ lineHeight: 1.42857142857143
37
+ }
38
+ };
39
+ var title = exports.title = {
40
+ '&': {
41
+ fontSize: (0, _editorSharedStyles.relativeFontSizeToBase16)(18),
42
+ fontWeight: 400,
43
+ color: "var(--ds-text-subtle, ".concat(_colors.N400, ")"),
44
+ letterSpacing: 'normal',
45
+ lineHeight: 1.42857142857143
46
+ }
47
+ };
48
+ var codeSm = exports.codeSm = (0, _react.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n border-radius: ", "px;\n width: 24px;\n display: inline-block;\n height: 24px;\n line-height: 24px;\n text-align: center;\n"])), "var(--ds-background-neutral, ".concat(colors.N20, ")"), (0, _constants.borderRadius)());
49
+ var codeMd = exports.codeMd = (0, _react.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n border-radius: ", "px;\n display: inline-block;\n height: 24px;\n line-height: 24px;\n width: 50px;\n text-align: center;\n"])), "var(--ds-background-neutral, ".concat(colors.N20, ")"), (0, _constants.borderRadius)());
50
+ var codeLg = exports.codeLg = (0, _react.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n border-radius: ", "px;\n display: inline-block;\n height: 24px;\n line-height: 24px;\n padding: 0 10px;\n text-align: center;\n"])), "var(--ds-background-neutral, ".concat(colors.N20, ")"), (0, _constants.borderRadius)());
@@ -0,0 +1,13 @@
1
+ import { pluginKey } from './plugin-key';
2
+ export const openHelpCommand = (tr, dispatch) => {
3
+ tr = tr.setMeta(pluginKey, true);
4
+ if (dispatch) {
5
+ dispatch(tr);
6
+ return true;
7
+ }
8
+ return false;
9
+ };
10
+ export const closeHelpCommand = (tr, dispatch) => {
11
+ tr = tr.setMeta(pluginKey, false);
12
+ dispatch(tr);
13
+ };
@@ -1 +1,6 @@
1
- export {};
1
+ export { helpDialogPlugin } from './plugin';
2
+ export {
3
+ /**
4
+ * @deprecated DO NOT USE, it is only available to maintain an existing deprecated API
5
+ */
6
+ openHelpCommand as deprecatedOpenHelpCommand } from './commands';
@@ -0,0 +1,2 @@
1
+ import { PluginKey } from '@atlaskit/editor-prosemirror/state';
2
+ export const pluginKey = new PluginKey('helpDialogPlugin');