@nypl/design-system-react-components 1.0.2 → 1.0.3-beta

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.
Files changed (282) hide show
  1. package/README.md +0 -2
  2. package/dist/components/Slider/Slider.d.ts +1 -2
  3. package/dist/components/TextInput/TextInput.d.ts +2 -1
  4. package/dist/design-system-react-components.cjs.development.js +33 -10
  5. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  6. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  7. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  8. package/dist/design-system-react-components.esm.js +33 -10
  9. package/dist/design-system-react-components.esm.js.map +1 -1
  10. package/dist/hooks/{tests → __tests__}/useCarouselStyles.test.d.ts +0 -0
  11. package/dist/theme/components/global.d.ts +1 -1
  12. package/dist/theme/components/radio.d.ts +8 -0
  13. package/dist/theme/components/template.d.ts +4 -1
  14. package/package.json +2 -3
  15. package/CHANGELOG.md +0 -1430
  16. package/src/__tests__/fileMock.ts +0 -6
  17. package/src/__tests__/setup.ts +0 -27
  18. package/src/__tests__/utils/utils.test.ts +0 -18
  19. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +0 -42
  20. package/src/components/Accordion/Accordion.stories.mdx +0 -333
  21. package/src/components/Accordion/Accordion.test.tsx +0 -237
  22. package/src/components/Accordion/Accordion.tsx +0 -137
  23. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +0 -734
  24. package/src/components/Autosuggest/Autosuggest.stories.mdx +0 -75
  25. package/src/components/Autosuggest/Autosuggest.stories.tsx +0 -211
  26. package/src/components/Autosuggest/_Autosuggest.scss +0 -51
  27. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +0 -231
  28. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -144
  29. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -98
  30. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +0 -695
  31. package/src/components/Button/Button.stories.mdx +0 -320
  32. package/src/components/Button/Button.test.tsx +0 -184
  33. package/src/components/Button/Button.tsx +0 -95
  34. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -106
  35. package/src/components/ButtonGroup/ButtonGroup.stories.mdx +0 -178
  36. package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
  37. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -100
  38. package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
  39. package/src/components/Card/Card.stories.mdx +0 -1041
  40. package/src/components/Card/Card.test.tsx +0 -388
  41. package/src/components/Card/Card.tsx +0 -346
  42. package/src/components/Card/__snapshots__/Card.test.tsx.snap +0 -568
  43. package/src/components/Chakra/Box.stories.mdx +0 -52
  44. package/src/components/Chakra/Center.stories.mdx +0 -96
  45. package/src/components/Chakra/Flex.stories.mdx +0 -111
  46. package/src/components/Chakra/Grid.stories.mdx +0 -89
  47. package/src/components/Chakra/Stack.stories.mdx +0 -109
  48. package/src/components/Checkbox/Checkbox.stories.mdx +0 -243
  49. package/src/components/Checkbox/Checkbox.test.tsx +0 -350
  50. package/src/components/Checkbox/Checkbox.tsx +0 -152
  51. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -661
  52. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +0 -462
  53. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +0 -492
  54. package/src/components/CheckboxGroup/CheckboxGroup.tsx +0 -173
  55. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +0 -1842
  56. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
  57. package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -76
  58. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -103
  59. package/src/components/DatePicker/DatePicker.stories.mdx +0 -452
  60. package/src/components/DatePicker/DatePicker.test.tsx +0 -940
  61. package/src/components/DatePicker/DatePicker.tsx +0 -450
  62. package/src/components/DatePicker/_DatePicker.scss +0 -100
  63. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -908
  64. package/src/components/Fieldset/Fieldset.stories.mdx +0 -96
  65. package/src/components/Fieldset/Fieldset.test.tsx +0 -155
  66. package/src/components/Fieldset/Fieldset.tsx +0 -55
  67. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +0 -89
  68. package/src/components/Form/Form.stories.mdx +0 -426
  69. package/src/components/Form/Form.test.tsx +0 -234
  70. package/src/components/Form/Form.tsx +0 -124
  71. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -115
  72. package/src/components/Grid/SimpleGrid.stories.mdx +0 -336
  73. package/src/components/Grid/SimpleGrid.test.tsx +0 -79
  74. package/src/components/Grid/SimpleGrid.tsx +0 -49
  75. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +0 -23
  76. package/src/components/Heading/Heading.stories.mdx +0 -187
  77. package/src/components/Heading/Heading.test.tsx +0 -171
  78. package/src/components/Heading/Heading.tsx +0 -104
  79. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +0 -90
  80. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +0 -172
  81. package/src/components/HelperErrorText/HelperErrorText.test.tsx +0 -114
  82. package/src/components/HelperErrorText/HelperErrorText.tsx +0 -62
  83. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +0 -93
  84. package/src/components/Hero/Hero.stories.mdx +0 -378
  85. package/src/components/Hero/Hero.test.tsx +0 -611
  86. package/src/components/Hero/Hero.tsx +0 -203
  87. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +0 -379
  88. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +0 -73
  89. package/src/components/HorizontalRule/HorizontalRule.test.tsx +0 -54
  90. package/src/components/HorizontalRule/HorizontalRule.tsx +0 -27
  91. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +0 -44
  92. package/src/components/Icons/Icon.stories.mdx +0 -413
  93. package/src/components/Icons/Icon.test.tsx +0 -120
  94. package/src/components/Icons/Icon.tsx +0 -187
  95. package/src/components/Icons/IconSvgs.tsx +0 -64
  96. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +0 -129
  97. package/src/components/Image/Image.stories.mdx +0 -332
  98. package/src/components/Image/Image.test.tsx +0 -155
  99. package/src/components/Image/Image.tsx +0 -171
  100. package/src/components/Image/__snapshots__/Image.test.tsx.snap +0 -269
  101. package/src/components/Label/Label.stories.mdx +0 -100
  102. package/src/components/Label/Label.test.tsx +0 -116
  103. package/src/components/Label/Label.tsx +0 -55
  104. package/src/components/Label/__snapshots__/Label.test.tsx.snap +0 -45
  105. package/src/components/Link/Link.stories.mdx +0 -249
  106. package/src/components/Link/Link.test.tsx +0 -224
  107. package/src/components/Link/Link.tsx +0 -178
  108. package/src/components/Link/__snapshots__/Link.test.tsx.snap +0 -286
  109. package/src/components/List/List.stories.mdx +0 -393
  110. package/src/components/List/List.test.tsx +0 -265
  111. package/src/components/List/List.tsx +0 -156
  112. package/src/components/List/__snapshots__/List.test.tsx.snap +0 -213
  113. package/src/components/Logo/Logo.stories.mdx +0 -295
  114. package/src/components/Logo/Logo.test.tsx +0 -116
  115. package/src/components/Logo/Logo.tsx +0 -151
  116. package/src/components/Logo/LogoSvgs.tsx +0 -90
  117. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
  118. package/src/components/Modal/Modal.stories.mdx +0 -294
  119. package/src/components/Modal/Modal.test.tsx +0 -157
  120. package/src/components/Modal/Modal.tsx +0 -154
  121. package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +0 -25
  122. package/src/components/Notification/Notification.stories.mdx +0 -358
  123. package/src/components/Notification/Notification.test.tsx +0 -279
  124. package/src/components/Notification/Notification.tsx +0 -224
  125. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +0 -525
  126. package/src/components/Pagination/Pagination.stories.mdx +0 -184
  127. package/src/components/Pagination/Pagination.test.tsx +0 -419
  128. package/src/components/Pagination/Pagination.tsx +0 -269
  129. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -544
  130. package/src/components/Placeholder/Placeholder.tsx +0 -19
  131. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +0 -360
  132. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +0 -298
  133. package/src/components/ProgressIndicator/ProgressIndicator.tsx +0 -132
  134. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +0 -434
  135. package/src/components/Radio/Radio.stories.mdx +0 -216
  136. package/src/components/Radio/Radio.test.tsx +0 -247
  137. package/src/components/Radio/Radio.tsx +0 -119
  138. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -451
  139. package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -479
  140. package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
  141. package/src/components/RadioGroup/RadioGroup.tsx +0 -171
  142. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1550
  143. package/src/components/SearchBar/SearchBar.stories.mdx +0 -518
  144. package/src/components/SearchBar/SearchBar.test.tsx +0 -435
  145. package/src/components/SearchBar/SearchBar.tsx +0 -210
  146. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +0 -1049
  147. package/src/components/Select/Select.stories.mdx +0 -439
  148. package/src/components/Select/Select.test.tsx +0 -358
  149. package/src/components/Select/Select.tsx +0 -183
  150. package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -895
  151. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +0 -142
  152. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +0 -116
  153. package/src/components/SkeletonLoader/SkeletonLoader.tsx +0 -123
  154. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +0 -898
  155. package/src/components/SkipNavigation/SkipNavigation.stories.mdx +0 -90
  156. package/src/components/SkipNavigation/SkipNavigation.test.tsx +0 -63
  157. package/src/components/SkipNavigation/SkipNavigation.tsx +0 -51
  158. package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +0 -130
  159. package/src/components/Slider/Slider.stories.mdx +0 -628
  160. package/src/components/Slider/Slider.test.tsx +0 -736
  161. package/src/components/Slider/Slider.tsx +0 -322
  162. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -2186
  163. package/src/components/StatusBadge/StatusBadge.stories.mdx +0 -109
  164. package/src/components/StatusBadge/StatusBadge.test.tsx +0 -70
  165. package/src/components/StatusBadge/StatusBadge.tsx +0 -35
  166. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +0 -47
  167. package/src/components/StructuredContent/StructuredContent.stories.mdx +0 -567
  168. package/src/components/StructuredContent/StructuredContent.test.tsx +0 -435
  169. package/src/components/StructuredContent/StructuredContent.tsx +0 -139
  170. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +0 -368
  171. package/src/components/StyleGuide/Bidirectionality.stories.mdx +0 -206
  172. package/src/components/StyleGuide/Breakpoints.stories.mdx +0 -55
  173. package/src/components/StyleGuide/Buttons.stories.mdx +0 -194
  174. package/src/components/StyleGuide/ColorCard.tsx +0 -43
  175. package/src/components/StyleGuide/Colors.stories.mdx +0 -201
  176. package/src/components/StyleGuide/DesignTokens.stories.mdx +0 -193
  177. package/src/components/StyleGuide/Forms.stories.mdx +0 -94
  178. package/src/components/StyleGuide/Iconography.stories.mdx +0 -142
  179. package/src/components/StyleGuide/Spacing.stories.mdx +0 -116
  180. package/src/components/StyleGuide/Typography.stories.mdx +0 -419
  181. package/src/components/Table/Table.stories.mdx +0 -272
  182. package/src/components/Table/Table.test.tsx +0 -241
  183. package/src/components/Table/Table.tsx +0 -152
  184. package/src/components/Table/__snapshots__/Table.test.tsx.snap +0 -1703
  185. package/src/components/Tabs/Tabs.stories.mdx +0 -338
  186. package/src/components/Tabs/Tabs.test.tsx +0 -298
  187. package/src/components/Tabs/Tabs.tsx +0 -264
  188. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +0 -584
  189. package/src/components/Template/Template.stories.mdx +0 -695
  190. package/src/components/Template/Template.test.tsx +0 -309
  191. package/src/components/Template/Template.tsx +0 -326
  192. package/src/components/Template/__snapshots__/Template.test.tsx.snap +0 -342
  193. package/src/components/Text/Text.stories.mdx +0 -103
  194. package/src/components/Text/Text.test.tsx +0 -63
  195. package/src/components/Text/Text.tsx +0 -50
  196. package/src/components/Text/__snapshots__/Text.test.tsx.snap +0 -50
  197. package/src/components/TextInput/TextInput.stories.mdx +0 -268
  198. package/src/components/TextInput/TextInput.test.tsx +0 -451
  199. package/src/components/TextInput/TextInput.tsx +0 -240
  200. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +0 -274
  201. package/src/components/Toggle/Toggle.stories.mdx +0 -237
  202. package/src/components/Toggle/Toggle.test.tsx +0 -170
  203. package/src/components/Toggle/Toggle.tsx +0 -128
  204. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -470
  205. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -212
  206. package/src/components/VideoPlayer/VideoPlayer.test.tsx +0 -308
  207. package/src/components/VideoPlayer/VideoPlayer.tsx +0 -188
  208. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +0 -192
  209. package/src/docs/Chakra.stories.mdx +0 -563
  210. package/src/docs/Welcome.stories.mdx +0 -148
  211. package/src/helpers/types.ts +0 -1
  212. package/src/hooks/tests/useCarouselStyles.test.ts +0 -140
  213. package/src/hooks/tests/useNYPLTheme.test.tsx +0 -36
  214. package/src/hooks/useCarouselStyles.stories.mdx +0 -30
  215. package/src/hooks/useCarouselStyles.ts +0 -35
  216. package/src/hooks/useNYPLTheme.stories.mdx +0 -98
  217. package/src/hooks/useNYPLTheme.ts +0 -91
  218. package/src/hooks/useWindowSize.stories.mdx +0 -23
  219. package/src/hooks/useWindowSize.ts +0 -40
  220. package/src/index.ts +0 -136
  221. package/src/resources.scss +0 -6
  222. package/src/styles/base/_01-breakpoints.scss +0 -27
  223. package/src/styles/base/_02-mixins.scss +0 -103
  224. package/src/styles/base/_place-holder.scss +0 -33
  225. package/src/styles/space/_space-inline.scss +0 -79
  226. package/src/styles/space/_space-inset.scss +0 -57
  227. package/src/styles/space/_space-stack.scss +0 -116
  228. package/src/styles.scss +0 -23
  229. package/src/theme/components/accordion.ts +0 -25
  230. package/src/theme/components/breadcrumb.ts +0 -94
  231. package/src/theme/components/button.ts +0 -133
  232. package/src/theme/components/buttonGroup.ts +0 -10
  233. package/src/theme/components/card.ts +0 -237
  234. package/src/theme/components/checkbox.ts +0 -110
  235. package/src/theme/components/checkboxGroup.ts +0 -10
  236. package/src/theme/components/componentWrapper.ts +0 -14
  237. package/src/theme/components/customTable.ts +0 -77
  238. package/src/theme/components/datePicker.ts +0 -17
  239. package/src/theme/components/fieldset.ts +0 -23
  240. package/src/theme/components/global.ts +0 -91
  241. package/src/theme/components/globalMixins.ts +0 -24
  242. package/src/theme/components/heading.ts +0 -79
  243. package/src/theme/components/helperErrorText.ts +0 -14
  244. package/src/theme/components/hero.ts +0 -238
  245. package/src/theme/components/horizontalRule.ts +0 -17
  246. package/src/theme/components/icon.ts +0 -88
  247. package/src/theme/components/image.ts +0 -136
  248. package/src/theme/components/label.ts +0 -15
  249. package/src/theme/components/link.ts +0 -63
  250. package/src/theme/components/list.ts +0 -88
  251. package/src/theme/components/logo.ts +0 -58
  252. package/src/theme/components/notification.ts +0 -132
  253. package/src/theme/components/pagination.ts +0 -17
  254. package/src/theme/components/progressIndicator.ts +0 -67
  255. package/src/theme/components/radio.ts +0 -103
  256. package/src/theme/components/radioGroup.ts +0 -10
  257. package/src/theme/components/searchBar.ts +0 -19
  258. package/src/theme/components/select.ts +0 -72
  259. package/src/theme/components/skeletonLoader.ts +0 -113
  260. package/src/theme/components/skipNavigation.ts +0 -29
  261. package/src/theme/components/slider.ts +0 -95
  262. package/src/theme/components/statusBadge.ts +0 -26
  263. package/src/theme/components/structuredContent.ts +0 -149
  264. package/src/theme/components/tabs.ts +0 -109
  265. package/src/theme/components/template.ts +0 -114
  266. package/src/theme/components/text.ts +0 -38
  267. package/src/theme/components/textInput.ts +0 -65
  268. package/src/theme/components/toggle.ts +0 -109
  269. package/src/theme/components/videoPlayer.ts +0 -47
  270. package/src/theme/foundations/breakpoints.ts +0 -24
  271. package/src/theme/foundations/colors.ts +0 -212
  272. package/src/theme/foundations/global.ts +0 -43
  273. package/src/theme/foundations/radii.ts +0 -7
  274. package/src/theme/foundations/shadows.ts +0 -5
  275. package/src/theme/foundations/spacing.ts +0 -136
  276. package/src/theme/foundations/typography.ts +0 -107
  277. package/src/theme/index.ts +0 -131
  278. package/src/theme/provider.tsx +0 -9
  279. package/src/theme/types.ts +0 -1
  280. package/src/utils/componentCategories.ts +0 -152
  281. package/src/utils/interfaces.ts +0 -5
  282. package/src/utils/utils.ts +0 -84
@@ -1,628 +0,0 @@
1
- import {
2
- ArgsTable,
3
- Canvas,
4
- Description,
5
- Meta,
6
- Story,
7
- } from "@storybook/addon-docs";
8
- import { withDesign } from "storybook-addon-designs";
9
-
10
- import Heading from "../Heading/Heading";
11
- import SimpleGrid from "../Grid/SimpleGrid";
12
- import Slider from "./Slider";
13
- import { getCategory } from "../../utils/componentCategories";
14
- import DSProvider from "../../theme/provider";
15
-
16
- <Meta
17
- title={getCategory("Slider")}
18
- component={Slider}
19
- decorators={[withDesign]}
20
- parameters={{
21
- design: {
22
- type: "figma",
23
- url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36889%3A25871",
24
- },
25
- jest: ["Slider.test.tsx"],
26
- }}
27
- argTypes={{
28
- className: { control: false },
29
- defaultValue: {
30
- control: false,
31
- table: { defaultValue: { summary: 0 } },
32
- },
33
- id: { control: false },
34
- isDisabled: {
35
- table: { defaultValue: { summary: false } },
36
- },
37
- isInvalid: {
38
- table: { defaultValue: { summary: false } },
39
- },
40
- isRequired: {
41
- table: { defaultValue: { summary: false } },
42
- },
43
- max: {
44
- table: { defaultValue: { summary: 100 } },
45
- },
46
- min: {
47
- table: { defaultValue: { summary: 0 } },
48
- },
49
- name: { control: false },
50
- onChange: { control: false },
51
- showBoxes: {
52
- table: { defaultValue: { summary: true } },
53
- },
54
- showHelperInvalidText: {
55
- table: { defaultValue: { summary: true } },
56
- },
57
- showLabel: {
58
- table: { defaultValue: { summary: true } },
59
- },
60
- showRequiredLabel: {
61
- table: { defaultValue: { summary: true } },
62
- },
63
- showValues: {
64
- table: { defaultValue: { summary: true } },
65
- },
66
- step: {
67
- table: { defaultValue: { summary: 1 } },
68
- },
69
- }}
70
- />
71
-
72
- # Slider
73
-
74
- | Component Version | DS Version |
75
- | ----------------- | ---------- |
76
- | Added | `0.25.4` |
77
- | Latest | `1.0.2` |
78
-
79
- ## Table of Contents
80
-
81
- - [Overview](#overview)
82
- - [Component Props](#component-props)
83
- - [Accessibility](#accessibility)
84
- - [RangeSlider](#rangeslider)
85
- - [Examples](#examples)
86
- - [Get Input Values](#get-input-values)
87
-
88
- ## Overview
89
-
90
- <Description of={Slider} />
91
-
92
- The text input component doubles as a display for the slider's current value.
93
- For this type of component, the `value` prop must be a single number.
94
-
95
- ## Component Props
96
-
97
- <Canvas withToolbar>
98
- <Story
99
- name="Slider with Controls"
100
- args={{
101
- className: undefined,
102
- defaultValue: 50,
103
- helperText: "Pass in a value from the min 0 to the max 100 values.",
104
- id: "slider-id",
105
- invalidText: "Oh no this is an error :(",
106
- isDisabled: false,
107
- isInvalid: false,
108
- isRangeSlider: false,
109
- isRequired: false,
110
- labelText: "Slider label",
111
- max: 100,
112
- min: 0,
113
- name: undefined,
114
- onChange: undefined,
115
- showBoxes: true,
116
- showHelperInvalidText: true,
117
- showLabel: true,
118
- showRequiredLabel: true,
119
- showValues: true,
120
- step: 1,
121
- }}
122
- argTypes={{
123
- isRangeSlider: {
124
- control: false,
125
- table: {
126
- defaultValue: { summary: false },
127
- },
128
- },
129
- }}
130
- >
131
- {(args) => <Slider {...args} />}
132
- </Story>
133
- </Canvas>
134
-
135
- <ArgsTable story="Slider with Controls" />
136
-
137
- ## Accessibility
138
-
139
- The `Slider` component is accessible via keyboard. In addition to the text fields,
140
- a keyboard user can tab to the blue slider thumb and then with left and right
141
- arrows increase or decrease the value. The color contrast between foreground
142
- color and background color is 4.5:1. If text size is 200%, the button scales
143
- with text so there is no overlap. Internally, a `Label` is associated with the
144
- `<input>` element.
145
-
146
- When `showLabel` is set to false, the `labelText` value will be set to the
147
- main `<div>`'s `aria-label` attribute. This is the same `<div>` that contains the
148
- `aria-valuemin`, `aria-valuemax`, `aria-orientation`, and `aria-valuenow`
149
- attributes.
150
-
151
- Resources:
152
-
153
- - [W3C WAI-Aria Practices - Slider](https://www.w3.org/TR/wai-aria-practices-1.1/#slider)
154
- - [W3C WAI-Aria Practices - Slider (Multi-Thumb)](https://www.w3.org/TR/wai-aria-practices-1.1/#slidertwothumb)
155
- - [Chakra Slider](https://chakra-ui.com/docs/components/form/slider)
156
- - [Chakra RangeSlider](https://chakra-ui.com/docs/components/form/range-slider)
157
-
158
- ### Slider Accessibility Implementation
159
-
160
- Chakra's `Slider` component is accessible and, as recommended, we pass in an
161
- `aria-label` to their `Slider` component. On top of that, the Reservoir Design
162
- System (DS) `Slider` component's `<label>` points to the `<input>` element
163
- which shows the current value. This `input` element also has its own
164
- `aria-label`. When the input box is hidden, the `for` attribute in the `label`
165
- element is removed.
166
-
167
- Note that Chakra handles its single slider thumb aria attributes: `aria-valuemin`,
168
- `aria-valuemax`, `aria-valuenow`, and `aria-orientation`.
169
-
170
- ## RangeSlider
171
-
172
- Set `isRangeSlider` to `true` to create a range slider. The text input
173
- components double as displays for the slider's current minimum and maximum
174
- value. For this type of component, the `value` prop must be an array of two
175
- numbers. This signifies the starting and ending values of the range slider.
176
-
177
- <Canvas withToolbar>
178
- <Story
179
- name="RangeSlider with Controls"
180
- args={{
181
- className: undefined,
182
- defaultValue: [25, 75],
183
- helperText: "Pass in a value from the min 0 to the max 100 values.",
184
- id: "slider-range-id",
185
- invalidText: "Oh no this is an error :(",
186
- isDisabled: false,
187
- isInvalid: false,
188
- isRangeSlider: true,
189
- isRequired: false,
190
- labelText: "Range Slider label",
191
- max: 100,
192
- min: 0,
193
- name: undefined,
194
- onChange: undefined,
195
- showBoxes: true,
196
- showHelperInvalidText: true,
197
- showLabel: true,
198
- showRequiredLabel: true,
199
- showValues: true,
200
- step: 1,
201
- }}
202
- argTypes={{
203
- isRangeSlider: {
204
- control: false,
205
- table: {
206
- defaultValue: { summary: false },
207
- },
208
- },
209
- }}
210
- >
211
- {(args) => <Slider {...args} />}
212
- </Story>
213
- </Canvas>
214
-
215
- ### RangeSlider Accessibility Implementation
216
-
217
- Chakra's `RangeSlider` component is accessible and, as recommended, we pass in
218
- two `aria-label`s to their `RangeSlider` component. The syntax is different than
219
- the expected standard string; the `RangeSlider` expect `aria-label` to be an array
220
- of two strings. On top of this, the DS `Slider`'s `<label>` element, when in the
221
- `isRangeSlider` state, points to the _first_ `<input>` element which shows the
222
- current _start_ value. These two `input` elements also have their own `aria-label`s.
223
- When the input boxes are hidden, the `for` attribute in the `label` element is removed.
224
-
225
- Note that Chakra handles its two slider thumbs aria attributes: `aria-valuemin`,
226
- `aria-valuemax`, `aria-valuenow`, and `aria-orientation`.
227
-
228
- ## Examples
229
-
230
- ### Single Slider States
231
-
232
- <Canvas>
233
- <DSProvider>
234
- <Heading id="heading-single-default" level="four" text="Default State" />
235
- <Slider
236
- defaultValue={50}
237
- helperText="Component helper text."
238
- id="single-slider"
239
- invalidText="Component error text :("
240
- labelText="Label"
241
- />
242
- </DSProvider>
243
- </Canvas>
244
-
245
- <Canvas>
246
- <DSProvider>
247
- <Heading id="heading-single-errored" level="four" text="Errored State" />
248
- <Slider
249
- defaultValue={50}
250
- helperText="Component helper text."
251
- id="errored-slider"
252
- invalidText="Component error text :("
253
- labelText="Label"
254
- isInvalid
255
- />
256
- </DSProvider>
257
- </Canvas>
258
-
259
- <Canvas>
260
- <DSProvider>
261
- <Heading id="heading-single-required" level="four" text="Required State" />
262
- <Slider
263
- defaultValue={50}
264
- helperText="Component helper text."
265
- id="required-slider"
266
- invalidText="Component error text :("
267
- labelText="Label"
268
- isRequired
269
- />
270
- </DSProvider>
271
- </Canvas>
272
-
273
- <Canvas>
274
- <DSProvider>
275
- <Heading id="heading-single-disabled" level="four" text="Disabled State" />
276
- <Slider
277
- defaultValue={50}
278
- helperText="Component helper text."
279
- id="disabled-slider"
280
- invalidText="Component error text :("
281
- labelText="Label"
282
- isDisabled
283
- />
284
- </DSProvider>
285
- </Canvas>
286
-
287
- ### Range Slider States
288
-
289
- To enable the Range Slider, set the `isRangeSlider` prop to true.
290
-
291
- <Canvas>
292
- <DSProvider>
293
- <Heading id="heading-range-default" level="four" text="Default State" />
294
- <Slider
295
- defaultValue={[25, 75]}
296
- helperText="Component helper text."
297
- id="range-slider"
298
- invalidText="Component error text :("
299
- labelText="Label"
300
- isRangeSlider
301
- />
302
- </DSProvider>
303
- </Canvas>
304
-
305
- <Canvas>
306
- <DSProvider>
307
- <Heading id="heading-range-errored" level="four" text="Errored State" />
308
- <SimpleGrid columns={1} gap="grid.l">
309
- <Slider
310
- defaultValue={[25, 75]}
311
- helperText="Component helper text."
312
- id="range-error-slider"
313
- invalidText="Component error text :("
314
- labelText="Label"
315
- isRangeSlider
316
- isInvalid
317
- />
318
- <p>
319
- Note: The slider does not allow the starting thumb to go past the ending
320
- thumb. Likewise, it also does not allow the ending thumb to go below the
321
- starting thumb. However, it's possible to set incorrect values directly
322
- into both of the text inputs. For example, if you enter 80 in the first
323
- text input box and 20 in the second input box, it will automatically go
324
- into the invalid state. In the following example, the default values are
325
- already set to 80 and 20 *just* to showcase this error.
326
- </p>
327
- <Slider
328
- defaultValue={[80, 20]}
329
- helperText="Component helper text."
330
- id="range-error-slider2"
331
- invalidText="Component error text :("
332
- labelText="Label"
333
- isRangeSlider
334
- />
335
- </SimpleGrid>
336
- </DSProvider>
337
- </Canvas>
338
-
339
- <Canvas>
340
- <DSProvider>
341
- <Heading id="heading-range-required" level="four" text="Required State" />
342
- <Slider
343
- defaultValue={[25, 75]}
344
- helperText="Component helper text."
345
- id="range-required-slider"
346
- invalidText="Component error text :("
347
- labelText="Label"
348
- isRangeSlider
349
- isRequired
350
- />
351
- </DSProvider>
352
- </Canvas>
353
-
354
- <Canvas>
355
- <DSProvider>
356
- <Heading id="heading-range-disabled" level="four" text="Disabled State" />
357
- <Slider
358
- defaultValue={[25, 75]}
359
- helperText="Component helper text."
360
- id="single-disabled-slider"
361
- invalidText="Component error text :("
362
- labelText="Label"
363
- isRangeSlider
364
- isDisabled
365
- />
366
- </DSProvider>
367
- </Canvas>
368
-
369
- ### Single Slider Variants
370
-
371
- In the following example, the min/max values and the current value text
372
- input are hidden.
373
-
374
- <Canvas>
375
- <DSProvider>
376
- <Heading
377
- id="heading-single-labels"
378
- level="four"
379
- text="With and Without Component Labels"
380
- />
381
- <SimpleGrid columns={1} gap="grid.xl">
382
- <Slider
383
- defaultValue={50}
384
- helperText="Component helper text."
385
- id="single-slider-variant-1"
386
- labelText="Label"
387
- showValues={false}
388
- showBoxes={false}
389
- />
390
- <Slider
391
- defaultValue={50}
392
- helperText="Component helper text."
393
- id="single-slider-variant-2"
394
- labelText="Label"
395
- showValues={false}
396
- showBoxes={false}
397
- isRequired
398
- />
399
- <Slider
400
- defaultValue={50}
401
- helperText="Component helper text."
402
- id="single-slider-variant-3"
403
- labelText="Label"
404
- showValues={false}
405
- showBoxes={false}
406
- />
407
- <Slider
408
- defaultValue={50}
409
- helperText="Component helper text."
410
- id="single-slider-variant-4"
411
- labelText="Label"
412
- showHelperInvalidText={false}
413
- showValues={false}
414
- showBoxes={false}
415
- />
416
- <Slider
417
- defaultValue={50}
418
- helperText="Component helper text."
419
- id="single-slider-variant-5"
420
- labelText="Label"
421
- showValues={false}
422
- showBoxes={false}
423
- showLabel={false}
424
- />
425
- </SimpleGrid>
426
- </DSProvider>
427
- </Canvas>
428
-
429
- For the following examples, all labels are hidden.
430
-
431
- <Canvas>
432
- <DSProvider>
433
- <Heading
434
- id="heading-single-labels-inputs"
435
- level="four"
436
- text="With and Without Internal Inputs and Labels"
437
- />
438
- <SimpleGrid columns={1} gap="grid.xl">
439
- <Slider
440
- defaultValue={50}
441
- helperText="Component helper text."
442
- id="hidden-labels-1"
443
- labelText="Label"
444
- showHelperInvalidText={false}
445
- showLabel={false}
446
- />
447
- <Slider
448
- defaultValue={50}
449
- helperText="Component helper text."
450
- id="hidden-labels-2"
451
- labelText="Label"
452
- showHelperInvalidText={false}
453
- showLabel={false}
454
- showBoxes={false}
455
- />
456
- <Slider
457
- defaultValue={50}
458
- helperText="Component helper text."
459
- id="hidden-labels-3"
460
- labelText="Label"
461
- showHelperInvalidText={false}
462
- showLabel={false}
463
- showValues={false}
464
- />
465
- <Slider
466
- defaultValue={50}
467
- helperText="Component helper text."
468
- id="hidden-labels-4"
469
- labelText="Label"
470
- showHelperInvalidText={false}
471
- showLabel={false}
472
- showValues={false}
473
- showBoxes={false}
474
- />
475
- </SimpleGrid>
476
- </DSProvider>
477
- </Canvas>
478
-
479
- ### Range Slider with Adjusted Handles
480
-
481
- In the following examples, all the labels are hidden.
482
-
483
- <Canvas>
484
- <DSProvider>
485
- <SimpleGrid columns={1} gap="grid.xl">
486
- <Slider
487
- defaultValue={[15, 75]}
488
- helperText="Component helper text."
489
- id="range-slider-1"
490
- isRangeSlider
491
- labelText="Label"
492
- showHelperInvalidText={false}
493
- showLabel={false}
494
- />
495
- <Slider
496
- defaultValue={[15, 75]}
497
- helperText="Component helper text."
498
- id="range-slider-1"
499
- isRangeSlider
500
- labelText="Label"
501
- showBoxes={false}
502
- showHelperInvalidText={false}
503
- showLabel={false}
504
- />
505
- <Slider
506
- defaultValue={[15, 75]}
507
- helperText="Component helper text."
508
- id="range-slider-3"
509
- isRangeSlider
510
- labelText="Label"
511
- showHelperInvalidText={false}
512
- showLabel={false}
513
- showValues={false}
514
- />
515
- <Slider
516
- defaultValue={[15, 75]}
517
- helperText="Component helper text."
518
- id="range-slider-4"
519
- isRangeSlider
520
- labelText="Label"
521
- showBoxes={false}
522
- showHelperInvalidText={false}
523
- showLabel={false}
524
- showValues={false}
525
- />
526
- </SimpleGrid>
527
- </DSProvider>
528
- </Canvas>
529
-
530
- ## Get Input Values
531
-
532
- Pass a callback function to the `onChange` prop to get the current number value
533
- of the `Slider` component or an array of two numbers when it is a range slider.
534
- Internally, the `Slider` component handles the state of the current selected
535
- value or values. Once the value(s) is updated, the `onChange` callback will be
536
- called and the values will be passed. If no `onChange` callback is provided,
537
- you won't be able to get the updated value(s) of the `Slider` component.
538
-
539
- ### Single Slider Value
540
-
541
- Open up the browser's developer console to see the value of the `Slider`
542
- after updating it.
543
-
544
- ```tsx
545
- // Typescript example:
546
- function SliderExample() {
547
- const onChange = (newValue: number) => {
548
- console.log(`The single Slider updated value is: ${newValue}`);
549
- };
550
- return (
551
- <Slider
552
- helperText="Component helper text."
553
- id="slider"
554
- labelText="Label"
555
- onChange={onChange}
556
- />
557
- );
558
- }
559
- ```
560
-
561
- export function SliderExample() {
562
- const onChange = (newValue) => {
563
- console.log(`The single Slider updated value is: ${newValue}`);
564
- };
565
- return (
566
- <Slider
567
- helperText="Component helper text."
568
- id="slider"
569
- labelText="Label"
570
- onChange={onChange}
571
- />
572
- );
573
- }
574
-
575
- <Canvas>
576
- <DSProvider>
577
- <SliderExample />
578
- </DSProvider>
579
- </Canvas>
580
-
581
- ### Range Slider Values
582
-
583
- Open up the browser's developer console to see the values of the `Slider`
584
- after updating it in the `isRangeSlider` state.
585
-
586
- ```tsx
587
- // Typescript example:
588
- function RangeSliderExample() {
589
- const onChange = (newValue: number[]) => {
590
- const [start, end] = newValue;
591
- console.log(`The Range Slider updated start value is: ${start}`);
592
- console.log(`The Range Slider updated end value is: ${end}`);
593
- };
594
- return (
595
- <Slider
596
- helperText="Component helper text."
597
- id="range-slider"
598
- isRangeSlider
599
- labelText="Label"
600
- onChange={onChange}
601
- />
602
- );
603
- }
604
- ```
605
-
606
- export function RangeSliderExample() {
607
- const onChange = (newValue) => {
608
- const [start, end] = newValue;
609
- console.log(`The Range Slider updated start value is: ${start}`);
610
- console.log(`The Range Slider updated end value is: ${end}`);
611
- };
612
- return (
613
- <Slider
614
- defaultValue={[15, 75]}
615
- helperText="Component helper text."
616
- id="range-slider"
617
- isRangeSlider
618
- labelText="Label"
619
- onChange={onChange}
620
- />
621
- );
622
- }
623
-
624
- <Canvas>
625
- <DSProvider>
626
- <RangeSliderExample />
627
- </DSProvider>
628
- </Canvas>