@nypl/design-system-react-components 0.25.0 → 0.25.4
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/CHANGELOG.md +142 -1
- package/README.md +98 -50
- package/dist/components/Accordion/Accordion.d.ts +14 -14
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +15 -14
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
- package/dist/components/Button/Button.d.ts +13 -8
- package/dist/components/Button/ButtonTypes.d.ts +3 -1
- package/dist/components/Card/Card.d.ts +36 -52
- package/dist/components/Card/CardTypes.d.ts +2 -17
- package/dist/components/Checkbox/Checkbox.d.ts +17 -13
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +45 -0
- package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
- package/dist/components/DatePicker/DatePicker.d.ts +37 -35
- package/dist/components/Fieldset/Fieldset.d.ts +25 -0
- package/dist/components/Form/Form.d.ts +13 -8
- package/dist/components/Form/FormTypes.d.ts +2 -8
- package/dist/components/Grid/GridTypes.d.ts +9 -0
- package/dist/components/Grid/SimpleGrid.d.ts +14 -0
- package/dist/components/Heading/Heading.d.ts +4 -4
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
- package/dist/components/Hero/Hero.d.ts +19 -14
- package/dist/components/Hero/HeroTypes.d.ts +10 -5
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
- package/dist/components/Icons/Icon.d.ts +19 -14
- package/dist/components/Icons/IconSvgs.d.ts +11 -0
- package/dist/components/Icons/IconTypes.d.ts +89 -64
- package/dist/components/Image/Image.d.ts +19 -9
- package/dist/components/Image/ImageTypes.d.ts +20 -0
- package/dist/components/Label/Label.d.ts +5 -17
- package/dist/components/Link/Link.d.ts +12 -12
- package/dist/components/List/List.d.ts +19 -14
- package/dist/components/Notification/Notification.d.ts +37 -16
- package/dist/components/Pagination/Pagination.d.ts +16 -13
- package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
- package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
- package/dist/components/SearchBar/SearchBar.d.ts +45 -27
- package/dist/components/Select/Select.d.ts +34 -35
- package/dist/components/Select/SelectTypes.d.ts +4 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
- package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
- package/dist/components/Slider/Slider.d.ts +57 -0
- package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
- package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
- package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Template/Template.d.ts +91 -0
- package/dist/components/Text/Text.d.ts +16 -0
- package/dist/components/Text/TextTypes.d.ts +6 -0
- package/dist/components/TextInput/TextInput.d.ts +44 -31
- package/dist/components/TextInput/TextInputTypes.d.ts +5 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
- package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
- package/dist/design-system-react-components.cjs.development.js +6473 -2630
- package/dist/design-system-react-components.cjs.development.js.map +1 -1
- package/dist/design-system-react-components.cjs.production.min.js +1 -1
- package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
- package/dist/design-system-react-components.esm.js +6463 -2631
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
- package/dist/hooks/useCarouselStyles.d.ts +16 -0
- package/dist/hooks/useNYPLTheme.d.ts +54 -0
- package/dist/hooks/useWindowSize.d.ts +10 -0
- package/dist/index.d.ts +19 -7
- package/dist/resources.scss +180 -170
- package/dist/styles.css +1 -1
- package/dist/theme/components/accordion.d.ts +25 -0
- package/dist/theme/components/breadcrumb.d.ts +90 -0
- package/dist/theme/components/button.d.ts +39 -15
- package/dist/theme/components/card.d.ts +168 -0
- package/dist/theme/components/checkbox.d.ts +12 -8
- package/dist/theme/components/checkboxGroup.d.ts +12 -0
- package/dist/theme/components/componentWrapper.d.ts +11 -0
- package/dist/theme/components/datePicker.d.ts +16 -0
- package/dist/theme/components/fieldset.d.ts +27 -0
- package/dist/theme/components/global.d.ts +65 -0
- package/dist/theme/components/globalMixins.d.ts +23 -0
- package/dist/theme/components/heading.d.ts +55 -20
- package/dist/theme/components/helperErrorText.d.ts +10 -0
- package/dist/theme/components/hero.d.ts +493 -0
- package/dist/theme/components/horizontalRule.d.ts +14 -0
- package/dist/theme/components/icon.d.ts +13 -0
- package/dist/theme/components/image.d.ts +31 -0
- package/dist/theme/components/label.d.ts +18 -0
- package/dist/theme/components/link.d.ts +49 -0
- package/dist/theme/components/list.d.ts +89 -0
- package/dist/theme/components/notification.d.ts +75 -0
- package/dist/theme/components/pagination.d.ts +19 -0
- package/dist/theme/components/progressIndicator.d.ts +50 -0
- package/dist/theme/components/radio.d.ts +8 -7
- package/dist/theme/components/radioGroup.d.ts +12 -0
- package/dist/theme/components/searchBar.d.ts +20 -0
- package/dist/theme/components/select.d.ts +67 -0
- package/dist/theme/components/skeletonLoader.d.ts +98 -0
- package/dist/theme/components/slider.d.ts +51 -0
- package/dist/theme/components/statusBadge.d.ts +25 -0
- package/dist/theme/components/tabs.d.ts +63 -12
- package/dist/theme/components/template.d.ts +105 -0
- package/dist/theme/components/text.d.ts +20 -0
- package/dist/theme/components/textInput.d.ts +112 -0
- package/dist/theme/components/videoPlayer.d.ts +40 -0
- package/dist/theme/foundations/breakpoints.d.ts +8 -8
- package/dist/theme/foundations/global.d.ts +8 -0
- package/dist/theme/foundations/radii.d.ts +5 -0
- package/dist/theme/foundations/shadows.d.ts +4 -0
- package/dist/theme/foundations/spacing.d.ts +16 -16
- package/dist/utils/utils.d.ts +6 -0
- package/package.json +72 -82
- package/src/__tests__/setup.ts +2 -2
- package/src/components/Accordion/Accordion.stories.mdx +223 -34
- package/src/components/Accordion/Accordion.test.tsx +135 -19
- package/src/components/Accordion/Accordion.tsx +81 -56
- package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -4
- package/src/components/Autosuggest/Autosuggest.stories.tsx +3 -2
- package/src/components/Autosuggest/_Autosuggest.scss +5 -5
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +48 -50
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +54 -25
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +75 -73
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +298 -0
- package/src/components/Button/Button.stories.mdx +45 -36
- package/src/components/Button/Button.test.tsx +37 -11
- package/src/components/Button/Button.tsx +22 -34
- package/src/components/Button/ButtonTypes.tsx +2 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +50 -8
- package/src/components/Card/Card.stories.mdx +314 -273
- package/src/components/Card/Card.test.tsx +157 -91
- package/src/components/Card/Card.tsx +195 -145
- package/src/components/Card/CardTypes.tsx +2 -19
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
- package/src/components/CardEdition/CardEdition.stories.tsx +26 -53
- package/src/components/CardEdition/CardEdition.test.tsx +23 -31
- package/src/components/CardEdition/_CardEdition.scss +22 -23
- package/src/components/Chakra/Box.stories.mdx +15 -16
- package/src/components/Chakra/Center.stories.mdx +56 -24
- package/src/components/Chakra/Grid.stories.mdx +92 -0
- package/src/components/Chakra/Stack.stories.mdx +38 -21
- package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
- package/src/components/Checkbox/Checkbox.test.tsx +47 -2
- package/src/components/Checkbox/Checkbox.tsx +44 -41
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +92 -7
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +329 -0
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +372 -0
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +152 -0
- package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1326 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
- package/src/components/DatePicker/DatePicker.test.tsx +264 -64
- package/src/components/DatePicker/DatePicker.tsx +165 -134
- package/src/components/DatePicker/_DatePicker.scss +33 -66
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
- package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
- package/src/components/Fieldset/Fieldset.test.tsx +125 -0
- package/src/components/Fieldset/Fieldset.tsx +52 -0
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
- package/src/components/Form/Form.stories.mdx +70 -27
- package/src/components/Form/Form.test.tsx +58 -45
- package/src/components/Form/Form.tsx +50 -21
- package/src/components/Form/FormTypes.tsx +3 -8
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +24 -14
- package/src/components/Grid/GridTypes.tsx +9 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +268 -0
- package/src/components/Grid/SimpleGrid.test.tsx +66 -0
- package/src/components/Grid/SimpleGrid.tsx +37 -0
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +8 -0
- package/src/components/Heading/Heading.stories.mdx +3 -3
- package/src/components/Heading/Heading.tsx +12 -6
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
- package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
- package/src/components/Hero/Hero.stories.mdx +198 -121
- package/src/components/Hero/Hero.test.tsx +537 -107
- package/src/components/Hero/Hero.tsx +79 -92
- package/src/components/Hero/HeroTypes.tsx +18 -5
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
- package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
- package/src/components/Icons/Icon.stories.mdx +94 -77
- package/src/components/Icons/Icon.test.tsx +48 -22
- package/src/components/Icons/Icon.tsx +78 -61
- package/src/components/Icons/IconSvgs.tsx +22 -0
- package/src/components/Icons/IconTypes.tsx +91 -64
- package/src/components/Image/Image.stories.mdx +220 -0
- package/src/components/Image/Image.test.tsx +131 -29
- package/src/components/Image/Image.tsx +84 -56
- package/src/components/Image/ImageTypes.ts +22 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
- package/src/components/Input/Input.stories.tsx +23 -67
- package/src/components/Input/Input.test.tsx +4 -4
- package/src/components/Input/_Input.scss +23 -14
- package/src/components/Label/Label.stories.mdx +28 -7
- package/src/components/Label/Label.test.tsx +43 -12
- package/src/components/Label/Label.tsx +21 -34
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
- package/src/components/Link/Link.stories.mdx +41 -41
- package/src/components/Link/Link.test.tsx +33 -44
- package/src/components/Link/Link.tsx +117 -100
- package/src/components/List/List.stories.mdx +124 -51
- package/src/components/List/List.test.tsx +142 -63
- package/src/components/List/List.tsx +89 -93
- package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
- package/src/components/Modal/Modal.stories.mdx +3 -3
- package/src/components/Modal/_Modal.scss +2 -2
- package/src/components/Notification/Notification.stories.mdx +119 -111
- package/src/components/Notification/Notification.test.tsx +102 -126
- package/src/components/Notification/Notification.tsx +157 -161
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
- package/src/components/Pagination/Pagination.stories.mdx +26 -27
- package/src/components/Pagination/Pagination.stories.tsx +11 -16
- package/src/components/Pagination/Pagination.test.tsx +276 -140
- package/src/components/Pagination/Pagination.tsx +174 -154
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
- package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
- package/src/components/Radio/Radio.test.tsx +20 -4
- package/src/components/Radio/Radio.tsx +6 -3
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +4 -5
- package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
- package/src/components/RadioGroup/RadioGroup.tsx +21 -29
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
- package/src/components/SearchBar/SearchBar.Test.tsx +170 -16
- package/src/components/SearchBar/SearchBar.stories.mdx +294 -219
- package/src/components/SearchBar/SearchBar.tsx +161 -46
- package/src/components/Select/Select.stories.mdx +188 -170
- package/src/components/Select/Select.test.tsx +132 -375
- package/src/components/Select/Select.tsx +121 -165
- package/src/components/Select/SelectTypes.tsx +5 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +33 -76
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +75 -70
- package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
- package/src/components/Slider/Slider.stories.mdx +529 -0
- package/src/components/Slider/Slider.test.tsx +653 -0
- package/src/components/Slider/Slider.tsx +303 -0
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
- package/src/components/StatusBadge/StatusBadge.stories.mdx +91 -0
- package/src/components/StatusBadge/StatusBadge.test.tsx +35 -7
- package/src/components/StatusBadge/StatusBadge.tsx +24 -25
- package/src/components/StatusBadge/StatusBadgeTypes.tsx +5 -0
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +28 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +17 -17
- package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
- package/src/components/StyleGuide/Buttons.stories.mdx +102 -86
- package/src/components/StyleGuide/ColorCard.tsx +46 -0
- package/src/components/StyleGuide/Colors.stories.mdx +196 -0
- package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
- package/src/components/StyleGuide/Forms.stories.mdx +9 -7
- package/src/components/StyleGuide/Iconography.stories.mdx +119 -127
- package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
- package/src/components/StyleGuide/Typography.stories.mdx +202 -189
- package/src/components/StyleGuide/UIDocCard.tsx +1 -1
- package/src/components/Tabs/Tabs.stories.mdx +73 -11
- package/src/components/Tabs/Tabs.tsx +88 -67
- package/src/components/Template/Template.stories.mdx +572 -0
- package/src/components/Template/Template.test.tsx +124 -0
- package/src/components/Template/Template.tsx +226 -0
- package/src/components/Text/Text.stories.mdx +70 -0
- package/src/components/Text/Text.test.tsx +63 -0
- package/src/components/Text/Text.tsx +55 -0
- package/src/components/Text/TextTypes.tsx +6 -0
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +33 -0
- package/src/components/TextInput/TextInput.stories.mdx +89 -90
- package/src/components/TextInput/TextInput.test.tsx +84 -85
- package/src/components/TextInput/TextInput.tsx +121 -95
- package/src/components/TextInput/TextInputTypes.tsx +8 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
- package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
- package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
- package/src/docs/Chakra.stories.mdx +246 -65
- package/src/docs/Intro.stories.mdx +18 -13
- package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
- package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
- package/src/hooks/useCarouselStyles.ts +34 -0
- package/src/hooks/useNYPLTheme.ts +67 -0
- package/src/hooks/useWindowSize.ts +40 -0
- package/src/index.ts +39 -16
- package/src/resources.scss +5 -5
- package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
- package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
- package/src/styles/base/_03-base.scss +25 -0
- package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
- package/src/styles/base/_place-holder.scss +14 -3
- package/src/styles/{03-space → space}/_space-inline.scss +14 -14
- package/src/styles/{03-space → space}/_space-inset.scss +10 -10
- package/src/styles/space/_space-stack.scss +116 -0
- package/src/styles.scss +13 -62
- package/src/theme/components/accordion.ts +30 -0
- package/src/theme/components/breadcrumb.ts +77 -0
- package/src/theme/components/button.ts +91 -71
- package/src/theme/components/card.ts +174 -0
- package/src/theme/components/checkbox.ts +22 -29
- package/src/theme/components/checkboxGroup.ts +8 -0
- package/src/theme/components/componentWrapper.ts +10 -0
- package/src/theme/components/datePicker.ts +17 -0
- package/src/theme/components/fieldset.ts +18 -0
- package/src/theme/components/global.ts +82 -0
- package/src/theme/components/globalMixins.ts +24 -0
- package/src/theme/components/heading.ts +25 -13
- package/src/theme/components/helperErrorText.ts +9 -0
- package/src/theme/components/hero.ts +240 -0
- package/src/theme/components/horizontalRule.ts +13 -0
- package/src/theme/components/icon.ts +79 -0
- package/src/theme/components/image.ts +116 -0
- package/src/theme/components/label.ts +10 -0
- package/src/theme/components/link.ts +51 -0
- package/src/theme/components/list.ts +73 -0
- package/src/theme/components/notification.ts +93 -0
- package/src/theme/components/pagination.ts +20 -0
- package/src/theme/components/progressIndicator.ts +62 -0
- package/src/theme/components/radio.ts +22 -33
- package/src/theme/components/radioGroup.ts +8 -0
- package/src/theme/components/searchBar.ts +21 -0
- package/src/theme/components/select.ts +53 -0
- package/src/theme/components/skeletonLoader.ts +107 -0
- package/src/theme/components/slider.ts +79 -0
- package/src/theme/components/statusBadge.ts +26 -0
- package/src/theme/components/tabs.ts +102 -69
- package/src/theme/components/template.ts +114 -0
- package/src/theme/components/text.ts +31 -0
- package/src/theme/components/textInput.ts +62 -0
- package/src/theme/components/videoPlayer.ts +49 -0
- package/src/theme/foundations/breakpoints.ts +8 -8
- package/src/theme/foundations/colors.ts +29 -13
- package/src/theme/foundations/global.ts +8 -0
- package/src/theme/foundations/radii.ts +6 -0
- package/src/theme/foundations/shadows.ts +5 -0
- package/src/theme/foundations/spacing.ts +24 -24
- package/src/theme/index.ts +74 -13
- package/src/utils/componentCategories.ts +12 -5
- package/src/utils/utils.ts +13 -0
- package/dist/components/Accordion/Accordion.stories.d.ts +0 -6
- package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
- package/dist/components/Image/Image.stories.d.ts +0 -18
- package/dist/components/List/List.stories.d.ts +0 -7
- package/dist/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
- package/dist/components/StyleGuide/Colors.stories.d.ts +0 -25
- package/dist/components/Template/Template.stories.d.ts +0 -30
- package/dist/theme/components/customRadioGroup.d.ts +0 -17
- package/src/components/Accordion/Accordion.stories.tsx +0 -66
- package/src/components/Accordion/_Accordion.scss +0 -81
- package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
- package/src/components/Button/_Button.scss +0 -56
- package/src/components/Card/_Card.scss +0 -308
- package/src/components/Form/_Form.scss +0 -67
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
- package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
- package/src/components/Hero/_Hero.scss +0 -256
- package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
- package/src/components/Icons/_Icons.scss +0 -116
- package/src/components/Image/Image.stories.tsx +0 -54
- package/src/components/Image/_Image.scss +0 -38
- package/src/components/Label/_Label.scss +0 -22
- package/src/components/Link/_Link.scss +0 -73
- package/src/components/List/List.stories.tsx +0 -139
- package/src/components/List/_List.scss +0 -76
- package/src/components/Notification/_Notification.scss +0 -110
- package/src/components/Pagination/_Pagination.scss +0 -40
- package/src/components/SearchBar/_SearchBar.scss +0 -16
- package/src/components/Select/_Select.scss +0 -82
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
- package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -34
- package/src/components/StatusBadge/_StatusBadge.scss +0 -23
- package/src/components/StyleGuide/Colors.stories.tsx +0 -289
- package/src/components/Template/Template.stories.tsx +0 -86
- package/src/components/Template/_Template.scss +0 -63
- package/src/components/TextInput/_TextInput.scss +0 -59
- package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
- package/src/styles/01-colors/_colors-brand.scss +0 -56
- package/src/styles/01-colors/_colors-utility.scss +0 -65
- package/src/styles/02-typography/_type-scale.css +0 -11
- package/src/styles/02-typography/_type-weight.css +0 -7
- package/src/styles/02-typography/_typefaces.css +0 -4
- package/src/styles/03-space/_space-stack.scss +0 -116
- package/src/styles/03-space/_space.css +0 -30
- package/src/styles/base/_04-base.scss +0 -19
- package/src/styles/base/_card-grid.scss +0 -78
- package/src/styles/base/_typography.scss +0 -11
- package/src/theme/components/customRadioGroup.ts +0 -18
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Meta,
|
|
3
3
|
Story,
|
|
4
|
-
Canvas,
|
|
5
4
|
ArgsTable,
|
|
6
|
-
|
|
5
|
+
Canvas,
|
|
7
6
|
Description,
|
|
8
7
|
} from "@storybook/addon-docs/blocks";
|
|
9
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
|
+
import { VStack } from "@chakra-ui/react";
|
|
10
10
|
|
|
11
11
|
import TextInput from "./TextInput";
|
|
12
12
|
import { TextInputTypes } from "./TextInputTypes";
|
|
13
|
-
import { action } from "@storybook/addon-actions";
|
|
14
13
|
import { getCategory } from "../../utils/componentCategories";
|
|
14
|
+
import DSProvider from "../../theme/provider";
|
|
15
15
|
|
|
16
16
|
<Meta
|
|
17
17
|
title={getCategory("TextInput")}
|
|
@@ -27,6 +27,9 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
27
27
|
}}
|
|
28
28
|
argTypes={{
|
|
29
29
|
attributes: { table: { disable: true } },
|
|
30
|
+
id: { table: { disable: true } },
|
|
31
|
+
onChange: { table: { disable: true } },
|
|
32
|
+
value: { table: { disable: true } },
|
|
30
33
|
}}
|
|
31
34
|
/>
|
|
32
35
|
|
|
@@ -35,134 +38,130 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
35
38
|
| Component Version | DS Version |
|
|
36
39
|
| ----------------- | ---------- |
|
|
37
40
|
| Added | `0.22.0` |
|
|
38
|
-
| Latest | `0.
|
|
41
|
+
| Latest | `0.25.4` |
|
|
39
42
|
|
|
40
43
|
<Description of={TextInput} />
|
|
41
44
|
|
|
42
|
-
This component renders a text input form element. See below for configuration
|
|
45
|
+
This component renders a text input form element. See below for configuration
|
|
46
|
+
information. For optimal accessibility, the `labelText` property is a required
|
|
47
|
+
prop, regardless of the label visibility. Additionally, while the `id` prop is
|
|
48
|
+
optional, a unique `id` attribute is necessary for accessibility. If the prop
|
|
49
|
+
is left blank, a value will be generated for you.
|
|
43
50
|
|
|
44
|
-
<
|
|
51
|
+
<Canvas withToolbar>
|
|
45
52
|
<Story
|
|
46
53
|
name="TextInput"
|
|
47
54
|
args={{
|
|
55
|
+
helperText: "Choose wisely.",
|
|
48
56
|
id: "myTextInput",
|
|
49
|
-
|
|
57
|
+
invalidText: "This is error text :(",
|
|
58
|
+
isDisabled: false,
|
|
59
|
+
isInvalid: false,
|
|
60
|
+
isRequired: true,
|
|
50
61
|
labelText: "What is your favorite color?",
|
|
51
|
-
showLabel: true,
|
|
52
62
|
placeholder: "e.g. blue, green, etc.",
|
|
53
|
-
|
|
54
|
-
invalidText: "Waaaaaaaa!",
|
|
55
|
-
errored: false,
|
|
56
|
-
required: true,
|
|
63
|
+
showLabel: true,
|
|
57
64
|
showOptReqLabel: true,
|
|
58
|
-
|
|
59
|
-
attributes: {
|
|
60
|
-
onFocus: action("focus"),
|
|
61
|
-
onBlur: action("blur"),
|
|
62
|
-
onChange: action("onChange"),
|
|
63
|
-
maxLength: 10,
|
|
64
|
-
tabIndex: 0,
|
|
65
|
-
autoFocus: true,
|
|
66
|
-
pattern: "[a-z0-9]",
|
|
67
|
-
},
|
|
65
|
+
type: TextInputTypes.text,
|
|
68
66
|
}}
|
|
69
67
|
>
|
|
70
68
|
{(args) => <TextInput {...args} />}
|
|
71
69
|
</Story>
|
|
72
|
-
</
|
|
70
|
+
</Canvas>
|
|
73
71
|
|
|
74
72
|
<ArgsTable story="TextInput" />
|
|
75
73
|
|
|
76
74
|
## Labelling Variations
|
|
77
75
|
|
|
78
|
-
A TextInput can be rendered with or without visible labels.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
76
|
+
A TextInput can be rendered with or without visible labels. When `showLabel` is
|
|
77
|
+
set to `false`, an `aria-label` attribute is added to the input/textarea element
|
|
78
|
+
to maintain accessibility. If the component needs to be required, the
|
|
79
|
+
`showOptReqLabel` prop can be used to show or hide the "Required"/"Optional"
|
|
80
|
+
text within the `label` element.
|
|
81
|
+
|
|
82
|
+
<Canvas withToolbar>
|
|
83
|
+
<Story name="Labelling Variations">
|
|
84
|
+
<VStack align="stretch" spacing={12}>
|
|
85
|
+
<TextInput
|
|
86
|
+
labelText="What is your favorite color?"
|
|
87
|
+
placeholder="i.e. blue, green, etc."
|
|
88
|
+
helperText="Choose wisely!"
|
|
89
|
+
/>
|
|
90
|
+
<TextInput
|
|
91
|
+
labelText="What is your favorite color?"
|
|
92
|
+
placeholder="i.e. blue, green, etc."
|
|
93
|
+
showLabel={false}
|
|
94
|
+
/>
|
|
95
|
+
<TextInput
|
|
96
|
+
labelText="What is your favorite color?"
|
|
97
|
+
placeholder="i.e. blue, green, etc."
|
|
98
|
+
isRequired
|
|
99
|
+
/>
|
|
100
|
+
<TextInput
|
|
101
|
+
labelText="What is your favorite color?"
|
|
102
|
+
placeholder="i.e. blue, green, etc."
|
|
103
|
+
showOptReqLabel={false}
|
|
104
|
+
isRequired
|
|
105
|
+
/>
|
|
106
|
+
<TextInput
|
|
107
|
+
labelText="What is your favorite color?"
|
|
108
|
+
showLabel={false}
|
|
109
|
+
placeholder="i.e. blue, green, etc."
|
|
110
|
+
helperText="Choose wisely!"
|
|
111
|
+
/>
|
|
112
|
+
</VStack>
|
|
89
113
|
</Story>
|
|
90
|
-
</Preview>
|
|
91
|
-
|
|
92
|
-
<Canvas>
|
|
93
|
-
<TextInput labelText="What is your favorite color?" showLabel={true} />
|
|
94
114
|
</Canvas>
|
|
95
115
|
|
|
96
|
-
|
|
97
|
-
<TextInput
|
|
98
|
-
labelText="What is your favorite color?"
|
|
99
|
-
showLabel={false}
|
|
100
|
-
placeholder="i.e. blue, green, etc."
|
|
101
|
-
/>
|
|
102
|
-
</Canvas>
|
|
103
|
-
|
|
104
|
-
<Canvas>
|
|
105
|
-
<TextInput
|
|
106
|
-
labelText="What is your favorite color?"
|
|
107
|
-
showLabel={true}
|
|
108
|
-
placeholder="i.e. blue, green, etc."
|
|
109
|
-
/>
|
|
110
|
-
</Canvas>
|
|
116
|
+
### Errored
|
|
111
117
|
|
|
112
118
|
<Canvas>
|
|
113
|
-
<
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
+
<DSProvider>
|
|
120
|
+
<TextInput
|
|
121
|
+
labelText="What is your favorite color?"
|
|
122
|
+
placeholder="i.e. blue, green, etc."
|
|
123
|
+
helperText="Choose wisely!"
|
|
124
|
+
invalidText="This is error text :("
|
|
125
|
+
isInvalid
|
|
126
|
+
/>
|
|
127
|
+
</DSProvider>
|
|
119
128
|
</Canvas>
|
|
120
129
|
|
|
121
|
-
|
|
122
|
-
<TextInput
|
|
123
|
-
labelText="What is your favorite color?"
|
|
124
|
-
showLabel={true}
|
|
125
|
-
placeholder="i.e. blue, green, etc."
|
|
126
|
-
helperText="Choose wisely!"
|
|
127
|
-
/>
|
|
128
|
-
</Canvas>
|
|
129
|
-
|
|
130
|
-
<Canvas>
|
|
131
|
-
<TextInput
|
|
132
|
-
labelText="What is your favorite color?"
|
|
133
|
-
showLabel={false}
|
|
134
|
-
placeholder="i.e. blue, green, etc."
|
|
135
|
-
invalidText="Waaaaaa!"
|
|
136
|
-
errored={true}
|
|
137
|
-
/>
|
|
138
|
-
</Canvas>
|
|
130
|
+
### Disabled
|
|
139
131
|
|
|
140
132
|
<Canvas>
|
|
141
|
-
<
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
133
|
+
<DSProvider>
|
|
134
|
+
<TextInput
|
|
135
|
+
labelText="What is your favorite color?"
|
|
136
|
+
placeholder="i.e. blue, green, etc."
|
|
137
|
+
helperText="Choose wisely!"
|
|
138
|
+
isDisabled
|
|
139
|
+
/>
|
|
140
|
+
</DSProvider>
|
|
148
141
|
</Canvas>
|
|
149
142
|
|
|
150
143
|
## Textarea
|
|
151
144
|
|
|
152
145
|
The TextInput component includes a multiline `textarea` form field. To render a
|
|
153
|
-
`textarea` element, pass `TextInputTypes.textarea` for the `type` prop.
|
|
146
|
+
`textarea` element, pass `TextInputTypes.textarea` for the `type` prop. All the
|
|
147
|
+
variations described above are available for the `textarea` option.
|
|
154
148
|
|
|
155
|
-
<
|
|
149
|
+
<Canvas withToolbar>
|
|
156
150
|
<Story
|
|
157
151
|
name="Textarea"
|
|
158
152
|
args={{
|
|
159
|
-
|
|
153
|
+
helperText: "Let it all out.",
|
|
154
|
+
invalidText: "This is error text :(",
|
|
155
|
+
isDisabled: false,
|
|
156
|
+
isInvalid: false,
|
|
157
|
+
isRequired: true,
|
|
160
158
|
labelText: "In less than 500 words, describe your favorite color?",
|
|
161
|
-
showLabel: true,
|
|
162
159
|
placeholder: "Essay question...",
|
|
163
|
-
|
|
160
|
+
showLabel: true,
|
|
161
|
+
showOptReqLabel: true,
|
|
162
|
+
type: TextInputTypes.textarea,
|
|
164
163
|
}}
|
|
165
164
|
>
|
|
166
165
|
{(args) => <TextInput {...args} />}
|
|
167
166
|
</Story>
|
|
168
|
-
</
|
|
167
|
+
</Canvas>
|
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen, fireEvent } from "@testing-library/react";
|
|
3
3
|
import { axe } from "jest-axe";
|
|
4
4
|
import userEvent from "@testing-library/user-event";
|
|
5
5
|
|
|
6
|
-
import HelperErrorText from "../HelperErrorText/HelperErrorText";
|
|
7
6
|
import TextInput from "./TextInput";
|
|
8
7
|
import { TextInputTypes } from "./TextInputTypes";
|
|
9
8
|
import * as generateUUID from "../../helpers/generateUUID";
|
|
10
9
|
|
|
11
10
|
describe("TextInput Accessibility", () => {
|
|
12
|
-
it("passes axe accessibility test", async () => {
|
|
11
|
+
it("passes axe accessibility test for the input element", async () => {
|
|
13
12
|
const { container } = render(
|
|
14
13
|
<TextInput
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
required={true}
|
|
14
|
+
labelText="Custom input label"
|
|
15
|
+
isRequired
|
|
18
16
|
placeholder="Input Placeholder"
|
|
19
17
|
type={TextInputTypes.text}
|
|
20
|
-
|
|
18
|
+
onChange={jest.fn()}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
expect(await axe(container)).toHaveNoViolations();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("passes axe accessibility test for the textarea element", async () => {
|
|
25
|
+
const { container } = render(
|
|
26
|
+
<TextInput
|
|
27
|
+
labelText="Custom textarea label"
|
|
28
|
+
isRequired
|
|
29
|
+
placeholder="Input Placeholder"
|
|
30
|
+
type={TextInputTypes.textarea}
|
|
21
31
|
onChange={jest.fn()}
|
|
22
32
|
/>
|
|
23
33
|
);
|
|
@@ -37,7 +47,7 @@ describe("TextInput", () => {
|
|
|
37
47
|
<TextInput
|
|
38
48
|
id="myTextInput"
|
|
39
49
|
labelText="Custom Input Label"
|
|
40
|
-
|
|
50
|
+
isRequired
|
|
41
51
|
placeholder="Input Placeholder"
|
|
42
52
|
type={TextInputTypes.text}
|
|
43
53
|
attributes={{ onFocus: focusHandler }}
|
|
@@ -46,25 +56,25 @@ describe("TextInput", () => {
|
|
|
46
56
|
);
|
|
47
57
|
});
|
|
48
58
|
|
|
49
|
-
it("
|
|
59
|
+
it("renders an input element", () => {
|
|
50
60
|
expect(screen.getByLabelText(/Custom Input Label/i)).toBeInTheDocument();
|
|
51
61
|
});
|
|
52
62
|
|
|
53
|
-
it("
|
|
63
|
+
it("renders label with label text", () => {
|
|
54
64
|
expect(screen.getByText("Custom Input Label")).toBeInTheDocument();
|
|
55
65
|
});
|
|
56
66
|
|
|
57
|
-
it("
|
|
67
|
+
it("renders 'Required' along with the label text", () => {
|
|
58
68
|
expect(screen.getByText("Custom Input Label")).toBeInTheDocument();
|
|
59
69
|
expect(screen.getByText(/Required/i)).toBeInTheDocument();
|
|
60
70
|
});
|
|
61
71
|
|
|
62
|
-
it("
|
|
72
|
+
it("renders 'Optional' along with the label text", () => {
|
|
63
73
|
utils.rerender(
|
|
64
74
|
<TextInput
|
|
65
75
|
id="myTextInput"
|
|
66
76
|
labelText="Custom Input Label"
|
|
67
|
-
|
|
77
|
+
isRequired={false}
|
|
68
78
|
placeholder="Input Placeholder"
|
|
69
79
|
type={TextInputTypes.text}
|
|
70
80
|
attributes={{ onFocus: focusHandler }}
|
|
@@ -76,12 +86,12 @@ describe("TextInput", () => {
|
|
|
76
86
|
expect(screen.getByText(/Optional/i)).toBeInTheDocument();
|
|
77
87
|
});
|
|
78
88
|
|
|
79
|
-
it("
|
|
89
|
+
it("does not render 'Required' along with the label text", () => {
|
|
80
90
|
utils.rerender(
|
|
81
91
|
<TextInput
|
|
82
92
|
id="myTextInput"
|
|
83
93
|
labelText="Custom Input Label"
|
|
84
|
-
|
|
94
|
+
isRequired
|
|
85
95
|
showOptReqLabel={false}
|
|
86
96
|
placeholder="Input Placeholder"
|
|
87
97
|
type={TextInputTypes.text}
|
|
@@ -94,32 +104,32 @@ describe("TextInput", () => {
|
|
|
94
104
|
expect(screen.queryByText(/Required/i)).not.toBeInTheDocument();
|
|
95
105
|
});
|
|
96
106
|
|
|
97
|
-
it("
|
|
107
|
+
it("renders label's `for` attribute pointing at ID from input", () => {
|
|
98
108
|
expect(screen.getByText(/Custom Input Label/i)).toHaveAttribute(
|
|
99
109
|
"for",
|
|
100
110
|
"myTextInput"
|
|
101
111
|
);
|
|
102
112
|
});
|
|
103
113
|
|
|
104
|
-
it("
|
|
114
|
+
it("renders placeholder text", () => {
|
|
105
115
|
expect(
|
|
106
116
|
screen.getByPlaceholderText("Input Placeholder")
|
|
107
117
|
).toBeInTheDocument();
|
|
108
118
|
});
|
|
109
119
|
|
|
110
|
-
it("
|
|
120
|
+
it("adds aria-required prop if input is required", () => {
|
|
111
121
|
expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
|
|
112
122
|
"aria-required"
|
|
113
123
|
);
|
|
114
124
|
});
|
|
115
125
|
|
|
116
|
-
it("
|
|
126
|
+
it("allows user to pass in additional attributes", () => {
|
|
117
127
|
expect(focusHandler).toHaveBeenCalledTimes(0);
|
|
118
128
|
fireEvent.focus(screen.getByLabelText(/Custom Input Label/i));
|
|
119
129
|
expect(focusHandler).toHaveBeenCalledTimes(1);
|
|
120
130
|
});
|
|
121
131
|
|
|
122
|
-
it("
|
|
132
|
+
it("changing the value calls the onChange handler", () => {
|
|
123
133
|
expect(changeHandler).toHaveBeenCalledTimes(0);
|
|
124
134
|
userEvent.type(screen.getByLabelText(/Custom Input Label/i), "Hello");
|
|
125
135
|
// Called 5 times because "Hello" has length of 5.
|
|
@@ -137,117 +147,91 @@ describe("Renders TextInput with auto-generated ID, hidden label and visible hel
|
|
|
137
147
|
labelText="Custom Input Label"
|
|
138
148
|
showLabel={false}
|
|
139
149
|
helperText="Custom Helper Text"
|
|
140
|
-
|
|
150
|
+
isRequired
|
|
141
151
|
placeholder="Input Placeholder"
|
|
142
152
|
type={TextInputTypes.text}
|
|
143
153
|
/>
|
|
144
154
|
);
|
|
145
155
|
});
|
|
146
156
|
|
|
147
|
-
it("
|
|
157
|
+
it("renders Input component", () => {
|
|
148
158
|
expect(screen.getByLabelText(/Custom Input Label/i)).toBeInTheDocument();
|
|
149
159
|
});
|
|
150
160
|
|
|
151
|
-
it("
|
|
161
|
+
it("calls a UUID generation method if no ID is passed as a prop", () => {
|
|
152
162
|
// Called twice for the `TextInput` and the SVG icon components.
|
|
153
163
|
expect(generateUUIDSpy).toHaveBeenCalledTimes(2);
|
|
154
164
|
});
|
|
155
165
|
|
|
156
|
-
it("
|
|
166
|
+
it("does not renders Label component", () => {
|
|
157
167
|
expect(screen.queryByText(/Custom Input Label/i)).not.toBeInTheDocument();
|
|
158
168
|
});
|
|
159
169
|
|
|
160
|
-
it("
|
|
170
|
+
it("renders custom aria-label", () => {
|
|
161
171
|
expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
|
|
162
172
|
"aria-label",
|
|
163
|
-
"Custom Input Label"
|
|
173
|
+
"Custom Input Label - Custom Helper Text"
|
|
164
174
|
);
|
|
165
175
|
});
|
|
166
176
|
|
|
167
|
-
it("
|
|
177
|
+
it("renders HelperErrorText component", () => {
|
|
168
178
|
expect(screen.getByText("Custom Helper Text")).toBeInTheDocument();
|
|
169
179
|
});
|
|
170
|
-
|
|
171
|
-
it("Renders aria-describedby with helper text", () => {
|
|
172
|
-
expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
|
|
173
|
-
"aria-describedby",
|
|
174
|
-
"Custom Helper Text"
|
|
175
|
-
);
|
|
176
|
-
});
|
|
177
180
|
});
|
|
178
181
|
|
|
179
182
|
describe("TextInput shows error state", () => {
|
|
183
|
+
let rerender;
|
|
180
184
|
beforeEach(() => {
|
|
181
|
-
render(
|
|
185
|
+
const utils = render(
|
|
182
186
|
<TextInput
|
|
183
187
|
id="myTextInputError"
|
|
184
188
|
labelText="Custom Input Label"
|
|
185
189
|
helperText="Custom Helper Text"
|
|
186
190
|
invalidText="Custom Error Text"
|
|
187
191
|
placeholder="Input Placeholder"
|
|
188
|
-
|
|
192
|
+
isInvalid
|
|
189
193
|
type={TextInputTypes.text}
|
|
190
194
|
/>
|
|
191
195
|
);
|
|
196
|
+
|
|
197
|
+
rerender = utils.rerender;
|
|
192
198
|
});
|
|
193
199
|
|
|
194
|
-
it("
|
|
200
|
+
it("renders Input component", () => {
|
|
195
201
|
expect(screen.getByLabelText(/Custom Input Label/i)).toBeInTheDocument();
|
|
196
202
|
});
|
|
197
203
|
|
|
198
|
-
it("
|
|
204
|
+
it("renders Label component", () => {
|
|
199
205
|
expect(screen.getByText(/Custom Input Label/i)).toBeInTheDocument();
|
|
200
206
|
});
|
|
201
207
|
|
|
202
|
-
it("
|
|
208
|
+
it("renders HelperErrorText component", () => {
|
|
203
209
|
expect(screen.queryByText("Custom Helper Text")).not.toBeInTheDocument();
|
|
204
210
|
expect(screen.getByText("Custom Error Text")).toBeInTheDocument();
|
|
205
211
|
});
|
|
206
212
|
|
|
207
|
-
it("
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
213
|
+
it("does not render the invalid text when 'showHelperInvalidText' is set to false", () => {
|
|
214
|
+
rerender(
|
|
215
|
+
<TextInput
|
|
216
|
+
id="myTextInputError"
|
|
217
|
+
labelText="Custom Input Label"
|
|
218
|
+
helperText="Custom Helper Text"
|
|
219
|
+
invalidText="Custom Error Text"
|
|
220
|
+
placeholder="Input Placeholder"
|
|
221
|
+
showHelperInvalidText={false}
|
|
222
|
+
type={TextInputTypes.text}
|
|
223
|
+
isInvalid
|
|
224
|
+
/>
|
|
211
225
|
);
|
|
226
|
+
expect(screen.queryByText("Custom Helper Text")).not.toBeInTheDocument();
|
|
227
|
+
expect(screen.queryByText("Custom Error Text")).not.toBeInTheDocument();
|
|
212
228
|
});
|
|
213
|
-
});
|
|
214
229
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
<fieldset>
|
|
219
|
-
<legend>Input Group Label Legend</legend>
|
|
220
|
-
|
|
221
|
-
<TextInput
|
|
222
|
-
id="input1"
|
|
223
|
-
required={true}
|
|
224
|
-
type={TextInputTypes.text}
|
|
225
|
-
labelText="For"
|
|
226
|
-
helperText="Input 1 Helper Text"
|
|
227
|
-
/>
|
|
228
|
-
|
|
229
|
-
<TextInput
|
|
230
|
-
id="input2"
|
|
231
|
-
required={true}
|
|
232
|
-
type={TextInputTypes.text}
|
|
233
|
-
labelText="To"
|
|
234
|
-
helperText="Input 2 Helper Text"
|
|
235
|
-
/>
|
|
236
|
-
|
|
237
|
-
<HelperErrorText isError={true} id={"sharedHelperText"}>
|
|
238
|
-
Additional Error Text
|
|
239
|
-
</HelperErrorText>
|
|
240
|
-
</fieldset>
|
|
230
|
+
it("input shows error state", () => {
|
|
231
|
+
expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
|
|
232
|
+
"aria-invalid"
|
|
241
233
|
);
|
|
242
234
|
});
|
|
243
|
-
|
|
244
|
-
it("Renders legend", () => {
|
|
245
|
-
expect(screen.getByText("Input Group Label Legend")).toBeInTheDocument();
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
it("Renders two inputs", () => {
|
|
249
|
-
expect(screen.getAllByRole("textbox")).toHaveLength(2);
|
|
250
|
-
});
|
|
251
235
|
});
|
|
252
236
|
|
|
253
237
|
describe("Renders HTML attributes passed through the `attributes` prop", () => {
|
|
@@ -270,27 +254,27 @@ describe("Renders HTML attributes passed through the `attributes` prop", () => {
|
|
|
270
254
|
);
|
|
271
255
|
});
|
|
272
256
|
|
|
273
|
-
it("
|
|
257
|
+
it("has a maxlength for the input element", () => {
|
|
274
258
|
expect(screen.getByLabelText(/Input Label/i)).toHaveAttribute(
|
|
275
259
|
"maxLength",
|
|
276
260
|
"10"
|
|
277
261
|
);
|
|
278
262
|
});
|
|
279
263
|
|
|
280
|
-
it("
|
|
264
|
+
it("has a tabIndex", () => {
|
|
281
265
|
expect(screen.getByLabelText(/Input Label/i)).toHaveAttribute(
|
|
282
266
|
"tabIndex",
|
|
283
267
|
"0"
|
|
284
268
|
);
|
|
285
269
|
});
|
|
286
270
|
|
|
287
|
-
it("
|
|
271
|
+
it("calls the onChange function", () => {
|
|
288
272
|
expect(onChangeSpy).toHaveBeenCalledTimes(0);
|
|
289
273
|
userEvent.type(screen.getByLabelText(/Input Label/i), "Hello");
|
|
290
274
|
expect(onChangeSpy).toHaveBeenCalledTimes(5);
|
|
291
275
|
});
|
|
292
276
|
|
|
293
|
-
it("
|
|
277
|
+
it("calls the onBlur function", () => {
|
|
294
278
|
expect(onBlurSpy).toHaveBeenCalledTimes(0);
|
|
295
279
|
fireEvent.blur(screen.getByLabelText(/Input Label/i));
|
|
296
280
|
expect(onBlurSpy).toHaveBeenCalledTimes(1);
|
|
@@ -329,7 +313,7 @@ describe("Renders HTML attributes passed through the `attributes` prop", () => {
|
|
|
329
313
|
// });
|
|
330
314
|
|
|
331
315
|
describe("Hidden input", () => {
|
|
332
|
-
it("
|
|
316
|
+
it("renders a hidden type input", () => {
|
|
333
317
|
const utils = render(
|
|
334
318
|
<TextInput
|
|
335
319
|
id="inputID-hidden"
|
|
@@ -347,6 +331,21 @@ describe("Hidden input", () => {
|
|
|
347
331
|
"hidden"
|
|
348
332
|
);
|
|
349
333
|
});
|
|
334
|
+
|
|
335
|
+
it("does not show the helper text", () => {
|
|
336
|
+
render(
|
|
337
|
+
<TextInput
|
|
338
|
+
id="inputID-hidden"
|
|
339
|
+
labelText="Hidden Input Label"
|
|
340
|
+
helperText="Helper Text"
|
|
341
|
+
type={TextInputTypes.hidden}
|
|
342
|
+
value="hidden"
|
|
343
|
+
/>
|
|
344
|
+
);
|
|
345
|
+
|
|
346
|
+
expect(screen.queryByText("Hidden Input Label")).not.toBeInTheDocument();
|
|
347
|
+
expect(screen.queryByText("Helper Text")).not.toBeInTheDocument();
|
|
348
|
+
});
|
|
350
349
|
});
|
|
351
350
|
|
|
352
351
|
describe("Textarea element type", () => {
|
|
@@ -361,11 +360,11 @@ describe("Textarea element type", () => {
|
|
|
361
360
|
);
|
|
362
361
|
});
|
|
363
362
|
|
|
364
|
-
it("
|
|
363
|
+
it("renders a textarea element", () => {
|
|
365
364
|
expect(screen.getByRole("textbox")).toBeInTheDocument();
|
|
366
365
|
});
|
|
367
366
|
|
|
368
|
-
it("
|
|
367
|
+
it("renders label with label text", () => {
|
|
369
368
|
expect(screen.getByLabelText(/Custom textarea Label/i)).toBeInTheDocument();
|
|
370
369
|
});
|
|
371
370
|
});
|