@nypl/design-system-react-components 0.25.8 → 0.25.11

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/CHANGELOG.md +110 -1
  2. package/README.md +1 -1
  3. package/dist/components/Button/Button.d.ts +6 -6
  4. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  5. package/dist/components/Card/Card.d.ts +6 -4
  6. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  7. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  8. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +4 -3
  10. package/dist/components/Fieldset/Fieldset.d.ts +1 -3
  11. package/dist/components/Form/Form.d.ts +15 -14
  12. package/dist/components/Form/FormTypes.d.ts +2 -2
  13. package/dist/components/Heading/Heading.d.ts +7 -3
  14. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  15. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  16. package/dist/components/HorizontalRule/HorizontalRule.d.ts +3 -3
  17. package/dist/components/Icons/Icon.d.ts +4 -4
  18. package/dist/components/Icons/IconSvgs.d.ts +0 -21
  19. package/dist/components/Icons/IconTypes.d.ts +0 -23
  20. package/dist/components/Image/Image.d.ts +11 -3
  21. package/dist/components/List/List.d.ts +1 -1
  22. package/dist/components/Logo/Logo.d.ts +28 -0
  23. package/dist/components/Logo/LogoSvgs.d.ts +34 -0
  24. package/dist/components/Logo/LogoTypes.d.ts +46 -0
  25. package/dist/components/Modal/Modal.d.ts +0 -4
  26. package/dist/components/Notification/Notification.d.ts +4 -2
  27. package/dist/components/Placeholder/Placeholder.d.ts +3 -5
  28. package/dist/components/Radio/Radio.d.ts +6 -5
  29. package/dist/components/RadioGroup/RadioGroup.d.ts +6 -5
  30. package/dist/components/SearchBar/SearchBar.d.ts +15 -7
  31. package/dist/components/Select/Select.d.ts +7 -2
  32. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
  33. package/dist/components/Slider/Slider.d.ts +3 -2
  34. package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
  35. package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
  36. package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
  37. package/dist/components/Table/Table.d.ts +29 -0
  38. package/dist/components/Template/Template.d.ts +30 -6
  39. package/dist/components/Text/Text.d.ts +2 -2
  40. package/dist/components/TextInput/TextInput.d.ts +4 -3
  41. package/dist/components/Toggle/Toggle.d.ts +3 -2
  42. package/dist/components/VideoPlayer/VideoPlayer.d.ts +14 -5
  43. package/dist/design-system-react-components.cjs.development.js +6721 -5777
  44. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  45. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  46. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  47. package/dist/design-system-react-components.esm.js +6774 -5839
  48. package/dist/design-system-react-components.esm.js.map +1 -1
  49. package/dist/index.d.ts +10 -8
  50. package/dist/resources.scss +0 -2
  51. package/dist/styles.css +2 -2
  52. package/dist/theme/components/breadcrumb.d.ts +1 -1
  53. package/dist/theme/components/button.d.ts +0 -12
  54. package/dist/theme/components/card.d.ts +14 -2
  55. package/dist/theme/components/customTable.d.ts +56 -0
  56. package/dist/theme/components/fieldset.d.ts +2 -2
  57. package/dist/theme/components/global.d.ts +1 -1
  58. package/dist/theme/components/heading.d.ts +4 -0
  59. package/dist/theme/components/label.d.ts +1 -1
  60. package/dist/theme/components/link.d.ts +14 -1
  61. package/dist/theme/components/list.d.ts +0 -2
  62. package/dist/theme/components/logo.d.ts +4 -0
  63. package/dist/theme/components/notification.d.ts +13 -4
  64. package/dist/theme/components/searchBar.d.ts +9 -11
  65. package/dist/theme/components/select.d.ts +1 -0
  66. package/dist/theme/components/structuredContent.d.ts +33 -0
  67. package/dist/theme/components/template.d.ts +10 -10
  68. package/dist/theme/components/textInput.d.ts +4 -0
  69. package/dist/theme/components/toggle.d.ts +8 -5
  70. package/dist/utils/utils.d.ts +10 -0
  71. package/package.json +40 -37
  72. package/src/__tests__/utils/utils.test.ts +23 -1
  73. package/src/components/Accordion/Accordion.stories.mdx +15 -13
  74. package/src/components/Accordion/Accordion.test.tsx +45 -1
  75. package/src/components/Accordion/Accordion.tsx +20 -8
  76. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
  77. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  78. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  79. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  80. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +43 -13
  81. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +15 -0
  82. package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
  83. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +5 -5
  84. package/src/components/Button/Button.stories.mdx +93 -48
  85. package/src/components/Button/Button.test.tsx +0 -12
  86. package/src/components/Button/Button.tsx +7 -7
  87. package/src/components/Button/ButtonTypes.tsx +0 -1
  88. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  89. package/src/components/Card/Card.stories.mdx +186 -71
  90. package/src/components/Card/Card.test.tsx +45 -22
  91. package/src/components/Card/Card.tsx +21 -6
  92. package/src/components/Card/__snapshots__/Card.test.tsx.snap +9 -3
  93. package/src/components/Chakra/Box.stories.mdx +3 -3
  94. package/src/components/Chakra/Center.stories.mdx +5 -5
  95. package/src/components/Chakra/Flex.stories.mdx +113 -0
  96. package/src/components/Chakra/Grid.stories.mdx +3 -3
  97. package/src/components/Chakra/Stack.stories.mdx +2 -2
  98. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  99. package/src/components/Checkbox/Checkbox.tsx +13 -8
  100. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  101. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  102. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  103. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  104. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  105. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  106. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  107. package/src/components/DatePicker/DatePicker.test.tsx +6 -6
  108. package/src/components/DatePicker/DatePicker.tsx +17 -11
  109. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +50 -24
  110. package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
  111. package/src/components/Fieldset/Fieldset.tsx +2 -4
  112. package/src/components/Form/Form.stories.mdx +75 -49
  113. package/src/components/Form/Form.test.tsx +92 -3
  114. package/src/components/Form/Form.tsx +28 -23
  115. package/src/components/Form/FormTypes.tsx +2 -2
  116. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
  117. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  118. package/src/components/Heading/Heading.stories.mdx +59 -23
  119. package/src/components/Heading/Heading.test.tsx +82 -18
  120. package/src/components/Heading/Heading.tsx +31 -31
  121. package/src/components/Heading/HeadingTypes.tsx +6 -6
  122. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  123. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  124. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  125. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  126. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  127. package/src/components/Hero/Hero.stories.mdx +72 -53
  128. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +11 -9
  129. package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
  130. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -4
  131. package/src/components/Icons/Icon.stories.mdx +78 -77
  132. package/src/components/Icons/Icon.test.tsx +1 -1
  133. package/src/components/Icons/Icon.tsx +5 -6
  134. package/src/components/Icons/IconSvgs.tsx +0 -42
  135. package/src/components/Icons/IconTypes.tsx +0 -24
  136. package/src/components/Image/Image.stories.mdx +66 -18
  137. package/src/components/Image/Image.tsx +21 -10
  138. package/src/components/Label/Label.stories.mdx +20 -19
  139. package/src/components/Link/Link.stories.mdx +102 -51
  140. package/src/components/Link/Link.test.tsx +38 -8
  141. package/src/components/Link/Link.tsx +19 -12
  142. package/src/components/Link/__snapshots__/Link.test.tsx.snap +60 -0
  143. package/src/components/List/List.stories.mdx +60 -29
  144. package/src/components/List/List.test.tsx +1 -1
  145. package/src/components/List/List.tsx +2 -2
  146. package/src/components/List/__snapshots__/List.test.tsx.snap +3 -1
  147. package/src/components/Logo/Logo.stories.mdx +222 -0
  148. package/src/components/Logo/Logo.test.tsx +98 -0
  149. package/src/components/Logo/Logo.tsx +97 -0
  150. package/src/components/Logo/LogoSvgs.tsx +66 -0
  151. package/src/components/Logo/LogoTypes.tsx +48 -0
  152. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  153. package/src/components/Modal/Modal.stories.mdx +20 -5
  154. package/src/components/Modal/Modal.tsx +2 -8
  155. package/src/components/Notification/Notification.stories.mdx +128 -38
  156. package/src/components/Notification/Notification.test.tsx +49 -1
  157. package/src/components/Notification/Notification.tsx +25 -12
  158. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +4 -0
  159. package/src/components/Pagination/Pagination.stories.mdx +18 -7
  160. package/src/components/Pagination/Pagination.tsx +3 -3
  161. package/src/components/Placeholder/Placeholder.tsx +7 -14
  162. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +72 -43
  163. package/src/components/Radio/Radio.stories.mdx +39 -19
  164. package/src/components/Radio/Radio.tsx +13 -9
  165. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
  166. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  167. package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
  168. package/src/components/RadioGroup/RadioGroup.tsx +97 -94
  169. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
  170. package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
  171. package/src/components/SearchBar/SearchBar.stories.mdx +115 -33
  172. package/src/components/SearchBar/SearchBar.tsx +72 -51
  173. package/src/components/Select/Select.stories.mdx +48 -14
  174. package/src/components/Select/Select.test.tsx +89 -0
  175. package/src/components/Select/Select.tsx +27 -12
  176. package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
  177. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  178. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  179. package/src/components/Slider/Slider.stories.mdx +72 -22
  180. package/src/components/Slider/Slider.tsx +15 -10
  181. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +67 -30
  182. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  183. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  184. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  185. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  186. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  187. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  188. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  189. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  190. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  191. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  192. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  193. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  194. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  195. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  196. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  197. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  198. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  199. package/src/components/Table/Table.stories.mdx +165 -0
  200. package/src/components/Table/Table.test.tsx +137 -0
  201. package/src/components/Table/Table.tsx +126 -0
  202. package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
  203. package/src/components/Tabs/Tabs.stories.mdx +20 -14
  204. package/src/components/Tabs/Tabs.test.tsx +21 -5
  205. package/src/components/Tabs/Tabs.tsx +35 -20
  206. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
  207. package/src/components/Template/Template.stories.mdx +132 -48
  208. package/src/components/Template/Template.test.tsx +128 -6
  209. package/src/components/Template/Template.tsx +93 -13
  210. package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -0
  211. package/src/components/Text/Text.stories.mdx +33 -11
  212. package/src/components/Text/Text.tsx +2 -2
  213. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  214. package/src/components/TextInput/TextInput.test.tsx +96 -0
  215. package/src/components/TextInput/TextInput.tsx +12 -8
  216. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  217. package/src/components/Toggle/Toggle.stories.mdx +33 -9
  218. package/src/components/Toggle/Toggle.tsx +14 -9
  219. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +4 -4
  220. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +64 -14
  221. package/src/components/VideoPlayer/VideoPlayer.tsx +17 -7
  222. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +12 -6
  223. package/src/docs/Chakra.stories.mdx +5 -8
  224. package/src/docs/Intro.stories.mdx +2 -2
  225. package/src/index.ts +13 -6
  226. package/src/styles/base/_03-base.scss +1 -1
  227. package/src/styles/base/_place-holder.scss +7 -7
  228. package/src/styles.scss +1 -5
  229. package/src/theme/components/breadcrumb.ts +4 -4
  230. package/src/theme/components/button.ts +5 -12
  231. package/src/theme/components/card.ts +5 -2
  232. package/src/theme/components/checkbox.ts +1 -1
  233. package/src/theme/components/customTable.ts +63 -0
  234. package/src/theme/components/datePicker.ts +1 -1
  235. package/src/theme/components/global.ts +7 -7
  236. package/src/theme/components/heading.ts +13 -11
  237. package/src/theme/components/helperErrorText.ts +1 -1
  238. package/src/theme/components/image.ts +1 -1
  239. package/src/theme/components/link.ts +17 -5
  240. package/src/theme/components/list.ts +3 -5
  241. package/src/theme/components/logo.ts +54 -0
  242. package/src/theme/components/notification.ts +19 -9
  243. package/src/theme/components/searchBar.ts +11 -13
  244. package/src/theme/components/select.ts +1 -0
  245. package/src/theme/components/statusBadge.ts +1 -1
  246. package/src/theme/components/structuredContent.ts +74 -0
  247. package/src/theme/components/template.ts +10 -10
  248. package/src/theme/components/text.ts +6 -6
  249. package/src/theme/components/textInput.ts +2 -0
  250. package/src/theme/components/toggle.ts +10 -6
  251. package/src/theme/components/videoPlayer.ts +0 -2
  252. package/src/theme/foundations/global.ts +2 -2
  253. package/src/theme/foundations/typography.ts +84 -12
  254. package/src/theme/index.ts +6 -0
  255. package/src/utils/componentCategories.ts +2 -1
  256. package/src/utils/utils.ts +17 -0
  257. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  258. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  259. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  260. package/dist/components/Input/Input.d.ts +0 -36
  261. package/dist/components/Input/Input.stories.d.ts +0 -29
  262. package/dist/components/Input/InputTypes.d.ts +0 -6
  263. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  264. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  265. package/dist/helpers/getCSSVariable.d.ts +0 -1
  266. package/dist/interfaces.d.ts +0 -3
  267. package/dist/utils/bem.d.ts +0 -1
  268. package/src/__tests__/utils/bem.test.ts +0 -37
  269. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  270. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  271. package/src/components/CardEdition/CardEdition.tsx +0 -60
  272. package/src/components/CardEdition/_CardEdition.scss +0 -137
  273. package/src/components/Input/Input.stories.tsx +0 -133
  274. package/src/components/Input/Input.test.tsx +0 -266
  275. package/src/components/Input/Input.tsx +0 -81
  276. package/src/components/Input/InputTypes.tsx +0 -8
  277. package/src/components/Input/_Input.scss +0 -78
  278. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  279. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  280. package/src/helpers/getCSSVariable.tsx +0 -5
  281. package/src/interfaces.ts +0 -3
  282. package/src/utils/bem.ts +0 -44
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`Radio Button renders the UI snapshot correctly 1`] = `
4
4
  <label
5
- className="chakra-radio css-78joka"
5
+ className="chakra-radio css-1pw4d56"
6
6
  >
7
7
  <input
8
8
  checked={false}
@@ -50,7 +50,7 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
50
50
 
51
51
  exports[`Radio Button renders the UI snapshot correctly 2`] = `
52
52
  <label
53
- className="chakra-radio css-78joka"
53
+ className="chakra-radio css-1pw4d56"
54
54
  data-checked=""
55
55
  >
56
56
  <input
@@ -101,7 +101,7 @@ exports[`Radio Button renders the UI snapshot correctly 2`] = `
101
101
 
102
102
  exports[`Radio Button renders the UI snapshot correctly 3`] = `
103
103
  <label
104
- className="chakra-radio css-78joka"
104
+ className="chakra-radio css-1pw4d56"
105
105
  >
106
106
  <input
107
107
  aria-required={true}
@@ -150,7 +150,7 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
150
150
 
151
151
  exports[`Radio Button renders the UI snapshot correctly 4`] = `
152
152
  <label
153
- className="chakra-radio css-78joka"
153
+ className="chakra-radio css-1pw4d56"
154
154
  data-invalid=""
155
155
  >
156
156
  <input
@@ -202,7 +202,7 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
202
202
 
203
203
  exports[`Radio Button renders the UI snapshot correctly 5`] = `
204
204
  <label
205
- className="chakra-radio css-78joka"
205
+ className="chakra-radio css-1pw4d56"
206
206
  data-disabled=""
207
207
  >
208
208
  <input
@@ -1,17 +1,23 @@
1
1
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
2
  ArgsTable,
3
+ Canvas,
6
4
  Description,
7
- } from "@storybook/addon-docs/blocks";
5
+ Meta,
6
+ Story,
7
+ } from "@storybook/addon-docs";
8
8
  import { withDesign } from "storybook-addon-designs";
9
9
 
10
- import { getCategory } from "../../utils/componentCategories";
11
- import DSProvider from "../../theme/provider";
10
+ import Radio from "../Radio/Radio";
12
11
  import RadioGroup, { onChangeDefault } from "./RadioGroup";
13
12
  import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
14
- import Radio from "../Radio/Radio";
13
+ import { getCategory } from "../../utils/componentCategories";
14
+ import DSProvider from "../../theme/provider";
15
+ import { getStorybookEnumValues } from "../../utils/utils";
16
+
17
+ export const enumValues = getStorybookEnumValues(
18
+ RadioGroupLayoutTypes,
19
+ "RadioGroupLayoutTypes"
20
+ );
15
21
 
16
22
  <Meta
17
23
  title={getCategory("RadioGroup")}
@@ -20,16 +26,40 @@ import Radio from "../Radio/Radio";
20
26
  parameters={{
21
27
  design: {
22
28
  type: "figma",
23
- url:
24
- "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11895%3A742",
29
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11895%3A742",
25
30
  },
26
31
  jest: ["RadioGroup.test.tsx"],
27
32
  }}
28
33
  argTypes={{
29
34
  children: { table: { disable: true } },
30
- className: { table: { disable: true } },
31
- onChange: { table: { disable: true } },
32
- id: { table: { disable: true } },
35
+ className: { control: false },
36
+ id: { control: false },
37
+ isDisabled: {
38
+ table: { defaultValue: { summary: false } },
39
+ },
40
+ isInvalid: {
41
+ table: { defaultValue: { summary: false } },
42
+ },
43
+ isRequired: {
44
+ table: { defaultValue: { summary: false } },
45
+ },
46
+ layout: {
47
+ control: { type: "select" },
48
+ table: { defaultValue: { summary: "RadioGroupLayoutTypes.Column" } },
49
+ options: enumValues.options,
50
+ },
51
+ key: { table: { disable: true } },
52
+ onChange: { control: false },
53
+ ref: { table: { disable: true } },
54
+ optReqFlag: {
55
+ table: { defaultValue: { summary: true } },
56
+ },
57
+ showHelperInvalidText: {
58
+ table: { defaultValue: { summary: true } },
59
+ },
60
+ showLabel: {
61
+ table: { defaultValue: { summary: true } },
62
+ },
33
63
  }}
34
64
  />
35
65
 
@@ -38,7 +68,7 @@ import Radio from "../Radio/Radio";
38
68
  | Component Version | DS Version |
39
69
  | ----------------- | ---------- |
40
70
  | Added | `0.25.0` |
41
- | Latest | `0.25.3` |
71
+ | Latest | `0.25.10` |
42
72
 
43
73
  <Description of={RadioGroup} />
44
74
 
@@ -46,21 +76,25 @@ import Radio from "../Radio/Radio";
46
76
  <Story
47
77
  name="RadioGroup"
48
78
  args={{
79
+ className: undefined,
49
80
  defaultValue: "4",
50
- invalidText: "error!",
51
81
  helperText: "This is the helper text for the full group.",
82
+ id: "radioGroup-id",
83
+ invalidText: "error!",
52
84
  isDisabled: false,
53
85
  isInvalid: false,
54
86
  isRequired: false,
55
87
  labelText: "Standard Radio Group",
56
- layout: RadioGroupLayoutTypes.Column,
88
+ layout: "RadioGroupLayoutTypes.Column",
57
89
  name: "radio-story",
90
+ onChange: undefined,
58
91
  optReqFlag: true,
92
+ showHelperInvalidText: true,
59
93
  showLabel: true,
60
94
  }}
61
95
  >
62
96
  {(args) => (
63
- <RadioGroup {...args}>
97
+ <RadioGroup {...args} layout={enumValues.getValue(args.layout)}>
64
98
  <Radio value="2" labelText="Radio 2" />
65
99
  <Radio value="3" labelText="Radio 3" />
66
100
  <Radio value="4" labelText="Radio 4" />
@@ -3,7 +3,7 @@ import { render, screen } from "@testing-library/react";
3
3
  import { axe } from "jest-axe";
4
4
  import renderer from "react-test-renderer";
5
5
 
6
- import * as generateUUID from "../../helpers/generateUUID";
6
+ // import * as generateUUID from "../../helpers/generateUUID";
7
7
  import RadioGroup from "./RadioGroup";
8
8
  import Radio from "../Radio/Radio";
9
9
  import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
@@ -131,16 +131,18 @@ describe("Radio Button", () => {
131
131
  expect(newValue).toEqual("2");
132
132
  });
133
133
 
134
- it("calls the UUID generation function if no id prop value is passed", () => {
135
- const generateUUIDSpy = jest.spyOn(generateUUID, "default");
136
- expect(generateUUIDSpy).toHaveBeenCalledTimes(0);
137
- render(
138
- <RadioGroup labelText="Test Label" name="test6">
139
- <Radio value="2" labelText="Radio 2" id="radio2" />
140
- </RadioGroup>
141
- );
142
- expect(generateUUIDSpy).toHaveBeenCalledTimes(1);
143
- });
134
+ // TODO: Figure out why this renders twice with two different calls
135
+ // to the render function.
136
+ // it("calls the UUID generation function if no id prop value is passed", () => {
137
+ // const generateUUIDSpy = jest.spyOn(generateUUID, "default");
138
+ // expect(generateUUIDSpy).toHaveBeenCalledTimes(0);
139
+ // render(
140
+ // <RadioGroup labelText="Test Label" name="test6">
141
+ // <Radio value="2" labelText="Radio 2" id="radio2" />
142
+ // </RadioGroup>
143
+ // );
144
+ // expect(generateUUIDSpy).toHaveBeenCalledTimes(1);
145
+ // });
144
146
 
145
147
  it("sets the 'disabled' attribute for all its Radio children", () => {
146
148
  render(
@@ -1,31 +1,31 @@
1
- import * as React from "react";
2
1
  import {
3
2
  Box,
4
3
  Stack,
5
4
  useMultiStyleConfig,
6
5
  useRadioGroup,
7
6
  } from "@chakra-ui/react";
7
+ import * as React from "react";
8
8
 
9
- import HelperErrorText from "../HelperErrorText/HelperErrorText";
10
- import generateUUID from "../../helpers/generateUUID";
9
+ import Fieldset from "../Fieldset/Fieldset";
10
+ import HelperErrorText, {
11
+ HelperErrorTextType,
12
+ } from "../HelperErrorText/HelperErrorText";
11
13
  import { spacing } from "../../theme/foundations/spacing";
12
- import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
13
14
  import Radio from "../Radio/Radio";
14
- import Fieldset from "../Fieldset/Fieldset";
15
+ import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
16
+ import generateUUID from "../../helpers/generateUUID";
15
17
 
16
18
  export interface RadioGroupProps {
17
- /** Any child node passed to the component. */
18
- children: React.ReactNode;
19
19
  /** Additional class name. */
20
20
  className?: string;
21
21
  /** Populates the initial value of the input */
22
22
  defaultValue?: string;
23
23
  /** Optional string to populate the HelperErrorText for standard state */
24
- helperText?: string;
24
+ helperText?: HelperErrorTextType;
25
25
  /** ID that other components can cross reference for accessibility purposes */
26
26
  id?: string;
27
27
  /** Optional string to populate the HelperErrorText for error state */
28
- invalidText?: string;
28
+ invalidText?: HelperErrorTextType;
29
29
  /** Adds the 'disabled' prop to the input when true. */
30
30
  isDisabled?: boolean;
31
31
  /** Adds the 'aria-invalid' attribute to the input and
@@ -56,99 +56,102 @@ export const onChangeDefault = () => {
56
56
  return;
57
57
  };
58
58
 
59
- const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
60
- (props, ref?) => {
61
- const {
62
- children,
63
- className = "",
64
- defaultValue,
65
- helperText,
66
- id = generateUUID(),
67
- invalidText,
68
- isDisabled = false,
69
- isInvalid = false,
70
- isRequired = false,
71
- labelText,
72
- layout = RadioGroupLayoutTypes.Column,
73
- name,
74
- onChange = onChangeDefault,
75
- optReqFlag = true,
76
- showHelperInvalidText = true,
77
- showLabel = true,
78
- } = props;
79
- const footnote = isInvalid ? invalidText : helperText;
80
- const spacingProp =
81
- layout === RadioGroupLayoutTypes.Column ? spacing.s : spacing.l;
82
- const newChildren = [];
59
+ const RadioGroup = React.forwardRef<
60
+ HTMLInputElement,
61
+ React.PropsWithChildren<RadioGroupProps>
62
+ >((props, ref?) => {
63
+ const {
64
+ children,
65
+ className = "",
66
+ defaultValue,
67
+ helperText,
68
+ id = generateUUID(),
69
+ invalidText,
70
+ isDisabled = false,
71
+ isInvalid = false,
72
+ isRequired = false,
73
+ labelText,
74
+ layout = RadioGroupLayoutTypes.Column,
75
+ name,
76
+ onChange = onChangeDefault,
77
+ optReqFlag = true,
78
+ showHelperInvalidText = true,
79
+ showLabel = true,
80
+ } = props;
81
+ const footnote: HelperErrorTextType = isInvalid ? invalidText : helperText;
82
+ const spacingProp =
83
+ layout === RadioGroupLayoutTypes.Column ? spacing.s : spacing.l;
84
+ const newChildren = [];
83
85
 
84
- // Use Chakra's RadioGroup hook to set and get the proper props
85
- // or the custom components.
86
- const { getRootProps, getRadioProps } = useRadioGroup({
87
- name,
88
- defaultValue,
89
- onChange,
90
- });
91
- const radioGroupProps = getRootProps();
86
+ // Use Chakra's RadioGroup hook to set and get the proper props
87
+ // or the custom components.
88
+ const { getRootProps, getRadioProps } = useRadioGroup({
89
+ name,
90
+ defaultValue,
91
+ onChange,
92
+ });
93
+ const radioGroupProps = getRootProps();
92
94
 
93
- // Go through the Radio children and update them as needed.
94
- React.Children.map(children, (child: React.ReactElement, i) => {
95
- if (child.type !== Radio) {
96
- // Special case for Storybook MDX documentation.
97
- if (child.props.mdxType && child.props.mdxType === "Radio") {
98
- noop();
99
- } else {
100
- console.warn(
101
- "Only `Radio` components are allowed inside the `RadioGroup` component."
102
- );
103
- }
95
+ // Go through the Radio children and update them as needed.
96
+ React.Children.map(children, (child: React.ReactElement, i) => {
97
+ if (child.type !== Radio) {
98
+ // Special case for Storybook MDX documentation.
99
+ if (child.props.mdxType && child.props.mdxType === "Radio") {
100
+ noop();
101
+ } else {
102
+ console.warn(
103
+ "Only `Radio` components are allowed inside the `RadioGroup` component."
104
+ );
104
105
  }
106
+ }
105
107
 
106
- const chakraRadioProps = getRadioProps({
107
- value: child.props.value,
108
- } as any);
108
+ const chakraRadioProps = getRadioProps({
109
+ value: child.props.value,
110
+ } as any);
109
111
 
110
- if (child !== undefined && child !== null) {
111
- const newProps = { key: i, isDisabled, isInvalid, isRequired };
112
- if (child.props.value === defaultValue) {
113
- newProps["checked"] = true;
114
- }
115
- newChildren.push(
116
- React.cloneElement(child, { ...newProps, ...chakraRadioProps })
117
- );
112
+ if (child !== undefined && child !== null) {
113
+ const newProps = { key: i, isDisabled, isInvalid, isRequired };
114
+ if (child.props.value === defaultValue) {
115
+ newProps["checked"] = true;
118
116
  }
119
- });
117
+ newChildren.push(
118
+ React.cloneElement(child, { ...newProps, ...chakraRadioProps })
119
+ );
120
+ }
121
+ });
120
122
 
121
- // Get the Chakra-based styles for the custom elements in this component.
122
- const styles = useMultiStyleConfig("RadioGroup", {});
123
+ // Get the Chakra-based styles for the custom elements in this component.
124
+ const styles = useMultiStyleConfig("RadioGroup", {});
123
125
 
124
- return (
125
- <Fieldset
126
- id={`radio-group-${id}`}
127
- className={className}
128
- isLegendHidden={!showLabel}
129
- legendText={labelText}
130
- optReqFlag={optReqFlag}
126
+ return (
127
+ <Fieldset
128
+ className={className}
129
+ id={`radio-group-${id}`}
130
+ isLegendHidden={!showLabel}
131
+ legendText={labelText}
132
+ optReqFlag={optReqFlag}
133
+ >
134
+ <Stack
135
+ aria-label={!showLabel ? labelText : null}
136
+ direction={[layout]}
137
+ spacing={spacingProp}
138
+ ref={ref}
139
+ {...radioGroupProps}
140
+ sx={styles.stack}
131
141
  >
132
- <Stack
133
- direction={[layout]}
134
- spacing={spacingProp}
135
- ref={ref}
136
- aria-label={!showLabel ? labelText : null}
137
- {...radioGroupProps}
138
- sx={styles.stack}
139
- >
140
- {newChildren}
141
- </Stack>
142
- {footnote && showHelperInvalidText && (
143
- <Box __css={styles.helper}>
144
- <HelperErrorText isInvalid={isInvalid} id={`${id}-helperErrorText`}>
145
- {footnote}
146
- </HelperErrorText>
147
- </Box>
148
- )}
149
- </Fieldset>
150
- );
151
- }
152
- );
142
+ {newChildren}
143
+ </Stack>
144
+ {footnote && showHelperInvalidText && (
145
+ <Box __css={styles.helper}>
146
+ <HelperErrorText
147
+ id={`${id}-helperErrorText`}
148
+ isInvalid={isInvalid}
149
+ text={footnote}
150
+ />
151
+ </Box>
152
+ )}
153
+ </Fieldset>
154
+ );
155
+ });
153
156
 
154
157
  export default RadioGroup;
@@ -19,7 +19,7 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
19
19
  role="radiogroup"
20
20
  >
21
21
  <label
22
- className="chakra-radio css-78joka"
22
+ className="chakra-radio css-1pw4d56"
23
23
  >
24
24
  <input
25
25
  checked={false}
@@ -66,7 +66,7 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
66
66
  </span>
67
67
  </label>
68
68
  <label
69
- className="chakra-radio css-78joka"
69
+ className="chakra-radio css-1pw4d56"
70
70
  >
71
71
  <input
72
72
  checked={false}
@@ -135,7 +135,7 @@ exports[`Radio Button renders the UI snapshot correctly 2`] = `
135
135
  role="radiogroup"
136
136
  >
137
137
  <label
138
- className="chakra-radio css-78joka"
138
+ className="chakra-radio css-1pw4d56"
139
139
  >
140
140
  <input
141
141
  checked={false}
@@ -182,7 +182,7 @@ exports[`Radio Button renders the UI snapshot correctly 2`] = `
182
182
  </span>
183
183
  </label>
184
184
  <label
185
- className="chakra-radio css-78joka"
185
+ className="chakra-radio css-1pw4d56"
186
186
  >
187
187
  <input
188
188
  checked={false}
@@ -251,7 +251,7 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
251
251
  role="radiogroup"
252
252
  >
253
253
  <label
254
- className="chakra-radio css-78joka"
254
+ className="chakra-radio css-1pw4d56"
255
255
  >
256
256
  <input
257
257
  checked={false}
@@ -298,7 +298,7 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
298
298
  </span>
299
299
  </label>
300
300
  <label
301
- className="chakra-radio css-78joka"
301
+ className="chakra-radio css-1pw4d56"
302
302
  >
303
303
  <input
304
304
  checked={false}
@@ -367,7 +367,7 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
367
367
  role="radiogroup"
368
368
  >
369
369
  <label
370
- className="chakra-radio css-78joka"
370
+ className="chakra-radio css-1pw4d56"
371
371
  >
372
372
  <input
373
373
  checked={false}
@@ -414,7 +414,7 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
414
414
  </span>
415
415
  </label>
416
416
  <label
417
- className="chakra-radio css-78joka"
417
+ className="chakra-radio css-1pw4d56"
418
418
  >
419
419
  <input
420
420
  checked={false}
@@ -468,11 +468,14 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
468
468
  aria-atomic={true}
469
469
  aria-live="off"
470
470
  className=" css-0"
471
+ dangerouslySetInnerHTML={
472
+ Object {
473
+ "__html": "helper text",
474
+ }
475
+ }
471
476
  data-isinvalid={false}
472
477
  id="helperText-helperErrorText"
473
- >
474
- helper text
475
- </div>
478
+ />
476
479
  </div>
477
480
  </fieldset>
478
481
  `;
@@ -496,7 +499,7 @@ exports[`Radio Button renders the UI snapshot correctly 5`] = `
496
499
  role="radiogroup"
497
500
  >
498
501
  <label
499
- className="chakra-radio css-78joka"
502
+ className="chakra-radio css-1pw4d56"
500
503
  >
501
504
  <input
502
505
  checked={false}
@@ -543,7 +546,7 @@ exports[`Radio Button renders the UI snapshot correctly 5`] = `
543
546
  </span>
544
547
  </label>
545
548
  <label
546
- className="chakra-radio css-78joka"
549
+ className="chakra-radio css-1pw4d56"
547
550
  >
548
551
  <input
549
552
  checked={false}
@@ -607,7 +610,7 @@ exports[`Radio Button renders the UI snapshot correctly 6`] = `
607
610
  role="radiogroup"
608
611
  >
609
612
  <label
610
- className="chakra-radio css-78joka"
613
+ className="chakra-radio css-1pw4d56"
611
614
  >
612
615
  <input
613
616
  checked={false}
@@ -654,7 +657,7 @@ exports[`Radio Button renders the UI snapshot correctly 6`] = `
654
657
  </span>
655
658
  </label>
656
659
  <label
657
- className="chakra-radio css-78joka"
660
+ className="chakra-radio css-1pw4d56"
658
661
  >
659
662
  <input
660
663
  checked={false}
@@ -723,7 +726,7 @@ exports[`Radio Button renders the UI snapshot correctly 7`] = `
723
726
  role="radiogroup"
724
727
  >
725
728
  <label
726
- className="chakra-radio css-78joka"
729
+ className="chakra-radio css-1pw4d56"
727
730
  >
728
731
  <input
729
732
  aria-required={true}
@@ -771,7 +774,7 @@ exports[`Radio Button renders the UI snapshot correctly 7`] = `
771
774
  </span>
772
775
  </label>
773
776
  <label
774
- className="chakra-radio css-78joka"
777
+ className="chakra-radio css-1pw4d56"
775
778
  >
776
779
  <input
777
780
  aria-required={true}
@@ -841,7 +844,7 @@ exports[`Radio Button renders the UI snapshot correctly 8`] = `
841
844
  role="radiogroup"
842
845
  >
843
846
  <label
844
- className="chakra-radio css-78joka"
847
+ className="chakra-radio css-1pw4d56"
845
848
  data-invalid=""
846
849
  >
847
850
  <input
@@ -892,7 +895,7 @@ exports[`Radio Button renders the UI snapshot correctly 8`] = `
892
895
  </span>
893
896
  </label>
894
897
  <label
895
- className="chakra-radio css-78joka"
898
+ className="chakra-radio css-1pw4d56"
896
899
  data-invalid=""
897
900
  >
898
901
  <input
@@ -965,7 +968,7 @@ exports[`Radio Button renders the UI snapshot correctly 9`] = `
965
968
  role="radiogroup"
966
969
  >
967
970
  <label
968
- className="chakra-radio css-78joka"
971
+ className="chakra-radio css-1pw4d56"
969
972
  data-disabled=""
970
973
  >
971
974
  <input
@@ -1016,7 +1019,7 @@ exports[`Radio Button renders the UI snapshot correctly 9`] = `
1016
1019
  </span>
1017
1020
  </label>
1018
1021
  <label
1019
- className="chakra-radio css-78joka"
1022
+ className="chakra-radio css-1pw4d56"
1020
1023
  data-disabled=""
1021
1024
  >
1022
1025
  <input