@sb1/ffe-buttons-react 14.0.0 → 14.0.4

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 (52) hide show
  1. package/es/ActionButton.js +63 -0
  2. package/es/ActionButton.spec.js +31 -0
  3. package/es/BackButton.js +28 -0
  4. package/es/BackButton.spec.js +25 -0
  5. package/es/BaseButton.js +96 -0
  6. package/es/BaseButton.spec.js +91 -0
  7. package/es/ButtonGroup.js +38 -0
  8. package/es/ButtonGroup.spec.js +43 -0
  9. package/es/ExpandButton.js +75 -0
  10. package/es/ExpandButton.spec.js +87 -0
  11. package/es/InlineBaseButton.js +69 -0
  12. package/es/InlineBaseButton.spec.js +59 -0
  13. package/es/InlineExpandButton.js +45 -0
  14. package/es/InlineExpandButton.spec.js +50 -0
  15. package/es/PrimaryButton.js +46 -0
  16. package/es/PrimaryButton.spec.js +25 -0
  17. package/es/SecondaryButton.js +46 -0
  18. package/es/SecondaryButton.spec.js +25 -0
  19. package/es/ShortcutButton.js +39 -0
  20. package/es/ShortcutButton.spec.js +30 -0
  21. package/es/TaskButton.js +47 -0
  22. package/es/TaskButton.spec.js +33 -0
  23. package/es/TertiaryButton.js +34 -0
  24. package/es/TertiaryButton.spec.js +25 -0
  25. package/es/index.js +10 -0
  26. package/lib/ActionButton.js +77 -0
  27. package/lib/ActionButton.spec.js +38 -0
  28. package/lib/BackButton.js +40 -0
  29. package/lib/BackButton.spec.js +32 -0
  30. package/lib/BaseButton.js +108 -0
  31. package/lib/BaseButton.spec.js +98 -0
  32. package/lib/ButtonGroup.js +50 -0
  33. package/lib/ButtonGroup.spec.js +50 -0
  34. package/lib/ExpandButton.js +94 -0
  35. package/lib/ExpandButton.spec.js +97 -0
  36. package/lib/InlineBaseButton.js +81 -0
  37. package/lib/InlineBaseButton.spec.js +66 -0
  38. package/lib/InlineExpandButton.js +58 -0
  39. package/lib/InlineExpandButton.spec.js +58 -0
  40. package/lib/PrimaryButton.js +58 -0
  41. package/lib/PrimaryButton.spec.js +32 -0
  42. package/lib/SecondaryButton.js +58 -0
  43. package/lib/SecondaryButton.spec.js +32 -0
  44. package/lib/ShortcutButton.js +52 -0
  45. package/lib/ShortcutButton.spec.js +38 -0
  46. package/lib/TaskButton.js +59 -0
  47. package/lib/TaskButton.spec.js +41 -0
  48. package/lib/TertiaryButton.js +46 -0
  49. package/lib/TertiaryButton.spec.js +32 -0
  50. package/lib/index.js +87 -0
  51. package/package.json +2 -2
  52. package/types/index.d.ts +104 -0
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _enzyme = require("enzyme");
6
+
7
+ var _InlineBaseButton = _interopRequireDefault(require("./InlineBaseButton"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ 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); }
12
+
13
+ var defaultProps = {
14
+ children: 'Click me'
15
+ };
16
+
17
+ var getWrapper = function getWrapper(props) {
18
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_InlineBaseButton.default, _extends({}, defaultProps, props)));
19
+ };
20
+
21
+ describe('<InlineBaseButton />', function () {
22
+ it('renders without exploding', function () {
23
+ var wrapper = getWrapper();
24
+ expect(wrapper.exists()).toBe(true);
25
+ });
26
+ it('renders the correct classes', function () {
27
+ var wrapper = getWrapper();
28
+ expect(wrapper.hasClass('ffe-inline-button')).toBe(true);
29
+ wrapper.setProps({
30
+ className: 'custom-class',
31
+ buttonType: 'tertiary'
32
+ });
33
+ expect(wrapper.hasClass('ffe-inline-button--tertiary')).toBe(true);
34
+ expect(wrapper.hasClass('custom-class')).toBe(true);
35
+ });
36
+ it('renders the correct label', function () {
37
+ var wrapper = getWrapper();
38
+ expect(wrapper.text()).toBe('Click me');
39
+ wrapper.setProps({
40
+ children: 'Press me'
41
+ });
42
+ expect(wrapper.text()).toBe('Press me');
43
+ });
44
+ it('renders left icon if set', function () {
45
+ var wrapper = getWrapper();
46
+ expect(wrapper.find('.ffe-inline-button__icon--left').exists()).toBe(false);
47
+ wrapper.setProps({
48
+ leftIcon: /*#__PURE__*/_react.default.createElement("svg", null)
49
+ });
50
+ expect(wrapper.find('.ffe-inline-button__icon--left').exists()).toBe(true);
51
+ });
52
+ it('renders right icon if set', function () {
53
+ var wrapper = getWrapper();
54
+ expect(wrapper.find('.ffe-inline-button__icon--right').exists()).toBe(false);
55
+ wrapper.setProps({
56
+ rightIcon: /*#__PURE__*/_react.default.createElement("svg", null)
57
+ });
58
+ expect(wrapper.find('.ffe-inline-button__icon--right').exists()).toBe(true);
59
+ });
60
+ it('renders the specified dom node', function () {
61
+ var wrapper = getWrapper({
62
+ element: 'a'
63
+ });
64
+ expect(wrapper.is('a')).toBe(true);
65
+ });
66
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _chevronIkon = _interopRequireDefault(require("@sb1/ffe-icons-react/lib/chevron-ikon"));
13
+
14
+ var _InlineBaseButton = _interopRequireDefault(require("./InlineBaseButton"));
15
+
16
+ var _excluded = ["isExpanded"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ 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; }
25
+
26
+ var InlineExpandButton = function InlineExpandButton(props) {
27
+ var isExpanded = props.isExpanded,
28
+ rest = _objectWithoutProperties(props, _excluded);
29
+
30
+ return /*#__PURE__*/_react.default.createElement(_InlineBaseButton.default, _extends({
31
+ buttonType: "expand",
32
+ type: "button",
33
+ rightIcon: /*#__PURE__*/_react.default.createElement(_chevronIkon.default, {
34
+ style: {
35
+ marginLeft: '8px',
36
+ transform: isExpanded ? 'rotateZ(180deg)' : 'none'
37
+ }
38
+ })
39
+ }, rest));
40
+ };
41
+
42
+ InlineExpandButton.propTypes = {
43
+ /** Text that should reflect the isExpanded state. */
44
+ children: _propTypes.node,
45
+
46
+ /** Ref-setting function, or ref created by useRef, passed to the button element */
47
+ innerRef: (0, _propTypes.oneOfType)([_propTypes.func, (0, _propTypes.shape)({
48
+ current: _propTypes.object
49
+ })]),
50
+
51
+ /** When true it will indicate the button is in its open state */
52
+ isExpanded: _propTypes.bool.isRequired,
53
+
54
+ /** Listen for clicks to toggle the isExpanded state. */
55
+ onClick: _propTypes.func.isRequired
56
+ };
57
+ var _default = InlineExpandButton;
58
+ exports.default = _default;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _enzyme = require("enzyme");
6
+
7
+ var _chevronIkon = _interopRequireDefault(require("@sb1/ffe-icons-react/lib/chevron-ikon"));
8
+
9
+ var _InlineExpandButton = _interopRequireDefault(require("./InlineExpandButton"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ 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); }
14
+
15
+ var defaultProps = {
16
+ children: 'Click me',
17
+ isExpanded: false,
18
+ onClick: function onClick(f) {
19
+ return f;
20
+ }
21
+ };
22
+
23
+ var getWrapper = function getWrapper(props) {
24
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_InlineExpandButton.default, _extends({}, defaultProps, props)));
25
+ };
26
+
27
+ describe('<InlineExpandButton />', function () {
28
+ it('renders without exploding', function () {
29
+ var wrapper = getWrapper();
30
+ expect(wrapper.props()).toHaveProperty('buttonType', 'expand');
31
+ });
32
+ it('passes on any prop', function () {
33
+ var wrapper = getWrapper({
34
+ 'aria-label': 'some label'
35
+ });
36
+ expect(wrapper.props()).toHaveProperty('aria-label', 'some label');
37
+ });
38
+ it('sends a <ChevronIcon /> as a default rightIcon prop', function () {
39
+ var wrapper = getWrapper();
40
+ expect(wrapper.props()).toHaveProperty('rightIcon', /*#__PURE__*/_react.default.createElement(_chevronIkon.default, {
41
+ style: {
42
+ marginLeft: '8px',
43
+ transform: 'none'
44
+ }
45
+ }));
46
+ });
47
+ it('sends an upside down <ChevronIcon /> as rightIcon if isExpanded prop is true', function () {
48
+ var wrapper = getWrapper({
49
+ isExpanded: true
50
+ });
51
+ expect(wrapper.props()).toHaveProperty('rightIcon', /*#__PURE__*/_react.default.createElement(_chevronIkon.default, {
52
+ style: {
53
+ marginLeft: '8px',
54
+ transform: 'rotateZ(180deg)'
55
+ }
56
+ }));
57
+ });
58
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _BaseButton = _interopRequireDefault(require("./BaseButton"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ 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); }
17
+
18
+ var PrimaryButton = function PrimaryButton(props) {
19
+ return /*#__PURE__*/_react.default.createElement(_BaseButton.default, _extends({
20
+ buttonType: "primary"
21
+ }, props));
22
+ };
23
+
24
+ PrimaryButton.propTypes = {
25
+ /** Aria label for loading indicator */
26
+ ariaLoadingMessage: _propTypes.string,
27
+
28
+ /** The button label */
29
+ children: _propTypes.node,
30
+
31
+ /** Extra class names */
32
+ className: _propTypes.string,
33
+
34
+ /** Condensed modifier. Use in condensed designs */
35
+ condensed: _propTypes.bool,
36
+
37
+ /** Disable a button in certain situations */
38
+ disabled: _propTypes.bool,
39
+
40
+ /** The rendered element, like an `<a />` or `<Link />` */
41
+ element: (0, _propTypes.oneOfType)([_propTypes.func, _propTypes.string, _propTypes.elementType]),
42
+
43
+ /** Ref-setting function, or ref created by useRef, passed to the button element */
44
+ innerRef: (0, _propTypes.oneOfType)([_propTypes.func, (0, _propTypes.shape)({
45
+ current: _propTypes.object
46
+ })]),
47
+
48
+ /** Shows a loader if true */
49
+ isLoading: _propTypes.bool,
50
+
51
+ /** Icon shown to the left of the label */
52
+ leftIcon: _propTypes.node,
53
+
54
+ /** Icon shown to the right of the label */
55
+ rightIcon: _propTypes.node
56
+ };
57
+ var _default = PrimaryButton;
58
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _enzyme = require("enzyme");
6
+
7
+ var _PrimaryButton = _interopRequireDefault(require("./PrimaryButton"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ 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); }
12
+
13
+ var defaultProps = {
14
+ children: 'Click me'
15
+ };
16
+
17
+ var getWrapper = function getWrapper(props) {
18
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_PrimaryButton.default, _extends({}, defaultProps, props)));
19
+ };
20
+
21
+ describe('<PrimaryButton />', function () {
22
+ it('renders without exploding', function () {
23
+ var wrapper = getWrapper();
24
+ expect(wrapper.props()).toHaveProperty('buttonType', 'primary');
25
+ });
26
+ it('passes on any prop', function () {
27
+ var wrapper = getWrapper({
28
+ 'aria-label': 'some label'
29
+ });
30
+ expect(wrapper.props()).toHaveProperty('aria-label', 'some label');
31
+ });
32
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _BaseButton = _interopRequireDefault(require("./BaseButton"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ 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); }
17
+
18
+ var SecondaryButton = function SecondaryButton(props) {
19
+ return /*#__PURE__*/_react.default.createElement(_BaseButton.default, _extends({
20
+ buttonType: "secondary"
21
+ }, props));
22
+ };
23
+
24
+ SecondaryButton.propTypes = {
25
+ /** Aria label for loading indicator */
26
+ ariaLoadingMessage: _propTypes.string,
27
+
28
+ /** The button label */
29
+ children: _propTypes.node,
30
+
31
+ /** Extra class names */
32
+ className: _propTypes.string,
33
+
34
+ /** Condensed modifier. Use in condensed designs */
35
+ condensed: _propTypes.bool,
36
+
37
+ /** Disable a button in certain situations */
38
+ disabled: _propTypes.bool,
39
+
40
+ /** The rendered element, like an `<a />` or `<Link />` */
41
+ element: (0, _propTypes.oneOfType)([_propTypes.func, _propTypes.string, _propTypes.elementType]),
42
+
43
+ /** Ref-setting function, or ref created by useRef, passed to the button element */
44
+ innerRef: (0, _propTypes.oneOfType)([_propTypes.func, (0, _propTypes.shape)({
45
+ current: _propTypes.object
46
+ })]),
47
+
48
+ /** Shows a loader if true */
49
+ isLoading: _propTypes.bool,
50
+
51
+ /** Icon shown to the left of the label */
52
+ leftIcon: _propTypes.node,
53
+
54
+ /** Icon shown to the right of the label */
55
+ rightIcon: _propTypes.node
56
+ };
57
+ var _default = SecondaryButton;
58
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _enzyme = require("enzyme");
6
+
7
+ var _SecondaryButton = _interopRequireDefault(require("./SecondaryButton"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ 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); }
12
+
13
+ var defaultProps = {
14
+ children: 'Click me'
15
+ };
16
+
17
+ var getWrapper = function getWrapper(props) {
18
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_SecondaryButton.default, _extends({}, defaultProps, props)));
19
+ };
20
+
21
+ describe('<SecondaryButton />', function () {
22
+ it('renders without exploding', function () {
23
+ var wrapper = getWrapper();
24
+ expect(wrapper.props()).toHaveProperty('buttonType', 'secondary');
25
+ });
26
+ it('passes on any prop', function () {
27
+ var wrapper = getWrapper({
28
+ 'aria-label': 'some label'
29
+ });
30
+ expect(wrapper.props()).toHaveProperty('aria-label', 'some label');
31
+ });
32
+ });
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _chevronIkon = _interopRequireDefault(require("@sb1/ffe-icons-react/lib/chevron-ikon"));
13
+
14
+ var _BaseButton = _interopRequireDefault(require("./BaseButton"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ 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); }
19
+
20
+ var ShortcutButton = function ShortcutButton(props) {
21
+ return /*#__PURE__*/_react.default.createElement(_BaseButton.default, _extends({
22
+ buttonType: "shortcut",
23
+ rightIcon: /*#__PURE__*/_react.default.createElement(_chevronIkon.default, null)
24
+ }, props));
25
+ };
26
+
27
+ ShortcutButton.propTypes = {
28
+ /** The button label */
29
+ children: _propTypes.node,
30
+
31
+ /** Extra class names */
32
+ className: _propTypes.string,
33
+
34
+ /** Condensed modifier. Use in condensed designs */
35
+ condensed: _propTypes.bool,
36
+
37
+ /** Disable a button in certain situations */
38
+ disabled: _propTypes.bool,
39
+
40
+ /** The rendered element, like an `<a />` or `<Link />` */
41
+ element: (0, _propTypes.oneOfType)([_propTypes.func, _propTypes.string, _propTypes.elementType]),
42
+
43
+ /** Ref-setting function, or ref created by useRef, passed to the button element */
44
+ innerRef: (0, _propTypes.oneOfType)([_propTypes.func, (0, _propTypes.shape)({
45
+ current: _propTypes.object
46
+ })]),
47
+
48
+ /** Icon shown to the left of the label */
49
+ leftIcon: _propTypes.node
50
+ };
51
+ var _default = ShortcutButton;
52
+ exports.default = _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _enzyme = require("enzyme");
6
+
7
+ var _chevronIkon = _interopRequireDefault(require("@sb1/ffe-icons-react/lib/chevron-ikon"));
8
+
9
+ var _ShortcutButton = _interopRequireDefault(require("./ShortcutButton"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ 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); }
14
+
15
+ var defaultProps = {
16
+ children: 'Click me'
17
+ };
18
+
19
+ var getWrapper = function getWrapper(props) {
20
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_ShortcutButton.default, _extends({}, defaultProps, props)));
21
+ };
22
+
23
+ describe('<ShortcutButton />', function () {
24
+ it('renders without exploding', function () {
25
+ var wrapper = getWrapper();
26
+ expect(wrapper.props()).toHaveProperty('buttonType', 'shortcut');
27
+ });
28
+ it('passes on any prop', function () {
29
+ var wrapper = getWrapper({
30
+ 'aria-label': 'some label'
31
+ });
32
+ expect(wrapper.props()).toHaveProperty('aria-label', 'some label');
33
+ });
34
+ it('sends a <ChevronIcon /> as a default rightIcon prop', function () {
35
+ var wrapper = getWrapper();
36
+ expect(wrapper.props()).toHaveProperty('rightIcon', /*#__PURE__*/_react.default.createElement(_chevronIkon.default, null));
37
+ });
38
+ });
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _BaseButton = _interopRequireDefault(require("./BaseButton"));
13
+
14
+ var _excluded = ["icon"];
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ 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); }
19
+
20
+ 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; }
21
+
22
+ 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; }
23
+
24
+ var TaskButton = function TaskButton(_ref) {
25
+ var icon = _ref.icon,
26
+ rest = _objectWithoutProperties(_ref, _excluded);
27
+
28
+ return /*#__PURE__*/_react.default.createElement(_BaseButton.default, _extends({
29
+ buttonType: "task",
30
+ leftIcon: icon
31
+ }, rest));
32
+ };
33
+
34
+ TaskButton.propTypes = {
35
+ /** The button label */
36
+ children: _propTypes.node,
37
+
38
+ /** Extra class names */
39
+ className: _propTypes.string,
40
+
41
+ /** Condensed modifier. Use in condensed designs */
42
+ condensed: _propTypes.bool,
43
+
44
+ /** Disable a button in certain situations */
45
+ disabled: _propTypes.bool,
46
+
47
+ /** The rendered element, like an `<a />` or `<Link />` */
48
+ element: (0, _propTypes.oneOfType)([_propTypes.func, _propTypes.string, _propTypes.elementType]),
49
+
50
+ /** Task icon, show to the left of the label */
51
+ icon: _propTypes.node.isRequired,
52
+
53
+ /** Ref-setting function, or ref created by useRef, passed to the button element */
54
+ innerRef: (0, _propTypes.oneOfType)([_propTypes.func, (0, _propTypes.shape)({
55
+ current: _propTypes.object
56
+ })])
57
+ };
58
+ var _default = TaskButton;
59
+ exports.default = _default;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _enzyme = require("enzyme");
6
+
7
+ var _chevronIkon = _interopRequireDefault(require("@sb1/ffe-icons-react/lib/chevron-ikon"));
8
+
9
+ var _TaskButton = _interopRequireDefault(require("./TaskButton"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ 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); }
14
+
15
+ var defaultProps = {
16
+ children: 'Click me',
17
+ icon: /*#__PURE__*/_react.default.createElement("svg", null)
18
+ };
19
+
20
+ var getWrapper = function getWrapper(props) {
21
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_TaskButton.default, _extends({}, defaultProps, props)));
22
+ };
23
+
24
+ describe('<TaskButton />', function () {
25
+ it('renders without exploding', function () {
26
+ var wrapper = getWrapper();
27
+ expect(wrapper.props()).toHaveProperty('buttonType', 'task');
28
+ });
29
+ it('passes on any prop', function () {
30
+ var wrapper = getWrapper({
31
+ 'aria-label': 'some label'
32
+ });
33
+ expect(wrapper.props()).toHaveProperty('aria-label', 'some label');
34
+ });
35
+ it('sends icon prop on as leftIcon prop', function () {
36
+ var wrapper = getWrapper({
37
+ icon: /*#__PURE__*/_react.default.createElement(_chevronIkon.default, null)
38
+ });
39
+ expect(wrapper.props()).toHaveProperty('leftIcon', /*#__PURE__*/_react.default.createElement(_chevronIkon.default, null));
40
+ });
41
+ });
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = require("prop-types");
11
+
12
+ var _InlineBaseButton = _interopRequireDefault(require("./InlineBaseButton"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ 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); }
17
+
18
+ var TertiaryButton = function TertiaryButton(props) {
19
+ return /*#__PURE__*/_react.default.createElement(_InlineBaseButton.default, _extends({
20
+ buttonType: "tertiary"
21
+ }, props));
22
+ };
23
+
24
+ TertiaryButton.propTypes = {
25
+ /** The button label */
26
+ children: _propTypes.node,
27
+
28
+ /** Extra class names */
29
+ className: _propTypes.string,
30
+
31
+ /** The rendered element, like an `<a />` or `<Link />` */
32
+ element: (0, _propTypes.oneOfType)([_propTypes.func, _propTypes.string, _propTypes.elementType]),
33
+
34
+ /** Ref-setting function, or ref created by useRef, passed to the button element */
35
+ innerRef: (0, _propTypes.oneOfType)([_propTypes.func, (0, _propTypes.shape)({
36
+ current: _propTypes.object
37
+ })]),
38
+
39
+ /** Icon shown to the left of the label */
40
+ leftIcon: _propTypes.node,
41
+
42
+ /** Icon shown to the right of the label */
43
+ rightIcon: _propTypes.node
44
+ };
45
+ var _default = TertiaryButton;
46
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _enzyme = require("enzyme");
6
+
7
+ var _TertiaryButton = _interopRequireDefault(require("./TertiaryButton"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ 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); }
12
+
13
+ var defaultProps = {
14
+ children: 'Click me'
15
+ };
16
+
17
+ var getWrapper = function getWrapper(props) {
18
+ return (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_TertiaryButton.default, _extends({}, defaultProps, props)));
19
+ };
20
+
21
+ describe('TertiaryButton', function () {
22
+ it('renders without exploding', function () {
23
+ var wrapper = getWrapper();
24
+ expect(wrapper.props()).toHaveProperty('buttonType', 'tertiary');
25
+ });
26
+ it('passes on any prop', function () {
27
+ var wrapper = getWrapper({
28
+ 'aria-label': 'some label'
29
+ });
30
+ expect(wrapper.props()).toHaveProperty('aria-label', 'some label');
31
+ });
32
+ });