@dscout/particle 1.0.0-alpha.2 → 1.0.0-alpha.3

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 (90) hide show
  1. package/lib/components/advanced_options.js +15 -3
  2. package/lib/components/attribute_input.js +15 -3
  3. package/lib/components/attribute_selector.js +14 -3
  4. package/lib/components/button.js +18 -6
  5. package/lib/components/button_control.js +15 -3
  6. package/lib/components/button_icon.js +142 -40
  7. package/lib/components/button_mode.js +18 -6
  8. package/lib/components/button_plain.js +16 -4
  9. package/lib/components/card.js +12 -2
  10. package/lib/components/checkbox_input.js +15 -3
  11. package/lib/components/collapsing_menu.js +15 -3
  12. package/lib/components/common_button.js +65 -5
  13. package/lib/components/common_input.js +15 -3
  14. package/lib/components/container.js +74 -14
  15. package/lib/components/container_header.js +2 -2
  16. package/lib/components/drag_and_drop.js +14 -3
  17. package/lib/components/dropdown_input_toggle.js +15 -4
  18. package/lib/components/editing_container.js +2 -3
  19. package/lib/components/email_input.js +15 -3
  20. package/lib/components/file_input.js +15 -3
  21. package/lib/components/link_text.js +283 -0
  22. package/lib/components/number_input.js +15 -3
  23. package/lib/components/password_input.js +15 -3
  24. package/lib/components/radio_input.js +15 -3
  25. package/lib/components/range_input.js +15 -3
  26. package/lib/components/search_input.js +15 -3
  27. package/lib/components/select_input.js +15 -3
  28. package/lib/components/tags_input.js +16 -3
  29. package/lib/components/text_input.js +15 -3
  30. package/lib/components/textarea.js +15 -3
  31. package/lib/components/togglable_fieldset.js +15 -3
  32. package/lib/components/toggle.js +15 -3
  33. package/lib/index.js +8 -16
  34. package/lib/stylesheets/particle.css +4495 -3192
  35. package/lib/stylesheets/particle.css.map +1 -0
  36. package/lib/stylesheets/particle.min.css +1 -1
  37. package/lib/stylesheets/particle.min.css.gz +0 -0
  38. package/lib/utils/data_attributes.js +18 -0
  39. package/lib/utils/markscout.js +2 -2
  40. package/package.json +29 -27
  41. package/styles/_base.scss +5 -8
  42. package/styles/_reset.scss +5 -0
  43. package/styles/components/_icons.scss +7 -14
  44. package/styles/components/attribute_selector/_base.scss +3 -3
  45. package/styles/components/button_icon/_base.scss +22 -0
  46. package/styles/components/button_icon/themes/_bandit.scss +5 -0
  47. package/styles/components/button_icon/themes/_researcher.scss +5 -0
  48. package/styles/components/button_icon/themes/_theme_builder.scss +12 -0
  49. package/styles/components/buttons/_base.scss +245 -382
  50. package/styles/components/buttons/themes/_bandit.scss +16 -16
  51. package/styles/components/buttons/themes/_theme_builder.scss +49 -73
  52. package/styles/components/card/_base.scss +0 -8
  53. package/styles/components/container/_base.scss +10 -20
  54. package/styles/components/container/themes/_theme_builder.scss +15 -14
  55. package/styles/components/footnote/_base.scss +1 -1
  56. package/styles/components/input_group/_base.scss +4 -4
  57. package/styles/components/link_text/_base.scss +52 -0
  58. package/styles/components/link_text/themes/_bandit.scss +5 -0
  59. package/styles/components/link_text/themes/_researcher.scss +5 -0
  60. package/styles/components/link_text/themes/_theme_builder.scss +11 -0
  61. package/styles/components/menu/_base.scss +2 -3
  62. package/styles/components/pill/_base.scss +13 -0
  63. package/styles/components/segmented_controls/_base.scss +1 -1
  64. package/styles/components/swappable/_base.scss +10 -2
  65. package/styles/particle.scss +2 -2
  66. package/styles/themes/_bandit.scss +40 -5
  67. package/styles/themes/_bandit_colors.scss +9 -0
  68. package/styles/themes/_researcher.scss +8 -5
  69. package/styles/themes/_researcher_colors.scss +91 -0
  70. package/styles/themes/_theme_builder.scss +215 -0
  71. package/styles/utilities/_alignment.scss +14 -137
  72. package/styles/utilities/_borders.scss +0 -44
  73. package/styles/utilities/_colors.scss +76 -605
  74. package/styles/utilities/_dimensions.scss +51 -265
  75. package/styles/utilities/_display.scss +1 -64
  76. package/styles/utilities/_overflow.scss +0 -55
  77. package/styles/utilities/_radii.scss +102 -30
  78. package/styles/utilities/_shadows.scss +0 -59
  79. package/styles/utilities/_spacing.scss +69 -534
  80. package/styles/utilities/_typography.scss +11 -333
  81. package/CHANGELOG.md +0 -1548
  82. package/lib/components/container_inner.js +0 -93
  83. package/lib/components/controls.js +0 -106
  84. package/styles/_mixins.scss +0 -134
  85. package/styles/_tables.scss +0 -138
  86. package/styles/_theme_builder.scss +0 -356
  87. package/styles/_variables.scss +0 -248
  88. package/styles/components/_links.scss +0 -141
  89. package/styles/css_variables/_bandit.scss +0 -45
  90. package/styles/css_variables/_researcher.scss +0 -5
@@ -13,6 +13,8 @@ var _class_names = _interopRequireDefault(require("../utils/class_names"));
13
13
 
14
14
  var _refs = require("../utils/refs");
15
15
 
16
+ var _data_attributes = _interopRequireDefault(require("../utils/data_attributes"));
17
+
16
18
  var _button_plain = _interopRequireDefault(require("./button_plain"));
17
19
 
18
20
  var _collapsible_content = _interopRequireDefault(require("./collapsible_content"));
@@ -25,8 +27,16 @@ var _modifier = _interopRequireDefault(require("./modifier"));
25
27
 
26
28
  var _collapsible = _interopRequireDefault(require("./collapsible"));
27
29
 
30
+ var _excluded = ["_modifierClass", "aria-label", "aria-labelledby", "aria-describedby", "children", "disabled", "getRef", "id", "initialCollapsed", "name", "title"];
31
+
28
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
33
 
34
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
35
+
36
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
37
+
38
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
39
+
30
40
  var propTypes = {
31
41
  _modifierClass: _propTypes.default.string,
32
42
  'aria-label': _propTypes.default.string,
@@ -53,7 +63,9 @@ function AdvancedOptions(_ref) {
53
63
  _ref$initialCollapsed = _ref.initialCollapsed,
54
64
  initialCollapsed = _ref$initialCollapsed === void 0 ? true : _ref$initialCollapsed,
55
65
  name = _ref.name,
56
- title = _ref.title;
66
+ title = _ref.title,
67
+ rest = _objectWithoutProperties(_ref, _excluded);
68
+
57
69
  var ariaControlsId = id ? "advanced-options-collapsible-content-".concat(id) : null;
58
70
  return _react.default.createElement(_collapsible.default, {
59
71
  initialCollapsed: initialCollapsed
@@ -67,7 +79,7 @@ function AdvancedOptions(_ref) {
67
79
  margin: {
68
80
  bottom: '0.75'
69
81
  }
70
- }, _react.default.createElement(_button_plain.default, {
82
+ }, _react.default.createElement(_button_plain.default, _extends({}, (0, _data_attributes.default)(rest), {
71
83
  "aria-controls": ariaControlsId,
72
84
  "aria-expanded": !isCollapsed,
73
85
  "aria-label": ariaLabel,
@@ -77,7 +89,7 @@ function AdvancedOptions(_ref) {
77
89
  id: id,
78
90
  onClick: toggleCollapsed,
79
91
  name: name || title
80
- }, _react.default.createElement(_flex.default, null, title, ' ', _react.default.createElement(_triangle_inverted.default, {
92
+ }), _react.default.createElement(_flex.default, null, title, ' ', _react.default.createElement(_triangle_inverted.default, {
81
93
  direction: isCollapsed ? 'right' : 'down'
82
94
  })))), _react.default.createElement(_collapsible_content.default, {
83
95
  collapsed: isCollapsed,
@@ -15,8 +15,18 @@ var _refs = require("../utils/refs");
15
15
 
16
16
  var _forms = require("../utils/forms");
17
17
 
18
+ var _data_attributes = _interopRequireDefault(require("../utils/data_attributes"));
19
+
20
+ var _excluded = ["_modifierClass", "aria-describedby", "aria-invalid", "aria-label", "aria-labelledby", "checked", "disabled", "getRef", "id", "label", "name", "value", "onChange", "readOnly", "tabIndex"];
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
24
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+
26
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
+
28
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
+
20
30
  var propTypes = {
21
31
  _modifierClass: _propTypes.default.string,
22
32
  'aria-describedby': _propTypes.default.string,
@@ -55,7 +65,9 @@ function AttributeInput(_ref) {
55
65
  value = _ref.value,
56
66
  onChange = _ref.onChange,
57
67
  readOnly = _ref.readOnly,
58
- tabIndex = _ref.tabIndex;
68
+ tabIndex = _ref.tabIndex,
69
+ rest = _objectWithoutProperties(_ref, _excluded);
70
+
59
71
  var attributeId = determineIdValue(id, label);
60
72
  var selectorClassName = (0, _class_names.default)('Attribute', _modifierClass, {
61
73
  'Attribute--with-label': label
@@ -65,7 +77,7 @@ function AttributeInput(_ref) {
65
77
  });
66
78
  return _react.default.createElement("div", {
67
79
  className: selectorClassName
68
- }, _react.default.createElement("input", {
80
+ }, _react.default.createElement("input", _extends({}, (0, _data_attributes.default)(rest), {
69
81
  id: attributeId,
70
82
  name: name,
71
83
  "aria-label": ariaLabel,
@@ -81,7 +93,7 @@ function AttributeInput(_ref) {
81
93
  tabIndex: tabIndex,
82
94
  readOnly: readOnly,
83
95
  disabled: disabled
84
- }), _react.default.createElement("label", {
96
+ })), _react.default.createElement("label", {
85
97
  className: labelClassName,
86
98
  htmlFor: attributeId
87
99
  }, label));
@@ -13,10 +13,20 @@ var _class_names = _interopRequireDefault(require("../utils/class_names"));
13
13
 
14
14
  var _refs = require("../utils/refs");
15
15
 
16
+ var _data_attributes = _interopRequireDefault(require("../utils/data_attributes"));
17
+
16
18
  var _attribute_input = _interopRequireDefault(require("./attribute_input"));
17
19
 
20
+ var _excluded = ["_modifierClass", "aria-label", "aria-labelledby", "aria-describedby", "attributes", "getRef", "id", "name", "onClick", "selected"];
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
24
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+
26
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
+
28
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
+
20
30
  var propTypes = {
21
31
  _modifierClass: _propTypes.default.string,
22
32
  'aria-label': _propTypes.default.string,
@@ -41,7 +51,8 @@ function AttributeSelector(_ref) {
41
51
  _ref$name = _ref.name,
42
52
  name = _ref$name === void 0 ? 'attributes' : _ref$name,
43
53
  onClick = _ref.onClick,
44
- selected = _ref.selected;
54
+ selected = _ref.selected,
55
+ rest = _objectWithoutProperties(_ref, _excluded);
45
56
 
46
57
  function handleAttributeSelected(_ref2) {
47
58
  var target = _ref2.target;
@@ -59,14 +70,14 @@ function AttributeSelector(_ref) {
59
70
  });
60
71
  }
61
72
 
62
- return _react.default.createElement("div", {
73
+ return _react.default.createElement("div", _extends({}, (0, _data_attributes.default)(rest), {
63
74
  "aria-label": ariaLabel,
64
75
  "aria-labelledby": ariaLabelledby,
65
76
  "aria-describedby": ariaDescribedby,
66
77
  className: (0, _class_names.default)('Attribute__Selector spacing-h--0.25', _modifierClass),
67
78
  id: id,
68
79
  ref: getRef
69
- }, Object.keys(attributes).map(renderAttribute));
80
+ }), Object.keys(attributes).map(renderAttribute));
70
81
  }
71
82
 
72
83
  AttributeSelector.propTypes = propTypes;
@@ -13,10 +13,20 @@ var _class_names = _interopRequireDefault(require("../utils/class_names"));
13
13
 
14
14
  var _refs = require("../utils/refs");
15
15
 
16
+ var _data_attributes = _interopRequireDefault(require("../utils/data_attributes"));
17
+
16
18
  var _common_button = _interopRequireDefault(require("./common_button"));
17
19
 
20
+ var _excluded = ["_modifierClass", "aria-controls", "aria-expanded", "aria-label", "aria-labelledby", "aria-describedby", "aria-pressed", "children", "color", "disabled", "getRef", "id", "linkComponent", "linkProps", "name", "onClick", "onMouseUp", "onMouseDown", "refProp", "size", "title", "type", "width", "variant"];
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
24
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+
26
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
+
28
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
+
20
30
  var ENUMS = {
21
31
  color: ['alert', 'close', 'coachmark', 'dscout', 'archive', 'none', 'success', 'note', 'screener', 'live', 'diary', 'test', 'invert'],
22
32
  size: ['big', 'small'],
@@ -53,8 +63,8 @@ var ALIAS_MAP = {
53
63
  live: 'alert'
54
64
  };
55
65
 
56
- function whitelistedClassFor(type, value) {
57
- var classPrefix = type === 'color' ? "btn--color-" : "btn--";
66
+ function supportedClassFor(type, value) {
67
+ var classPrefix = type === 'color' ? "Button--color-" : "Button--";
58
68
 
59
69
  if (ENUMS[type].includes(value)) {
60
70
  return "".concat(classPrefix).concat(ALIAS_MAP[value] || value);
@@ -85,9 +95,11 @@ function Button(_ref) {
85
95
  title = _ref.title,
86
96
  type = _ref.type,
87
97
  width = _ref.width,
88
- variant = _ref.variant;
89
- var className = (0, _class_names.default)('btn', whitelistedClassFor('size', size), whitelistedClassFor('width', width), whitelistedClassFor('variant', variant), whitelistedClassFor('color', color), _modifierClass);
90
- return _react.default.createElement(_common_button.default, {
98
+ variant = _ref.variant,
99
+ rest = _objectWithoutProperties(_ref, _excluded);
100
+
101
+ var className = (0, _class_names.default)('Button', supportedClassFor('size', size), supportedClassFor('width', width), supportedClassFor('variant', variant), supportedClassFor('color', color), _modifierClass);
102
+ return _react.default.createElement(_common_button.default, _extends({}, (0, _data_attributes.default)(rest), {
91
103
  "aria-controls": ariaControls,
92
104
  "aria-expanded": ariaExpanded,
93
105
  "aria-label": ariaLabel,
@@ -107,7 +119,7 @@ function Button(_ref) {
107
119
  refProp: refProp,
108
120
  title: title,
109
121
  type: type
110
- }, children);
122
+ }), children);
111
123
  }
112
124
 
113
125
  Button.propTypes = propTypes;
@@ -13,8 +13,18 @@ var _class_names = _interopRequireDefault(require("../utils/class_names"));
13
13
 
14
14
  var _refs = require("../utils/refs");
15
15
 
16
+ var _data_attributes = _interopRequireDefault(require("../utils/data_attributes"));
17
+
18
+ var _excluded = ["_modifierClass", "active", "aria-controls", "aria-expanded", "aria-label", "aria-labelledby", "aria-describedby", "children", "disabled", "getRef", "id", "name", "onClick", "title"];
19
+
16
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
21
 
22
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
+
24
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
25
+
26
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
+
18
28
  var propTypes = {
19
29
  _modifierClass: _propTypes.default.string,
20
30
  active: _propTypes.default.bool,
@@ -46,11 +56,13 @@ function ButtonControl(_ref) {
46
56
  id = _ref.id,
47
57
  name = _ref.name,
48
58
  onClick = _ref.onClick,
49
- title = _ref.title;
59
+ title = _ref.title,
60
+ rest = _objectWithoutProperties(_ref, _excluded);
61
+
50
62
  var className = (0, _class_names.default)('btn', 'Button__Control', _modifierClass, {
51
63
  'Button__Control--active': active
52
64
  });
53
- return _react.default.createElement("button", {
65
+ return _react.default.createElement("button", _extends({}, (0, _data_attributes.default)(rest), {
54
66
  "aria-controls": ariaControls,
55
67
  "aria-expanded": ariaExpanded,
56
68
  "aria-label": ariaLabel,
@@ -64,7 +76,7 @@ function ButtonControl(_ref) {
64
76
  ref: getRef,
65
77
  title: title,
66
78
  type: "button"
67
- }, children);
79
+ }), children);
68
80
  }
69
81
 
70
82
  ButtonControl.propTypes = propTypes;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.default = void 0;
7
9
 
8
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
 
@@ -13,24 +15,53 @@ var _class_names = _interopRequireDefault(require("../utils/class_names"));
13
15
 
14
16
  var _refs = require("../utils/refs");
15
17
 
18
+ var _data_attributes = _interopRequireDefault(require("../utils/data_attributes"));
19
+
16
20
  var _common_button = _interopRequireDefault(require("./common_button"));
17
21
 
22
+ var _excluded = ["_modifierClass", "aria-controls", "aria-expanded", "aria-label", "aria-labelledby", "aria-describedby", "aria-pressed", "bgColor", "bgSize", "children", "color", "disabled", "getRef", "hoverBgColor", "hoverColor", "hoverBgSize", "id", "linkComponent", "linkProps", "name", "onClick", "onMouseUp", "onMouseDown", "refProp", "title", "type"];
23
+
18
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
25
 
26
+ 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); }
27
+
28
+ 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; }
29
+
30
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+
32
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
33
+
34
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
35
+
36
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
37
+
38
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
39
+
40
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
41
+
42
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
43
+
44
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
45
+
46
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
47
+
20
48
  var propTypes = {
21
49
  _modifierClass: _propTypes.default.string,
22
- active: _propTypes.default.bool,
23
- affirmative: _propTypes.default.bool,
24
50
  'aria-controls': _propTypes.default.string,
25
51
  'aria-expanded': _propTypes.default.bool,
26
52
  'aria-label': _propTypes.default.string,
27
53
  'aria-labelledby': _propTypes.default.string,
28
54
  'aria-describedby': _propTypes.default.string,
29
55
  'aria-pressed': _propTypes.default.bool,
56
+ bgColor: _propTypes.default.string,
57
+ bgSize: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
30
58
  children: _propTypes.default.node.isRequired,
31
- destructive: _propTypes.default.bool,
59
+ color: _propTypes.default.string,
32
60
  disabled: _propTypes.default.bool,
33
61
  getRef: _refs.getRefPropType,
62
+ hoverBgColor: _propTypes.default.string,
63
+ hoverColor: _propTypes.default.string,
64
+ hoverBgSize: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
34
65
  id: _propTypes.default.string,
35
66
  linkComponent: _propTypes.default.oneOfType([_propTypes.default.oneOf(['a']), _propTypes.default.func]),
36
67
  linkProps: _propTypes.default.object,
@@ -39,25 +70,30 @@ var propTypes = {
39
70
  onMouseUp: _propTypes.default.func,
40
71
  onMouseDown: _propTypes.default.func,
41
72
  refProp: _propTypes.default.func,
42
- selected: _propTypes.default.bool,
43
73
  title: _propTypes.default.string,
44
74
  type: _propTypes.default.oneOf(['button', 'submit'])
45
75
  };
76
+ var DEFAULT_COLOR = 'gray-1';
77
+ var DEFAULT_HOVER_COLOR = 'main';
78
+ var DEFAULT_DISABLED_COLOR = 'gray-3';
46
79
 
47
80
  function ButtonIcon(_ref) {
48
81
  var _modifierClass = _ref._modifierClass,
49
- active = _ref.active,
50
82
  ariaControls = _ref['aria-controls'],
51
83
  ariaExpanded = _ref['aria-expanded'],
52
84
  ariaLabel = _ref['aria-label'],
53
85
  ariaLabelledby = _ref['aria-labelledby'],
54
86
  ariaDescribedby = _ref['aria-describedby'],
55
87
  ariaPressed = _ref['aria-pressed'],
56
- affirmative = _ref.affirmative,
88
+ bgColor = _ref.bgColor,
89
+ bgSize = _ref.bgSize,
57
90
  children = _ref.children,
58
- destructive = _ref.destructive,
91
+ color = _ref.color,
59
92
  disabled = _ref.disabled,
60
93
  getRef = _ref.getRef,
94
+ hoverBgColor = _ref.hoverBgColor,
95
+ hoverColor = _ref.hoverColor,
96
+ hoverBgSize = _ref.hoverBgSize,
61
97
  id = _ref.id,
62
98
  linkComponent = _ref.linkComponent,
63
99
  linkProps = _ref.linkProps,
@@ -66,16 +102,45 @@ function ButtonIcon(_ref) {
66
102
  onMouseUp = _ref.onMouseUp,
67
103
  onMouseDown = _ref.onMouseDown,
68
104
  refProp = _ref.refProp,
69
- selected = _ref.selected,
70
105
  title = _ref.title,
71
- type = _ref.type;
72
- var btnClass = (0, _class_names.default)('btn--icon', _modifierClass, {
73
- 'btn--active': active,
74
- 'btn--affirmative': affirmative,
75
- 'btn--destructive': destructive,
76
- 'btn--selected': selected
77
- });
78
- return _react.default.createElement(_common_button.default, {
106
+ type = _ref.type,
107
+ rest = _objectWithoutProperties(_ref, _excluded);
108
+
109
+ var _useState = (0, _react.useState)(false),
110
+ _useState2 = _slicedToArray(_useState, 2),
111
+ hovered = _useState2[0],
112
+ setHovered = _useState2[1];
113
+
114
+ function getBgColorClass() {
115
+ var colorEnum = bgColor;
116
+
117
+ if (disabled) {
118
+ colorEnum = bgColor;
119
+ } else if (hovered && hoverBgColor) {
120
+ colorEnum = hoverBgColor;
121
+ }
122
+
123
+ return colorEnum && "bg-color--".concat(colorEnum);
124
+ }
125
+
126
+ function getColorClass() {
127
+ var colorEnum = color || DEFAULT_COLOR;
128
+
129
+ if (disabled) {
130
+ colorEnum = color || DEFAULT_DISABLED_COLOR;
131
+ } else if (hovered) {
132
+ colorEnum = hoverColor || color || DEFAULT_HOVER_COLOR;
133
+ }
134
+
135
+ return "color--".concat(colorEnum);
136
+ }
137
+
138
+ var btnClass = (0, _class_names.default)('Button-Icon', getBgColorClass(), getColorClass(), _modifierClass);
139
+ var style = {
140
+ height: hovered ? hoverBgSize || bgSize : bgSize,
141
+ width: hovered ? hoverBgSize || bgSize : bgSize
142
+ };
143
+ return _react.default.createElement(_common_button.default, _extends({}, (0, _data_attributes.default)(rest), {
79
144
  "aria-controls": ariaControls,
80
145
  "aria-expanded": ariaExpanded,
81
146
  "aria-label": ariaLabel,
@@ -89,13 +154,26 @@ function ButtonIcon(_ref) {
89
154
  linkComponent: linkComponent,
90
155
  linkProps: linkProps,
91
156
  name: name,
157
+ onBlur: function onBlur() {
158
+ setHovered(false);
159
+ },
92
160
  onClick: onClick,
93
- onMouseUp: onMouseUp,
161
+ onFocus: function onFocus() {
162
+ setHovered(true);
163
+ },
94
164
  onMouseDown: onMouseDown,
165
+ onMouseEnter: function onMouseEnter() {
166
+ setHovered(true);
167
+ },
168
+ onMouseLeave: function onMouseLeave() {
169
+ setHovered(false);
170
+ },
171
+ onMouseUp: onMouseUp,
95
172
  refProp: refProp,
173
+ style: style,
96
174
  title: title,
97
175
  type: type
98
- }, children);
176
+ }), children);
99
177
  }
100
178
 
101
179
  ButtonIcon.propTypes = propTypes;
@@ -111,58 +189,63 @@ ButtonIcon.__docgenInfo = {
111
189
  "required": false,
112
190
  "description": ""
113
191
  },
114
- "active": {
192
+ "aria-controls": {
115
193
  "type": {
116
- "name": "bool"
194
+ "name": "string"
117
195
  },
118
196
  "required": false,
119
197
  "description": ""
120
198
  },
121
- "affirmative": {
199
+ "aria-expanded": {
122
200
  "type": {
123
201
  "name": "bool"
124
202
  },
125
203
  "required": false,
126
204
  "description": ""
127
205
  },
128
- "aria-controls": {
206
+ "aria-label": {
129
207
  "type": {
130
208
  "name": "string"
131
209
  },
132
210
  "required": false,
133
211
  "description": ""
134
212
  },
135
- "aria-expanded": {
213
+ "aria-labelledby": {
136
214
  "type": {
137
- "name": "bool"
215
+ "name": "string"
138
216
  },
139
217
  "required": false,
140
218
  "description": ""
141
219
  },
142
- "aria-label": {
220
+ "aria-describedby": {
143
221
  "type": {
144
222
  "name": "string"
145
223
  },
146
224
  "required": false,
147
225
  "description": ""
148
226
  },
149
- "aria-labelledby": {
227
+ "aria-pressed": {
150
228
  "type": {
151
- "name": "string"
229
+ "name": "bool"
152
230
  },
153
231
  "required": false,
154
232
  "description": ""
155
233
  },
156
- "aria-describedby": {
234
+ "bgColor": {
157
235
  "type": {
158
236
  "name": "string"
159
237
  },
160
238
  "required": false,
161
239
  "description": ""
162
240
  },
163
- "aria-pressed": {
241
+ "bgSize": {
164
242
  "type": {
165
- "name": "bool"
243
+ "name": "union",
244
+ "value": [{
245
+ "name": "string"
246
+ }, {
247
+ "name": "number"
248
+ }]
166
249
  },
167
250
  "required": false,
168
251
  "description": ""
@@ -174,9 +257,9 @@ ButtonIcon.__docgenInfo = {
174
257
  "required": true,
175
258
  "description": ""
176
259
  },
177
- "destructive": {
260
+ "color": {
178
261
  "type": {
179
- "name": "bool"
262
+ "name": "string"
180
263
  },
181
264
  "required": false,
182
265
  "description": ""
@@ -196,6 +279,32 @@ ButtonIcon.__docgenInfo = {
196
279
  "required": false,
197
280
  "description": ""
198
281
  },
282
+ "hoverBgColor": {
283
+ "type": {
284
+ "name": "string"
285
+ },
286
+ "required": false,
287
+ "description": ""
288
+ },
289
+ "hoverColor": {
290
+ "type": {
291
+ "name": "string"
292
+ },
293
+ "required": false,
294
+ "description": ""
295
+ },
296
+ "hoverBgSize": {
297
+ "type": {
298
+ "name": "union",
299
+ "value": [{
300
+ "name": "string"
301
+ }, {
302
+ "name": "number"
303
+ }]
304
+ },
305
+ "required": false,
306
+ "description": ""
307
+ },
199
308
  "id": {
200
309
  "type": {
201
310
  "name": "string"
@@ -261,13 +370,6 @@ ButtonIcon.__docgenInfo = {
261
370
  "required": false,
262
371
  "description": ""
263
372
  },
264
- "selected": {
265
- "type": {
266
- "name": "bool"
267
- },
268
- "required": false,
269
- "description": ""
270
- },
271
373
  "title": {
272
374
  "type": {
273
375
  "name": "string"
@@ -13,10 +13,20 @@ var _class_names = _interopRequireDefault(require("../utils/class_names"));
13
13
 
14
14
  var _refs = require("../utils/refs");
15
15
 
16
+ var _data_attributes = _interopRequireDefault(require("../utils/data_attributes"));
17
+
16
18
  var _common_button = _interopRequireDefault(require("./common_button"));
17
19
 
20
+ var _excluded = ["_modifierClass", "active", "aria-controls", "aria-expanded", "aria-label", "aria-labelledby", "aria-describedby", "aria-pressed", "children", "disabled", "getRef", "id", "linkComponent", "linkProps", "name", "onClick", "onMouseUp", "onMouseDown", "refProp", "title", "type"];
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
24
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+
26
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
+
28
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
+
20
30
  var propTypes = {
21
31
  _modifierClass: _propTypes.default.string,
22
32
  active: _propTypes.default.bool,
@@ -62,12 +72,14 @@ function ButtonMode(_ref) {
62
72
  onMouseDown = _ref.onMouseDown,
63
73
  refProp = _ref.refProp,
64
74
  title = _ref.title,
65
- type = _ref.type;
66
- var className = (0, _class_names.default)('btn font-size--base', _modifierClass, {
67
- 'btn--color-dscout btn--glass btn--small': active,
68
- 'btn--color-none btn--small': !active
75
+ type = _ref.type,
76
+ rest = _objectWithoutProperties(_ref, _excluded);
77
+
78
+ var className = (0, _class_names.default)('Button font-size--base', _modifierClass, {
79
+ 'Button--color-dscout Button--glass Button--small': active,
80
+ 'Button--color-none Button--small': !active
69
81
  });
70
- return _react.default.createElement(_common_button.default, {
82
+ return _react.default.createElement(_common_button.default, _extends({}, (0, _data_attributes.default)(rest), {
71
83
  "aria-controls": ariaControls,
72
84
  "aria-expanded": ariaExpanded,
73
85
  "aria-label": ariaLabel,
@@ -87,7 +99,7 @@ function ButtonMode(_ref) {
87
99
  refProp: refProp,
88
100
  title: title,
89
101
  type: type
90
- }, children);
102
+ }), children);
91
103
  }
92
104
 
93
105
  ButtonMode.propTypes = propTypes;