@atlaskit/editor-common 74.29.2 → 74.30.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 (167) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/i18n/cs.js +19 -0
  3. package/dist/cjs/i18n/da.js +19 -0
  4. package/dist/cjs/i18n/de.js +19 -0
  5. package/dist/cjs/i18n/es.js +19 -0
  6. package/dist/cjs/i18n/fi.js +19 -0
  7. package/dist/cjs/i18n/fr.js +19 -0
  8. package/dist/cjs/i18n/hu.js +19 -0
  9. package/dist/cjs/i18n/it.js +19 -0
  10. package/dist/cjs/i18n/ja.js +19 -0
  11. package/dist/cjs/i18n/ko.js +19 -0
  12. package/dist/cjs/i18n/nb.js +19 -0
  13. package/dist/cjs/i18n/nl.js +19 -0
  14. package/dist/cjs/i18n/pl.js +19 -0
  15. package/dist/cjs/i18n/pt_BR.js +19 -0
  16. package/dist/cjs/i18n/ru.js +19 -0
  17. package/dist/cjs/i18n/sv.js +19 -0
  18. package/dist/cjs/i18n/th.js +19 -0
  19. package/dist/cjs/i18n/tr.js +19 -0
  20. package/dist/cjs/i18n/uk.js +19 -0
  21. package/dist/cjs/i18n/vi.js +19 -0
  22. package/dist/cjs/i18n/zh.js +19 -0
  23. package/dist/cjs/i18n/zh_TW.js +19 -0
  24. package/dist/cjs/mark/commands.js +201 -0
  25. package/dist/cjs/mark/index.js +30 -0
  26. package/dist/cjs/messages/full-page.js +25 -0
  27. package/dist/cjs/messages/index.js +7 -0
  28. package/dist/cjs/monitoring/error.js +1 -1
  29. package/dist/cjs/ui/DropList/index.js +1 -1
  30. package/dist/cjs/ui/Toolbar/index.js +8 -0
  31. package/dist/cjs/ui/index.js +7 -0
  32. package/dist/cjs/ui-menu/DropdownMenu/index.js +16 -2
  33. package/dist/cjs/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +219 -0
  34. package/dist/cjs/ui-menu/index.js +23 -4
  35. package/dist/cjs/version.json +1 -1
  36. package/dist/es2019/i18n/cs.js +19 -0
  37. package/dist/es2019/i18n/da.js +19 -0
  38. package/dist/es2019/i18n/de.js +19 -0
  39. package/dist/es2019/i18n/es.js +19 -0
  40. package/dist/es2019/i18n/fi.js +19 -0
  41. package/dist/es2019/i18n/fr.js +19 -0
  42. package/dist/es2019/i18n/hu.js +19 -0
  43. package/dist/es2019/i18n/it.js +19 -0
  44. package/dist/es2019/i18n/ja.js +19 -0
  45. package/dist/es2019/i18n/ko.js +19 -0
  46. package/dist/es2019/i18n/nb.js +19 -0
  47. package/dist/es2019/i18n/nl.js +19 -0
  48. package/dist/es2019/i18n/pl.js +19 -0
  49. package/dist/es2019/i18n/pt_BR.js +19 -0
  50. package/dist/es2019/i18n/ru.js +19 -0
  51. package/dist/es2019/i18n/sv.js +19 -0
  52. package/dist/es2019/i18n/th.js +19 -0
  53. package/dist/es2019/i18n/tr.js +19 -0
  54. package/dist/es2019/i18n/uk.js +19 -0
  55. package/dist/es2019/i18n/vi.js +19 -0
  56. package/dist/es2019/i18n/zh.js +19 -0
  57. package/dist/es2019/i18n/zh_TW.js +19 -0
  58. package/dist/es2019/mark/commands.js +205 -0
  59. package/dist/es2019/mark/index.js +1 -0
  60. package/dist/es2019/messages/full-page.js +18 -0
  61. package/dist/es2019/messages/index.js +1 -0
  62. package/dist/es2019/monitoring/error.js +1 -1
  63. package/dist/es2019/ui/DropList/index.js +1 -1
  64. package/dist/es2019/ui/Toolbar/index.js +1 -0
  65. package/dist/es2019/ui/index.js +2 -1
  66. package/dist/es2019/ui-menu/DropdownMenu/index.js +16 -2
  67. package/dist/es2019/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +209 -0
  68. package/dist/es2019/ui-menu/index.js +5 -4
  69. package/dist/es2019/version.json +1 -1
  70. package/dist/esm/i18n/cs.js +19 -0
  71. package/dist/esm/i18n/da.js +19 -0
  72. package/dist/esm/i18n/de.js +19 -0
  73. package/dist/esm/i18n/es.js +19 -0
  74. package/dist/esm/i18n/fi.js +19 -0
  75. package/dist/esm/i18n/fr.js +19 -0
  76. package/dist/esm/i18n/hu.js +19 -0
  77. package/dist/esm/i18n/it.js +19 -0
  78. package/dist/esm/i18n/ja.js +19 -0
  79. package/dist/esm/i18n/ko.js +19 -0
  80. package/dist/esm/i18n/nb.js +19 -0
  81. package/dist/esm/i18n/nl.js +19 -0
  82. package/dist/esm/i18n/pl.js +19 -0
  83. package/dist/esm/i18n/pt_BR.js +19 -0
  84. package/dist/esm/i18n/ru.js +19 -0
  85. package/dist/esm/i18n/sv.js +19 -0
  86. package/dist/esm/i18n/th.js +19 -0
  87. package/dist/esm/i18n/tr.js +19 -0
  88. package/dist/esm/i18n/uk.js +19 -0
  89. package/dist/esm/i18n/vi.js +19 -0
  90. package/dist/esm/i18n/zh.js +19 -0
  91. package/dist/esm/i18n/zh_TW.js +19 -0
  92. package/dist/esm/mark/commands.js +190 -0
  93. package/dist/esm/mark/index.js +1 -0
  94. package/dist/esm/messages/full-page.js +18 -0
  95. package/dist/esm/messages/index.js +1 -0
  96. package/dist/esm/monitoring/error.js +1 -1
  97. package/dist/esm/ui/DropList/index.js +1 -1
  98. package/dist/esm/ui/Toolbar/index.js +1 -0
  99. package/dist/esm/ui/index.js +2 -1
  100. package/dist/esm/ui-menu/DropdownMenu/index.js +15 -2
  101. package/dist/esm/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +207 -0
  102. package/dist/esm/ui-menu/index.js +5 -4
  103. package/dist/esm/version.json +1 -1
  104. package/dist/types/i18n/cs.d.ts +19 -0
  105. package/dist/types/i18n/da.d.ts +19 -0
  106. package/dist/types/i18n/de.d.ts +19 -0
  107. package/dist/types/i18n/es.d.ts +19 -0
  108. package/dist/types/i18n/fi.d.ts +19 -0
  109. package/dist/types/i18n/fr.d.ts +19 -0
  110. package/dist/types/i18n/hu.d.ts +19 -0
  111. package/dist/types/i18n/it.d.ts +19 -0
  112. package/dist/types/i18n/ja.d.ts +19 -0
  113. package/dist/types/i18n/ko.d.ts +19 -0
  114. package/dist/types/i18n/nb.d.ts +19 -0
  115. package/dist/types/i18n/nl.d.ts +19 -0
  116. package/dist/types/i18n/pl.d.ts +19 -0
  117. package/dist/types/i18n/pt_BR.d.ts +19 -0
  118. package/dist/types/i18n/ru.d.ts +19 -0
  119. package/dist/types/i18n/sv.d.ts +19 -0
  120. package/dist/types/i18n/th.d.ts +19 -0
  121. package/dist/types/i18n/tr.d.ts +19 -0
  122. package/dist/types/i18n/uk.d.ts +19 -0
  123. package/dist/types/i18n/vi.d.ts +19 -0
  124. package/dist/types/i18n/zh.d.ts +19 -0
  125. package/dist/types/i18n/zh_TW.d.ts +19 -0
  126. package/dist/types/mark/commands.d.ts +18 -0
  127. package/dist/types/mark/index.d.ts +1 -0
  128. package/dist/types/messages/full-page.d.ts +17 -0
  129. package/dist/types/messages/index.d.ts +1 -0
  130. package/dist/types/ui/Toolbar/index.d.ts +5 -0
  131. package/dist/types/ui/index.d.ts +2 -0
  132. package/dist/types/ui-menu/DropdownMenu/index.d.ts +2 -1
  133. package/dist/types/ui-menu/ToolbarArrowKeyNavigationProvider/index.d.ts +30 -0
  134. package/dist/types/ui-menu/index.d.ts +7 -6
  135. package/dist/types-ts4.5/i18n/cs.d.ts +19 -0
  136. package/dist/types-ts4.5/i18n/da.d.ts +19 -0
  137. package/dist/types-ts4.5/i18n/de.d.ts +19 -0
  138. package/dist/types-ts4.5/i18n/es.d.ts +19 -0
  139. package/dist/types-ts4.5/i18n/fi.d.ts +19 -0
  140. package/dist/types-ts4.5/i18n/fr.d.ts +19 -0
  141. package/dist/types-ts4.5/i18n/hu.d.ts +19 -0
  142. package/dist/types-ts4.5/i18n/it.d.ts +19 -0
  143. package/dist/types-ts4.5/i18n/ja.d.ts +19 -0
  144. package/dist/types-ts4.5/i18n/ko.d.ts +19 -0
  145. package/dist/types-ts4.5/i18n/nb.d.ts +19 -0
  146. package/dist/types-ts4.5/i18n/nl.d.ts +19 -0
  147. package/dist/types-ts4.5/i18n/pl.d.ts +19 -0
  148. package/dist/types-ts4.5/i18n/pt_BR.d.ts +19 -0
  149. package/dist/types-ts4.5/i18n/ru.d.ts +19 -0
  150. package/dist/types-ts4.5/i18n/sv.d.ts +19 -0
  151. package/dist/types-ts4.5/i18n/th.d.ts +19 -0
  152. package/dist/types-ts4.5/i18n/tr.d.ts +19 -0
  153. package/dist/types-ts4.5/i18n/uk.d.ts +19 -0
  154. package/dist/types-ts4.5/i18n/vi.d.ts +19 -0
  155. package/dist/types-ts4.5/i18n/zh.d.ts +19 -0
  156. package/dist/types-ts4.5/i18n/zh_TW.d.ts +19 -0
  157. package/dist/types-ts4.5/mark/commands.d.ts +18 -0
  158. package/dist/types-ts4.5/mark/index.d.ts +1 -0
  159. package/dist/types-ts4.5/messages/full-page.d.ts +17 -0
  160. package/dist/types-ts4.5/messages/index.d.ts +1 -0
  161. package/dist/types-ts4.5/ui/Toolbar/index.d.ts +5 -0
  162. package/dist/types-ts4.5/ui/index.d.ts +2 -0
  163. package/dist/types-ts4.5/ui-menu/DropdownMenu/index.d.ts +2 -1
  164. package/dist/types-ts4.5/ui-menu/ToolbarArrowKeyNavigationProvider/index.d.ts +30 -0
  165. package/dist/types-ts4.5/ui-menu/index.d.ts +7 -6
  166. package/mark/package.json +15 -0
  167. package/package.json +6 -4
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "applyMarkOnRange", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _commands.applyMarkOnRange;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "filterChildrenBetween", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _commands.filterChildrenBetween;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "toggleMark", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _commands.toggleMark;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "transformSmartCharsMentionsAndEmojis", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _commands.transformSmartCharsMentionsAndEmojis;
28
+ }
29
+ });
30
+ var _commands = require("./commands");
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.messages = void 0;
7
+ var _reactIntlNext = require("react-intl-next");
8
+ var messages = (0, _reactIntlNext.defineMessages)({
9
+ toolbarLabel: {
10
+ id: 'fabric.editor.toolbarLabel',
11
+ defaultMessage: 'Editor toolbar',
12
+ description: 'Label for the ARIA region landmark'
13
+ },
14
+ pageActionsLabel: {
15
+ id: 'fabric.editor.pageActionsLabel',
16
+ defaultMessage: 'Page actions',
17
+ description: 'Label for the ARIA region landmark'
18
+ },
19
+ editableContentLabel: {
20
+ id: 'fabric.editor.editableContentLabel',
21
+ defaultMessage: 'Editable content',
22
+ description: 'Label for the ARIA region landmark'
23
+ }
24
+ });
25
+ exports.messages = messages;
@@ -22,6 +22,12 @@ Object.defineProperty(exports, "codeBlockButtonMessages", {
22
22
  }
23
23
  });
24
24
  exports.default = void 0;
25
+ Object.defineProperty(exports, "fullPageMessages", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _fullPage.messages;
29
+ }
30
+ });
25
31
  Object.defineProperty(exports, "linkMessages", {
26
32
  enumerable: true,
27
33
  get: function get() {
@@ -61,6 +67,7 @@ var _codeBlockButton = require("./codeBlockButton");
61
67
  var _insertBlock = require("./insert-block");
62
68
  var _mediaAndEmbedToolbar = require("./media-and-embed-toolbar");
63
69
  var _card = require("./card");
70
+ var _fullPage = require("./full-page");
64
71
  var _default = (0, _reactIntlNext.defineMessages)({
65
72
  layoutFixedWidth: {
66
73
  id: 'fabric.editor.layoutFixedWidth',
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
16
16
  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; }
17
17
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
18
18
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
19
- var packageVersion = "74.29.2";
19
+ var packageVersion = "74.30.0";
20
20
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
21
21
  // Remove URL as it has UGC
22
22
  // TODO: Sanitise the URL instead of just removing it
@@ -24,7 +24,7 @@ var _templateObject, _templateObject2, _templateObject3;
24
24
  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); }; }
25
25
  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; } } /** @jsx jsx */
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "74.29.2";
27
+ var packageVersion = "74.30.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var DropList = /*#__PURE__*/function (_Component) {
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EDIT_AREA_ID = void 0;
7
+ var EDIT_AREA_ID = 'ak-editor-textarea';
8
+ exports.EDIT_AREA_ID = EDIT_AREA_ID;
@@ -59,6 +59,12 @@ Object.defineProperty(exports, "DEFAULT_IMAGE_WIDTH", {
59
59
  return _MediaSingle.DEFAULT_IMAGE_WIDTH;
60
60
  }
61
61
  });
62
+ Object.defineProperty(exports, "EDIT_AREA_ID", {
63
+ enumerable: true,
64
+ get: function get() {
65
+ return _Toolbar.EDIT_AREA_ID;
66
+ }
67
+ });
62
68
  Object.defineProperty(exports, "ErrorMessage", {
63
69
  enumerable: true,
64
70
  get: function get() {
@@ -405,5 +411,6 @@ var _styled2 = require("./ResizerLegacy/styled");
405
411
  var _styles = require("./PanelTextInput/styles");
406
412
  var _PanelTextInput = _interopRequireDefault(require("./PanelTextInput"));
407
413
  var _announcer = _interopRequireDefault(require("./Announcer/announcer"));
414
+ var _Toolbar = require("./Toolbar");
408
415
  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); }
409
416
  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; }
@@ -5,7 +5,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.default = exports.DropdownMenuWithKeyboardNavigation = void 0;
9
+ var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
@@ -26,6 +27,7 @@ var _colors = require("@atlaskit/theme/colors");
26
27
  var _components = require("@atlaskit/theme/components");
27
28
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
28
29
  var _styles = require("../../styles");
30
+ var _ToolbarArrowKeyNavigationProvider = require("../../ui-menu/ToolbarArrowKeyNavigationProvider");
29
31
  var _uiReact = require("../../ui-react");
30
32
  var _DropList = _interopRequireDefault(require("../../ui/DropList"));
31
33
  var _Popup = _interopRequireDefault(require("../../ui/Popup"));
@@ -327,4 +329,16 @@ function DropdownMenuItem(_ref) {
327
329
  }, dropListItem);
328
330
  }
329
331
  return dropListItem;
330
- }
332
+ }
333
+ var DropdownMenuWithKeyboardNavigation = /*#__PURE__*/_react.default.memo(function (_ref2) {
334
+ var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref2), _ref2));
335
+ var keyDownHandlerContext = (0, _react.useContext)(_ToolbarArrowKeyNavigationProvider.KeyDownHandlerContext);
336
+ //This context is to handle the tab, Arrow Right/Left key events for dropdown.
337
+ //Default context has the void callbacks for above key events
338
+ return (0, _react2.jsx)(DropdownMenuWrapper, (0, _extends2.default)({
339
+ arrowKeyNavigationProviderOptions: _objectSpread(_objectSpread({}, props.arrowKeyNavigationProviderOptions), {}, {
340
+ keyDownHandlerContext: keyDownHandlerContext
341
+ })
342
+ }, props));
343
+ });
344
+ exports.DropdownMenuWithKeyboardNavigation = DropdownMenuWithKeyboardNavigation;
@@ -0,0 +1,219 @@
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.ToolbarArrowKeyNavigationProvider = exports.KeyDownHandlerContext = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _react2 = require("@emotion/react");
12
+ var _messages = require("../../messages");
13
+ var _ui = require("../../ui");
14
+ var _templateObject;
15
+ /** @jsx jsx */
16
+ /* eslint-disable no-console */
17
+ 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); }
18
+ 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; }
19
+ /*
20
+ ** The context is used to handle the keydown events of submenus.
21
+ ** Because the keyboard navigation is explicitly managed for main toolbar items
22
+ ** Few key presses such as Tab,Arrow Right/Left need ot be handled here via context
23
+ */
24
+ var KeyDownHandlerContext = /*#__PURE__*/_react.default.createContext({
25
+ handleArrowLeft: function handleArrowLeft() {},
26
+ handleArrowRight: function handleArrowRight() {},
27
+ handleTab: function handleTab() {}
28
+ });
29
+ exports.KeyDownHandlerContext = KeyDownHandlerContext;
30
+ var centeredToolbarContainer = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n width: 100%;\n align-items: center;\n"])));
31
+
32
+ /**
33
+ * This component is a wrapper of main toolbar which listens to keydown events of children
34
+ * and handles left/right arrow key navigation for all focusable elements
35
+ * @param
36
+ * @returns
37
+ */
38
+ var ToolbarArrowKeyNavigationProvider = function ToolbarArrowKeyNavigationProvider(_ref) {
39
+ var children = _ref.children,
40
+ editorView = _ref.editorView,
41
+ childComponentSelector = _ref.childComponentSelector,
42
+ handleEscape = _ref.handleEscape,
43
+ disableArrowKeyNavigation = _ref.disableArrowKeyNavigation,
44
+ isShortcutToFocusToolbar = _ref.isShortcutToFocusToolbar,
45
+ editorAppearance = _ref.editorAppearance,
46
+ useStickyToolbar = _ref.useStickyToolbar,
47
+ intl = _ref.intl;
48
+ var wrapperRef = (0, _react.useRef)(null);
49
+ var selectedItemIndex = (0, _react.useRef)(0);
50
+ var incrementIndex = (0, _react.useCallback)(function (list) {
51
+ var index = 0;
52
+ if (document.activeElement) {
53
+ index = list.indexOf(document.activeElement);
54
+ index = (index + 1) % list.length;
55
+ }
56
+ selectedItemIndex.current = index;
57
+ }, []);
58
+ var decrementIndex = (0, _react.useCallback)(function (list) {
59
+ var index = 0;
60
+ if (document.activeElement) {
61
+ index = list.indexOf(document.activeElement);
62
+ index = (list.length + index - 1) % list.length;
63
+ }
64
+ selectedItemIndex.current = index;
65
+ }, []);
66
+ var handleArrowRight = function handleArrowRight() {
67
+ var _filteredFocusableEle;
68
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
69
+ incrementIndex(filteredFocusableElements);
70
+ (_filteredFocusableEle = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle === void 0 ? void 0 : _filteredFocusableEle.focus();
71
+ };
72
+ var handleArrowLeft = function handleArrowLeft() {
73
+ var _filteredFocusableEle2;
74
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
75
+ decrementIndex(filteredFocusableElements);
76
+ (_filteredFocusableEle2 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle2 === void 0 ? void 0 : _filteredFocusableEle2.focus();
77
+ };
78
+ var handleTab = function handleTab() {
79
+ var _filteredFocusableEle3;
80
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
81
+ (_filteredFocusableEle3 = filteredFocusableElements[selectedItemIndex.current]) === null || _filteredFocusableEle3 === void 0 ? void 0 : _filteredFocusableEle3.focus();
82
+ };
83
+ var handleTabLocal = function handleTabLocal() {
84
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
85
+ filteredFocusableElements.forEach(function (element) {
86
+ element.setAttribute('tabindex', '-1');
87
+ });
88
+ filteredFocusableElements[selectedItemIndex.current].setAttribute('tabindex', '0');
89
+ };
90
+ var focusAndScrollToElement = function focusAndScrollToElement(element) {
91
+ var scrollToElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
92
+ if (scrollToElement) {
93
+ element === null || element === void 0 ? void 0 : element.scrollIntoView({
94
+ behavior: 'smooth',
95
+ block: 'center',
96
+ inline: 'nearest'
97
+ });
98
+ }
99
+ element.focus();
100
+ };
101
+ var submenuKeydownHandleContext = {
102
+ handleArrowLeft: handleArrowLeft,
103
+ handleArrowRight: handleArrowRight,
104
+ handleTab: handleTab
105
+ };
106
+ (0, _react.useLayoutEffect)(function () {
107
+ if (!wrapperRef.current || disableArrowKeyNavigation) {
108
+ return;
109
+ }
110
+ var element = wrapperRef.current;
111
+
112
+ /**
113
+ * To handle the key events on the list
114
+ * @param event
115
+ */
116
+ var handleKeyDown = function handleKeyDown(event) {
117
+ var _document$querySelect, _document$querySelect2, _wrapperRef$current;
118
+ //To trap the focus inside the horizontal toolbar for left and right arrow keys
119
+ var targetElement = event.target;
120
+
121
+ //To filter out the events outside the child component
122
+ if (!targetElement.closest("".concat(childComponentSelector))) {
123
+ return;
124
+ }
125
+
126
+ //The key events are from child components such as dropdown menus / popups are ignored
127
+ if ((_document$querySelect = document.querySelector('[data-role="droplistContent"], [data-test-id="color-picker-menu"], [data-emoji-picker-container="true"]')) !== null && _document$querySelect !== void 0 && _document$querySelect.contains(targetElement) || (_document$querySelect2 = document.querySelector('[data-test-id="color-picker-menu"]')) !== null && _document$querySelect2 !== void 0 && _document$querySelect2.contains(targetElement) || event.key === 'ArrowUp' || event.key === 'ArrowDown' || disableArrowKeyNavigation) {
128
+ return;
129
+ }
130
+ var menuWrapper = document.querySelector('.menu-key-handler-wrapper');
131
+ if (menuWrapper) {
132
+ // if menu wrapper exists, then a menu is open and arrow keys will be handled by MenuArrowKeyNavigationProvider
133
+ return;
134
+ }
135
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
136
+ if (!filteredFocusableElements || (filteredFocusableElements === null || filteredFocusableElements === void 0 ? void 0 : filteredFocusableElements.length) === 0) {
137
+ return;
138
+ }
139
+
140
+ //This is kind of hack to reset the current focused toolbar item
141
+ //to handle some use cases such as Tab in/out of main toolbar
142
+ if (!((_wrapperRef$current = wrapperRef.current) !== null && _wrapperRef$current !== void 0 && _wrapperRef$current.contains(targetElement))) {
143
+ selectedItemIndex.current = -1;
144
+ } else {
145
+ selectedItemIndex.current = filteredFocusableElements.indexOf(targetElement) > -1 ? filteredFocusableElements.indexOf(targetElement) : selectedItemIndex.current;
146
+ }
147
+
148
+ //do not scroll to focused element for sticky toolbar when navigating with arrows to avoid unnesessary scroll jump
149
+ var allowScrollToElement = !(editorAppearance === 'comment' && !!useStickyToolbar);
150
+ switch (event.key) {
151
+ case 'ArrowRight':
152
+ incrementIndex(filteredFocusableElements);
153
+ focusAndScrollToElement(filteredFocusableElements[selectedItemIndex.current], allowScrollToElement);
154
+ event.preventDefault();
155
+ break;
156
+ case 'ArrowLeft':
157
+ decrementIndex(filteredFocusableElements);
158
+ focusAndScrollToElement(filteredFocusableElements[selectedItemIndex.current], allowScrollToElement);
159
+ event.preventDefault();
160
+ break;
161
+ case 'Tab':
162
+ handleTabLocal();
163
+ break;
164
+ case 'Escape':
165
+ handleEscape(event);
166
+ break;
167
+ default:
168
+ }
169
+ };
170
+ var globalKeyDownHandler = function globalKeyDownHandler(event) {
171
+ //To focus the first element in the toolbar
172
+ if (isShortcutToFocusToolbar(event)) {
173
+ var _filteredFocusableEle4, _filteredFocusableEle5;
174
+ var filteredFocusableElements = getFilteredFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
175
+ (_filteredFocusableEle4 = filteredFocusableElements[0]) === null || _filteredFocusableEle4 === void 0 ? void 0 : _filteredFocusableEle4.focus();
176
+ (_filteredFocusableEle5 = filteredFocusableElements[0]) === null || _filteredFocusableEle5 === void 0 ? void 0 : _filteredFocusableEle5.scrollIntoView({
177
+ behavior: 'smooth',
178
+ block: 'center',
179
+ inline: 'nearest'
180
+ });
181
+ }
182
+ };
183
+ element === null || element === void 0 ? void 0 : element.addEventListener('keydown', handleKeyDown);
184
+ var editorViewDom = editorView === null || editorView === void 0 ? void 0 : editorView.dom;
185
+ if (isShortcutToFocusToolbar) {
186
+ editorViewDom === null || editorViewDom === void 0 ? void 0 : editorViewDom.addEventListener('keydown', globalKeyDownHandler);
187
+ }
188
+ return function () {
189
+ element === null || element === void 0 ? void 0 : element.removeEventListener('keydown', handleKeyDown);
190
+ if (isShortcutToFocusToolbar) {
191
+ editorViewDom === null || editorViewDom === void 0 ? void 0 : editorViewDom.removeEventListener('keydown', globalKeyDownHandler);
192
+ }
193
+ };
194
+ }, [selectedItemIndex, wrapperRef, editorView, disableArrowKeyNavigation, handleEscape, childComponentSelector, incrementIndex, decrementIndex, isShortcutToFocusToolbar, editorAppearance, useStickyToolbar]);
195
+ return (0, _react2.jsx)("div", {
196
+ css: editorAppearance === 'comment' && centeredToolbarContainer,
197
+ className: "custom-key-handler-wrapper",
198
+ ref: wrapperRef,
199
+ role: "toolbar",
200
+ "aria-label": intl.formatMessage(_messages.fullPageMessages.toolbarLabel),
201
+ "aria-controls": _ui.EDIT_AREA_ID
202
+ }, (0, _react2.jsx)(KeyDownHandlerContext.Provider, {
203
+ value: submenuKeydownHandleContext
204
+ }, children));
205
+ };
206
+ exports.ToolbarArrowKeyNavigationProvider = ToolbarArrowKeyNavigationProvider;
207
+ function getFocusableElements(rootNode) {
208
+ if (!rootNode) {
209
+ return [];
210
+ }
211
+ var focusableModalElements = rootNode.querySelectorAll('a[href], button:not([disabled]), textarea, input, select, div[tabindex="-1"], div[tabindex="0"]') || [];
212
+ return Array.from(focusableModalElements);
213
+ }
214
+ function getFilteredFocusableElements(rootNode) {
215
+ //The focusable elements from child components such as dropdown menus / popups are ignored
216
+ return getFocusableElements(rootNode).filter(function (elm) {
217
+ return !elm.closest('[data-role="droplistContent"]') && !elm.closest('[data-emoji-picker-container="true"]') && !elm.closest('[data-test-id="color-picker-menu"]') && !elm.closest('.scroll-buttons');
218
+ });
219
+ }
@@ -35,22 +35,41 @@ Object.defineProperty(exports, "DropdownMenu", {
35
35
  return _DropdownMenu.default;
36
36
  }
37
37
  });
38
+ Object.defineProperty(exports, "DropdownMenuWithKeyboardNavigation", {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _DropdownMenu.DropdownMenuWithKeyboardNavigation;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "KeyDownHandlerContext", {
45
+ enumerable: true,
46
+ get: function get() {
47
+ return _ToolbarArrowKeyNavigationProvider.KeyDownHandlerContext;
48
+ }
49
+ });
38
50
  Object.defineProperty(exports, "TOOLBAR_BUTTON", {
39
51
  enumerable: true,
40
52
  get: function get() {
41
53
  return _ToolbarButton.TOOLBAR_BUTTON;
42
54
  }
43
55
  });
56
+ Object.defineProperty(exports, "ToolbarArrowKeyNavigationProvider", {
57
+ enumerable: true,
58
+ get: function get() {
59
+ return _ToolbarArrowKeyNavigationProvider.ToolbarArrowKeyNavigationProvider;
60
+ }
61
+ });
44
62
  Object.defineProperty(exports, "ToolbarButton", {
45
63
  enumerable: true,
46
64
  get: function get() {
47
65
  return _ToolbarButton.default;
48
66
  }
49
67
  });
50
- var _DropdownMenu = _interopRequireDefault(require("../ui-menu/DropdownMenu"));
51
- var _ToolbarButton = _interopRequireWildcard(require("../ui-menu/ToolbarButton"));
52
- var _ArrowKeyNavigationProvider = require("../ui-menu/ArrowKeyNavigationProvider");
53
- var _types = require("../ui-menu/ArrowKeyNavigationProvider/types");
68
+ var _DropdownMenu = _interopRequireWildcard(require("./DropdownMenu"));
69
+ var _ToolbarButton = _interopRequireWildcard(require("./ToolbarButton"));
70
+ var _ArrowKeyNavigationProvider = require("./ArrowKeyNavigationProvider");
71
+ var _ToolbarArrowKeyNavigationProvider = require("./ToolbarArrowKeyNavigationProvider");
72
+ var _types = require("./ArrowKeyNavigationProvider/types");
54
73
  var _ColorPaletteArrowKeyNavigationProvider = require("./ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider");
55
74
  var _Dropdown = _interopRequireDefault(require("./Dropdown"));
56
75
  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); }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "74.29.2",
3
+ "version": "74.30.0",
4
4
  "sideEffects": false
5
5
  }
@@ -17,9 +17,12 @@ export default {
17
17
  'fabric.editor.blockDescription': 'Zobrazit další informace o odkazu, včetně souhrnu a akcí',
18
18
  'fabric.editor.blockTitle': 'Karta',
19
19
  'fabric.editor.blockquote': 'citace',
20
+ 'fabric.editor.bug': 'Chyba',
20
21
  'fabric.editor.cancelButton': 'Zrušit',
21
22
  'fabric.editor.captionPlaceholder': 'Přidejte popisek',
22
23
  'fabric.editor.cardFloatingControls': 'Možnosti karty',
24
+ 'fabric.editor.clearLink': 'Vymazat odkaz',
25
+ 'fabric.editor.clearLinkText': 'Vymazat text',
23
26
  'fabric.editor.codeBidiWarningLabel': 'Obousměrné znaky mění pořadí vykreslování textu. Může to být použito k zakrytí škodlivého kódu.',
24
27
  'fabric.editor.codeBlockCopyButton.copiedToClipboard': 'Zkopírováno!',
25
28
  'fabric.editor.codeBlockCopyButton.copyToClipboard': 'Kopírovat jako text',
@@ -34,11 +37,13 @@ export default {
34
37
  'fabric.editor.date.description': 'Přidat datum pomocí kalendáře',
35
38
  'fabric.editor.decision': 'Rozhodnutí',
36
39
  'fabric.editor.decision.description': 'Zaznamenávejte rozhodnutí, aby se snadněji sledovala',
40
+ 'fabric.editor.defaultAltText': 'Položka seznamu',
37
41
  'fabric.editor.displayBlock': 'Zobrazit jako kartu',
38
42
  'fabric.editor.displayEmbed': 'Zobrazit jako vložený objekt',
39
43
  'fabric.editor.displayInline': 'Zobrazit v řádku',
40
44
  'fabric.editor.displayLink': 'Zobrazit jako text',
41
45
  'fabric.editor.displayOptionUnavailableInParentNode': 'Tato možnost zobrazení není v uzlu {node} dostupná',
46
+ 'fabric.editor.displayText': 'Text k zobrazení',
42
47
  'fabric.editor.ecombedDescription': 'Zobrazit interaktivní náhled odkazu',
43
48
  'fabric.editor.edit.datasource': 'Upravit vyhledávací dotaz',
44
49
  'fabric.editor.editLink': 'Upravit odkaz',
@@ -47,6 +52,7 @@ export default {
47
52
  'fabric.editor.emoji': 'Emoji',
48
53
  'fabric.editor.emoji.description': 'Používejte emoji k vyjádření nápadů 🎉 a emocí 😄',
49
54
  'fabric.editor.emptyLink': 'Zadejte odkaz.',
55
+ 'fabric.editor.epic': 'Epic',
50
56
  'fabric.editor.expand': 'Rozbalení',
51
57
  'fabric.editor.expand.description': 'Vložit rozbalení',
52
58
  'fabric.editor.expandDefaultTitle': 'Klikněte sem pro rozbalení...',
@@ -54,12 +60,22 @@ export default {
54
60
  'fabric.editor.expandPlaceholder': 'Dejte rozbalenému obsahu název...',
55
61
  'fabric.editor.feedbackDialog': 'Poskytnout zpětnou vazbu',
56
62
  'fabric.editor.feedbackDialog.description': 'Podělte se s námi o pocity z práce v novém editoru',
63
+ 'fabric.editor.headingLink.hyperlinkIconBlogLabel': 'Blog',
64
+ 'fabric.editor.headingLink.hyperlinkIconBugLabel': 'Chyba',
65
+ 'fabric.editor.headingLink.hyperlinkIconIssueLabel': 'Požadavek',
66
+ 'fabric.editor.headingLink.hyperlinkIconPageLabel': 'Stránka',
67
+ 'fabric.editor.headingLink.hyperlinkIconStoryLabel': 'Story',
68
+ 'fabric.editor.headingLink.hyperlinkIconTaskLabel': 'Úkol',
57
69
  'fabric.editor.help': 'Nápověda',
58
70
  'fabric.editor.help.description': 'Projděte si všechny klávesové zkratky a možnosti markdownu',
59
71
  'fabric.editor.horizontalRule': 'Dílčí příčka',
60
72
  'fabric.editor.horizontalRule.description': 'Rozdělit obsah horizontální čárou',
73
+ 'fabric.editor.hyperlink.linkAriaLabel': 'Popisek odkazu',
74
+ 'fabric.editor.hyperlink.searchLinkAriaDescription': 'Níže se objeví návrhy na základě vámi napsaného textu v poli',
75
+ 'fabric.editor.hyperlink.searchLinkResults': '{count, plural, =0 {nebyly nalezeny žádné výsledky} one {{count,number} nalezený výsledek} few {{count,number} nalezené výsledky} many {{count,number} nalezeného výsledku} other {{count,number} nalezených výsledků}}',
61
76
  'fabric.editor.hyperlinkToolbarPlaceholder': 'Vložit nebo vyhledat odkaz',
62
77
  'fabric.editor.image': 'Obrázek',
78
+ 'fabric.editor.improvement': 'Vylepšení',
63
79
  'fabric.editor.inlineDescription': 'Zobrazit odkaz jako vložený text',
64
80
  'fabric.editor.inlineTitle': 'Vložený',
65
81
  'fabric.editor.insertMenu': 'Vložit',
@@ -85,8 +101,11 @@ export default {
85
101
  'fabric.editor.settingsLinks': 'Přejít do předvoleb odkazů',
86
102
  'fabric.editor.status': 'Stav',
87
103
  'fabric.editor.status.description': 'Přidat vlastní štítek stavu',
104
+ 'fabric.editor.story': 'Story',
105
+ 'fabric.editor.subTask': 'Podúkol',
88
106
  'fabric.editor.table': 'Tabulka',
89
107
  'fabric.editor.table.description': 'Vložit tabulku',
108
+ 'fabric.editor.task': 'Úkol',
90
109
  'fabric.editor.time.ago': 'zpět',
91
110
  'fabric.editor.time.updated': 'Aktualizováno',
92
111
  'fabric.editor.time.viewed': 'Zobrazeno',
@@ -17,9 +17,12 @@ export default {
17
17
  'fabric.editor.blockDescription': 'Vis flere oplysninger om et link, inklusive sammendrag og handlinger',
18
18
  'fabric.editor.blockTitle': 'Kort',
19
19
  'fabric.editor.blockquote': 'et citat',
20
+ 'fabric.editor.bug': 'Fejl',
20
21
  'fabric.editor.cancelButton': 'Annullér',
21
22
  'fabric.editor.captionPlaceholder': 'Tilføj en billedtekst',
22
23
  'fabric.editor.cardFloatingControls': 'Muligheder for kort',
24
+ 'fabric.editor.clearLink': 'Ryd link',
25
+ 'fabric.editor.clearLinkText': 'Ryd tekst',
23
26
  'fabric.editor.codeBidiWarningLabel': 'Tegn med tovejsfunktionalitet ændrer rækkefølgen, som teksten er gengivet i. Dette kan udnyttes til at skjule skadelig kode.',
24
27
  'fabric.editor.codeBlockCopyButton.copiedToClipboard': 'Kopieret!',
25
28
  'fabric.editor.codeBlockCopyButton.copyToClipboard': 'Kopiér som tekst',
@@ -34,11 +37,13 @@ export default {
34
37
  'fabric.editor.date.description': 'Tilføj en dato med en kalender',
35
38
  'fabric.editor.decision': 'Beslutning',
36
39
  'fabric.editor.decision.description': 'Registrér beslutninger, så de er lette at finde igen',
40
+ 'fabric.editor.defaultAltText': 'Listeelement',
37
41
  'fabric.editor.displayBlock': 'Vis som kort',
38
42
  'fabric.editor.displayEmbed': 'Vis som indlejret',
39
43
  'fabric.editor.displayInline': 'Vis indbygget',
40
44
  'fabric.editor.displayLink': 'Vis som tekst',
41
45
  'fabric.editor.displayOptionUnavailableInParentNode': 'Denne visningsmulighed er ikke tilgængelig i {node}',
46
+ 'fabric.editor.displayText': 'Vist tekst',
42
47
  'fabric.editor.ecombedDescription': 'Vis en interaktiv forhåndsvisning af et link',
43
48
  'fabric.editor.edit.datasource': 'Rediger søgning',
44
49
  'fabric.editor.editLink': 'Redigér link',
@@ -47,6 +52,7 @@ export default {
47
52
  'fabric.editor.emoji': 'Emoji',
48
53
  'fabric.editor.emoji.description': 'Brug humørikoner for at udtrykke idéer 🎉 og følelser 😄',
49
54
  'fabric.editor.emptyLink': 'Indtast et link.',
55
+ 'fabric.editor.epic': 'Epic',
50
56
  'fabric.editor.expand': 'Udvid',
51
57
  'fabric.editor.expand.description': 'Indsæt en udvidelse',
52
58
  'fabric.editor.expandDefaultTitle': 'Klik her for at udvide...',
@@ -54,12 +60,22 @@ export default {
54
60
  'fabric.editor.expandPlaceholder': 'Giv denne udvidelse en titel...',
55
61
  'fabric.editor.feedbackDialog': 'Giv feedback',
56
62
  'fabric.editor.feedbackDialog.description': 'Fortæl os om din oplevelse med den nye editor.',
63
+ 'fabric.editor.headingLink.hyperlinkIconBlogLabel': 'Blog',
64
+ 'fabric.editor.headingLink.hyperlinkIconBugLabel': 'Fejl',
65
+ 'fabric.editor.headingLink.hyperlinkIconIssueLabel': 'Sag',
66
+ 'fabric.editor.headingLink.hyperlinkIconPageLabel': 'Side',
67
+ 'fabric.editor.headingLink.hyperlinkIconStoryLabel': 'Historie',
68
+ 'fabric.editor.headingLink.hyperlinkIconTaskLabel': 'Opgave',
57
69
  'fabric.editor.help': 'Hjælp',
58
70
  'fabric.editor.help.description': 'Se alle tastaturgenveje og Markdown-muligheder',
59
71
  'fabric.editor.horizontalRule': 'Rumdeler',
60
72
  'fabric.editor.horizontalRule.description': 'Adskil indhold med en vandret linje',
73
+ 'fabric.editor.hyperlink.linkAriaLabel': 'Linkmærkat',
74
+ 'fabric.editor.hyperlink.searchLinkAriaDescription': 'Der vises forslag nedenfor, når du skriver i feltet',
75
+ 'fabric.editor.hyperlink.searchLinkResults': '{count, plural, =0 {ingen resultater fundet} one {Der blev fundet {count,number} resultat} other {Der blev fundet {count,number} resultater}}',
61
76
  'fabric.editor.hyperlinkToolbarPlaceholder': 'Indsæt eller søg efter link',
62
77
  'fabric.editor.image': 'Billeder',
78
+ 'fabric.editor.improvement': 'Forbedring',
63
79
  'fabric.editor.inlineDescription': 'Vis link som indbygget tekst',
64
80
  'fabric.editor.inlineTitle': 'Indbyg',
65
81
  'fabric.editor.insertMenu': 'Indsæt',
@@ -85,8 +101,11 @@ export default {
85
101
  'fabric.editor.settingsLinks': 'Gå til Indstillinger for links',
86
102
  'fabric.editor.status': 'Status',
87
103
  'fabric.editor.status.description': 'Tilføj en brugerdefineret statusetiket',
104
+ 'fabric.editor.story': 'Historie',
105
+ 'fabric.editor.subTask': 'Underopgave',
88
106
  'fabric.editor.table': 'Tabel',
89
107
  'fabric.editor.table.description': 'Indsæt en tabel',
108
+ 'fabric.editor.task': 'Opgave',
90
109
  'fabric.editor.time.ago': 'siden',
91
110
  'fabric.editor.time.updated': 'Opdateret',
92
111
  'fabric.editor.time.viewed': 'Vist',