@nypl/design-system-react-components 0.25.1 → 0.25.5

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 (307) hide show
  1. package/CHANGELOG.md +118 -1
  2. package/README.md +98 -50
  3. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
  4. package/dist/components/Button/Button.d.ts +13 -8
  5. package/dist/components/Button/ButtonTypes.d.ts +2 -1
  6. package/dist/components/Card/Card.d.ts +36 -52
  7. package/dist/components/Card/CardTypes.d.ts +0 -15
  8. package/dist/components/Checkbox/Checkbox.d.ts +17 -13
  9. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -2
  10. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
  11. package/dist/components/DatePicker/DatePicker.d.ts +36 -34
  12. package/dist/components/Fieldset/Fieldset.d.ts +25 -0
  13. package/dist/components/Heading/Heading.d.ts +4 -4
  14. package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
  15. package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
  16. package/dist/components/Icons/Icon.d.ts +8 -0
  17. package/dist/components/Icons/IconSvgs.d.ts +11 -0
  18. package/dist/components/Icons/IconTypes.d.ts +11 -0
  19. package/dist/components/Image/Image.d.ts +19 -9
  20. package/dist/components/Image/ImageTypes.d.ts +20 -0
  21. package/dist/components/Link/Link.d.ts +4 -0
  22. package/dist/components/List/List.d.ts +19 -14
  23. package/dist/components/Notification/Notification.d.ts +37 -16
  24. package/dist/components/Pagination/Pagination.d.ts +16 -13
  25. package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
  26. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
  27. package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
  28. package/dist/components/Radio/Radio.d.ts +2 -0
  29. package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
  30. package/dist/components/SearchBar/SearchBar.d.ts +3 -3
  31. package/dist/components/Select/Select.d.ts +2 -0
  32. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
  33. package/dist/components/Slider/Slider.d.ts +57 -0
  34. package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
  35. package/dist/components/Tabs/Tabs.d.ts +1 -1
  36. package/dist/components/TextInput/TextInput.d.ts +12 -0
  37. package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
  38. package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
  39. package/dist/design-system-react-components.cjs.development.js +6131 -3715
  40. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  41. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  42. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  43. package/dist/design-system-react-components.esm.js +6124 -3699
  44. package/dist/design-system-react-components.esm.js.map +1 -1
  45. package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
  46. package/dist/hooks/useCarouselStyles.d.ts +16 -0
  47. package/dist/hooks/useNYPLTheme.d.ts +54 -0
  48. package/dist/hooks/useWindowSize.d.ts +10 -0
  49. package/dist/index.d.ts +13 -8
  50. package/dist/resources.scss +180 -170
  51. package/dist/styles.css +1 -1
  52. package/dist/theme/components/button.d.ts +22 -8
  53. package/dist/theme/components/card.d.ts +168 -0
  54. package/dist/theme/components/checkbox.d.ts +5 -1
  55. package/dist/theme/components/checkboxGroup.d.ts +12 -0
  56. package/dist/theme/components/componentWrapper.d.ts +11 -0
  57. package/dist/theme/components/datePicker.d.ts +16 -0
  58. package/dist/theme/components/fieldset.d.ts +27 -0
  59. package/dist/theme/components/global.d.ts +23 -13
  60. package/dist/theme/components/globalMixins.d.ts +9 -1
  61. package/dist/theme/components/heading.d.ts +5 -0
  62. package/dist/theme/components/helperErrorText.d.ts +10 -0
  63. package/dist/theme/components/hero.d.ts +1 -0
  64. package/dist/theme/components/horizontalRule.d.ts +14 -0
  65. package/dist/theme/components/image.d.ts +31 -0
  66. package/dist/theme/components/label.d.ts +5 -3
  67. package/dist/theme/components/link.d.ts +4 -0
  68. package/dist/theme/components/list.d.ts +89 -0
  69. package/dist/theme/components/notification.d.ts +75 -0
  70. package/dist/theme/components/pagination.d.ts +19 -0
  71. package/dist/theme/components/progressIndicator.d.ts +50 -0
  72. package/dist/theme/components/radioGroup.d.ts +12 -0
  73. package/dist/theme/components/select.d.ts +11 -2
  74. package/dist/theme/components/skeletonLoader.d.ts +98 -0
  75. package/dist/theme/components/slider.d.ts +51 -0
  76. package/dist/theme/components/tabs.d.ts +54 -3
  77. package/dist/theme/components/textInput.d.ts +8 -1
  78. package/dist/theme/components/videoPlayer.d.ts +40 -0
  79. package/dist/theme/foundations/breakpoints.d.ts +8 -8
  80. package/dist/theme/foundations/global.d.ts +6 -1
  81. package/dist/theme/foundations/radii.d.ts +5 -0
  82. package/dist/theme/foundations/spacing.d.ts +16 -16
  83. package/package.json +72 -83
  84. package/src/__tests__/setup.ts +2 -2
  85. package/src/components/Accordion/Accordion.stories.mdx +39 -44
  86. package/src/components/Autosuggest/Autosuggest.stories.mdx +3 -3
  87. package/src/components/Autosuggest/Autosuggest.stories.tsx +2 -1
  88. package/src/components/Autosuggest/_Autosuggest.scss +5 -5
  89. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +14 -10
  90. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +23 -0
  91. package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -1
  92. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +199 -1
  93. package/src/components/Button/Button.stories.mdx +15 -10
  94. package/src/components/Button/Button.test.tsx +21 -7
  95. package/src/components/Button/Button.tsx +22 -34
  96. package/src/components/Button/ButtonTypes.tsx +1 -0
  97. package/src/components/Button/__snapshots__/Button.test.tsx.snap +41 -10
  98. package/src/components/Card/Card.stories.mdx +296 -259
  99. package/src/components/Card/Card.test.tsx +156 -84
  100. package/src/components/Card/Card.tsx +195 -145
  101. package/src/components/Card/CardTypes.tsx +0 -17
  102. package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
  103. package/src/components/CardEdition/CardEdition.stories.tsx +15 -47
  104. package/src/components/CardEdition/_CardEdition.scss +22 -23
  105. package/src/components/Chakra/Box.stories.mdx +15 -16
  106. package/src/components/Chakra/Center.stories.mdx +31 -16
  107. package/src/components/Chakra/Grid.stories.mdx +28 -15
  108. package/src/components/Chakra/Stack.stories.mdx +35 -18
  109. package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
  110. package/src/components/Checkbox/Checkbox.test.tsx +47 -2
  111. package/src/components/Checkbox/Checkbox.tsx +39 -33
  112. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +90 -2
  113. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +82 -2
  114. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +29 -2
  115. package/src/components/CheckboxGroup/CheckboxGroup.tsx +22 -18
  116. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +47 -81
  117. package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
  118. package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
  119. package/src/components/DatePicker/DatePicker.test.tsx +264 -64
  120. package/src/components/DatePicker/DatePicker.tsx +159 -128
  121. package/src/components/DatePicker/_DatePicker.scss +33 -67
  122. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
  123. package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
  124. package/src/components/Fieldset/Fieldset.test.tsx +125 -0
  125. package/src/components/Fieldset/Fieldset.tsx +52 -0
  126. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
  127. package/src/components/Form/Form.stories.mdx +24 -6
  128. package/src/components/Form/Form.test.tsx +1 -1
  129. package/src/components/Form/Form.tsx +1 -0
  130. package/src/components/Grid/SimpleGrid.stories.mdx +32 -39
  131. package/src/components/Grid/SimpleGrid.test.tsx +4 -4
  132. package/src/components/Heading/Heading.stories.mdx +3 -4
  133. package/src/components/Heading/Heading.tsx +5 -5
  134. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
  135. package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
  136. package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
  137. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
  138. package/src/components/Hero/Hero.stories.mdx +12 -2
  139. package/src/components/Hero/Hero.tsx +1 -1
  140. package/src/components/Hero/HeroTypes.tsx +1 -0
  141. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +7 -7
  142. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
  143. package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
  144. package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
  145. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
  146. package/src/components/Icons/Icon.stories.mdx +12 -4
  147. package/src/components/Icons/Icon.test.tsx +18 -0
  148. package/src/components/Icons/Icon.tsx +16 -1
  149. package/src/components/Icons/IconSvgs.tsx +22 -0
  150. package/src/components/Icons/IconTypes.tsx +11 -0
  151. package/src/components/Image/Image.stories.mdx +220 -0
  152. package/src/components/Image/Image.test.tsx +131 -29
  153. package/src/components/Image/Image.tsx +84 -56
  154. package/src/components/Image/ImageTypes.ts +22 -0
  155. package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
  156. package/src/components/Input/Input.stories.tsx +23 -67
  157. package/src/components/Input/Input.test.tsx +4 -4
  158. package/src/components/Input/_Input.scss +23 -14
  159. package/src/components/Link/Link.tsx +4 -1
  160. package/src/components/List/List.stories.mdx +124 -49
  161. package/src/components/List/List.test.tsx +142 -63
  162. package/src/components/List/List.tsx +89 -93
  163. package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
  164. package/src/components/Modal/Modal.stories.mdx +3 -3
  165. package/src/components/Modal/_Modal.scss +2 -2
  166. package/src/components/Notification/Notification.stories.mdx +109 -112
  167. package/src/components/Notification/Notification.test.tsx +99 -110
  168. package/src/components/Notification/Notification.tsx +156 -159
  169. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
  170. package/src/components/Pagination/Pagination.stories.mdx +26 -27
  171. package/src/components/Pagination/Pagination.stories.tsx +11 -16
  172. package/src/components/Pagination/Pagination.test.tsx +276 -146
  173. package/src/components/Pagination/Pagination.tsx +174 -154
  174. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
  175. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
  176. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
  177. package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
  178. package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
  179. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
  180. package/src/components/Radio/Radio.test.tsx +20 -4
  181. package/src/components/Radio/Radio.tsx +6 -3
  182. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
  183. package/src/components/RadioGroup/RadioGroup.stories.mdx +3 -4
  184. package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
  185. package/src/components/RadioGroup/RadioGroup.tsx +19 -19
  186. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
  187. package/src/components/SearchBar/SearchBar.Test.tsx +20 -1
  188. package/src/components/SearchBar/SearchBar.stories.mdx +113 -8
  189. package/src/components/SearchBar/SearchBar.tsx +20 -10
  190. package/src/components/Select/Select.test.tsx +12 -0
  191. package/src/components/Select/Select.tsx +5 -2
  192. package/src/components/Select/SelectTypes.tsx +1 -0
  193. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +28 -59
  194. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
  195. package/src/components/SkeletonLoader/SkeletonLoader.tsx +74 -71
  196. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
  197. package/src/components/Slider/Slider.stories.mdx +529 -0
  198. package/src/components/Slider/Slider.test.tsx +653 -0
  199. package/src/components/Slider/Slider.tsx +303 -0
  200. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
  201. package/src/components/StyleGuide/Bidirectionality.stories.mdx +1 -1
  202. package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
  203. package/src/components/StyleGuide/Buttons.stories.mdx +89 -73
  204. package/src/components/StyleGuide/ColorCard.tsx +46 -0
  205. package/src/components/StyleGuide/Colors.stories.mdx +171 -311
  206. package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
  207. package/src/components/StyleGuide/Forms.stories.mdx +9 -7
  208. package/src/components/StyleGuide/Iconography.stories.mdx +85 -91
  209. package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
  210. package/src/components/StyleGuide/Typography.stories.mdx +202 -189
  211. package/src/components/StyleGuide/UIDocCard.tsx +1 -1
  212. package/src/components/Tabs/Tabs.stories.mdx +73 -11
  213. package/src/components/Tabs/Tabs.tsx +87 -64
  214. package/src/components/Template/Template.stories.mdx +25 -27
  215. package/src/components/TextInput/TextInput.stories.mdx +1 -1
  216. package/src/components/TextInput/TextInput.test.tsx +22 -2
  217. package/src/components/TextInput/TextInput.tsx +28 -8
  218. package/src/components/TextInput/TextInputTypes.tsx +2 -0
  219. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
  220. package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
  221. package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
  222. package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
  223. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
  224. package/src/docs/Chakra.stories.mdx +244 -63
  225. package/src/docs/Intro.stories.mdx +5 -2
  226. package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
  227. package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
  228. package/src/hooks/useCarouselStyles.ts +34 -0
  229. package/src/hooks/useNYPLTheme.ts +67 -0
  230. package/src/hooks/useWindowSize.ts +40 -0
  231. package/src/index.ts +22 -19
  232. package/src/resources.scss +5 -5
  233. package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
  234. package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
  235. package/src/styles/base/{_04-base.scss → _03-base.scss} +7 -2
  236. package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
  237. package/src/styles/base/_place-holder.scss +14 -3
  238. package/src/styles/{03-space → space}/_space-inline.scss +14 -14
  239. package/src/styles/{03-space → space}/_space-inset.scss +10 -10
  240. package/src/styles/space/_space-stack.scss +116 -0
  241. package/src/styles.scss +13 -60
  242. package/src/theme/components/button.ts +21 -15
  243. package/src/theme/components/card.ts +174 -0
  244. package/src/theme/components/checkbox.ts +8 -3
  245. package/src/theme/components/checkboxGroup.ts +8 -0
  246. package/src/theme/components/componentWrapper.ts +10 -0
  247. package/src/theme/components/datePicker.ts +17 -0
  248. package/src/theme/components/fieldset.ts +18 -0
  249. package/src/theme/components/global.ts +26 -15
  250. package/src/theme/components/globalMixins.ts +9 -1
  251. package/src/theme/components/heading.ts +10 -5
  252. package/src/theme/components/helperErrorText.ts +9 -0
  253. package/src/theme/components/hero.ts +4 -3
  254. package/src/theme/components/horizontalRule.ts +13 -0
  255. package/src/theme/components/icon.ts +9 -9
  256. package/src/theme/components/image.ts +116 -0
  257. package/src/theme/components/label.ts +3 -10
  258. package/src/theme/components/link.ts +5 -1
  259. package/src/theme/components/list.ts +73 -0
  260. package/src/theme/components/notification.ts +93 -0
  261. package/src/theme/components/pagination.ts +20 -0
  262. package/src/theme/components/progressIndicator.ts +62 -0
  263. package/src/theme/components/radio.ts +2 -2
  264. package/src/theme/components/radioGroup.ts +8 -0
  265. package/src/theme/components/select.ts +6 -3
  266. package/src/theme/components/skeletonLoader.ts +107 -0
  267. package/src/theme/components/slider.ts +79 -0
  268. package/src/theme/components/statusBadge.ts +1 -2
  269. package/src/theme/components/tabs.ts +49 -19
  270. package/src/theme/components/template.ts +8 -8
  271. package/src/theme/components/textInput.ts +5 -4
  272. package/src/theme/components/videoPlayer.ts +49 -0
  273. package/src/theme/foundations/breakpoints.ts +8 -8
  274. package/src/theme/foundations/global.ts +6 -1
  275. package/src/theme/foundations/radii.ts +6 -0
  276. package/src/theme/foundations/spacing.ts +24 -24
  277. package/src/theme/index.ts +41 -10
  278. package/src/utils/componentCategories.ts +4 -3
  279. package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
  280. package/dist/components/Image/Image.stories.d.ts +0 -18
  281. package/dist/components/List/List.stories.d.ts +0 -7
  282. package/dist/theme/components/customCheckboxGroup.d.ts +0 -18
  283. package/dist/theme/components/customRadioGroup.d.ts +0 -18
  284. package/src/components/Button/_Button.scss +0 -32
  285. package/src/components/Card/_Card.scss +0 -308
  286. package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
  287. package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
  288. package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
  289. package/src/components/Image/Image.stories.tsx +0 -54
  290. package/src/components/Image/_Image.scss +0 -38
  291. package/src/components/List/List.stories.tsx +0 -139
  292. package/src/components/List/_List.scss +0 -76
  293. package/src/components/Notification/_Notification.scss +0 -110
  294. package/src/components/Pagination/_Pagination.scss +0 -40
  295. package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
  296. package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
  297. package/src/styles/01-colors/_colors-brand.scss +0 -62
  298. package/src/styles/01-colors/_colors-utility.scss +0 -67
  299. package/src/styles/02-typography/_type-scale.css +0 -11
  300. package/src/styles/02-typography/_type-weight.css +0 -7
  301. package/src/styles/02-typography/_typefaces.css +0 -4
  302. package/src/styles/03-space/_space-stack.scss +0 -116
  303. package/src/styles/03-space/_space.css +0 -30
  304. package/src/styles/base/_card-grid.scss +0 -78
  305. package/src/styles/base/_typography.scss +0 -11
  306. package/src/theme/components/customCheckboxGroup.ts +0 -12
  307. package/src/theme/components/customRadioGroup.ts +0 -12
@@ -0,0 +1,357 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ProgressIndicator Renders the UI snapshot correctly 1`] = `
4
+ <div
5
+ className="css-0"
6
+ >
7
+ <label
8
+ className="css-0"
9
+ htmlFor="linearBasic"
10
+ id="linearBasic-label"
11
+ >
12
+ Linear
13
+ </label>
14
+ <div
15
+ className="css-0"
16
+ >
17
+ <div
18
+ className="css-kdwx3d"
19
+ id="linearBasic"
20
+ >
21
+ <div
22
+ aria-label={null}
23
+ aria-labelledby="linearBasic-label"
24
+ aria-valuemax={100}
25
+ aria-valuemin={0}
26
+ aria-valuenow={50}
27
+ className="css-1jy0d03"
28
+ role="progressbar"
29
+ style={
30
+ Object {
31
+ "width": "50%",
32
+ }
33
+ }
34
+ />
35
+ </div>
36
+ <div
37
+ className="css-0"
38
+ >
39
+ 50
40
+ %
41
+ </div>
42
+ </div>
43
+ </div>
44
+ `;
45
+
46
+ exports[`ProgressIndicator Renders the UI snapshot correctly 2`] = `
47
+ <div
48
+ className="css-0"
49
+ >
50
+ <div
51
+ className="css-0"
52
+ >
53
+ <div
54
+ aria-label={null}
55
+ aria-labelledby="circularBasic-label"
56
+ aria-valuemax={100}
57
+ aria-valuemin={0}
58
+ aria-valuenow={50}
59
+ className="chakra-progress css-120wkjd"
60
+ id="circularBasic"
61
+ role="progressbar"
62
+ >
63
+ <svg
64
+ className="css-kn46u7"
65
+ viewBox="0 0 100 100"
66
+ >
67
+ <circle
68
+ className="chakra-progress__track css-1bhxzgy"
69
+ cx={50}
70
+ cy={50}
71
+ r={42}
72
+ strokeWidth="10px"
73
+ />
74
+ <circle
75
+ className="chakra-progress__indicator css-5hfhx0"
76
+ cx={50}
77
+ cy={50}
78
+ r={42}
79
+ strokeDasharray="132 132"
80
+ strokeDashoffset={66}
81
+ strokeWidth="10px"
82
+ />
83
+ </svg>
84
+ <div
85
+ className="css-f1j64i"
86
+ >
87
+ 50
88
+ %
89
+ </div>
90
+ </div>
91
+ <label
92
+ className="css-0"
93
+ htmlFor="circularBasic"
94
+ id="circularBasic-label"
95
+ >
96
+ Circular
97
+ </label>
98
+ </div>
99
+ </div>
100
+ `;
101
+
102
+ exports[`ProgressIndicator Renders the UI snapshot correctly 3`] = `
103
+ <div
104
+ className="css-0"
105
+ >
106
+ <div
107
+ className="css-0"
108
+ >
109
+ <div
110
+ className="css-kdwx3d"
111
+ id="linearNoLabel"
112
+ >
113
+ <div
114
+ aria-label="Linear"
115
+ aria-labelledby={null}
116
+ aria-valuemax={100}
117
+ aria-valuemin={0}
118
+ aria-valuenow={50}
119
+ className="css-1jy0d03"
120
+ role="progressbar"
121
+ style={
122
+ Object {
123
+ "width": "50%",
124
+ }
125
+ }
126
+ />
127
+ </div>
128
+ </div>
129
+ </div>
130
+ `;
131
+
132
+ exports[`ProgressIndicator Renders the UI snapshot correctly 4`] = `
133
+ <div
134
+ className="css-0"
135
+ >
136
+ <div
137
+ className="css-0"
138
+ >
139
+ <div
140
+ aria-label="Circular"
141
+ aria-labelledby={null}
142
+ aria-valuemax={100}
143
+ aria-valuemin={0}
144
+ aria-valuenow={50}
145
+ className="chakra-progress css-120wkjd"
146
+ id="circularNoLabel"
147
+ role="progressbar"
148
+ >
149
+ <svg
150
+ className="css-kn46u7"
151
+ viewBox="0 0 100 100"
152
+ >
153
+ <circle
154
+ className="chakra-progress__track css-1bhxzgy"
155
+ cx={50}
156
+ cy={50}
157
+ r={42}
158
+ strokeWidth="10px"
159
+ />
160
+ <circle
161
+ className="chakra-progress__indicator css-5hfhx0"
162
+ cx={50}
163
+ cy={50}
164
+ r={42}
165
+ strokeDasharray="132 132"
166
+ strokeDashoffset={66}
167
+ strokeWidth="10px"
168
+ />
169
+ </svg>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ `;
174
+
175
+ exports[`ProgressIndicator Renders the UI snapshot correctly 5`] = `
176
+ <div
177
+ className="css-0"
178
+ >
179
+ <label
180
+ className="css-0"
181
+ htmlFor="linearIndeterminate"
182
+ id="linearIndeterminate-label"
183
+ >
184
+ Linear
185
+ </label>
186
+ <div
187
+ className="css-0"
188
+ >
189
+ <div
190
+ className="css-kdwx3d"
191
+ id="linearIndeterminate"
192
+ >
193
+ <div
194
+ aria-label={null}
195
+ aria-labelledby="linearIndeterminate-label"
196
+ aria-valuemax={100}
197
+ aria-valuemin={0}
198
+ className="css-1demtxk"
199
+ data-indeterminate=""
200
+ role="progressbar"
201
+ style={
202
+ Object {
203
+ "width": "0%",
204
+ }
205
+ }
206
+ />
207
+ </div>
208
+ </div>
209
+ </div>
210
+ `;
211
+
212
+ exports[`ProgressIndicator Renders the UI snapshot correctly 6`] = `
213
+ <div
214
+ className="css-0"
215
+ >
216
+ <div
217
+ className="css-0"
218
+ >
219
+ <div
220
+ aria-label={null}
221
+ aria-labelledby="circularIndeterminate-label"
222
+ aria-valuemax={100}
223
+ aria-valuemin={0}
224
+ className="chakra-progress css-120wkjd"
225
+ data-indeterminate=""
226
+ id="circularIndeterminate"
227
+ role="progressbar"
228
+ >
229
+ <svg
230
+ className="css-jf70f3"
231
+ viewBox="0 0 100 100"
232
+ >
233
+ <circle
234
+ className="chakra-progress__track css-1bhxzgy"
235
+ cx={50}
236
+ cy={50}
237
+ r={42}
238
+ strokeWidth="10px"
239
+ />
240
+ <circle
241
+ className="chakra-progress__indicator css-tueqm1"
242
+ cx={50}
243
+ cy={50}
244
+ r={42}
245
+ strokeWidth="10px"
246
+ />
247
+ </svg>
248
+ </div>
249
+ <label
250
+ className="css-0"
251
+ htmlFor="circularIndeterminate"
252
+ id="circularIndeterminate-label"
253
+ >
254
+ Circular
255
+ </label>
256
+ </div>
257
+ </div>
258
+ `;
259
+
260
+ exports[`ProgressIndicator Renders the UI snapshot correctly 7`] = `
261
+ <div
262
+ className="css-0"
263
+ >
264
+ <label
265
+ className="css-0"
266
+ htmlFor="linearDarkMode"
267
+ id="linearDarkMode-label"
268
+ >
269
+ Linear
270
+ </label>
271
+ <div
272
+ className="css-0"
273
+ >
274
+ <div
275
+ className="css-kdwx3d"
276
+ id="linearDarkMode"
277
+ >
278
+ <div
279
+ aria-label={null}
280
+ aria-labelledby="linearDarkMode-label"
281
+ aria-valuemax={100}
282
+ aria-valuemin={0}
283
+ aria-valuenow={50}
284
+ className="css-1jy0d03"
285
+ role="progressbar"
286
+ style={
287
+ Object {
288
+ "width": "50%",
289
+ }
290
+ }
291
+ />
292
+ </div>
293
+ <div
294
+ className="css-0"
295
+ >
296
+ 50
297
+ %
298
+ </div>
299
+ </div>
300
+ </div>
301
+ `;
302
+
303
+ exports[`ProgressIndicator Renders the UI snapshot correctly 8`] = `
304
+ <div
305
+ className="css-0"
306
+ >
307
+ <div
308
+ className="css-0"
309
+ >
310
+ <div
311
+ aria-label={null}
312
+ aria-labelledby="circularDarkMode-label"
313
+ aria-valuemax={100}
314
+ aria-valuemin={0}
315
+ aria-valuenow={50}
316
+ className="chakra-progress css-120wkjd"
317
+ id="circularDarkMode"
318
+ role="progressbar"
319
+ >
320
+ <svg
321
+ className="css-kn46u7"
322
+ viewBox="0 0 100 100"
323
+ >
324
+ <circle
325
+ className="chakra-progress__track css-1bhxzgy"
326
+ cx={50}
327
+ cy={50}
328
+ r={42}
329
+ strokeWidth="10px"
330
+ />
331
+ <circle
332
+ className="chakra-progress__indicator css-5hfhx0"
333
+ cx={50}
334
+ cy={50}
335
+ r={42}
336
+ strokeDasharray="132 132"
337
+ strokeDashoffset={66}
338
+ strokeWidth="10px"
339
+ />
340
+ </svg>
341
+ <div
342
+ className="css-f1j64i"
343
+ >
344
+ 50
345
+ %
346
+ </div>
347
+ </div>
348
+ <label
349
+ className="css-0"
350
+ htmlFor="circularDarkMode"
351
+ id="circularDarkMode-label"
352
+ >
353
+ Circular
354
+ </label>
355
+ </div>
356
+ </div>
357
+ `;
@@ -88,7 +88,7 @@ describe("Radio Button", () => {
88
88
  <Radio
89
89
  id="inputID-attributes"
90
90
  labelText="onChange test"
91
- showLabel={true}
91
+ showLabel
92
92
  isChecked
93
93
  />
94
94
  );
@@ -100,7 +100,7 @@ describe("Radio Button", () => {
100
100
  <Radio
101
101
  id="inputID-attributes"
102
102
  labelText="onChange test"
103
- showLabel={true}
103
+ showLabel
104
104
  isDisabled
105
105
  />
106
106
  );
@@ -112,7 +112,7 @@ describe("Radio Button", () => {
112
112
  <Radio
113
113
  id="inputID-attributes"
114
114
  labelText="onChange test"
115
- showLabel={true}
115
+ showLabel
116
116
  isRequired
117
117
  />
118
118
  );
@@ -124,11 +124,27 @@ describe("Radio Button", () => {
124
124
  <Radio
125
125
  id="inputID-attributes"
126
126
  labelText="onChange test"
127
- showLabel={true}
127
+ showLabel
128
+ invalidText="There is an error!"
128
129
  isInvalid
129
130
  />
130
131
  );
131
132
  expect(screen.getByRole("radio")).toHaveAttribute("aria-invalid");
133
+ expect(screen.getByText("There is an error!")).toBeInTheDocument();
134
+ });
135
+
136
+ it("does not render the error text when 'showHelperInvalidText' is false", () => {
137
+ render(
138
+ <Radio
139
+ id="inputID-attributes"
140
+ labelText="onChange test"
141
+ showLabel
142
+ showHelperInvalidText={false}
143
+ isInvalid
144
+ />
145
+ );
146
+ expect(screen.getByRole("radio")).toHaveAttribute("aria-invalid");
147
+ expect(screen.queryByText("There is an error!")).not.toBeInTheDocument();
132
148
  });
133
149
 
134
150
  it("renders the UI snapshot correctly", () => {
@@ -41,6 +41,8 @@ export interface RadioProps {
41
41
  name?: string;
42
42
  /** Should be passed along with `isChecked` for controlled components. */
43
43
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
44
+ /** Offers the ability to hide the helper/invalid text. */
45
+ showHelperInvalidText?: boolean;
44
46
  /** Offers the ability to show the radio's label onscreen or hide it. Refer
45
47
  * to the `labelText` property for more information. */
46
48
  showLabel?: boolean;
@@ -51,9 +53,9 @@ export interface RadioProps {
51
53
  const Radio = React.forwardRef<HTMLInputElement, RadioProps>((props, ref?) => {
52
54
  const {
53
55
  className,
54
- invalidText,
55
56
  helperText,
56
57
  id = generateUUID(),
58
+ invalidText,
57
59
  isChecked,
58
60
  isDisabled = false,
59
61
  isInvalid = false,
@@ -61,6 +63,7 @@ const Radio = React.forwardRef<HTMLInputElement, RadioProps>((props, ref?) => {
61
63
  labelText,
62
64
  name,
63
65
  onChange,
66
+ showHelperInvalidText = true,
64
67
  showLabel = true,
65
68
  value,
66
69
  } = props;
@@ -95,9 +98,9 @@ const Radio = React.forwardRef<HTMLInputElement, RadioProps>((props, ref?) => {
95
98
  >
96
99
  {showLabel && labelText}
97
100
  </ChakraRadio>
98
- {footnote && showLabel && (
101
+ {footnote && showHelperInvalidText && (
99
102
  <Box __css={styles.helper} aria-disabled={isDisabled}>
100
- <HelperErrorText isError={isInvalid} id={`${id}-helperText`}>
103
+ <HelperErrorText isInvalid={isInvalid} id={`${id}-helperText`}>
101
104
  {footnote}
102
105
  </HelperErrorText>
103
106
  </Box>
@@ -51,6 +51,7 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
51
51
  exports[`Radio Button renders the UI snapshot correctly 2`] = `
52
52
  <label
53
53
  className="chakra-radio css-78joka"
54
+ data-checked=""
54
55
  >
55
56
  <input
56
57
  checked={true}
@@ -150,6 +151,7 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
150
151
  exports[`Radio Button renders the UI snapshot correctly 4`] = `
151
152
  <label
152
153
  className="chakra-radio css-78joka"
154
+ data-invalid=""
153
155
  >
154
156
  <input
155
157
  aria-invalid={true}
@@ -201,6 +203,7 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
201
203
  exports[`Radio Button renders the UI snapshot correctly 5`] = `
202
204
  <label
203
205
  className="chakra-radio css-78joka"
206
+ data-disabled=""
204
207
  >
205
208
  <input
206
209
  aria-disabled={true}
@@ -3,7 +3,6 @@ import {
3
3
  Story,
4
4
  Canvas,
5
5
  ArgsTable,
6
- Preview,
7
6
  Description,
8
7
  } from "@storybook/addon-docs/blocks";
9
8
  import { withDesign } from "storybook-addon-designs";
@@ -39,11 +38,11 @@ import Radio from "../Radio/Radio";
39
38
  | Component Version | DS Version |
40
39
  | ----------------- | ---------- |
41
40
  | Added | `0.25.0` |
42
- | Latest | `0.25.0` |
41
+ | Latest | `0.25.3` |
43
42
 
44
43
  <Description of={RadioGroup} />
45
44
 
46
- <Preview withToolbar>
45
+ <Canvas withToolbar>
47
46
  <Story
48
47
  name="RadioGroup"
49
48
  args={{
@@ -69,7 +68,7 @@ import Radio from "../Radio/Radio";
69
68
  </RadioGroup>
70
69
  )}
71
70
  </Story>
72
- </Preview>
71
+ </Canvas>
73
72
 
74
73
  <ArgsTable story="RadioGroup" />
75
74
 
@@ -179,7 +179,12 @@ describe("Radio Button", () => {
179
179
 
180
180
  it("sets the error state for all its Radio children", () => {
181
181
  render(
182
- <RadioGroup labelText="Test Label" name="test9" isInvalid>
182
+ <RadioGroup
183
+ labelText="Test Label"
184
+ name="test9"
185
+ isInvalid
186
+ invalidText="There is an error :("
187
+ >
183
188
  <Radio value="2" labelText="Radio 2" />
184
189
  <Radio value="3" labelText="Radio 3" />
185
190
  <Radio value="4" labelText="Radio 4" />
@@ -191,6 +196,24 @@ describe("Radio Button", () => {
191
196
  expect(radios[0]).toHaveAttribute("aria-invalid");
192
197
  expect(radios[1]).toHaveAttribute("aria-invalid");
193
198
  expect(radios[2]).toHaveAttribute("aria-invalid");
199
+ expect(screen.getByText("There is an error :(")).toBeInTheDocument();
200
+ });
201
+
202
+ it("does not render the error text when 'showHelperInvalidText' is false", () => {
203
+ render(
204
+ <RadioGroup
205
+ labelText="Test Label"
206
+ name="test10"
207
+ isInvalid
208
+ invalidText="There is an error :("
209
+ showHelperInvalidText={false}
210
+ >
211
+ <Radio value="2" labelText="Radio 2" />
212
+ <Radio value="3" labelText="Radio 3" />
213
+ <Radio value="4" labelText="Radio 4" />
214
+ </RadioGroup>
215
+ );
216
+ expect(screen.queryByText("There is an error :(")).not.toBeInTheDocument();
194
217
  });
195
218
 
196
219
  it("renders the UI snapshot correctly", () => {
@@ -11,6 +11,7 @@ import generateUUID from "../../helpers/generateUUID";
11
11
  import { spacing } from "../../theme/foundations/spacing";
12
12
  import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
13
13
  import Radio from "../Radio/Radio";
14
+ import Fieldset from "../Fieldset/Fieldset";
14
15
 
15
16
  export interface RadioGroupProps {
16
17
  /** Any child node passed to the component. */
@@ -19,12 +20,12 @@ export interface RadioGroupProps {
19
20
  className?: string;
20
21
  /** Populates the initial value of the input */
21
22
  defaultValue?: string;
22
- /** Optional string to populate the HelperErrorText for error state */
23
- invalidText?: string;
24
23
  /** Optional string to populate the HelperErrorText for standard state */
25
24
  helperText?: string;
26
25
  /** ID that other components can cross reference for accessibility purposes */
27
26
  id?: string;
27
+ /** Optional string to populate the HelperErrorText for error state */
28
+ invalidText?: string;
28
29
  /** Adds the 'disabled' prop to the input when true. */
29
30
  isDisabled?: boolean;
30
31
  /** Adds the 'aria-invalid' attribute to the input and
@@ -43,6 +44,8 @@ export interface RadioGroupProps {
43
44
  onChange?: (value: string) => void;
44
45
  /** Whether or not to display "Required"/"Optional" in the label text. */
45
46
  optReqFlag?: boolean;
47
+ /** Offers the ability to hide the helper/invalid text. */
48
+ showHelperInvalidText?: boolean;
46
49
  /** Offers the ability to show the group's legend onscreen or hide it. Refer
47
50
  * to the `labelText` property for more information. */
48
51
  showLabel?: boolean;
@@ -59,9 +62,9 @@ const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
59
62
  children,
60
63
  className = "",
61
64
  defaultValue,
62
- invalidText,
63
65
  helperText,
64
66
  id = generateUUID(),
67
+ invalidText,
65
68
  isDisabled = false,
66
69
  isInvalid = false,
67
70
  isRequired = false,
@@ -70,6 +73,7 @@ const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
70
73
  name,
71
74
  onChange = onChangeDefault,
72
75
  optReqFlag = true,
76
+ showHelperInvalidText = true,
73
77
  showLabel = true,
74
78
  } = props;
75
79
  const footnote = isInvalid ? invalidText : helperText;
@@ -114,39 +118,35 @@ const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
114
118
  }
115
119
  });
116
120
 
117
- // Get the Chakra-based styles for all the custom elements in this component.
118
- const styles = useMultiStyleConfig("CustomRadioGroup", {});
121
+ // Get the Chakra-based styles for the custom elements in this component.
122
+ const styles = useMultiStyleConfig("RadioGroup", {});
119
123
 
120
124
  return (
121
- <Box
122
- as="fieldset"
125
+ <Fieldset
123
126
  id={`radio-group-${id}`}
124
127
  className={className}
125
- __css={styles}
128
+ isLegendHidden={!showLabel}
129
+ legendText={labelText}
130
+ optReqFlag={optReqFlag}
126
131
  >
127
- <legend className={showLabel ? "" : "sr-only"}>
128
- <span>{labelText}</span>
129
- {optReqFlag && (
130
- <Box as="span" __css={styles.required}>
131
- {isRequired ? "Required" : "Optional"}
132
- </Box>
133
- )}
134
- </legend>
135
132
  <Stack
136
133
  direction={[layout]}
137
134
  spacing={spacingProp}
138
135
  ref={ref}
139
136
  aria-label={!showLabel ? labelText : null}
140
137
  {...radioGroupProps}
138
+ sx={styles.stack}
141
139
  >
142
140
  {newChildren}
143
141
  </Stack>
144
- {footnote && (
142
+ {footnote && showHelperInvalidText && (
145
143
  <Box __css={styles.helper}>
146
- <HelperErrorText isError={isInvalid}>{footnote}</HelperErrorText>
144
+ <HelperErrorText isInvalid={isInvalid} id={`${id}-helperErrorText`}>
145
+ {footnote}
146
+ </HelperErrorText>
147
147
  </Box>
148
148
  )}
149
- </Box>
149
+ </Fieldset>
150
150
  );
151
151
  }
152
152
  );