@atlaskit/editor-common 71.0.3 → 72.0.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 (148) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/dist/cjs/analytics/types/enums.js +20 -1
  3. package/dist/cjs/i18n/index.js +13 -5
  4. package/dist/cjs/i18n/languages.js +42 -0
  5. package/dist/cjs/keymaps/index.js +56 -6
  6. package/dist/cjs/styles/index.js +8 -2
  7. package/dist/cjs/styles/shared/annotation.js +9 -14
  8. package/dist/cjs/styles/shared/block-marks.js +1 -1
  9. package/dist/cjs/styles/shared/blockquote.js +1 -3
  10. package/dist/cjs/styles/shared/code-block.js +13 -16
  11. package/dist/cjs/styles/shared/code-mark.js +2 -4
  12. package/dist/cjs/styles/shared/lists.js +55 -4
  13. package/dist/cjs/styles/shared/panel.js +29 -39
  14. package/dist/cjs/styles/shared/rule.js +2 -4
  15. package/dist/cjs/styles/shared/shadow.js +1 -1
  16. package/dist/cjs/styles/shared/table.js +24 -26
  17. package/dist/cjs/types/next-editor-plugin.js +5 -0
  18. package/dist/cjs/ui/Caption/index.js +2 -4
  19. package/dist/cjs/ui/DropList/index.js +5 -7
  20. package/dist/cjs/ui/Emoji/index.js +11 -2
  21. package/dist/cjs/ui/Expand/index.js +17 -19
  22. package/dist/cjs/ui/Messages/index.js +3 -5
  23. package/dist/cjs/ui/Popup/index.js +72 -2
  24. package/dist/cjs/ui/Popup/utils.js +13 -6
  25. package/dist/cjs/ui/UnsupportedBlock/index.js +3 -5
  26. package/dist/cjs/ui/UnsupportedInline/index.js +3 -5
  27. package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +138 -0
  28. package/dist/cjs/ui-color/ColorPalette/index.js +20 -2
  29. package/dist/cjs/ui-menu/DropdownMenu/index.js +12 -12
  30. package/dist/cjs/ui-menu/ToolbarButton/index.js +3 -1
  31. package/dist/cjs/utils/analytics.js +1 -38
  32. package/dist/cjs/utils/builder.js +44 -0
  33. package/dist/cjs/utils/compareNodes.js +86 -33
  34. package/dist/cjs/utils/index.js +47 -1
  35. package/dist/cjs/utils/list.js +47 -0
  36. package/dist/cjs/utils/plugin-state-factory.js +9 -9
  37. package/dist/cjs/utils/referentiality.js +281 -2
  38. package/dist/cjs/utils/track-unsupported-content.js +19 -20
  39. package/dist/cjs/utils/validate-using-spec.js +8 -2
  40. package/dist/cjs/version.json +1 -1
  41. package/dist/es2019/analytics/types/enums.js +20 -1
  42. package/dist/es2019/i18n/index.js +4 -3
  43. package/dist/es2019/i18n/languages.js +34 -0
  44. package/dist/es2019/keymaps/index.js +48 -2
  45. package/dist/es2019/styles/index.js +1 -1
  46. package/dist/es2019/styles/shared/annotation.js +9 -13
  47. package/dist/es2019/styles/shared/block-marks.js +8 -1
  48. package/dist/es2019/styles/shared/blockquote.js +1 -2
  49. package/dist/es2019/styles/shared/code-block.js +18 -18
  50. package/dist/es2019/styles/shared/code-mark.js +2 -3
  51. package/dist/es2019/styles/shared/lists.js +44 -2
  52. package/dist/es2019/styles/shared/panel.js +29 -37
  53. package/dist/es2019/styles/shared/rule.js +2 -3
  54. package/dist/es2019/styles/shared/shadow.js +20 -6
  55. package/dist/es2019/styles/shared/table.js +24 -26
  56. package/dist/es2019/types/next-editor-plugin.js +1 -0
  57. package/dist/es2019/ui/Caption/index.js +2 -3
  58. package/dist/es2019/ui/DropList/index.js +5 -6
  59. package/dist/es2019/ui/Emoji/index.js +11 -2
  60. package/dist/es2019/ui/Expand/index.js +17 -18
  61. package/dist/es2019/ui/Messages/index.js +3 -4
  62. package/dist/es2019/ui/Popup/index.js +68 -2
  63. package/dist/es2019/ui/Popup/utils.js +13 -6
  64. package/dist/es2019/ui/UnsupportedBlock/index.js +3 -4
  65. package/dist/es2019/ui/UnsupportedInline/index.js +3 -4
  66. package/dist/es2019/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +120 -0
  67. package/dist/es2019/ui-color/ColorPalette/index.js +29 -13
  68. package/dist/es2019/ui-menu/DropdownMenu/index.js +13 -12
  69. package/dist/es2019/ui-menu/ToolbarButton/index.js +3 -1
  70. package/dist/es2019/utils/analytics.js +0 -33
  71. package/dist/es2019/utils/builder.js +16 -0
  72. package/dist/es2019/utils/compareNodes.js +79 -28
  73. package/dist/es2019/utils/index.js +4 -2
  74. package/dist/es2019/utils/list.js +31 -0
  75. package/dist/es2019/utils/plugin-state-factory.js +9 -9
  76. package/dist/es2019/utils/referentiality.js +240 -0
  77. package/dist/es2019/utils/track-unsupported-content.js +20 -16
  78. package/dist/es2019/utils/validate-using-spec.js +8 -2
  79. package/dist/es2019/version.json +1 -1
  80. package/dist/esm/analytics/types/enums.js +20 -1
  81. package/dist/esm/i18n/index.js +4 -3
  82. package/dist/esm/i18n/languages.js +34 -0
  83. package/dist/esm/keymaps/index.js +49 -2
  84. package/dist/esm/styles/index.js +1 -1
  85. package/dist/esm/styles/shared/annotation.js +9 -13
  86. package/dist/esm/styles/shared/block-marks.js +1 -1
  87. package/dist/esm/styles/shared/blockquote.js +1 -2
  88. package/dist/esm/styles/shared/code-block.js +13 -15
  89. package/dist/esm/styles/shared/code-mark.js +2 -3
  90. package/dist/esm/styles/shared/lists.js +49 -2
  91. package/dist/esm/styles/shared/panel.js +29 -37
  92. package/dist/esm/styles/shared/rule.js +2 -3
  93. package/dist/esm/styles/shared/shadow.js +1 -2
  94. package/dist/esm/styles/shared/table.js +24 -26
  95. package/dist/esm/types/next-editor-plugin.js +1 -0
  96. package/dist/esm/ui/Caption/index.js +2 -3
  97. package/dist/esm/ui/DropList/index.js +5 -6
  98. package/dist/esm/ui/Emoji/index.js +11 -2
  99. package/dist/esm/ui/Expand/index.js +17 -18
  100. package/dist/esm/ui/Messages/index.js +3 -4
  101. package/dist/esm/ui/Popup/index.js +73 -2
  102. package/dist/esm/ui/Popup/utils.js +13 -6
  103. package/dist/esm/ui/UnsupportedBlock/index.js +2 -3
  104. package/dist/esm/ui/UnsupportedInline/index.js +2 -3
  105. package/dist/esm/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +124 -0
  106. package/dist/esm/ui-color/ColorPalette/index.js +19 -3
  107. package/dist/esm/ui-menu/DropdownMenu/index.js +12 -11
  108. package/dist/esm/ui-menu/ToolbarButton/index.js +3 -1
  109. package/dist/esm/utils/analytics.js +0 -33
  110. package/dist/esm/utils/builder.js +30 -0
  111. package/dist/esm/utils/compareNodes.js +83 -32
  112. package/dist/esm/utils/index.js +4 -2
  113. package/dist/esm/utils/list.js +31 -0
  114. package/dist/esm/utils/plugin-state-factory.js +9 -9
  115. package/dist/esm/utils/referentiality.js +269 -0
  116. package/dist/esm/utils/track-unsupported-content.js +19 -20
  117. package/dist/esm/utils/validate-using-spec.js +8 -2
  118. package/dist/esm/version.json +1 -1
  119. package/dist/types/analytics/types/enums.d.ts +23 -4
  120. package/dist/types/collab/types.d.ts +1 -1
  121. package/dist/types/i18n/index.d.ts +4 -3
  122. package/dist/types/i18n/languages.d.ts +35 -0
  123. package/dist/types/keymaps/index.d.ts +1 -0
  124. package/dist/types/styles/index.d.ts +1 -1
  125. package/dist/types/styles/shared/lists.d.ts +3 -1
  126. package/dist/types/types/collab.d.ts +1 -1
  127. package/dist/types/types/copy-button.d.ts +4 -0
  128. package/dist/types/types/feature-flags.d.ts +30 -25
  129. package/dist/types/types/floating-toolbar.d.ts +26 -1
  130. package/dist/types/types/index.d.ts +2 -1
  131. package/dist/types/types/next-editor-plugin.d.ts +61 -0
  132. package/dist/types/ui/Emoji/index.d.ts +2 -0
  133. package/dist/types/ui/Popup/index.d.ts +19 -0
  134. package/dist/types/ui/Popup/utils.d.ts +3 -3
  135. package/dist/types/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.d.ts +214 -0
  136. package/dist/types/ui-color/ColorPalette/index.d.ts +7 -0
  137. package/dist/types/ui-menu/DropdownMenu/types.d.ts +1 -0
  138. package/dist/types/ui-menu/ToolbarButton/index.d.ts +3 -1
  139. package/dist/types/utils/analytics.d.ts +1 -21
  140. package/dist/types/utils/builder.d.ts +8 -0
  141. package/dist/types/utils/compareNodes.d.ts +16 -0
  142. package/dist/types/utils/index.d.ts +3 -1
  143. package/dist/types/utils/list.d.ts +10 -0
  144. package/dist/types/utils/plugin-state-factory.d.ts +1 -1
  145. package/dist/types/utils/referentiality.d.ts +4 -0
  146. package/dist/types/utils/track-unsupported-content.d.ts +14 -2
  147. package/package.json +15 -12
  148. package/report.api.md +1 -1
@@ -34,7 +34,7 @@ function isTextNode(elem) {
34
34
  */
35
35
 
36
36
 
37
- function getVerticalPlacement(target, boundariesElement, fitHeight, alignY, forcePlacement) {
37
+ function getVerticalPlacement(target, boundariesElement, fitHeight, alignY, forcePlacement, preventOverflow) {
38
38
  if (forcePlacement && alignY) {
39
39
  return alignY;
40
40
  }
@@ -56,7 +56,13 @@ function getVerticalPlacement(target, boundariesElement, fitHeight, alignY, forc
56
56
  targetHeight = _target$getBoundingCl.height;
57
57
 
58
58
  var spaceAbove = targetTop - (boundariesTop - boundariesElement.scrollTop);
59
- var spaceBelow = boundariesTop + boundariesHeight - (targetTop + targetHeight);
59
+ var spaceBelow = boundariesTop + boundariesHeight - (targetTop + targetHeight); // Force vertical placement to bottom if the space above doesn't accomodate the fitHeight
60
+
61
+ if (preventOverflow) {
62
+ if (spaceAbove <= fitHeight) {
63
+ return 'bottom';
64
+ }
65
+ }
60
66
 
61
67
  if (spaceBelow >= fitHeight || spaceBelow >= spaceAbove) {
62
68
  return 'bottom';
@@ -69,8 +75,9 @@ function getVerticalPlacement(target, boundariesElement, fitHeight, alignY, forc
69
75
  */
70
76
 
71
77
 
72
- function getHorizontalPlacement(target, boundariesElement, fitWidth, alignX, forcePlacement) {
73
- if (forcePlacement && alignX) {
78
+ function getHorizontalPlacement(target, boundariesElement, fitWidth, alignX, forcePlacement, preventOverflow) {
79
+ // force placement unless preventOverflow is enabled
80
+ if (forcePlacement && alignX && !preventOverflow) {
74
81
  return alignX;
75
82
  }
76
83
 
@@ -102,8 +109,8 @@ function getHorizontalPlacement(target, boundariesElement, fitWidth, alignX, for
102
109
  return 'right';
103
110
  }
104
111
 
105
- function calculatePlacement(target, boundariesElement, fitWidth, fitHeight, alignX, alignY, forcePlacement) {
106
- return [getVerticalPlacement(target, boundariesElement, fitHeight, alignY, forcePlacement), getHorizontalPlacement(target, boundariesElement, fitWidth, alignX, forcePlacement)];
112
+ function calculatePlacement(target, boundariesElement, fitWidth, fitHeight, alignX, alignY, forcePlacement, preventOverflow) {
113
+ return [getVerticalPlacement(target, boundariesElement, fitHeight, alignY, forcePlacement, preventOverflow), getHorizontalPlacement(target, boundariesElement, fitWidth, alignX, forcePlacement, preventOverflow)];
107
114
  }
108
115
 
109
116
  var calculateHorizontalPlacement = function calculateHorizontalPlacement(_ref) {
@@ -25,13 +25,11 @@ var _colors = require("@atlaskit/theme/colors");
25
25
 
26
26
  var _constants = require("@atlaskit/theme/constants");
27
27
 
28
- var _tokens = require("@atlaskit/tokens");
29
-
30
28
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
31
29
 
32
- var _unsupportedContent = require("../../messages/unsupportedContent");
30
+ var _analytics = require("../../analytics");
33
31
 
34
- var _analytics = require("../../utils/analytics");
32
+ var _unsupportedContent = require("../../messages/unsupportedContent");
35
33
 
36
34
  var _trackUnsupportedContent = require("../../utils/track-unsupported-content");
37
35
 
@@ -43,7 +41,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
43
41
 
44
42
  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; }
45
43
 
46
- var blockNodeStyle = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n border: 1px dashed ", ";\n border-radius: ", "px;\n box-sizing: border-box;\n cursor: default;\n display: flex;\n font-size: ", ";\n margin: 10px 0;\n min-height: 24px;\n padding: 10px;\n text-align: center;\n vertical-align: text-bottom;\n min-width: 120px;\n align-items: center;\n justify-content: center;\n"])), (0, _tokens.token)('color.background.disabled', _colors.N30), (0, _tokens.token)('color.border.disabled', _colors.N50), (0, _constants.borderRadius)(), (0, _editorSharedStyles.relativeFontSizeToBase16)((0, _constants.fontSize)()));
44
+ var blockNodeStyle = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n border: 1px dashed ", ";\n border-radius: ", "px;\n box-sizing: border-box;\n cursor: default;\n display: flex;\n font-size: ", ";\n margin: 10px 0;\n min-height: 24px;\n padding: 10px;\n text-align: center;\n vertical-align: text-bottom;\n min-width: 120px;\n align-items: center;\n justify-content: center;\n"])), "var(--ds-background-disabled, ".concat(_colors.N30, ")"), "var(--ds-border-disabled, ".concat(_colors.N50, ")"), (0, _constants.borderRadius)(), (0, _editorSharedStyles.relativeFontSizeToBase16)((0, _constants.fontSize)()));
47
45
 
48
46
  var UnsupportedBlockNode = function UnsupportedBlockNode(_ref) {
49
47
  var node = _ref.node,
@@ -25,13 +25,11 @@ var _colors = require("@atlaskit/theme/colors");
25
25
 
26
26
  var _constants = require("@atlaskit/theme/constants");
27
27
 
28
- var _tokens = require("@atlaskit/tokens");
29
-
30
28
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
31
29
 
32
- var _unsupportedContent = require("../../messages/unsupportedContent");
30
+ var _analytics = require("../../analytics");
33
31
 
34
- var _analytics = require("../../utils/analytics");
32
+ var _unsupportedContent = require("../../messages/unsupportedContent");
35
33
 
36
34
  var _trackUnsupportedContent = require("../../utils/track-unsupported-content");
37
35
 
@@ -43,7 +41,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
43
41
 
44
42
  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; }
45
43
 
46
- var inlineNodeStyle = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n background: ", ";\n border: 1px dashed ", ";\n border-radius: ", "px;\n box-sizing: border-box;\n cursor: default;\n display: inline-flex;\n font-size: ", ";\n margin: 0 2px;\n min-height: 24px;\n padding: 0 10px;\n vertical-align: middle;\n white-space: nowrap;\n"])), (0, _tokens.token)('color.background.disabled', _colors.N30), (0, _tokens.token)('color.border.disabled', _colors.N50), (0, _constants.borderRadius)(), (0, _editorSharedStyles.relativeFontSizeToBase16)((0, _constants.fontSize)()));
44
+ var inlineNodeStyle = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n background: ", ";\n border: 1px dashed ", ";\n border-radius: ", "px;\n box-sizing: border-box;\n cursor: default;\n display: inline-flex;\n font-size: ", ";\n margin: 0 2px;\n min-height: 24px;\n padding: 0 10px;\n vertical-align: middle;\n white-space: nowrap;\n"])), "var(--ds-background-disabled, ".concat(_colors.N30, ")"), "var(--ds-border-disabled, ".concat(_colors.N50, ")"), (0, _constants.borderRadius)(), (0, _editorSharedStyles.relativeFontSizeToBase16)((0, _constants.fontSize)()));
47
45
 
48
46
  var UnsupportedInlineNode = function UnsupportedInlineNode(_ref) {
49
47
  var node = _ref.node,
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.newLightPalette = exports.newDarkPalette = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _reactIntlNext = require("react-intl-next");
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ // These messages are only to be used when useSomewhatSemanticTextColorNames feature flag is true.
19
+ // They are used only in Jira and are part of work for https://product-fabric.atlassian.net/wiki/spaces/EUXQ/pages/3365994869/EXTERNAL+MAKE+PP+COMMIT-5058+Enable+dark+mode+usage+of+text+colors+in+UGC+and+non+custom+panels+in+Jira
20
+ var newLightPalette = (0, _reactIntlNext.defineMessages)({
21
+ '#FFFFFF': {
22
+ id: 'fabric.theme.white',
23
+ defaultMessage: 'White',
24
+ description: 'Name of a color'
25
+ },
26
+ '#B3D4FF': {
27
+ id: 'fabric.theme.subtle-blue',
28
+ defaultMessage: 'Subtle blue',
29
+ description: 'Name of a color'
30
+ },
31
+ '#B3F5FF': {
32
+ id: 'fabric.theme.subtle-teal',
33
+ defaultMessage: 'Subtle teal',
34
+ description: 'Name of a color'
35
+ },
36
+ '#ABF5D1': {
37
+ id: 'fabric.theme.subtle-green',
38
+ defaultMessage: 'Subtle green',
39
+ description: 'Name of a color'
40
+ },
41
+ '#FFF0B3': {
42
+ id: 'fabric.theme.subtle-yellow',
43
+ defaultMessage: 'Subtle yellow',
44
+ description: 'Name of a color'
45
+ },
46
+ '#FFBDAD': {
47
+ id: 'fabric.theme.subtle-red',
48
+ defaultMessage: 'Subtle red',
49
+ description: 'Name of a color'
50
+ },
51
+ '#EAE6FF': {
52
+ id: 'fabric.theme.subtle-purple',
53
+ defaultMessage: 'Subtle purple',
54
+ description: 'Name of a color'
55
+ },
56
+ '#97A0AF': {
57
+ id: 'fabric.theme.gray',
58
+ defaultMessage: 'Gray',
59
+ description: 'Name of a color'
60
+ },
61
+ '#4C9AFF': {
62
+ id: 'fabric.theme.blue',
63
+ defaultMessage: 'Blue',
64
+ description: 'Name of a color'
65
+ },
66
+ '#00B8D9': {
67
+ id: 'fabric.theme.teal',
68
+ defaultMessage: 'Teal',
69
+ description: 'Name of a color'
70
+ },
71
+ '#36B37E': {
72
+ id: 'fabric.theme.green',
73
+ defaultMessage: 'Green',
74
+ description: 'Name of a color'
75
+ },
76
+ '#FFC400': {
77
+ id: 'fabric.theme.yellow',
78
+ defaultMessage: 'Yellow',
79
+ description: 'Name of a color'
80
+ },
81
+ '#FF5630': {
82
+ id: 'fabric.theme.red',
83
+ defaultMessage: 'Red',
84
+ description: 'Name of a color'
85
+ },
86
+ '#FF991F': {
87
+ id: 'fabric.theme.bold-orange',
88
+ defaultMessage: 'Bold orange',
89
+ description: 'Name of a color.'
90
+ },
91
+ '#6554C0': {
92
+ id: 'fabric.theme.purple',
93
+ defaultMessage: 'Purple',
94
+ description: 'Name of a color'
95
+ },
96
+ '#0747A6': {
97
+ id: 'fabric.theme.bold-blue',
98
+ defaultMessage: 'Bold blue',
99
+ description: 'Name of a color'
100
+ },
101
+ '#008DA6': {
102
+ id: 'fabric.theme.bold-teal',
103
+ defaultMessage: 'Bold teal',
104
+ description: 'Name of a color'
105
+ },
106
+ '#006644': {
107
+ id: 'fabric.theme.bold-green',
108
+ defaultMessage: 'Bold green',
109
+ description: 'Name of a color'
110
+ },
111
+ '#BF2600': {
112
+ id: 'fabric.theme.bold-red',
113
+ defaultMessage: 'Bold red',
114
+ description: 'Name of a color'
115
+ },
116
+ '#403294': {
117
+ id: 'fabric.theme.bold-purple',
118
+ defaultMessage: 'Bold purple',
119
+ description: 'Name of a color'
120
+ },
121
+ '#172B4D': {
122
+ id: 'fabric.theme.default',
123
+ defaultMessage: 'Default',
124
+ description: 'Name of a color'
125
+ }
126
+ });
127
+ exports.newLightPalette = newLightPalette;
128
+ var darkModeWhite = (0, _reactIntlNext.defineMessages)({
129
+ '#FFFFFF': {
130
+ id: 'fabric.theme.dark-gray',
131
+ defaultMessage: 'Dark gray',
132
+ description: 'Name of a color'
133
+ }
134
+ });
135
+
136
+ var newDarkPalette = _objectSpread(_objectSpread({}, newLightPalette), darkModeWhite);
137
+
138
+ exports.newDarkPalette = newDarkPalette;
@@ -21,6 +21,10 @@ var _tokens = require("@atlaskit/tokens");
21
21
 
22
22
  var _Color = _interopRequireDefault(require("./Color"));
23
23
 
24
+ var _getColorMessage = _interopRequireDefault(require("./Palettes/getColorMessage"));
25
+
26
+ var _paletteMessagesTokenModeNames = require("./Palettes/paletteMessagesTokenModeNames");
27
+
24
28
  var _styles = require("./styles");
25
29
 
26
30
  /** @jsx jsx */
@@ -46,7 +50,7 @@ function getCheckMarkColor(color, textPalette) {
46
50
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
47
51
 
48
52
 
49
- return contrastColor === _colors.N0 ? (0, _tokens.token)('color.icon.inverse', _colors.N0) : (0, _tokens.token)('color.icon', _colors.N500);
53
+ return contrastColor === _colors.N0 ? "var(--ds-icon-inverse, ".concat(_colors.N0, ")") : "var(--ds-icon, ".concat(_colors.N500, ")");
50
54
  }
51
55
 
52
56
  var ColorPalette = function ColorPalette(props) {
@@ -58,7 +62,10 @@ var ColorPalette = function ColorPalette(props) {
58
62
  className = props.className,
59
63
  formatMessage = props.intl.formatMessage,
60
64
  _props$textPalette = props.textPalette,
61
- textPalette = _props$textPalette === void 0 ? false : _props$textPalette;
65
+ textPalette = _props$textPalette === void 0 ? false : _props$textPalette,
66
+ _props$useSomewhatSem = props.useSomewhatSemanticTextColorNames,
67
+ useSomewhatSemanticTextColorNames = _props$useSomewhatSem === void 0 ? false : _props$useSomewhatSem;
68
+ var tokenTheme = (0, _tokens.useThemeObserver)();
62
69
 
63
70
  var colorsPerRow = _react.default.useMemo(function () {
64
71
  return palette.reduce(function (resultArray, item, index) {
@@ -81,6 +88,17 @@ var ColorPalette = function ColorPalette(props) {
81
88
  label = _ref.label,
82
89
  border = _ref.border,
83
90
  message = _ref.message;
91
+
92
+ if (textPalette === true && useSomewhatSemanticTextColorNames) {
93
+ if (tokenTheme === 'dark') {
94
+ message = (0, _getColorMessage.default)(_paletteMessagesTokenModeNames.newDarkPalette, value.toUpperCase());
95
+ }
96
+
97
+ if (tokenTheme === 'light') {
98
+ message = (0, _getColorMessage.default)(_paletteMessagesTokenModeNames.newLightPalette, value.toUpperCase());
99
+ }
100
+ }
101
+
84
102
  return (0, _react2.jsx)(_Color.default, {
85
103
  key: value,
86
104
  value: value,
@@ -41,8 +41,6 @@ var _colors = require("@atlaskit/theme/colors");
41
41
 
42
42
  var _components = require("@atlaskit/theme/components");
43
43
 
44
- var _tokens = require("@atlaskit/tokens");
45
-
46
44
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
47
45
 
48
46
  var _uiReact = require("../../ui-react");
@@ -66,7 +64,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
66
64
  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; } }
67
65
 
68
66
  var wrapper = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* tooltip in ToolbarButton is display:block */\n & > div > div {\n display: flex;\n }\n"])));
69
- var focusedMenuItemStyle = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n box-shadow: inset 0px 0px 0px 2px ", ";\n outline: none;\n"])), (0, _tokens.token)('color.border.focused', _colors.B100));
67
+ var focusedMenuItemStyle = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n box-shadow: inset 0px 0px 0px 2px ", ";\n outline: none;\n"])), "var(--ds-border-focused, ".concat(_colors.B100, ")"));
70
68
 
71
69
  var buttonStyles = function buttonStyles(isActive) {
72
70
  return function (theme) {
@@ -74,20 +72,20 @@ var buttonStyles = function buttonStyles(isActive) {
74
72
  /**
75
73
  * Hack for item to imitate old dropdown-menu selected styles
76
74
  */
77
- return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n > span,\n > span:hover,\n > span:active {\n background: ", ";\n color: ", ";\n }\n :focus > span[aria-disabled='false'] {\n ", ";\n }\n :focus-visible,\n :focus-visible > span[aria-disabled='false'] {\n outline: none;\n }\n "])), (0, _tokens.token)('color.background.selected', '#6c798f'), (0, _tokens.token)('color.text', '#fff'), focusedMenuItemStyle);
75
+ return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n > span,\n > span:hover,\n > span:active {\n background: ", ";\n color: ", ";\n }\n :focus > span[aria-disabled='false'] {\n ", ";\n }\n :focus-visible,\n :focus-visible > span[aria-disabled='false'] {\n outline: none;\n }\n "])), "var(--ds-background-selected, #6c798f)", "var(--ds-text, #fff)", focusedMenuItemStyle);
78
76
  } else {
79
77
  return (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n > span:hover[aria-disabled='false'] {\n color: ", ";\n background-color: ", ";\n }\n > span:active[aria-disabled='false'] {\n background-color: ", ";\n }\n > span[aria-disabled='true'] {\n color: ", ";\n }\n :focus > span[aria-disabled='false'] {\n ", ";\n }\n :focus-visible,\n :focus-visible > span[aria-disabled='false'] {\n outline: none;\n }\n "])), (0, _components.themed)({
80
- light: (0, _tokens.token)('color.text', _colors.N900),
81
- dark: (0, _tokens.token)('color.text', _colors.DN600)
78
+ light: "var(--ds-text, ".concat(_colors.N900, ")"),
79
+ dark: "var(--ds-text, ".concat(_colors.DN600, ")")
82
80
  })(theme), (0, _components.themed)({
83
- light: (0, _tokens.token)('color.background.neutral.subtle.hovered', 'rgb(244, 245, 247)'),
84
- dark: (0, _tokens.token)('color.background.neutral.subtle.hovered', 'rgb(59, 71, 92)')
81
+ light: "var(--ds-background-neutral-subtle-hovered, rgb(244, 245, 247))",
82
+ dark: "var(--ds-background-neutral-subtle-hovered, rgb(59, 71, 92))"
85
83
  })(theme), (0, _components.themed)({
86
- light: (0, _tokens.token)('color.background.neutral.subtle.pressed', 'rgb(179, 212, 255)'),
87
- dark: (0, _tokens.token)('color.background.neutral.subtle.pressed', 'rgb(179, 212, 255)')
84
+ light: "var(--ds-background-neutral-subtle-pressed, rgb(179, 212, 255))",
85
+ dark: "var(--ds-background-neutral-subtle-pressed, rgb(179, 212, 255))"
88
86
  })(theme), (0, _components.themed)({
89
- light: (0, _tokens.token)('color.text.disabled', _colors.N70),
90
- dark: (0, _tokens.token)('color.text.disabled', _colors.DN80)
87
+ light: "var(--ds-text-disabled, ".concat(_colors.N70, ")"),
88
+ dark: "var(--ds-text-disabled, ".concat(_colors.DN80, ")")
91
89
  })(theme), focusedMenuItemStyle); // The deafut focus-visible style is removed to ensure consistency across browsers
92
90
  }
93
91
  };
@@ -272,6 +270,7 @@ function DropdownMenuItem(_ref) {
272
270
  }, (0, _react2.jsx)(_menu.CustomItem, {
273
271
  item: item,
274
272
  key: (_item$key2 = item.key) !== null && _item$key2 !== void 0 ? _item$key2 : String(item.content),
273
+ testId: "dropdown-item__".concat(String(item.content)),
275
274
  role: shouldUseDefaultRole ? 'button' : 'menuitem',
276
275
  iconBefore: item.elemBefore,
277
276
  iconAfter: item.elemAfter,
@@ -283,6 +282,7 @@ function DropdownMenuItem(_ref) {
283
282
  },
284
283
  "aria-label": item['aria-label'] || String(item.content),
285
284
  "aria-pressed": shouldUseDefaultRole ? item.isActive : undefined,
285
+ "aria-keyshortcuts": item['aria-keyshortcuts'],
286
286
  onMouseDown: function onMouseDown(e) {
287
287
  e.preventDefault();
288
288
  },
@@ -61,6 +61,7 @@ var ToolbarButton = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
61
61
  ariaHasPopup = props['aria-haspopup'],
62
62
  ariaExpanded = props['aria-expanded'],
63
63
  ariaPressed = props['aria-pressed'],
64
+ ariaKeyShortcuts = props['aria-keyshortcuts'],
64
65
  onClick = props.onClick,
65
66
  onItemClick = props.onItemClick;
66
67
  var handleClick = (0, _react.useCallback)(function (event, analyticsEvent) {
@@ -106,7 +107,8 @@ var ToolbarButton = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
106
107
  "aria-expanded": ariaExpanded,
107
108
  "aria-haspopup": ariaHasPopup,
108
109
  "aria-label": ariaLabel,
109
- "aria-pressed": ariaPressed
110
+ "aria-pressed": ariaPressed,
111
+ "aria-keyshortcuts": ariaKeyShortcuts
110
112
  }, children);
111
113
 
112
114
  if (!title) {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SEVERITY = exports.EVENT_TYPE = exports.ACTION_SUBJECT_ID = exports.ACTION_SUBJECT = exports.ACTION = void 0;
6
+ exports.SEVERITY = void 0;
7
7
  Object.defineProperty(exports, "UNSUPPORTED_CONTENT_LEVEL_SEVERITY", {
8
8
  enumerable: true,
9
9
  get: function get() {
@@ -71,42 +71,5 @@ exports.SEVERITY = SEVERITY;
71
71
  SEVERITY["BLOCKING"] = "blocking";
72
72
  })(SEVERITY || (exports.SEVERITY = SEVERITY = {}));
73
73
 
74
- var EVENT_TYPE;
75
- exports.EVENT_TYPE = EVENT_TYPE;
76
-
77
- (function (EVENT_TYPE) {
78
- EVENT_TYPE["TRACK"] = "track";
79
- EVENT_TYPE["UI"] = "ui";
80
- })(EVENT_TYPE || (exports.EVENT_TYPE = EVENT_TYPE = {}));
81
-
82
- var ACTION;
83
- exports.ACTION = ACTION;
84
-
85
- (function (ACTION) {
86
- ACTION["UNSUPPORTED_CONTENT_ENCOUNTERED"] = "unsupportedContentEncountered";
87
- ACTION["UNSUPPORTED_TOOLTIP_VIEWED"] = "viewed";
88
- })(ACTION || (exports.ACTION = ACTION = {}));
89
-
90
- var ACTION_SUBJECT;
91
- exports.ACTION_SUBJECT = ACTION_SUBJECT;
92
-
93
- (function (ACTION_SUBJECT) {
94
- ACTION_SUBJECT["DOCUMENT"] = "document";
95
- ACTION_SUBJECT["TOOLTIP"] = "tooltip";
96
- })(ACTION_SUBJECT || (exports.ACTION_SUBJECT = ACTION_SUBJECT = {}));
97
-
98
- var ACTION_SUBJECT_ID;
99
- exports.ACTION_SUBJECT_ID = ACTION_SUBJECT_ID;
100
-
101
- (function (ACTION_SUBJECT_ID) {
102
- ACTION_SUBJECT_ID["UNSUPPORTED_BLOCK"] = "unsupportedBlock";
103
- ACTION_SUBJECT_ID["UNSUPPORTED_INLINE"] = "unsupportedInline";
104
- ACTION_SUBJECT_ID["UNSUPPORTED_MARK"] = "unsupportedMark";
105
- ACTION_SUBJECT_ID["UNSUPPORTED_ERROR"] = "unsupportedUnhandled";
106
- ACTION_SUBJECT_ID["UNSUPPORTED_NODE_ATTRIBUTE"] = "unsupportedNodeAttribute";
107
- ACTION_SUBJECT_ID["ON_UNSUPPORTED_INLINE"] = "onUnsupportedInline";
108
- ACTION_SUBJECT_ID["ON_UNSUPPORTED_BLOCK"] = "onUnsupportedBlock";
109
- })(ACTION_SUBJECT_ID || (exports.ACTION_SUBJECT_ID = ACTION_SUBJECT_ID = {}));
110
-
111
74
  var analyticsEventKey = 'EDITOR_ANALYTICS_EVENT';
112
75
  exports.analyticsEventKey = analyticsEventKey;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Builder = void 0;
9
+
10
+ var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var Builder = /*#__PURE__*/function () {
19
+ function Builder() {
20
+ (0, _classCallCheck2.default)(this, Builder);
21
+
22
+ for (var _len = arguments.length, more = new Array(_len), _key = 0; _key < _len; _key++) {
23
+ more[_key] = arguments[_key];
24
+ }
25
+
26
+ this.data = [].concat(more) || [];
27
+ }
28
+
29
+ (0, _createClass2.default)(Builder, [{
30
+ key: "add",
31
+ value: function add(nextOrTuple) {
32
+ return (0, _construct2.default)(Builder, [
33
+ /**
34
+ * re-cast this to NewPlugin as we've done all the type
35
+ * safety, dependency checking, narrowing, during
36
+ * `SafePresetCheck & VerifyPluginDependencies`
37
+ */
38
+ nextOrTuple].concat((0, _toConsumableArray2.default)(this.data)));
39
+ }
40
+ }]);
41
+ return Builder;
42
+ }();
43
+
44
+ exports.Builder = Builder;
@@ -5,13 +5,15 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.createCompareNodes = void 0;
8
+ exports.createCompareNodes = exports.ContentType = void 0;
9
+ exports.extractMetaFromTextNode = extractMetaFromTextNode;
9
10
 
10
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
12
 
12
13
  var _types = require("../types");
13
14
 
14
15
  var ContentType;
16
+ exports.ContentType = ContentType;
15
17
 
16
18
  (function (ContentType) {
17
19
  ContentType[ContentType["NUMBER"] = 0] = "NUMBER";
@@ -20,7 +22,7 @@ var ContentType;
20
22
  ContentType[ContentType["DATE"] = 15] = "DATE";
21
23
  ContentType[ContentType["STATUS"] = 20] = "STATUS";
22
24
  ContentType[ContentType["LINK"] = 25] = "LINK";
23
- })(ContentType || (ContentType = {}));
25
+ })(ContentType || (exports.ContentType = ContentType = {}));
24
26
 
25
27
  function getLinkMark(node) {
26
28
  var _node$marks$filter = node.marks.filter(function (mark) {
@@ -30,6 +32,83 @@ function getLinkMark(node) {
30
32
  linkMark = _node$marks$filter2[0];
31
33
 
32
34
  return linkMark || null;
35
+ } // Source: https://stackoverflow.com/questions/12004808/does-javascript-take-local-decimal-separators-into-account
36
+
37
+
38
+ function parseLocaleNumber(stringNumber) {
39
+ if (stringNumber.trim() === '') {
40
+ return null;
41
+ }
42
+
43
+ var locale = window.navigator.language;
44
+ var thousandSeparator = Intl.NumberFormat(locale).format(11111).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
45
+ var decimalSeparator = Intl.NumberFormat(locale).format(1.1).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
46
+ var maybeANumber = Number(stringNumber.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.'));
47
+ var isANumber = !Number.isNaN(maybeANumber);
48
+
49
+ if (!isANumber) {
50
+ return null;
51
+ }
52
+
53
+ return maybeANumber;
54
+ }
55
+
56
+ function extractFirstWordFromString(text) {
57
+ // Firefox is the only browser that doesn't support it
58
+ if (!Intl || !Intl.Segmenter) {
59
+ // If the Segment API is not available
60
+ // let's fallback to a dumb way to extract the first word.
61
+ // However, this method doesn't cover some languages like Japanase
62
+ var firstEmptySpace = text.indexOf(' ');
63
+ var firstWord = firstEmptySpace !== -1 ? text.substring(0, firstEmptySpace) : text;
64
+ return firstWord;
65
+ }
66
+
67
+ var languageSegment = new Intl.Segmenter(window.navigator.language, {
68
+ granularity: 'word'
69
+ });
70
+ var segmentsIterator = languageSegment.segment(text);
71
+
72
+ if (!segmentsIterator) {
73
+ return text;
74
+ }
75
+
76
+ var segmentsArray = Array.from(segmentsIterator);
77
+
78
+ if (segmentsArray.length === 0) {
79
+ return text;
80
+ }
81
+
82
+ return segmentsArray[0].segment;
83
+ }
84
+
85
+ function extractMetaFromTextNode(textNode) {
86
+ // treat as a link if contain a link
87
+ var linkMark = getLinkMark(textNode);
88
+
89
+ if (linkMark) {
90
+ var value = textNode.text || '';
91
+ return {
92
+ type: ContentType.LINK,
93
+ value: value
94
+ };
95
+ }
96
+
97
+ var text = textNode.text || '';
98
+ var firstWord = extractFirstWordFromString(text);
99
+ var maybeANumber = parseLocaleNumber(firstWord);
100
+
101
+ if (maybeANumber !== null) {
102
+ return {
103
+ type: ContentType.NUMBER,
104
+ value: maybeANumber
105
+ };
106
+ }
107
+
108
+ return {
109
+ type: ContentType.TEXT,
110
+ value: firstWord
111
+ };
33
112
  }
34
113
 
35
114
  function getMetaFromNode(node, options) {
@@ -78,41 +157,15 @@ function getMetaFromNode(node, options) {
78
157
 
79
158
  case 'text':
80
159
  {
81
- // treat as a link if contain a link
82
- var linkMark = getLinkMark(firstChild);
83
-
84
- if (linkMark) {
85
- var value = firstChild.text || '';
86
- return {
87
- type: ContentType.LINK,
88
- value: value
89
- };
90
- }
91
-
92
- var text = firstChild.text || '';
93
- var firstEmptySpace = text.indexOf(' ');
94
- var firstWord = firstEmptySpace !== -1 ? text.substring(0, firstEmptySpace) : text;
95
- var maybeANumber = Number.parseFloat(firstWord);
96
-
97
- if (!Number.isNaN(maybeANumber)) {
98
- return {
99
- type: ContentType.NUMBER,
100
- value: maybeANumber
101
- };
102
- }
103
-
104
- return {
105
- type: ContentType.TEXT,
106
- value: firstWord
107
- };
160
+ return extractMetaFromTextNode(firstChild);
108
161
  }
109
162
 
110
163
  case 'status':
111
164
  {
112
- var _text = firstChild.attrs.text;
165
+ var text = firstChild.attrs.text;
113
166
  return {
114
167
  type: ContentType.STATUS,
115
- value: _text
168
+ value: text
116
169
  };
117
170
  }
118
171
 
@@ -128,11 +181,11 @@ function getMetaFromNode(node, options) {
128
181
  case 'mention':
129
182
  {
130
183
  // TODO: Check what should be the fallback when mention does not have a text
131
- var _text2 = firstChild.attrs.text || '';
184
+ var _text = firstChild.attrs.text || '';
132
185
 
133
186
  return {
134
187
  type: ContentType.MENTION,
135
- value: _text2.toLowerCase()
188
+ value: _text.toLowerCase()
136
189
  };
137
190
  }
138
191