@nypl/design-system-react-components 0.25.2 → 0.25.6
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 +101 -0
- package/README.md +47 -11
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -0
- package/dist/components/Button/Button.d.ts +9 -8
- package/dist/components/Button/ButtonTypes.d.ts +2 -1
- package/dist/components/Card/Card.d.ts +36 -52
- package/dist/components/Card/CardTypes.d.ts +0 -15
- package/dist/components/Checkbox/Checkbox.d.ts +8 -9
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +2 -2
- package/dist/components/DatePicker/DatePicker.d.ts +36 -36
- package/dist/components/Fieldset/Fieldset.d.ts +25 -0
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +4 -0
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -3
- package/dist/components/Icons/Icon.d.ts +4 -0
- package/dist/components/Icons/IconSvgs.d.ts +11 -0
- package/dist/components/Icons/IconTypes.d.ts +11 -0
- package/dist/components/Image/Image.d.ts +19 -9
- package/dist/components/Image/ImageTypes.d.ts +20 -0
- package/dist/components/Link/Link.d.ts +4 -0
- package/dist/components/List/List.d.ts +7 -1
- package/dist/components/Notification/Notification.d.ts +6 -4
- 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/RadioGroup/RadioGroup.d.ts +2 -2
- package/dist/components/SearchBar/SearchBar.d.ts +3 -3
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
- package/dist/components/Slider/Slider.d.ts +57 -0
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +10 -0
- package/dist/design-system-react-components.cjs.development.js +3058 -936
- 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 +3049 -921
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +12 -6
- package/dist/resources.scss +180 -170
- package/dist/styles.css +1 -1
- package/dist/theme/components/breadcrumb.d.ts +9 -0
- package/dist/theme/components/button.d.ts +22 -8
- package/dist/theme/components/card.d.ts +168 -0
- package/dist/theme/components/checkbox.d.ts +5 -1
- package/dist/theme/components/checkboxGroup.d.ts +12 -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 +23 -13
- package/dist/theme/components/globalMixins.d.ts +9 -1
- package/dist/theme/components/heading.d.ts +5 -0
- package/dist/theme/components/image.d.ts +31 -0
- package/dist/theme/components/label.d.ts +5 -3
- package/dist/theme/components/link.d.ts +4 -0
- package/dist/theme/components/list.d.ts +5 -1
- package/dist/theme/components/notification.d.ts +4 -14
- package/dist/theme/components/pagination.d.ts +19 -0
- package/dist/theme/components/progressIndicator.d.ts +50 -0
- package/dist/theme/components/radioGroup.d.ts +12 -0
- package/dist/theme/components/select.d.ts +11 -2
- package/dist/theme/components/skeletonLoader.d.ts +98 -0
- package/dist/theme/components/slider.d.ts +51 -0
- package/dist/theme/components/textInput.d.ts +8 -0
- package/dist/theme/foundations/breakpoints.d.ts +8 -8
- package/dist/theme/foundations/global.d.ts +6 -1
- package/package.json +72 -84
- package/src/__tests__/setup.ts +2 -2
- package/src/components/Accordion/Accordion.stories.mdx +39 -42
- package/src/components/Autosuggest/Autosuggest.stories.mdx +3 -3
- package/src/components/Autosuggest/Autosuggest.stories.tsx +1 -0
- package/src/components/Autosuggest/_Autosuggest.scss +5 -5
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +24 -8
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +33 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -1
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +298 -1
- package/src/components/Button/Button.stories.mdx +15 -10
- package/src/components/Button/Button.test.tsx +21 -7
- package/src/components/Button/Button.tsx +18 -33
- package/src/components/Button/ButtonTypes.tsx +1 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +41 -10
- package/src/components/Card/Card.stories.mdx +296 -259
- package/src/components/Card/Card.test.tsx +156 -84
- package/src/components/Card/Card.tsx +195 -145
- package/src/components/Card/CardTypes.tsx +0 -17
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
- package/src/components/CardEdition/CardEdition.stories.tsx +15 -47
- package/src/components/CardEdition/_CardEdition.scss +22 -23
- package/src/components/Chakra/Box.stories.mdx +14 -15
- package/src/components/Chakra/Center.stories.mdx +15 -8
- package/src/components/Chakra/Grid.stories.mdx +16 -7
- package/src/components/Chakra/Stack.stories.mdx +35 -18
- package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
- package/src/components/Checkbox/Checkbox.test.tsx +30 -3
- package/src/components/Checkbox/Checkbox.tsx +27 -27
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +90 -2
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +82 -2
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +1 -1
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -15
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +44 -80
- package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
- package/src/components/DatePicker/DatePicker.test.tsx +248 -65
- package/src/components/DatePicker/DatePicker.tsx +158 -130
- package/src/components/DatePicker/_DatePicker.scss +33 -67
- 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 +4 -5
- package/src/components/Form/Form.tsx +1 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +32 -39
- package/src/components/Grid/SimpleGrid.test.tsx +4 -4
- package/src/components/Heading/Heading.stories.mdx +3 -4
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +1 -1
- package/src/components/HelperErrorText/HelperErrorText.tsx +5 -1
- package/src/components/Hero/HeroTypes.tsx +1 -0
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +7 -7
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +6 -5
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +17 -0
- package/src/components/HorizontalRule/HorizontalRule.tsx +21 -4
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +5 -5
- package/src/components/Icons/Icon.stories.mdx +11 -3
- package/src/components/Icons/Icon.test.tsx +18 -0
- package/src/components/Icons/Icon.tsx +6 -0
- package/src/components/Icons/IconSvgs.tsx +22 -0
- package/src/components/Icons/IconTypes.tsx +11 -0
- 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 +20 -64
- package/src/components/Input/_Input.scss +23 -14
- package/src/components/Link/Link.tsx +4 -1
- package/src/components/List/List.stories.mdx +1 -1
- package/src/components/List/List.tsx +11 -4
- package/src/components/Modal/Modal.stories.mdx +3 -3
- package/src/components/Modal/_Modal.scss +2 -2
- package/src/components/Notification/Notification.stories.mdx +1 -3
- package/src/components/Notification/Notification.tsx +24 -9
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +2 -0
- 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 -146
- 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/__snapshots__/Radio.test.tsx.snap +3 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +3 -4
- package/src/components/RadioGroup/RadioGroup.tsx +11 -16
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +39 -71
- package/src/components/SearchBar/SearchBar.Test.tsx +66 -21
- package/src/components/SearchBar/SearchBar.stories.mdx +114 -10
- package/src/components/SearchBar/SearchBar.tsx +15 -5
- package/src/components/Select/SelectTypes.tsx +1 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +28 -59
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +74 -71
- 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/StyleGuide/Bidirectionality.stories.mdx +1 -1
- package/src/components/StyleGuide/Breakpoints.stories.mdx +21 -7
- package/src/components/StyleGuide/Buttons.stories.mdx +69 -15
- package/src/components/StyleGuide/ColorCard.tsx +0 -1
- package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
- package/src/components/StyleGuide/Iconography.stories.mdx +51 -62
- package/src/components/Tabs/Tabs.tsx +5 -5
- package/src/components/Template/Template.stories.mdx +11 -16
- package/src/components/TextInput/TextInput.stories.mdx +1 -1
- package/src/components/TextInput/TextInput.tsx +23 -6
- package/src/components/TextInput/TextInputTypes.tsx +2 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +2 -3
- package/src/docs/Chakra.stories.mdx +2 -2
- package/src/index.ts +20 -12
- 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/{_04-base.scss → _03-base.scss} +7 -2
- 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 -55
- package/src/theme/components/breadcrumb.ts +10 -0
- package/src/theme/components/button.ts +18 -12
- package/src/theme/components/card.ts +174 -0
- package/src/theme/components/checkbox.ts +7 -2
- package/src/theme/components/checkboxGroup.ts +8 -0
- package/src/theme/components/datePicker.ts +17 -0
- package/src/theme/components/fieldset.ts +18 -0
- package/src/theme/components/global.ts +26 -15
- package/src/theme/components/globalMixins.ts +9 -1
- package/src/theme/components/heading.ts +5 -0
- package/src/theme/components/image.ts +116 -0
- package/src/theme/components/label.ts +3 -10
- package/src/theme/components/link.ts +4 -0
- package/src/theme/components/list.ts +6 -3
- package/src/theme/components/notification.ts +12 -14
- package/src/theme/components/pagination.ts +20 -0
- package/src/theme/components/progressIndicator.ts +62 -0
- package/src/theme/components/radioGroup.ts +8 -0
- package/src/theme/components/select.ts +5 -2
- package/src/theme/components/skeletonLoader.ts +107 -0
- package/src/theme/components/slider.ts +79 -0
- package/src/theme/components/textInput.ts +2 -0
- package/src/theme/foundations/breakpoints.ts +8 -8
- package/src/theme/foundations/global.ts +6 -1
- package/src/theme/index.ts +22 -4
- package/src/utils/componentCategories.ts +4 -3
- package/dist/components/Image/Image.stories.d.ts +0 -18
- package/dist/theme/components/customCheckboxGroup.d.ts +0 -18
- package/dist/theme/components/customRadioGroup.d.ts +0 -18
- package/src/components/Button/_Button.scss +0 -32
- package/src/components/Card/_Card.scss +0 -308
- package/src/components/Image/Image.stories.tsx +0 -54
- package/src/components/Image/_Image.scss +0 -38
- package/src/components/Pagination/_Pagination.scss +0 -40
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
- package/src/styles/01-colors/_colors-brand.scss +0 -62
- package/src/styles/01-colors/_colors-utility.scss +0 -67
- 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/_card-grid.scss +0 -77
- package/src/styles/base/_typography.scss +0 -11
- package/src/theme/components/customCheckboxGroup.ts +0 -12
- package/src/theme/components/customRadioGroup.ts +0 -12
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Meta,
|
|
3
|
+
Story,
|
|
4
|
+
Canvas,
|
|
5
|
+
ArgsTable,
|
|
6
|
+
Description,
|
|
7
|
+
} from "@storybook/addon-docs/blocks";
|
|
8
|
+
import { withDesign } from "storybook-addon-designs";
|
|
9
|
+
|
|
10
|
+
import Slider from "./Slider";
|
|
11
|
+
import SimpleGrid from "../Grid/SimpleGrid";
|
|
12
|
+
import { GridGaps } from "../Grid/GridTypes";
|
|
13
|
+
import Heading from "../Heading/Heading";
|
|
14
|
+
import { HeadingLevels } from "../Heading/HeadingTypes";
|
|
15
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
16
|
+
import DSProvider from "../../theme/provider";
|
|
17
|
+
|
|
18
|
+
<Meta
|
|
19
|
+
title={getCategory("Slider")}
|
|
20
|
+
component={Slider}
|
|
21
|
+
decorators={[withDesign]}
|
|
22
|
+
parameters={{
|
|
23
|
+
design: {
|
|
24
|
+
type: "figma",
|
|
25
|
+
url:
|
|
26
|
+
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36889%3A25871",
|
|
27
|
+
},
|
|
28
|
+
jest: ["Slider.test.tsx"],
|
|
29
|
+
}}
|
|
30
|
+
argTypes={{
|
|
31
|
+
className: { table: { disable: true } },
|
|
32
|
+
id: { table: { disable: true } },
|
|
33
|
+
name: { table: { disable: true } },
|
|
34
|
+
onChange: { table: { disable: true } },
|
|
35
|
+
}}
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
# Slider
|
|
39
|
+
|
|
40
|
+
| Component Version | DS Version |
|
|
41
|
+
| ----------------- | ---------- |
|
|
42
|
+
| Added | `0.25.4` |
|
|
43
|
+
| Latest | `0.25.4` |
|
|
44
|
+
|
|
45
|
+
<Description of={Slider} />
|
|
46
|
+
|
|
47
|
+
The text input component doubles as a display for the slider's current value.
|
|
48
|
+
For this type of component, the `value` prop must be a single number.
|
|
49
|
+
|
|
50
|
+
<Canvas withToolbar>
|
|
51
|
+
<Story
|
|
52
|
+
name="Slider with Props"
|
|
53
|
+
args={{
|
|
54
|
+
defaultValue: 50,
|
|
55
|
+
helperText: "Pass in a value from the min 0 to the max 100 values.",
|
|
56
|
+
invalidText: "Oh no this is an error :(",
|
|
57
|
+
isDisabled: false,
|
|
58
|
+
isInvalid: false,
|
|
59
|
+
isRangeSlider: false,
|
|
60
|
+
isRequired: false,
|
|
61
|
+
labelText: "Slider label",
|
|
62
|
+
max: 100,
|
|
63
|
+
min: 0,
|
|
64
|
+
optReqFlag: true,
|
|
65
|
+
showBoxes: true,
|
|
66
|
+
showHelperInvalidText: true,
|
|
67
|
+
showLabel: true,
|
|
68
|
+
showValues: true,
|
|
69
|
+
step: 1,
|
|
70
|
+
}}
|
|
71
|
+
argTypes={{
|
|
72
|
+
defaultValue: { table: { disable: true } },
|
|
73
|
+
isRangeSlider: { table: { disable: true } },
|
|
74
|
+
}}
|
|
75
|
+
>
|
|
76
|
+
{(args) => <Slider {...args} />}
|
|
77
|
+
</Story>
|
|
78
|
+
</Canvas>
|
|
79
|
+
|
|
80
|
+
<ArgsTable story="Slider with Props" />
|
|
81
|
+
|
|
82
|
+
### Accessibility
|
|
83
|
+
|
|
84
|
+
Chakra's `Slider` component is accessible and, as recommended, we pass in an
|
|
85
|
+
`aria-label` to their `Slider` component. On top of that, the DS `Slider`
|
|
86
|
+
component's `<label>` points to the `<input>` element which shows the current
|
|
87
|
+
value. This `input` element also has its own `aria-label`. When the input box
|
|
88
|
+
is hidden, the `for` attribute in the `label` element is removed.
|
|
89
|
+
|
|
90
|
+
Note that Chakra handles its single slider thumb aria attributes: `aria-valuemin`,
|
|
91
|
+
`aria-valuemax`, `aria-valuenow`, and `aria-orientation`.
|
|
92
|
+
|
|
93
|
+
## Range Slider
|
|
94
|
+
|
|
95
|
+
Set `isRangeSlider` to `true` to create a range slider. The text input
|
|
96
|
+
components double as displays for the slider's current minimum and maximum
|
|
97
|
+
value. For this type of component, the `value` prop must be an array of two
|
|
98
|
+
numbers. This signifies the starting and ending values of the range slider.
|
|
99
|
+
|
|
100
|
+
<Canvas withToolbar>
|
|
101
|
+
<Story
|
|
102
|
+
name="Range Slider with Props"
|
|
103
|
+
args={{
|
|
104
|
+
defaultValue: [25, 75],
|
|
105
|
+
helperText: "Pass in a value from the min 0 to the max 100 values.",
|
|
106
|
+
invalidText: "Oh no this is an error :(",
|
|
107
|
+
isDisabled: false,
|
|
108
|
+
isInvalid: false,
|
|
109
|
+
isRangeSlider: true,
|
|
110
|
+
isRequired: false,
|
|
111
|
+
labelText: "Range Slider label",
|
|
112
|
+
max: 100,
|
|
113
|
+
min: 0,
|
|
114
|
+
optReqFlag: true,
|
|
115
|
+
showBoxes: true,
|
|
116
|
+
showHelperInvalidText: true,
|
|
117
|
+
showLabel: true,
|
|
118
|
+
showValues: true,
|
|
119
|
+
step: 1,
|
|
120
|
+
}}
|
|
121
|
+
argTypes={{
|
|
122
|
+
defaultValue: { table: { disable: true } },
|
|
123
|
+
isRangeSlider: { table: { disable: true } },
|
|
124
|
+
}}
|
|
125
|
+
>
|
|
126
|
+
{(args) => <Slider {...args} />}
|
|
127
|
+
</Story>
|
|
128
|
+
</Canvas>
|
|
129
|
+
|
|
130
|
+
<ArgsTable story="Range Slider with Props" />
|
|
131
|
+
|
|
132
|
+
### Accessibility
|
|
133
|
+
|
|
134
|
+
Chakra's `RangeSlider` component is accessible and, as recommended, we pass in
|
|
135
|
+
two `aria-label`s to their `RangeSlider` component. The syntax is different than
|
|
136
|
+
the expected standard string; the `RangeSlider` expect `aria-label` to be an array
|
|
137
|
+
of two strings. On top of this, the DS `Slider`'s `<label>` element, when in the
|
|
138
|
+
`isRangeSlider` state, points to the _first_ `<input>` element which shows the
|
|
139
|
+
current _start_ value. These two `input` elements also have their own `aria-label`s.
|
|
140
|
+
When the input boxes are hidden, the `for` attribute in the `label` element is removed.
|
|
141
|
+
|
|
142
|
+
Note that Chakra handles its two slider thumbs aria attributes: `aria-valuemin`,
|
|
143
|
+
`aria-valuemax`, `aria-valuenow`, and `aria-orientation`.
|
|
144
|
+
|
|
145
|
+
### Single Slider States
|
|
146
|
+
|
|
147
|
+
Note: In the following examples, the "Required"/"Optional" text in the label is
|
|
148
|
+
hidden by setting the `optReqFlag` prop to false.
|
|
149
|
+
|
|
150
|
+
<Canvas>
|
|
151
|
+
<DSProvider>
|
|
152
|
+
<Heading
|
|
153
|
+
id="heading-single-default"
|
|
154
|
+
level={HeadingLevels.Four}
|
|
155
|
+
text="Default State"
|
|
156
|
+
/>
|
|
157
|
+
<Slider
|
|
158
|
+
defaultValue={50}
|
|
159
|
+
optReqFlag={false}
|
|
160
|
+
helperText="Component helper text."
|
|
161
|
+
invalidText="Component error text :("
|
|
162
|
+
labelText="Label"
|
|
163
|
+
/>
|
|
164
|
+
</DSProvider>
|
|
165
|
+
</Canvas>
|
|
166
|
+
|
|
167
|
+
<Canvas>
|
|
168
|
+
<DSProvider>
|
|
169
|
+
<Heading
|
|
170
|
+
id="heading-single-errored"
|
|
171
|
+
level={HeadingLevels.Four}
|
|
172
|
+
text="Errored State"
|
|
173
|
+
/>
|
|
174
|
+
<Slider
|
|
175
|
+
defaultValue={50}
|
|
176
|
+
optReqFlag={false}
|
|
177
|
+
helperText="Component helper text."
|
|
178
|
+
invalidText="Component error text :("
|
|
179
|
+
labelText="Label"
|
|
180
|
+
isInvalid
|
|
181
|
+
/>
|
|
182
|
+
</DSProvider>
|
|
183
|
+
</Canvas>
|
|
184
|
+
|
|
185
|
+
<Canvas>
|
|
186
|
+
<DSProvider>
|
|
187
|
+
<Heading
|
|
188
|
+
id="heading-single-disabled"
|
|
189
|
+
level={HeadingLevels.Four}
|
|
190
|
+
text="Disabled State"
|
|
191
|
+
/>
|
|
192
|
+
<Slider
|
|
193
|
+
defaultValue={50}
|
|
194
|
+
optReqFlag={false}
|
|
195
|
+
helperText="Component helper text."
|
|
196
|
+
invalidText="Component error text :("
|
|
197
|
+
labelText="Label"
|
|
198
|
+
isDisabled
|
|
199
|
+
/>
|
|
200
|
+
</DSProvider>
|
|
201
|
+
</Canvas>
|
|
202
|
+
|
|
203
|
+
### Range Slider States
|
|
204
|
+
|
|
205
|
+
To enable the Range Slider, set the `isRangeSlider` prop to true.
|
|
206
|
+
|
|
207
|
+
Note: In the following examples, the "Required"/"Optional" text in the label is
|
|
208
|
+
hidden by setting the `optReqFlag` prop to false.
|
|
209
|
+
|
|
210
|
+
<Canvas>
|
|
211
|
+
<DSProvider>
|
|
212
|
+
<Heading
|
|
213
|
+
id="heading-range-default"
|
|
214
|
+
level={HeadingLevels.Four}
|
|
215
|
+
text="Default State"
|
|
216
|
+
/>
|
|
217
|
+
<Slider
|
|
218
|
+
defaultValue={[25, 75]}
|
|
219
|
+
optReqFlag={false}
|
|
220
|
+
helperText="Component helper text."
|
|
221
|
+
invalidText="Component error text :("
|
|
222
|
+
labelText="Label"
|
|
223
|
+
isRangeSlider
|
|
224
|
+
/>
|
|
225
|
+
</DSProvider>
|
|
226
|
+
</Canvas>
|
|
227
|
+
|
|
228
|
+
<Canvas>
|
|
229
|
+
<DSProvider>
|
|
230
|
+
<Heading
|
|
231
|
+
id="heading-range-errored"
|
|
232
|
+
level={HeadingLevels.Four}
|
|
233
|
+
text="Errored State"
|
|
234
|
+
/>
|
|
235
|
+
<SimpleGrid columns={1} gap={GridGaps.Large}>
|
|
236
|
+
<Slider
|
|
237
|
+
defaultValue={[25, 75]}
|
|
238
|
+
optReqFlag={false}
|
|
239
|
+
helperText="Component helper text."
|
|
240
|
+
invalidText="Component error text :("
|
|
241
|
+
labelText="Label"
|
|
242
|
+
isRangeSlider
|
|
243
|
+
isInvalid
|
|
244
|
+
/>
|
|
245
|
+
<p>
|
|
246
|
+
Note: The slider does not allow the starting thumb to go past the ending
|
|
247
|
+
thumb. Likewise, it also does not allow the ending thumb to go below the
|
|
248
|
+
starting thumb. However, it's possible to set incorrect values directly
|
|
249
|
+
into both of the text inputs. For example, if you enter 80 in the first
|
|
250
|
+
text input box and 20 in the second input box, it will automatically go
|
|
251
|
+
into the invalid state. In the following example, the default values are
|
|
252
|
+
already set to 80 and 20 *just* to showcase this error.
|
|
253
|
+
</p>
|
|
254
|
+
<Slider
|
|
255
|
+
defaultValue={[80, 20]}
|
|
256
|
+
optReqFlag={false}
|
|
257
|
+
helperText="Component helper text."
|
|
258
|
+
invalidText="Component error text :("
|
|
259
|
+
labelText="Label"
|
|
260
|
+
isRangeSlider
|
|
261
|
+
/>
|
|
262
|
+
</SimpleGrid>
|
|
263
|
+
</DSProvider>
|
|
264
|
+
</Canvas>
|
|
265
|
+
|
|
266
|
+
<Canvas>
|
|
267
|
+
<DSProvider>
|
|
268
|
+
<Heading
|
|
269
|
+
id="heading-range-disabled"
|
|
270
|
+
level={HeadingLevels.Four}
|
|
271
|
+
text="Disabled State"
|
|
272
|
+
/>
|
|
273
|
+
<Slider
|
|
274
|
+
defaultValue={[25, 75]}
|
|
275
|
+
optReqFlag={false}
|
|
276
|
+
helperText="Component helper text."
|
|
277
|
+
invalidText="Component error text :("
|
|
278
|
+
labelText="Label"
|
|
279
|
+
isRangeSlider
|
|
280
|
+
isDisabled
|
|
281
|
+
/>
|
|
282
|
+
</DSProvider>
|
|
283
|
+
</Canvas>
|
|
284
|
+
|
|
285
|
+
### Single Slider Variants
|
|
286
|
+
|
|
287
|
+
In the following example, the min/max values and the current value text
|
|
288
|
+
input are hidden.
|
|
289
|
+
|
|
290
|
+
<Canvas>
|
|
291
|
+
<DSProvider>
|
|
292
|
+
<Heading
|
|
293
|
+
id="heading-single-labels"
|
|
294
|
+
level={HeadingLevels.Four}
|
|
295
|
+
text="With and Without Component Labels"
|
|
296
|
+
/>
|
|
297
|
+
<SimpleGrid columns={1} gap={GridGaps.ExtraLarge}>
|
|
298
|
+
<Slider
|
|
299
|
+
defaultValue={50}
|
|
300
|
+
helperText="Component helper text."
|
|
301
|
+
labelText="Label"
|
|
302
|
+
showValues={false}
|
|
303
|
+
showBoxes={false}
|
|
304
|
+
/>
|
|
305
|
+
<Slider
|
|
306
|
+
defaultValue={50}
|
|
307
|
+
helperText="Component helper text."
|
|
308
|
+
labelText="Label"
|
|
309
|
+
showValues={false}
|
|
310
|
+
showBoxes={false}
|
|
311
|
+
isRequired
|
|
312
|
+
/>
|
|
313
|
+
<Slider
|
|
314
|
+
defaultValue={50}
|
|
315
|
+
helperText="Component helper text."
|
|
316
|
+
labelText="Label"
|
|
317
|
+
optReqFlag={false}
|
|
318
|
+
showValues={false}
|
|
319
|
+
showBoxes={false}
|
|
320
|
+
/>
|
|
321
|
+
<Slider
|
|
322
|
+
defaultValue={50}
|
|
323
|
+
helperText="Component helper text."
|
|
324
|
+
labelText="Label"
|
|
325
|
+
optReqFlag={false}
|
|
326
|
+
showHelperInvalidText={false}
|
|
327
|
+
showValues={false}
|
|
328
|
+
showBoxes={false}
|
|
329
|
+
/>
|
|
330
|
+
<Slider
|
|
331
|
+
defaultValue={50}
|
|
332
|
+
helperText="Component helper text."
|
|
333
|
+
labelText="Label"
|
|
334
|
+
optReqFlag={false}
|
|
335
|
+
showValues={false}
|
|
336
|
+
showBoxes={false}
|
|
337
|
+
showLabel={false}
|
|
338
|
+
/>
|
|
339
|
+
</SimpleGrid>
|
|
340
|
+
</DSProvider>
|
|
341
|
+
</Canvas>
|
|
342
|
+
|
|
343
|
+
For the following examples, all labels are hidden.
|
|
344
|
+
|
|
345
|
+
<Canvas>
|
|
346
|
+
<DSProvider>
|
|
347
|
+
<Heading
|
|
348
|
+
id="heading-single-labels-inputs"
|
|
349
|
+
level={HeadingLevels.Four}
|
|
350
|
+
text="With and Without Internal Inputs and Labels"
|
|
351
|
+
/>
|
|
352
|
+
<SimpleGrid columns={1} gap={GridGaps.ExtraLarge}>
|
|
353
|
+
<Slider
|
|
354
|
+
defaultValue={50}
|
|
355
|
+
helperText="Component helper text."
|
|
356
|
+
labelText="Label"
|
|
357
|
+
showHelperInvalidText={false}
|
|
358
|
+
showLabel={false}
|
|
359
|
+
/>
|
|
360
|
+
<Slider
|
|
361
|
+
defaultValue={50}
|
|
362
|
+
helperText="Component helper text."
|
|
363
|
+
labelText="Label"
|
|
364
|
+
showHelperInvalidText={false}
|
|
365
|
+
showLabel={false}
|
|
366
|
+
showBoxes={false}
|
|
367
|
+
/>
|
|
368
|
+
<Slider
|
|
369
|
+
defaultValue={50}
|
|
370
|
+
helperText="Component helper text."
|
|
371
|
+
labelText="Label"
|
|
372
|
+
showHelperInvalidText={false}
|
|
373
|
+
showLabel={false}
|
|
374
|
+
showValues={false}
|
|
375
|
+
/>
|
|
376
|
+
<Slider
|
|
377
|
+
defaultValue={50}
|
|
378
|
+
helperText="Component helper text."
|
|
379
|
+
labelText="Label"
|
|
380
|
+
showHelperInvalidText={false}
|
|
381
|
+
showLabel={false}
|
|
382
|
+
showValues={false}
|
|
383
|
+
showBoxes={false}
|
|
384
|
+
/>
|
|
385
|
+
</SimpleGrid>
|
|
386
|
+
</DSProvider>
|
|
387
|
+
</Canvas>
|
|
388
|
+
|
|
389
|
+
### Range Slider with Adjusted Handles
|
|
390
|
+
|
|
391
|
+
In the following examples, all the labels are hidden.
|
|
392
|
+
|
|
393
|
+
<Canvas>
|
|
394
|
+
<DSProvider>
|
|
395
|
+
<SimpleGrid columns={1} gap={GridGaps.ExtraLarge}>
|
|
396
|
+
<Slider
|
|
397
|
+
defaultValue={[15, 75]}
|
|
398
|
+
helperText="Component helper text."
|
|
399
|
+
labelText="Label"
|
|
400
|
+
showHelperInvalidText={false}
|
|
401
|
+
showLabel={false}
|
|
402
|
+
isRangeSlider
|
|
403
|
+
/>
|
|
404
|
+
<Slider
|
|
405
|
+
defaultValue={[15, 75]}
|
|
406
|
+
helperText="Component helper text."
|
|
407
|
+
labelText="Label"
|
|
408
|
+
showHelperInvalidText={false}
|
|
409
|
+
showLabel={false}
|
|
410
|
+
showBoxes={false}
|
|
411
|
+
isRangeSlider
|
|
412
|
+
/>
|
|
413
|
+
<Slider
|
|
414
|
+
defaultValue={[15, 75]}
|
|
415
|
+
helperText="Component helper text."
|
|
416
|
+
labelText="Label"
|
|
417
|
+
showHelperInvalidText={false}
|
|
418
|
+
showLabel={false}
|
|
419
|
+
showValues={false}
|
|
420
|
+
isRangeSlider
|
|
421
|
+
/>
|
|
422
|
+
<Slider
|
|
423
|
+
defaultValue={[15, 75]}
|
|
424
|
+
helperText="Component helper text."
|
|
425
|
+
labelText="Label"
|
|
426
|
+
showHelperInvalidText={false}
|
|
427
|
+
showLabel={false}
|
|
428
|
+
showValues={false}
|
|
429
|
+
showBoxes={false}
|
|
430
|
+
isRangeSlider
|
|
431
|
+
/>
|
|
432
|
+
</SimpleGrid>
|
|
433
|
+
</DSProvider>
|
|
434
|
+
</Canvas>
|
|
435
|
+
|
|
436
|
+
### Get Data Values
|
|
437
|
+
|
|
438
|
+
Pass a callback function to the `onChange` prop to get the current number value
|
|
439
|
+
of the `Slider` component or an array of two numbers when it is a range slider.
|
|
440
|
+
Internally, the `Slider` component handles the state of the current selected
|
|
441
|
+
value or values. Once the value(s) is updated, the `onChange` callback will be
|
|
442
|
+
called and the values will be passed.
|
|
443
|
+
|
|
444
|
+
#### Single Slider Value
|
|
445
|
+
|
|
446
|
+
Open up the browser's developer console to see the value of the `Slider`
|
|
447
|
+
after updating it.
|
|
448
|
+
|
|
449
|
+
```tsx
|
|
450
|
+
// Typescript example:
|
|
451
|
+
function SliderExample() {
|
|
452
|
+
const onChange = (newValue: number) => {
|
|
453
|
+
console.log(`The single Slider updated value is: ${newValue}`);
|
|
454
|
+
};
|
|
455
|
+
return (
|
|
456
|
+
<Slider
|
|
457
|
+
helperText="Component helper text."
|
|
458
|
+
labelText="Label"
|
|
459
|
+
onChange={onChange}
|
|
460
|
+
/>
|
|
461
|
+
);
|
|
462
|
+
}
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
export function SliderExample() {
|
|
466
|
+
const onChange = (newValue) => {
|
|
467
|
+
console.log(`The single Slider updated value is: ${newValue}`);
|
|
468
|
+
};
|
|
469
|
+
return (
|
|
470
|
+
<Slider
|
|
471
|
+
helperText="Component helper text."
|
|
472
|
+
labelText="Label"
|
|
473
|
+
onChange={onChange}
|
|
474
|
+
/>
|
|
475
|
+
);
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
<Canvas>
|
|
479
|
+
<DSProvider>
|
|
480
|
+
<SliderExample />
|
|
481
|
+
</DSProvider>
|
|
482
|
+
</Canvas>
|
|
483
|
+
|
|
484
|
+
#### Range Slider Values
|
|
485
|
+
|
|
486
|
+
Open up the browser's developer console to see the values of the `Slider`
|
|
487
|
+
after updating it in the `isRangeSlider` state.
|
|
488
|
+
|
|
489
|
+
```tsx
|
|
490
|
+
// Typescript example:
|
|
491
|
+
function RangeSliderExample() {
|
|
492
|
+
const onChange = (newValue: number[]) => {
|
|
493
|
+
const [start, end] = newValue;
|
|
494
|
+
console.log(`The Range Slider updated start value is: ${start}`);
|
|
495
|
+
console.log(`The Range Slider updated end value is: ${end}`);
|
|
496
|
+
};
|
|
497
|
+
return (
|
|
498
|
+
<Slider
|
|
499
|
+
helperText="Component helper text."
|
|
500
|
+
labelText="Label"
|
|
501
|
+
onChange={onChange}
|
|
502
|
+
isRangeSlider
|
|
503
|
+
/>
|
|
504
|
+
);
|
|
505
|
+
}
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
export function RangeSliderExample() {
|
|
509
|
+
const onChange = (newValue) => {
|
|
510
|
+
const [start, end] = newValue;
|
|
511
|
+
console.log(`The Range Slider updated start value is: ${start}`);
|
|
512
|
+
console.log(`The Range Slider updated end value is: ${end}`);
|
|
513
|
+
};
|
|
514
|
+
return (
|
|
515
|
+
<Slider
|
|
516
|
+
defaultValue={[15, 75]}
|
|
517
|
+
helperText="Component helper text."
|
|
518
|
+
labelText="Label"
|
|
519
|
+
onChange={onChange}
|
|
520
|
+
isRangeSlider
|
|
521
|
+
/>
|
|
522
|
+
);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
<Canvas>
|
|
526
|
+
<DSProvider>
|
|
527
|
+
<RangeSliderExample />
|
|
528
|
+
</DSProvider>
|
|
529
|
+
</Canvas>
|