@dxc-technology/halstack-react 0.0.0-eca8a89 → 0.0.0-ecc45e2
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.js +0 -1
- package/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +13 -45
- package/accordion/Accordion.stories.tsx +20 -13
- package/accordion/Accordion.test.js +72 -0
- package/accordion/types.d.ts +7 -7
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +14 -15
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +151 -0
- package/accordion-group/types.d.ts +7 -7
- package/alert/Alert.js +4 -1
- package/alert/Alert.test.js +92 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +5 -0
- package/{radio → badge}/types.js +0 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +51 -0
- package/bleed/Bleed.stories.tsx +341 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- package/box/Box.js +22 -32
- package/box/Box.test.js +18 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -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.d.ts +1 -1
- package/button/Button.js +57 -80
- package/button/Button.stories.tsx +15 -8
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +8 -12
- package/card/Card.js +24 -27
- package/card/Card.stories.tsx +1 -1
- package/card/Card.test.js +50 -0
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +43 -39
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/Checkbox.test.js +78 -0
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.d.ts +1 -1
- package/chip/Chip.js +16 -54
- package/chip/Chip.stories.tsx +6 -8
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +7 -15
- package/common/variables.js +267 -337
- package/date-input/DateInput.js +62 -48
- 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 +48 -51
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +242 -272
- package/dropdown/Dropdown.stories.tsx +312 -0
- package/dropdown/Dropdown.test.js +591 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +29 -18
- package/file-input/FileInput.js +111 -39
- package/file-input/FileInput.stories.tsx +507 -0
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.js +7 -5
- 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 +21 -0
- package/flex/types.js +5 -0
- package/footer/Footer.js +24 -99
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +1 -1
- package/header/Header.js +95 -114
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +79 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +2 -2
- package/heading/Heading.stories.tsx +3 -2
- package/heading/Heading.test.js +186 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +51 -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 +16 -6
- package/layout/ApplicationLayout.js +71 -125
- package/layout/ApplicationLayout.stories.tsx +83 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +60 -85
- package/link/Link.stories.tsx +99 -52
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +9 -29
- package/main.d.ts +11 -15
- package/main.js +53 -79
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +506 -0
- package/number-input/types.d.ts +17 -10
- package/package.json +14 -10
- package/paginator/Paginator.js +17 -38
- package/paginator/Paginator.test.js +308 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.stories.tsx +3 -3
- package/password-input/PasswordInput.test.js +180 -0
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +57 -51
- package/progress-bar/ProgressBar.stories.jsx +13 -11
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +118 -0
- package/quick-nav/QuickNav.stories.tsx +264 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- 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 +281 -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.js +5 -2
- package/resultsetTable/ResultsetTable.stories.tsx +7 -8
- package/resultsetTable/ResultsetTable.test.js +348 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +199 -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 +146 -366
- package/select/Select.stories.tsx +231 -176
- package/select/Select.test.js +2175 -0
- package/select/types.d.ts +210 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +184 -52
- package/sidenav/Sidenav.stories.tsx +154 -139
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +5 -4
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +187 -0
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +1 -1
- package/spinner/Spinner.stories.jsx +1 -0
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +127 -55
- package/switch/Switch.stories.tsx +21 -43
- package/switch/Switch.test.js +212 -0
- package/switch/types.d.ts +9 -6
- 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 +16 -18
- package/tabs/Tabs.stories.tsx +7 -16
- package/tabs/Tabs.test.js +140 -0
- package/tabs/types.d.ts +27 -15
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +17 -27
- package/tag/Tag.stories.tsx +26 -29
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +23 -14
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +55 -0
- package/text-input/TextInput.js +80 -105
- package/text-input/TextInput.stories.tsx +35 -18
- package/text-input/TextInput.test.js +1712 -0
- package/text-input/types.d.ts +32 -13
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +19 -56
- package/textarea/Textarea.stories.jsx +37 -15
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +137 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +12 -14
- package/toggle-group/ToggleGroup.stories.tsx +27 -32
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +46 -25
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +111 -57
- package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +33 -24
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +12 -11
- 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/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 -7
- package/list/List.js +0 -37
- package/list/List.stories.tsx +0 -70
- 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 -124
- package/row/Row.stories.tsx +0 -223
- package/select/index.d.ts +0 -131
- package/stack/Stack.d.ts +0 -10
- package/stack/Stack.js +0 -94
- package/stack/Stack.stories.tsx +0 -150
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/index.d.ts +0 -127
- 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/wizard/Icons.js +0 -65
|
@@ -5,7 +5,7 @@ import DxcTextInput from "../text-input/TextInput";
|
|
|
5
5
|
import DxcButton from "../button/Button";
|
|
6
6
|
import Title from "../../.storybook/components/Title";
|
|
7
7
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
8
|
-
import {
|
|
8
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
9
9
|
|
|
10
10
|
export default {
|
|
11
11
|
title: "Accordion",
|
|
@@ -15,7 +15,7 @@ export default {
|
|
|
15
15
|
const folderIcon = (
|
|
16
16
|
<svg
|
|
17
17
|
xmlns="http://www.w3.org/2000/svg"
|
|
18
|
-
|
|
18
|
+
enableBackground="new 0 0 24 24"
|
|
19
19
|
height="24px"
|
|
20
20
|
viewBox="0 0 24 24"
|
|
21
21
|
width="24px"
|
|
@@ -125,25 +125,31 @@ export const Chromatic = () => (
|
|
|
125
125
|
</ExampleContainer>
|
|
126
126
|
<ExampleContainer>
|
|
127
127
|
<Title title="Background color provider over accordion content" theme="light" level={4} />
|
|
128
|
-
<
|
|
128
|
+
<HalstackProvider advancedTheme={advancedTheme}>
|
|
129
129
|
<DxcAccordion
|
|
130
130
|
label="Dark Accordion"
|
|
131
|
-
|
|
131
|
+
defaultIsExpanded
|
|
132
132
|
assistiveText="Assistive text"
|
|
133
133
|
icon={folderIcon}
|
|
134
134
|
padding="medium"
|
|
135
135
|
>
|
|
136
136
|
<div style={{ display: "flex", flexDirection: "column" }}>
|
|
137
|
-
<DxcTextInput
|
|
137
|
+
<DxcTextInput
|
|
138
|
+
label="Label"
|
|
139
|
+
helperText="HelperText"
|
|
140
|
+
placeholder="Placeholder"
|
|
141
|
+
size="fillParent"
|
|
142
|
+
margin={{ bottom: "medium" }}
|
|
143
|
+
/>
|
|
138
144
|
<DxcButton label="Submit" size="medium" />
|
|
139
145
|
</div>
|
|
140
146
|
</DxcAccordion>
|
|
141
|
-
</
|
|
147
|
+
</HalstackProvider>
|
|
142
148
|
</ExampleContainer>
|
|
143
149
|
<Title title="Paddings" theme="light" level={2} />
|
|
144
150
|
<ExampleContainer>
|
|
145
151
|
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
146
|
-
<DxcAccordion label="Xxsmall padding"
|
|
152
|
+
<DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
|
|
147
153
|
<div>
|
|
148
154
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
149
155
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -156,7 +162,7 @@ export const Chromatic = () => (
|
|
|
156
162
|
</ExampleContainer>
|
|
157
163
|
<ExampleContainer>
|
|
158
164
|
<Title title="Xsmall padding" theme="light" level={4} />
|
|
159
|
-
<DxcAccordion label="Xsmall padding"
|
|
165
|
+
<DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
|
|
160
166
|
<div>
|
|
161
167
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
162
168
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -169,7 +175,7 @@ export const Chromatic = () => (
|
|
|
169
175
|
</ExampleContainer>
|
|
170
176
|
<ExampleContainer>
|
|
171
177
|
<Title title="Small padding" theme="light" level={4} />
|
|
172
|
-
<DxcAccordion label="Small padding"
|
|
178
|
+
<DxcAccordion label="Small padding" defaultIsExpanded padding="small">
|
|
173
179
|
<div>
|
|
174
180
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
175
181
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -182,7 +188,7 @@ export const Chromatic = () => (
|
|
|
182
188
|
</ExampleContainer>
|
|
183
189
|
<ExampleContainer>
|
|
184
190
|
<Title title="Medium padding" theme="light" level={4} />
|
|
185
|
-
<DxcAccordion label="Medium padding"
|
|
191
|
+
<DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
|
|
186
192
|
<div>
|
|
187
193
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
188
194
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -195,7 +201,7 @@ export const Chromatic = () => (
|
|
|
195
201
|
</ExampleContainer>
|
|
196
202
|
<ExampleContainer>
|
|
197
203
|
<Title title="Large padding" theme="light" level={4} />
|
|
198
|
-
<DxcAccordion label="Large padding"
|
|
204
|
+
<DxcAccordion label="Large padding" defaultIsExpanded padding="large">
|
|
199
205
|
<div>
|
|
200
206
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
201
207
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -208,7 +214,7 @@ export const Chromatic = () => (
|
|
|
208
214
|
</ExampleContainer>
|
|
209
215
|
<ExampleContainer>
|
|
210
216
|
<Title title="Xlarge padding" theme="light" level={4} />
|
|
211
|
-
<DxcAccordion label="Xlarge padding"
|
|
217
|
+
<DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
|
|
212
218
|
<div>
|
|
213
219
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
214
220
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -221,7 +227,7 @@ export const Chromatic = () => (
|
|
|
221
227
|
</ExampleContainer>
|
|
222
228
|
<ExampleContainer>
|
|
223
229
|
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
224
|
-
<DxcAccordion label="Xxlarge padding"
|
|
230
|
+
<DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
|
|
225
231
|
<div>
|
|
226
232
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
227
233
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -295,6 +301,7 @@ export const Chromatic = () => (
|
|
|
295
301
|
lobortis eget.
|
|
296
302
|
</div>
|
|
297
303
|
</DxcAccordion>
|
|
304
|
+
<hr />
|
|
298
305
|
</ExampleContainer>
|
|
299
306
|
</>
|
|
300
307
|
);
|
|
@@ -0,0 +1,72 @@
|
|
|
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 _Accordion = _interopRequireDefault(require("./Accordion"));
|
|
10
|
+
|
|
11
|
+
describe("Accordion component tests", function () {
|
|
12
|
+
test("Accordion renders with correct text", function () {
|
|
13
|
+
var onChange = jest.fn();
|
|
14
|
+
|
|
15
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
16
|
+
label: "Accordion",
|
|
17
|
+
assistiveText: "Assistive text",
|
|
18
|
+
onChange: onChange
|
|
19
|
+
})),
|
|
20
|
+
getByText = _render.getByText;
|
|
21
|
+
|
|
22
|
+
expect(getByText("Accordion")).toBeTruthy();
|
|
23
|
+
expect(getByText("Assistive text")).toBeTruthy();
|
|
24
|
+
});
|
|
25
|
+
test("Accordion renders expanded by default when it is uncontrolled", function () {
|
|
26
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
27
|
+
label: "Accordion",
|
|
28
|
+
defaultIsExpanded: true
|
|
29
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
|
|
30
|
+
getByRole = _render2.getByRole;
|
|
31
|
+
|
|
32
|
+
var accordion = getByRole("button");
|
|
33
|
+
expect(accordion.getAttribute("aria-expanded")).toBe("true");
|
|
34
|
+
});
|
|
35
|
+
test("Calls correct function on click", function () {
|
|
36
|
+
var onChange = jest.fn();
|
|
37
|
+
|
|
38
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
39
|
+
label: "Accordion",
|
|
40
|
+
onChange: onChange
|
|
41
|
+
})),
|
|
42
|
+
getByText = _render3.getByText;
|
|
43
|
+
|
|
44
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
45
|
+
|
|
46
|
+
expect(onChange).toHaveBeenCalled();
|
|
47
|
+
});
|
|
48
|
+
test("Controlled accordion", function () {
|
|
49
|
+
var onChange = jest.fn();
|
|
50
|
+
|
|
51
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
52
|
+
label: "Accordion",
|
|
53
|
+
onChange: onChange,
|
|
54
|
+
isExpanded: true
|
|
55
|
+
})),
|
|
56
|
+
getByText = _render4.getByText,
|
|
57
|
+
getByRole = _render4.getByRole;
|
|
58
|
+
|
|
59
|
+
expect(getByRole("button").getAttribute("aria-expanded")).toBe("true");
|
|
60
|
+
|
|
61
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
62
|
+
|
|
63
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
64
|
+
|
|
65
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
66
|
+
|
|
67
|
+
expect(onChange).toHaveBeenCalledTimes(3);
|
|
68
|
+
expect(onChange.mock.calls[0][0]).toBe(false);
|
|
69
|
+
expect(onChange.mock.calls[1][0]).toBe(false);
|
|
70
|
+
expect(onChange.mock.calls[2][0]).toBe(false);
|
|
71
|
+
});
|
|
72
|
+
});
|
package/accordion/types.d.ts
CHANGED
|
@@ -12,12 +12,16 @@ declare type Padding = {
|
|
|
12
12
|
left?: Space;
|
|
13
13
|
right?: Space;
|
|
14
14
|
};
|
|
15
|
-
declare type SVG = React.
|
|
15
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
16
16
|
declare type Props = {
|
|
17
17
|
/**
|
|
18
18
|
* The panel label.
|
|
19
19
|
*/
|
|
20
20
|
label: string;
|
|
21
|
+
/**
|
|
22
|
+
* Initial state of the panel, only when it is uncontrolled.
|
|
23
|
+
*/
|
|
24
|
+
defaultIsExpanded?: boolean;
|
|
21
25
|
/**
|
|
22
26
|
* Represents the state of the panel. When true, the component will be
|
|
23
27
|
* expanded. If undefined, the component will be uncontrolled and its
|
|
@@ -25,13 +29,9 @@ declare type Props = {
|
|
|
25
29
|
*/
|
|
26
30
|
isExpanded?: boolean;
|
|
27
31
|
/**
|
|
28
|
-
* Element used as the icon that will be placed next to panel label.
|
|
29
|
-
*/
|
|
30
|
-
icon?: SVG;
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated URL of the icon that will be placed next to panel label.
|
|
32
|
+
* Element or path used as the icon that will be placed next to panel label.
|
|
33
33
|
*/
|
|
34
|
-
|
|
34
|
+
icon?: string | SVG;
|
|
35
35
|
/**
|
|
36
36
|
* Assistive text to be placed on the right side of the panel.
|
|
37
37
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import AccordionGroupPropsType, { AccordionPropsType } from "./types";
|
|
3
3
|
declare const DxcAccordionGroup: {
|
|
4
|
-
({ indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
|
|
4
|
+
({ defaultIndexActive, indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
|
|
5
5
|
Accordion: ({ ...childProps }: AccordionPropsType) => JSX.Element;
|
|
6
6
|
};
|
|
7
7
|
export default DxcAccordionGroup;
|
|
@@ -47,13 +47,13 @@ var AccordionGroupAccordion = function AccordionGroupAccordion(_ref) {
|
|
|
47
47
|
var childProps = (0, _extends2["default"])({}, _ref);
|
|
48
48
|
|
|
49
49
|
var _useContext = (0, _react.useContext)(AccordionGroupAccordionContext),
|
|
50
|
-
|
|
50
|
+
activeIndex = _useContext.activeIndex,
|
|
51
51
|
handlerActiveChange = _useContext.handlerActiveChange,
|
|
52
52
|
disabled = _useContext.disabled,
|
|
53
53
|
index = _useContext.index;
|
|
54
54
|
|
|
55
55
|
return /*#__PURE__*/_react["default"].createElement(_Accordion["default"], (0, _extends2["default"])({
|
|
56
|
-
isExpanded:
|
|
56
|
+
isExpanded: activeIndex === index,
|
|
57
57
|
onChange: function onChange() {
|
|
58
58
|
handlerActiveChange(index);
|
|
59
59
|
},
|
|
@@ -62,7 +62,8 @@ var AccordionGroupAccordion = function AccordionGroupAccordion(_ref) {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
var DxcAccordionGroup = function DxcAccordionGroup(_ref2) {
|
|
65
|
-
var
|
|
65
|
+
var defaultIndexActive = _ref2.defaultIndexActive,
|
|
66
|
+
indexActive = _ref2.indexActive,
|
|
66
67
|
_ref2$disabled = _ref2.disabled,
|
|
67
68
|
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
68
69
|
onActiveChange = _ref2.onActiveChange,
|
|
@@ -70,27 +71,24 @@ var DxcAccordionGroup = function DxcAccordionGroup(_ref2) {
|
|
|
70
71
|
children = _ref2.children;
|
|
71
72
|
var colorsTheme = (0, _useTheme["default"])();
|
|
72
73
|
|
|
73
|
-
var _useState = (0, _react.useState)(0),
|
|
74
|
+
var _useState = (0, _react.useState)(defaultIndexActive !== null && defaultIndexActive !== void 0 ? defaultIndexActive : -1),
|
|
74
75
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
innerIndexActive = _useState2[0],
|
|
77
|
+
setInnerIndexActive = _useState2[1];
|
|
77
78
|
|
|
78
79
|
var handlerActiveChange = (0, _react.useCallback)(function (index) {
|
|
79
|
-
indexActive
|
|
80
|
+
indexActive !== null && indexActive !== void 0 ? indexActive : setInnerIndexActive(function (prev) {
|
|
80
81
|
return index === prev ? -1 : index;
|
|
81
|
-
})
|
|
82
|
+
});
|
|
82
83
|
!disabled && (onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(index));
|
|
83
84
|
}, [disabled, indexActive, onActiveChange]);
|
|
84
|
-
var
|
|
85
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
85
86
|
return {
|
|
86
|
-
|
|
87
|
+
activeIndex: indexActive !== null && indexActive !== void 0 ? indexActive : innerIndexActive,
|
|
87
88
|
handlerActiveChange: handlerActiveChange,
|
|
88
89
|
disabled: disabled
|
|
89
90
|
};
|
|
90
|
-
}, [
|
|
91
|
-
(0, _react.useEffect)(function () {
|
|
92
|
-
setInnerIsExpanded(indexActive);
|
|
93
|
-
}, [indexActive]);
|
|
91
|
+
}, [indexActive, innerIndexActive, handlerActiveChange, disabled]);
|
|
94
92
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
95
93
|
theme: colorsTheme.accordion
|
|
96
94
|
}, /*#__PURE__*/_react["default"].createElement(AccordionGroupContainer, {
|
|
@@ -100,9 +98,10 @@ var DxcAccordionGroup = function DxcAccordionGroup(_ref2) {
|
|
|
100
98
|
return child.type === AccordionGroupAccordion;
|
|
101
99
|
}).map(function (accordion, index) {
|
|
102
100
|
return /*#__PURE__*/_react["default"].createElement(AccordionGroupAccordionContext.Provider, {
|
|
101
|
+
key: "accordion-".concat(index),
|
|
103
102
|
value: _objectSpread({
|
|
104
103
|
index: index
|
|
105
|
-
},
|
|
104
|
+
}, contextValue)
|
|
106
105
|
}, accordion);
|
|
107
106
|
})));
|
|
108
107
|
};
|
|
@@ -36,7 +36,7 @@ export const Chromatic = () => (
|
|
|
36
36
|
</ExampleContainer>
|
|
37
37
|
<ExampleContainer>
|
|
38
38
|
<Title title="Expanded" theme="light" level={4} />
|
|
39
|
-
<DxcAccordionGroup
|
|
39
|
+
<DxcAccordionGroup defaultIndexActive={1}>
|
|
40
40
|
<DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
|
|
41
41
|
<div>
|
|
42
42
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
@@ -0,0 +1,151 @@
|
|
|
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 _AccordionGroup = _interopRequireDefault(require("./AccordionGroup"));
|
|
10
|
+
|
|
11
|
+
describe("Accordion component tests", function () {
|
|
12
|
+
test("Uncontrolled accordion group renders with children", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], null, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
14
|
+
label: "Accordion1",
|
|
15
|
+
padding: "medium"
|
|
16
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
17
|
+
label: "Accordion2",
|
|
18
|
+
padding: "medium"
|
|
19
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
|
|
20
|
+
getByText = _render.getByText,
|
|
21
|
+
getAllByRole = _render.getAllByRole;
|
|
22
|
+
|
|
23
|
+
expect(getByText("Accordion1")).toBeTruthy();
|
|
24
|
+
expect(getByText("Accordion2")).toBeTruthy();
|
|
25
|
+
expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
|
|
26
|
+
expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
|
|
27
|
+
});
|
|
28
|
+
test("Uncontrolled accordion group renders with only one children", function () {
|
|
29
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], null, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
30
|
+
label: "Accordion1",
|
|
31
|
+
padding: "medium"
|
|
32
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
|
|
33
|
+
getByText = _render2.getByText,
|
|
34
|
+
getAllByRole = _render2.getAllByRole;
|
|
35
|
+
|
|
36
|
+
expect(getByText("Accordion1")).toBeTruthy();
|
|
37
|
+
expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
|
|
38
|
+
});
|
|
39
|
+
test("Uncontrolled accordion group calls correct function on click", function () {
|
|
40
|
+
var onActiveChange = jest.fn();
|
|
41
|
+
|
|
42
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
|
|
43
|
+
margin: "large",
|
|
44
|
+
onActiveChange: onActiveChange
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
46
|
+
label: "Accordion1",
|
|
47
|
+
padding: "medium",
|
|
48
|
+
margin: "large"
|
|
49
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
50
|
+
label: "Accordion2",
|
|
51
|
+
padding: "medium"
|
|
52
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
|
|
53
|
+
getByText = _render3.getByText,
|
|
54
|
+
getAllByRole = _render3.getAllByRole;
|
|
55
|
+
|
|
56
|
+
expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
|
|
57
|
+
expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
|
|
58
|
+
|
|
59
|
+
_react2.fireEvent.click(getByText("Accordion1"));
|
|
60
|
+
|
|
61
|
+
expect(onActiveChange).toHaveBeenCalled();
|
|
62
|
+
expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
|
|
63
|
+
expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
|
|
64
|
+
});
|
|
65
|
+
test("Uncontrolled accordion group renders initially with an accordion expanded", function () {
|
|
66
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
|
|
67
|
+
defaultIndexActive: 1
|
|
68
|
+
}, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
69
|
+
label: "Accordion1",
|
|
70
|
+
padding: "medium"
|
|
71
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
72
|
+
label: "Accordion2",
|
|
73
|
+
padding: "medium"
|
|
74
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
|
|
75
|
+
getByText = _render4.getByText,
|
|
76
|
+
getAllByRole = _render4.getAllByRole;
|
|
77
|
+
|
|
78
|
+
expect(getByText("Accordion1")).toBeTruthy();
|
|
79
|
+
expect(getByText("Accordion2")).toBeTruthy();
|
|
80
|
+
expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
|
|
81
|
+
expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
|
|
82
|
+
});
|
|
83
|
+
test("Controlled accordion with indexActive change", function () {
|
|
84
|
+
var onActiveChange = jest.fn();
|
|
85
|
+
|
|
86
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
|
|
87
|
+
margin: "large",
|
|
88
|
+
indexActive: 1,
|
|
89
|
+
onActiveChange: onActiveChange
|
|
90
|
+
}, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
91
|
+
label: "Accordion1",
|
|
92
|
+
padding: "medium",
|
|
93
|
+
margin: "large"
|
|
94
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
95
|
+
label: "Accordion2",
|
|
96
|
+
padding: "medium"
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
|
|
98
|
+
getByText = _render5.getByText,
|
|
99
|
+
getAllByRole = _render5.getAllByRole,
|
|
100
|
+
rerender = _render5.rerender;
|
|
101
|
+
|
|
102
|
+
expect(getByText("Text1")).toBeTruthy();
|
|
103
|
+
expect(getByText("Text2")).toBeTruthy();
|
|
104
|
+
|
|
105
|
+
_react2.fireEvent.click(getByText("Accordion1"));
|
|
106
|
+
|
|
107
|
+
_react2.fireEvent.click(getByText("Accordion2"));
|
|
108
|
+
|
|
109
|
+
expect(onActiveChange.mock.calls[0][0]).toBe(0);
|
|
110
|
+
expect(onActiveChange.mock.calls[1][0]).toBe(1);
|
|
111
|
+
expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
|
|
112
|
+
expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
|
|
113
|
+
rerender( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
|
|
114
|
+
margin: "large",
|
|
115
|
+
indexActive: 0,
|
|
116
|
+
onActiveChange: onActiveChange
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
118
|
+
label: "Accordion1",
|
|
119
|
+
padding: "medium",
|
|
120
|
+
margin: "large"
|
|
121
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
122
|
+
label: "Accordion2",
|
|
123
|
+
padding: "medium"
|
|
124
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Text2"))));
|
|
125
|
+
expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
|
|
126
|
+
expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
|
|
127
|
+
});
|
|
128
|
+
test("Disabled uncontrolled accordion group", function () {
|
|
129
|
+
var onActiveChange = jest.fn();
|
|
130
|
+
|
|
131
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
|
|
132
|
+
margin: "large",
|
|
133
|
+
onActiveChange: onActiveChange,
|
|
134
|
+
disabled: true
|
|
135
|
+
}, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
136
|
+
label: "Accordion1",
|
|
137
|
+
padding: "medium",
|
|
138
|
+
margin: "large"
|
|
139
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
|
|
140
|
+
label: "Accordion2",
|
|
141
|
+
padding: "medium"
|
|
142
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
|
|
143
|
+
getByText = _render6.getByText;
|
|
144
|
+
|
|
145
|
+
_react2.fireEvent.click(getByText("Accordion1"));
|
|
146
|
+
|
|
147
|
+
_react2.fireEvent.click(getByText("Accordion2"));
|
|
148
|
+
|
|
149
|
+
expect(onActiveChange).toHaveBeenCalledTimes(0);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
@@ -12,20 +12,16 @@ declare type Padding = {
|
|
|
12
12
|
left?: Space;
|
|
13
13
|
right?: Space;
|
|
14
14
|
};
|
|
15
|
-
declare type SVG = React.
|
|
15
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
16
16
|
export declare type AccordionPropsType = {
|
|
17
17
|
/**
|
|
18
18
|
* The panel label.
|
|
19
19
|
*/
|
|
20
20
|
label: string;
|
|
21
21
|
/**
|
|
22
|
-
* Element used as the icon that will be placed next to panel label.
|
|
22
|
+
* Element or path used as the icon that will be placed next to panel label.
|
|
23
23
|
*/
|
|
24
|
-
icon?: SVG;
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated URL of the icon that will be placed next to panel label.
|
|
27
|
-
*/
|
|
28
|
-
iconSrc?: string;
|
|
24
|
+
icon?: string | SVG;
|
|
29
25
|
/**
|
|
30
26
|
* Assistive text to be placed on the right side of the panel.
|
|
31
27
|
*/
|
|
@@ -46,6 +42,10 @@ export declare type AccordionPropsType = {
|
|
|
46
42
|
children: React.ReactNode;
|
|
47
43
|
};
|
|
48
44
|
declare type Props = {
|
|
45
|
+
/**
|
|
46
|
+
* Initially active accordion, only when it is uncontrolled.
|
|
47
|
+
*/
|
|
48
|
+
defaultIndexActive?: number;
|
|
49
49
|
/**
|
|
50
50
|
* The index of the active accordion. If undefined, the component will be uncontrolled and the active accordion will be managed internally by the component.
|
|
51
51
|
* If null, the component will be controlled and all accordions will be closed.
|
package/alert/Alert.js
CHANGED
|
@@ -23,6 +23,8 @@ var _utils = require("../common/utils.js");
|
|
|
23
23
|
|
|
24
24
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
25
|
|
|
26
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
+
|
|
26
28
|
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
27
29
|
|
|
28
30
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
@@ -109,9 +111,10 @@ var DxcAlert = function DxcAlert(_ref) {
|
|
|
109
111
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
110
112
|
tabIndex = _ref.tabIndex;
|
|
111
113
|
var colorsTheme = (0, _useTheme["default"])();
|
|
114
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
112
115
|
|
|
113
116
|
var getTypeText = function getTypeText() {
|
|
114
|
-
return type === "info" ?
|
|
117
|
+
return type === "info" ? translatedLabels.alert.infoTitleText : type === "confirm" ? translatedLabels.alert.successTitleText : type === "warning" ? translatedLabels.alert.warningTitleText : translatedLabels.alert.errorTitleText;
|
|
115
118
|
};
|
|
116
119
|
|
|
117
120
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
@@ -0,0 +1,92 @@
|
|
|
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 _Alert = _interopRequireDefault(require("./Alert"));
|
|
10
|
+
|
|
11
|
+
describe("Alert component tests", function () {
|
|
12
|
+
test("Info alert renders with correct text", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
14
|
+
type: "info",
|
|
15
|
+
inlineText: "info-alert-text"
|
|
16
|
+
})),
|
|
17
|
+
getByText = _render.getByText;
|
|
18
|
+
|
|
19
|
+
expect(getByText("information")).toBeTruthy();
|
|
20
|
+
expect(getByText("info-alert-text")).toBeTruthy();
|
|
21
|
+
});
|
|
22
|
+
test("Confirm alert renders with correct text", function () {
|
|
23
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
24
|
+
type: "confirm",
|
|
25
|
+
inlineText: "confirm-alert-text"
|
|
26
|
+
})),
|
|
27
|
+
getByText = _render2.getByText;
|
|
28
|
+
|
|
29
|
+
expect(getByText("success")).toBeTruthy();
|
|
30
|
+
expect(getByText("confirm-alert-text")).toBeTruthy();
|
|
31
|
+
});
|
|
32
|
+
test("Warning alert renders with correct text", function () {
|
|
33
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
34
|
+
type: "warning",
|
|
35
|
+
inlineText: "warning-alert-text"
|
|
36
|
+
})),
|
|
37
|
+
getByText = _render3.getByText;
|
|
38
|
+
|
|
39
|
+
expect(getByText("warning")).toBeTruthy();
|
|
40
|
+
expect(getByText("warning-alert-text")).toBeTruthy();
|
|
41
|
+
});
|
|
42
|
+
test("Error alert renders with correct text", function () {
|
|
43
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
44
|
+
type: "error",
|
|
45
|
+
inlineText: "error-alert-text"
|
|
46
|
+
})),
|
|
47
|
+
getByText = _render4.getByText;
|
|
48
|
+
|
|
49
|
+
expect(getByText("error")).toBeTruthy();
|
|
50
|
+
expect(getByText("error-alert-text")).toBeTruthy();
|
|
51
|
+
});
|
|
52
|
+
test("Alert renders with correct children", function () {
|
|
53
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
54
|
+
inlineText: "alert-text"
|
|
55
|
+
}, /*#__PURE__*/_react["default"].createElement("p", null, "sample-children"))),
|
|
56
|
+
getByText = _render5.getByText;
|
|
57
|
+
|
|
58
|
+
expect(getByText("alert-text")).toBeTruthy();
|
|
59
|
+
expect(getByText("sample-children")).toBeTruthy();
|
|
60
|
+
});
|
|
61
|
+
test("Calls correct function on close", function () {
|
|
62
|
+
var onClose = jest.fn();
|
|
63
|
+
|
|
64
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
65
|
+
onClose: onClose,
|
|
66
|
+
inlineText: "info-alert-text"
|
|
67
|
+
})),
|
|
68
|
+
getByRole = _render6.getByRole;
|
|
69
|
+
|
|
70
|
+
var closeButton = getByRole("button");
|
|
71
|
+
|
|
72
|
+
_react2.fireEvent.click(closeButton);
|
|
73
|
+
|
|
74
|
+
expect(onClose).toHaveBeenCalled();
|
|
75
|
+
});
|
|
76
|
+
test("Modal alert calls correct function on close", function () {
|
|
77
|
+
var onClose = jest.fn();
|
|
78
|
+
|
|
79
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
|
|
80
|
+
onClose: onClose,
|
|
81
|
+
mode: "modal",
|
|
82
|
+
inlineText: "info-alert-text"
|
|
83
|
+
})),
|
|
84
|
+
getByRole = _render7.getByRole;
|
|
85
|
+
|
|
86
|
+
var closeButton = getByRole("button");
|
|
87
|
+
|
|
88
|
+
_react2.fireEvent.click(closeButton);
|
|
89
|
+
|
|
90
|
+
expect(onClose).toHaveBeenCalled();
|
|
91
|
+
});
|
|
92
|
+
});
|
package/badge/Badge.d.ts
ADDED
package/badge/Badge.js
CHANGED
|
@@ -24,17 +24,19 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
24
24
|
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; }
|
|
25
25
|
|
|
26
26
|
var DxcBadge = function DxcBadge(_ref) {
|
|
27
|
-
var notificationText = _ref.notificationText
|
|
27
|
+
var notificationText = _ref.notificationText,
|
|
28
|
+
disabled = _ref.disabled;
|
|
28
29
|
var colorsTheme = (0, _useTheme["default"])();
|
|
29
30
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
30
31
|
theme: colorsTheme.tabs
|
|
31
32
|
}, /*#__PURE__*/_react["default"].createElement(StyledDxcBadge, {
|
|
32
|
-
notificationText: notificationText
|
|
33
|
+
notificationText: notificationText,
|
|
34
|
+
disabled: disabled
|
|
33
35
|
}, /*#__PURE__*/_react["default"].createElement("span", null, notificationText)));
|
|
34
36
|
};
|
|
35
37
|
|
|
36
38
|
var StyledDxcBadge = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n width: ", ";\n height: ", ";\n border-radius: ", ";\n display: flex;\n padding-bottom: 1px;\n padding-right: 1px;\n flex-wrap: wrap;\n box-sizing: border-box;\n align-items: center;\n line-height: 1;\n align-content: center;\n flex-direction: row;\n justify-content: center;\n"])), function (props) {
|
|
37
|
-
return props.theme.badgeBackgroundColor;
|
|
39
|
+
return props.disabled ? props.theme.disabledBadgeBackgroundColor : props.theme.badgeBackgroundColor;
|
|
38
40
|
}, function (props) {
|
|
39
41
|
return props.theme.badgeFontFamily;
|
|
40
42
|
}, function (props) {
|
package/badge/types.d.ts
ADDED
package/{radio → badge}/types.js
RENAMED
|
File without changes
|