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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/CHANGELOG.md +91 -1
  2. package/README.md +1 -1
  3. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -0
  4. package/dist/components/Button/Button.d.ts +6 -6
  5. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  6. package/dist/components/Card/Card.d.ts +6 -4
  7. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  8. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  9. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  10. package/dist/components/DatePicker/DatePicker.d.ts +3 -2
  11. package/dist/components/Form/Form.d.ts +2 -2
  12. package/dist/components/Heading/Heading.d.ts +7 -3
  13. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  14. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  15. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -2
  16. package/dist/components/Icons/Icon.d.ts +4 -4
  17. package/dist/components/Icons/IconSvgs.d.ts +1 -21
  18. package/dist/components/Icons/IconTypes.d.ts +1 -23
  19. package/dist/components/Image/Image.d.ts +11 -3
  20. package/dist/components/Image/ImageTypes.d.ts +3 -1
  21. package/dist/components/Link/LinkTypes.d.ts +1 -0
  22. package/dist/components/Logo/Logo.d.ts +28 -0
  23. package/dist/components/Logo/LogoSvgs.d.ts +18 -0
  24. package/dist/components/Logo/LogoTypes.d.ts +30 -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 +3 -2
  30. package/dist/components/SearchBar/SearchBar.d.ts +10 -2
  31. package/dist/components/Select/Select.d.ts +5 -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 +23 -0
  38. package/dist/components/Template/Template.d.ts +8 -3
  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 +48 -0
  42. package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
  43. package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
  44. package/dist/design-system-react-components.cjs.development.js +5989 -5490
  45. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  46. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  47. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  48. package/dist/design-system-react-components.esm.js +6057 -5551
  49. package/dist/design-system-react-components.esm.js.map +1 -1
  50. package/dist/index.d.ts +11 -4
  51. package/dist/styles.css +2 -2
  52. package/dist/theme/components/breadcrumb.d.ts +9 -0
  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 +47 -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 +8 -4
  64. package/dist/theme/components/searchBar.d.ts +7 -13
  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 +2 -0
  69. package/dist/theme/components/toggle.d.ts +71 -0
  70. package/dist/theme/foundations/spacing.d.ts +2 -0
  71. package/dist/utils/utils.d.ts +10 -0
  72. package/package.json +2 -3
  73. package/src/__tests__/utils/utils.test.ts +23 -1
  74. package/src/components/Accordion/Accordion.stories.mdx +15 -14
  75. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  76. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  77. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  78. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +50 -14
  79. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +20 -0
  80. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -0
  81. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +198 -0
  82. package/src/components/Button/Button.stories.mdx +93 -48
  83. package/src/components/Button/Button.test.tsx +0 -12
  84. package/src/components/Button/Button.tsx +7 -8
  85. package/src/components/Button/ButtonTypes.tsx +0 -1
  86. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  87. package/src/components/Card/Card.stories.mdx +246 -64
  88. package/src/components/Card/Card.test.tsx +45 -22
  89. package/src/components/Card/Card.tsx +26 -13
  90. package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
  91. package/src/components/Chakra/Box.stories.mdx +3 -3
  92. package/src/components/Chakra/Center.stories.mdx +5 -5
  93. package/src/components/Chakra/Grid.stories.mdx +14 -17
  94. package/src/components/Chakra/Stack.stories.mdx +2 -2
  95. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  96. package/src/components/Checkbox/Checkbox.tsx +13 -8
  97. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  98. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  99. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  100. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  101. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  102. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  103. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  104. package/src/components/DatePicker/DatePicker.test.tsx +8 -6
  105. package/src/components/DatePicker/DatePicker.tsx +10 -6
  106. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
  107. package/src/components/Fieldset/Fieldset.stories.mdx +19 -8
  108. package/src/components/Form/Form.stories.mdx +49 -41
  109. package/src/components/Form/Form.tsx +5 -4
  110. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  111. package/src/components/Heading/Heading.stories.mdx +59 -23
  112. package/src/components/Heading/Heading.test.tsx +82 -18
  113. package/src/components/Heading/Heading.tsx +31 -31
  114. package/src/components/Heading/HeadingTypes.tsx +6 -6
  115. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  116. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  117. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  118. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  119. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  120. package/src/components/Hero/Hero.stories.mdx +72 -53
  121. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +9 -8
  122. package/src/components/HorizontalRule/HorizontalRule.tsx +2 -4
  123. package/src/components/Icons/Icon.stories.mdx +77 -75
  124. package/src/components/Icons/Icon.tsx +4 -5
  125. package/src/components/Icons/IconSvgs.tsx +2 -42
  126. package/src/components/Icons/IconTypes.tsx +1 -24
  127. package/src/components/Image/Image.stories.mdx +214 -104
  128. package/src/components/Image/Image.test.tsx +10 -0
  129. package/src/components/Image/Image.tsx +21 -10
  130. package/src/components/Image/ImageTypes.ts +2 -0
  131. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  132. package/src/components/Label/Label.stories.mdx +21 -20
  133. package/src/components/Link/Link.stories.mdx +103 -53
  134. package/src/components/Link/Link.test.tsx +108 -7
  135. package/src/components/Link/Link.tsx +58 -19
  136. package/src/components/Link/LinkTypes.tsx +1 -0
  137. package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
  138. package/src/components/List/List.stories.mdx +36 -24
  139. package/src/components/Logo/Logo.stories.mdx +220 -0
  140. package/src/components/Logo/Logo.test.tsx +98 -0
  141. package/src/components/Logo/Logo.tsx +97 -0
  142. package/src/components/Logo/LogoSvgs.tsx +34 -0
  143. package/src/components/Logo/LogoTypes.tsx +32 -0
  144. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  145. package/src/components/Modal/Modal.stories.mdx +20 -5
  146. package/src/components/Modal/Modal.tsx +2 -8
  147. package/src/components/Notification/Notification.stories.mdx +96 -40
  148. package/src/components/Notification/Notification.test.tsx +62 -16
  149. package/src/components/Notification/Notification.tsx +26 -9
  150. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
  151. package/src/components/Pagination/Pagination.stories.mdx +18 -8
  152. package/src/components/Pagination/Pagination.tsx +1 -1
  153. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
  154. package/src/components/Placeholder/Placeholder.tsx +7 -14
  155. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
  156. package/src/components/Radio/Radio.stories.mdx +39 -19
  157. package/src/components/Radio/Radio.tsx +13 -9
  158. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  159. package/src/components/RadioGroup/RadioGroup.tsx +15 -11
  160. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +6 -3
  161. package/src/components/SearchBar/SearchBar.Test.tsx +114 -22
  162. package/src/components/SearchBar/SearchBar.stories.mdx +111 -33
  163. package/src/components/SearchBar/SearchBar.tsx +57 -33
  164. package/src/components/Select/Select.stories.mdx +177 -66
  165. package/src/components/Select/Select.test.tsx +2 -2
  166. package/src/components/Select/Select.tsx +22 -12
  167. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  168. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  169. package/src/components/Slider/Slider.stories.mdx +74 -23
  170. package/src/components/Slider/Slider.test.tsx +35 -0
  171. package/src/components/Slider/Slider.tsx +22 -11
  172. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +60 -30
  173. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  174. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  175. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  176. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  177. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  178. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  179. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  180. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  181. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  182. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  183. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  184. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  185. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  186. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  187. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  188. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  189. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  190. package/src/components/Table/Table.stories.mdx +66 -0
  191. package/src/components/Table/Table.test.tsx +60 -0
  192. package/src/components/Table/Table.tsx +116 -0
  193. package/src/components/Tabs/Tabs.stories.mdx +19 -13
  194. package/src/components/Tabs/Tabs.test.tsx +1 -1
  195. package/src/components/Template/Template.stories.mdx +57 -49
  196. package/src/components/Template/Template.test.tsx +65 -5
  197. package/src/components/Template/Template.tsx +35 -5
  198. package/src/components/Template/__snapshots__/Template.test.tsx.snap +76 -0
  199. package/src/components/Text/Text.stories.mdx +33 -11
  200. package/src/components/Text/Text.tsx +2 -2
  201. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  202. package/src/components/TextInput/TextInput.test.tsx +96 -0
  203. package/src/components/TextInput/TextInput.tsx +12 -8
  204. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  205. package/src/components/Toggle/Toggle.stories.mdx +200 -0
  206. package/src/components/Toggle/Toggle.test.tsx +140 -0
  207. package/src/components/Toggle/Toggle.tsx +123 -0
  208. package/src/components/Toggle/ToggleSizes.tsx +4 -0
  209. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
  210. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
  211. package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
  212. package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
  213. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
  214. package/src/docs/Chakra.stories.mdx +5 -8
  215. package/src/docs/Intro.stories.mdx +2 -2
  216. package/src/index.ts +13 -4
  217. package/src/styles/base/_03-base.scss +1 -1
  218. package/src/styles/base/_place-holder.scss +7 -7
  219. package/src/styles.scss +1 -5
  220. package/src/theme/components/breadcrumb.ts +14 -4
  221. package/src/theme/components/button.ts +5 -12
  222. package/src/theme/components/card.ts +9 -7
  223. package/src/theme/components/checkbox.ts +1 -1
  224. package/src/theme/components/customTable.ts +50 -0
  225. package/src/theme/components/datePicker.ts +1 -1
  226. package/src/theme/components/global.ts +7 -7
  227. package/src/theme/components/heading.ts +13 -11
  228. package/src/theme/components/helperErrorText.ts +1 -1
  229. package/src/theme/components/icon.ts +2 -2
  230. package/src/theme/components/image.ts +9 -1
  231. package/src/theme/components/link.ts +17 -5
  232. package/src/theme/components/list.ts +1 -3
  233. package/src/theme/components/logo.ts +54 -0
  234. package/src/theme/components/notification.ts +9 -7
  235. package/src/theme/components/searchBar.ts +7 -13
  236. package/src/theme/components/select.ts +1 -0
  237. package/src/theme/components/statusBadge.ts +1 -1
  238. package/src/theme/components/structuredContent.ts +54 -0
  239. package/src/theme/components/template.ts +10 -10
  240. package/src/theme/components/text.ts +6 -6
  241. package/src/theme/components/textInput.ts +1 -0
  242. package/src/theme/components/toggle.ts +69 -0
  243. package/src/theme/components/videoPlayer.ts +0 -2
  244. package/src/theme/foundations/global.ts +2 -2
  245. package/src/theme/foundations/spacing.ts +3 -0
  246. package/src/theme/foundations/typography.ts +84 -12
  247. package/src/theme/index.ts +8 -0
  248. package/src/utils/componentCategories.ts +4 -2
  249. package/src/utils/utils.ts +17 -0
  250. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  251. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  252. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  253. package/dist/components/Input/Input.d.ts +0 -36
  254. package/dist/components/Input/Input.stories.d.ts +0 -29
  255. package/dist/components/Input/InputTypes.d.ts +0 -6
  256. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  257. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  258. package/dist/helpers/getCSSVariable.d.ts +0 -1
  259. package/dist/interfaces.d.ts +0 -3
  260. package/dist/utils/bem.d.ts +0 -1
  261. package/src/__tests__/utils/bem.test.ts +0 -37
  262. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  263. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  264. package/src/components/CardEdition/CardEdition.tsx +0 -60
  265. package/src/components/CardEdition/_CardEdition.scss +0 -137
  266. package/src/components/Input/Input.stories.tsx +0 -133
  267. package/src/components/Input/Input.test.tsx +0 -266
  268. package/src/components/Input/Input.tsx +0 -81
  269. package/src/components/Input/InputTypes.tsx +0 -8
  270. package/src/components/Input/_Input.scss +0 -78
  271. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  272. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  273. package/src/helpers/getCSSVariable.tsx +0 -5
  274. package/src/interfaces.ts +0 -3
  275. package/src/utils/bem.ts +0 -44
@@ -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.9` |
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" />
@@ -1,17 +1,19 @@
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
19
  /** Any child node passed to the component. */
@@ -21,11 +23,11 @@ export interface RadioGroupProps {
21
23
  /** Populates the initial value of the input */
22
24
  defaultValue?: string;
23
25
  /** Optional string to populate the HelperErrorText for standard state */
24
- helperText?: string;
26
+ helperText?: HelperErrorTextType;
25
27
  /** ID that other components can cross reference for accessibility purposes */
26
28
  id?: string;
27
29
  /** Optional string to populate the HelperErrorText for error state */
28
- invalidText?: string;
30
+ invalidText?: HelperErrorTextType;
29
31
  /** Adds the 'disabled' prop to the input when true. */
30
32
  isDisabled?: boolean;
31
33
  /** Adds the 'aria-invalid' attribute to the input and
@@ -76,7 +78,7 @@ const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
76
78
  showHelperInvalidText = true,
77
79
  showLabel = true,
78
80
  } = props;
79
- const footnote = isInvalid ? invalidText : helperText;
81
+ const footnote: HelperErrorTextType = isInvalid ? invalidText : helperText;
80
82
  const spacingProp =
81
83
  layout === RadioGroupLayoutTypes.Column ? spacing.s : spacing.l;
82
84
  const newChildren = [];
@@ -141,9 +143,11 @@ const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
141
143
  </Stack>
142
144
  {footnote && showHelperInvalidText && (
143
145
  <Box __css={styles.helper}>
144
- <HelperErrorText isInvalid={isInvalid} id={`${id}-helperErrorText`}>
145
- {footnote}
146
- </HelperErrorText>
146
+ <HelperErrorText
147
+ id={`${id}-helperErrorText`}
148
+ isInvalid={isInvalid}
149
+ text={footnote}
150
+ />
147
151
  </Box>
148
152
  )}
149
153
  </Fieldset>
@@ -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
  `;
@@ -28,20 +28,20 @@ const textInputProps = {
28
28
  name: "textInputName",
29
29
  placeholder: "Item Search",
30
30
  };
31
- const helperErrorText = "Search for items in Animal Crossing New Horizons";
31
+ const helperText = "Search for items in Animal Crossing New Horizons";
32
32
  const invalidText = "Could not find the item :(";
33
33
 
34
34
  describe("SearchBar Accessibility", () => {
35
35
  it("passes axe accessibility test", async () => {
36
36
  const { container } = render(
37
37
  <SearchBar
38
+ helperText={helperText}
38
39
  id="id"
40
+ invalidText={invalidText}
39
41
  labelText="Searchbar"
40
42
  onSubmit={jest.fn()}
41
43
  selectProps={selectProps}
42
44
  textInputProps={textInputProps}
43
- helperErrorText={helperErrorText}
44
- invalidText={invalidText}
45
45
  />
46
46
  );
47
47
  expect(await axe(container)).toHaveNoViolations();
@@ -55,11 +55,11 @@ describe("SearchBar", () => {
55
55
  it("renders the basic form", () => {
56
56
  render(
57
57
  <SearchBar
58
+ helperText={helperText}
58
59
  id="id"
59
60
  labelText="searchbar"
60
61
  onSubmit={searchBarSubmit}
61
62
  textInputProps={textInputProps}
62
- helperErrorText={helperErrorText}
63
63
  />
64
64
  );
65
65
  expect(screen.getByRole("search")).toBeInTheDocument();
@@ -74,12 +74,12 @@ describe("SearchBar", () => {
74
74
  it("renders an optional Select component", () => {
75
75
  render(
76
76
  <SearchBar
77
+ helperText={helperText}
77
78
  id="id"
78
79
  labelText="searchbar"
79
80
  onSubmit={searchBarSubmit}
80
81
  selectProps={selectProps}
81
82
  textInputProps={textInputProps}
82
- helperErrorText={helperErrorText}
83
83
  />
84
84
  );
85
85
  expect(screen.getByRole("combobox")).toBeInTheDocument();
@@ -89,31 +89,31 @@ describe("SearchBar", () => {
89
89
  it("renders the invalid text in the invalid state", () => {
90
90
  render(
91
91
  <SearchBar
92
+ helperText={helperText}
92
93
  id="id"
94
+ invalidText={invalidText}
95
+ isInvalid
93
96
  labelText="searchbar"
94
97
  onSubmit={searchBarSubmit}
95
98
  selectProps={selectProps}
96
99
  textInputProps={textInputProps}
97
- helperErrorText={helperErrorText}
98
- invalidText={invalidText}
99
- isInvalid
100
100
  />
101
101
  );
102
102
  expect(screen.getByText(invalidText)).toBeInTheDocument();
103
- expect(screen.queryByText(helperErrorText)).not.toBeInTheDocument();
103
+ expect(screen.queryByText(helperText)).not.toBeInTheDocument();
104
104
  });
105
105
 
106
106
  it("does not render the default invalid text from the Select or TextInput components", () => {
107
107
  render(
108
108
  <SearchBar
109
+ helperText={helperText}
109
110
  id="id"
111
+ invalidText={invalidText}
112
+ isInvalid
110
113
  labelText="searchbar"
111
114
  onSubmit={searchBarSubmit}
112
115
  selectProps={selectProps}
113
116
  textInputProps={textInputProps}
114
- helperErrorText={helperErrorText}
115
- invalidText={invalidText}
116
- isInvalid
117
117
  />
118
118
  );
119
119
  expect(
@@ -124,12 +124,12 @@ describe("SearchBar", () => {
124
124
  it("calls the callback function on submit ", () => {
125
125
  render(
126
126
  <SearchBar
127
- labelText="searchBar"
127
+ helperText={helperText}
128
128
  id="id"
129
+ labelText="searchBar"
129
130
  onSubmit={searchBarSubmit}
130
131
  selectProps={selectProps}
131
132
  textInputProps={textInputProps}
132
- helperErrorText={helperErrorText}
133
133
  />
134
134
  );
135
135
  expect(searchBarSubmit).toHaveBeenCalledTimes(0);
@@ -139,34 +139,65 @@ describe("SearchBar", () => {
139
139
  expect(buttonCallback).toHaveBeenCalledTimes(1);
140
140
  });
141
141
 
142
+ it("Renders 'required' in the placeholder text", () => {
143
+ const { rerender } = render(
144
+ <SearchBar
145
+ id="requiredState"
146
+ isDisabled
147
+ isRequired
148
+ labelText="searchbar"
149
+ onSubmit={jest.fn()}
150
+ textInputProps={textInputProps}
151
+ />
152
+ );
153
+
154
+ expect(
155
+ screen.getByPlaceholderText("Item Search (Required)")
156
+ ).not.toBeInTheDocument();
157
+
158
+ rerender(
159
+ <SearchBar
160
+ id="requiredState"
161
+ isDisabled
162
+ isRequired
163
+ labelText="searchbar"
164
+ onSubmit={jest.fn()}
165
+ textInputProps={textInputProps}
166
+ />
167
+ );
168
+ expect(
169
+ screen.getByPlaceholderText("Item Search (Required)")
170
+ ).toBeInTheDocument();
171
+ });
172
+
142
173
  it("Renders the UI snapshot correctly", () => {
143
174
  const basic = renderer
144
175
  .create(
145
176
  <SearchBar
146
- id="id"
177
+ helperText={helperText}
178
+ id="basic"
147
179
  labelText="searchbar"
148
180
  onSubmit={jest.fn()}
149
181
  textInputProps={textInputProps}
150
- helperErrorText={helperErrorText}
151
182
  />
152
183
  )
153
184
  .toJSON();
154
185
  const withSelect = renderer
155
186
  .create(
156
187
  <SearchBar
157
- id="id"
188
+ helperText={helperText}
189
+ id="withSelect"
158
190
  labelText="searchbar"
159
191
  onSubmit={jest.fn()}
160
192
  selectProps={selectProps}
161
193
  textInputProps={textInputProps}
162
- helperErrorText={helperErrorText}
163
194
  />
164
195
  )
165
196
  .toJSON();
166
197
  const withoutHelperText = renderer
167
198
  .create(
168
199
  <SearchBar
169
- id="id"
200
+ id="withoutHelperText"
170
201
  labelText="searchbar"
171
202
  onSubmit={jest.fn()}
172
203
  textInputProps={textInputProps}
@@ -176,22 +207,78 @@ describe("SearchBar", () => {
176
207
  const invalidState = renderer
177
208
  .create(
178
209
  <SearchBar
179
- id="id"
210
+ id="invalidState"
211
+ isInvalid
180
212
  labelText="searchbar"
181
213
  onSubmit={jest.fn()}
182
214
  textInputProps={textInputProps}
183
- isInvalid
184
215
  />
185
216
  )
186
217
  .toJSON();
187
218
  const disabledState = renderer
188
219
  .create(
189
220
  <SearchBar
190
- id="id"
221
+ id="disabledState"
222
+ isDisabled
223
+ labelText="searchbar"
224
+ onSubmit={jest.fn()}
225
+ textInputProps={textInputProps}
226
+ />
227
+ )
228
+ .toJSON();
229
+ const requiredState = renderer
230
+ .create(
231
+ <SearchBar
232
+ id="requiredState"
233
+ isDisabled
234
+ isRequired
191
235
  labelText="searchbar"
192
236
  onSubmit={jest.fn()}
193
237
  textInputProps={textInputProps}
238
+ />
239
+ )
240
+ .toJSON();
241
+ const noBrandButtonType = renderer
242
+ .create(
243
+ <SearchBar
244
+ id="noBrandButtonType"
194
245
  isDisabled
246
+ isRequired
247
+ labelText="searchbar"
248
+ noBrandButtonType={true}
249
+ onSubmit={jest.fn()}
250
+ textInputProps={textInputProps}
251
+ />
252
+ )
253
+ .toJSON();
254
+ const withHeading = renderer
255
+ .create(
256
+ <SearchBar
257
+ id="withHeading"
258
+ labelText="searchbar"
259
+ onSubmit={jest.fn()}
260
+ headingText="A Heading"
261
+ />
262
+ )
263
+ .toJSON();
264
+ const withDescription = renderer
265
+ .create(
266
+ <SearchBar
267
+ id="withDescription"
268
+ labelText="searchbar"
269
+ onSubmit={jest.fn()}
270
+ descriptionText="A description"
271
+ />
272
+ )
273
+ .toJSON();
274
+ const withHeadingAndDescription = renderer
275
+ .create(
276
+ <SearchBar
277
+ id="withHeadingAndDescription"
278
+ labelText="searchbar"
279
+ onSubmit={jest.fn()}
280
+ headingText="A Heading"
281
+ descriptionText="A description"
195
282
  />
196
283
  )
197
284
  .toJSON();
@@ -201,5 +288,10 @@ describe("SearchBar", () => {
201
288
  expect(withoutHelperText).toMatchSnapshot();
202
289
  expect(invalidState).toMatchSnapshot();
203
290
  expect(disabledState).toMatchSnapshot();
291
+ expect(requiredState).toMatchSnapshot();
292
+ expect(noBrandButtonType).toMatchSnapshot();
293
+ expect(withHeading).toMatchSnapshot();
294
+ expect(withDescription).toMatchSnapshot();
295
+ expect(withHeadingAndDescription).toMatchSnapshot();
204
296
  });
205
297
  });