@dxc-technology/halstack-react 0.0.0-bfdc357 → 0.0.0-bfeb2b0
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.
- package/BackgroundColorContext.d.ts +10 -0
- package/BackgroundColorContext.js +1 -4
- package/ThemeContext.d.ts +10 -0
- package/ThemeContext.js +26 -29
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +13 -23
- package/accordion/Accordion.stories.tsx +307 -0
- package/accordion/Accordion.test.js +72 -0
- package/accordion/types.d.ts +8 -8
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +15 -17
- package/accordion-group/AccordionGroup.stories.tsx +225 -0
- package/accordion-group/AccordionGroup.test.js +151 -0
- package/accordion-group/types.d.ts +8 -8
- package/alert/Alert.js +2 -2
- package/alert/Alert.test.js +92 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +1 -1
- package/badge/types.d.ts +4 -0
- package/badge/types.js +5 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +84 -0
- package/bleed/Bleed.stories.tsx +342 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- package/box/Box.js +2 -2
- package/box/Box.test.js +18 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +13 -19
- package/button/Button.stories.tsx +6 -8
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +5 -9
- package/card/Card.js +1 -1
- package/card/Card.stories.tsx +201 -0
- package/card/Card.test.js +50 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +4 -6
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +9 -15
- package/checkbox/Checkbox.stories.tsx +14 -14
- package/checkbox/Checkbox.test.js +78 -0
- package/checkbox/types.d.ts +6 -2
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +16 -76
- package/chip/Chip.stories.tsx +6 -8
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/variables.js +56 -260
- package/date-input/DateInput.js +54 -46
- package/date-input/DateInput.stories.tsx +7 -7
- package/date-input/DateInput.test.js +479 -0
- package/date-input/types.d.ts +16 -9
- package/dialog/Dialog.js +4 -3
- package/dialog/Dialog.test.js +40 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +13 -35
- package/dropdown/Dropdown.stories.tsx +249 -0
- package/dropdown/Dropdown.test.js +189 -0
- package/dropdown/types.d.ts +6 -15
- package/file-input/FileInput.d.ts +1 -1
- package/file-input/FileInput.js +160 -81
- package/file-input/FileInput.stories.tsx +507 -0
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.js +8 -6
- package/file-input/types.d.ts +32 -7
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +28 -36
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +3 -3
- package/footer/types.d.ts +21 -17
- package/header/Header.js +2 -2
- package/header/Header.test.js +63 -0
- package/header/Icons.d.ts +2 -0
- package/header/types.d.ts +4 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.stories.tsx +54 -0
- package/heading/Heading.test.js +186 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +84 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +10 -0
- package/layout/ApplicationLayout.js +17 -21
- package/layout/ApplicationLayout.stories.tsx +171 -0
- package/layout/types.d.ts +57 -0
- package/layout/types.js +5 -0
- package/link/Link.js +8 -16
- package/link/Link.stories.tsx +6 -1
- package/link/Link.test.js +91 -0
- package/link/types.d.ts +5 -9
- package/list/List.d.ts +4 -0
- package/list/List.js +47 -0
- package/list/List.stories.tsx +95 -0
- package/list/types.d.ts +7 -0
- package/list/types.js +5 -0
- package/main.d.ts +11 -8
- package/main.js +62 -38
- package/number-input/NumberInput.js +14 -24
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +508 -0
- package/number-input/NumberInputContext.d.ts +4 -0
- package/number-input/NumberInputContext.js +5 -2
- package/number-input/numberInputContextTypes.d.ts +19 -0
- package/number-input/numberInputContextTypes.js +5 -0
- package/number-input/types.d.ts +4 -0
- package/package.json +5 -2
- package/paginator/Paginator.js +2 -8
- package/paginator/Paginator.test.js +266 -0
- package/password-input/PasswordInput.js +19 -18
- package/password-input/PasswordInput.stories.tsx +3 -3
- package/password-input/PasswordInput.test.js +183 -0
- package/password-input/types.d.ts +17 -10
- package/progress-bar/ProgressBar.js +4 -4
- package/progress-bar/ProgressBar.test.js +65 -0
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +66 -0
- package/quick-nav/QuickNav.stories.tsx +237 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio/Radio.js +2 -2
- package/radio/Radio.test.js +71 -0
- package/radio/types.d.ts +2 -2
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +141 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +280 -0
- package/radio-group/RadioGroup.stories.tsx +100 -0
- package/radio-group/RadioGroup.test.js +695 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +9 -29
- package/resultsetTable/ResultsetTable.stories.tsx +275 -0
- package/resultsetTable/ResultsetTable.test.js +306 -0
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/row/Row.d.ts +3 -0
- package/row/Row.js +127 -0
- package/row/Row.stories.tsx +237 -0
- package/row/types.d.ts +28 -0
- package/row/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +116 -249
- package/select/Select.stories.tsx +91 -81
- package/select/Select.test.js +2057 -0
- package/select/types.d.ts +194 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.js +2 -2
- package/sidenav/Sidenav.stories.tsx +182 -0
- package/sidenav/Sidenav.test.js +56 -0
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +6 -5
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +150 -0
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +2 -2
- package/spinner/Spinner.stories.jsx +1 -0
- package/spinner/Spinner.test.js +64 -0
- package/stack/Stack.d.ts +3 -0
- package/stack/Stack.js +97 -0
- package/stack/Stack.stories.tsx +164 -0
- package/stack/types.d.ts +24 -0
- package/stack/types.js +5 -0
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +21 -8
- package/switch/Switch.stories.tsx +7 -7
- package/switch/Switch.test.js +98 -0
- package/switch/types.d.ts +4 -0
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +2 -1
- package/table/Table.test.js +26 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +20 -20
- package/tabs/Tabs.stories.tsx +118 -0
- package/tabs/Tabs.test.js +140 -0
- package/tabs/types.d.ts +29 -18
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +16 -23
- package/tag/Tag.stories.tsx +26 -29
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +23 -14
- package/text/Text.d.ts +7 -0
- package/text/Text.js +30 -0
- package/text/Text.stories.tsx +19 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +62 -89
- package/text-input/TextInput.stories.tsx +474 -0
- package/text-input/TextInput.test.js +1725 -0
- package/text-input/types.d.ts +163 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +37 -68
- package/textarea/Textarea.stories.jsx +37 -15
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +134 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +4 -0
- package/toggle-group/ToggleGroup.js +18 -46
- package/toggle-group/ToggleGroup.stories.tsx +27 -32
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +105 -0
- package/toggle-group/types.js +5 -0
- package/useTheme.d.ts +2 -0
- package/useTheme.js +1 -1
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +73 -18
- package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +13 -23
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +9 -9
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/chip/index.d.ts +0 -22
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/text-input/index.d.ts +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/toggle-group/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
|
@@ -24,7 +24,7 @@ const Checkbox = () => (
|
|
|
24
24
|
</ExampleContainer>
|
|
25
25
|
<ExampleContainer>
|
|
26
26
|
<Title title="Checked" theme="light" level={4} />
|
|
27
|
-
<DxcCheckbox label="Checkbox"
|
|
27
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
28
28
|
</ExampleContainer>
|
|
29
29
|
<ExampleContainer>
|
|
30
30
|
<Title title="Required" theme="light" level={4} />
|
|
@@ -32,7 +32,7 @@ const Checkbox = () => (
|
|
|
32
32
|
</ExampleContainer>
|
|
33
33
|
<ExampleContainer>
|
|
34
34
|
<Title title="Disabled and checked" theme="light" level={4} />
|
|
35
|
-
<DxcCheckbox label="Checkbox" disabled
|
|
35
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked />
|
|
36
36
|
</ExampleContainer>
|
|
37
37
|
<ExampleContainer>
|
|
38
38
|
<Title title="Disabled and required" theme="light" level={4} />
|
|
@@ -40,7 +40,7 @@ const Checkbox = () => (
|
|
|
40
40
|
</ExampleContainer>
|
|
41
41
|
<ExampleContainer>
|
|
42
42
|
<Title title="Disabled, required and checked" theme="light" level={4} />
|
|
43
|
-
<DxcCheckbox label="Checkbox" disabled required
|
|
43
|
+
<DxcCheckbox label="Checkbox" disabled required defaultChecked />
|
|
44
44
|
</ExampleContainer>
|
|
45
45
|
<ExampleContainer>
|
|
46
46
|
<Title title="Label after" theme="light" level={4} />
|
|
@@ -48,7 +48,7 @@ const Checkbox = () => (
|
|
|
48
48
|
</ExampleContainer>
|
|
49
49
|
<ExampleContainer>
|
|
50
50
|
<Title title="Checked with label after" theme="light" level={4} />
|
|
51
|
-
<DxcCheckbox label="Checkbox"
|
|
51
|
+
<DxcCheckbox label="Checkbox" defaultChecked labelPosition="after" />
|
|
52
52
|
</ExampleContainer>
|
|
53
53
|
<ExampleContainer>
|
|
54
54
|
<Title title="Required with label after" theme="light" level={4} />
|
|
@@ -56,7 +56,7 @@ const Checkbox = () => (
|
|
|
56
56
|
</ExampleContainer>
|
|
57
57
|
<ExampleContainer>
|
|
58
58
|
<Title title="Disabled and checked with label after" theme="light" level={4} />
|
|
59
|
-
<DxcCheckbox label="Checkbox" disabled
|
|
59
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
|
|
60
60
|
</ExampleContainer>
|
|
61
61
|
<ExampleContainer>
|
|
62
62
|
<Title title="Disabled and required with label after" theme="light" level={4} />
|
|
@@ -64,7 +64,7 @@ const Checkbox = () => (
|
|
|
64
64
|
</ExampleContainer>
|
|
65
65
|
<ExampleContainer>
|
|
66
66
|
<Title title="Disabled, required and checked with label after" theme="light" level={4} />
|
|
67
|
-
<DxcCheckbox label="Checkbox" disabled required
|
|
67
|
+
<DxcCheckbox label="Checkbox" disabled required defaultChecked labelPosition="after" />
|
|
68
68
|
</ExampleContainer>
|
|
69
69
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
70
70
|
<Title title="Hovered" theme="light" level={4} />
|
|
@@ -72,7 +72,7 @@ const Checkbox = () => (
|
|
|
72
72
|
</ExampleContainer>
|
|
73
73
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
74
74
|
<Title title="Hovered and checked" theme="light" level={4} />
|
|
75
|
-
<DxcCheckbox label="Hovered"
|
|
75
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
76
76
|
</ExampleContainer>
|
|
77
77
|
</>
|
|
78
78
|
<BackgroundColorProvider color="#333333">
|
|
@@ -84,7 +84,7 @@ const Checkbox = () => (
|
|
|
84
84
|
</ExampleContainer>
|
|
85
85
|
<ExampleContainer>
|
|
86
86
|
<Title title="Checked" theme="dark" level={4} />
|
|
87
|
-
<DxcCheckbox label="Checkbox"
|
|
87
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
88
88
|
</ExampleContainer>
|
|
89
89
|
<ExampleContainer>
|
|
90
90
|
<Title title="Required" theme="dark" level={4} />
|
|
@@ -92,7 +92,7 @@ const Checkbox = () => (
|
|
|
92
92
|
</ExampleContainer>
|
|
93
93
|
<ExampleContainer>
|
|
94
94
|
<Title title="Disabled and checked" theme="dark" level={4} />
|
|
95
|
-
<DxcCheckbox label="Checkbox" disabled
|
|
95
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked />
|
|
96
96
|
</ExampleContainer>
|
|
97
97
|
<ExampleContainer>
|
|
98
98
|
<Title title="Disabled and required" theme="dark" level={4} />
|
|
@@ -100,7 +100,7 @@ const Checkbox = () => (
|
|
|
100
100
|
</ExampleContainer>
|
|
101
101
|
<ExampleContainer>
|
|
102
102
|
<Title title="Disabled, required and checked" theme="dark" level={4} />
|
|
103
|
-
<DxcCheckbox label="Checkbox" disabled required
|
|
103
|
+
<DxcCheckbox label="Checkbox" disabled required defaultChecked />
|
|
104
104
|
</ExampleContainer>
|
|
105
105
|
<ExampleContainer>
|
|
106
106
|
<Title title="Label after" theme="dark" level={4} />
|
|
@@ -108,7 +108,7 @@ const Checkbox = () => (
|
|
|
108
108
|
</ExampleContainer>
|
|
109
109
|
<ExampleContainer>
|
|
110
110
|
<Title title="Checked with label after" theme="dark" level={4} />
|
|
111
|
-
<DxcCheckbox label="Checkbox"
|
|
111
|
+
<DxcCheckbox label="Checkbox" defaultChecked labelPosition="after" />
|
|
112
112
|
</ExampleContainer>
|
|
113
113
|
<ExampleContainer>
|
|
114
114
|
<Title title="Required with label after" theme="dark" level={4} />
|
|
@@ -116,7 +116,7 @@ const Checkbox = () => (
|
|
|
116
116
|
</ExampleContainer>
|
|
117
117
|
<ExampleContainer>
|
|
118
118
|
<Title title="Disabled and checked with label after" theme="dark" level={4} />
|
|
119
|
-
<DxcCheckbox label="Checkbox" disabled
|
|
119
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
|
|
120
120
|
</ExampleContainer>
|
|
121
121
|
<ExampleContainer>
|
|
122
122
|
<Title title="Disabled and required with label after" theme="dark" level={4} />
|
|
@@ -124,7 +124,7 @@ const Checkbox = () => (
|
|
|
124
124
|
</ExampleContainer>
|
|
125
125
|
<ExampleContainer>
|
|
126
126
|
<Title title="Disabled, required and checked with label after" theme="dark" level={4} />
|
|
127
|
-
<DxcCheckbox label="Checkbox" disabled required
|
|
127
|
+
<DxcCheckbox label="Checkbox" disabled required defaultChecked labelPosition="after" />
|
|
128
128
|
</ExampleContainer>
|
|
129
129
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
130
130
|
<Title title="Hovered" theme="dark" level={4} />
|
|
@@ -132,7 +132,7 @@ const Checkbox = () => (
|
|
|
132
132
|
</ExampleContainer>
|
|
133
133
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
134
134
|
<Title title="Hovered and checked" theme="dark" level={4} />
|
|
135
|
-
<DxcCheckbox label="Hovered"
|
|
135
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
136
136
|
</ExampleContainer>
|
|
137
137
|
</>
|
|
138
138
|
</DarkContainer>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Checkbox = _interopRequireDefault(require("./Checkbox"));
|
|
10
|
+
|
|
11
|
+
describe("Checkbox component tests", function () {
|
|
12
|
+
test("Checkbox renders with correct text", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
14
|
+
label: "Checkbox"
|
|
15
|
+
})),
|
|
16
|
+
getByText = _render.getByText;
|
|
17
|
+
|
|
18
|
+
expect(getByText("Checkbox")).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
test("Calls correct function on click", function () {
|
|
21
|
+
var onChange = jest.fn();
|
|
22
|
+
|
|
23
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
24
|
+
label: "Checkbox",
|
|
25
|
+
onChange: onChange
|
|
26
|
+
})),
|
|
27
|
+
getByText = _render2.getByText;
|
|
28
|
+
|
|
29
|
+
_react2.fireEvent.click(getByText("Checkbox"));
|
|
30
|
+
|
|
31
|
+
expect(onChange).toHaveBeenCalled();
|
|
32
|
+
});
|
|
33
|
+
test("Uncontrolled checkbox", function () {
|
|
34
|
+
var onChange = jest.fn();
|
|
35
|
+
var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
36
|
+
label: "Checkbox",
|
|
37
|
+
onChange: onChange
|
|
38
|
+
}));
|
|
39
|
+
var visibleCheckbox = component.getByText("Checkbox");
|
|
40
|
+
var input = component.getByRole("checkbox");
|
|
41
|
+
expect(input.checked).toBe(false);
|
|
42
|
+
|
|
43
|
+
_react2.fireEvent.click(visibleCheckbox);
|
|
44
|
+
|
|
45
|
+
expect(onChange).toHaveBeenCalled();
|
|
46
|
+
expect(onChange).toHaveBeenCalledWith(true);
|
|
47
|
+
expect(input.checked).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
test("Controlled checkbox", function () {
|
|
50
|
+
var onChange = jest.fn();
|
|
51
|
+
var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
52
|
+
label: "Checkbox",
|
|
53
|
+
checked: false,
|
|
54
|
+
onChange: onChange
|
|
55
|
+
}));
|
|
56
|
+
var input = component.getByRole("checkbox");
|
|
57
|
+
var visibleCheckbox = component.getByText("Checkbox");
|
|
58
|
+
|
|
59
|
+
_react2.fireEvent.click(visibleCheckbox);
|
|
60
|
+
|
|
61
|
+
expect(onChange).toHaveBeenCalled();
|
|
62
|
+
expect(onChange).toHaveBeenCalledWith(true);
|
|
63
|
+
expect(input.checked).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
test("Renders with correct initial value and initial state when it is uncontrolled", function () {
|
|
66
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
67
|
+
label: "Default label",
|
|
68
|
+
defaultChecked: true,
|
|
69
|
+
value: "test-defaultChecked"
|
|
70
|
+
})),
|
|
71
|
+
getByRole = _render3.getByRole;
|
|
72
|
+
|
|
73
|
+
var input = getByRole("checkbox");
|
|
74
|
+
expect(input.checked).toBe(true);
|
|
75
|
+
expect(input.value).toBe("test-defaultChecked");
|
|
76
|
+
expect(input.getAttribute("aria-checked")).toBe("true");
|
|
77
|
+
});
|
|
78
|
+
});
|
package/checkbox/types.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ declare type Margin = {
|
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
8
|
declare type Props = {
|
|
9
|
+
/**
|
|
10
|
+
* Initial state of the checkbox, only when it is uncontrolled.
|
|
11
|
+
*/
|
|
12
|
+
defaultChecked?: boolean;
|
|
9
13
|
/**
|
|
10
14
|
* If true, the component is checked. If undefined the component will be
|
|
11
15
|
* uncontrolled and the value will be managed internally by the component.
|
|
@@ -19,7 +23,7 @@ declare type Props = {
|
|
|
19
23
|
/**
|
|
20
24
|
* Text to be placed next to the checkbox.
|
|
21
25
|
*/
|
|
22
|
-
label
|
|
26
|
+
label?: string;
|
|
23
27
|
/**
|
|
24
28
|
* Whether the label should appear after or before the checkbox.
|
|
25
29
|
*/
|
|
@@ -49,7 +53,7 @@ declare type Props = {
|
|
|
49
53
|
*/
|
|
50
54
|
margin?: Space | Margin;
|
|
51
55
|
/**
|
|
52
|
-
* Size of the component
|
|
56
|
+
* Size of the component.
|
|
53
57
|
*/
|
|
54
58
|
size?: "small" | "medium" | "large" | "fillParent" | "fitContent";
|
|
55
59
|
/**
|
package/chip/Chip.d.ts
ADDED
package/chip/Chip.js
CHANGED
|
@@ -9,23 +9,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
13
|
|
|
14
14
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
15
|
|
|
16
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
17
|
-
|
|
18
16
|
var _react = _interopRequireDefault(require("react"));
|
|
19
17
|
|
|
20
18
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
19
|
|
|
22
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
-
|
|
24
20
|
var _variables = require("../common/variables.js");
|
|
25
21
|
|
|
26
22
|
var _utils = require("../common/utils.js");
|
|
27
23
|
|
|
28
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
24
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
29
25
|
|
|
30
26
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
31
27
|
|
|
@@ -37,9 +33,7 @@ var DxcChip = function DxcChip(_ref) {
|
|
|
37
33
|
var label = _ref.label,
|
|
38
34
|
suffixIcon = _ref.suffixIcon,
|
|
39
35
|
prefixIcon = _ref.prefixIcon,
|
|
40
|
-
suffixIconSrc = _ref.suffixIconSrc,
|
|
41
36
|
onClickSuffix = _ref.onClickSuffix,
|
|
42
|
-
prefixIconSrc = _ref.prefixIconSrc,
|
|
43
37
|
onClickPrefix = _ref.onClickPrefix,
|
|
44
38
|
disabled = _ref.disabled,
|
|
45
39
|
margin = _ref.margin,
|
|
@@ -51,49 +45,33 @@ var DxcChip = function DxcChip(_ref) {
|
|
|
51
45
|
}, /*#__PURE__*/_react["default"].createElement(StyledDxcChip, {
|
|
52
46
|
disabled: disabled,
|
|
53
47
|
margin: margin
|
|
54
|
-
}, prefixIcon
|
|
48
|
+
}, prefixIcon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
55
49
|
disabled: disabled,
|
|
56
50
|
prefixIcon: true,
|
|
57
51
|
label: label,
|
|
58
52
|
mode: "prefix",
|
|
59
53
|
tabIndex: typeof onClickPrefix === "function" && !disabled ? tabIndex : -1,
|
|
60
54
|
onClick: function onClick() {
|
|
61
|
-
return onClickPrefix && !disabled && onClickPrefix(
|
|
62
|
-
},
|
|
63
|
-
interactuable: typeof onClickPrefix === "function" && !disabled
|
|
64
|
-
}, (0, _typeof2["default"])(prefixIcon) === "object" ? prefixIcon : /*#__PURE__*/_react["default"].createElement(prefixIcon)) : prefixIconSrc && /*#__PURE__*/_react["default"].createElement(PrefixIconContainer, {
|
|
65
|
-
disabled: disabled,
|
|
66
|
-
src: prefixIconSrc,
|
|
67
|
-
label: label,
|
|
68
|
-
tabIndex: typeof onClickPrefix === "function" && !disabled ? tabIndex : -1,
|
|
69
|
-
onClick: function onClick() {
|
|
70
|
-
return onClickPrefix && !disabled && onClickPrefix(label);
|
|
55
|
+
return onClickPrefix && !disabled && onClickPrefix();
|
|
71
56
|
},
|
|
72
57
|
interactuable: typeof onClickPrefix === "function" && !disabled
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}, label), suffixIcon
|
|
58
|
+
}, typeof prefixIcon === "string" ? /*#__PURE__*/_react["default"].createElement(PrefixIconContainer, {
|
|
59
|
+
src: prefixIcon
|
|
60
|
+
}) : prefixIcon), label && /*#__PURE__*/_react["default"].createElement(ChipTextContainer, {
|
|
61
|
+
disabled: disabled
|
|
62
|
+
}, label), suffixIcon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
78
63
|
disabled: disabled,
|
|
79
64
|
suffixIcon: true,
|
|
80
65
|
mode: "suffix",
|
|
81
66
|
label: label,
|
|
82
67
|
tabIndex: typeof onClickSuffix === "function" && !disabled ? tabIndex : -1,
|
|
83
68
|
onClick: function onClick() {
|
|
84
|
-
return onClickSuffix && !disabled && onClickSuffix(
|
|
69
|
+
return onClickSuffix && !disabled && onClickSuffix();
|
|
85
70
|
},
|
|
86
71
|
interactuable: typeof onClickSuffix === "function" && !disabled
|
|
87
|
-
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
label: label,
|
|
91
|
-
tabIndex: typeof onClickSuffix === "function" && !disabled ? tabIndex : -1,
|
|
92
|
-
onClick: function onClick() {
|
|
93
|
-
return onClickSuffix && !disabled && onClickSuffix(label);
|
|
94
|
-
},
|
|
95
|
-
interactuable: typeof onClickSuffix === "function" && !disabled
|
|
96
|
-
})));
|
|
72
|
+
}, typeof suffixIcon === "string" ? /*#__PURE__*/_react["default"].createElement(SuffixIconContainer, {
|
|
73
|
+
src: suffixIcon
|
|
74
|
+
}) : suffixIcon)));
|
|
97
75
|
};
|
|
98
76
|
|
|
99
77
|
var getCursor = function getCursor(interactuable, disabled) {
|
|
@@ -159,34 +137,14 @@ var ChipTextContainer = _styledComponents["default"].span(_templateObject2 || (_
|
|
|
159
137
|
return disabled && "not-allowed" || "default";
|
|
160
138
|
});
|
|
161
139
|
|
|
162
|
-
var SuffixIconContainer = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["
|
|
163
|
-
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
164
|
-
}, function (props) {
|
|
165
|
-
return getCursor(props.interactuable, props.disabled);
|
|
166
|
-
}, function (props) {
|
|
167
|
-
return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
|
|
168
|
-
}, function (props) {
|
|
169
|
-
return props.theme.iconSize;
|
|
170
|
-
}, function (props) {
|
|
171
|
-
return props.theme.iconSize;
|
|
172
|
-
});
|
|
140
|
+
var SuffixIconContainer = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
173
141
|
|
|
174
|
-
var PrefixIconContainer = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["
|
|
175
|
-
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
176
|
-
}, function (props) {
|
|
177
|
-
return getCursor(props.interactuable, props.disabled);
|
|
178
|
-
}, function (props) {
|
|
179
|
-
return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
|
|
180
|
-
}, function (props) {
|
|
181
|
-
return props.theme.iconSize;
|
|
182
|
-
}, function (props) {
|
|
183
|
-
return props.theme.iconSize;
|
|
184
|
-
});
|
|
142
|
+
var PrefixIconContainer = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
185
143
|
|
|
186
144
|
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n ", "\n width: ", ";\n height: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n &:focus {\n outline-color: ", ";\n outline-width: 2px;\n ", "\n }\n"])), function (props) {
|
|
187
145
|
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
188
146
|
}, function (props) {
|
|
189
|
-
return props.prefixIcon ? "margin-right: ".concat((props.label || props.suffixIcon
|
|
147
|
+
return props.prefixIcon ? "margin-right: ".concat((props.label || props.suffixIcon) && props.theme.iconSpacing || props.prefixIcon && "0", ";") : "margin-left: ".concat((props.label || props.prefixIcon) && props.theme.iconSpacing || props.prefixIcon && "0", ";");
|
|
190
148
|
}, function (props) {
|
|
191
149
|
return getCursor(props.interactuable, props.disabled);
|
|
192
150
|
}, function (props) {
|
|
@@ -199,23 +157,5 @@ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
199
157
|
return props.disabled && "outline: none;";
|
|
200
158
|
});
|
|
201
159
|
|
|
202
|
-
DxcChip.propTypes = {
|
|
203
|
-
label: _propTypes["default"].string,
|
|
204
|
-
disabled: _propTypes["default"].bool,
|
|
205
|
-
theme: _propTypes["default"].oneOf(["dark", "light"]),
|
|
206
|
-
suffixIcon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
|
|
207
|
-
prefixIcon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
|
|
208
|
-
suffixIconSrc: _propTypes["default"].string,
|
|
209
|
-
prefixIconSrc: _propTypes["default"].string,
|
|
210
|
-
onClickSuffix: _propTypes["default"].func,
|
|
211
|
-
onClickPrefix: _propTypes["default"].func,
|
|
212
|
-
margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
|
213
|
-
top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
214
|
-
bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
215
|
-
left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
216
|
-
right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
|
|
217
|
-
}), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
|
|
218
|
-
tabIndex: _propTypes["default"].number
|
|
219
|
-
};
|
|
220
160
|
var _default = DxcChip;
|
|
221
161
|
exports["default"] = _default;
|
package/chip/Chip.stories.tsx
CHANGED
|
@@ -9,14 +9,12 @@ export default {
|
|
|
9
9
|
component: DxcChip,
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
const iconSVG = (
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
);
|
|
19
|
-
};
|
|
12
|
+
const iconSVG = (
|
|
13
|
+
<svg viewBox="0 0 24 24" fill="currentColor">
|
|
14
|
+
<path d="M0 0h24v24H0z" fill="none" />
|
|
15
|
+
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
|
|
16
|
+
</svg>
|
|
17
|
+
);
|
|
20
18
|
|
|
21
19
|
export const Chromatic = () => (
|
|
22
20
|
<>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Chip = _interopRequireDefault(require("./Chip"));
|
|
10
|
+
|
|
11
|
+
var _invision = _interopRequireDefault(require("../../app/src/images/invision.svg"));
|
|
12
|
+
|
|
13
|
+
describe("Chip component tests", function () {
|
|
14
|
+
test("Chip renders with correct text", function () {
|
|
15
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
|
|
16
|
+
label: "Chip"
|
|
17
|
+
})),
|
|
18
|
+
getByText = _render.getByText;
|
|
19
|
+
|
|
20
|
+
expect(getByText("Chip")).toBeTruthy();
|
|
21
|
+
});
|
|
22
|
+
test("Calls correct function when clicking on prefix icon", function () {
|
|
23
|
+
var onClick = jest.fn();
|
|
24
|
+
|
|
25
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
|
|
26
|
+
label: "Chip",
|
|
27
|
+
prefixIcon: _invision["default"],
|
|
28
|
+
onClickPrefix: onClick
|
|
29
|
+
})),
|
|
30
|
+
getByText = _render2.getByText,
|
|
31
|
+
getByRole = _render2.getByRole;
|
|
32
|
+
|
|
33
|
+
expect(getByText("Chip")).toBeTruthy();
|
|
34
|
+
|
|
35
|
+
_react2.fireEvent.click(getByRole("img"));
|
|
36
|
+
|
|
37
|
+
expect(onClick).toHaveBeenCalled();
|
|
38
|
+
});
|
|
39
|
+
test("Calls correct function when clicking on suffix icon", function () {
|
|
40
|
+
var onClick = jest.fn();
|
|
41
|
+
|
|
42
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
|
|
43
|
+
label: "Chip",
|
|
44
|
+
suffixIcon: _invision["default"],
|
|
45
|
+
onClickSuffix: onClick
|
|
46
|
+
})),
|
|
47
|
+
getByText = _render3.getByText,
|
|
48
|
+
getByRole = _render3.getByRole;
|
|
49
|
+
|
|
50
|
+
expect(getByText("Chip")).toBeTruthy();
|
|
51
|
+
|
|
52
|
+
_react2.fireEvent.click(getByRole("img"));
|
|
53
|
+
|
|
54
|
+
expect(onClick).toHaveBeenCalled();
|
|
55
|
+
});
|
|
56
|
+
});
|
package/chip/types.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
declare type Margin = {
|
|
4
|
+
top?: Space;
|
|
5
|
+
bottom?: Space;
|
|
6
|
+
left?: Space;
|
|
7
|
+
right?: Space;
|
|
8
|
+
};
|
|
9
|
+
declare type SVG = React.SVGProps<SVGSVGElement>;
|
|
10
|
+
declare type Props = {
|
|
11
|
+
/**
|
|
12
|
+
* Text to be placed on the chip.
|
|
13
|
+
*/
|
|
14
|
+
label?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Element or path used as icon to be placed after the chip label.
|
|
17
|
+
*/
|
|
18
|
+
suffixIcon?: string | SVG;
|
|
19
|
+
/**
|
|
20
|
+
* Element or path used as icon to be placed before the chip label.
|
|
21
|
+
*/
|
|
22
|
+
prefixIcon?: string | SVG;
|
|
23
|
+
/**
|
|
24
|
+
* This function will be called when the suffix is clicked.
|
|
25
|
+
*/
|
|
26
|
+
onClickSuffix?: () => void;
|
|
27
|
+
/**
|
|
28
|
+
* This function will be called when the prefix is clicked.
|
|
29
|
+
*/
|
|
30
|
+
onClickPrefix?: () => void;
|
|
31
|
+
/**
|
|
32
|
+
* If true, the component will be disabled.
|
|
33
|
+
*/
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
37
|
+
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
38
|
+
*/
|
|
39
|
+
margin?: Space | Margin;
|
|
40
|
+
/**
|
|
41
|
+
* Value of the tabindex attribute.
|
|
42
|
+
*/
|
|
43
|
+
tabIndex?: number;
|
|
44
|
+
};
|
|
45
|
+
export default Props;
|