akeneo-design-system 0.1.237 → 0.1.239

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 (22) hide show
  1. package/lib/components/Card/Card.d.ts +1 -1
  2. package/lib/components/Input/MediaFileInput/MediaFileInput.js +1 -1
  3. package/lib/components/Input/MediaFileInput/MediaFileInput.js.map +1 -1
  4. package/lib/components/SplitButton/SplitButton.d.ts +14 -0
  5. package/lib/components/SplitButton/SplitButton.js +97 -0
  6. package/lib/components/SplitButton/SplitButton.js.map +1 -0
  7. package/lib/components/index.d.ts +1 -0
  8. package/lib/components/index.js +1 -0
  9. package/lib/components/index.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/__image_snapshots__/all-visual-tsx-visual-tests-renders-components-buttons-split-button-active-correctly-1-snap.png +0 -0
  12. package/src/__image_snapshots__/all-visual-tsx-visual-tests-renders-components-buttons-split-button-disabled-correctly-1-snap.png +0 -0
  13. package/src/__image_snapshots__/all-visual-tsx-visual-tests-renders-components-buttons-split-button-ghost-correctly-1-snap.png +0 -0
  14. package/src/__image_snapshots__/all-visual-tsx-visual-tests-renders-components-buttons-split-button-level-correctly-1-snap.png +0 -0
  15. package/src/__image_snapshots__/all-visual-tsx-visual-tests-renders-components-buttons-split-button-size-correctly-1-snap.png +0 -0
  16. package/src/__image_snapshots__/all-visual-tsx-visual-tests-renders-components-buttons-split-button-standard-correctly-1-snap.png +0 -0
  17. package/src/components/Input/MediaFileInput/MediaFileInput.tsx +1 -1
  18. package/src/components/Input/MediaFileInput/MediaFileInput.unit.tsx +2 -2
  19. package/src/components/SplitButton/SplitButton.stories.mdx +216 -0
  20. package/src/components/SplitButton/SplitButton.tsx +90 -0
  21. package/src/components/SplitButton/SplitButton.unit.tsx +143 -0
  22. package/src/components/index.ts +1 -0
@@ -3,7 +3,7 @@ declare type CardGridProps = {
3
3
  size?: 'normal' | 'big';
4
4
  };
5
5
  declare const CardGrid: import("styled-components").StyledComponent<"div", any, CardGridProps & Record<string, unknown> & import("styled-components").ThemeProps<import("../../theme/theme").Theme>, never>;
6
- declare const Card: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "disabled" | "children" | "onSelect" | "src" | "loading" | "isSelected" | "stacked" | "fit"> & {
6
+ declare const Card: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "disabled" | "children" | "onSelect" | "src" | "loading" | "fit" | "isSelected" | "stacked"> & {
7
7
  src: string | null;
8
8
  fit?: "contain" | "cover" | undefined;
9
9
  loading?: "eager" | "lazy" | undefined;
@@ -174,7 +174,7 @@ var MediaFileInput = react_1.default.forwardRef(function (_a, forwardedRef) {
174
174
  setProgress(0);
175
175
  stopUploading();
176
176
  uploadFailed();
177
- console.error(error_1);
177
+ console.log(error_1);
178
178
  return [3, 4];
179
179
  case 4: return [2];
180
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFileInput.js","sourceRoot":"","sources":["../../../../src/components/Input/MediaFileInput/MediaFileInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaFileInput.js","sourceRoot":"","sources":["../../../../src/components/Input/MediaFileInput/MediaFileInput.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { Override } from '../../shared';
3
+ import { ButtonProps } from '../Button/Button';
4
+ declare type SplitButtonProps = Omit<Override<ButtonProps, {
5
+ label: string;
6
+ }>, 'href'>;
7
+ declare const SplitButton: {
8
+ ({ label, children, ...rest }: SplitButtonProps): React.JSX.Element;
9
+ Item: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
10
+ children: ReactNode;
11
+ } & React.RefAttributes<HTMLDivElement>>;
12
+ };
13
+ export { SplitButton };
14
+ export type { SplitButtonProps };
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __rest = (this && this.__rest) || function (s, e) {
37
+ var t = {};
38
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
39
+ t[p] = s[p];
40
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
41
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
42
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
43
+ t[p[i]] = s[p[i]];
44
+ }
45
+ return t;
46
+ };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.SplitButton = void 0;
52
+ var react_1 = __importStar(require("react"));
53
+ var icons_1 = require("../../icons");
54
+ var Button_1 = require("../Button/Button");
55
+ var Dropdown_1 = require("../Dropdown/Dropdown");
56
+ var hooks_1 = require("../../hooks");
57
+ var styled_components_1 = __importDefault(require("styled-components"));
58
+ var SplitButton = function (_a) {
59
+ var label = _a.label, children = _a.children, rest = __rest(_a, ["label", "children"]);
60
+ var _b = (0, hooks_1.useBooleanState)(), isOpen = _b[0], open = _b[1], close = _b[2];
61
+ var decoratedChildren = react_1.Children.map(children, function (child) {
62
+ if (!(0, react_1.isValidElement)(child))
63
+ return child;
64
+ return (0, react_1.cloneElement)(child, {
65
+ onClick: function () {
66
+ var _a;
67
+ var args = [];
68
+ for (var _i = 0; _i < arguments.length; _i++) {
69
+ args[_i] = arguments[_i];
70
+ }
71
+ if (child.props.onClick) {
72
+ (_a = child.props).onClick.apply(_a, args);
73
+ }
74
+ close();
75
+ },
76
+ });
77
+ });
78
+ return (react_1.default.createElement(Container, null,
79
+ react_1.default.createElement(CollapsedButton, __assign({}, rest), label),
80
+ react_1.default.createElement(Dropdown_1.Dropdown, null,
81
+ react_1.default.createElement(CollapsedDropdownButton, __assign({}, rest, { type: "button", onClick: open }),
82
+ react_1.default.createElement(icons_1.ArrowDownIcon, null)),
83
+ isOpen && (react_1.default.createElement(Dropdown_1.Dropdown.Overlay, { verticalPosition: "down", onClose: close },
84
+ react_1.default.createElement(Dropdown_1.Dropdown.ItemCollection, null, decoratedChildren))))));
85
+ };
86
+ exports.SplitButton = SplitButton;
87
+ var Container = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: inline-flex;\n"], ["\n display: inline-flex;\n"])));
88
+ var CollapsedButton = (0, styled_components_1.default)(Button_1.Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 1px white solid;\n"], ["\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 1px white solid;\n"])));
89
+ var CollapsedDropdownButton = (0, styled_components_1.default)(Button_1.Button)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n padding-left: 10px;\n"], ["\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n padding-left: 10px;\n"])));
90
+ var Item = (0, react_1.forwardRef)(function (_a, ref) {
91
+ var children = _a.children, onClick = _a.onClick;
92
+ return (react_1.default.createElement(Dropdown_1.Dropdown.Item, { onClick: onClick, ref: ref }, children));
93
+ });
94
+ Item.displayName = 'SplitButton.Item';
95
+ SplitButton.Item = Item;
96
+ var templateObject_1, templateObject_2, templateObject_3;
97
+ //# sourceMappingURL=SplitButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitButton.js","sourceRoot":"","sources":["../../../src/components/SplitButton/SplitButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgH;AAEhH,qCAA0C;AAC1C,2CAAqD;AACrD,iDAA8C;AAC9C,qCAA4C;AAC5C,wEAAuC;AAoBvC,IAAM,WAAW,GAAG,UAAC,EAA4C;IAA3C,IAAA,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAK,IAAI,cAAzB,qBAA0B,CAAD;IACtC,IAAA,KAAwB,IAAA,uBAAe,GAAE,EAAxC,MAAM,QAAA,EAAE,IAAI,QAAA,EAAE,KAAK,QAAqB,CAAC;IAChD,IAAM,iBAAiB,GAAG,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAA,KAAK;QACpD,IAAI,CAAC,IAAA,sBAAc,EAAY,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEpD,OAAO,IAAA,oBAAY,EAAY,KAAK,EAAE;YACpC,OAAO,EAAE;;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBACf,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;oBACvB,CAAA,KAAA,KAAK,CAAC,KAAK,CAAA,CAAC,OAAO,WAAI,IAAI,EAAE;iBAC9B;gBACD,KAAK,EAAE,CAAC;YACV,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CACL,8BAAC,SAAS;QACR,8BAAC,eAAe,eAAK,IAAI,GAAG,KAAK,CAAmB;QAEpD,8BAAC,mBAAQ;YACP,8BAAC,uBAAuB,eAAK,IAAI,IAAE,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI;gBAC5D,8BAAC,qBAAa,OAAG,CACO;YACzB,MAAM,IAAI,CACT,8BAAC,mBAAQ,CAAC,OAAO,IAAC,gBAAgB,EAAC,MAAM,EAAC,OAAO,EAAE,KAAK;gBACtD,8BAAC,mBAAQ,CAAC,cAAc,QAAE,iBAAiB,CAA2B,CACrD,CACpB,CACQ,CACD,CACb,CAAC;AACJ,CAAC,CAAC;AAgCM,kCAAW;AA9BnB,IAAM,SAAS,GAAG,2BAAM,CAAC,GAAG,gGAAA,6BAE3B,IAAA,CAAC;AAEF,IAAM,eAAe,GAAG,IAAA,2BAAM,EAAC,eAAM,CAAC,0KAAA,uGAIrC,IAAA,CAAC;AAEF,IAAM,uBAAuB,GAAG,IAAA,2BAAM,EAAC,eAAM,CAAC,6JAAA,0FAI7C,IAAA,CAAC;AAMF,IAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,UAAC,EAA8B,EAAE,GAAwB;QAAvD,QAAQ,cAAA,EAAE,OAAO,aAAA;IAA2C,OAAA,CACpF,8BAAC,mBAAQ,CAAC,IAAI,IAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IACtC,QAAQ,CACK,CACjB;AAJqF,CAIrF,CAAC,CAAC;AAEH,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAEtC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC"}
@@ -5,6 +5,7 @@ export * from './Block/Block';
5
5
  export * from './BlockButton/BlockButton';
6
6
  export * from './Breadcrumb/Breadcrumb';
7
7
  export * from './Button/Button';
8
+ export * from './SplitButton/SplitButton';
8
9
  export * from './Card/Card';
9
10
  export * from './Checkbox/Checkbox';
10
11
  export * from './Collapse/Collapse';
@@ -17,6 +17,7 @@ __exportStar(require("./Block/Block"), exports);
17
17
  __exportStar(require("./BlockButton/BlockButton"), exports);
18
18
  __exportStar(require("./Breadcrumb/Breadcrumb"), exports);
19
19
  __exportStar(require("./Button/Button"), exports);
20
+ __exportStar(require("./SplitButton/SplitButton"), exports);
20
21
  __exportStar(require("./Card/Card"), exports);
21
22
  __exportStar(require("./Checkbox/Checkbox"), exports);
22
23
  __exportStar(require("./Collapse/Collapse"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC;AACjC,gDAA8B;AAC9B,gDAA8B;AAC9B,4DAA0C;AAC1C,0DAAwC;AACxC,kDAAgC;AAChC,8CAA4B;AAC5B,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,gDAA8B;AAC9B,kDAAgC;AAChC,0DAAwC;AACxC,sDAAoC;AACpC,gDAA8B;AAC9B,4DAA0C;AAC1C,0CAAwB;AACxB,wDAAsC;AACtC,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,0DAAwC;AACxC,gDAA8B;AAC9B,+CAA6B;AAC7B,0DAAwC;AACxC,8CAA4B;AAC5B,4DAA0C;AAC1C,oDAAkC;AAClC,4DAA0C;AAC1C,wEAAsD;AACtD,kDAAgC;AAChC,8DAA4C;AAC5C,kEAAgD;AAChD,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B;AAC5B,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC;AACjC,gDAA8B;AAC9B,gDAA8B;AAC9B,4DAA0C;AAC1C,0DAAwC;AACxC,kDAAgC;AAChC,4DAA0C;AAC1C,8CAA4B;AAC5B,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,gDAA8B;AAC9B,kDAAgC;AAChC,0DAAwC;AACxC,sDAAoC;AACpC,gDAA8B;AAC9B,4DAA0C;AAC1C,0CAAwB;AACxB,wDAAsC;AACtC,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,0DAAwC;AACxC,gDAA8B;AAC9B,+CAA6B;AAC7B,0DAAwC;AACxC,8CAA4B;AAC5B,4DAA0C;AAC1C,oDAAkC;AAClC,4DAA0C;AAC1C,wEAAsD;AACtD,kDAAgC;AAChC,8DAA4C;AAC5C,kEAAgD;AAChD,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B;AAC5B,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,oDAAkC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akeneo-design-system",
3
- "version": "0.1.237",
3
+ "version": "0.1.239",
4
4
  "description": "Akeneo design system",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -212,7 +212,7 @@ const MediaFileInput = React.forwardRef<HTMLInputElement, MediaFileInputProps>(
212
212
  setProgress(0);
213
213
  stopUploading();
214
214
  uploadFailed();
215
- console.error(error);
215
+ console.log(error);
216
216
  }
217
217
  };
218
218
 
@@ -116,7 +116,7 @@ test('it display the upload error label when the upload failed', async () => {
116
116
  const handleChange = jest.fn();
117
117
  const uploader = jest.fn().mockRejectedValue(undefined);
118
118
 
119
- jest.spyOn(console, 'error').mockImplementationOnce(jest.fn());
119
+ jest.spyOn(console, 'log').mockImplementationOnce(jest.fn());
120
120
 
121
121
  render(
122
122
  <MediaFileInput
@@ -214,7 +214,7 @@ test('it displays the default picture when the image previewer fails', () => {
214
214
 
215
215
  test('it does not throw an error when component is hidden after upload', async () => {
216
216
  const uploader = jest.fn().mockResolvedValue(fileInfo);
217
- const mockedConsole = jest.spyOn(console, 'error');
217
+ const mockedConsole = jest.spyOn(console, 'log');
218
218
 
219
219
  render(<MediaFileInput {...defaultProps} value={null} onChange={cleanup} uploader={uploader} thumbnailUrl={null} />);
220
220
 
@@ -0,0 +1,216 @@
1
+ import {Meta, Story, ArgsTable, Canvas} from '@storybook/addon-docs';
2
+ import {SplitButton} from './SplitButton';
3
+
4
+ <Meta
5
+ title="Components/Buttons/SplitButton"
6
+ component={SplitButton}
7
+ argTypes={{
8
+ level: {control: {type: 'select'}, options: ['primary', 'secondary', 'tertiary', 'warning', 'danger']},
9
+ ghost: {control: {type: 'boolean'}},
10
+ disabled: {control: {type: 'boolean'}},
11
+ active: {control: {type: 'boolean'}},
12
+ size: {control: {type: 'select'}, options: ['default', 'small']},
13
+ onClick: {action: 'Click on the button'},
14
+ }}
15
+ args={{
16
+ level: 'primary',
17
+ label: 'Primary',
18
+ }}
19
+ />
20
+
21
+ # Split Button
22
+
23
+ ## Usage
24
+
25
+ Split Buttons express what action will occur when the users clicks, it is combined with a dropdown that adds a list of options that can be used. Buttons are used to initialize an action, either in the background or foreground of an experience.
26
+
27
+ ### General guidance
28
+
29
+ Split Buttons are used primarily on action items. Some examples include Add, Save, Delete, and Sign up. Each page can have one or two primary buttons. Any remaining calls-to-action should be represented as secondary buttons.
30
+
31
+ Do not use buttons as navigational elements. Instead, use links to take the users to a new page.
32
+
33
+ ### Labels
34
+
35
+ Button labels should clearly indicate the action of the button. Use active verbs, such as Add or Delete. Use no more than three words for button labels.
36
+
37
+ For sets of buttons, use specific labels, such as Save or Discard, instead of using OK and Cancel. This is particularly helpful when the user is confirming an action.
38
+
39
+ ## Playground
40
+
41
+ Use this playground to test the button component
42
+
43
+ <Canvas>
44
+ <Story name="Standard">
45
+ {args => {
46
+ return <SplitButton {...args}>
47
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
48
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
49
+ </SplitButton>;
50
+ }}
51
+ </Story>
52
+ </Canvas>
53
+
54
+ <ArgsTable story="Standard" />
55
+
56
+ ## Variation on level
57
+
58
+ <Canvas>
59
+ <Story name="Level">
60
+ {args => {
61
+ return (
62
+ <>
63
+ <SplitButton {...args} level="primary" label="Primary">
64
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
65
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
66
+ </SplitButton>
67
+ <SplitButton {...args} level="secondary" label="Secondary">
68
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
69
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
70
+ </SplitButton>
71
+ <SplitButton {...args} level="tertiary" label="Tertiary">
72
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
73
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
74
+ </SplitButton>
75
+ <SplitButton {...args} level="warning" label="Warning">
76
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
77
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
78
+ </SplitButton>
79
+ <SplitButton {...args} level="danger" label="Danger">
80
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
81
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
82
+ </SplitButton>
83
+ </>
84
+ );
85
+ }}
86
+ </Story>
87
+ </Canvas>
88
+
89
+ ## Variation on ghost
90
+
91
+ <Canvas>
92
+ <Story name="Ghost">
93
+ {args => {
94
+ return (
95
+ <>
96
+ <SplitButton {...args} ghost={true} level="primary" label="Primary">
97
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
98
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
99
+ </SplitButton>
100
+ <SplitButton {...args} ghost={true} level="secondary" label="Secondary">
101
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
102
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
103
+ </SplitButton>
104
+ <SplitButton {...args} ghost={true} level="tertiary" label="Tertiary">
105
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
106
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
107
+ </SplitButton>
108
+ <SplitButton {...args} ghost={true} level="warning" label="Warning">
109
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
110
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
111
+ </SplitButton>
112
+ <SplitButton {...args} ghost={true} level="danger" label="Danger">
113
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
114
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
115
+ </SplitButton>
116
+ </>
117
+ );
118
+ }}
119
+ </Story>
120
+ </Canvas>
121
+
122
+ ## Variation on active
123
+
124
+ <Canvas>
125
+ <Story name="Active">
126
+ {args => {
127
+ return (
128
+ <>
129
+ <SplitButton {...args} active={true} level="primary" label="primary">
130
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
131
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
132
+ </SplitButton>
133
+ <SplitButton {...args} active={true} level="secondary" label="secondary">
134
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
135
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
136
+ </SplitButton>
137
+ <SplitButton {...args} active={true} level="tertiary" label="tertiary">
138
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
139
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
140
+ </SplitButton>
141
+ <SplitButton {...args} active={true} level="warning" label="warning">
142
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
143
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
144
+ </SplitButton>
145
+ <SplitButton {...args} active={true} level="danger" label="danger">
146
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
147
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
148
+ </SplitButton>
149
+ <br />
150
+ <SplitButton {...args} active={true} ghost={true} level="primary" label="primary">
151
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
152
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
153
+ </SplitButton>
154
+ <SplitButton {...args} active={true} ghost={true} level="secondary" label="secondary">
155
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
156
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
157
+ </SplitButton>
158
+ <SplitButton {...args} active={true} ghost={true} level="tertiary" label="tertiary">
159
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
160
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
161
+ </SplitButton>
162
+ <SplitButton {...args} active={true} ghost={true} level="warning" label="warning">
163
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
164
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
165
+ </SplitButton>
166
+ <SplitButton {...args} active={true} ghost={true} level="danger" label="danger">
167
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
168
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
169
+ </SplitButton>
170
+ </>
171
+ );
172
+ }}
173
+ </Story>
174
+ </Canvas>
175
+
176
+ ## Variation on disabled
177
+
178
+ <Canvas>
179
+ <Story name="Disabled">
180
+ {args => {
181
+ return (
182
+ <>
183
+ <SplitButton {...args} disabled={false} label={'Default'}>
184
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
185
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
186
+ </SplitButton>
187
+ <SplitButton {...args} disabled={true} label={'Disabled'}>
188
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
189
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
190
+ </SplitButton>
191
+ </>
192
+ );
193
+ }}
194
+ </Story>
195
+ </Canvas>
196
+
197
+ ## Variation on size
198
+
199
+ <Canvas>
200
+ <Story name="Size">
201
+ {args => {
202
+ return (
203
+ <>
204
+ <SplitButton {...args} size="default" label={'Default'}>
205
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
206
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
207
+ </SplitButton>
208
+ <SplitButton {...args} size="small" label={'Small'}>
209
+ <SplitButton.Item onClick={() => {}}>Item 1</SplitButton.Item>
210
+ <SplitButton.Item onClick={() => {}}>Item 2</SplitButton.Item>
211
+ </SplitButton>
212
+ </>
213
+ );
214
+ }}
215
+ </Story>
216
+ </Canvas>
@@ -0,0 +1,90 @@
1
+ import React, {Children, cloneElement, forwardRef, HTMLAttributes, isValidElement, ReactNode, Ref} from 'react';
2
+ import {Override} from '../../shared';
3
+ import {ArrowDownIcon} from '../../icons';
4
+ import {Button, ButtonProps} from '../Button/Button';
5
+ import {Dropdown} from '../Dropdown/Dropdown';
6
+ import {useBooleanState} from '../../hooks';
7
+ import styled from 'styled-components';
8
+
9
+ type SplitButtonProps = Omit<
10
+ Override<
11
+ ButtonProps,
12
+ {
13
+ /**
14
+ * Label of the button.
15
+ */
16
+ label: string;
17
+ }
18
+ >,
19
+ 'href'
20
+ >;
21
+
22
+ /**
23
+ * Buttons express what action will occur when the users clicks.
24
+ * Buttons are used to initialize an action, either in the background or foreground of an experience.
25
+ */
26
+
27
+ const SplitButton = ({label, children, ...rest}: SplitButtonProps) => {
28
+ const [isOpen, open, close] = useBooleanState();
29
+ const decoratedChildren = Children.map(children, child => {
30
+ if (!isValidElement<ItemProps>(child)) return child;
31
+
32
+ return cloneElement<ItemProps>(child, {
33
+ onClick: (...args) => {
34
+ if (child.props.onClick) {
35
+ child.props.onClick(...args);
36
+ }
37
+ close();
38
+ },
39
+ });
40
+ });
41
+ return (
42
+ <Container>
43
+ <CollapsedButton {...rest}>{label}</CollapsedButton>
44
+
45
+ <Dropdown>
46
+ <CollapsedDropdownButton {...rest} type="button" onClick={open}>
47
+ <ArrowDownIcon />
48
+ </CollapsedDropdownButton>
49
+ {isOpen && (
50
+ <Dropdown.Overlay verticalPosition="down" onClose={close}>
51
+ <Dropdown.ItemCollection>{decoratedChildren}</Dropdown.ItemCollection>
52
+ </Dropdown.Overlay>
53
+ )}
54
+ </Dropdown>
55
+ </Container>
56
+ );
57
+ };
58
+
59
+ const Container = styled.div`
60
+ display: inline-flex;
61
+ `;
62
+
63
+ const CollapsedButton = styled(Button)`
64
+ border-top-right-radius: 0;
65
+ border-bottom-right-radius: 0;
66
+ border-right: 1px white solid;
67
+ `;
68
+
69
+ const CollapsedDropdownButton = styled(Button)`
70
+ border-top-left-radius: 0;
71
+ border-bottom-left-radius: 0;
72
+ padding-left: 10px;
73
+ `;
74
+
75
+ type ItemProps = HTMLAttributes<HTMLDivElement> & {
76
+ children: ReactNode;
77
+ };
78
+
79
+ const Item = forwardRef(({children, onClick}: ItemProps, ref: Ref<HTMLDivElement>) => (
80
+ <Dropdown.Item onClick={onClick} ref={ref}>
81
+ {children}
82
+ </Dropdown.Item>
83
+ ));
84
+
85
+ Item.displayName = 'SplitButton.Item';
86
+
87
+ SplitButton.Item = Item;
88
+
89
+ export {SplitButton};
90
+ export type {SplitButtonProps};
@@ -0,0 +1,143 @@
1
+ import React from 'react';
2
+ import {fireEvent, render, screen} from '../../storybook/test-util';
3
+ import {SplitButton} from './SplitButton';
4
+ import userEvent from '@testing-library/user-event';
5
+
6
+ test('it calls onClick handler when user clicks on button', () => {
7
+ const onClick = jest.fn();
8
+ render(
9
+ <SplitButton size="small" onClick={onClick} label={'My button'}>
10
+ <SplitButton.Item onClick={onClick}>Item 1</SplitButton.Item>
11
+ </SplitButton>
12
+ );
13
+
14
+ const button = screen.getAllByRole('button')[0];
15
+ fireEvent.click(button);
16
+
17
+ expect(onClick).toBeCalled();
18
+ });
19
+
20
+ test('it opens dropdown on arrow icon', () => {
21
+ const onClick = jest.fn();
22
+ render(
23
+ <SplitButton size="small" onClick={onClick} label={'My button'}>
24
+ <SplitButton.Item onClick={onClick}>Item 1</SplitButton.Item>
25
+ </SplitButton>
26
+ );
27
+
28
+ const button = screen.getAllByRole('button')[1];
29
+ fireEvent.click(button);
30
+
31
+ expect(screen.getByText('Item 1')).toBeInTheDocument();
32
+ });
33
+
34
+ test('it closes dropdown on item click', () => {
35
+ const onClick = jest.fn();
36
+ const onClickChild = jest.fn();
37
+ render(
38
+ <SplitButton size="small" onClick={onClick} label={'My button'}>
39
+ <SplitButton.Item onClick={onClickChild}>Item 1</SplitButton.Item>
40
+ <div onClick={onClickChild}>Item 2</div>
41
+ An invalid element
42
+ </SplitButton>
43
+ );
44
+
45
+ const dropdownButton = screen.getAllByRole('button')[1];
46
+ fireEvent.click(dropdownButton);
47
+
48
+ const item1 = screen.getByText('Item 1');
49
+ expect(item1).toBeInTheDocument();
50
+
51
+ fireEvent.click(item1);
52
+ expect(onClickChild).toBeCalled();
53
+ expect(item1).not.toBeInTheDocument();
54
+
55
+ fireEvent.click(dropdownButton);
56
+
57
+ const item2 = screen.getByText('Item 2');
58
+ expect(item2).toBeInTheDocument();
59
+
60
+ fireEvent.click(item2);
61
+ expect(onClickChild).toBeCalled();
62
+ expect(item2).not.toBeInTheDocument();
63
+ });
64
+
65
+ test('it calls onClick handler when user hits enter key on button', () => {
66
+ const onClick = jest.fn();
67
+ render(
68
+ <SplitButton ghost={true} onClick={onClick} label={'My button'}>
69
+ <SplitButton.Item onClick={onClick}>Item 1</SplitButton.Item>
70
+ </SplitButton>
71
+ );
72
+
73
+ const button = screen.getAllByRole('button')[0];
74
+ button.focus();
75
+ userEvent.type(button, '{enter}');
76
+
77
+ expect(onClick).toBeCalled();
78
+ });
79
+
80
+ test('it does not call onClick handler when user clicks on a disabled button', () => {
81
+ const onClick = jest.fn();
82
+ render(
83
+ <SplitButton disabled={true} ghost={true} onClick={onClick} label={'My button'}>
84
+ <SplitButton.Item onClick={onClick}>Item 1</SplitButton.Item>
85
+ </SplitButton>
86
+ );
87
+
88
+ const button = screen.getAllByRole('button')[0];
89
+ fireEvent.click(button);
90
+
91
+ expect(onClick).not.toBeCalled();
92
+ });
93
+
94
+ test('it does not call onClick handler when user hits enter key on a disabled button', () => {
95
+ const onClick = jest.fn();
96
+ render(
97
+ <SplitButton disabled={true} onClick={onClick} label={'My button'}>
98
+ <SplitButton.Item onClick={onClick}>Item 1</SplitButton.Item>
99
+ </SplitButton>
100
+ );
101
+
102
+ const button = screen.getAllByRole('button')[0];
103
+ fireEvent.keyDown(button, {key: 'Enter', code: 'Enter'});
104
+
105
+ expect(onClick).not.toBeCalled();
106
+ });
107
+
108
+ test('it does not trigger onClick when disabled', () => {
109
+ const onClick = jest.fn();
110
+ render(
111
+ <SplitButton disabled={true} onClick={onClick} label={'My button'}>
112
+ <SplitButton.Item onClick={onClick}>Item 1</SplitButton.Item>
113
+ </SplitButton>
114
+ );
115
+
116
+ const button = screen.getAllByRole('button')[0];
117
+ fireEvent.click(button);
118
+
119
+ expect(onClick).not.toBeCalled();
120
+ });
121
+
122
+ test('it does not trigger onClick when onClick is undefined', () => {
123
+ const onClick = jest.fn();
124
+ render(
125
+ <SplitButton onClick={undefined} label={'My button'}>
126
+ <SplitButton.Item onClick={onClick}>Item 1</SplitButton.Item>
127
+ </SplitButton>
128
+ );
129
+
130
+ fireEvent.click(screen.getAllByRole('button')[0]);
131
+
132
+ expect(onClick).not.toBeCalled();
133
+ });
134
+
135
+ test('Button supports ...rest props', () => {
136
+ render(
137
+ <SplitButton onClick={jest.fn()} data-testid="my_value" label={'My button'}>
138
+ <SplitButton.Item onClick={jest.fn()}>Item 1</SplitButton.Item>
139
+ </SplitButton>
140
+ );
141
+
142
+ expect(screen.getAllByTestId('my_value')[0]).toBeInTheDocument();
143
+ });
@@ -5,6 +5,7 @@ export * from './Block/Block';
5
5
  export * from './BlockButton/BlockButton';
6
6
  export * from './Breadcrumb/Breadcrumb';
7
7
  export * from './Button/Button';
8
+ export * from './SplitButton/SplitButton';
8
9
  export * from './Card/Card';
9
10
  export * from './Checkbox/Checkbox';
10
11
  export * from './Collapse/Collapse';