@dxc-technology/halstack-react 0.0.0-9b45027 → 0.0.0-9bd9511
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 +2 -2
- package/BackgroundColorContext.js +1 -11
- package/HalstackContext.d.ts +13 -0
- package/HalstackContext.js +318 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +124 -179
- package/accordion/Accordion.stories.tsx +115 -27
- package/accordion/Accordion.test.js +56 -0
- package/accordion/types.d.ts +12 -11
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +28 -77
- package/accordion-group/AccordionGroup.stories.tsx +28 -2
- package/accordion-group/AccordionGroup.test.js +108 -0
- package/accordion-group/types.d.ts +19 -12
- package/alert/Alert.js +18 -46
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +75 -0
- package/alert/types.d.ts +3 -3
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +6 -16
- package/badge/types.d.ts +5 -0
- package/bleed/Bleed.d.ts +2 -2
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +26 -2
- package/box/Box.js +34 -63
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +13 -0
- package/box/types.d.ts +5 -4
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +98 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/bulleted-list/types.js +5 -0
- package/button/Button.js +61 -100
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +26 -0
- package/button/types.d.ts +8 -8
- package/card/Card.js +44 -70
- package/card/Card.test.js +39 -0
- package/card/types.d.ts +4 -3
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +115 -162
- package/checkbox/Checkbox.stories.tsx +198 -130
- package/checkbox/Checkbox.test.js +128 -0
- package/checkbox/types.d.ts +14 -6
- package/chip/Chip.d.ts +1 -1
- package/chip/Chip.js +29 -91
- package/chip/Chip.stories.tsx +98 -13
- package/chip/Chip.test.js +42 -0
- package/chip/types.d.ts +8 -16
- package/common/utils.js +1 -6
- package/common/variables.d.ts +1431 -0
- package/common/variables.js +480 -554
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +215 -0
- package/date-input/DateInput.js +164 -300
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +648 -0
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +116 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +63 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +101 -0
- package/date-input/types.d.ts +71 -13
- package/dialog/Dialog.js +52 -84
- package/dialog/Dialog.stories.tsx +99 -22
- package/dialog/Dialog.test.js +56 -0
- package/dialog/types.d.ts +4 -3
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +240 -323
- package/dropdown/Dropdown.stories.tsx +255 -64
- package/dropdown/Dropdown.test.js +479 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +60 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +70 -0
- package/dropdown/types.d.ts +30 -19
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +224 -351
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +445 -0
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +48 -97
- package/file-input/types.d.ts +24 -7
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/flex/types.js +5 -0
- package/footer/Footer.js +36 -143
- package/footer/Footer.stories.tsx +99 -1
- package/footer/Footer.test.js +92 -0
- package/footer/Icons.js +1 -5
- package/footer/types.d.ts +7 -6
- package/header/Header.js +112 -177
- package/header/Header.stories.tsx +189 -36
- package/header/Header.test.js +66 -0
- package/header/Icons.js +2 -6
- package/header/types.d.ts +4 -3
- package/heading/Heading.js +8 -29
- package/heading/Heading.test.js +169 -0
- package/heading/types.d.ts +3 -3
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +26 -2
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +71 -164
- package/layout/ApplicationLayout.stories.tsx +84 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +11 -10
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +15 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +61 -106
- package/link/Link.stories.tsx +159 -52
- package/link/Link.test.js +65 -0
- package/link/types.d.ts +9 -29
- package/main.d.ts +11 -15
- package/main.js +48 -121
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +95 -0
- package/nav-tabs/NavTabs.stories.tsx +260 -0
- package/nav-tabs/NavTabs.test.js +75 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +120 -0
- package/nav-tabs/types.d.ts +53 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.js +21 -38
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +406 -0
- package/number-input/NumberInputContext.js +0 -5
- package/number-input/numberInputContextTypes.d.ts +1 -1
- package/number-input/types.d.ts +21 -14
- package/package.json +22 -25
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -38
- package/paginator/Paginator.js +31 -82
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +266 -0
- package/paginator/types.d.ts +1 -1
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +28 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +28 -54
- package/password-input/PasswordInput.test.js +138 -0
- package/password-input/types.d.ts +18 -15
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +65 -84
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +93 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +95 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +61 -66
- package/radio-group/RadioGroup.js +99 -129
- package/radio-group/RadioGroup.stories.tsx +171 -36
- package/radio-group/RadioGroup.test.js +620 -0
- package/radio-group/types.d.ts +85 -7
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +48 -0
- package/resultsetTable/ResultsetTable.js +66 -157
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +292 -0
- package/resultsetTable/types.d.ts +5 -5
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +90 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +144 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +81 -0
- package/select/Select.js +201 -485
- package/select/Select.stories.tsx +600 -201
- package/select/Select.test.js +1845 -0
- package/select/types.d.ts +62 -22
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +164 -74
- package/sidenav/Sidenav.stories.tsx +249 -149
- package/sidenav/Sidenav.test.js +37 -0
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +143 -164
- package/slider/Slider.stories.tsx +72 -9
- package/slider/Slider.test.js +222 -0
- package/slider/types.d.ts +11 -3
- package/spinner/Spinner.js +12 -41
- package/spinner/Spinner.stories.jsx +27 -1
- package/spinner/Spinner.test.js +55 -0
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +148 -107
- package/switch/Switch.stories.tsx +53 -42
- package/switch/Switch.test.js +180 -0
- package/switch/types.d.ts +13 -5
- package/table/Table.js +5 -23
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +21 -0
- package/table/types.d.ts +3 -3
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +115 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +318 -139
- package/tabs/Tabs.stories.tsx +119 -13
- package/tabs/Tabs.test.js +295 -0
- package/tabs/types.d.ts +21 -7
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +36 -75
- package/tag/Tag.stories.tsx +37 -27
- package/tag/Tag.test.js +49 -0
- package/tag/types.d.ts +25 -16
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +57 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +68 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +109 -0
- package/text-input/TextInput.js +232 -438
- package/text-input/TextInput.stories.tsx +310 -197
- package/text-input/TextInput.test.js +1404 -0
- package/text-input/types.d.ts +55 -17
- package/textarea/Textarea.js +53 -96
- package/textarea/Textarea.stories.jsx +93 -13
- package/textarea/Textarea.test.js +360 -0
- package/textarea/types.d.ts +22 -15
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +23 -57
- package/toggle-group/ToggleGroup.stories.tsx +46 -4
- package/toggle-group/ToggleGroup.test.js +124 -0
- package/toggle-group/types.d.ts +19 -11
- package/translatedLabelsType.d.ts +82 -0
- package/translatedLabelsType.js +5 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +119 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1 -1
- package/useTheme.js +3 -9
- package/useTranslatedLabels.d.ts +3 -0
- package/useTranslatedLabels.js +15 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +68 -98
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +114 -0
- package/wizard/types.d.ts +12 -7
- package/ThemeContext.d.ts +0 -15
- package/ThemeContext.js +0 -243
- 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/common/RequiredComponent.js +0 -32
- 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/list/List.d.ts +0 -8
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -11
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -239
- package/stack/Stack.d.ts +0 -10
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -166
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/toggle/Toggle.js +0 -186
- package/toggle/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/{radio → badge}/types.js +0 -0
|
@@ -3,6 +3,7 @@ import { userEvent, within } from "@storybook/testing-library";
|
|
|
3
3
|
import DxcToggleGroup from "./ToggleGroup";
|
|
4
4
|
import Title from "../../.storybook/components/Title";
|
|
5
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
9
|
title: "ToggleGroup",
|
|
@@ -89,6 +90,16 @@ const twoOptions = [
|
|
|
89
90
|
label: "Twitter",
|
|
90
91
|
},
|
|
91
92
|
];
|
|
93
|
+
|
|
94
|
+
const opinionatedTheme = {
|
|
95
|
+
toggleGroup: {
|
|
96
|
+
selectedBaseColor: "#5f249f",
|
|
97
|
+
selectedFontColor: "#ffffff",
|
|
98
|
+
unselectedBaseColor: "#e6e6e6",
|
|
99
|
+
unselectedFontColor: "#000000",
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
|
|
92
103
|
export const Chromatic = () => (
|
|
93
104
|
<>
|
|
94
105
|
<ExampleContainer>
|
|
@@ -97,7 +108,7 @@ export const Chromatic = () => (
|
|
|
97
108
|
</ExampleContainer>
|
|
98
109
|
<ExampleContainer>
|
|
99
110
|
<Title title="Selected" theme="light" level={4} />
|
|
100
|
-
<DxcToggleGroup label="Selected" helperText="HelperText"
|
|
111
|
+
<DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
|
|
101
112
|
</ExampleContainer>
|
|
102
113
|
<ExampleContainer>
|
|
103
114
|
<Title title="Icons toggle group" theme="light" level={4} />
|
|
@@ -109,11 +120,11 @@ export const Chromatic = () => (
|
|
|
109
120
|
</ExampleContainer>
|
|
110
121
|
<ExampleContainer>
|
|
111
122
|
<Title title="Disabled" theme="light" level={4} />
|
|
112
|
-
<DxcToggleGroup label="Disabled"
|
|
123
|
+
<DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
|
|
113
124
|
</ExampleContainer>
|
|
114
125
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
115
126
|
<Title title="Hovered" theme="light" level={4} />
|
|
116
|
-
<DxcToggleGroup label="Hovered" options={twoOptions}
|
|
127
|
+
<DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
|
|
117
128
|
</ExampleContainer>
|
|
118
129
|
<ExampleContainer>
|
|
119
130
|
<Title title="Multiple toggleGroup" theme="light" level={4} />
|
|
@@ -121,7 +132,7 @@ export const Chromatic = () => (
|
|
|
121
132
|
label="Toggle group"
|
|
122
133
|
helperText="Please select one or more"
|
|
123
134
|
options={options}
|
|
124
|
-
|
|
135
|
+
defaultValue={[1, 3]}
|
|
125
136
|
multiple
|
|
126
137
|
></DxcToggleGroup>
|
|
127
138
|
</ExampleContainer>
|
|
@@ -154,6 +165,37 @@ export const Chromatic = () => (
|
|
|
154
165
|
<Title title="xxLarge" theme="light" level={4} />
|
|
155
166
|
<DxcToggleGroup label="xxLarge margin" options={options} margin="xxlarge" />
|
|
156
167
|
</ExampleContainer>
|
|
168
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
169
|
+
<ExampleContainer>
|
|
170
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
171
|
+
<Title title="Selected" theme="light" level={4} />
|
|
172
|
+
<DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
|
|
173
|
+
</HalstackProvider>
|
|
174
|
+
</ExampleContainer>
|
|
175
|
+
<ExampleContainer>
|
|
176
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
177
|
+
<Title title="Icons & label toggle group" theme="light" level={4} />
|
|
178
|
+
<DxcToggleGroup label="Icons & label" options={optionsWithIconAndLabel} />
|
|
179
|
+
</HalstackProvider>
|
|
180
|
+
</ExampleContainer>
|
|
181
|
+
<ExampleContainer>
|
|
182
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
183
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
184
|
+
<DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
|
|
185
|
+
</HalstackProvider>
|
|
186
|
+
</ExampleContainer>
|
|
187
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
188
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
189
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
190
|
+
<DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
|
|
191
|
+
</HalstackProvider>
|
|
192
|
+
</ExampleContainer>
|
|
193
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
194
|
+
<Title title="Actived" theme="light" level={4} />
|
|
195
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
196
|
+
<DxcToggleGroup label="Actived" options={twoOptions} defaultValue={2} />
|
|
197
|
+
</HalstackProvider>
|
|
198
|
+
</ExampleContainer>
|
|
157
199
|
</>
|
|
158
200
|
);
|
|
159
201
|
const OptionSelected = () => <DxcToggleGroup label="Toggle group" helperText="HelperText" options={options} />;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup"));
|
|
7
|
+
var options = [{
|
|
8
|
+
value: 1,
|
|
9
|
+
label: "Amazon"
|
|
10
|
+
}, {
|
|
11
|
+
value: 2,
|
|
12
|
+
label: "Ebay"
|
|
13
|
+
}, {
|
|
14
|
+
value: 3,
|
|
15
|
+
label: "Apple"
|
|
16
|
+
}, {
|
|
17
|
+
value: 4,
|
|
18
|
+
label: "Google"
|
|
19
|
+
}];
|
|
20
|
+
describe("Toggle group component tests", function () {
|
|
21
|
+
test("Toggle group renders with correct labels", function () {
|
|
22
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
23
|
+
label: "Toggle group label",
|
|
24
|
+
helperText: "Toggle group helper text",
|
|
25
|
+
options: options
|
|
26
|
+
})),
|
|
27
|
+
getByText = _render.getByText;
|
|
28
|
+
expect(getByText("Toggle group label")).toBeTruthy();
|
|
29
|
+
expect(getByText("Toggle group helper text")).toBeTruthy();
|
|
30
|
+
expect(getByText("Amazon")).toBeTruthy();
|
|
31
|
+
expect(getByText("Ebay")).toBeTruthy();
|
|
32
|
+
expect(getByText("Apple")).toBeTruthy();
|
|
33
|
+
expect(getByText("Google")).toBeTruthy();
|
|
34
|
+
});
|
|
35
|
+
test("Uncontrolled toggle group calls correct function on change with value", function () {
|
|
36
|
+
var onChange = jest.fn();
|
|
37
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
38
|
+
options: options,
|
|
39
|
+
onChange: onChange
|
|
40
|
+
})),
|
|
41
|
+
getByText = _render2.getByText;
|
|
42
|
+
var option = getByText("Ebay");
|
|
43
|
+
_react2.fireEvent.click(option);
|
|
44
|
+
expect(onChange).toHaveBeenCalledWith(2);
|
|
45
|
+
});
|
|
46
|
+
test("Controlled toggle group calls correct function on change with value", function () {
|
|
47
|
+
var onChange = jest.fn();
|
|
48
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
49
|
+
options: options,
|
|
50
|
+
onChange: onChange,
|
|
51
|
+
value: 1
|
|
52
|
+
})),
|
|
53
|
+
getByText = _render3.getByText;
|
|
54
|
+
var option = getByText("Ebay");
|
|
55
|
+
_react2.fireEvent.click(option);
|
|
56
|
+
expect(onChange).toHaveBeenCalledWith(2);
|
|
57
|
+
});
|
|
58
|
+
test("Function on change is not called when disable", function () {
|
|
59
|
+
var onChange = jest.fn();
|
|
60
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
61
|
+
options: options,
|
|
62
|
+
onChange: onChange,
|
|
63
|
+
disabled: true
|
|
64
|
+
})),
|
|
65
|
+
getByText = _render4.getByText;
|
|
66
|
+
var option = getByText("Ebay");
|
|
67
|
+
_react2.fireEvent.click(option);
|
|
68
|
+
expect(onChange).toHaveBeenCalledTimes(0);
|
|
69
|
+
});
|
|
70
|
+
test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
|
|
71
|
+
var onChange = jest.fn();
|
|
72
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
73
|
+
options: options,
|
|
74
|
+
onChange: onChange,
|
|
75
|
+
multiple: true
|
|
76
|
+
})),
|
|
77
|
+
getAllByRole = _render5.getAllByRole;
|
|
78
|
+
var toggleOptions = getAllByRole("switch");
|
|
79
|
+
_react2.fireEvent.click(toggleOptions[0]);
|
|
80
|
+
expect(onChange).toHaveBeenCalledWith([1]);
|
|
81
|
+
_react2.fireEvent.click(toggleOptions[1]);
|
|
82
|
+
_react2.fireEvent.click(toggleOptions[3]);
|
|
83
|
+
expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
|
|
84
|
+
expect(toggleOptions[0].getAttribute("aria-checked")).toBe("true");
|
|
85
|
+
expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
|
|
86
|
+
expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
|
|
87
|
+
});
|
|
88
|
+
test("Controlled multiple toggle returns always same values", function () {
|
|
89
|
+
var onChange = jest.fn();
|
|
90
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
91
|
+
options: options,
|
|
92
|
+
onChange: onChange,
|
|
93
|
+
value: [1],
|
|
94
|
+
multiple: true
|
|
95
|
+
})),
|
|
96
|
+
getByText = _render6.getByText;
|
|
97
|
+
var option = getByText("Ebay");
|
|
98
|
+
_react2.fireEvent.click(option);
|
|
99
|
+
expect(onChange).toHaveBeenCalledWith([1, 2]);
|
|
100
|
+
var option2 = getByText("Google");
|
|
101
|
+
_react2.fireEvent.click(option2);
|
|
102
|
+
expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
|
|
103
|
+
});
|
|
104
|
+
test("Single selection: Renders with correct default value", function () {
|
|
105
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
106
|
+
options: options,
|
|
107
|
+
defaultValue: 2
|
|
108
|
+
})),
|
|
109
|
+
getAllByRole = _render7.getAllByRole;
|
|
110
|
+
var toggleOptions = getAllByRole("radio");
|
|
111
|
+
expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
|
|
112
|
+
});
|
|
113
|
+
test("Multiple selection: Renders with correct default value", function () {
|
|
114
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
115
|
+
options: options,
|
|
116
|
+
defaultValue: [2, 4],
|
|
117
|
+
multiple: true
|
|
118
|
+
})),
|
|
119
|
+
getAllByRole = _render8.getAllByRole;
|
|
120
|
+
var toggleOptions = getAllByRole("switch");
|
|
121
|
+
expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
|
|
122
|
+
expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
|
|
123
|
+
});
|
|
124
|
+
});
|
package/toggle-group/types.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
type OptionCommons = {
|
|
11
11
|
/**
|
|
12
12
|
* Number with the option inner value.
|
|
13
13
|
*/
|
|
14
14
|
value: number;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
type OptionIcon = OptionCommons & {
|
|
17
17
|
/**
|
|
18
18
|
* String with the option display value.
|
|
19
19
|
*/
|
|
@@ -23,7 +23,7 @@ declare type OptionIcon = OptionCommons & {
|
|
|
23
23
|
*/
|
|
24
24
|
icon: string | SVG;
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
type OptionLabel = OptionCommons & {
|
|
27
27
|
/**
|
|
28
28
|
* String with the option display value.
|
|
29
29
|
*/
|
|
@@ -33,8 +33,8 @@ declare type OptionLabel = OptionCommons & {
|
|
|
33
33
|
*/
|
|
34
34
|
icon?: string | SVG;
|
|
35
35
|
};
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
type Option = OptionIcon | OptionLabel;
|
|
37
|
+
type CommonProps = {
|
|
38
38
|
/**
|
|
39
39
|
* Text to be placed above the component.
|
|
40
40
|
*/
|
|
@@ -61,11 +61,15 @@ declare type CommonProps = {
|
|
|
61
61
|
*/
|
|
62
62
|
tabIndex?: number;
|
|
63
63
|
};
|
|
64
|
-
|
|
64
|
+
type SingleSelectionToggle = CommonProps & {
|
|
65
65
|
/**
|
|
66
66
|
* If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
|
|
67
67
|
*/
|
|
68
68
|
multiple?: false;
|
|
69
|
+
/**
|
|
70
|
+
* The key of the initially selected value.
|
|
71
|
+
*/
|
|
72
|
+
defaultValue?: number;
|
|
69
73
|
/**
|
|
70
74
|
* The key of the selected value. If the component allows multiple selection, value must be an array.
|
|
71
75
|
* If undefined, the component will be uncontrolled and the value will be managed internally by the component.
|
|
@@ -77,11 +81,15 @@ declare type SingleSelectionToggle = CommonProps & {
|
|
|
77
81
|
*/
|
|
78
82
|
onChange?: (optionIndex: number) => void;
|
|
79
83
|
};
|
|
80
|
-
|
|
84
|
+
type MultipleSelectionToggle = CommonProps & {
|
|
81
85
|
/**
|
|
82
86
|
* If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
|
|
83
87
|
*/
|
|
84
88
|
multiple: true;
|
|
89
|
+
/**
|
|
90
|
+
* The array of keys with the initially selected values.
|
|
91
|
+
*/
|
|
92
|
+
defaultValue?: number[];
|
|
85
93
|
/**
|
|
86
94
|
* An array with the keys of the selected values.
|
|
87
95
|
* If undefined, the component will be uncontrolled and the value will be managed internally by the component.
|
|
@@ -93,5 +101,5 @@ declare type MultipleSelectionToggle = CommonProps & {
|
|
|
93
101
|
*/
|
|
94
102
|
onChange?: (optionIndex: number[]) => void;
|
|
95
103
|
};
|
|
96
|
-
|
|
104
|
+
type Props = SingleSelectionToggle | MultipleSelectionToggle;
|
|
97
105
|
export default Props;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
type TranslatedLabelsContextTypes = {
|
|
2
|
+
formFields: {
|
|
3
|
+
optionalLabel: string;
|
|
4
|
+
requiredSelectionErrorMessage: string;
|
|
5
|
+
requiredValueErrorMessage: string;
|
|
6
|
+
formatRequestedErrorMessage: string;
|
|
7
|
+
lengthErrorMessage: (minLength: number, maxLength: number) => string;
|
|
8
|
+
logoAlternativeText: string;
|
|
9
|
+
};
|
|
10
|
+
applicationLayout: {
|
|
11
|
+
visibilityToggleTitle: string;
|
|
12
|
+
};
|
|
13
|
+
alert: {
|
|
14
|
+
infoTitleText: string;
|
|
15
|
+
successTitleText: string;
|
|
16
|
+
warningTitleText: string;
|
|
17
|
+
errorTitleText: string;
|
|
18
|
+
};
|
|
19
|
+
dateInput: {
|
|
20
|
+
invalidDateErrorMessage: string;
|
|
21
|
+
};
|
|
22
|
+
fileInput: {
|
|
23
|
+
fileSizeGreaterThanErrorMessage: string;
|
|
24
|
+
fileSizeLessThanErrorMessage: string;
|
|
25
|
+
multipleButtonLabelDefault: string;
|
|
26
|
+
singleButtonLabelDefault: string;
|
|
27
|
+
dropAreaButtonLabelDefault: string;
|
|
28
|
+
multipleDropAreaLabelDefault: string;
|
|
29
|
+
singleDropAreaLabelDefault: string;
|
|
30
|
+
deleteFileActionTitle: string;
|
|
31
|
+
};
|
|
32
|
+
footer: {
|
|
33
|
+
copyrightText: (year: number) => string;
|
|
34
|
+
};
|
|
35
|
+
header: {
|
|
36
|
+
closeIcon: string;
|
|
37
|
+
hamburguerTitle: string;
|
|
38
|
+
};
|
|
39
|
+
numberInput: {
|
|
40
|
+
valueGreaterThanOrEqualToErrorMessage: (minLength: number) => string;
|
|
41
|
+
valueLessThanOrEqualToErrorMessage: (maxLength: number) => string;
|
|
42
|
+
decrementValueTitle: string;
|
|
43
|
+
incrementValueTitle: string;
|
|
44
|
+
};
|
|
45
|
+
paginator: {
|
|
46
|
+
itemsPerPageText: string;
|
|
47
|
+
minToMaxOfText: (minNumberOfItems: number, maxNumberOfItems: number, totalItems: number) => string;
|
|
48
|
+
goToPageText: string;
|
|
49
|
+
pageOfText: (pageNumber: number, totalPagesNumber: number) => string;
|
|
50
|
+
};
|
|
51
|
+
passwordInput: {
|
|
52
|
+
inputShowPasswordTitle: string;
|
|
53
|
+
inputHidePasswordTitle: string;
|
|
54
|
+
};
|
|
55
|
+
quickNav: {
|
|
56
|
+
contentTitle: string;
|
|
57
|
+
};
|
|
58
|
+
radioGroup: {
|
|
59
|
+
optionalItemLabelDefault: string;
|
|
60
|
+
};
|
|
61
|
+
select: {
|
|
62
|
+
noMatchesErrorMessage: string;
|
|
63
|
+
actionClearSelectionTitle: string;
|
|
64
|
+
actionClearSearchTitle: string;
|
|
65
|
+
};
|
|
66
|
+
tabs: {
|
|
67
|
+
scrollLeft: string;
|
|
68
|
+
scrollRight: string;
|
|
69
|
+
};
|
|
70
|
+
textInput: {
|
|
71
|
+
clearFieldActionTitle: string;
|
|
72
|
+
searchingMessage: string;
|
|
73
|
+
fetchingDataErrorMessage: string;
|
|
74
|
+
};
|
|
75
|
+
calendar: {
|
|
76
|
+
daysShort: string[];
|
|
77
|
+
months: string[];
|
|
78
|
+
previousMonthTitle: string;
|
|
79
|
+
nextMonthTitle: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
export default TranslatedLabelsContextTypes;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import TypographyPropsTypes from "./types";
|
|
3
|
+
declare const Typography: ({ as, display, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, color, textDecoration, textOverflow, whiteSpace, children, }: TypographyPropsTypes) => JSX.Element;
|
|
4
|
+
export default Typography;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
|
+
var _templateObject;
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
var TypographyContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
16
|
+
var Typography = function Typography(_ref) {
|
|
17
|
+
var as = _ref.as,
|
|
18
|
+
display = _ref.display,
|
|
19
|
+
fontFamily = _ref.fontFamily,
|
|
20
|
+
fontSize = _ref.fontSize,
|
|
21
|
+
fontStyle = _ref.fontStyle,
|
|
22
|
+
fontWeight = _ref.fontWeight,
|
|
23
|
+
letterSpacing = _ref.letterSpacing,
|
|
24
|
+
lineHeight = _ref.lineHeight,
|
|
25
|
+
textAlign = _ref.textAlign,
|
|
26
|
+
color = _ref.color,
|
|
27
|
+
textDecoration = _ref.textDecoration,
|
|
28
|
+
textOverflow = _ref.textOverflow,
|
|
29
|
+
whiteSpace = _ref.whiteSpace,
|
|
30
|
+
children = _ref.children;
|
|
31
|
+
var componentContext = (0, _react.useContext)(TypographyContext);
|
|
32
|
+
var asValue = as !== null && as !== void 0 ? as : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.as) || "span";
|
|
33
|
+
var displayValue = display !== null && display !== void 0 ? display : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.display) || "inline";
|
|
34
|
+
var fontFamilyValue = fontFamily !== null && fontFamily !== void 0 ? fontFamily : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontFamily) || "Open Sans, sans-serif";
|
|
35
|
+
var fontSizeValue = fontSize !== null && fontSize !== void 0 ? fontSize : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontSize) || "1rem";
|
|
36
|
+
var fontStyleValue = fontStyle !== null && fontStyle !== void 0 ? fontStyle : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontStyle) || "normal";
|
|
37
|
+
var fontWeightValue = fontWeight !== null && fontWeight !== void 0 ? fontWeight : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontWeight) || "400";
|
|
38
|
+
var letterSpacingValue = letterSpacing !== null && letterSpacing !== void 0 ? letterSpacing : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.letterSpacing) || "0em";
|
|
39
|
+
var lineHeightValue = lineHeight !== null && lineHeight !== void 0 ? lineHeight : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.lineHeight) || "1.5em";
|
|
40
|
+
var textAlignValue = textAlign !== null && textAlign !== void 0 ? textAlign : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textAlign) || "left";
|
|
41
|
+
var colorValue = color !== null && color !== void 0 ? color : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.color) || "#000000";
|
|
42
|
+
var textDecorationValue = textDecoration !== null && textDecoration !== void 0 ? textDecoration : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textDecoration) || "none";
|
|
43
|
+
var textOverflowValue = textOverflow !== null && textOverflow !== void 0 ? textOverflow : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textOverflow) || "unset";
|
|
44
|
+
var whiteSpaceValue = whiteSpace !== null && whiteSpace !== void 0 ? whiteSpace : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.whiteSpace) || "normal";
|
|
45
|
+
return /*#__PURE__*/_react["default"].createElement(TypographyContext.Provider, {
|
|
46
|
+
value: {
|
|
47
|
+
as: asValue,
|
|
48
|
+
display: displayValue,
|
|
49
|
+
fontFamily: fontFamilyValue,
|
|
50
|
+
fontSize: fontSizeValue,
|
|
51
|
+
fontStyle: fontStyleValue,
|
|
52
|
+
fontWeight: fontWeightValue,
|
|
53
|
+
letterSpacing: letterSpacingValue,
|
|
54
|
+
lineHeight: lineHeightValue,
|
|
55
|
+
textAlign: textAlignValue,
|
|
56
|
+
color: colorValue,
|
|
57
|
+
textDecoration: textDecorationValue,
|
|
58
|
+
textOverflow: textOverflowValue,
|
|
59
|
+
whiteSpace: whiteSpaceValue
|
|
60
|
+
}
|
|
61
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledTypography, {
|
|
62
|
+
as: asValue,
|
|
63
|
+
display: displayValue,
|
|
64
|
+
fontFamily: fontFamilyValue,
|
|
65
|
+
fontSize: fontSizeValue,
|
|
66
|
+
fontStyle: fontStyleValue,
|
|
67
|
+
fontWeight: fontWeightValue,
|
|
68
|
+
letterSpacing: letterSpacingValue,
|
|
69
|
+
lineHeight: lineHeightValue,
|
|
70
|
+
textAlign: textAlignValue,
|
|
71
|
+
color: colorValue,
|
|
72
|
+
textDecoration: textDecorationValue,
|
|
73
|
+
textOverflow: textOverflowValue,
|
|
74
|
+
whiteSpace: whiteSpaceValue
|
|
75
|
+
}, children));
|
|
76
|
+
};
|
|
77
|
+
var StyledTypography = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px;\n display: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n text-align: ", ";\n line-height: ", ";\n text-decoration: ", ";\n text-overflow: ", ";\n white-space: ", ";\n overflow: ", ";\n"])), function (_ref2) {
|
|
78
|
+
var display = _ref2.display;
|
|
79
|
+
return display;
|
|
80
|
+
}, function (_ref3) {
|
|
81
|
+
var color = _ref3.color;
|
|
82
|
+
return color;
|
|
83
|
+
}, function (_ref4) {
|
|
84
|
+
var fontFamily = _ref4.fontFamily;
|
|
85
|
+
return fontFamily;
|
|
86
|
+
}, function (_ref5) {
|
|
87
|
+
var fontSize = _ref5.fontSize;
|
|
88
|
+
return fontSize;
|
|
89
|
+
}, function (_ref6) {
|
|
90
|
+
var fontStyle = _ref6.fontStyle;
|
|
91
|
+
return fontStyle;
|
|
92
|
+
}, function (_ref7) {
|
|
93
|
+
var fontWeight = _ref7.fontWeight;
|
|
94
|
+
return fontWeight;
|
|
95
|
+
}, function (_ref8) {
|
|
96
|
+
var letterSpacing = _ref8.letterSpacing;
|
|
97
|
+
return letterSpacing;
|
|
98
|
+
}, function (_ref9) {
|
|
99
|
+
var textAlign = _ref9.textAlign;
|
|
100
|
+
return textAlign;
|
|
101
|
+
}, function (_ref10) {
|
|
102
|
+
var lineHeight = _ref10.lineHeight;
|
|
103
|
+
return lineHeight;
|
|
104
|
+
}, function (_ref11) {
|
|
105
|
+
var textDecoration = _ref11.textDecoration;
|
|
106
|
+
return textDecoration;
|
|
107
|
+
}, function (_ref12) {
|
|
108
|
+
var textOverflow = _ref12.textOverflow;
|
|
109
|
+
return textOverflow;
|
|
110
|
+
}, function (_ref13) {
|
|
111
|
+
var whiteSpace = _ref13.whiteSpace,
|
|
112
|
+
textOverflow = _ref13.textOverflow;
|
|
113
|
+
return whiteSpace !== "normal" ? whiteSpace : textOverflow !== "unset" ? "nowrap" : "normal";
|
|
114
|
+
}, function (_ref14) {
|
|
115
|
+
var textOverflow = _ref14.textOverflow;
|
|
116
|
+
return textOverflow !== "unset" ? "hidden" : "visible";
|
|
117
|
+
});
|
|
118
|
+
var _default = Typography;
|
|
119
|
+
exports["default"] = _default;
|