@dxc-technology/halstack-react 10.1.0 → 12.0.0
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 +4 -21
- package/HalstackContext.d.ts +45 -143
- package/HalstackContext.js +10 -35
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +33 -84
- package/accordion/Accordion.stories.tsx +8 -64
- package/accordion/Accordion.test.js +18 -33
- package/accordion/types.d.ts +6 -6
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -3
- package/accordion-group/AccordionGroup.js +17 -44
- package/accordion-group/AccordionGroup.stories.tsx +24 -24
- package/accordion-group/AccordionGroup.test.js +42 -60
- package/accordion-group/AccordionGroupAccordion.js +11 -23
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +7 -7
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -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.accessibility.test.js +95 -0
- package/alert/Alert.js +34 -120
- package/alert/Alert.test.js +28 -45
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/types.d.ts +2 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.js +11 -33
- package/box/Box.test.js +1 -6
- package/box/types.d.ts +3 -3
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +169 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/breadcrumbs/types.js +5 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +22 -55
- package/bulleted-list/BulletedList.stories.tsx +2 -93
- package/bulleted-list/types.d.ts +5 -5
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.js +36 -59
- package/button/Button.stories.tsx +35 -135
- package/button/Button.test.js +13 -21
- package/button/types.d.ts +5 -5
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.js +23 -45
- package/card/Card.test.js +10 -21
- package/card/types.d.ts +5 -5
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +88 -123
- package/checkbox/Checkbox.stories.tsx +16 -54
- package/checkbox/Checkbox.test.js +107 -63
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +22 -36
- package/chip/Chip.stories.tsx +10 -25
- package/chip/Chip.test.js +17 -30
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.d.ts +105 -14
- package/common/coreTokens.js +40 -23
- package/common/utils.js +2 -8
- package/common/variables.d.ts +46 -144
- package/common/variables.js +120 -225
- 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/container/types.js +5 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +51 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/contextual-menu/types.js +5 -0
- package/date-input/Calendar.js +13 -57
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +53 -100
- package/date-input/DateInput.stories.tsx +19 -31
- package/date-input/DateInput.test.js +674 -701
- package/date-input/DatePicker.js +23 -48
- package/date-input/YearPicker.js +8 -34
- package/date-input/types.d.ts +28 -22
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.js +21 -59
- package/dialog/Dialog.stories.tsx +176 -0
- package/dialog/Dialog.test.js +126 -188
- package/dialog/types.d.ts +18 -13
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/divider/types.js +5 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.js +63 -130
- package/dropdown/Dropdown.stories.tsx +15 -26
- package/dropdown/Dropdown.test.js +402 -389
- package/dropdown/DropdownMenu.js +12 -23
- package/dropdown/DropdownMenuItem.js +13 -21
- package/dropdown/types.d.ts +20 -24
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.js +180 -284
- package/file-input/FileInput.stories.tsx +1 -1
- package/file-input/FileInput.test.js +279 -354
- package/file-input/FileItem.js +29 -66
- package/file-input/types.d.ts +9 -9
- package/flex/Flex.js +25 -39
- package/flex/types.d.ts +6 -6
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +43 -68
- package/footer/Footer.stories.tsx +58 -2
- package/footer/Footer.test.js +18 -32
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +53 -22
- package/footer/types.d.ts +17 -17
- package/grid/Grid.js +1 -16
- package/grid/types.d.ts +10 -10
- package/header/Header.accessibility.test.js +93 -0
- package/header/Header.d.ts +1 -1
- package/header/Header.js +38 -104
- package/header/Header.stories.tsx +16 -0
- package/header/Header.test.js +12 -25
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +3 -13
- package/header/types.d.ts +7 -8
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +9 -31
- package/heading/Heading.test.js +70 -87
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +2 -2
- package/image/Image.js +17 -32
- package/image/Image.stories.tsx +3 -1
- package/image/types.d.ts +2 -2
- package/inset/Inset.js +13 -21
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +2 -2
- package/layout/ApplicationLayout.js +23 -60
- package/layout/Icons.d.ts +4 -5
- package/layout/Icons.js +2 -16
- package/layout/types.d.ts +3 -3
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +28 -47
- package/link/Link.stories.tsx +4 -4
- package/link/Link.test.js +23 -41
- package/link/types.d.ts +14 -14
- package/main.d.ts +8 -4
- package/main.js +39 -60
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +1 -2
- package/nav-tabs/NavTabs.js +19 -48
- package/nav-tabs/NavTabs.stories.tsx +30 -25
- package/nav-tabs/NavTabs.test.js +45 -50
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +38 -67
- package/nav-tabs/types.d.ts +10 -10
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.d.ts +0 -7
- package/number-input/NumberInput.js +47 -39
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +839 -575
- package/number-input/NumberInputContext.d.ts +3 -0
- package/number-input/NumberInputContext.js +8 -0
- package/number-input/types.d.ts +17 -5
- package/package.json +41 -37
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +27 -52
- package/paginator/Paginator.test.js +224 -207
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.js +3 -19
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +32 -54
- package/password-input/PasswordInput.stories.tsx +1 -34
- package/password-input/PasswordInput.test.js +153 -129
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +26 -56
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
- package/progress-bar/ProgressBar.test.js +35 -52
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +1 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +22 -54
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +38 -83
- package/radio-group/RadioGroup.stories.tsx +10 -10
- package/radio-group/RadioGroup.test.js +504 -470
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.js +45 -69
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +118 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +148 -92
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.js +40 -54
- package/select/Option.js +28 -36
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +107 -171
- package/select/Select.stories.tsx +59 -111
- package/select/Select.test.js +1895 -1858
- package/select/types.d.ts +15 -16
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.js +44 -81
- package/sidenav/Sidenav.stories.tsx +4 -9
- package/sidenav/Sidenav.test.js +3 -10
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +20 -20
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.js +70 -126
- package/slider/Slider.test.js +107 -103
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +21 -55
- package/spinner/Spinner.test.js +25 -34
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.accessibility.test.js +157 -0
- 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.accessibility.test.js +98 -0
- package/switch/Switch.js +49 -97
- package/switch/Switch.stories.tsx +12 -34
- package/switch/Switch.test.js +51 -96
- package/switch/types.d.ts +4 -4
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +76 -33
- package/table/{Table.stories.jsx → Table.stories.tsx} +309 -2
- package/table/Table.test.js +93 -6
- package/table/types.d.ts +34 -6
- package/tabs/Tab.js +22 -37
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +59 -147
- package/tabs/Tabs.stories.tsx +8 -4
- package/tabs/Tabs.test.js +57 -131
- package/tabs/types.d.ts +21 -21
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +27 -57
- package/tag/Tag.stories.tsx +4 -7
- package/tag/Tag.test.js +17 -36
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +9 -26
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +30 -70
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +203 -289
- package/text-input/TextInput.stories.tsx +65 -160
- package/text-input/TextInput.test.js +1227 -1194
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +68 -109
- package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
- package/textarea/Textarea.test.js +150 -179
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.js +25 -64
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +48 -81
- package/toggle-group/types.d.ts +12 -12
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.js +4 -13
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +43 -141
- package/useTheme.js +1 -8
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +2 -2
- package/utils/BaseTypography.js +16 -30
- package/utils/FocusLock.js +25 -39
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +27 -73
- package/wizard/Wizard.stories.tsx +19 -0
- package/wizard/Wizard.test.js +53 -80
- package/wizard/types.d.ts +8 -8
- package/common/OpenSans.css +0 -69
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/date-input/Icons.d.ts +0 -6
- package/date-input/Icons.js +0 -75
- package/paginator/Icons.d.ts +0 -5
- package/paginator/Icons.js +0 -54
- package/password-input/Icons.d.ts +0 -6
- package/password-input/Icons.js +0 -39
- package/resultsetTable/Icons.d.ts +0 -7
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/sidenav/Icons.d.ts +0 -7
- package/sidenav/Icons.js +0 -51
- package/slider/Slider.stories.tsx +0 -240
- package/text-input/Icons.d.ts +0 -8
- package/text-input/Icons.js +0 -60
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
|
@@ -1,43 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
5
6
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
7
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
8
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
|
-
|
|
11
9
|
var _Textarea = _interopRequireDefault(require("./Textarea.tsx"));
|
|
12
|
-
|
|
13
10
|
describe("Textarea component tests", function () {
|
|
14
11
|
test("Renders with correct label", function () {
|
|
15
12
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
label: "Example label"
|
|
14
|
+
})),
|
|
15
|
+
getByText = _render.getByText;
|
|
20
16
|
expect(getByText("Example label")).toBeTruthy();
|
|
21
17
|
});
|
|
22
18
|
test("Renders with correct label and helper text", function () {
|
|
23
19
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
label: "Example label",
|
|
21
|
+
helperText: "Example helper text"
|
|
22
|
+
})),
|
|
23
|
+
getByText = _render2.getByText;
|
|
29
24
|
expect(getByText("Example label")).toBeTruthy();
|
|
30
25
|
expect(getByText("Example helper text")).toBeTruthy();
|
|
31
26
|
});
|
|
32
27
|
test("Renders with correct label and optional", function () {
|
|
33
28
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
label: "Example label",
|
|
30
|
+
helperText: "Example helper text",
|
|
31
|
+
optional: true
|
|
32
|
+
})),
|
|
33
|
+
getByText = _render3.getByText,
|
|
34
|
+
getByRole = _render3.getByRole;
|
|
41
35
|
var textarea = getByRole("textbox");
|
|
42
36
|
expect(getByText("Example label")).toBeTruthy();
|
|
43
37
|
expect(getByText("(Optional)")).toBeTruthy();
|
|
@@ -46,21 +40,19 @@ describe("Textarea component tests", function () {
|
|
|
46
40
|
});
|
|
47
41
|
test("Renders with correct placeholder", function () {
|
|
48
42
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
43
|
+
placeholder: "Placeholder"
|
|
44
|
+
})),
|
|
45
|
+
getByRole = _render4.getByRole;
|
|
53
46
|
var textarea = getByRole("textbox");
|
|
54
47
|
expect(textarea.getAttribute("placeholder")).toBe("Placeholder");
|
|
55
48
|
});
|
|
56
49
|
test("Renders with error message and correct aria attributes", function () {
|
|
57
50
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
51
|
+
label: "Example label",
|
|
52
|
+
error: "Error message."
|
|
53
|
+
})),
|
|
54
|
+
getByText = _render5.getByText,
|
|
55
|
+
getByLabelText = _render5.getByLabelText;
|
|
64
56
|
var textarea = getByLabelText("Example label");
|
|
65
57
|
var errorMessage = getByText("Error message.");
|
|
66
58
|
expect(errorMessage).toBeTruthy();
|
|
@@ -70,20 +62,18 @@ describe("Textarea component tests", function () {
|
|
|
70
62
|
});
|
|
71
63
|
test("Renders with correct default rows", function () {
|
|
72
64
|
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
65
|
+
label: "Example label",
|
|
66
|
+
rows: 10
|
|
67
|
+
})),
|
|
68
|
+
getByLabelText = _render6.getByLabelText;
|
|
78
69
|
var textarea = getByLabelText("Example label");
|
|
79
70
|
expect(textarea.rows).toBe(10);
|
|
80
71
|
});
|
|
81
|
-
test("Renders with correct
|
|
72
|
+
test("Renders with correct accessibility attributes", function () {
|
|
82
73
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
74
|
+
label: "Example label"
|
|
75
|
+
})),
|
|
76
|
+
getByLabelText = _render7.getByLabelText;
|
|
87
77
|
var textarea = getByLabelText("Example label");
|
|
88
78
|
expect(textarea.getAttribute("aria-invalid")).toBe("false");
|
|
89
79
|
expect(textarea.getAttribute("aria-describedBy")).toBeNull();
|
|
@@ -91,63 +81,96 @@ describe("Textarea component tests", function () {
|
|
|
91
81
|
});
|
|
92
82
|
test("Renders with correct initial value", function () {
|
|
93
83
|
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
84
|
+
label: "Example label",
|
|
85
|
+
placeholder: "Placeholder",
|
|
86
|
+
defaultValue: "Example text"
|
|
87
|
+
})),
|
|
88
|
+
getByLabelText = _render8.getByLabelText;
|
|
100
89
|
var textarea = getByLabelText("Example label");
|
|
101
90
|
expect(textarea.value).toBe("Example text");
|
|
102
91
|
});
|
|
103
92
|
test("Disabled textarea can not be modified", function () {
|
|
104
93
|
var onChange = jest.fn();
|
|
105
|
-
|
|
106
94
|
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
95
|
+
label: "Example label",
|
|
96
|
+
onChange: onChange,
|
|
97
|
+
disabled: true
|
|
98
|
+
})),
|
|
99
|
+
getByLabelText = _render9.getByLabelText;
|
|
100
|
+
var textarea = getByLabelText("Example label");
|
|
101
|
+
_userEvent["default"].type(textarea, "Test");
|
|
102
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
103
|
+
});
|
|
104
|
+
test("Read-only textarea does not trigger onChange function", function () {
|
|
105
|
+
var onChange = jest.fn();
|
|
106
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
107
|
+
label: "Example label",
|
|
108
|
+
onChange: onChange,
|
|
109
|
+
readOnly: true
|
|
110
|
+
})),
|
|
111
|
+
getByLabelText = _render10.getByLabelText;
|
|
113
112
|
var textarea = getByLabelText("Example label");
|
|
114
|
-
|
|
115
113
|
_userEvent["default"].type(textarea, "Test");
|
|
116
|
-
|
|
117
114
|
expect(onChange).not.toHaveBeenCalled();
|
|
118
115
|
});
|
|
116
|
+
test("Read-only textarea sends its value on submit", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
117
|
+
var handlerOnSubmit, _render11, getByText, submit;
|
|
118
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
119
|
+
while (1) switch (_context.prev = _context.next) {
|
|
120
|
+
case 0:
|
|
121
|
+
handlerOnSubmit = jest.fn(function (e) {
|
|
122
|
+
e.preventDefault();
|
|
123
|
+
var formData = new FormData(e.target);
|
|
124
|
+
var formProps = Object.fromEntries(formData);
|
|
125
|
+
expect(formProps).toStrictEqual({
|
|
126
|
+
data: "Comments"
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
_render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
|
|
130
|
+
onSubmit: handlerOnSubmit
|
|
131
|
+
}, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
132
|
+
label: "Example label",
|
|
133
|
+
name: "data",
|
|
134
|
+
defaultValue: "Comments",
|
|
135
|
+
readOnly: true
|
|
136
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
137
|
+
type: "submit"
|
|
138
|
+
}, "Submit"))), getByText = _render11.getByText;
|
|
139
|
+
submit = getByText("Submit");
|
|
140
|
+
_context.next = 5;
|
|
141
|
+
return _userEvent["default"].click(submit);
|
|
142
|
+
case 5:
|
|
143
|
+
expect(handlerOnSubmit).toHaveBeenCalled();
|
|
144
|
+
case 6:
|
|
145
|
+
case "end":
|
|
146
|
+
return _context.stop();
|
|
147
|
+
}
|
|
148
|
+
}, _callee);
|
|
149
|
+
})));
|
|
119
150
|
test("Not optional constraint (onBlur)", function () {
|
|
120
151
|
var onChange = jest.fn();
|
|
121
152
|
var onBlur = jest.fn();
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
getByLabelText = _render10.getByLabelText;
|
|
130
|
-
|
|
153
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
154
|
+
label: "Example label",
|
|
155
|
+
placeholder: "Placeholder",
|
|
156
|
+
onChange: onChange,
|
|
157
|
+
onBlur: onBlur
|
|
158
|
+
})),
|
|
159
|
+
getByLabelText = _render12.getByLabelText;
|
|
131
160
|
var textarea = getByLabelText("Example label");
|
|
132
|
-
|
|
133
161
|
_react2.fireEvent.focus(textarea);
|
|
134
|
-
|
|
135
162
|
_react2.fireEvent.blur(textarea);
|
|
136
|
-
|
|
137
163
|
expect(onBlur).toHaveBeenCalled();
|
|
138
164
|
expect(onBlur).toHaveBeenCalledWith({
|
|
139
165
|
value: "",
|
|
140
166
|
error: "This field is required. Please, enter a value."
|
|
141
167
|
});
|
|
142
|
-
|
|
143
168
|
_react2.fireEvent.change(textarea, {
|
|
144
169
|
target: {
|
|
145
170
|
value: "Test"
|
|
146
171
|
}
|
|
147
172
|
});
|
|
148
|
-
|
|
149
173
|
_react2.fireEvent.blur(textarea);
|
|
150
|
-
|
|
151
174
|
expect(onBlur).toHaveBeenCalled();
|
|
152
175
|
expect(onBlur).toHaveBeenCalledWith({
|
|
153
176
|
value: "Test"
|
|
@@ -155,31 +178,24 @@ describe("Textarea component tests", function () {
|
|
|
155
178
|
});
|
|
156
179
|
test("Not optional constraint (onChange)", function () {
|
|
157
180
|
var onChange = jest.fn();
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
getByLabelText = _render11.getByLabelText;
|
|
165
|
-
|
|
181
|
+
var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
182
|
+
label: "Example label",
|
|
183
|
+
placeholder: "Placeholder",
|
|
184
|
+
onChange: onChange
|
|
185
|
+
})),
|
|
186
|
+
getByLabelText = _render13.getByLabelText;
|
|
166
187
|
var textarea = getByLabelText("Example label");
|
|
167
|
-
|
|
168
188
|
_react2.fireEvent.focus(textarea);
|
|
169
|
-
|
|
170
189
|
_react2.fireEvent.change(textarea, {
|
|
171
190
|
target: {
|
|
172
191
|
value: "Test"
|
|
173
192
|
}
|
|
174
193
|
});
|
|
175
|
-
|
|
176
194
|
expect(onChange).toHaveBeenCalled();
|
|
177
195
|
expect(onChange).toHaveBeenCalledWith({
|
|
178
196
|
value: "Test"
|
|
179
197
|
});
|
|
180
|
-
|
|
181
198
|
_userEvent["default"].clear(textarea);
|
|
182
|
-
|
|
183
199
|
expect(onChange).toHaveBeenCalled();
|
|
184
200
|
expect(onChange).toHaveBeenCalledWith({
|
|
185
201
|
value: "",
|
|
@@ -189,57 +205,46 @@ describe("Textarea component tests", function () {
|
|
|
189
205
|
test("Pattern constraint", function () {
|
|
190
206
|
var onChange = jest.fn();
|
|
191
207
|
var onBlur = jest.fn();
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
getByLabelText = _render12.getByLabelText;
|
|
205
|
-
|
|
208
|
+
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
209
|
+
label: "Example label",
|
|
210
|
+
placeholder: "Placeholder",
|
|
211
|
+
onChange: onChange,
|
|
212
|
+
onBlur: onBlur,
|
|
213
|
+
margin: {
|
|
214
|
+
left: "medium",
|
|
215
|
+
right: "medium"
|
|
216
|
+
},
|
|
217
|
+
pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$"
|
|
218
|
+
})),
|
|
219
|
+
getByLabelText = _render14.getByLabelText;
|
|
206
220
|
var textarea = getByLabelText("Example label");
|
|
207
|
-
|
|
208
221
|
_react2.fireEvent.change(textarea, {
|
|
209
222
|
target: {
|
|
210
223
|
value: "pattern test"
|
|
211
224
|
}
|
|
212
225
|
});
|
|
213
|
-
|
|
214
226
|
expect(onChange).toHaveBeenCalled();
|
|
215
227
|
expect(onChange).toHaveBeenCalledWith({
|
|
216
228
|
value: "pattern test",
|
|
217
229
|
error: "Please match the format requested."
|
|
218
230
|
});
|
|
219
|
-
|
|
220
231
|
_react2.fireEvent.blur(textarea);
|
|
221
|
-
|
|
222
232
|
expect(onBlur).toHaveBeenCalled();
|
|
223
233
|
expect(onBlur).toHaveBeenCalledWith({
|
|
224
234
|
value: "pattern test",
|
|
225
235
|
error: "Please match the format requested."
|
|
226
236
|
});
|
|
227
|
-
|
|
228
237
|
_userEvent["default"].clear(textarea);
|
|
229
|
-
|
|
230
238
|
_react2.fireEvent.change(textarea, {
|
|
231
239
|
target: {
|
|
232
240
|
value: "pattern4&"
|
|
233
241
|
}
|
|
234
242
|
});
|
|
235
|
-
|
|
236
243
|
expect(onChange).toHaveBeenCalled();
|
|
237
244
|
expect(onChange).toHaveBeenCalledWith({
|
|
238
245
|
value: "pattern4&"
|
|
239
246
|
});
|
|
240
|
-
|
|
241
247
|
_react2.fireEvent.blur(textarea);
|
|
242
|
-
|
|
243
248
|
expect(onBlur).toHaveBeenCalled();
|
|
244
249
|
expect(onBlur).toHaveBeenCalledWith({
|
|
245
250
|
value: "pattern4&"
|
|
@@ -248,58 +253,47 @@ describe("Textarea component tests", function () {
|
|
|
248
253
|
test("Length constraint", function () {
|
|
249
254
|
var onChange = jest.fn();
|
|
250
255
|
var onBlur = jest.fn();
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
getByLabelText = _render13.getByLabelText;
|
|
265
|
-
|
|
256
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
257
|
+
label: "Example label",
|
|
258
|
+
placeholder: "Placeholder",
|
|
259
|
+
onChange: onChange,
|
|
260
|
+
onBlur: onBlur,
|
|
261
|
+
margin: {
|
|
262
|
+
left: "medium",
|
|
263
|
+
right: "medium"
|
|
264
|
+
},
|
|
265
|
+
minLength: 5,
|
|
266
|
+
maxLength: 10
|
|
267
|
+
})),
|
|
268
|
+
getByLabelText = _render15.getByLabelText;
|
|
266
269
|
var textarea = getByLabelText("Example label");
|
|
267
|
-
|
|
268
270
|
_react2.fireEvent.change(textarea, {
|
|
269
271
|
target: {
|
|
270
272
|
value: "test"
|
|
271
273
|
}
|
|
272
274
|
});
|
|
273
|
-
|
|
274
275
|
expect(onChange).toHaveBeenCalled();
|
|
275
276
|
expect(onChange).toHaveBeenCalledWith({
|
|
276
277
|
value: "test",
|
|
277
278
|
error: "Min length 5, max length 10."
|
|
278
279
|
});
|
|
279
|
-
|
|
280
280
|
_react2.fireEvent.blur(textarea);
|
|
281
|
-
|
|
282
281
|
expect(onBlur).toHaveBeenCalled();
|
|
283
282
|
expect(onBlur).toHaveBeenCalledWith({
|
|
284
283
|
value: "test",
|
|
285
284
|
error: "Min length 5, max length 10."
|
|
286
285
|
});
|
|
287
|
-
|
|
288
286
|
_userEvent["default"].clear(textarea);
|
|
289
|
-
|
|
290
287
|
_react2.fireEvent.change(textarea, {
|
|
291
288
|
target: {
|
|
292
289
|
value: "length"
|
|
293
290
|
}
|
|
294
291
|
});
|
|
295
|
-
|
|
296
292
|
expect(onChange).toHaveBeenCalled();
|
|
297
293
|
expect(onChange).toHaveBeenCalledWith({
|
|
298
294
|
value: "length"
|
|
299
295
|
});
|
|
300
|
-
|
|
301
296
|
_react2.fireEvent.blur(textarea);
|
|
302
|
-
|
|
303
297
|
expect(onBlur).toHaveBeenCalled();
|
|
304
298
|
expect(onBlur).toHaveBeenCalledWith({
|
|
305
299
|
value: "length"
|
|
@@ -308,77 +302,63 @@ describe("Textarea component tests", function () {
|
|
|
308
302
|
test("Pattern and length constraints", function () {
|
|
309
303
|
var onChange = jest.fn();
|
|
310
304
|
var onBlur = jest.fn();
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
getByLabelText = _render14.getByLabelText;
|
|
326
|
-
|
|
305
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
306
|
+
label: "Example label",
|
|
307
|
+
placeholder: "Placeholder",
|
|
308
|
+
onChange: onChange,
|
|
309
|
+
onBlur: onBlur,
|
|
310
|
+
margin: {
|
|
311
|
+
left: "medium",
|
|
312
|
+
right: "medium"
|
|
313
|
+
},
|
|
314
|
+
pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$",
|
|
315
|
+
minLength: 5,
|
|
316
|
+
maxLength: 10
|
|
317
|
+
})),
|
|
318
|
+
getByLabelText = _render16.getByLabelText;
|
|
327
319
|
var textarea = getByLabelText("Example label");
|
|
328
|
-
|
|
329
320
|
_react2.fireEvent.change(textarea, {
|
|
330
321
|
target: {
|
|
331
322
|
value: "test"
|
|
332
323
|
}
|
|
333
324
|
});
|
|
334
|
-
|
|
335
325
|
expect(onChange).toHaveBeenCalled();
|
|
336
326
|
expect(onChange).toHaveBeenCalledWith({
|
|
337
327
|
value: "test",
|
|
338
328
|
error: "Min length 5, max length 10."
|
|
339
329
|
});
|
|
340
|
-
|
|
341
330
|
_react2.fireEvent.blur(textarea);
|
|
342
|
-
|
|
343
331
|
expect(onBlur).toHaveBeenCalled();
|
|
344
332
|
expect(onBlur).toHaveBeenCalledWith({
|
|
345
333
|
value: "test",
|
|
346
334
|
error: "Min length 5, max length 10."
|
|
347
335
|
});
|
|
348
|
-
|
|
349
336
|
_react2.fireEvent.change(textarea, {
|
|
350
337
|
target: {
|
|
351
338
|
value: "tests"
|
|
352
339
|
}
|
|
353
340
|
});
|
|
354
|
-
|
|
355
341
|
expect(onChange).toHaveBeenCalled();
|
|
356
342
|
expect(onChange).toHaveBeenCalledWith({
|
|
357
343
|
value: "tests",
|
|
358
344
|
error: "Please match the format requested."
|
|
359
345
|
});
|
|
360
|
-
|
|
361
346
|
_react2.fireEvent.blur(textarea);
|
|
362
|
-
|
|
363
347
|
expect(onBlur).toHaveBeenCalled();
|
|
364
348
|
expect(onBlur).toHaveBeenCalledWith({
|
|
365
349
|
value: "tests",
|
|
366
350
|
error: "Please match the format requested."
|
|
367
351
|
});
|
|
368
|
-
|
|
369
352
|
_react2.fireEvent.change(textarea, {
|
|
370
353
|
target: {
|
|
371
354
|
value: "tests4&"
|
|
372
355
|
}
|
|
373
356
|
});
|
|
374
|
-
|
|
375
357
|
expect(onChange).toHaveBeenCalled();
|
|
376
358
|
expect(onChange).toHaveBeenCalledWith({
|
|
377
359
|
value: "tests4&"
|
|
378
360
|
});
|
|
379
|
-
|
|
380
361
|
_react2.fireEvent.blur(textarea);
|
|
381
|
-
|
|
382
362
|
expect(onBlur).toHaveBeenCalled();
|
|
383
363
|
expect(onBlur).toHaveBeenCalledWith({
|
|
384
364
|
value: "tests4&"
|
|
@@ -386,23 +366,18 @@ describe("Textarea component tests", function () {
|
|
|
386
366
|
});
|
|
387
367
|
test("onBlur function is called correctly", function () {
|
|
388
368
|
var onBlur = jest.fn();
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
getByLabelText = _render15.getByLabelText;
|
|
395
|
-
|
|
369
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
370
|
+
label: "Example label",
|
|
371
|
+
onBlur: onBlur
|
|
372
|
+
})),
|
|
373
|
+
getByLabelText = _render17.getByLabelText;
|
|
396
374
|
var textarea = getByLabelText("Example label");
|
|
397
|
-
|
|
398
375
|
_react2.fireEvent.change(textarea, {
|
|
399
376
|
target: {
|
|
400
377
|
value: "Blur test"
|
|
401
378
|
}
|
|
402
379
|
});
|
|
403
|
-
|
|
404
380
|
_react2.fireEvent.blur(textarea);
|
|
405
|
-
|
|
406
381
|
expect(onBlur).toHaveBeenCalled();
|
|
407
382
|
expect(onBlur).toHaveBeenCalledWith({
|
|
408
383
|
value: "Blur test"
|
|
@@ -410,22 +385,18 @@ describe("Textarea component tests", function () {
|
|
|
410
385
|
});
|
|
411
386
|
test("onChange function is called correctly", function () {
|
|
412
387
|
var onChange = jest.fn();
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
getByLabelText = _render16.getByLabelText;
|
|
420
|
-
|
|
388
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
389
|
+
label: "Example label",
|
|
390
|
+
value: "Test value",
|
|
391
|
+
onChange: onChange
|
|
392
|
+
})),
|
|
393
|
+
getByLabelText = _render18.getByLabelText;
|
|
421
394
|
var textarea = getByLabelText("Example label");
|
|
422
|
-
|
|
423
395
|
_react2.fireEvent.change(textarea, {
|
|
424
396
|
target: {
|
|
425
397
|
value: "Controlled test"
|
|
426
398
|
}
|
|
427
399
|
});
|
|
428
|
-
|
|
429
400
|
expect(onChange).toHaveBeenCalled();
|
|
430
401
|
expect(onChange).toHaveBeenCalledWith({
|
|
431
402
|
value: "Controlled test"
|
package/textarea/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
type Props = {
|
|
9
9
|
/**
|
|
10
10
|
* Text to be placed above the textarea.
|
|
11
11
|
*/
|
|
@@ -34,6 +34,10 @@ declare type Props = {
|
|
|
34
34
|
* If true, the component will be disabled.
|
|
35
35
|
*/
|
|
36
36
|
disabled?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* If true, the component will not be mutable, meaning the user can not edit the control.
|
|
39
|
+
*/
|
|
40
|
+
readOnly?: boolean;
|
|
37
41
|
/**
|
|
38
42
|
* If true, the textarea will be optional, showing '(Optional)'
|
|
39
43
|
* next to the label. Otherwise, the field will be considered required
|
|
@@ -92,7 +96,7 @@ declare type Props = {
|
|
|
92
96
|
*/
|
|
93
97
|
pattern?: string;
|
|
94
98
|
/**
|
|
95
|
-
* Specifies the
|
|
99
|
+
* Specifies the minimum length allowed by the textarea.
|
|
96
100
|
* This will be checked both when the textarea loses the
|
|
97
101
|
* focus and while typing within it. If the string entered does not
|
|
98
102
|
* comply the minimum length, the onBlur and onChange functions will be called
|
|
@@ -133,5 +137,5 @@ declare type Props = {
|
|
|
133
137
|
/**
|
|
134
138
|
* Reference to the component.
|
|
135
139
|
*/
|
|
136
|
-
export
|
|
140
|
+
export type RefType = HTMLDivElement;
|
|
137
141
|
export default Props;
|