@dxc-technology/halstack-react 0.0.0-d30020b → 0.0.0-d3624d0
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 +1246 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +105 -181
- package/accordion/Accordion.stories.tsx +83 -149
- package/accordion/Accordion.test.js +56 -0
- package/accordion/types.d.ts +10 -17
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +3 -3
- package/accordion-group/AccordionGroup.js +38 -107
- package/accordion-group/AccordionGroup.stories.tsx +95 -68
- package/accordion-group/AccordionGroup.test.js +98 -0
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +16 -17
- 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 +40 -127
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +75 -0
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +4 -0
- 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 +54 -0
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +26 -2
- package/box/Box.accessibility.test.js +33 -0
- 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 +13 -0
- package/box/types.d.ts +3 -14
- 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/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +92 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +63 -113
- package/button/Button.stories.tsx +151 -100
- package/button/Button.test.js +38 -0
- package/button/types.d.ts +12 -8
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +59 -102
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +39 -0
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +143 -181
- package/checkbox/Checkbox.stories.tsx +166 -136
- package/checkbox/Checkbox.test.js +199 -0
- package/checkbox/types.d.ts +18 -6
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +45 -80
- package/chip/Chip.stories.tsx +107 -27
- package/chip/Chip.test.js +41 -0
- package/chip/types.d.ts +4 -4
- 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 +1392 -0
- package/common/variables.js +1080 -1427
- 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/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/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +170 -306
- package/date-input/DateInput.stories.tsx +210 -56
- package/date-input/DateInput.test.js +808 -0
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +121 -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.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +56 -129
- package/dialog/Dialog.stories.tsx +326 -167
- package/dialog/Dialog.test.js +307 -0
- package/dialog/types.d.ts +18 -25
- 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.d.ts +1 -1
- package/dropdown/Dropdown.js +233 -307
- package/dropdown/Dropdown.stories.tsx +235 -57
- package/dropdown/Dropdown.test.js +599 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +71 -0
- package/dropdown/types.d.ts +35 -19
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +246 -393
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +382 -0
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +61 -120
- 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/flex/types.js +5 -0
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -191
- package/footer/Footer.stories.tsx +99 -21
- package/footer/Footer.test.js +85 -0
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +54 -23
- package/footer/types.d.ts +26 -27
- 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/grid/types.js +5 -0
- package/header/Header.accessibility.test.js +93 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +104 -218
- package/header/Header.stories.tsx +168 -63
- package/header/Header.test.js +66 -0
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +5 -15
- package/header/types.d.ts +7 -21
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +169 -0
- 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 +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -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 +88 -182
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +7 -0
- package/layout/Icons.js +41 -48
- package/layout/types.d.ts +19 -35
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.d.ts +3 -2
- package/link/Link.js +65 -101
- package/link/Link.stories.tsx +157 -55
- package/link/Link.test.js +63 -0
- package/link/types.d.ts +15 -31
- package/main.d.ts +19 -18
- package/main.js +84 -123
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/nav-tabs/NavTabs.js +93 -0
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/nav-tabs/NavTabs.test.js +77 -0
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +117 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +47 -44
- package/number-input/NumberInput.stories.tsx +44 -28
- package/number-input/NumberInput.test.js +989 -0
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +34 -15
- package/package.json +54 -53
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +46 -100
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +335 -0
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +58 -124
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +198 -0
- package/password-input/types.d.ts +21 -17
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +68 -92
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +93 -0
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- 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 +64 -80
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +102 -139
- package/radio-group/RadioGroup.stories.tsx +171 -36
- package/radio-group/RadioGroup.test.js +691 -183
- package/radio-group/types.d.ts +89 -11
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +171 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
- package/resultset-table/ResultsetTable.test.js +381 -0
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +155 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +89 -0
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +243 -504
- package/select/Select.stories.tsx +602 -255
- package/select/Select.test.js +2265 -0
- package/select/types.d.ts +65 -26
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +136 -71
- package/sidenav/Sidenav.stories.tsx +246 -151
- package/sidenav/Sidenav.test.js +37 -0
- package/sidenav/SidenavContext.d.ts +5 -0
- package/sidenav/SidenavContext.js +13 -0
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +149 -180
- package/slider/Slider.test.js +254 -0
- package/slider/types.d.ts +11 -3
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +34 -74
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +55 -0
- 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.d.ts +2 -2
- package/switch/Switch.js +149 -114
- package/switch/Switch.stories.tsx +56 -67
- package/switch/Switch.test.js +180 -0
- package/switch/types.d.ts +13 -5
- 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 +78 -35
- package/table/Table.stories.tsx +663 -0
- package/table/Table.test.js +113 -0
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +117 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +305 -145
- package/tabs/Tabs.stories.tsx +124 -14
- package/tabs/Tabs.test.js +276 -0
- package/tabs/types.d.ts +31 -17
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +42 -79
- package/tag/Tag.stories.tsx +24 -10
- package/tag/Tag.test.js +41 -0
- package/tag/types.d.ts +9 -9
- 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 +94 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +334 -557
- package/text-input/TextInput.stories.tsx +291 -273
- package/text-input/TextInput.test.js +1756 -0
- package/text-input/types.d.ts +70 -24
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +86 -135
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +406 -0
- package/textarea/types.d.ts +27 -16
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +94 -106
- package/toggle-group/ToggleGroup.stories.tsx +56 -11
- package/toggle-group/ToggleGroup.test.js +137 -0
- package/toggle-group/types.d.ts +36 -19
- package/typography/Typography.accessibility.test.js +339 -0
- 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 +1144 -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.accessibility.test.js +55 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +78 -120
- package/wizard/Wizard.stories.tsx +67 -19
- package/wizard/Wizard.test.js +114 -0
- package/wizard/types.d.ts +14 -10
- 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/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/RequiredComponent.js +0 -32
- 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/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 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- 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/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- 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/table/Table.stories.jsx +0 -277
- 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 -136
- 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/{list → action-icon}/types.js +0 -0
- /package/{radio → badge}/types.js +0 -0
- /package/{resultsetTable → breadcrumbs}/types.js +0 -0
- /package/{row → bulleted-list}/types.js +0 -0
- /package/{stack → container}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
9
|
+
var _Textarea = _interopRequireDefault(require("./Textarea.tsx"));
|
|
10
|
+
describe("Textarea component tests", function () {
|
|
11
|
+
test("Renders with correct label", function () {
|
|
12
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
13
|
+
label: "Example label"
|
|
14
|
+
})),
|
|
15
|
+
getByText = _render.getByText;
|
|
16
|
+
expect(getByText("Example label")).toBeTruthy();
|
|
17
|
+
});
|
|
18
|
+
test("Renders with correct label and helper text", function () {
|
|
19
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
20
|
+
label: "Example label",
|
|
21
|
+
helperText: "Example helper text"
|
|
22
|
+
})),
|
|
23
|
+
getByText = _render2.getByText;
|
|
24
|
+
expect(getByText("Example label")).toBeTruthy();
|
|
25
|
+
expect(getByText("Example helper text")).toBeTruthy();
|
|
26
|
+
});
|
|
27
|
+
test("Renders with correct label and optional", function () {
|
|
28
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
29
|
+
label: "Example label",
|
|
30
|
+
helperText: "Example helper text",
|
|
31
|
+
optional: true
|
|
32
|
+
})),
|
|
33
|
+
getByText = _render3.getByText,
|
|
34
|
+
getByRole = _render3.getByRole;
|
|
35
|
+
var textarea = getByRole("textbox");
|
|
36
|
+
expect(getByText("Example label")).toBeTruthy();
|
|
37
|
+
expect(getByText("(Optional)")).toBeTruthy();
|
|
38
|
+
expect(getByText("Example helper text")).toBeTruthy();
|
|
39
|
+
expect(textarea.getAttribute("aria-required")).toBe("false");
|
|
40
|
+
});
|
|
41
|
+
test("Renders with correct placeholder", function () {
|
|
42
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
43
|
+
placeholder: "Placeholder"
|
|
44
|
+
})),
|
|
45
|
+
getByRole = _render4.getByRole;
|
|
46
|
+
var textarea = getByRole("textbox");
|
|
47
|
+
expect(textarea.getAttribute("placeholder")).toBe("Placeholder");
|
|
48
|
+
});
|
|
49
|
+
test("Renders with error message and correct aria attributes", function () {
|
|
50
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
51
|
+
label: "Example label",
|
|
52
|
+
error: "Error message."
|
|
53
|
+
})),
|
|
54
|
+
getByText = _render5.getByText,
|
|
55
|
+
getByLabelText = _render5.getByLabelText;
|
|
56
|
+
var textarea = getByLabelText("Example label");
|
|
57
|
+
var errorMessage = getByText("Error message.");
|
|
58
|
+
expect(errorMessage).toBeTruthy();
|
|
59
|
+
expect(textarea.getAttribute("aria-errormessage")).toBe(errorMessage.id);
|
|
60
|
+
expect(textarea.getAttribute("aria-invalid")).toBe("true");
|
|
61
|
+
expect(errorMessage.getAttribute("aria-live")).toBe("assertive");
|
|
62
|
+
});
|
|
63
|
+
test("Renders with correct default rows", function () {
|
|
64
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
65
|
+
label: "Example label",
|
|
66
|
+
rows: 10
|
|
67
|
+
})),
|
|
68
|
+
getByLabelText = _render6.getByLabelText;
|
|
69
|
+
var textarea = getByLabelText("Example label");
|
|
70
|
+
expect(textarea.rows).toBe(10);
|
|
71
|
+
});
|
|
72
|
+
test("Renders with correct accessibility attributes", function () {
|
|
73
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
74
|
+
label: "Example label"
|
|
75
|
+
})),
|
|
76
|
+
getByLabelText = _render7.getByLabelText;
|
|
77
|
+
var textarea = getByLabelText("Example label");
|
|
78
|
+
expect(textarea.getAttribute("aria-invalid")).toBe("false");
|
|
79
|
+
expect(textarea.getAttribute("aria-describedBy")).toBeNull();
|
|
80
|
+
expect(textarea.getAttribute("aria-required")).toBe("true");
|
|
81
|
+
});
|
|
82
|
+
test("Renders with correct initial value", function () {
|
|
83
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
84
|
+
label: "Example label",
|
|
85
|
+
placeholder: "Placeholder",
|
|
86
|
+
defaultValue: "Example text"
|
|
87
|
+
})),
|
|
88
|
+
getByLabelText = _render8.getByLabelText;
|
|
89
|
+
var textarea = getByLabelText("Example label");
|
|
90
|
+
expect(textarea.value).toBe("Example text");
|
|
91
|
+
});
|
|
92
|
+
test("Disabled textarea can not be modified", function () {
|
|
93
|
+
var onChange = jest.fn();
|
|
94
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
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;
|
|
112
|
+
var textarea = getByLabelText("Example label");
|
|
113
|
+
_userEvent["default"].type(textarea, "Test");
|
|
114
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
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
|
+
})));
|
|
150
|
+
test("Not optional constraint (onBlur)", function () {
|
|
151
|
+
var onChange = jest.fn();
|
|
152
|
+
var onBlur = jest.fn();
|
|
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;
|
|
160
|
+
var textarea = getByLabelText("Example label");
|
|
161
|
+
_react2.fireEvent.focus(textarea);
|
|
162
|
+
_react2.fireEvent.blur(textarea);
|
|
163
|
+
expect(onBlur).toHaveBeenCalled();
|
|
164
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
165
|
+
value: "",
|
|
166
|
+
error: "This field is required. Please, enter a value."
|
|
167
|
+
});
|
|
168
|
+
_react2.fireEvent.change(textarea, {
|
|
169
|
+
target: {
|
|
170
|
+
value: "Test"
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
_react2.fireEvent.blur(textarea);
|
|
174
|
+
expect(onBlur).toHaveBeenCalled();
|
|
175
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
176
|
+
value: "Test"
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
test("Not optional constraint (onChange)", function () {
|
|
180
|
+
var onChange = jest.fn();
|
|
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;
|
|
187
|
+
var textarea = getByLabelText("Example label");
|
|
188
|
+
_react2.fireEvent.focus(textarea);
|
|
189
|
+
_react2.fireEvent.change(textarea, {
|
|
190
|
+
target: {
|
|
191
|
+
value: "Test"
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
expect(onChange).toHaveBeenCalled();
|
|
195
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
196
|
+
value: "Test"
|
|
197
|
+
});
|
|
198
|
+
_userEvent["default"].clear(textarea);
|
|
199
|
+
expect(onChange).toHaveBeenCalled();
|
|
200
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
201
|
+
value: "",
|
|
202
|
+
error: "This field is required. Please, enter a value."
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
test("Pattern constraint", function () {
|
|
206
|
+
var onChange = jest.fn();
|
|
207
|
+
var onBlur = jest.fn();
|
|
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;
|
|
220
|
+
var textarea = getByLabelText("Example label");
|
|
221
|
+
_react2.fireEvent.change(textarea, {
|
|
222
|
+
target: {
|
|
223
|
+
value: "pattern test"
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
expect(onChange).toHaveBeenCalled();
|
|
227
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
228
|
+
value: "pattern test",
|
|
229
|
+
error: "Please match the format requested."
|
|
230
|
+
});
|
|
231
|
+
_react2.fireEvent.blur(textarea);
|
|
232
|
+
expect(onBlur).toHaveBeenCalled();
|
|
233
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
234
|
+
value: "pattern test",
|
|
235
|
+
error: "Please match the format requested."
|
|
236
|
+
});
|
|
237
|
+
_userEvent["default"].clear(textarea);
|
|
238
|
+
_react2.fireEvent.change(textarea, {
|
|
239
|
+
target: {
|
|
240
|
+
value: "pattern4&"
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
expect(onChange).toHaveBeenCalled();
|
|
244
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
245
|
+
value: "pattern4&"
|
|
246
|
+
});
|
|
247
|
+
_react2.fireEvent.blur(textarea);
|
|
248
|
+
expect(onBlur).toHaveBeenCalled();
|
|
249
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
250
|
+
value: "pattern4&"
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
test("Length constraint", function () {
|
|
254
|
+
var onChange = jest.fn();
|
|
255
|
+
var onBlur = jest.fn();
|
|
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;
|
|
269
|
+
var textarea = getByLabelText("Example label");
|
|
270
|
+
_react2.fireEvent.change(textarea, {
|
|
271
|
+
target: {
|
|
272
|
+
value: "test"
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
expect(onChange).toHaveBeenCalled();
|
|
276
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
277
|
+
value: "test",
|
|
278
|
+
error: "Min length 5, max length 10."
|
|
279
|
+
});
|
|
280
|
+
_react2.fireEvent.blur(textarea);
|
|
281
|
+
expect(onBlur).toHaveBeenCalled();
|
|
282
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
283
|
+
value: "test",
|
|
284
|
+
error: "Min length 5, max length 10."
|
|
285
|
+
});
|
|
286
|
+
_userEvent["default"].clear(textarea);
|
|
287
|
+
_react2.fireEvent.change(textarea, {
|
|
288
|
+
target: {
|
|
289
|
+
value: "length"
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
expect(onChange).toHaveBeenCalled();
|
|
293
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
294
|
+
value: "length"
|
|
295
|
+
});
|
|
296
|
+
_react2.fireEvent.blur(textarea);
|
|
297
|
+
expect(onBlur).toHaveBeenCalled();
|
|
298
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
299
|
+
value: "length"
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
test("Pattern and length constraints", function () {
|
|
303
|
+
var onChange = jest.fn();
|
|
304
|
+
var onBlur = jest.fn();
|
|
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;
|
|
319
|
+
var textarea = getByLabelText("Example label");
|
|
320
|
+
_react2.fireEvent.change(textarea, {
|
|
321
|
+
target: {
|
|
322
|
+
value: "test"
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
expect(onChange).toHaveBeenCalled();
|
|
326
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
327
|
+
value: "test",
|
|
328
|
+
error: "Min length 5, max length 10."
|
|
329
|
+
});
|
|
330
|
+
_react2.fireEvent.blur(textarea);
|
|
331
|
+
expect(onBlur).toHaveBeenCalled();
|
|
332
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
333
|
+
value: "test",
|
|
334
|
+
error: "Min length 5, max length 10."
|
|
335
|
+
});
|
|
336
|
+
_react2.fireEvent.change(textarea, {
|
|
337
|
+
target: {
|
|
338
|
+
value: "tests"
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
expect(onChange).toHaveBeenCalled();
|
|
342
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
343
|
+
value: "tests",
|
|
344
|
+
error: "Please match the format requested."
|
|
345
|
+
});
|
|
346
|
+
_react2.fireEvent.blur(textarea);
|
|
347
|
+
expect(onBlur).toHaveBeenCalled();
|
|
348
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
349
|
+
value: "tests",
|
|
350
|
+
error: "Please match the format requested."
|
|
351
|
+
});
|
|
352
|
+
_react2.fireEvent.change(textarea, {
|
|
353
|
+
target: {
|
|
354
|
+
value: "tests4&"
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
expect(onChange).toHaveBeenCalled();
|
|
358
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
359
|
+
value: "tests4&"
|
|
360
|
+
});
|
|
361
|
+
_react2.fireEvent.blur(textarea);
|
|
362
|
+
expect(onBlur).toHaveBeenCalled();
|
|
363
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
364
|
+
value: "tests4&"
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
test("onBlur function is called correctly", function () {
|
|
368
|
+
var onBlur = jest.fn();
|
|
369
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
370
|
+
label: "Example label",
|
|
371
|
+
onBlur: onBlur
|
|
372
|
+
})),
|
|
373
|
+
getByLabelText = _render17.getByLabelText;
|
|
374
|
+
var textarea = getByLabelText("Example label");
|
|
375
|
+
_react2.fireEvent.change(textarea, {
|
|
376
|
+
target: {
|
|
377
|
+
value: "Blur test"
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
_react2.fireEvent.blur(textarea);
|
|
381
|
+
expect(onBlur).toHaveBeenCalled();
|
|
382
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
383
|
+
value: "Blur test"
|
|
384
|
+
});
|
|
385
|
+
});
|
|
386
|
+
test("onChange function is called correctly", function () {
|
|
387
|
+
var onChange = jest.fn();
|
|
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;
|
|
394
|
+
var textarea = getByLabelText("Example label");
|
|
395
|
+
_react2.fireEvent.change(textarea, {
|
|
396
|
+
target: {
|
|
397
|
+
value: "Controlled test"
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
expect(onChange).toHaveBeenCalled();
|
|
401
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
402
|
+
value: "Controlled test"
|
|
403
|
+
});
|
|
404
|
+
expect(textarea.value).toBe("Test value");
|
|
405
|
+
});
|
|
406
|
+
});
|
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
|
*/
|
|
@@ -14,6 +14,10 @@ declare type Props = {
|
|
|
14
14
|
* Name attribute of the textarea element.
|
|
15
15
|
*/
|
|
16
16
|
name?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Initial value of the textarea, only when it is uncontrolled.
|
|
19
|
+
*/
|
|
20
|
+
defaultValue?: string;
|
|
17
21
|
/**
|
|
18
22
|
* Value of the textarea. If undefined, the component will be uncontrolled and the value will be managed internally.
|
|
19
23
|
*/
|
|
@@ -30,6 +34,10 @@ declare type Props = {
|
|
|
30
34
|
* If true, the component will be disabled.
|
|
31
35
|
*/
|
|
32
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;
|
|
33
41
|
/**
|
|
34
42
|
* If true, the textarea will be optional, showing '(Optional)'
|
|
35
43
|
* next to the label. Otherwise, the field will be considered required
|
|
@@ -52,26 +60,29 @@ declare type Props = {
|
|
|
52
60
|
* This function will be called when the user types within the textarea.
|
|
53
61
|
* An object including the current value and the error (if the value
|
|
54
62
|
* entered is not valid) will be passed to this function.
|
|
55
|
-
* If there is no error, error will be
|
|
63
|
+
* If there is no error, error will not be defined.
|
|
56
64
|
*/
|
|
57
65
|
onChange?: (val: {
|
|
58
66
|
value: string;
|
|
59
|
-
error
|
|
67
|
+
error?: string;
|
|
60
68
|
}) => void;
|
|
61
69
|
/**
|
|
62
70
|
* This function will be called when the textarea loses the focus. An
|
|
63
71
|
* object including the textarea value and the error (if the value entered
|
|
64
72
|
* is not valid) will be passed to this function. If there is no error,
|
|
65
|
-
* error will be
|
|
73
|
+
* error will not be defined.
|
|
66
74
|
*/
|
|
67
75
|
onBlur?: (val: {
|
|
68
76
|
value: string;
|
|
69
|
-
error
|
|
77
|
+
error?: string;
|
|
70
78
|
}) => void;
|
|
71
79
|
/**
|
|
72
|
-
* If it is defined
|
|
73
|
-
* the error below the textarea. If
|
|
74
|
-
*
|
|
80
|
+
* If it is a defined value and also a truthy string, the component will
|
|
81
|
+
* change its appearance, showing the error below the textarea. If the
|
|
82
|
+
* defined value is an empty string, it will reserve a space below the
|
|
83
|
+
* component for a future error, but it would not change its look. In
|
|
84
|
+
* case of being undefined or null, both the appearance and the space for
|
|
85
|
+
* the error message would not be modified.
|
|
75
86
|
*/
|
|
76
87
|
error?: string;
|
|
77
88
|
/**
|
|
@@ -81,17 +92,17 @@ declare type Props = {
|
|
|
81
92
|
* pattern, the onBlur and onChange functions will be called with the
|
|
82
93
|
* current value and an internal error informing that this value does not
|
|
83
94
|
* match the pattern. If the pattern is met, the error parameter of both
|
|
84
|
-
* events will be
|
|
95
|
+
* events will not be defined.
|
|
85
96
|
*/
|
|
86
97
|
pattern?: string;
|
|
87
98
|
/**
|
|
88
|
-
* Specifies the
|
|
99
|
+
* Specifies the minimum length allowed by the textarea.
|
|
89
100
|
* This will be checked both when the textarea loses the
|
|
90
101
|
* focus and while typing within it. If the string entered does not
|
|
91
102
|
* comply the minimum length, the onBlur and onChange functions will be called
|
|
92
103
|
* with the current value and an internal error informing that the value
|
|
93
104
|
* length does not comply the specified range. If a valid length is
|
|
94
|
-
* reached, the error parameter of both events will be
|
|
105
|
+
* reached, the error parameter of both events will not be defined.
|
|
95
106
|
*/
|
|
96
107
|
minLength?: number;
|
|
97
108
|
/**
|
|
@@ -101,7 +112,7 @@ declare type Props = {
|
|
|
101
112
|
* comply the maximum length, the onBlur and onChange functions will be called
|
|
102
113
|
* with the current value and an internal error informing that the value
|
|
103
114
|
* length does not comply the specified range. If a valid length is
|
|
104
|
-
* reached, the error parameter of both events will be
|
|
115
|
+
* reached, the error parameter of both events will not be defined.
|
|
105
116
|
*/
|
|
106
117
|
maxLength?: number;
|
|
107
118
|
/**
|
|
@@ -115,7 +126,7 @@ declare type Props = {
|
|
|
115
126
|
*/
|
|
116
127
|
margin?: Space | Margin;
|
|
117
128
|
/**
|
|
118
|
-
* Size of the component
|
|
129
|
+
* Size of the component.
|
|
119
130
|
*/
|
|
120
131
|
size?: "small" | "medium" | "large" | "fillParent";
|
|
121
132
|
/**
|
|
@@ -126,5 +137,5 @@ declare type Props = {
|
|
|
126
137
|
/**
|
|
127
138
|
* Reference to the component.
|
|
128
139
|
*/
|
|
129
|
-
export
|
|
140
|
+
export type RefType = HTMLDivElement;
|
|
130
141
|
export default Props;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
9
|
+
var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup.tsx"));
|
|
10
|
+
var ethernetSVG = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
11
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
12
|
+
height: "24px",
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
width: "24px",
|
|
15
|
+
fill: "currentColor"
|
|
16
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
17
|
+
d: "M0 0h24v24H0V0z",
|
|
18
|
+
fill: "none"
|
|
19
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
20
|
+
d: "M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z"
|
|
21
|
+
}));
|
|
22
|
+
var gMobileSVG = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
23
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
24
|
+
height: "24px",
|
|
25
|
+
viewBox: "0 0 24 24",
|
|
26
|
+
width: "24px",
|
|
27
|
+
fill: "currentColor"
|
|
28
|
+
}, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
|
|
29
|
+
d: "M0,0h24v24H0V0z",
|
|
30
|
+
fill: "none"
|
|
31
|
+
})), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
|
|
32
|
+
d: "M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z"
|
|
33
|
+
}))));
|
|
34
|
+
var wifiSVG = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
35
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
36
|
+
height: "24px",
|
|
37
|
+
viewBox: "0 0 24 24",
|
|
38
|
+
width: "24px",
|
|
39
|
+
fill: "currentColor"
|
|
40
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
41
|
+
d: "M0 0h24v24H0V0zm0 0h24v24H0V0z",
|
|
42
|
+
fill: "none"
|
|
43
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
44
|
+
d: "M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"
|
|
45
|
+
}));
|
|
46
|
+
var options = [{
|
|
47
|
+
value: 1,
|
|
48
|
+
icon: wifiSVG,
|
|
49
|
+
title: "WiFi connection"
|
|
50
|
+
}, {
|
|
51
|
+
value: 2,
|
|
52
|
+
icon: ethernetSVG,
|
|
53
|
+
title: "Ethernet connection"
|
|
54
|
+
}, {
|
|
55
|
+
value: 3,
|
|
56
|
+
icon: gMobileSVG,
|
|
57
|
+
title: "3G Mobile data connection"
|
|
58
|
+
}];
|
|
59
|
+
describe("Toggle group component accessibility tests", function () {
|
|
60
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
61
|
+
var _render, container, results;
|
|
62
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
63
|
+
while (1) switch (_context.prev = _context.next) {
|
|
64
|
+
case 0:
|
|
65
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
66
|
+
label: "Toggle group label",
|
|
67
|
+
helperText: "Toggle group helper text",
|
|
68
|
+
options: options,
|
|
69
|
+
margin: "medium",
|
|
70
|
+
defaultValue: 2,
|
|
71
|
+
multiple: true
|
|
72
|
+
})), container = _render.container;
|
|
73
|
+
_context.next = 3;
|
|
74
|
+
return (0, _axeHelper.axe)(container);
|
|
75
|
+
case 3:
|
|
76
|
+
results = _context.sent;
|
|
77
|
+
expect(results).toHaveNoViolations();
|
|
78
|
+
case 5:
|
|
79
|
+
case "end":
|
|
80
|
+
return _context.stop();
|
|
81
|
+
}
|
|
82
|
+
}, _callee);
|
|
83
|
+
})));
|
|
84
|
+
it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
85
|
+
var _render2, container, results;
|
|
86
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
87
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
90
|
+
label: "Toggle group label",
|
|
91
|
+
helperText: "Toggle group helper text",
|
|
92
|
+
options: options,
|
|
93
|
+
margin: "medium",
|
|
94
|
+
disabled: true
|
|
95
|
+
})), container = _render2.container;
|
|
96
|
+
_context2.next = 3;
|
|
97
|
+
return (0, _axeHelper.axe)(container);
|
|
98
|
+
case 3:
|
|
99
|
+
results = _context2.sent;
|
|
100
|
+
expect(results).toHaveNoViolations();
|
|
101
|
+
case 5:
|
|
102
|
+
case "end":
|
|
103
|
+
return _context2.stop();
|
|
104
|
+
}
|
|
105
|
+
}, _callee2);
|
|
106
|
+
})));
|
|
107
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import
|
|
3
|
-
declare const DxcToggleGroup: ({ label, helperText, value, onChange, disabled, options, margin, multiple, tabIndex, }:
|
|
2
|
+
import ToggleGroupPropsType from "./types";
|
|
3
|
+
declare const DxcToggleGroup: ({ label, helperText, defaultValue, value, onChange, disabled, options, margin, multiple, tabIndex, }: ToggleGroupPropsType) => JSX.Element;
|
|
4
4
|
export default DxcToggleGroup;
|