@nypl/design-system-react-components 0.25.13 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -0
- package/README.md +10 -10
- package/dist/components/Accordion/Accordion.d.ts +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/dist/components/Button/Button.d.ts +2 -2
- package/dist/components/Card/Card.d.ts +11 -9
- package/dist/components/Checkbox/Checkbox.d.ts +2 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +5 -4
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +5 -6
- package/dist/components/Fieldset/Fieldset.d.ts +5 -6
- package/dist/components/Form/Form.d.ts +6 -6
- package/dist/components/Grid/GridTypes.d.ts +7 -7
- package/dist/components/Grid/SimpleGrid.d.ts +1 -1
- package/dist/components/Heading/Heading.d.ts +1 -1
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
- package/dist/components/Hero/Hero.d.ts +2 -1
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
- package/dist/components/Icons/Icon.d.ts +2 -1
- package/dist/components/Image/Image.d.ts +2 -2
- package/dist/components/Label/Label.d.ts +7 -4
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/List/List.d.ts +11 -11
- package/dist/components/List/ListTypes.d.ts +1 -1
- package/dist/components/Logo/Logo.d.ts +2 -1
- package/dist/components/Logo/LogoSvgs.d.ts +2 -0
- package/dist/components/Logo/LogoTypes.d.ts +2 -0
- package/dist/components/Modal/Modal.d.ts +28 -8
- package/dist/components/Notification/Notification.d.ts +4 -4
- package/dist/components/Pagination/Pagination.d.ts +2 -2
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
- package/dist/components/Radio/Radio.d.ts +4 -6
- package/dist/components/RadioGroup/RadioGroup.d.ts +12 -6
- package/dist/components/SearchBar/SearchBar.d.ts +4 -4
- package/dist/components/Select/Select.d.ts +10 -6
- package/dist/components/Select/SelectTypes.d.ts +4 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +4 -3
- package/dist/components/Slider/Slider.d.ts +6 -4
- package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +2 -2
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Tabs/Tabs.d.ts +4 -3
- package/dist/components/Template/Template.d.ts +4 -3
- package/dist/components/Text/Text.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +5 -5
- package/dist/components/Toggle/Toggle.d.ts +3 -4
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +1767 -1180
- 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 +1774 -1188
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/useCarouselStyles.d.ts +3 -2
- package/dist/hooks/useNYPLTheme.d.ts +12 -0
- package/dist/index.d.ts +5 -2
- package/dist/styles.css +1 -1
- package/dist/theme/components/button.d.ts +10 -2
- package/dist/theme/components/card.d.ts +42 -22
- package/dist/theme/components/checkbox.d.ts +5 -4
- package/dist/theme/components/checkboxGroup.d.ts +1 -1
- package/dist/theme/components/componentWrapper.d.ts +2 -2
- package/dist/theme/components/customTable.d.ts +84 -1
- package/dist/theme/components/fieldset.d.ts +4 -14
- package/dist/theme/components/global.d.ts +23 -17
- package/dist/theme/components/heading.d.ts +53 -0
- package/dist/theme/components/helperErrorText.d.ts +1 -0
- package/dist/theme/components/hero.d.ts +20 -14
- package/dist/theme/components/label.d.ts +9 -10
- package/dist/theme/components/list.d.ts +99 -9
- package/dist/theme/components/radio.d.ts +6 -4
- package/dist/theme/components/radioGroup.d.ts +1 -1
- package/dist/theme/components/select.d.ts +28 -5
- package/dist/theme/components/skeletonLoader.d.ts +2 -2
- package/dist/theme/components/slider.d.ts +6 -3
- package/dist/theme/components/structuredContent.d.ts +197 -0
- package/dist/theme/components/textInput.d.ts +18 -6
- package/dist/theme/components/toggle.d.ts +7 -4
- package/dist/theme/foundations/global.d.ts +2 -0
- package/dist/theme/foundations/radii.d.ts +1 -0
- package/dist/theme/foundations/spacing.d.ts +46 -43
- package/package.json +17 -19
- package/src/components/Accordion/Accordion.stories.mdx +9 -9
- package/src/components/Accordion/Accordion.test.tsx +21 -0
- package/src/components/Accordion/Accordion.tsx +13 -9
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +276 -27
- package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +21 -5
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +52 -31
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +8 -7
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
- package/src/components/Button/Button.stories.mdx +87 -23
- package/src/components/Button/Button.test.tsx +25 -0
- package/src/components/Button/Button.tsx +18 -7
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
- package/src/components/Card/Card.stories.mdx +287 -194
- package/src/components/Card/Card.test.tsx +102 -0
- package/src/components/Card/Card.tsx +73 -32
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +196 -36
- package/src/components/Chakra/Grid.stories.mdx +4 -4
- package/src/components/Checkbox/Checkbox.stories.mdx +62 -10
- package/src/components/Checkbox/Checkbox.test.tsx +32 -9
- package/src/components/Checkbox/Checkbox.tsx +20 -15
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +134 -7
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +65 -17
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +137 -81
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +31 -21
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +332 -97
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
- package/src/components/DatePicker/DatePicker.test.tsx +89 -13
- package/src/components/DatePicker/DatePicker.tsx +62 -56
- package/src/components/DatePicker/_DatePicker.scss +71 -13
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
- package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
- package/src/components/Fieldset/Fieldset.test.tsx +58 -28
- package/src/components/Fieldset/Fieldset.tsx +35 -30
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
- package/src/components/Form/Form.stories.mdx +72 -39
- package/src/components/Form/Form.test.tsx +58 -15
- package/src/components/Form/Form.tsx +89 -67
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
- package/src/components/Grid/GridTypes.tsx +7 -7
- package/src/components/Grid/SimpleGrid.stories.mdx +34 -6
- package/src/components/Grid/SimpleGrid.test.tsx +9 -0
- package/src/components/Grid/SimpleGrid.tsx +29 -20
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
- package/src/components/Heading/Heading.stories.mdx +36 -3
- package/src/components/Heading/Heading.test.tsx +10 -0
- package/src/components/Heading/Heading.tsx +56 -50
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +26 -7
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
- package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
- package/src/components/Hero/Hero.stories.mdx +125 -95
- package/src/components/Hero/Hero.test.tsx +33 -0
- package/src/components/Hero/Hero.tsx +135 -126
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -19
- package/src/components/HorizontalRule/HorizontalRule.tsx +9 -26
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
- package/src/components/Icons/Icon.stories.mdx +31 -6
- package/src/components/Icons/Icon.test.tsx +38 -0
- package/src/components/Icons/Icon.tsx +93 -76
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
- package/src/components/Image/Image.stories.mdx +29 -5
- package/src/components/Image/Image.test.tsx +8 -0
- package/src/components/Image/Image.tsx +38 -26
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
- package/src/components/Label/Label.stories.mdx +42 -20
- package/src/components/Label/Label.test.tsx +42 -17
- package/src/components/Label/Label.tsx +22 -13
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
- package/src/components/Link/Link.stories.mdx +25 -15
- package/src/components/Link/Link.test.tsx +21 -22
- package/src/components/Link/Link.tsx +8 -8
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
- package/src/components/List/List.stories.mdx +75 -40
- package/src/components/List/List.test.tsx +67 -19
- package/src/components/List/List.tsx +38 -25
- package/src/components/List/ListTypes.tsx +1 -1
- package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
- package/src/components/Logo/Logo.stories.mdx +30 -6
- package/src/components/Logo/Logo.test.tsx +17 -0
- package/src/components/Logo/Logo.tsx +18 -6
- package/src/components/Logo/LogoSvgs.tsx +4 -0
- package/src/components/Logo/LogoTypes.tsx +2 -0
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
- package/src/components/Modal/Modal.stories.mdx +256 -136
- package/src/components/Modal/Modal.test.tsx +151 -9
- package/src/components/Modal/Modal.tsx +140 -20
- package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +25 -0
- package/src/components/Notification/Notification.stories.mdx +25 -1
- package/src/components/Notification/Notification.test.tsx +23 -0
- package/src/components/Notification/Notification.tsx +46 -44
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
- package/src/components/Pagination/Pagination.stories.mdx +25 -6
- package/src/components/Pagination/Pagination.test.tsx +25 -0
- package/src/components/Pagination/Pagination.tsx +6 -6
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
- package/src/components/Placeholder/Placeholder.tsx +3 -1
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +81 -11
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +17 -9
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
- package/src/components/Radio/Radio.stories.mdx +64 -12
- package/src/components/Radio/Radio.test.tsx +28 -8
- package/src/components/Radio/Radio.tsx +66 -63
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +103 -6
- package/src/components/RadioGroup/RadioGroup.stories.mdx +224 -89
- package/src/components/RadioGroup/RadioGroup.test.tsx +122 -62
- package/src/components/RadioGroup/RadioGroup.tsx +106 -100
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1236 -1020
- package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
- package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
- package/src/components/SearchBar/SearchBar.tsx +17 -8
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
- package/src/components/Select/Select.stories.mdx +128 -49
- package/src/components/Select/Select.test.tsx +63 -16
- package/src/components/Select/Select.tsx +131 -92
- package/src/components/Select/SelectTypes.tsx +5 -0
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +765 -425
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +42 -10
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +8 -0
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +76 -72
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
- package/src/components/Slider/Slider.stories.mdx +91 -42
- package/src/components/Slider/Slider.test.tsx +65 -17
- package/src/components/Slider/Slider.tsx +26 -19
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
- package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
- package/src/components/StatusBadge/StatusBadge.test.tsx +16 -0
- package/src/components/StatusBadge/StatusBadge.tsx +25 -20
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
- package/src/components/StructuredContent/StructuredContent.stories.mdx +131 -12
- package/src/components/StructuredContent/StructuredContent.test.tsx +34 -0
- package/src/components/StructuredContent/StructuredContent.tsx +80 -75
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
- package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
- package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
- package/src/components/StyleGuide/ColorCard.tsx +1 -1
- package/src/components/StyleGuide/Colors.stories.mdx +1 -2
- package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
- package/src/components/StyleGuide/Forms.stories.mdx +27 -12
- package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
- package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
- package/src/components/StyleGuide/Typography.stories.mdx +30 -21
- package/src/components/Table/Table.stories.mdx +38 -11
- package/src/components/Table/Table.test.tsx +15 -0
- package/src/components/Table/Table.tsx +7 -7
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
- package/src/components/Tabs/Tabs.stories.mdx +52 -3
- package/src/components/Tabs/Tabs.test.tsx +16 -0
- package/src/components/Tabs/Tabs.tsx +10 -6
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
- package/src/components/Template/Template.stories.mdx +47 -43
- package/src/components/Template/Template.test.tsx +33 -0
- package/src/components/Template/Template.tsx +65 -60
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +191 -20
- package/src/components/Text/Text.stories.mdx +20 -1
- package/src/components/Text/Text.test.tsx +12 -0
- package/src/components/Text/Text.tsx +6 -4
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
- package/src/components/TextInput/TextInput.stories.mdx +65 -19
- package/src/components/TextInput/TextInput.test.tsx +42 -28
- package/src/components/TextInput/TextInput.tsx +121 -113
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
- package/src/components/Toggle/Toggle.stories.mdx +80 -22
- package/src/components/Toggle/Toggle.test.tsx +27 -9
- package/src/components/Toggle/Toggle.tsx +22 -18
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +128 -5
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +23 -0
- package/src/components/VideoPlayer/VideoPlayer.tsx +133 -126
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
- package/src/docs/Chakra.stories.mdx +50 -9
- package/src/docs/Welcome.stories.mdx +160 -41
- package/src/hooks/useCarouselStyles.stories.mdx +22 -2
- package/src/hooks/useCarouselStyles.ts +3 -2
- package/src/hooks/useNYPLTheme.stories.mdx +101 -0
- package/src/hooks/useNYPLTheme.ts +30 -6
- package/src/hooks/useWindowSize.stories.mdx +23 -0
- package/src/index.ts +5 -2
- package/src/styles/base/_place-holder.scss +1 -1
- package/src/styles.scss +0 -1
- package/src/theme/components/button.ts +15 -7
- package/src/theme/components/card.ts +30 -19
- package/src/theme/components/checkbox.ts +10 -8
- package/src/theme/components/checkboxGroup.ts +1 -1
- package/src/theme/components/componentWrapper.ts +2 -2
- package/src/theme/components/customTable.ts +39 -31
- package/src/theme/components/fieldset.ts +1 -2
- package/src/theme/components/global.ts +25 -20
- package/src/theme/components/heading.ts +1 -1
- package/src/theme/components/helperErrorText.ts +1 -0
- package/src/theme/components/hero.ts +13 -15
- package/src/theme/components/label.ts +4 -3
- package/src/theme/components/list.ts +73 -66
- package/src/theme/components/notification.ts +2 -2
- package/src/theme/components/radio.ts +9 -9
- package/src/theme/components/radioGroup.ts +1 -1
- package/src/theme/components/select.ts +31 -22
- package/src/theme/components/skeletonLoader.ts +3 -3
- package/src/theme/components/slider.ts +8 -7
- package/src/theme/components/statusBadge.ts +2 -2
- package/src/theme/components/structuredContent.ts +66 -1
- package/src/theme/components/tabs.ts +2 -2
- package/src/theme/components/template.ts +9 -9
- package/src/theme/components/textInput.ts +13 -12
- package/src/theme/components/toggle.ts +17 -10
- package/src/theme/components/videoPlayer.ts +1 -1
- package/src/theme/foundations/colors.ts +1 -1
- package/src/theme/foundations/radii.ts +1 -0
- package/src/theme/foundations/spacing.ts +70 -22
- package/src/theme/foundations/typography.ts +2 -2
- package/src/utils/componentCategories.ts +1 -2
- package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
- package/dist/helpers/generateUUID.d.ts +0 -1
- package/src/components/Modal/_Modal.scss +0 -18
- package/src/helpers/generateUUID.tsx +0 -5
|
@@ -50,9 +50,6 @@ import DSProvider from "../../theme/provider";
|
|
|
50
50
|
},
|
|
51
51
|
name: { control: false },
|
|
52
52
|
onChange: { control: false },
|
|
53
|
-
optReqFlag: {
|
|
54
|
-
table: { defaultValue: { summary: true } },
|
|
55
|
-
},
|
|
56
53
|
showBoxes: {
|
|
57
54
|
table: { defaultValue: { summary: true } },
|
|
58
55
|
},
|
|
@@ -62,6 +59,9 @@ import DSProvider from "../../theme/provider";
|
|
|
62
59
|
showLabel: {
|
|
63
60
|
table: { defaultValue: { summary: true } },
|
|
64
61
|
},
|
|
62
|
+
showRequiredLabel: {
|
|
63
|
+
table: { defaultValue: { summary: true } },
|
|
64
|
+
},
|
|
65
65
|
showValues: {
|
|
66
66
|
table: { defaultValue: { summary: true } },
|
|
67
67
|
},
|
|
@@ -76,7 +76,7 @@ import DSProvider from "../../theme/provider";
|
|
|
76
76
|
| Component Version | DS Version |
|
|
77
77
|
| ----------------- | ---------- |
|
|
78
78
|
| Added | `0.25.4` |
|
|
79
|
-
| Latest | `0.
|
|
79
|
+
| Latest | `0.26.0` |
|
|
80
80
|
|
|
81
81
|
## Table of Contents
|
|
82
82
|
|
|
@@ -114,10 +114,10 @@ For this type of component, the `value` prop must be a single number.
|
|
|
114
114
|
min: 0,
|
|
115
115
|
name: undefined,
|
|
116
116
|
onChange: undefined,
|
|
117
|
-
optReqFlag: true,
|
|
118
117
|
showBoxes: true,
|
|
119
118
|
showHelperInvalidText: true,
|
|
120
119
|
showLabel: true,
|
|
120
|
+
showRequiredLabel: true,
|
|
121
121
|
showValues: true,
|
|
122
122
|
step: 1,
|
|
123
123
|
}}
|
|
@@ -138,14 +138,17 @@ For this type of component, the `value` prop must be a single number.
|
|
|
138
138
|
|
|
139
139
|
## Accessibility
|
|
140
140
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
141
|
+
The `Slider` component is accessible via keyboard. In addition to the text fields,
|
|
142
|
+
a keyboard user can tab to the blue slider thumb and then with left and right
|
|
143
|
+
arrows increase or decrease the value. The color contrast between foreground
|
|
144
|
+
color and background color is 4.5:1. If text size is 200%, the button scales
|
|
145
|
+
with text so there is no overlap. Internally, a `Label` is associated with the
|
|
146
|
+
`<input>` element.
|
|
147
|
+
|
|
148
|
+
When `showLabel` is set to false, the `labelText` value will be set to the
|
|
149
|
+
main `<div>`'s `aria-label` attribute. This is the same `<div>` that contains the
|
|
150
|
+
`aria-valuemin`, `aria-valuemax`, `aria-orientation`, and `aria-valuenow`
|
|
151
|
+
attributes.
|
|
149
152
|
|
|
150
153
|
Resources:
|
|
151
154
|
|
|
@@ -157,10 +160,11 @@ Resources:
|
|
|
157
160
|
### Slider Accessibility Implementation
|
|
158
161
|
|
|
159
162
|
Chakra's `Slider` component is accessible and, as recommended, we pass in an
|
|
160
|
-
`aria-label` to their `Slider` component. On top of that, the
|
|
161
|
-
component's `<label>` points to the `<input>` element
|
|
162
|
-
value. This `input` element also has its own
|
|
163
|
-
is hidden, the `for` attribute in the `label`
|
|
163
|
+
`aria-label` to their `Slider` component. On top of that, the Reservoir Design
|
|
164
|
+
System (DS) `Slider` component's `<label>` points to the `<input>` element
|
|
165
|
+
which shows the current value. This `input` element also has its own
|
|
166
|
+
`aria-label`. When the input box is hidden, the `for` attribute in the `label`
|
|
167
|
+
element is removed.
|
|
164
168
|
|
|
165
169
|
Note that Chakra handles its single slider thumb aria attributes: `aria-valuemin`,
|
|
166
170
|
`aria-valuemax`, `aria-valuenow`, and `aria-orientation`.
|
|
@@ -190,10 +194,10 @@ numbers. This signifies the starting and ending values of the range slider.
|
|
|
190
194
|
min: 0,
|
|
191
195
|
name: undefined,
|
|
192
196
|
onChange: undefined,
|
|
193
|
-
optReqFlag: true,
|
|
194
197
|
showBoxes: true,
|
|
195
198
|
showHelperInvalidText: true,
|
|
196
199
|
showLabel: true,
|
|
200
|
+
showRequiredLabel: true,
|
|
197
201
|
showValues: true,
|
|
198
202
|
step: 1,
|
|
199
203
|
}}
|
|
@@ -227,9 +231,6 @@ Note that Chakra handles its two slider thumbs aria attributes: `aria-valuemin`,
|
|
|
227
231
|
|
|
228
232
|
### Single Slider States
|
|
229
233
|
|
|
230
|
-
Note: In the following examples, the "Required"/"Optional" text in the label is
|
|
231
|
-
hidden by setting the `optReqFlag` prop to false.
|
|
232
|
-
|
|
233
234
|
<Canvas>
|
|
234
235
|
<DSProvider>
|
|
235
236
|
<Heading
|
|
@@ -239,8 +240,8 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
239
240
|
/>
|
|
240
241
|
<Slider
|
|
241
242
|
defaultValue={50}
|
|
242
|
-
optReqFlag={false}
|
|
243
243
|
helperText="Component helper text."
|
|
244
|
+
id="single-slider"
|
|
244
245
|
invalidText="Component error text :("
|
|
245
246
|
labelText="Label"
|
|
246
247
|
/>
|
|
@@ -256,8 +257,8 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
256
257
|
/>
|
|
257
258
|
<Slider
|
|
258
259
|
defaultValue={50}
|
|
259
|
-
optReqFlag={false}
|
|
260
260
|
helperText="Component helper text."
|
|
261
|
+
id="errored-slider"
|
|
261
262
|
invalidText="Component error text :("
|
|
262
263
|
labelText="Label"
|
|
263
264
|
isInvalid
|
|
@@ -265,6 +266,24 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
265
266
|
</DSProvider>
|
|
266
267
|
</Canvas>
|
|
267
268
|
|
|
269
|
+
<Canvas>
|
|
270
|
+
<DSProvider>
|
|
271
|
+
<Heading
|
|
272
|
+
id="heading-single-required"
|
|
273
|
+
level={HeadingLevels.Four}
|
|
274
|
+
text="Required State"
|
|
275
|
+
/>
|
|
276
|
+
<Slider
|
|
277
|
+
defaultValue={50}
|
|
278
|
+
helperText="Component helper text."
|
|
279
|
+
id="required-slider"
|
|
280
|
+
invalidText="Component error text :("
|
|
281
|
+
labelText="Label"
|
|
282
|
+
isRequired
|
|
283
|
+
/>
|
|
284
|
+
</DSProvider>
|
|
285
|
+
</Canvas>
|
|
286
|
+
|
|
268
287
|
<Canvas>
|
|
269
288
|
<DSProvider>
|
|
270
289
|
<Heading
|
|
@@ -274,8 +293,8 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
274
293
|
/>
|
|
275
294
|
<Slider
|
|
276
295
|
defaultValue={50}
|
|
277
|
-
optReqFlag={false}
|
|
278
296
|
helperText="Component helper text."
|
|
297
|
+
id="disabled-slider"
|
|
279
298
|
invalidText="Component error text :("
|
|
280
299
|
labelText="Label"
|
|
281
300
|
isDisabled
|
|
@@ -287,9 +306,6 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
287
306
|
|
|
288
307
|
To enable the Range Slider, set the `isRangeSlider` prop to true.
|
|
289
308
|
|
|
290
|
-
Note: In the following examples, the "Required"/"Optional" text in the label is
|
|
291
|
-
hidden by setting the `optReqFlag` prop to false.
|
|
292
|
-
|
|
293
309
|
<Canvas>
|
|
294
310
|
<DSProvider>
|
|
295
311
|
<Heading
|
|
@@ -299,8 +315,8 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
299
315
|
/>
|
|
300
316
|
<Slider
|
|
301
317
|
defaultValue={[25, 75]}
|
|
302
|
-
optReqFlag={false}
|
|
303
318
|
helperText="Component helper text."
|
|
319
|
+
id="range-slider"
|
|
304
320
|
invalidText="Component error text :("
|
|
305
321
|
labelText="Label"
|
|
306
322
|
isRangeSlider
|
|
@@ -318,8 +334,8 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
318
334
|
<SimpleGrid columns={1} gap={GridGaps.Large}>
|
|
319
335
|
<Slider
|
|
320
336
|
defaultValue={[25, 75]}
|
|
321
|
-
optReqFlag={false}
|
|
322
337
|
helperText="Component helper text."
|
|
338
|
+
id="range-error-slider"
|
|
323
339
|
invalidText="Component error text :("
|
|
324
340
|
labelText="Label"
|
|
325
341
|
isRangeSlider
|
|
@@ -336,8 +352,8 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
336
352
|
</p>
|
|
337
353
|
<Slider
|
|
338
354
|
defaultValue={[80, 20]}
|
|
339
|
-
optReqFlag={false}
|
|
340
355
|
helperText="Component helper text."
|
|
356
|
+
id="range-error-slider2"
|
|
341
357
|
invalidText="Component error text :("
|
|
342
358
|
labelText="Label"
|
|
343
359
|
isRangeSlider
|
|
@@ -346,6 +362,25 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
346
362
|
</DSProvider>
|
|
347
363
|
</Canvas>
|
|
348
364
|
|
|
365
|
+
<Canvas>
|
|
366
|
+
<DSProvider>
|
|
367
|
+
<Heading
|
|
368
|
+
id="heading-range-required"
|
|
369
|
+
level={HeadingLevels.Four}
|
|
370
|
+
text="Required State"
|
|
371
|
+
/>
|
|
372
|
+
<Slider
|
|
373
|
+
defaultValue={[25, 75]}
|
|
374
|
+
helperText="Component helper text."
|
|
375
|
+
id="range-required-slider"
|
|
376
|
+
invalidText="Component error text :("
|
|
377
|
+
labelText="Label"
|
|
378
|
+
isRangeSlider
|
|
379
|
+
isRequired
|
|
380
|
+
/>
|
|
381
|
+
</DSProvider>
|
|
382
|
+
</Canvas>
|
|
383
|
+
|
|
349
384
|
<Canvas>
|
|
350
385
|
<DSProvider>
|
|
351
386
|
<Heading
|
|
@@ -355,8 +390,8 @@ hidden by setting the `optReqFlag` prop to false.
|
|
|
355
390
|
/>
|
|
356
391
|
<Slider
|
|
357
392
|
defaultValue={[25, 75]}
|
|
358
|
-
optReqFlag={false}
|
|
359
393
|
helperText="Component helper text."
|
|
394
|
+
id="single-disabled-slider"
|
|
360
395
|
invalidText="Component error text :("
|
|
361
396
|
labelText="Label"
|
|
362
397
|
isRangeSlider
|
|
@@ -381,6 +416,7 @@ input are hidden.
|
|
|
381
416
|
<Slider
|
|
382
417
|
defaultValue={50}
|
|
383
418
|
helperText="Component helper text."
|
|
419
|
+
id="single-slider-variant-1"
|
|
384
420
|
labelText="Label"
|
|
385
421
|
showValues={false}
|
|
386
422
|
showBoxes={false}
|
|
@@ -388,6 +424,7 @@ input are hidden.
|
|
|
388
424
|
<Slider
|
|
389
425
|
defaultValue={50}
|
|
390
426
|
helperText="Component helper text."
|
|
427
|
+
id="single-slider-variant-2"
|
|
391
428
|
labelText="Label"
|
|
392
429
|
showValues={false}
|
|
393
430
|
showBoxes={false}
|
|
@@ -396,16 +433,16 @@ input are hidden.
|
|
|
396
433
|
<Slider
|
|
397
434
|
defaultValue={50}
|
|
398
435
|
helperText="Component helper text."
|
|
436
|
+
id="single-slider-variant-3"
|
|
399
437
|
labelText="Label"
|
|
400
|
-
optReqFlag={false}
|
|
401
438
|
showValues={false}
|
|
402
439
|
showBoxes={false}
|
|
403
440
|
/>
|
|
404
441
|
<Slider
|
|
405
442
|
defaultValue={50}
|
|
406
443
|
helperText="Component helper text."
|
|
444
|
+
id="single-slider-variant-4"
|
|
407
445
|
labelText="Label"
|
|
408
|
-
optReqFlag={false}
|
|
409
446
|
showHelperInvalidText={false}
|
|
410
447
|
showValues={false}
|
|
411
448
|
showBoxes={false}
|
|
@@ -413,8 +450,8 @@ input are hidden.
|
|
|
413
450
|
<Slider
|
|
414
451
|
defaultValue={50}
|
|
415
452
|
helperText="Component helper text."
|
|
453
|
+
id="single-slider-variant-5"
|
|
416
454
|
labelText="Label"
|
|
417
|
-
optReqFlag={false}
|
|
418
455
|
showValues={false}
|
|
419
456
|
showBoxes={false}
|
|
420
457
|
showLabel={false}
|
|
@@ -436,6 +473,7 @@ For the following examples, all labels are hidden.
|
|
|
436
473
|
<Slider
|
|
437
474
|
defaultValue={50}
|
|
438
475
|
helperText="Component helper text."
|
|
476
|
+
id="hidden-labels-1"
|
|
439
477
|
labelText="Label"
|
|
440
478
|
showHelperInvalidText={false}
|
|
441
479
|
showLabel={false}
|
|
@@ -443,6 +481,7 @@ For the following examples, all labels are hidden.
|
|
|
443
481
|
<Slider
|
|
444
482
|
defaultValue={50}
|
|
445
483
|
helperText="Component helper text."
|
|
484
|
+
id="hidden-labels-2"
|
|
446
485
|
labelText="Label"
|
|
447
486
|
showHelperInvalidText={false}
|
|
448
487
|
showLabel={false}
|
|
@@ -451,6 +490,7 @@ For the following examples, all labels are hidden.
|
|
|
451
490
|
<Slider
|
|
452
491
|
defaultValue={50}
|
|
453
492
|
helperText="Component helper text."
|
|
493
|
+
id="hidden-labels-3"
|
|
454
494
|
labelText="Label"
|
|
455
495
|
showHelperInvalidText={false}
|
|
456
496
|
showLabel={false}
|
|
@@ -459,6 +499,7 @@ For the following examples, all labels are hidden.
|
|
|
459
499
|
<Slider
|
|
460
500
|
defaultValue={50}
|
|
461
501
|
helperText="Component helper text."
|
|
502
|
+
id="hidden-labels-4"
|
|
462
503
|
labelText="Label"
|
|
463
504
|
showHelperInvalidText={false}
|
|
464
505
|
showLabel={false}
|
|
@@ -479,38 +520,42 @@ In the following examples, all the labels are hidden.
|
|
|
479
520
|
<Slider
|
|
480
521
|
defaultValue={[15, 75]}
|
|
481
522
|
helperText="Component helper text."
|
|
523
|
+
id="range-slider-1"
|
|
524
|
+
isRangeSlider
|
|
482
525
|
labelText="Label"
|
|
483
526
|
showHelperInvalidText={false}
|
|
484
527
|
showLabel={false}
|
|
485
|
-
isRangeSlider
|
|
486
528
|
/>
|
|
487
529
|
<Slider
|
|
488
530
|
defaultValue={[15, 75]}
|
|
489
531
|
helperText="Component helper text."
|
|
532
|
+
id="range-slider-1"
|
|
533
|
+
isRangeSlider
|
|
490
534
|
labelText="Label"
|
|
535
|
+
showBoxes={false}
|
|
491
536
|
showHelperInvalidText={false}
|
|
492
537
|
showLabel={false}
|
|
493
|
-
showBoxes={false}
|
|
494
|
-
isRangeSlider
|
|
495
538
|
/>
|
|
496
539
|
<Slider
|
|
497
540
|
defaultValue={[15, 75]}
|
|
498
541
|
helperText="Component helper text."
|
|
542
|
+
id="range-slider-3"
|
|
543
|
+
isRangeSlider
|
|
499
544
|
labelText="Label"
|
|
500
545
|
showHelperInvalidText={false}
|
|
501
546
|
showLabel={false}
|
|
502
547
|
showValues={false}
|
|
503
|
-
isRangeSlider
|
|
504
548
|
/>
|
|
505
549
|
<Slider
|
|
506
550
|
defaultValue={[15, 75]}
|
|
507
551
|
helperText="Component helper text."
|
|
552
|
+
id="range-slider-4"
|
|
553
|
+
isRangeSlider
|
|
508
554
|
labelText="Label"
|
|
555
|
+
showBoxes={false}
|
|
509
556
|
showHelperInvalidText={false}
|
|
510
557
|
showLabel={false}
|
|
511
558
|
showValues={false}
|
|
512
|
-
showBoxes={false}
|
|
513
|
-
isRangeSlider
|
|
514
559
|
/>
|
|
515
560
|
</SimpleGrid>
|
|
516
561
|
</DSProvider>
|
|
@@ -539,6 +584,7 @@ function SliderExample() {
|
|
|
539
584
|
return (
|
|
540
585
|
<Slider
|
|
541
586
|
helperText="Component helper text."
|
|
587
|
+
id="slider"
|
|
542
588
|
labelText="Label"
|
|
543
589
|
onChange={onChange}
|
|
544
590
|
/>
|
|
@@ -553,6 +599,7 @@ export function SliderExample() {
|
|
|
553
599
|
return (
|
|
554
600
|
<Slider
|
|
555
601
|
helperText="Component helper text."
|
|
602
|
+
id="slider"
|
|
556
603
|
labelText="Label"
|
|
557
604
|
onChange={onChange}
|
|
558
605
|
/>
|
|
@@ -581,9 +628,10 @@ function RangeSliderExample() {
|
|
|
581
628
|
return (
|
|
582
629
|
<Slider
|
|
583
630
|
helperText="Component helper text."
|
|
631
|
+
id="range-slider"
|
|
632
|
+
isRangeSlider
|
|
584
633
|
labelText="Label"
|
|
585
634
|
onChange={onChange}
|
|
586
|
-
isRangeSlider
|
|
587
635
|
/>
|
|
588
636
|
);
|
|
589
637
|
}
|
|
@@ -599,9 +647,10 @@ export function RangeSliderExample() {
|
|
|
599
647
|
<Slider
|
|
600
648
|
defaultValue={[15, 75]}
|
|
601
649
|
helperText="Component helper text."
|
|
650
|
+
id="range-slider"
|
|
651
|
+
isRangeSlider
|
|
602
652
|
labelText="Label"
|
|
603
653
|
onChange={onChange}
|
|
604
|
-
isRangeSlider
|
|
605
654
|
/>
|
|
606
655
|
);
|
|
607
656
|
}
|
|
@@ -10,6 +10,7 @@ describe("Slider Accessibility", () => {
|
|
|
10
10
|
it("passes axe accessibility test", async () => {
|
|
11
11
|
const { container } = render(
|
|
12
12
|
<Slider
|
|
13
|
+
id="slider"
|
|
13
14
|
defaultValue={50}
|
|
14
15
|
helperText="Component helper text."
|
|
15
16
|
invalidText="Component error text :("
|
|
@@ -21,6 +22,7 @@ describe("Slider Accessibility", () => {
|
|
|
21
22
|
it("passes axe accessibility test without a label", async () => {
|
|
22
23
|
const { container } = render(
|
|
23
24
|
<Slider
|
|
25
|
+
id="slider"
|
|
24
26
|
defaultValue={50}
|
|
25
27
|
helperText="Component helper text."
|
|
26
28
|
invalidText="Component error text :("
|
|
@@ -33,6 +35,7 @@ describe("Slider Accessibility", () => {
|
|
|
33
35
|
it("passes axe accessibility test without visible values", async () => {
|
|
34
36
|
const { container } = render(
|
|
35
37
|
<Slider
|
|
38
|
+
id="slider"
|
|
36
39
|
defaultValue={50}
|
|
37
40
|
helperText="Component helper text."
|
|
38
41
|
invalidText="Component error text :("
|
|
@@ -49,6 +52,7 @@ describe("Slider Accessibility", () => {
|
|
|
49
52
|
it("passes axe accessibility test", async () => {
|
|
50
53
|
const { container } = render(
|
|
51
54
|
<Slider
|
|
55
|
+
id="slider"
|
|
52
56
|
defaultValue={[25, 75]}
|
|
53
57
|
helperText="Component helper text."
|
|
54
58
|
invalidText="Component error text :("
|
|
@@ -61,6 +65,7 @@ describe("Slider Accessibility", () => {
|
|
|
61
65
|
it("passes axe accessibility test without a label", async () => {
|
|
62
66
|
const { container } = render(
|
|
63
67
|
<Slider
|
|
68
|
+
id="slider"
|
|
64
69
|
defaultValue={[25, 75]}
|
|
65
70
|
helperText="Component helper text."
|
|
66
71
|
invalidText="Component error text :("
|
|
@@ -74,6 +79,7 @@ describe("Slider Accessibility", () => {
|
|
|
74
79
|
it("passes axe accessibility test without visible values", async () => {
|
|
75
80
|
const { container } = render(
|
|
76
81
|
<Slider
|
|
82
|
+
id="slider"
|
|
77
83
|
defaultValue={[25, 75]}
|
|
78
84
|
helperText="Component helper text."
|
|
79
85
|
invalidText="Component error text :("
|
|
@@ -93,6 +99,7 @@ describe("Slider", () => {
|
|
|
93
99
|
it("renders a label, two static values, text input, and helper text", () => {
|
|
94
100
|
render(
|
|
95
101
|
<Slider
|
|
102
|
+
id="slider"
|
|
96
103
|
defaultValue={50}
|
|
97
104
|
helperText="Component helper text."
|
|
98
105
|
invalidText="Component error text :("
|
|
@@ -100,7 +107,6 @@ describe("Slider", () => {
|
|
|
100
107
|
/>
|
|
101
108
|
);
|
|
102
109
|
expect(screen.getByText(/Label/i)).toBeInTheDocument();
|
|
103
|
-
expect(screen.getByText(/Optional/i)).toBeInTheDocument();
|
|
104
110
|
expect(screen.getByRole("slider")).toBeInTheDocument();
|
|
105
111
|
// default min and max values
|
|
106
112
|
expect(screen.getByText("0")).toBeInTheDocument();
|
|
@@ -128,20 +134,10 @@ describe("Slider", () => {
|
|
|
128
134
|
expect(slider).toHaveAttribute("aria-labelledBy", "sliderId-label");
|
|
129
135
|
});
|
|
130
136
|
|
|
131
|
-
it("renders the '
|
|
137
|
+
it("renders the '(Required)' text in the label or hides it", () => {
|
|
132
138
|
const { rerender } = render(
|
|
133
139
|
<Slider
|
|
134
|
-
|
|
135
|
-
helperText="Component helper text."
|
|
136
|
-
invalidText="Component error text :("
|
|
137
|
-
labelText="Label"
|
|
138
|
-
/>
|
|
139
|
-
);
|
|
140
|
-
// "Optional" by default.
|
|
141
|
-
expect(screen.getByText(/Optional/i)).toBeInTheDocument();
|
|
142
|
-
|
|
143
|
-
rerender(
|
|
144
|
-
<Slider
|
|
140
|
+
id="slider"
|
|
145
141
|
defaultValue={50}
|
|
146
142
|
helperText="Component helper text."
|
|
147
143
|
invalidText="Component error text :("
|
|
@@ -149,26 +145,26 @@ describe("Slider", () => {
|
|
|
149
145
|
isRequired
|
|
150
146
|
/>
|
|
151
147
|
);
|
|
152
|
-
expect(screen.queryByText(/Optional/i)).not.toBeInTheDocument();
|
|
153
148
|
expect(screen.getByText(/Required/i)).toBeInTheDocument();
|
|
154
149
|
|
|
155
150
|
rerender(
|
|
156
151
|
<Slider
|
|
152
|
+
id="slider"
|
|
157
153
|
defaultValue={50}
|
|
158
154
|
helperText="Component helper text."
|
|
159
155
|
invalidText="Component error text :("
|
|
160
156
|
labelText="Label"
|
|
161
157
|
isRequired
|
|
162
|
-
|
|
158
|
+
showRequiredLabel={false}
|
|
163
159
|
/>
|
|
164
160
|
);
|
|
165
|
-
expect(screen.queryByText(/Optional/i)).not.toBeInTheDocument();
|
|
166
161
|
expect(screen.queryByText(/Required/i)).not.toBeInTheDocument();
|
|
167
162
|
});
|
|
168
163
|
|
|
169
164
|
it("hides the label but adds it as an aria-label attribute", () => {
|
|
170
165
|
render(
|
|
171
166
|
<Slider
|
|
167
|
+
id="slider"
|
|
172
168
|
defaultValue={50}
|
|
173
169
|
helperText="Component helper text."
|
|
174
170
|
invalidText="Component error text :("
|
|
@@ -184,6 +180,7 @@ describe("Slider", () => {
|
|
|
184
180
|
it("hides the min/max static values", () => {
|
|
185
181
|
const { rerender } = render(
|
|
186
182
|
<Slider
|
|
183
|
+
id="slider"
|
|
187
184
|
defaultValue={50}
|
|
188
185
|
helperText="Component helper text."
|
|
189
186
|
invalidText="Component error text :("
|
|
@@ -197,6 +194,7 @@ describe("Slider", () => {
|
|
|
197
194
|
|
|
198
195
|
rerender(
|
|
199
196
|
<Slider
|
|
197
|
+
id="slider"
|
|
200
198
|
defaultValue={50}
|
|
201
199
|
helperText="Component helper text."
|
|
202
200
|
invalidText="Component error text :("
|
|
@@ -213,6 +211,7 @@ describe("Slider", () => {
|
|
|
213
211
|
it("hides the current value input box", () => {
|
|
214
212
|
const { rerender } = render(
|
|
215
213
|
<Slider
|
|
214
|
+
id="slider"
|
|
216
215
|
defaultValue={50}
|
|
217
216
|
helperText="Component helper text."
|
|
218
217
|
invalidText="Component error text :("
|
|
@@ -224,6 +223,7 @@ describe("Slider", () => {
|
|
|
224
223
|
|
|
225
224
|
rerender(
|
|
226
225
|
<Slider
|
|
226
|
+
id="slider"
|
|
227
227
|
defaultValue={50}
|
|
228
228
|
helperText="Component helper text."
|
|
229
229
|
invalidText="Component error text :("
|
|
@@ -237,6 +237,7 @@ describe("Slider", () => {
|
|
|
237
237
|
it("renders the invalid state", () => {
|
|
238
238
|
render(
|
|
239
239
|
<Slider
|
|
240
|
+
id="slider"
|
|
240
241
|
defaultValue={50}
|
|
241
242
|
helperText="Component helper text."
|
|
242
243
|
invalidText="Component error text :("
|
|
@@ -258,6 +259,7 @@ describe("Slider", () => {
|
|
|
258
259
|
it("renders the disabled state", () => {
|
|
259
260
|
render(
|
|
260
261
|
<Slider
|
|
262
|
+
id="slider"
|
|
261
263
|
defaultValue={50}
|
|
262
264
|
helperText="Component helper text."
|
|
263
265
|
invalidText="Component error text :("
|
|
@@ -274,6 +276,7 @@ describe("Slider", () => {
|
|
|
274
276
|
it("updates the value through the text input", () => {
|
|
275
277
|
render(
|
|
276
278
|
<Slider
|
|
279
|
+
id="slider"
|
|
277
280
|
defaultValue={50}
|
|
278
281
|
helperText="Component helper text."
|
|
279
282
|
invalidText="Component error text :("
|
|
@@ -298,6 +301,7 @@ describe("Slider", () => {
|
|
|
298
301
|
let currentValue = 0;
|
|
299
302
|
render(
|
|
300
303
|
<Slider
|
|
304
|
+
id="slider"
|
|
301
305
|
defaultValue={50}
|
|
302
306
|
helperText="Component helper text."
|
|
303
307
|
invalidText="Component error text :("
|
|
@@ -322,6 +326,7 @@ describe("Slider", () => {
|
|
|
322
326
|
|
|
323
327
|
render(
|
|
324
328
|
<Slider
|
|
329
|
+
id="slider"
|
|
325
330
|
defaultValue={50}
|
|
326
331
|
helperText="Component helper text."
|
|
327
332
|
invalidText="Component error text :("
|
|
@@ -431,6 +436,31 @@ describe("Slider", () => {
|
|
|
431
436
|
/>
|
|
432
437
|
)
|
|
433
438
|
.toJSON();
|
|
439
|
+
const withChakraProps = renderer
|
|
440
|
+
.create(
|
|
441
|
+
<Slider
|
|
442
|
+
id="chakra"
|
|
443
|
+
defaultValue={50}
|
|
444
|
+
helperText="Component helper text."
|
|
445
|
+
invalidText="Component error text :("
|
|
446
|
+
labelText="Label"
|
|
447
|
+
p="20px"
|
|
448
|
+
color="ui.error.primary"
|
|
449
|
+
/>
|
|
450
|
+
)
|
|
451
|
+
.toJSON();
|
|
452
|
+
const withOtherProps = renderer
|
|
453
|
+
.create(
|
|
454
|
+
<Slider
|
|
455
|
+
id="props"
|
|
456
|
+
defaultValue={50}
|
|
457
|
+
helperText="Component helper text."
|
|
458
|
+
invalidText="Component error text :("
|
|
459
|
+
labelText="Label"
|
|
460
|
+
data-testid="props"
|
|
461
|
+
/>
|
|
462
|
+
)
|
|
463
|
+
.toJSON();
|
|
434
464
|
|
|
435
465
|
expect(defaultSlider).toMatchSnapshot();
|
|
436
466
|
expect(errored).toMatchSnapshot();
|
|
@@ -439,6 +469,8 @@ describe("Slider", () => {
|
|
|
439
469
|
expect(noLabels).toMatchSnapshot();
|
|
440
470
|
expect(noVisibleValues).toMatchSnapshot();
|
|
441
471
|
expect(onlySlider).toMatchSnapshot();
|
|
472
|
+
expect(withChakraProps).toMatchSnapshot();
|
|
473
|
+
expect(withOtherProps).toMatchSnapshot();
|
|
442
474
|
});
|
|
443
475
|
});
|
|
444
476
|
|
|
@@ -446,6 +478,7 @@ describe("Slider", () => {
|
|
|
446
478
|
it("renders everything from the single but also two text input fields", () => {
|
|
447
479
|
render(
|
|
448
480
|
<Slider
|
|
481
|
+
id="slider"
|
|
449
482
|
defaultValue={[25, 75]}
|
|
450
483
|
helperText="Component helper text."
|
|
451
484
|
invalidText="Component error text :("
|
|
@@ -454,7 +487,6 @@ describe("Slider", () => {
|
|
|
454
487
|
/>
|
|
455
488
|
);
|
|
456
489
|
expect(screen.getByText(/Label/i)).toBeInTheDocument();
|
|
457
|
-
expect(screen.getByText(/Optional/i)).toBeInTheDocument();
|
|
458
490
|
// The range slider has two sliders!
|
|
459
491
|
expect(screen.getAllByRole("slider")).toHaveLength(2);
|
|
460
492
|
// default min and max values
|
|
@@ -495,6 +527,7 @@ describe("Slider", () => {
|
|
|
495
527
|
it("hides the label but adds it as an aria-label attribute", () => {
|
|
496
528
|
render(
|
|
497
529
|
<Slider
|
|
530
|
+
id="slider"
|
|
498
531
|
defaultValue={[25, 75]}
|
|
499
532
|
helperText="Component helper text."
|
|
500
533
|
invalidText="Component error text :("
|
|
@@ -518,6 +551,7 @@ describe("Slider", () => {
|
|
|
518
551
|
it("renders with min and max values as the default values if no `defaultValue` array is passed", () => {
|
|
519
552
|
render(
|
|
520
553
|
<Slider
|
|
554
|
+
id="slider"
|
|
521
555
|
helperText="Component helper text."
|
|
522
556
|
invalidText="Component error text :("
|
|
523
557
|
isRangeSlider
|
|
@@ -534,6 +568,7 @@ describe("Slider", () => {
|
|
|
534
568
|
// The start value is bigger than the end value.
|
|
535
569
|
render(
|
|
536
570
|
<Slider
|
|
571
|
+
id="slider"
|
|
537
572
|
defaultValue={[75, 25]}
|
|
538
573
|
helperText="Component helper text."
|
|
539
574
|
invalidText="Component error text :("
|
|
@@ -559,6 +594,7 @@ describe("Slider", () => {
|
|
|
559
594
|
it("updates the value through the text input", () => {
|
|
560
595
|
render(
|
|
561
596
|
<Slider
|
|
597
|
+
id="slider"
|
|
562
598
|
defaultValue={[25, 75]}
|
|
563
599
|
helperText="Component helper text."
|
|
564
600
|
invalidText="Component error text :("
|
|
@@ -579,6 +615,18 @@ describe("Slider", () => {
|
|
|
579
615
|
expect(endingInput).toHaveValue(79);
|
|
580
616
|
});
|
|
581
617
|
|
|
618
|
+
it("logs a warning when there is no `id` passed", () => {
|
|
619
|
+
const warn = jest.spyOn(console, "warn");
|
|
620
|
+
render(
|
|
621
|
+
// @ts-ignore: Typescript complains when a required prop is not passed, but
|
|
622
|
+
// here we don't want to pass the required prop to make sure the warning appears.
|
|
623
|
+
<Slider labelText="Label" />
|
|
624
|
+
);
|
|
625
|
+
expect(warn).toHaveBeenCalledWith(
|
|
626
|
+
"NYPL Reservoir Slider: This component's required `id` prop was not passed."
|
|
627
|
+
);
|
|
628
|
+
});
|
|
629
|
+
|
|
582
630
|
it("renders the UI snapshot correctly", () => {
|
|
583
631
|
const defaultRangeSlider = renderer
|
|
584
632
|
.create(
|