@atlaskit/status 1.0.0 → 1.1.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 (131) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/components/Status.js +5 -2
  3. package/dist/cjs/components/StatusPicker.js +24 -18
  4. package/dist/cjs/components/analytics.js +2 -2
  5. package/dist/cjs/components/i18n.js +5 -0
  6. package/dist/cjs/components/internal/color-palette.js +84 -24
  7. package/dist/cjs/components/internal/color.js +21 -10
  8. package/dist/cjs/i18n/cs.js +4 -3
  9. package/dist/cjs/i18n/da.js +4 -3
  10. package/dist/cjs/i18n/de.js +4 -3
  11. package/dist/cjs/i18n/en_ZZ.js +24 -0
  12. package/dist/cjs/i18n/es.js +4 -3
  13. package/dist/cjs/i18n/et.js +2 -2
  14. package/dist/cjs/i18n/fi.js +4 -3
  15. package/dist/cjs/i18n/fr.js +4 -3
  16. package/dist/cjs/i18n/hu.js +4 -3
  17. package/dist/cjs/i18n/it.js +4 -3
  18. package/dist/cjs/i18n/ja.js +4 -3
  19. package/dist/cjs/i18n/ko.js +4 -3
  20. package/dist/cjs/i18n/nb.js +4 -3
  21. package/dist/cjs/i18n/nl.js +4 -3
  22. package/dist/cjs/i18n/pl.js +4 -3
  23. package/dist/cjs/i18n/pt_BR.js +4 -3
  24. package/dist/cjs/i18n/pt_PT.js +2 -2
  25. package/dist/cjs/i18n/ru.js +4 -3
  26. package/dist/cjs/i18n/sk.js +2 -2
  27. package/dist/cjs/i18n/sv.js +4 -3
  28. package/dist/cjs/i18n/th.js +4 -3
  29. package/dist/cjs/i18n/tr.js +4 -3
  30. package/dist/cjs/i18n/uk.js +4 -3
  31. package/dist/cjs/i18n/vi.js +4 -3
  32. package/dist/cjs/i18n/zh.js +4 -3
  33. package/dist/cjs/i18n/zh_TW.js +4 -3
  34. package/dist/cjs/version.json +1 -1
  35. package/dist/es2019/components/Status.js +6 -2
  36. package/dist/es2019/components/StatusPicker.js +20 -13
  37. package/dist/es2019/components/i18n.js +5 -0
  38. package/dist/es2019/components/internal/color-palette.js +77 -18
  39. package/dist/es2019/components/internal/color.js +25 -13
  40. package/dist/es2019/i18n/cs.js +4 -3
  41. package/dist/es2019/i18n/da.js +4 -3
  42. package/dist/es2019/i18n/de.js +4 -3
  43. package/dist/es2019/i18n/en_ZZ.js +16 -0
  44. package/dist/es2019/i18n/es.js +4 -3
  45. package/dist/es2019/i18n/et.js +2 -2
  46. package/dist/es2019/i18n/fi.js +4 -3
  47. package/dist/es2019/i18n/fr.js +4 -3
  48. package/dist/es2019/i18n/hu.js +4 -3
  49. package/dist/es2019/i18n/it.js +4 -3
  50. package/dist/es2019/i18n/ja.js +4 -3
  51. package/dist/es2019/i18n/ko.js +4 -3
  52. package/dist/es2019/i18n/nb.js +4 -3
  53. package/dist/es2019/i18n/nl.js +4 -3
  54. package/dist/es2019/i18n/pl.js +4 -3
  55. package/dist/es2019/i18n/pt_BR.js +4 -3
  56. package/dist/es2019/i18n/pt_PT.js +2 -2
  57. package/dist/es2019/i18n/ru.js +4 -3
  58. package/dist/es2019/i18n/sk.js +2 -2
  59. package/dist/es2019/i18n/sv.js +4 -3
  60. package/dist/es2019/i18n/th.js +4 -3
  61. package/dist/es2019/i18n/tr.js +4 -3
  62. package/dist/es2019/i18n/uk.js +4 -3
  63. package/dist/es2019/i18n/vi.js +4 -3
  64. package/dist/es2019/i18n/zh.js +4 -3
  65. package/dist/es2019/i18n/zh_TW.js +4 -3
  66. package/dist/es2019/version.json +1 -1
  67. package/dist/esm/components/Status.js +6 -2
  68. package/dist/esm/components/StatusPicker.js +25 -19
  69. package/dist/esm/components/analytics.js +2 -2
  70. package/dist/esm/components/i18n.js +5 -0
  71. package/dist/esm/components/internal/color-palette.js +86 -24
  72. package/dist/esm/components/internal/color.js +22 -11
  73. package/dist/esm/i18n/cs.js +4 -3
  74. package/dist/esm/i18n/da.js +4 -3
  75. package/dist/esm/i18n/de.js +4 -3
  76. package/dist/esm/i18n/en_ZZ.js +16 -0
  77. package/dist/esm/i18n/es.js +4 -3
  78. package/dist/esm/i18n/et.js +2 -2
  79. package/dist/esm/i18n/fi.js +4 -3
  80. package/dist/esm/i18n/fr.js +4 -3
  81. package/dist/esm/i18n/hu.js +4 -3
  82. package/dist/esm/i18n/it.js +4 -3
  83. package/dist/esm/i18n/ja.js +4 -3
  84. package/dist/esm/i18n/ko.js +4 -3
  85. package/dist/esm/i18n/nb.js +4 -3
  86. package/dist/esm/i18n/nl.js +4 -3
  87. package/dist/esm/i18n/pl.js +4 -3
  88. package/dist/esm/i18n/pt_BR.js +4 -3
  89. package/dist/esm/i18n/pt_PT.js +2 -2
  90. package/dist/esm/i18n/ru.js +4 -3
  91. package/dist/esm/i18n/sk.js +2 -2
  92. package/dist/esm/i18n/sv.js +4 -3
  93. package/dist/esm/i18n/th.js +4 -3
  94. package/dist/esm/i18n/tr.js +4 -3
  95. package/dist/esm/i18n/uk.js +4 -3
  96. package/dist/esm/i18n/vi.js +4 -3
  97. package/dist/esm/i18n/zh.js +4 -3
  98. package/dist/esm/i18n/zh_TW.js +4 -3
  99. package/dist/esm/version.json +1 -1
  100. package/dist/types/components/Status.d.ts +2 -1
  101. package/dist/types/components/StatusPicker.d.ts +5 -13
  102. package/dist/types/components/i18n.d.ts +5 -0
  103. package/dist/types/components/internal/color-palette.d.ts +2 -2
  104. package/dist/types/components/internal/color.d.ts +4 -3
  105. package/dist/types/i18n/cs.d.ts +2 -1
  106. package/dist/types/i18n/da.d.ts +2 -1
  107. package/dist/types/i18n/de.d.ts +2 -1
  108. package/dist/types/i18n/en_ZZ.d.ts +16 -0
  109. package/dist/types/i18n/es.d.ts +2 -1
  110. package/dist/types/i18n/et.d.ts +1 -1
  111. package/dist/types/i18n/fi.d.ts +2 -1
  112. package/dist/types/i18n/fr.d.ts +2 -1
  113. package/dist/types/i18n/hu.d.ts +2 -1
  114. package/dist/types/i18n/it.d.ts +2 -1
  115. package/dist/types/i18n/ja.d.ts +2 -1
  116. package/dist/types/i18n/ko.d.ts +2 -1
  117. package/dist/types/i18n/nb.d.ts +2 -1
  118. package/dist/types/i18n/nl.d.ts +2 -1
  119. package/dist/types/i18n/pl.d.ts +2 -1
  120. package/dist/types/i18n/pt_BR.d.ts +2 -1
  121. package/dist/types/i18n/pt_PT.d.ts +1 -1
  122. package/dist/types/i18n/ru.d.ts +2 -1
  123. package/dist/types/i18n/sk.d.ts +1 -1
  124. package/dist/types/i18n/sv.d.ts +2 -1
  125. package/dist/types/i18n/th.d.ts +2 -1
  126. package/dist/types/i18n/tr.d.ts +2 -1
  127. package/dist/types/i18n/uk.d.ts +2 -1
  128. package/dist/types/i18n/vi.d.ts +2 -1
  129. package/dist/types/i18n/zh.d.ts +2 -1
  130. package/dist/types/i18n/zh_TW.d.ts +2 -1
  131. package/package.json +14 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # @atlaskit/status
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`af2dcdc462f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/af2dcdc462f) - [ux] Instrumented `@atlaskit/status` with the new theming package, `@atlaskit/tokens`.
8
+
9
+ New tokens will be visible only in applications configured to use the new Tokens API (currently in alpha).
10
+ These changes are intended to be interoperable with the legacy theme implementation. Legacy dark mode users should expect no visual or breaking changes.
11
+
12
+ ### Patch Changes
13
+
14
+ - [`fb47a6a79ef`](https://bitbucket.org/atlassian/atlassian-frontend/commits/fb47a6a79ef) - ED-14672 Removed styled-component from status, replaced by emotion.
15
+ - Updated dependencies
16
+
17
+ ## 1.0.2
18
+
19
+ ### Patch Changes
20
+
21
+ - [`56cf7af34be`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56cf7af34be) - AK-832 implementation navigation arrows for status color palette
22
+
23
+ ## 1.0.1
24
+
25
+ ### Patch Changes
26
+
27
+ - [`b5375cd4f66`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b5375cd4f66) - AK-316: add aria-label for the status picker input field
28
+ - [`85c4e5a71ee`](https://bitbucket.org/atlassian/atlassian-frontend/commits/85c4e5a71ee) - [AK-837] added role prop for Status component
29
+
3
30
  ## 1.0.0
4
31
 
5
32
  ### Major Changes
@@ -41,6 +41,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
41
41
 
42
42
  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; } }
43
43
 
44
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
44
45
  var colorToLozengeAppearanceMap = {
45
46
  neutral: 'default',
46
47
  purple: 'new',
@@ -49,6 +50,8 @@ var colorToLozengeAppearanceMap = {
49
50
  yellow: 'moved',
50
51
  green: 'success'
51
52
  };
53
+ /* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
54
+
52
55
  var DEFAULT_APPEARANCE = 'default';
53
56
  var MAX_WIDTH = 200;
54
57
 
@@ -97,7 +100,7 @@ var StatusInternal = /*#__PURE__*/function (_PureComponent) {
97
100
  text = _this$props.text,
98
101
  color = _this$props.color,
99
102
  style = _this$props.style,
100
- localId = _this$props.localId,
103
+ role = _this$props.role,
101
104
  onClick = _this$props.onClick;
102
105
 
103
106
  if (text.trim().length === 0) {
@@ -114,7 +117,7 @@ var StatusInternal = /*#__PURE__*/function (_PureComponent) {
114
117
  "data-node-type": "status",
115
118
  "data-color": color,
116
119
  "data-style": style,
117
- id: localId
120
+ role: role
118
121
  }, /*#__PURE__*/_react.default.createElement(_lozenge.default, {
119
122
  appearance: appearance,
120
123
  maxWidth: MAX_WIDTH
@@ -31,10 +31,14 @@ var _constants = require("@atlaskit/theme/constants");
31
31
 
32
32
  var _react = _interopRequireWildcard(require("react"));
33
33
 
34
- var _styledComponents = _interopRequireDefault(require("styled-components"));
34
+ var _reactIntlNext = require("react-intl-next");
35
+
36
+ var _react2 = require("@emotion/react");
35
37
 
36
38
  var _colorPalette = _interopRequireDefault(require("./internal/color-palette"));
37
39
 
40
+ var _i18n = require("./i18n");
41
+
38
42
  var _templateObject;
39
43
 
40
44
  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); }
@@ -45,17 +49,17 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
45
49
 
46
50
  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; } }
47
51
 
48
- var FieldTextWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin: 0 ", "px;\n"])), (0, _constants.gridSize)());
52
+ var fieldTextWrapperStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin: 0 ", "px;\n"])), (0, _constants.gridSize)());
49
53
 
50
- var StatusPicker = /*#__PURE__*/function (_PureComponent) {
51
- (0, _inherits2.default)(StatusPicker, _PureComponent);
54
+ var Picker = /*#__PURE__*/function (_PureComponent) {
55
+ (0, _inherits2.default)(Picker, _PureComponent);
52
56
 
53
- var _super = _createSuper(StatusPicker);
57
+ var _super = _createSuper(Picker);
54
58
 
55
- function StatusPicker() {
59
+ function Picker() {
56
60
  var _this;
57
61
 
58
- (0, _classCallCheck2.default)(this, StatusPicker);
62
+ (0, _classCallCheck2.default)(this, Picker);
59
63
 
60
64
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
65
  args[_key] = arguments[_key];
@@ -84,20 +88,21 @@ var StatusPicker = /*#__PURE__*/function (_PureComponent) {
84
88
  return _this;
85
89
  }
86
90
 
87
- (0, _createClass2.default)(StatusPicker, [{
91
+ (0, _createClass2.default)(Picker, [{
88
92
  key: "render",
89
93
  value: function render() {
90
94
  var _this$props = this.props,
91
95
  text = _this$props.text,
92
96
  selectedColor = _this$props.selectedColor,
93
- localId = _this$props.localId,
94
97
  onColorClick = _this$props.onColorClick,
95
- onColorHover = _this$props.onColorHover; // Using <React.Fragment> instead of [] to workaround Enzyme
98
+ onColorHover = _this$props.onColorHover,
99
+ intl = _this$props.intl; // Using <React.Fragment> instead of [] to workaround Enzyme
96
100
  // (https://github.com/airbnb/enzyme/issues/1149)
97
101
 
98
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(FieldTextWrapper, {
102
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
103
+ css: fieldTextWrapperStyles,
99
104
  key: this.fieldTextWrapperKey
100
- }, /*#__PURE__*/_react.default.createElement(_textfield.default, {
105
+ }, (0, _react2.jsx)(_textfield.default, {
101
106
  value: text,
102
107
  isCompact: true,
103
108
  ref: this.handleInputRef,
@@ -105,8 +110,8 @@ var StatusPicker = /*#__PURE__*/function (_PureComponent) {
105
110
  onKeyPress: this.onKeyPress,
106
111
  spellCheck: false,
107
112
  autoComplete: "off",
108
- "aria-labelledby": localId
109
- })), /*#__PURE__*/_react.default.createElement(_colorPalette.default, {
113
+ "aria-label": intl.formatMessage(_i18n.messages.statusInputLabel)
114
+ })), (0, _react2.jsx)(_colorPalette.default, {
110
115
  key: this.colorPaletteKey,
111
116
  onClick: onColorClick,
112
117
  onHover: onColorHover,
@@ -114,10 +119,11 @@ var StatusPicker = /*#__PURE__*/function (_PureComponent) {
114
119
  }));
115
120
  }
116
121
  }]);
117
- return StatusPicker;
122
+ return Picker;
118
123
  }(_react.PureComponent);
119
124
 
120
- exports.StatusPicker = StatusPicker;
121
- (0, _defineProperty2.default)(StatusPicker, "defaultProps", {
125
+ (0, _defineProperty2.default)(Picker, "defaultProps", {
122
126
  autoFocus: true
123
- });
127
+ });
128
+ var StatusPicker = (0, _reactIntlNext.injectIntl)(Picker);
129
+ exports.StatusPicker = StatusPicker;
@@ -11,9 +11,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _version = require("../version.json");
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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
15
 
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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
17
 
18
18
  var ELEMENTS_CHANNEL = 'fabric-elements';
19
19
  exports.ELEMENTS_CHANNEL = ELEMENTS_CHANNEL;
@@ -37,6 +37,11 @@ var messages = (0, _reactIntlNext.defineMessages)({
37
37
  id: 'fabric.status.color.green',
38
38
  defaultMessage: 'Green',
39
39
  description: 'Tooltip for the green color in color palette'
40
+ },
41
+ statusInputLabel: {
42
+ id: 'fabric.status.input.label',
43
+ defaultMessage: 'Set a status',
44
+ description: 'Aria label text for the status input field'
40
45
  }
41
46
  });
42
47
  exports.messages = messages;
@@ -17,9 +17,11 @@ var _constants = require("@atlaskit/theme/constants");
17
17
 
18
18
  var colors = _interopRequireWildcard(require("@atlaskit/theme/colors"));
19
19
 
20
- var _react = _interopRequireDefault(require("react"));
20
+ var _tokens = require("@atlaskit/tokens");
21
21
 
22
- var _styledComponents = _interopRequireDefault(require("styled-components"));
22
+ var _react = _interopRequireWildcard(require("react"));
23
+
24
+ var _react2 = require("@emotion/react");
23
25
 
24
26
  var _color = _interopRequireDefault(require("./color"));
25
27
 
@@ -30,9 +32,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
30
32
  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; }
31
33
 
32
34
  // color value, label, background, borderColor
33
- var palette = [['neutral', colors.N40, colors.N400], ['purple', colors.P50, colors.P400], ['blue', colors.B50, colors.B400], ['red', colors.R50, colors.R400], ['yellow', colors.Y75, colors.Y400], ['green', colors.G50, colors.G400]];
35
+ var palette = [['neutral', (0, _tokens.token)('color.background.neutral', colors.N40), (0, _tokens.token)('color.text', colors.N400)], ['purple', (0, _tokens.token)('color.background.discovery', colors.P50), (0, _tokens.token)('color.text.discovery', colors.P400)], ['blue', (0, _tokens.token)('color.background.information', colors.B50), (0, _tokens.token)('color.text.information', colors.B400)], ['red', (0, _tokens.token)('color.background.danger', colors.R50), (0, _tokens.token)('color.text.danger', colors.R400)], ['yellow', (0, _tokens.token)('color.background.warning', colors.Y75), (0, _tokens.token)('color.text.warning', colors.Y400)], ['green', (0, _tokens.token)('color.background.success', colors.G50), (0, _tokens.token)('color.text.success', colors.G400)]];
36
+ var colorPaletteWrapperStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin: ", "px ", "px 0 ", "px;\n /* Firefox bug fix: https://product-fabric.atlassian.net/browse/ED-1789 */\n display: flex;\n flex-wrap: wrap;\n"])), (0, _constants.gridSize)(), (0, _constants.gridSize)(), (0, _constants.gridSize)());
37
+ var VK_LEFT = 37; //ArrowLeft
38
+
39
+ var VK_RIGHT = 39; //ArrowRight
34
40
 
35
- var ColorPaletteWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin: ", "px ", "px 0 ", "px;\n /* Firefox bug fix: https://product-fabric.atlassian.net/browse/ED-1789 */\n display: flex;\n flex-wrap: wrap;\n"])), (0, _constants.gridSize)(), (0, _constants.gridSize)(), (0, _constants.gridSize)());
41
+ var VK_UP = 38; //ArrowUp
42
+
43
+ var VK_DOWN = 40; //ArrowDown
36
44
 
37
45
  var _default = function _default(_ref) {
38
46
  var _ref$cols = _ref.cols,
@@ -41,27 +49,79 @@ var _default = function _default(_ref) {
41
49
  selectedColor = _ref.selectedColor,
42
50
  className = _ref.className,
43
51
  onHover = _ref.onHover;
44
- return /*#__PURE__*/_react.default.createElement(ColorPaletteWrapper, {
45
- className: className,
46
- style: {
47
- maxWidth: cols * 32
48
- }
49
- }, palette.map(function (_ref2) {
50
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 3),
51
- colorValue = _ref3[0],
52
- backgroundColor = _ref3[1],
53
- borderColor = _ref3[2];
54
-
55
- return /*#__PURE__*/_react.default.createElement(_color.default, {
56
- key: colorValue,
57
- value: colorValue,
58
- backgroundColor: backgroundColor,
59
- borderColor: borderColor,
60
- onClick: onClick,
61
- onHover: onHover,
62
- isSelected: colorValue === selectedColor
52
+ var colorRefs = (0, _react.useRef)([]);
53
+ (0, _react.useEffect)(function () {
54
+ colorRefs.current = colorRefs.current.slice(0, palette.length);
55
+ }, []);
56
+ var memoizedHandleKeyDown = (0, _react.useCallback)(function (e) {
57
+ var colorIndex = palette.findIndex(function (_ref2) {
58
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 1),
59
+ colorValue = _ref3[0];
60
+
61
+ return colorValue === selectedColor;
63
62
  });
64
- }));
63
+ var newColorIndex = null;
64
+
65
+ switch (e.keyCode) {
66
+ case VK_RIGHT:
67
+ case VK_DOWN:
68
+ e.preventDefault();
69
+ newColorIndex = colorIndex + 1 > palette.length - 1 ? 0 : colorIndex + 1;
70
+ break;
71
+
72
+ case VK_LEFT:
73
+ case VK_UP:
74
+ e.preventDefault();
75
+ newColorIndex = colorIndex - 1 < 0 ? palette.length - 1 : colorIndex - 1;
76
+ break;
77
+ }
78
+
79
+ if (newColorIndex === null) {
80
+ return;
81
+ }
82
+
83
+ var newColorValue = palette[newColorIndex][0];
84
+ var newRef = colorRefs.current[newColorIndex];
85
+ newRef === null || newRef === void 0 ? void 0 : newRef.focus();
86
+ onClick(newColorValue);
87
+ }, [selectedColor, onClick, colorRefs]);
88
+ return (
89
+ /**
90
+ We need to disable below eslint rule becuase of role "radiogroup". This role was added
91
+ in https://a11y-internal.atlassian.net/browse/AK-832 to fix accessibility issue.
92
+ When we migrated to emotion from styled component, we started getting this error.
93
+ Task added in https://product-fabric.atlassian.net/wiki/spaces/E/pages/3182068181/Potential+improvements#Moderate-changes.
94
+ */
95
+ // eslint-disable-next-line jsx-a11y/interactive-supports-focus
96
+ (0, _react2.jsx)("div", {
97
+ css: colorPaletteWrapperStyles,
98
+ className: className,
99
+ role: "radiogroup",
100
+ style: {
101
+ maxWidth: cols * 32
102
+ },
103
+ onKeyDown: memoizedHandleKeyDown
104
+ }, palette.map(function (_ref4, i) {
105
+ var _ref5 = (0, _slicedToArray2.default)(_ref4, 3),
106
+ colorValue = _ref5[0],
107
+ backgroundColor = _ref5[1],
108
+ borderColor = _ref5[2];
109
+
110
+ return (0, _react2.jsx)(_color.default, {
111
+ key: colorValue,
112
+ value: colorValue,
113
+ backgroundColor: backgroundColor,
114
+ borderColor: borderColor,
115
+ onClick: onClick,
116
+ onHover: onHover,
117
+ isSelected: colorValue === selectedColor,
118
+ tabIndex: colorValue === selectedColor ? 0 : -1,
119
+ setRef: function setRef(el) {
120
+ return colorRefs.current[i] = el;
121
+ }
122
+ });
123
+ }))
124
+ );
65
125
  };
66
126
 
67
127
  exports.default = _default;
@@ -29,11 +29,13 @@ var _done = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/done"));
29
29
 
30
30
  var _colors = require("@atlaskit/theme/colors");
31
31
 
32
+ var _tokens = require("@atlaskit/tokens");
33
+
32
34
  var _react = _interopRequireWildcard(require("react"));
33
35
 
34
36
  var _reactIntlNext = require("react-intl-next");
35
37
 
36
- var _styledComponents = _interopRequireDefault(require("styled-components"));
38
+ var _react2 = require("@emotion/react");
37
39
 
38
40
  var _constants = require("../constants");
39
41
 
@@ -49,9 +51,8 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
49
51
 
50
52
  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; } }
51
53
 
52
- var Button = _styledComponents.default.button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n height: 24px;\n width: 24px;\n background: ", ";\n padding: 0;\n border-radius: 4px;\n border: 1px solid ", ";\n cursor: pointer;\n display: block;\n box-sizing: border-box;\n overflow: hidden;\n"])), _colors.N900, _colors.N0);
53
-
54
- var ButtonWrapper = _styledComponents.default.span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid transparent;\n margin: 0 2px;\n font-size: 0;\n display: flex;\n align-items: center;\n padding: 1px;\n border-radius: 6px;\n &:hover {\n border: 1px solid ", ";\n }\n"])), _colors.N50);
54
+ var buttonStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n height: 24px;\n width: 24px;\n background: ", ";\n padding: 0;\n border-radius: 4px;\n border: 1px solid ", ";\n cursor: pointer;\n display: block;\n box-sizing: border-box;\n overflow: hidden;\n"])), (0, _tokens.token)('color.background.neutral', _colors.N900), (0, _tokens.token)('color.border', _colors.N0));
55
+ var buttonWrapperStyles = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid transparent;\n margin: 0 2px;\n font-size: 0;\n display: flex;\n align-items: center;\n padding: 1px;\n border-radius: 6px;\n &:hover {\n border: 1px solid ", ";\n }\n"])), (0, _tokens.token)('color.border', _colors.N50));
55
56
 
56
57
  var Color = /*#__PURE__*/function (_PureComponent) {
57
58
  (0, _inherits2.default)(Color, _PureComponent);
@@ -106,22 +107,32 @@ var Color = /*#__PURE__*/function (_PureComponent) {
106
107
  backgroundColor = _this$props2.backgroundColor,
107
108
  isSelected = _this$props2.isSelected,
108
109
  borderColor = _this$props2.borderColor,
109
- value = _this$props2.value;
110
+ value = _this$props2.value,
111
+ setRef = _this$props2.setRef;
110
112
  var borderStyle = "1px solid ".concat(borderColor);
111
- return /*#__PURE__*/_react.default.createElement(ButtonWrapper, null, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _i18n.messages["".concat(value, "Color")], function (labels) {
112
- return /*#__PURE__*/_react.default.createElement(Button, {
113
+ return (0, _react2.jsx)("span", {
114
+ css: buttonWrapperStyles
115
+ }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _i18n.messages["".concat(value, "Color")], function (labels) {
116
+ return (0, _react2.jsx)("button", {
117
+ css: buttonStyles,
113
118
  onClick: _this2.onClick,
114
119
  onMouseEnter: _this2.onMouseEnter,
115
120
  onMouseLeave: _this2.onMouseLeave,
116
121
  onMouseDown: _this2.onMouseDown,
117
122
  tabIndex: tabIndex,
118
123
  className: "".concat(isSelected ? 'selected' : ''),
119
- title: labels[0],
124
+ title: labels[0] // button element does not support aria-selected.
125
+ // For button selected (to be precise pressed) or not
126
+ // use aria-pressed as per
127
+ // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/button_role#associated_aria_roles_states_and_properties
128
+ ,
129
+ "aria-pressed": isSelected,
120
130
  style: {
121
131
  backgroundColor: backgroundColor || 'transparent',
122
132
  border: borderStyle
123
- }
124
- }, isSelected && /*#__PURE__*/_react.default.createElement(_done.default, {
133
+ },
134
+ ref: setRef
135
+ }, isSelected && (0, _react2.jsx)(_done.default, {
125
136
  primaryColor: borderColor,
126
137
  label: labels[0]
127
138
  }));
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Czech
14
+ //Czech
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Modrá',
17
17
  'fabric.status.color.green': 'Zelená',
18
18
  'fabric.status.color.grey': 'Šedá',
19
19
  'fabric.status.color.purple': 'Fialová',
20
20
  'fabric.status.color.red': 'Červená',
21
- 'fabric.status.color.yellow': 'Žlutá'
21
+ 'fabric.status.color.yellow': 'Žlutá',
22
+ 'fabric.status.input.label': 'Nastavit stav'
22
23
  };
23
24
  exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Danish
14
+ //Danish (Denmark)
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Blå',
17
17
  'fabric.status.color.green': 'Grøn',
18
18
  'fabric.status.color.grey': 'Grå',
19
19
  'fabric.status.color.purple': 'Lilla',
20
20
  'fabric.status.color.red': 'Rød',
21
- 'fabric.status.color.yellow': 'Gul'
21
+ 'fabric.status.color.yellow': 'Gul',
22
+ 'fabric.status.input.label': 'Angiv en status'
22
23
  };
23
24
  exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // German
14
+ //German (Germany)
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Blau',
17
17
  'fabric.status.color.green': 'Grün',
18
18
  'fabric.status.color.grey': 'Grau',
19
19
  'fabric.status.color.purple': 'Violett',
20
20
  'fabric.status.color.red': 'Rot',
21
- 'fabric.status.color.yellow': 'Gelb'
21
+ 'fabric.status.color.yellow': 'Gelb',
22
+ 'fabric.status.input.label': 'Status festlegen'
22
23
  };
23
24
  exports.default = _default;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ /**
9
+ * NOTE:
10
+ *
11
+ * This file is automatically generated by Traduki 2.0.
12
+ * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
+ */
14
+ //
15
+ var _default = {
16
+ 'fabric.status.color.blue': '⁣⁢Blue‍⁠‌‌⁠‍⁠؜‍⁠؜؜⁣⁤',
17
+ 'fabric.status.color.green': '⁣⁢Green⁡⁡⁡⁠‌‌⁡‌‌⁣⁤',
18
+ 'fabric.status.color.grey': '⁣⁢Grey⁠‌؜؜⁠‍⁡⁡⁡⁠‌؜⁡⁡⁣⁤',
19
+ 'fabric.status.color.purple': '⁣⁢Purple⁡؜‍⁡⁠؜؜؜⁡⁣⁤',
20
+ 'fabric.status.color.red': '⁣⁢Red⁡‌‌‌‌⁠‍‌؜؜⁡‍⁣⁤',
21
+ 'fabric.status.color.yellow': '⁣⁢Yellow‍⁡‍⁣⁤',
22
+ 'fabric.status.input.label': '⁣⁢Set a status‍‌؜‌⁡‍‍؜‍؜‍⁠⁣⁤'
23
+ };
24
+ exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Spanish
14
+ //Spanish (International)
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Azul',
17
17
  'fabric.status.color.green': 'Verde',
18
18
  'fabric.status.color.grey': 'Gris',
19
19
  'fabric.status.color.purple': 'Morado',
20
20
  'fabric.status.color.red': 'Rojo',
21
- 'fabric.status.color.yellow': 'Amarillo'
21
+ 'fabric.status.color.yellow': 'Amarillo',
22
+ 'fabric.status.input.label': 'Establecer un estado'
22
23
  };
23
24
  exports.default = _default;
@@ -8,10 +8,10 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Estonian
14
+ //Estonian
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Sinine',
17
17
  'fabric.status.color.green': 'Roheline',
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Finnish
14
+ //Finnish
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Sininen',
17
17
  'fabric.status.color.green': 'Vihreä',
18
18
  'fabric.status.color.grey': 'Harmaa',
19
19
  'fabric.status.color.purple': 'Violetti',
20
20
  'fabric.status.color.red': 'Punainen',
21
- 'fabric.status.color.yellow': 'Keltainen'
21
+ 'fabric.status.color.yellow': 'Keltainen',
22
+ 'fabric.status.input.label': 'Aseta tila'
22
23
  };
23
24
  exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // French
14
+ //French (France)
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Bleu',
17
17
  'fabric.status.color.green': 'Vert',
18
18
  'fabric.status.color.grey': 'Gris',
19
19
  'fabric.status.color.purple': 'Violet',
20
20
  'fabric.status.color.red': 'Rouge',
21
- 'fabric.status.color.yellow': 'Jaune'
21
+ 'fabric.status.color.yellow': 'Jaune',
22
+ 'fabric.status.input.label': 'Définir un état'
22
23
  };
23
24
  exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Hungarian
14
+ //Hungarian
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Kék',
17
17
  'fabric.status.color.green': 'Zöld',
18
18
  'fabric.status.color.grey': 'Szürke',
19
19
  'fabric.status.color.purple': 'Lila',
20
20
  'fabric.status.color.red': 'Piros',
21
- 'fabric.status.color.yellow': 'Sárga'
21
+ 'fabric.status.color.yellow': 'Sárga',
22
+ 'fabric.status.input.label': 'Állapot beállítása'
22
23
  };
23
24
  exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Italian
14
+ //Italian (Italy)
15
15
  var _default = {
16
16
  'fabric.status.color.blue': 'Blu',
17
17
  'fabric.status.color.green': 'Verde',
18
18
  'fabric.status.color.grey': 'Grigio',
19
19
  'fabric.status.color.purple': 'Viola',
20
20
  'fabric.status.color.red': 'Rosso',
21
- 'fabric.status.color.yellow': 'Giallo'
21
+ 'fabric.status.color.yellow': 'Giallo',
22
+ 'fabric.status.input.label': 'Imposta uno stato'
22
23
  };
23
24
  exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Japanese
14
+ //Japanese
15
15
  var _default = {
16
16
  'fabric.status.color.blue': '青',
17
17
  'fabric.status.color.green': '緑',
18
18
  'fabric.status.color.grey': '灰色',
19
19
  'fabric.status.color.purple': '紫',
20
20
  'fabric.status.color.red': '赤',
21
- 'fabric.status.color.yellow': '黄'
21
+ 'fabric.status.color.yellow': '黄',
22
+ 'fabric.status.input.label': 'ステータスを設定'
22
23
  };
23
24
  exports.default = _default;
@@ -8,16 +8,17 @@ exports.default = void 0;
8
8
  /**
9
9
  * NOTE:
10
10
  *
11
- * This file is automatically generated by i18n-tools.
11
+ * This file is automatically generated by Traduki 2.0.
12
12
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
13
  */
14
- // Korean
14
+ //Korean
15
15
  var _default = {
16
16
  'fabric.status.color.blue': '파란색',
17
17
  'fabric.status.color.green': '녹색',
18
18
  'fabric.status.color.grey': '회색',
19
19
  'fabric.status.color.purple': '보라색',
20
20
  'fabric.status.color.red': '빨강색',
21
- 'fabric.status.color.yellow': '노란색'
21
+ 'fabric.status.color.yellow': '노란색',
22
+ 'fabric.status.input.label': '상태 설정'
22
23
  };
23
24
  exports.default = _default;