@nypl/design-system-react-components 0.25.5 → 0.25.9
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 +91 -1
- package/README.md +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -0
- package/dist/components/Button/Button.d.ts +6 -6
- package/dist/components/Button/ButtonTypes.d.ts +0 -1
- package/dist/components/Card/Card.d.ts +6 -4
- package/dist/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
- package/dist/components/DatePicker/DatePicker.d.ts +3 -2
- package/dist/components/Form/Form.d.ts +2 -2
- package/dist/components/Heading/Heading.d.ts +7 -3
- package/dist/components/Heading/HeadingTypes.d.ts +6 -6
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -2
- package/dist/components/Icons/Icon.d.ts +4 -4
- package/dist/components/Icons/IconSvgs.d.ts +1 -21
- package/dist/components/Icons/IconTypes.d.ts +1 -23
- package/dist/components/Image/Image.d.ts +11 -3
- package/dist/components/Image/ImageTypes.d.ts +3 -1
- package/dist/components/Link/LinkTypes.d.ts +1 -0
- package/dist/components/Logo/Logo.d.ts +28 -0
- package/dist/components/Logo/LogoSvgs.d.ts +18 -0
- package/dist/components/Logo/LogoTypes.d.ts +30 -0
- package/dist/components/Modal/Modal.d.ts +0 -4
- package/dist/components/Notification/Notification.d.ts +4 -2
- package/dist/components/Placeholder/Placeholder.d.ts +3 -5
- package/dist/components/Radio/Radio.d.ts +6 -5
- package/dist/components/RadioGroup/RadioGroup.d.ts +3 -2
- package/dist/components/SearchBar/SearchBar.d.ts +10 -2
- package/dist/components/Select/Select.d.ts +5 -2
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
- package/dist/components/Slider/Slider.d.ts +3 -2
- package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
- package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
- package/dist/components/Table/Table.d.ts +23 -0
- package/dist/components/Template/Template.d.ts +8 -3
- package/dist/components/Text/Text.d.ts +2 -2
- package/dist/components/TextInput/TextInput.d.ts +4 -3
- package/dist/components/Toggle/Toggle.d.ts +48 -0
- package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
- package/dist/design-system-react-components.cjs.development.js +5989 -5490
- 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 +6057 -5551
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/styles.css +2 -2
- package/dist/theme/components/breadcrumb.d.ts +9 -0
- package/dist/theme/components/button.d.ts +0 -12
- package/dist/theme/components/card.d.ts +14 -2
- package/dist/theme/components/customTable.d.ts +47 -0
- package/dist/theme/components/fieldset.d.ts +2 -2
- package/dist/theme/components/global.d.ts +1 -1
- package/dist/theme/components/heading.d.ts +4 -0
- package/dist/theme/components/label.d.ts +1 -1
- package/dist/theme/components/link.d.ts +14 -1
- package/dist/theme/components/list.d.ts +0 -2
- package/dist/theme/components/logo.d.ts +4 -0
- package/dist/theme/components/notification.d.ts +8 -4
- package/dist/theme/components/searchBar.d.ts +7 -13
- package/dist/theme/components/select.d.ts +1 -0
- package/dist/theme/components/structuredContent.d.ts +33 -0
- package/dist/theme/components/template.d.ts +10 -10
- package/dist/theme/components/textInput.d.ts +2 -0
- package/dist/theme/components/toggle.d.ts +71 -0
- package/dist/theme/foundations/spacing.d.ts +2 -0
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +2 -3
- package/src/__tests__/utils/utils.test.ts +23 -1
- package/src/components/Accordion/Accordion.stories.mdx +15 -14
- package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
- package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
- package/src/components/Autosuggest/_Autosuggest.scss +2 -6
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +50 -14
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +20 -0
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +198 -0
- package/src/components/Button/Button.stories.mdx +93 -48
- package/src/components/Button/Button.test.tsx +0 -12
- package/src/components/Button/Button.tsx +7 -8
- package/src/components/Button/ButtonTypes.tsx +0 -1
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
- package/src/components/Card/Card.stories.mdx +246 -64
- package/src/components/Card/Card.test.tsx +45 -22
- package/src/components/Card/Card.tsx +26 -13
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
- package/src/components/Chakra/Box.stories.mdx +3 -3
- package/src/components/Chakra/Center.stories.mdx +5 -5
- package/src/components/Chakra/Grid.stories.mdx +14 -17
- package/src/components/Chakra/Stack.stories.mdx +2 -2
- package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
- package/src/components/Checkbox/Checkbox.tsx +13 -8
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
- package/src/components/DatePicker/DatePicker.test.tsx +8 -6
- package/src/components/DatePicker/DatePicker.tsx +10 -6
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
- package/src/components/Fieldset/Fieldset.stories.mdx +19 -8
- package/src/components/Form/Form.stories.mdx +49 -41
- package/src/components/Form/Form.tsx +5 -4
- package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
- package/src/components/Heading/Heading.stories.mdx +59 -23
- package/src/components/Heading/Heading.test.tsx +82 -18
- package/src/components/Heading/Heading.tsx +31 -31
- package/src/components/Heading/HeadingTypes.tsx +6 -6
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
- package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
- package/src/components/Hero/Hero.stories.mdx +72 -53
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +9 -8
- package/src/components/HorizontalRule/HorizontalRule.tsx +2 -4
- package/src/components/Icons/Icon.stories.mdx +77 -75
- package/src/components/Icons/Icon.tsx +4 -5
- package/src/components/Icons/IconSvgs.tsx +2 -42
- package/src/components/Icons/IconTypes.tsx +1 -24
- package/src/components/Image/Image.stories.mdx +214 -104
- package/src/components/Image/Image.test.tsx +10 -0
- package/src/components/Image/Image.tsx +21 -10
- package/src/components/Image/ImageTypes.ts +2 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
- package/src/components/Label/Label.stories.mdx +21 -20
- package/src/components/Link/Link.stories.mdx +103 -53
- package/src/components/Link/Link.test.tsx +108 -7
- package/src/components/Link/Link.tsx +58 -19
- package/src/components/Link/LinkTypes.tsx +1 -0
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
- package/src/components/List/List.stories.mdx +36 -24
- package/src/components/Logo/Logo.stories.mdx +220 -0
- package/src/components/Logo/Logo.test.tsx +98 -0
- package/src/components/Logo/Logo.tsx +97 -0
- package/src/components/Logo/LogoSvgs.tsx +34 -0
- package/src/components/Logo/LogoTypes.tsx +32 -0
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
- package/src/components/Modal/Modal.stories.mdx +20 -5
- package/src/components/Modal/Modal.tsx +2 -8
- package/src/components/Notification/Notification.stories.mdx +96 -40
- package/src/components/Notification/Notification.test.tsx +62 -16
- package/src/components/Notification/Notification.tsx +26 -9
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
- package/src/components/Pagination/Pagination.stories.mdx +18 -8
- package/src/components/Pagination/Pagination.tsx +1 -1
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
- package/src/components/Placeholder/Placeholder.tsx +7 -14
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
- package/src/components/Radio/Radio.stories.mdx +39 -19
- package/src/components/Radio/Radio.tsx +13 -9
- package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
- package/src/components/RadioGroup/RadioGroup.tsx +15 -11
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +6 -3
- package/src/components/SearchBar/SearchBar.Test.tsx +114 -22
- package/src/components/SearchBar/SearchBar.stories.mdx +111 -33
- package/src/components/SearchBar/SearchBar.tsx +57 -33
- package/src/components/Select/Select.stories.mdx +177 -66
- package/src/components/Select/Select.test.tsx +2 -2
- package/src/components/Select/Select.tsx +22 -12
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
- package/src/components/Slider/Slider.stories.mdx +74 -23
- package/src/components/Slider/Slider.test.tsx +35 -0
- package/src/components/Slider/Slider.tsx +22 -11
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +60 -30
- package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
- package/src/components/StatusBadge/StatusBadge.tsx +2 -1
- package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
- package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
- package/src/components/StructuredContent/StructuredContent.tsx +153 -0
- package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
- package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
- package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
- package/src/components/StyleGuide/ColorCard.tsx +1 -2
- package/src/components/StyleGuide/Colors.stories.mdx +3 -11
- package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
- package/src/components/StyleGuide/Forms.stories.mdx +2 -10
- package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
- package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
- package/src/components/StyleGuide/Typography.stories.mdx +64 -76
- package/src/components/Table/Table.stories.mdx +66 -0
- package/src/components/Table/Table.test.tsx +60 -0
- package/src/components/Table/Table.tsx +116 -0
- package/src/components/Tabs/Tabs.stories.mdx +19 -13
- package/src/components/Tabs/Tabs.test.tsx +1 -1
- package/src/components/Template/Template.stories.mdx +57 -49
- package/src/components/Template/Template.test.tsx +65 -5
- package/src/components/Template/Template.tsx +35 -5
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +76 -0
- package/src/components/Text/Text.stories.mdx +33 -11
- package/src/components/Text/Text.tsx +2 -2
- package/src/components/TextInput/TextInput.stories.mdx +84 -17
- package/src/components/TextInput/TextInput.test.tsx +96 -0
- package/src/components/TextInput/TextInput.tsx +12 -8
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
- package/src/components/Toggle/Toggle.stories.mdx +200 -0
- package/src/components/Toggle/Toggle.test.tsx +140 -0
- package/src/components/Toggle/Toggle.tsx +123 -0
- package/src/components/Toggle/ToggleSizes.tsx +4 -0
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
- package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
- package/src/docs/Chakra.stories.mdx +5 -8
- package/src/docs/Intro.stories.mdx +2 -2
- package/src/index.ts +13 -4
- package/src/styles/base/_03-base.scss +1 -1
- package/src/styles/base/_place-holder.scss +7 -7
- package/src/styles.scss +1 -5
- package/src/theme/components/breadcrumb.ts +14 -4
- package/src/theme/components/button.ts +5 -12
- package/src/theme/components/card.ts +9 -7
- package/src/theme/components/checkbox.ts +1 -1
- package/src/theme/components/customTable.ts +50 -0
- package/src/theme/components/datePicker.ts +1 -1
- package/src/theme/components/global.ts +7 -7
- package/src/theme/components/heading.ts +13 -11
- package/src/theme/components/helperErrorText.ts +1 -1
- package/src/theme/components/icon.ts +2 -2
- package/src/theme/components/image.ts +9 -1
- package/src/theme/components/link.ts +17 -5
- package/src/theme/components/list.ts +1 -3
- package/src/theme/components/logo.ts +54 -0
- package/src/theme/components/notification.ts +9 -7
- package/src/theme/components/searchBar.ts +7 -13
- package/src/theme/components/select.ts +1 -0
- package/src/theme/components/statusBadge.ts +1 -1
- package/src/theme/components/structuredContent.ts +54 -0
- package/src/theme/components/template.ts +10 -10
- package/src/theme/components/text.ts +6 -6
- package/src/theme/components/textInput.ts +1 -0
- package/src/theme/components/toggle.ts +69 -0
- package/src/theme/components/videoPlayer.ts +0 -2
- package/src/theme/foundations/global.ts +2 -2
- package/src/theme/foundations/spacing.ts +3 -0
- package/src/theme/foundations/typography.ts +84 -12
- package/src/theme/index.ts +8 -0
- package/src/utils/componentCategories.ts +4 -2
- package/src/utils/utils.ts +17 -0
- package/dist/__tests__/utils/bem.test.d.ts +0 -1
- package/dist/components/CardEdition/CardEdition.d.ts +0 -21
- package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
- package/dist/components/Input/Input.d.ts +0 -36
- package/dist/components/Input/Input.stories.d.ts +0 -29
- package/dist/components/Input/InputTypes.d.ts +0 -6
- package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
- package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
- package/dist/helpers/getCSSVariable.d.ts +0 -1
- package/dist/interfaces.d.ts +0 -3
- package/dist/utils/bem.d.ts +0 -1
- package/src/__tests__/utils/bem.test.ts +0 -37
- package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
- package/src/components/CardEdition/CardEdition.test.tsx +0 -395
- package/src/components/CardEdition/CardEdition.tsx +0 -60
- package/src/components/CardEdition/_CardEdition.scss +0 -137
- package/src/components/Input/Input.stories.tsx +0 -133
- package/src/components/Input/Input.test.tsx +0 -266
- package/src/components/Input/Input.tsx +0 -81
- package/src/components/Input/InputTypes.tsx +0 -8
- package/src/components/Input/_Input.scss +0 -78
- package/src/components/StyleGuide/UIDocCard.tsx +0 -36
- package/src/helpers/CSSVariablesHelper.tsx +0 -34
- package/src/helpers/getCSSVariable.tsx +0 -5
- package/src/interfaces.ts +0 -3
- package/src/utils/bem.ts +0 -44
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
2
|
ArgsTable,
|
|
3
|
+
Canvas,
|
|
6
4
|
Description,
|
|
7
|
-
|
|
5
|
+
Meta,
|
|
6
|
+
Story,
|
|
7
|
+
} from "@storybook/addon-docs";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
|
|
10
|
-
import Slider from "./Slider";
|
|
11
|
-
import SimpleGrid from "../Grid/SimpleGrid";
|
|
12
|
-
import { GridGaps } from "../Grid/GridTypes";
|
|
13
10
|
import Heading from "../Heading/Heading";
|
|
14
11
|
import { HeadingLevels } from "../Heading/HeadingTypes";
|
|
12
|
+
import { GridGaps } from "../Grid/GridTypes";
|
|
13
|
+
import SimpleGrid from "../Grid/SimpleGrid";
|
|
14
|
+
import Slider from "./Slider";
|
|
15
15
|
import { getCategory } from "../../utils/componentCategories";
|
|
16
16
|
import DSProvider from "../../theme/provider";
|
|
17
17
|
|
|
@@ -22,16 +22,52 @@ import DSProvider from "../../theme/provider";
|
|
|
22
22
|
parameters={{
|
|
23
23
|
design: {
|
|
24
24
|
type: "figma",
|
|
25
|
-
url:
|
|
26
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36889%3A25871",
|
|
25
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36889%3A25871",
|
|
27
26
|
},
|
|
28
27
|
jest: ["Slider.test.tsx"],
|
|
29
28
|
}}
|
|
30
29
|
argTypes={{
|
|
31
|
-
className: {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
className: { control: false },
|
|
31
|
+
defaultValue: {
|
|
32
|
+
control: false,
|
|
33
|
+
table: { defaultValue: { summary: 0 } },
|
|
34
|
+
},
|
|
35
|
+
id: { control: false },
|
|
36
|
+
isDisabled: {
|
|
37
|
+
table: { defaultValue: { summary: false } },
|
|
38
|
+
},
|
|
39
|
+
isInvalid: {
|
|
40
|
+
table: { defaultValue: { summary: false } },
|
|
41
|
+
},
|
|
42
|
+
isRequired: {
|
|
43
|
+
table: { defaultValue: { summary: false } },
|
|
44
|
+
},
|
|
45
|
+
max: {
|
|
46
|
+
table: { defaultValue: { summary: 100 } },
|
|
47
|
+
},
|
|
48
|
+
min: {
|
|
49
|
+
table: { defaultValue: { summary: 0 } },
|
|
50
|
+
},
|
|
51
|
+
name: { control: false },
|
|
52
|
+
onChange: { control: false },
|
|
53
|
+
optReqFlag: {
|
|
54
|
+
table: { defaultValue: { summary: true } },
|
|
55
|
+
},
|
|
56
|
+
showBoxes: {
|
|
57
|
+
table: { defaultValue: { summary: true } },
|
|
58
|
+
},
|
|
59
|
+
showHelperInvalidText: {
|
|
60
|
+
table: { defaultValue: { summary: true } },
|
|
61
|
+
},
|
|
62
|
+
showLabel: {
|
|
63
|
+
table: { defaultValue: { summary: true } },
|
|
64
|
+
},
|
|
65
|
+
showValues: {
|
|
66
|
+
table: { defaultValue: { summary: true } },
|
|
67
|
+
},
|
|
68
|
+
step: {
|
|
69
|
+
table: { defaultValue: { summary: 1 } },
|
|
70
|
+
},
|
|
35
71
|
}}
|
|
36
72
|
/>
|
|
37
73
|
|
|
@@ -40,7 +76,7 @@ import DSProvider from "../../theme/provider";
|
|
|
40
76
|
| Component Version | DS Version |
|
|
41
77
|
| ----------------- | ---------- |
|
|
42
78
|
| Added | `0.25.4` |
|
|
43
|
-
| Latest | `0.25.
|
|
79
|
+
| Latest | `0.25.9` |
|
|
44
80
|
|
|
45
81
|
<Description of={Slider} />
|
|
46
82
|
|
|
@@ -49,10 +85,12 @@ For this type of component, the `value` prop must be a single number.
|
|
|
49
85
|
|
|
50
86
|
<Canvas withToolbar>
|
|
51
87
|
<Story
|
|
52
|
-
name="Slider with
|
|
88
|
+
name="Slider with Controls"
|
|
53
89
|
args={{
|
|
90
|
+
className: undefined,
|
|
54
91
|
defaultValue: 50,
|
|
55
92
|
helperText: "Pass in a value from the min 0 to the max 100 values.",
|
|
93
|
+
id: "slider-id",
|
|
56
94
|
invalidText: "Oh no this is an error :(",
|
|
57
95
|
isDisabled: false,
|
|
58
96
|
isInvalid: false,
|
|
@@ -61,6 +99,8 @@ For this type of component, the `value` prop must be a single number.
|
|
|
61
99
|
labelText: "Slider label",
|
|
62
100
|
max: 100,
|
|
63
101
|
min: 0,
|
|
102
|
+
name: undefined,
|
|
103
|
+
onChange: undefined,
|
|
64
104
|
optReqFlag: true,
|
|
65
105
|
showBoxes: true,
|
|
66
106
|
showHelperInvalidText: true,
|
|
@@ -69,15 +109,19 @@ For this type of component, the `value` prop must be a single number.
|
|
|
69
109
|
step: 1,
|
|
70
110
|
}}
|
|
71
111
|
argTypes={{
|
|
72
|
-
|
|
73
|
-
|
|
112
|
+
isRangeSlider: {
|
|
113
|
+
control: false,
|
|
114
|
+
table: {
|
|
115
|
+
defaultValue: { summary: false },
|
|
116
|
+
},
|
|
117
|
+
},
|
|
74
118
|
}}
|
|
75
119
|
>
|
|
76
120
|
{(args) => <Slider {...args} />}
|
|
77
121
|
</Story>
|
|
78
122
|
</Canvas>
|
|
79
123
|
|
|
80
|
-
<ArgsTable story="Slider with
|
|
124
|
+
<ArgsTable story="Slider with Controls" />
|
|
81
125
|
|
|
82
126
|
### Accessibility
|
|
83
127
|
|
|
@@ -101,8 +145,10 @@ numbers. This signifies the starting and ending values of the range slider.
|
|
|
101
145
|
<Story
|
|
102
146
|
name="Range Slider with Props"
|
|
103
147
|
args={{
|
|
148
|
+
className: undefined,
|
|
104
149
|
defaultValue: [25, 75],
|
|
105
150
|
helperText: "Pass in a value from the min 0 to the max 100 values.",
|
|
151
|
+
id: "slider-range-id",
|
|
106
152
|
invalidText: "Oh no this is an error :(",
|
|
107
153
|
isDisabled: false,
|
|
108
154
|
isInvalid: false,
|
|
@@ -111,6 +157,8 @@ numbers. This signifies the starting and ending values of the range slider.
|
|
|
111
157
|
labelText: "Range Slider label",
|
|
112
158
|
max: 100,
|
|
113
159
|
min: 0,
|
|
160
|
+
name: undefined,
|
|
161
|
+
onChange: undefined,
|
|
114
162
|
optReqFlag: true,
|
|
115
163
|
showBoxes: true,
|
|
116
164
|
showHelperInvalidText: true,
|
|
@@ -119,16 +167,18 @@ numbers. This signifies the starting and ending values of the range slider.
|
|
|
119
167
|
step: 1,
|
|
120
168
|
}}
|
|
121
169
|
argTypes={{
|
|
122
|
-
|
|
123
|
-
|
|
170
|
+
isRangeSlider: {
|
|
171
|
+
control: false,
|
|
172
|
+
table: {
|
|
173
|
+
defaultValue: { summary: false },
|
|
174
|
+
},
|
|
175
|
+
},
|
|
124
176
|
}}
|
|
125
177
|
>
|
|
126
178
|
{(args) => <Slider {...args} />}
|
|
127
179
|
</Story>
|
|
128
180
|
</Canvas>
|
|
129
181
|
|
|
130
|
-
<ArgsTable story="Range Slider with Props" />
|
|
131
|
-
|
|
132
182
|
### Accessibility
|
|
133
183
|
|
|
134
184
|
Chakra's `RangeSlider` component is accessible and, as recommended, we pass in
|
|
@@ -439,7 +489,8 @@ Pass a callback function to the `onChange` prop to get the current number value
|
|
|
439
489
|
of the `Slider` component or an array of two numbers when it is a range slider.
|
|
440
490
|
Internally, the `Slider` component handles the state of the current selected
|
|
441
491
|
value or values. Once the value(s) is updated, the `onChange` callback will be
|
|
442
|
-
called and the values will be passed.
|
|
492
|
+
called and the values will be passed. If no `onChange` callback is provided,
|
|
493
|
+
you won't be able to get the updated value(s) of the `Slider` component.
|
|
443
494
|
|
|
444
495
|
#### Single Slider Value
|
|
445
496
|
|
|
@@ -294,6 +294,26 @@ describe("Slider", () => {
|
|
|
294
294
|
expect(input).toHaveValue(100);
|
|
295
295
|
});
|
|
296
296
|
|
|
297
|
+
it("doesn't crash if no onChange callback function is passed", () => {
|
|
298
|
+
let currentValue = 0;
|
|
299
|
+
render(
|
|
300
|
+
<Slider
|
|
301
|
+
defaultValue={50}
|
|
302
|
+
helperText="Component helper text."
|
|
303
|
+
invalidText="Component error text :("
|
|
304
|
+
labelText="Label"
|
|
305
|
+
/>
|
|
306
|
+
);
|
|
307
|
+
|
|
308
|
+
const input = screen.getByRole("spinbutton");
|
|
309
|
+
fireEvent.change(input, {
|
|
310
|
+
target: { value: "42" },
|
|
311
|
+
});
|
|
312
|
+
// While we change the slider input value, since there is no onChange
|
|
313
|
+
// function, there is no way to update this local `currentValue` variable.
|
|
314
|
+
expect(currentValue).toEqual(0);
|
|
315
|
+
});
|
|
316
|
+
|
|
297
317
|
it("gets the current value through the onChange callback function", () => {
|
|
298
318
|
let currentValue = 0;
|
|
299
319
|
function onChange(value) {
|
|
@@ -495,6 +515,21 @@ describe("Slider", () => {
|
|
|
495
515
|
);
|
|
496
516
|
});
|
|
497
517
|
|
|
518
|
+
it("renders with min and max values as the default values if no `defaultValue` array is passed", () => {
|
|
519
|
+
render(
|
|
520
|
+
<Slider
|
|
521
|
+
helperText="Component helper text."
|
|
522
|
+
invalidText="Component error text :("
|
|
523
|
+
isRangeSlider
|
|
524
|
+
labelText="Label"
|
|
525
|
+
max={80}
|
|
526
|
+
min={30}
|
|
527
|
+
/>
|
|
528
|
+
);
|
|
529
|
+
expect(screen.getByText("30")).toBeInTheDocument();
|
|
530
|
+
expect(screen.getByText("80")).toBeInTheDocument();
|
|
531
|
+
});
|
|
532
|
+
|
|
498
533
|
it("renders the invalid state if the start and end values are wrong", () => {
|
|
499
534
|
// The start value is bigger than the end value.
|
|
500
535
|
render(
|
|
@@ -14,7 +14,9 @@ import {
|
|
|
14
14
|
|
|
15
15
|
import generateUUID from "../../helpers/generateUUID";
|
|
16
16
|
import Label from "../Label/Label";
|
|
17
|
-
import HelperErrorText
|
|
17
|
+
import HelperErrorText, {
|
|
18
|
+
HelperErrorTextType,
|
|
19
|
+
} from "../HelperErrorText/HelperErrorText";
|
|
18
20
|
import TextInput from "../TextInput/TextInput";
|
|
19
21
|
import { TextInputTypes } from "../TextInput/TextInputTypes";
|
|
20
22
|
|
|
@@ -26,12 +28,12 @@ export interface SliderProps {
|
|
|
26
28
|
*/
|
|
27
29
|
defaultValue?: number | number[];
|
|
28
30
|
/** Optional string to populate the HelperErrorText for standard state */
|
|
29
|
-
helperText?:
|
|
31
|
+
helperText?: HelperErrorTextType;
|
|
30
32
|
/** ID that other components can cross reference for accessibility purposes. */
|
|
31
33
|
id?: string;
|
|
32
34
|
/** Optional string to populate the `HelperErrorText` for the error state
|
|
33
35
|
* when `isInvalid` is true. */
|
|
34
|
-
invalidText?:
|
|
36
|
+
invalidText?: HelperErrorTextType;
|
|
35
37
|
/** Adds the 'disabled' state to the slider and text input(s) when true. */
|
|
36
38
|
isDisabled?: boolean;
|
|
37
39
|
/** Adds the 'invalid' state to the slider and text input(s) when true. */
|
|
@@ -97,9 +99,14 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
|
|
|
97
99
|
showValues = true,
|
|
98
100
|
step = 1,
|
|
99
101
|
} = props;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
// For the RangeSlider, if the defaultValue is not an array, then we set
|
|
103
|
+
// the defaultValue to an array with the min and max values.
|
|
104
|
+
const rangeSliderDefault =
|
|
105
|
+
typeof defaultValue === "number" ? [min, max] : defaultValue;
|
|
106
|
+
// We need to set the default value correctly for both types of sliders.
|
|
107
|
+
const finalDevaultValue = isRangeSlider ? rangeSliderDefault : defaultValue;
|
|
108
|
+
const [currentValue, setCurrentValue] =
|
|
109
|
+
React.useState<typeof defaultValue>(finalDevaultValue);
|
|
103
110
|
let finalIsInvalid = isInvalid;
|
|
104
111
|
// In the Range Slider, if the first value is bigger than the second value,
|
|
105
112
|
// then set the invalid state.
|
|
@@ -107,7 +114,9 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
|
|
|
107
114
|
finalIsInvalid = true;
|
|
108
115
|
}
|
|
109
116
|
const optReqText = isRequired ? "Required" : "Optional";
|
|
110
|
-
const footnote = finalIsInvalid
|
|
117
|
+
const footnote: HelperErrorTextType = finalIsInvalid
|
|
118
|
+
? invalidText
|
|
119
|
+
: helperText;
|
|
111
120
|
const styles = useMultiStyleConfig("CustomSlider", {
|
|
112
121
|
isDisabled,
|
|
113
122
|
isInvalid: finalIsInvalid,
|
|
@@ -127,7 +136,7 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
|
|
|
127
136
|
onChange: (val) => setCurrentValue(val),
|
|
128
137
|
// Call the passed in `onChange` function prop to get the
|
|
129
138
|
// *final* value once a user stops dragging the slider.
|
|
130
|
-
onChangeEnd: (val) => onChange(val),
|
|
139
|
+
onChangeEnd: (val) => onChange && onChange(val),
|
|
131
140
|
step,
|
|
132
141
|
};
|
|
133
142
|
// Props that the two `TextInput` components use.
|
|
@@ -293,9 +302,11 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
|
|
|
293
302
|
|
|
294
303
|
{footnote && showHelperInvalidText && (
|
|
295
304
|
<Box __css={styles.helper}>
|
|
296
|
-
<HelperErrorText
|
|
297
|
-
{
|
|
298
|
-
|
|
305
|
+
<HelperErrorText
|
|
306
|
+
id={`${id}-helperText`}
|
|
307
|
+
isInvalid={finalIsInvalid}
|
|
308
|
+
text={footnote}
|
|
309
|
+
/>
|
|
299
310
|
</Box>
|
|
300
311
|
)}
|
|
301
312
|
</Box>
|
|
@@ -168,11 +168,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 1`] = `
|
|
|
168
168
|
aria-atomic={true}
|
|
169
169
|
aria-live="off"
|
|
170
170
|
className=" css-0"
|
|
171
|
+
dangerouslySetInnerHTML={
|
|
172
|
+
Object {
|
|
173
|
+
"__html": "Component helper text.",
|
|
174
|
+
}
|
|
175
|
+
}
|
|
171
176
|
data-isinvalid={false}
|
|
172
177
|
id="defaultRangeSlider-helperText"
|
|
173
|
-
|
|
174
|
-
Component helper text.
|
|
175
|
-
</div>
|
|
178
|
+
/>
|
|
176
179
|
</div>
|
|
177
180
|
</div>
|
|
178
181
|
`;
|
|
@@ -347,11 +350,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 2`] = `
|
|
|
347
350
|
aria-atomic={true}
|
|
348
351
|
aria-live="polite"
|
|
349
352
|
className=" css-0"
|
|
353
|
+
dangerouslySetInnerHTML={
|
|
354
|
+
Object {
|
|
355
|
+
"__html": "Component error text :(",
|
|
356
|
+
}
|
|
357
|
+
}
|
|
350
358
|
data-isinvalid={true}
|
|
351
359
|
id="errored-helperText"
|
|
352
|
-
|
|
353
|
-
Component error text :(
|
|
354
|
-
</div>
|
|
360
|
+
/>
|
|
355
361
|
</div>
|
|
356
362
|
</div>
|
|
357
363
|
`;
|
|
@@ -526,11 +532,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 3`] = `
|
|
|
526
532
|
aria-atomic={true}
|
|
527
533
|
aria-live="off"
|
|
528
534
|
className=" css-0"
|
|
535
|
+
dangerouslySetInnerHTML={
|
|
536
|
+
Object {
|
|
537
|
+
"__html": "Component helper text.",
|
|
538
|
+
}
|
|
539
|
+
}
|
|
529
540
|
data-isinvalid={false}
|
|
530
541
|
id="required-helperText"
|
|
531
|
-
|
|
532
|
-
Component helper text.
|
|
533
|
-
</div>
|
|
542
|
+
/>
|
|
534
543
|
</div>
|
|
535
544
|
</div>
|
|
536
545
|
`;
|
|
@@ -705,11 +714,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 4`] = `
|
|
|
705
714
|
aria-atomic={true}
|
|
706
715
|
aria-live="off"
|
|
707
716
|
className=" css-0"
|
|
717
|
+
dangerouslySetInnerHTML={
|
|
718
|
+
Object {
|
|
719
|
+
"__html": "Component helper text.",
|
|
720
|
+
}
|
|
721
|
+
}
|
|
708
722
|
data-isinvalid={false}
|
|
709
723
|
id="disabled-helperText"
|
|
710
|
-
|
|
711
|
-
Component helper text.
|
|
712
|
-
</div>
|
|
724
|
+
/>
|
|
713
725
|
</div>
|
|
714
726
|
</div>
|
|
715
727
|
`;
|
|
@@ -986,11 +998,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 6`] = `
|
|
|
986
998
|
aria-atomic={true}
|
|
987
999
|
aria-live="off"
|
|
988
1000
|
className=" css-0"
|
|
1001
|
+
dangerouslySetInnerHTML={
|
|
1002
|
+
Object {
|
|
1003
|
+
"__html": "Component helper text.",
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
989
1006
|
data-isinvalid={false}
|
|
990
1007
|
id="noVisibleValues-helperText"
|
|
991
|
-
|
|
992
|
-
Component helper text.
|
|
993
|
-
</div>
|
|
1008
|
+
/>
|
|
994
1009
|
</div>
|
|
995
1010
|
</div>
|
|
996
1011
|
`;
|
|
@@ -1226,11 +1241,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 1`] = `
|
|
|
1226
1241
|
aria-atomic={true}
|
|
1227
1242
|
aria-live="off"
|
|
1228
1243
|
className=" css-0"
|
|
1244
|
+
dangerouslySetInnerHTML={
|
|
1245
|
+
Object {
|
|
1246
|
+
"__html": "Component helper text.",
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1229
1249
|
data-isinvalid={false}
|
|
1230
1250
|
id="defaultSlider-helperText"
|
|
1231
|
-
|
|
1232
|
-
Component helper text.
|
|
1233
|
-
</div>
|
|
1251
|
+
/>
|
|
1234
1252
|
</div>
|
|
1235
1253
|
</div>
|
|
1236
1254
|
`;
|
|
@@ -1363,11 +1381,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 2`] = `
|
|
|
1363
1381
|
aria-atomic={true}
|
|
1364
1382
|
aria-live="polite"
|
|
1365
1383
|
className=" css-0"
|
|
1384
|
+
dangerouslySetInnerHTML={
|
|
1385
|
+
Object {
|
|
1386
|
+
"__html": "Component error text :(",
|
|
1387
|
+
}
|
|
1388
|
+
}
|
|
1366
1389
|
data-isinvalid={true}
|
|
1367
1390
|
id="errored-helperText"
|
|
1368
|
-
|
|
1369
|
-
Component error text :(
|
|
1370
|
-
</div>
|
|
1391
|
+
/>
|
|
1371
1392
|
</div>
|
|
1372
1393
|
</div>
|
|
1373
1394
|
`;
|
|
@@ -1500,11 +1521,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 3`] = `
|
|
|
1500
1521
|
aria-atomic={true}
|
|
1501
1522
|
aria-live="off"
|
|
1502
1523
|
className=" css-0"
|
|
1524
|
+
dangerouslySetInnerHTML={
|
|
1525
|
+
Object {
|
|
1526
|
+
"__html": "Component helper text.",
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1503
1529
|
data-isinvalid={false}
|
|
1504
1530
|
id="required-helperText"
|
|
1505
|
-
|
|
1506
|
-
Component helper text.
|
|
1507
|
-
</div>
|
|
1531
|
+
/>
|
|
1508
1532
|
</div>
|
|
1509
1533
|
</div>
|
|
1510
1534
|
`;
|
|
@@ -1638,11 +1662,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 4`] = `
|
|
|
1638
1662
|
aria-atomic={true}
|
|
1639
1663
|
aria-live="off"
|
|
1640
1664
|
className=" css-0"
|
|
1665
|
+
dangerouslySetInnerHTML={
|
|
1666
|
+
Object {
|
|
1667
|
+
"__html": "Component helper text.",
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1641
1670
|
data-isinvalid={false}
|
|
1642
1671
|
id="disabled-helperText"
|
|
1643
|
-
|
|
1644
|
-
Component helper text.
|
|
1645
|
-
</div>
|
|
1672
|
+
/>
|
|
1646
1673
|
</div>
|
|
1647
1674
|
</div>
|
|
1648
1675
|
`;
|
|
@@ -1855,11 +1882,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 6`] = `
|
|
|
1855
1882
|
aria-atomic={true}
|
|
1856
1883
|
aria-live="off"
|
|
1857
1884
|
className=" css-0"
|
|
1885
|
+
dangerouslySetInnerHTML={
|
|
1886
|
+
Object {
|
|
1887
|
+
"__html": "Component helper text.",
|
|
1888
|
+
}
|
|
1889
|
+
}
|
|
1858
1890
|
data-isinvalid={false}
|
|
1859
1891
|
id="noVisibleValues-helperText"
|
|
1860
|
-
|
|
1861
|
-
Component helper text.
|
|
1862
|
-
</div>
|
|
1892
|
+
/>
|
|
1863
1893
|
</div>
|
|
1864
1894
|
</div>
|
|
1865
1895
|
`;
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
+
import { VStack } from "@chakra-ui/react";
|
|
1
2
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
3
|
ArgsTable,
|
|
4
|
+
Canvas,
|
|
6
5
|
Description,
|
|
7
|
-
|
|
6
|
+
Meta,
|
|
7
|
+
Story,
|
|
8
|
+
} from "@storybook/addon-docs";
|
|
8
9
|
import { withDesign } from "storybook-addon-designs";
|
|
9
|
-
import { VStack } from "@chakra-ui/react";
|
|
10
10
|
|
|
11
11
|
import StatusBadge from "./StatusBadge";
|
|
12
12
|
import { StatusBadgeTypes } from "./StatusBadgeTypes";
|
|
13
|
-
import getCSSVariable from "../../helpers/getCSSVariable";
|
|
14
13
|
import { getCategory } from "../../utils/componentCategories";
|
|
15
14
|
import DSProvider from "../../theme/provider";
|
|
15
|
+
import { getStorybookEnumValues } from "../../utils/utils";
|
|
16
|
+
|
|
17
|
+
export const enumValues = getStorybookEnumValues(
|
|
18
|
+
StatusBadgeTypes,
|
|
19
|
+
"StatusBadgeTypes"
|
|
20
|
+
);
|
|
16
21
|
|
|
17
22
|
<Meta
|
|
18
23
|
title={getCategory("StatusBadge")}
|
|
@@ -21,19 +26,20 @@ import DSProvider from "../../theme/provider";
|
|
|
21
26
|
parameters={{
|
|
22
27
|
design: {
|
|
23
28
|
type: "figma",
|
|
24
|
-
url:
|
|
25
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11256%3A0",
|
|
29
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11256%3A0",
|
|
26
30
|
},
|
|
27
31
|
jest: ["StatusBadge.test.tsx"],
|
|
28
32
|
}}
|
|
29
33
|
argTypes={{
|
|
30
|
-
className: {
|
|
31
|
-
id: {
|
|
34
|
+
className: { control: false },
|
|
35
|
+
id: { control: false },
|
|
32
36
|
level: {
|
|
33
|
-
control: {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
control: { type: "select" },
|
|
38
|
+
table: { defaultValue: { summary: "StatusBadgeTypes.Low" } },
|
|
39
|
+
options: enumValues.options,
|
|
40
|
+
},
|
|
41
|
+
text: {
|
|
42
|
+
description: "Only used for Storybook",
|
|
37
43
|
},
|
|
38
44
|
}}
|
|
39
45
|
/>
|
|
@@ -49,14 +55,23 @@ import DSProvider from "../../theme/provider";
|
|
|
49
55
|
|
|
50
56
|
<Canvas withToolbar>
|
|
51
57
|
<Story
|
|
52
|
-
name="
|
|
53
|
-
args={{
|
|
58
|
+
name="StatusBadge"
|
|
59
|
+
args={{
|
|
60
|
+
className: undefined,
|
|
61
|
+
id: "statusBadge-id",
|
|
62
|
+
level: "StatusBadgeTypes.Low",
|
|
63
|
+
text: "Registration Required",
|
|
64
|
+
}}
|
|
54
65
|
>
|
|
55
|
-
{(args) =>
|
|
66
|
+
{(args) => (
|
|
67
|
+
<StatusBadge level={enumValues.getValue(args.level)}>
|
|
68
|
+
{args.text}
|
|
69
|
+
</StatusBadge>
|
|
70
|
+
)}
|
|
56
71
|
</Story>
|
|
57
72
|
</Canvas>
|
|
58
73
|
|
|
59
|
-
<ArgsTable story="
|
|
74
|
+
<ArgsTable story="StatusBadge" />
|
|
60
75
|
|
|
61
76
|
## Patterns
|
|
62
77
|
|
|
@@ -9,7 +9,8 @@ export interface StatusBadgeProps {
|
|
|
9
9
|
className?: string;
|
|
10
10
|
/** ID that other components can cross reference for accessibility purposes */
|
|
11
11
|
id?: string;
|
|
12
|
-
/** Level of the status badge through StatusBadgeTypes.
|
|
12
|
+
/** Level of the status badge through StatusBadgeTypes. Defaults to
|
|
13
|
+
* `StatusBadgeTypes.Low`. */
|
|
13
14
|
level?: StatusBadgeTypes;
|
|
14
15
|
}
|
|
15
16
|
|