@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3df47e
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 +1 -10
- package/BackgroundColorContext.js +5 -22
- package/HalstackContext.d.ts +1221 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -181
- package/accordion/Accordion.stories.tsx +103 -127
- package/accordion/Accordion.test.js +32 -33
- package/accordion/types.d.ts +9 -16
- package/accordion-group/AccordionGroup.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +38 -107
- package/accordion-group/AccordionGroup.stories.tsx +95 -68
- package/accordion-group/AccordionGroup.test.js +55 -90
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +15 -16
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +47 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +23 -59
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -40
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -2
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +26 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +30 -81
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +89 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +62 -113
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +58 -102
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +144 -182
- package/checkbox/Checkbox.stories.tsx +166 -136
- package/checkbox/Checkbox.test.js +163 -29
- package/checkbox/types.d.ts +18 -6
- package/chip/Chip.js +39 -79
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +16 -31
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1367 -0
- package/common/variables.js +1002 -1136
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +171 -306
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +708 -369
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +86 -22
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +68 -130
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -304
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +67 -0
- package/dropdown/types.d.ts +32 -14
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +246 -357
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +369 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +50 -99
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +70 -190
- package/footer/Footer.stories.tsx +60 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +67 -8
- package/footer/types.d.ts +25 -26
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +99 -203
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +31 -28
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +5 -19
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +26 -2
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +84 -181
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +51 -48
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +13 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +61 -99
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +25 -53
- package/link/types.d.ts +15 -31
- package/main.d.ts +14 -13
- package/main.js +65 -101
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +93 -0
- package/nav-tabs/NavTabs.stories.tsx +276 -0
- package/nav-tabs/NavTabs.test.js +76 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +118 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +27 -43
- package/number-input/NumberInput.stories.tsx +44 -28
- package/number-input/NumberInput.test.js +703 -381
- package/number-input/types.d.ts +28 -15
- package/package.json +46 -47
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +34 -91
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -123
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +162 -147
- package/password-input/types.d.ts +21 -17
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +94 -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 +59 -76
- package/radio-group/RadioGroup.js +72 -116
- package/radio-group/RadioGroup.stories.tsx +135 -17
- package/radio-group/RadioGroup.test.js +529 -467
- package/radio-group/types.d.ts +86 -9
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +1 -1
- package/resultset-table/ResultsetTable.js +165 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +69 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
- package/{resultsetTable → resultset-table}/types.d.ts +13 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +89 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +143 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +87 -0
- package/select/Select.js +223 -502
- package/select/Select.stories.tsx +534 -145
- package/select/Select.test.js +2009 -1539
- package/select/types.d.ts +64 -25
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +131 -71
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +148 -180
- package/slider/Slider.test.js +198 -73
- package/slider/types.d.ts +11 -3
- package/spinner/Spinner.js +31 -75
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +149 -114
- package/switch/Switch.stories.tsx +44 -67
- package/switch/Switch.test.js +146 -39
- package/switch/types.d.ts +13 -5
- package/table/Table.d.ts +1 -1
- package/table/Table.js +25 -32
- package/table/{Table.stories.jsx → Table.stories.tsx} +178 -1
- package/table/Table.test.js +3 -8
- package/table/types.d.ts +12 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +116 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +316 -145
- package/tabs/Tabs.stories.tsx +120 -14
- package/tabs/Tabs.test.js +238 -67
- package/tabs/types.d.ts +29 -15
- package/tag/Tag.js +41 -78
- package/tag/Tag.stories.tsx +25 -8
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +324 -548
- package/text-input/TextInput.stories.tsx +272 -281
- package/text-input/TextInput.test.js +1425 -1377
- package/text-input/types.d.ts +70 -24
- package/textarea/Textarea.js +82 -134
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +168 -198
- package/textarea/types.d.ts +27 -16
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +92 -105
- package/toggle-group/ToggleGroup.stories.tsx +53 -8
- package/toggle-group/ToggleGroup.test.js +78 -66
- package/toggle-group/types.d.ts +34 -17
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -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 +1119 -1
- package/useTheme.js +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +70 -101
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +73 -87
- package/wizard/types.d.ts +12 -8
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.js +0 -254
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -10
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{list → action-icon}/types.js +0 -0
- /package/{radio → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → grid}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
|
-
var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup"));
|
|
10
|
-
|
|
6
|
+
var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup.tsx"));
|
|
11
7
|
var options = [{
|
|
12
8
|
value: 1,
|
|
13
9
|
label: "Amazon"
|
|
@@ -24,12 +20,11 @@ var options = [{
|
|
|
24
20
|
describe("Toggle group component tests", function () {
|
|
25
21
|
test("Toggle group renders with correct labels", function () {
|
|
26
22
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
label: "Toggle group label",
|
|
24
|
+
helperText: "Toggle group helper text",
|
|
25
|
+
options: options
|
|
26
|
+
})),
|
|
27
|
+
getByText = _render.getByText;
|
|
33
28
|
expect(getByText("Toggle group label")).toBeTruthy();
|
|
34
29
|
expect(getByText("Toggle group helper text")).toBeTruthy();
|
|
35
30
|
expect(getByText("Amazon")).toBeTruthy();
|
|
@@ -37,89 +32,106 @@ describe("Toggle group component tests", function () {
|
|
|
37
32
|
expect(getByText("Apple")).toBeTruthy();
|
|
38
33
|
expect(getByText("Google")).toBeTruthy();
|
|
39
34
|
});
|
|
35
|
+
test("Toggle group renders with correct aria-label in only-icon scenario", function () {
|
|
36
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
37
|
+
label: "Toggle group label",
|
|
38
|
+
helperText: "Toggle group helper text",
|
|
39
|
+
options: [{
|
|
40
|
+
value: 1,
|
|
41
|
+
icon: "https://cdn.icon-icons.com/icons2/2645/PNG/512/mic_mute_icon_159965.png",
|
|
42
|
+
title: "Mute"
|
|
43
|
+
}]
|
|
44
|
+
})),
|
|
45
|
+
getByRole = _render2.getByRole;
|
|
46
|
+
expect(getByRole("button").getAttribute("aria-label")).toBe("Mute");
|
|
47
|
+
});
|
|
40
48
|
test("Uncontrolled toggle group calls correct function on change with value", function () {
|
|
41
49
|
var onChange = jest.fn();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
getByText = _render2.getByText;
|
|
48
|
-
|
|
50
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
51
|
+
options: options,
|
|
52
|
+
onChange: onChange
|
|
53
|
+
})),
|
|
54
|
+
getByText = _render3.getByText;
|
|
49
55
|
var option = getByText("Ebay");
|
|
50
|
-
|
|
51
56
|
_react2.fireEvent.click(option);
|
|
52
|
-
|
|
53
57
|
expect(onChange).toHaveBeenCalledWith(2);
|
|
54
58
|
});
|
|
55
59
|
test("Controlled toggle group calls correct function on change with value", function () {
|
|
56
60
|
var onChange = jest.fn();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
getByText = _render3.getByText;
|
|
64
|
-
|
|
61
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
62
|
+
options: options,
|
|
63
|
+
onChange: onChange,
|
|
64
|
+
value: 1
|
|
65
|
+
})),
|
|
66
|
+
getByText = _render4.getByText;
|
|
65
67
|
var option = getByText("Ebay");
|
|
66
|
-
|
|
67
68
|
_react2.fireEvent.click(option);
|
|
68
|
-
|
|
69
69
|
expect(onChange).toHaveBeenCalledWith(2);
|
|
70
70
|
});
|
|
71
71
|
test("Function on change is not called when disable", function () {
|
|
72
72
|
var onChange = jest.fn();
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
getByText = _render4.getByText;
|
|
80
|
-
|
|
73
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
74
|
+
options: options,
|
|
75
|
+
onChange: onChange,
|
|
76
|
+
disabled: true
|
|
77
|
+
})),
|
|
78
|
+
getByText = _render5.getByText;
|
|
81
79
|
var option = getByText("Ebay");
|
|
82
|
-
|
|
83
80
|
_react2.fireEvent.click(option);
|
|
84
|
-
|
|
85
81
|
expect(onChange).toHaveBeenCalledTimes(0);
|
|
86
82
|
});
|
|
87
83
|
test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
|
|
88
84
|
var onChange = jest.fn();
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
_react2.fireEvent.click(
|
|
100
|
-
|
|
101
|
-
expect(
|
|
85
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
86
|
+
options: options,
|
|
87
|
+
onChange: onChange,
|
|
88
|
+
multiple: true
|
|
89
|
+
})),
|
|
90
|
+
getAllByRole = _render6.getAllByRole;
|
|
91
|
+
var toggleOptions = getAllByRole("button");
|
|
92
|
+
_react2.fireEvent.click(toggleOptions[0]);
|
|
93
|
+
expect(onChange).toHaveBeenCalledWith([1]);
|
|
94
|
+
_react2.fireEvent.click(toggleOptions[1]);
|
|
95
|
+
_react2.fireEvent.click(toggleOptions[3]);
|
|
96
|
+
expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
|
|
97
|
+
expect(toggleOptions[0].getAttribute("aria-pressed")).toBe("true");
|
|
98
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
99
|
+
expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
|
|
102
100
|
});
|
|
103
101
|
test("Controlled multiple toggle returns always same values", function () {
|
|
104
102
|
var onChange = jest.fn();
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
getByText = _render6.getByText;
|
|
113
|
-
|
|
103
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
104
|
+
options: options,
|
|
105
|
+
onChange: onChange,
|
|
106
|
+
value: [1],
|
|
107
|
+
multiple: true
|
|
108
|
+
})),
|
|
109
|
+
getByText = _render7.getByText;
|
|
114
110
|
var option = getByText("Ebay");
|
|
115
|
-
|
|
116
111
|
_react2.fireEvent.click(option);
|
|
117
|
-
|
|
118
112
|
expect(onChange).toHaveBeenCalledWith([1, 2]);
|
|
119
113
|
var option2 = getByText("Google");
|
|
120
|
-
|
|
121
114
|
_react2.fireEvent.click(option2);
|
|
122
|
-
|
|
123
115
|
expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
|
|
124
116
|
});
|
|
117
|
+
test("Single selection: Renders with correct default value", function () {
|
|
118
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
119
|
+
options: options,
|
|
120
|
+
defaultValue: 2
|
|
121
|
+
})),
|
|
122
|
+
getAllByRole = _render8.getAllByRole;
|
|
123
|
+
var toggleOptions = getAllByRole("button");
|
|
124
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
125
|
+
});
|
|
126
|
+
test("Multiple selection: Renders with correct default value", function () {
|
|
127
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
128
|
+
options: options,
|
|
129
|
+
defaultValue: [2, 4],
|
|
130
|
+
multiple: true
|
|
131
|
+
})),
|
|
132
|
+
getAllByRole = _render9.getAllByRole;
|
|
133
|
+
var toggleOptions = getAllByRole("button");
|
|
134
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
135
|
+
expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
|
|
136
|
+
});
|
|
125
137
|
});
|
package/toggle-group/types.d.ts
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
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
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Number with the option inner value.
|
|
13
|
-
*/
|
|
14
|
-
value: number;
|
|
15
|
-
};
|
|
16
|
-
declare type OptionIcon = OptionCommons & {
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
type OptionIcon = {
|
|
17
11
|
/**
|
|
18
12
|
* String with the option display value.
|
|
19
13
|
*/
|
|
20
|
-
label?:
|
|
14
|
+
label?: never;
|
|
21
15
|
/**
|
|
22
16
|
* Element used as the icon. Icon and label can't be used at same time.
|
|
23
17
|
*/
|
|
24
18
|
icon: string | SVG;
|
|
19
|
+
/**
|
|
20
|
+
* Value for the HTML properties title and aria-label.
|
|
21
|
+
* When a label is defined, this prop can not be use.
|
|
22
|
+
*/
|
|
23
|
+
title: string;
|
|
25
24
|
};
|
|
26
|
-
|
|
25
|
+
export type OptionLabel = {
|
|
27
26
|
/**
|
|
28
27
|
* String with the option display value.
|
|
29
28
|
*/
|
|
@@ -32,9 +31,19 @@ declare type OptionLabel = OptionCommons & {
|
|
|
32
31
|
* Element used as the icon. Icon and label can't be used at same time.
|
|
33
32
|
*/
|
|
34
33
|
icon?: string | SVG;
|
|
34
|
+
/**
|
|
35
|
+
* Value for the HTML properties title and aria-label.
|
|
36
|
+
* When a label is defined, this prop can not be use.
|
|
37
|
+
*/
|
|
38
|
+
title?: never;
|
|
35
39
|
};
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
type Option = {
|
|
41
|
+
/**
|
|
42
|
+
* Number with the option inner value.
|
|
43
|
+
*/
|
|
44
|
+
value: number;
|
|
45
|
+
} & (OptionIcon | OptionLabel);
|
|
46
|
+
type CommonProps = {
|
|
38
47
|
/**
|
|
39
48
|
* Text to be placed above the component.
|
|
40
49
|
*/
|
|
@@ -61,11 +70,15 @@ declare type CommonProps = {
|
|
|
61
70
|
*/
|
|
62
71
|
tabIndex?: number;
|
|
63
72
|
};
|
|
64
|
-
|
|
73
|
+
type SingleSelectionToggleGroup = CommonProps & {
|
|
65
74
|
/**
|
|
66
75
|
* 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
76
|
*/
|
|
68
77
|
multiple?: false;
|
|
78
|
+
/**
|
|
79
|
+
* The key of the initially selected value.
|
|
80
|
+
*/
|
|
81
|
+
defaultValue?: number;
|
|
69
82
|
/**
|
|
70
83
|
* The key of the selected value. If the component allows multiple selection, value must be an array.
|
|
71
84
|
* If undefined, the component will be uncontrolled and the value will be managed internally by the component.
|
|
@@ -77,11 +90,15 @@ declare type SingleSelectionToggle = CommonProps & {
|
|
|
77
90
|
*/
|
|
78
91
|
onChange?: (optionIndex: number) => void;
|
|
79
92
|
};
|
|
80
|
-
|
|
93
|
+
type MultipleSelectionToggleGroup = CommonProps & {
|
|
81
94
|
/**
|
|
82
95
|
* 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
96
|
*/
|
|
84
97
|
multiple: true;
|
|
98
|
+
/**
|
|
99
|
+
* The array of keys with the initially selected values.
|
|
100
|
+
*/
|
|
101
|
+
defaultValue?: number[];
|
|
85
102
|
/**
|
|
86
103
|
* An array with the keys of the selected values.
|
|
87
104
|
* If undefined, the component will be uncontrolled and the value will be managed internally by the component.
|
|
@@ -93,5 +110,5 @@ declare type MultipleSelectionToggle = CommonProps & {
|
|
|
93
110
|
*/
|
|
94
111
|
onChange?: (optionIndex: number[]) => void;
|
|
95
112
|
};
|
|
96
|
-
|
|
113
|
+
type Props = SingleSelectionToggleGroup | MultipleSelectionToggleGroup;
|
|
97
114
|
export default Props;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
|
|
12
|
+
var _excluded = ["textOverflow", "whiteSpace", "children"];
|
|
13
|
+
var DxcTypography = function DxcTypography(_ref) {
|
|
14
|
+
var textOverflow = _ref.textOverflow,
|
|
15
|
+
whiteSpace = _ref.whiteSpace,
|
|
16
|
+
children = _ref.children,
|
|
17
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
18
|
+
return /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], (0, _extends2["default"])({
|
|
19
|
+
textOverflow: textOverflow,
|
|
20
|
+
whiteSpace: whiteSpace == null && textOverflow != null && textOverflow !== "unset" ? "nowrap" : whiteSpace
|
|
21
|
+
}, props), children);
|
|
22
|
+
};
|
|
23
|
+
var _default = exports["default"] = DxcTypography;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Title from "../../.storybook/components/Title";
|
|
3
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
4
|
+
import DxcTypography from "./Typography";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: "Typography",
|
|
8
|
+
component: DxcTypography,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const Chromatic = () => (
|
|
12
|
+
<>
|
|
13
|
+
<ExampleContainer>
|
|
14
|
+
<Title title="Default Typography" theme="light" level={4} />
|
|
15
|
+
<DxcTypography>Default typography.</DxcTypography>
|
|
16
|
+
</ExampleContainer>
|
|
17
|
+
<ExampleContainer>
|
|
18
|
+
<Title title="Typography font sizes" theme="light" level={4} />
|
|
19
|
+
<DxcTypography display="block" fontSize="3.75rem">
|
|
20
|
+
3.75rem.
|
|
21
|
+
</DxcTypography>
|
|
22
|
+
<DxcTypography display="block" fontSize="3rem">
|
|
23
|
+
3rem.
|
|
24
|
+
</DxcTypography>
|
|
25
|
+
<DxcTypography display="block" fontSize="2rem">
|
|
26
|
+
2rem.
|
|
27
|
+
</DxcTypography>
|
|
28
|
+
<DxcTypography display="block" fontSize="1.5rem">
|
|
29
|
+
1.5rem.
|
|
30
|
+
</DxcTypography>
|
|
31
|
+
<DxcTypography display="block" fontSize="1.25rem">
|
|
32
|
+
1.25rem.
|
|
33
|
+
</DxcTypography>
|
|
34
|
+
<DxcTypography display="block" fontSize="1rem">
|
|
35
|
+
1rem.
|
|
36
|
+
</DxcTypography>
|
|
37
|
+
<DxcTypography display="block" fontSize="0.875rem">
|
|
38
|
+
0.875rem.
|
|
39
|
+
</DxcTypography>
|
|
40
|
+
<DxcTypography display="block" fontSize="0.75rem">
|
|
41
|
+
0.75rem.
|
|
42
|
+
</DxcTypography>
|
|
43
|
+
</ExampleContainer>
|
|
44
|
+
<ExampleContainer>
|
|
45
|
+
<Title title="Typography letter spacing" theme="light" level={4} />
|
|
46
|
+
<DxcTypography display="block" letterSpacing="-0.025em">
|
|
47
|
+
-0.025em.
|
|
48
|
+
</DxcTypography>
|
|
49
|
+
<DxcTypography display="block" letterSpacing="-0.0125em">
|
|
50
|
+
-0.0125em.
|
|
51
|
+
</DxcTypography>
|
|
52
|
+
<DxcTypography display="block" letterSpacing="0em">
|
|
53
|
+
0em.
|
|
54
|
+
</DxcTypography>
|
|
55
|
+
<DxcTypography display="block" letterSpacing="0.025em">
|
|
56
|
+
0.025em.
|
|
57
|
+
</DxcTypography>
|
|
58
|
+
<DxcTypography display="block" letterSpacing="0.05em">
|
|
59
|
+
0.05em.
|
|
60
|
+
</DxcTypography>
|
|
61
|
+
<DxcTypography display="block" letterSpacing="0.1em">
|
|
62
|
+
0.1em.
|
|
63
|
+
</DxcTypography>{" "}
|
|
64
|
+
</ExampleContainer>
|
|
65
|
+
<ExampleContainer>
|
|
66
|
+
<Title title="Typography line height" theme="light" level={4} />
|
|
67
|
+
<DxcTypography display="block" lineHeight="1em">
|
|
68
|
+
1em.
|
|
69
|
+
</DxcTypography>
|
|
70
|
+
<DxcTypography display="block" lineHeight="1.25em">
|
|
71
|
+
1.25em.
|
|
72
|
+
</DxcTypography>
|
|
73
|
+
<DxcTypography display="block" lineHeight="1.365em">
|
|
74
|
+
1.365em.
|
|
75
|
+
</DxcTypography>
|
|
76
|
+
<DxcTypography display="block" lineHeight="1.5em">
|
|
77
|
+
1.5em.
|
|
78
|
+
</DxcTypography>
|
|
79
|
+
<DxcTypography display="block" lineHeight="1.715em">
|
|
80
|
+
1.715em.
|
|
81
|
+
</DxcTypography>
|
|
82
|
+
<DxcTypography display="block" lineHeight="2em">
|
|
83
|
+
2em.
|
|
84
|
+
</DxcTypography>
|
|
85
|
+
</ExampleContainer>
|
|
86
|
+
<ExampleContainer>
|
|
87
|
+
<Title title="Typography font weight" theme="light" level={4} />
|
|
88
|
+
<DxcTypography display="block" fontWeight="300">
|
|
89
|
+
300.
|
|
90
|
+
</DxcTypography>
|
|
91
|
+
<DxcTypography display="block" fontWeight="400">
|
|
92
|
+
400.
|
|
93
|
+
</DxcTypography>
|
|
94
|
+
<DxcTypography display="block" fontWeight="600">
|
|
95
|
+
600.
|
|
96
|
+
</DxcTypography>
|
|
97
|
+
<DxcTypography display="block" fontWeight="700">
|
|
98
|
+
700.
|
|
99
|
+
</DxcTypography>
|
|
100
|
+
</ExampleContainer>
|
|
101
|
+
<ExampleContainer>
|
|
102
|
+
<Title title="Typography decoration" theme="light" level={4} />
|
|
103
|
+
<DxcTypography display="block" textDecoration="underline">
|
|
104
|
+
Underline.
|
|
105
|
+
</DxcTypography>
|
|
106
|
+
<DxcTypography display="block" textDecoration="line-through">
|
|
107
|
+
Line-through.
|
|
108
|
+
</DxcTypography>
|
|
109
|
+
</ExampleContainer>
|
|
110
|
+
<ExampleContainer>
|
|
111
|
+
<Title title="Typography font family" theme="light" level={4} />
|
|
112
|
+
<DxcTypography display="block" fontFamily="Open Sans, sans-serif">
|
|
113
|
+
Open Sans, sans-serif.
|
|
114
|
+
</DxcTypography>
|
|
115
|
+
<DxcTypography display="block" fontFamily="Source Code Pro, monospace">
|
|
116
|
+
Source Code Pro, monospace.
|
|
117
|
+
</DxcTypography>
|
|
118
|
+
</ExampleContainer>
|
|
119
|
+
<ExampleContainer>
|
|
120
|
+
<Title title="Typography font style" theme="light" level={4} />
|
|
121
|
+
<DxcTypography display="block" fontStyle="italic">
|
|
122
|
+
Italic.
|
|
123
|
+
</DxcTypography>
|
|
124
|
+
<DxcTypography display="block" fontStyle="normal">
|
|
125
|
+
Normal.
|
|
126
|
+
</DxcTypography>
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
<ExampleContainer>
|
|
129
|
+
<Title title="Typography align" theme="light" level={4} />
|
|
130
|
+
<DxcTypography display="block" textAlign="left">
|
|
131
|
+
Left.
|
|
132
|
+
</DxcTypography>
|
|
133
|
+
<DxcTypography display="block" textAlign="center">
|
|
134
|
+
Center.
|
|
135
|
+
</DxcTypography>
|
|
136
|
+
<DxcTypography display="block" textAlign="right">
|
|
137
|
+
Right.
|
|
138
|
+
</DxcTypography>
|
|
139
|
+
</ExampleContainer>
|
|
140
|
+
<ExampleContainer>
|
|
141
|
+
<Title title="Typography whitespace" theme="light" level={4} />
|
|
142
|
+
<div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
|
|
143
|
+
<DxcTypography fontSize="2rem">
|
|
144
|
+
{" "} Normal: A bunch of words you see.
|
|
145
|
+
</DxcTypography>
|
|
146
|
+
</div>
|
|
147
|
+
<div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
|
|
148
|
+
<DxcTypography whiteSpace="nowrap" fontSize="2rem">
|
|
149
|
+
{" "}No-wrap: A bunch of words you see.
|
|
150
|
+
</DxcTypography>
|
|
151
|
+
</div>
|
|
152
|
+
<div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
|
|
153
|
+
<DxcTypography whiteSpace="pre" fontSize="2rem">
|
|
154
|
+
{" "} pre: A bunch of words you see.
|
|
155
|
+
</DxcTypography>
|
|
156
|
+
</div>
|
|
157
|
+
<div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
|
|
158
|
+
<DxcTypography whiteSpace="pre-line" fontSize="2rem">
|
|
159
|
+
{" "}pre-line: A bunch of words you see.
|
|
160
|
+
</DxcTypography>
|
|
161
|
+
</div>
|
|
162
|
+
<div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
|
|
163
|
+
<DxcTypography whiteSpace="pre-wrap" fontSize="2rem">
|
|
164
|
+
{" "} pre-wrap: A bunch of words you see.
|
|
165
|
+
</DxcTypography>
|
|
166
|
+
</div>
|
|
167
|
+
</ExampleContainer>{" "}
|
|
168
|
+
<ExampleContainer>
|
|
169
|
+
<Title title="Typography display" theme="light" level={4} />
|
|
170
|
+
<DxcTypography display="block" textAlign="left">
|
|
171
|
+
Display Block.
|
|
172
|
+
<DxcTypography>A different text.</DxcTypography>
|
|
173
|
+
</DxcTypography>
|
|
174
|
+
<DxcTypography display="inline" textAlign="left">
|
|
175
|
+
Display Inline.
|
|
176
|
+
<DxcTypography>A different text.</DxcTypography>
|
|
177
|
+
</DxcTypography>
|
|
178
|
+
</ExampleContainer>
|
|
179
|
+
<ExampleContainer>
|
|
180
|
+
<Title title="Typography text-overflow" theme="light" level={4} />
|
|
181
|
+
<div style={{ width: "75px" }}>
|
|
182
|
+
<DxcTypography display="block" textOverflow="clip">
|
|
183
|
+
Overflow clip.
|
|
184
|
+
</DxcTypography>
|
|
185
|
+
</div>
|
|
186
|
+
<div style={{ width: "75px" }}>
|
|
187
|
+
<DxcTypography display="block" textOverflow="ellipsis">
|
|
188
|
+
Overflow ellipsis.
|
|
189
|
+
</DxcTypography>
|
|
190
|
+
</div>
|
|
191
|
+
<div style={{ width: "75px" }}>
|
|
192
|
+
<DxcTypography display="block" textOverflow="unset">
|
|
193
|
+
Overflow unset.
|
|
194
|
+
</DxcTypography>
|
|
195
|
+
</div>
|
|
196
|
+
</ExampleContainer>
|
|
197
|
+
</>
|
|
198
|
+
);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
type Props = {
|
|
3
|
+
as?: keyof HTMLElementTagNameMap;
|
|
4
|
+
display?: "inline" | "block";
|
|
5
|
+
fontFamily?: "Open Sans, sans-serif" | "Source Code Pro, monospace";
|
|
6
|
+
fontSize?: "0.75rem" | "0.875rem" | "1rem" | "1.25rem" | "1.5rem" | "2rem" | "3rem" | "3.75rem";
|
|
7
|
+
fontStyle?: "italic" | "normal";
|
|
8
|
+
fontWeight?: "300" | "400" | "600" | "700";
|
|
9
|
+
letterSpacing?: "-0.025em" | "-0.0125em" | "0em" | "0.025em" | "0.05em" | "0.1em";
|
|
10
|
+
lineHeight?: "1em" | "1.25em" | "1.365em" | "1.5em" | "1.715em" | "2em";
|
|
11
|
+
textAlign?: "left" | "center" | "right";
|
|
12
|
+
color?: string;
|
|
13
|
+
textDecoration?: "none" | "underline" | "line-through";
|
|
14
|
+
textOverflow?: "clip" | "ellipsis" | "unset";
|
|
15
|
+
whiteSpace?: "normal" | "nowrap" | "pre" | "pre-line" | "pre-wrap";
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
};
|
|
18
|
+
export default Props;
|