@nypl/design-system-react-components 0.25.0 → 0.25.4

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 (392) hide show
  1. package/CHANGELOG.md +142 -1
  2. package/README.md +98 -50
  3. package/dist/components/Accordion/Accordion.d.ts +14 -14
  4. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +15 -14
  5. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
  6. package/dist/components/Button/Button.d.ts +13 -8
  7. package/dist/components/Button/ButtonTypes.d.ts +3 -1
  8. package/dist/components/Card/Card.d.ts +36 -52
  9. package/dist/components/Card/CardTypes.d.ts +2 -17
  10. package/dist/components/Checkbox/Checkbox.d.ts +17 -13
  11. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +45 -0
  12. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
  13. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
  14. package/dist/components/DatePicker/DatePicker.d.ts +37 -35
  15. package/dist/components/Fieldset/Fieldset.d.ts +25 -0
  16. package/dist/components/Form/Form.d.ts +13 -8
  17. package/dist/components/Form/FormTypes.d.ts +2 -8
  18. package/dist/components/Grid/GridTypes.d.ts +9 -0
  19. package/dist/components/Grid/SimpleGrid.d.ts +14 -0
  20. package/dist/components/Heading/Heading.d.ts +4 -4
  21. package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
  22. package/dist/components/Hero/Hero.d.ts +19 -14
  23. package/dist/components/Hero/HeroTypes.d.ts +10 -5
  24. package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
  25. package/dist/components/Icons/Icon.d.ts +19 -14
  26. package/dist/components/Icons/IconSvgs.d.ts +11 -0
  27. package/dist/components/Icons/IconTypes.d.ts +89 -64
  28. package/dist/components/Image/Image.d.ts +19 -9
  29. package/dist/components/Image/ImageTypes.d.ts +20 -0
  30. package/dist/components/Label/Label.d.ts +5 -17
  31. package/dist/components/Link/Link.d.ts +12 -12
  32. package/dist/components/List/List.d.ts +19 -14
  33. package/dist/components/Notification/Notification.d.ts +37 -16
  34. package/dist/components/Pagination/Pagination.d.ts +16 -13
  35. package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
  36. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
  37. package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
  38. package/dist/components/Radio/Radio.d.ts +2 -0
  39. package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
  40. package/dist/components/SearchBar/SearchBar.d.ts +45 -27
  41. package/dist/components/Select/Select.d.ts +34 -35
  42. package/dist/components/Select/SelectTypes.d.ts +4 -0
  43. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
  44. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
  45. package/dist/components/Slider/Slider.d.ts +57 -0
  46. package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
  47. package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
  48. package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
  49. package/dist/components/Tabs/Tabs.d.ts +1 -1
  50. package/dist/components/Template/Template.d.ts +91 -0
  51. package/dist/components/Text/Text.d.ts +16 -0
  52. package/dist/components/Text/TextTypes.d.ts +6 -0
  53. package/dist/components/TextInput/TextInput.d.ts +44 -31
  54. package/dist/components/TextInput/TextInputTypes.d.ts +5 -0
  55. package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
  56. package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
  57. package/dist/design-system-react-components.cjs.development.js +6473 -2630
  58. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  59. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  60. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  61. package/dist/design-system-react-components.esm.js +6463 -2631
  62. package/dist/design-system-react-components.esm.js.map +1 -1
  63. package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
  64. package/dist/hooks/useCarouselStyles.d.ts +16 -0
  65. package/dist/hooks/useNYPLTheme.d.ts +54 -0
  66. package/dist/hooks/useWindowSize.d.ts +10 -0
  67. package/dist/index.d.ts +19 -7
  68. package/dist/resources.scss +180 -170
  69. package/dist/styles.css +1 -1
  70. package/dist/theme/components/accordion.d.ts +25 -0
  71. package/dist/theme/components/breadcrumb.d.ts +90 -0
  72. package/dist/theme/components/button.d.ts +39 -15
  73. package/dist/theme/components/card.d.ts +168 -0
  74. package/dist/theme/components/checkbox.d.ts +12 -8
  75. package/dist/theme/components/checkboxGroup.d.ts +12 -0
  76. package/dist/theme/components/componentWrapper.d.ts +11 -0
  77. package/dist/theme/components/datePicker.d.ts +16 -0
  78. package/dist/theme/components/fieldset.d.ts +27 -0
  79. package/dist/theme/components/global.d.ts +65 -0
  80. package/dist/theme/components/globalMixins.d.ts +23 -0
  81. package/dist/theme/components/heading.d.ts +55 -20
  82. package/dist/theme/components/helperErrorText.d.ts +10 -0
  83. package/dist/theme/components/hero.d.ts +493 -0
  84. package/dist/theme/components/horizontalRule.d.ts +14 -0
  85. package/dist/theme/components/icon.d.ts +13 -0
  86. package/dist/theme/components/image.d.ts +31 -0
  87. package/dist/theme/components/label.d.ts +18 -0
  88. package/dist/theme/components/link.d.ts +49 -0
  89. package/dist/theme/components/list.d.ts +89 -0
  90. package/dist/theme/components/notification.d.ts +75 -0
  91. package/dist/theme/components/pagination.d.ts +19 -0
  92. package/dist/theme/components/progressIndicator.d.ts +50 -0
  93. package/dist/theme/components/radio.d.ts +8 -7
  94. package/dist/theme/components/radioGroup.d.ts +12 -0
  95. package/dist/theme/components/searchBar.d.ts +20 -0
  96. package/dist/theme/components/select.d.ts +67 -0
  97. package/dist/theme/components/skeletonLoader.d.ts +98 -0
  98. package/dist/theme/components/slider.d.ts +51 -0
  99. package/dist/theme/components/statusBadge.d.ts +25 -0
  100. package/dist/theme/components/tabs.d.ts +63 -12
  101. package/dist/theme/components/template.d.ts +105 -0
  102. package/dist/theme/components/text.d.ts +20 -0
  103. package/dist/theme/components/textInput.d.ts +112 -0
  104. package/dist/theme/components/videoPlayer.d.ts +40 -0
  105. package/dist/theme/foundations/breakpoints.d.ts +8 -8
  106. package/dist/theme/foundations/global.d.ts +8 -0
  107. package/dist/theme/foundations/radii.d.ts +5 -0
  108. package/dist/theme/foundations/shadows.d.ts +4 -0
  109. package/dist/theme/foundations/spacing.d.ts +16 -16
  110. package/dist/utils/utils.d.ts +6 -0
  111. package/package.json +72 -82
  112. package/src/__tests__/setup.ts +2 -2
  113. package/src/components/Accordion/Accordion.stories.mdx +223 -34
  114. package/src/components/Accordion/Accordion.test.tsx +135 -19
  115. package/src/components/Accordion/Accordion.tsx +81 -56
  116. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -4
  117. package/src/components/Autosuggest/Autosuggest.stories.tsx +3 -2
  118. package/src/components/Autosuggest/_Autosuggest.scss +5 -5
  119. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +48 -50
  120. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +54 -25
  121. package/src/components/Breadcrumbs/Breadcrumbs.tsx +75 -73
  122. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
  123. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +298 -0
  124. package/src/components/Button/Button.stories.mdx +45 -36
  125. package/src/components/Button/Button.test.tsx +37 -11
  126. package/src/components/Button/Button.tsx +22 -34
  127. package/src/components/Button/ButtonTypes.tsx +2 -0
  128. package/src/components/Button/__snapshots__/Button.test.tsx.snap +50 -8
  129. package/src/components/Card/Card.stories.mdx +314 -273
  130. package/src/components/Card/Card.test.tsx +157 -91
  131. package/src/components/Card/Card.tsx +195 -145
  132. package/src/components/Card/CardTypes.tsx +2 -19
  133. package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
  134. package/src/components/CardEdition/CardEdition.stories.tsx +26 -53
  135. package/src/components/CardEdition/CardEdition.test.tsx +23 -31
  136. package/src/components/CardEdition/_CardEdition.scss +22 -23
  137. package/src/components/Chakra/Box.stories.mdx +15 -16
  138. package/src/components/Chakra/Center.stories.mdx +56 -24
  139. package/src/components/Chakra/Grid.stories.mdx +92 -0
  140. package/src/components/Chakra/Stack.stories.mdx +38 -21
  141. package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
  142. package/src/components/Checkbox/Checkbox.test.tsx +47 -2
  143. package/src/components/Checkbox/Checkbox.tsx +44 -41
  144. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +92 -7
  145. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +329 -0
  146. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +372 -0
  147. package/src/components/CheckboxGroup/CheckboxGroup.tsx +152 -0
  148. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
  149. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1326 -0
  150. package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
  151. package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
  152. package/src/components/DatePicker/DatePicker.test.tsx +264 -64
  153. package/src/components/DatePicker/DatePicker.tsx +165 -134
  154. package/src/components/DatePicker/_DatePicker.scss +33 -66
  155. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
  156. package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
  157. package/src/components/Fieldset/Fieldset.test.tsx +125 -0
  158. package/src/components/Fieldset/Fieldset.tsx +52 -0
  159. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
  160. package/src/components/Form/Form.stories.mdx +70 -27
  161. package/src/components/Form/Form.test.tsx +58 -45
  162. package/src/components/Form/Form.tsx +50 -21
  163. package/src/components/Form/FormTypes.tsx +3 -8
  164. package/src/components/Form/__snapshots__/Form.test.tsx.snap +24 -14
  165. package/src/components/Grid/GridTypes.tsx +9 -0
  166. package/src/components/Grid/SimpleGrid.stories.mdx +268 -0
  167. package/src/components/Grid/SimpleGrid.test.tsx +66 -0
  168. package/src/components/Grid/SimpleGrid.tsx +37 -0
  169. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +8 -0
  170. package/src/components/Heading/Heading.stories.mdx +3 -3
  171. package/src/components/Heading/Heading.tsx +12 -6
  172. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
  173. package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
  174. package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
  175. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
  176. package/src/components/Hero/Hero.stories.mdx +198 -121
  177. package/src/components/Hero/Hero.test.tsx +537 -107
  178. package/src/components/Hero/Hero.tsx +79 -92
  179. package/src/components/Hero/HeroTypes.tsx +18 -5
  180. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
  181. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
  182. package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
  183. package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
  184. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
  185. package/src/components/Icons/Icon.stories.mdx +94 -77
  186. package/src/components/Icons/Icon.test.tsx +48 -22
  187. package/src/components/Icons/Icon.tsx +78 -61
  188. package/src/components/Icons/IconSvgs.tsx +22 -0
  189. package/src/components/Icons/IconTypes.tsx +91 -64
  190. package/src/components/Image/Image.stories.mdx +220 -0
  191. package/src/components/Image/Image.test.tsx +131 -29
  192. package/src/components/Image/Image.tsx +84 -56
  193. package/src/components/Image/ImageTypes.ts +22 -0
  194. package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
  195. package/src/components/Input/Input.stories.tsx +23 -67
  196. package/src/components/Input/Input.test.tsx +4 -4
  197. package/src/components/Input/_Input.scss +23 -14
  198. package/src/components/Label/Label.stories.mdx +28 -7
  199. package/src/components/Label/Label.test.tsx +43 -12
  200. package/src/components/Label/Label.tsx +21 -34
  201. package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
  202. package/src/components/Link/Link.stories.mdx +41 -41
  203. package/src/components/Link/Link.test.tsx +33 -44
  204. package/src/components/Link/Link.tsx +117 -100
  205. package/src/components/List/List.stories.mdx +124 -51
  206. package/src/components/List/List.test.tsx +142 -63
  207. package/src/components/List/List.tsx +89 -93
  208. package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
  209. package/src/components/Modal/Modal.stories.mdx +3 -3
  210. package/src/components/Modal/_Modal.scss +2 -2
  211. package/src/components/Notification/Notification.stories.mdx +119 -111
  212. package/src/components/Notification/Notification.test.tsx +102 -126
  213. package/src/components/Notification/Notification.tsx +157 -161
  214. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
  215. package/src/components/Pagination/Pagination.stories.mdx +26 -27
  216. package/src/components/Pagination/Pagination.stories.tsx +11 -16
  217. package/src/components/Pagination/Pagination.test.tsx +276 -140
  218. package/src/components/Pagination/Pagination.tsx +174 -154
  219. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
  220. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
  221. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
  222. package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
  223. package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
  224. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
  225. package/src/components/Radio/Radio.test.tsx +20 -4
  226. package/src/components/Radio/Radio.tsx +6 -3
  227. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
  228. package/src/components/RadioGroup/RadioGroup.stories.mdx +4 -5
  229. package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
  230. package/src/components/RadioGroup/RadioGroup.tsx +21 -29
  231. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
  232. package/src/components/SearchBar/SearchBar.Test.tsx +170 -16
  233. package/src/components/SearchBar/SearchBar.stories.mdx +294 -219
  234. package/src/components/SearchBar/SearchBar.tsx +161 -46
  235. package/src/components/Select/Select.stories.mdx +188 -170
  236. package/src/components/Select/Select.test.tsx +132 -375
  237. package/src/components/Select/Select.tsx +121 -165
  238. package/src/components/Select/SelectTypes.tsx +5 -0
  239. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +33 -76
  240. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
  241. package/src/components/SkeletonLoader/SkeletonLoader.tsx +75 -70
  242. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
  243. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
  244. package/src/components/Slider/Slider.stories.mdx +529 -0
  245. package/src/components/Slider/Slider.test.tsx +653 -0
  246. package/src/components/Slider/Slider.tsx +303 -0
  247. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
  248. package/src/components/StatusBadge/StatusBadge.stories.mdx +91 -0
  249. package/src/components/StatusBadge/StatusBadge.test.tsx +35 -7
  250. package/src/components/StatusBadge/StatusBadge.tsx +24 -25
  251. package/src/components/StatusBadge/StatusBadgeTypes.tsx +5 -0
  252. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +28 -0
  253. package/src/components/StyleGuide/Bidirectionality.stories.mdx +17 -17
  254. package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
  255. package/src/components/StyleGuide/Buttons.stories.mdx +102 -86
  256. package/src/components/StyleGuide/ColorCard.tsx +46 -0
  257. package/src/components/StyleGuide/Colors.stories.mdx +196 -0
  258. package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
  259. package/src/components/StyleGuide/Forms.stories.mdx +9 -7
  260. package/src/components/StyleGuide/Iconography.stories.mdx +119 -127
  261. package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
  262. package/src/components/StyleGuide/Typography.stories.mdx +202 -189
  263. package/src/components/StyleGuide/UIDocCard.tsx +1 -1
  264. package/src/components/Tabs/Tabs.stories.mdx +73 -11
  265. package/src/components/Tabs/Tabs.tsx +88 -67
  266. package/src/components/Template/Template.stories.mdx +572 -0
  267. package/src/components/Template/Template.test.tsx +124 -0
  268. package/src/components/Template/Template.tsx +226 -0
  269. package/src/components/Text/Text.stories.mdx +70 -0
  270. package/src/components/Text/Text.test.tsx +63 -0
  271. package/src/components/Text/Text.tsx +55 -0
  272. package/src/components/Text/TextTypes.tsx +6 -0
  273. package/src/components/Text/__snapshots__/Text.test.tsx.snap +33 -0
  274. package/src/components/TextInput/TextInput.stories.mdx +89 -90
  275. package/src/components/TextInput/TextInput.test.tsx +84 -85
  276. package/src/components/TextInput/TextInput.tsx +121 -95
  277. package/src/components/TextInput/TextInputTypes.tsx +8 -0
  278. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
  279. package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
  280. package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
  281. package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
  282. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
  283. package/src/docs/Chakra.stories.mdx +246 -65
  284. package/src/docs/Intro.stories.mdx +18 -13
  285. package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
  286. package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
  287. package/src/hooks/useCarouselStyles.ts +34 -0
  288. package/src/hooks/useNYPLTheme.ts +67 -0
  289. package/src/hooks/useWindowSize.ts +40 -0
  290. package/src/index.ts +39 -16
  291. package/src/resources.scss +5 -5
  292. package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
  293. package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
  294. package/src/styles/base/_03-base.scss +25 -0
  295. package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
  296. package/src/styles/base/_place-holder.scss +14 -3
  297. package/src/styles/{03-space → space}/_space-inline.scss +14 -14
  298. package/src/styles/{03-space → space}/_space-inset.scss +10 -10
  299. package/src/styles/space/_space-stack.scss +116 -0
  300. package/src/styles.scss +13 -62
  301. package/src/theme/components/accordion.ts +30 -0
  302. package/src/theme/components/breadcrumb.ts +77 -0
  303. package/src/theme/components/button.ts +91 -71
  304. package/src/theme/components/card.ts +174 -0
  305. package/src/theme/components/checkbox.ts +22 -29
  306. package/src/theme/components/checkboxGroup.ts +8 -0
  307. package/src/theme/components/componentWrapper.ts +10 -0
  308. package/src/theme/components/datePicker.ts +17 -0
  309. package/src/theme/components/fieldset.ts +18 -0
  310. package/src/theme/components/global.ts +82 -0
  311. package/src/theme/components/globalMixins.ts +24 -0
  312. package/src/theme/components/heading.ts +25 -13
  313. package/src/theme/components/helperErrorText.ts +9 -0
  314. package/src/theme/components/hero.ts +240 -0
  315. package/src/theme/components/horizontalRule.ts +13 -0
  316. package/src/theme/components/icon.ts +79 -0
  317. package/src/theme/components/image.ts +116 -0
  318. package/src/theme/components/label.ts +10 -0
  319. package/src/theme/components/link.ts +51 -0
  320. package/src/theme/components/list.ts +73 -0
  321. package/src/theme/components/notification.ts +93 -0
  322. package/src/theme/components/pagination.ts +20 -0
  323. package/src/theme/components/progressIndicator.ts +62 -0
  324. package/src/theme/components/radio.ts +22 -33
  325. package/src/theme/components/radioGroup.ts +8 -0
  326. package/src/theme/components/searchBar.ts +21 -0
  327. package/src/theme/components/select.ts +53 -0
  328. package/src/theme/components/skeletonLoader.ts +107 -0
  329. package/src/theme/components/slider.ts +79 -0
  330. package/src/theme/components/statusBadge.ts +26 -0
  331. package/src/theme/components/tabs.ts +102 -69
  332. package/src/theme/components/template.ts +114 -0
  333. package/src/theme/components/text.ts +31 -0
  334. package/src/theme/components/textInput.ts +62 -0
  335. package/src/theme/components/videoPlayer.ts +49 -0
  336. package/src/theme/foundations/breakpoints.ts +8 -8
  337. package/src/theme/foundations/colors.ts +29 -13
  338. package/src/theme/foundations/global.ts +8 -0
  339. package/src/theme/foundations/radii.ts +6 -0
  340. package/src/theme/foundations/shadows.ts +5 -0
  341. package/src/theme/foundations/spacing.ts +24 -24
  342. package/src/theme/index.ts +74 -13
  343. package/src/utils/componentCategories.ts +12 -5
  344. package/src/utils/utils.ts +13 -0
  345. package/dist/components/Accordion/Accordion.stories.d.ts +0 -6
  346. package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
  347. package/dist/components/Image/Image.stories.d.ts +0 -18
  348. package/dist/components/List/List.stories.d.ts +0 -7
  349. package/dist/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
  350. package/dist/components/StyleGuide/Colors.stories.d.ts +0 -25
  351. package/dist/components/Template/Template.stories.d.ts +0 -30
  352. package/dist/theme/components/customRadioGroup.d.ts +0 -17
  353. package/src/components/Accordion/Accordion.stories.tsx +0 -66
  354. package/src/components/Accordion/_Accordion.scss +0 -81
  355. package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
  356. package/src/components/Button/_Button.scss +0 -56
  357. package/src/components/Card/_Card.scss +0 -308
  358. package/src/components/Form/_Form.scss +0 -67
  359. package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
  360. package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
  361. package/src/components/Hero/_Hero.scss +0 -256
  362. package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
  363. package/src/components/Icons/_Icons.scss +0 -116
  364. package/src/components/Image/Image.stories.tsx +0 -54
  365. package/src/components/Image/_Image.scss +0 -38
  366. package/src/components/Label/_Label.scss +0 -22
  367. package/src/components/Link/_Link.scss +0 -73
  368. package/src/components/List/List.stories.tsx +0 -139
  369. package/src/components/List/_List.scss +0 -76
  370. package/src/components/Notification/_Notification.scss +0 -110
  371. package/src/components/Pagination/_Pagination.scss +0 -40
  372. package/src/components/SearchBar/_SearchBar.scss +0 -16
  373. package/src/components/Select/_Select.scss +0 -82
  374. package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
  375. package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -34
  376. package/src/components/StatusBadge/_StatusBadge.scss +0 -23
  377. package/src/components/StyleGuide/Colors.stories.tsx +0 -289
  378. package/src/components/Template/Template.stories.tsx +0 -86
  379. package/src/components/Template/_Template.scss +0 -63
  380. package/src/components/TextInput/_TextInput.scss +0 -59
  381. package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
  382. package/src/styles/01-colors/_colors-brand.scss +0 -56
  383. package/src/styles/01-colors/_colors-utility.scss +0 -65
  384. package/src/styles/02-typography/_type-scale.css +0 -11
  385. package/src/styles/02-typography/_type-weight.css +0 -7
  386. package/src/styles/02-typography/_typefaces.css +0 -4
  387. package/src/styles/03-space/_space-stack.scss +0 -116
  388. package/src/styles/03-space/_space.css +0 -30
  389. package/src/styles/base/_04-base.scss +0 -19
  390. package/src/styles/base/_card-grid.scss +0 -78
  391. package/src/styles/base/_typography.scss +0 -11
  392. package/src/theme/components/customRadioGroup.ts +0 -18
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  Meta,
3
3
  Story,
4
- Canvas,
5
4
  ArgsTable,
6
- Preview,
5
+ Canvas,
7
6
  Description,
8
7
  } from "@storybook/addon-docs/blocks";
9
8
  import { withDesign } from "storybook-addon-designs";
9
+ import { VStack } from "@chakra-ui/react";
10
10
 
11
11
  import TextInput from "./TextInput";
12
12
  import { TextInputTypes } from "./TextInputTypes";
13
- import { action } from "@storybook/addon-actions";
14
13
  import { getCategory } from "../../utils/componentCategories";
14
+ import DSProvider from "../../theme/provider";
15
15
 
16
16
  <Meta
17
17
  title={getCategory("TextInput")}
@@ -27,6 +27,9 @@ import { getCategory } from "../../utils/componentCategories";
27
27
  }}
28
28
  argTypes={{
29
29
  attributes: { table: { disable: true } },
30
+ id: { table: { disable: true } },
31
+ onChange: { table: { disable: true } },
32
+ value: { table: { disable: true } },
30
33
  }}
31
34
  />
32
35
 
@@ -35,134 +38,130 @@ import { getCategory } from "../../utils/componentCategories";
35
38
  | Component Version | DS Version |
36
39
  | ----------------- | ---------- |
37
40
  | Added | `0.22.0` |
38
- | Latest | `0.24.0` |
41
+ | Latest | `0.25.4` |
39
42
 
40
43
  <Description of={TextInput} />
41
44
 
42
- This component renders a text input form element. See below for configuration information. For optimal accessibility, the `labelText` property is a required prop, regardless of the label visibility. Additionally, while the `id` prop is optional, a unique `id` attribute is necessary for accessibility. If the prop is left blank, a value will be generated for you.
45
+ This component renders a text input form element. See below for configuration
46
+ information. For optimal accessibility, the `labelText` property is a required
47
+ prop, regardless of the label visibility. Additionally, while the `id` prop is
48
+ optional, a unique `id` attribute is necessary for accessibility. If the prop
49
+ is left blank, a value will be generated for you.
43
50
 
44
- <Preview withToolbar>
51
+ <Canvas withToolbar>
45
52
  <Story
46
53
  name="TextInput"
47
54
  args={{
55
+ helperText: "Choose wisely.",
48
56
  id: "myTextInput",
49
- type: TextInputTypes.text,
57
+ invalidText: "This is error text :(",
58
+ isDisabled: false,
59
+ isInvalid: false,
60
+ isRequired: true,
50
61
  labelText: "What is your favorite color?",
51
- showLabel: true,
52
62
  placeholder: "e.g. blue, green, etc.",
53
- helperText: "Choose wisely.",
54
- invalidText: "Waaaaaaaa!",
55
- errored: false,
56
- required: true,
63
+ showLabel: true,
57
64
  showOptReqLabel: true,
58
- disabled: false,
59
- attributes: {
60
- onFocus: action("focus"),
61
- onBlur: action("blur"),
62
- onChange: action("onChange"),
63
- maxLength: 10,
64
- tabIndex: 0,
65
- autoFocus: true,
66
- pattern: "[a-z0-9]",
67
- },
65
+ type: TextInputTypes.text,
68
66
  }}
69
67
  >
70
68
  {(args) => <TextInput {...args} />}
71
69
  </Story>
72
- </Preview>
70
+ </Canvas>
73
71
 
74
72
  <ArgsTable story="TextInput" />
75
73
 
76
74
  ## Labelling Variations
77
75
 
78
- A TextInput can be rendered with or without visible labels.
79
-
80
- <Preview withToolbar>
81
- <Story
82
- name="Labelling Variations"
83
- args={{
84
- labelText: "What is your favorite color?",
85
- showLabel: false,
86
- }}
87
- >
88
- {(args) => <TextInput {...args} />}
76
+ A TextInput can be rendered with or without visible labels. When `showLabel` is
77
+ set to `false`, an `aria-label` attribute is added to the input/textarea element
78
+ to maintain accessibility. If the component needs to be required, the
79
+ `showOptReqLabel` prop can be used to show or hide the "Required"/"Optional"
80
+ text within the `label` element.
81
+
82
+ <Canvas withToolbar>
83
+ <Story name="Labelling Variations">
84
+ <VStack align="stretch" spacing={12}>
85
+ <TextInput
86
+ labelText="What is your favorite color?"
87
+ placeholder="i.e. blue, green, etc."
88
+ helperText="Choose wisely!"
89
+ />
90
+ <TextInput
91
+ labelText="What is your favorite color?"
92
+ placeholder="i.e. blue, green, etc."
93
+ showLabel={false}
94
+ />
95
+ <TextInput
96
+ labelText="What is your favorite color?"
97
+ placeholder="i.e. blue, green, etc."
98
+ isRequired
99
+ />
100
+ <TextInput
101
+ labelText="What is your favorite color?"
102
+ placeholder="i.e. blue, green, etc."
103
+ showOptReqLabel={false}
104
+ isRequired
105
+ />
106
+ <TextInput
107
+ labelText="What is your favorite color?"
108
+ showLabel={false}
109
+ placeholder="i.e. blue, green, etc."
110
+ helperText="Choose wisely!"
111
+ />
112
+ </VStack>
89
113
  </Story>
90
- </Preview>
91
-
92
- <Canvas>
93
- <TextInput labelText="What is your favorite color?" showLabel={true} />
94
114
  </Canvas>
95
115
 
96
- <Canvas>
97
- <TextInput
98
- labelText="What is your favorite color?"
99
- showLabel={false}
100
- placeholder="i.e. blue, green, etc."
101
- />
102
- </Canvas>
103
-
104
- <Canvas>
105
- <TextInput
106
- labelText="What is your favorite color?"
107
- showLabel={true}
108
- placeholder="i.e. blue, green, etc."
109
- />
110
- </Canvas>
116
+ ### Errored
111
117
 
112
118
  <Canvas>
113
- <TextInput
114
- labelText="What is your favorite color?"
115
- showLabel={false}
116
- placeholder="i.e. blue, green, etc."
117
- helperText="Choose wisely!"
118
- />
119
+ <DSProvider>
120
+ <TextInput
121
+ labelText="What is your favorite color?"
122
+ placeholder="i.e. blue, green, etc."
123
+ helperText="Choose wisely!"
124
+ invalidText="This is error text :("
125
+ isInvalid
126
+ />
127
+ </DSProvider>
119
128
  </Canvas>
120
129
 
121
- <Canvas>
122
- <TextInput
123
- labelText="What is your favorite color?"
124
- showLabel={true}
125
- placeholder="i.e. blue, green, etc."
126
- helperText="Choose wisely!"
127
- />
128
- </Canvas>
129
-
130
- <Canvas>
131
- <TextInput
132
- labelText="What is your favorite color?"
133
- showLabel={false}
134
- placeholder="i.e. blue, green, etc."
135
- invalidText="Waaaaaa!"
136
- errored={true}
137
- />
138
- </Canvas>
130
+ ### Disabled
139
131
 
140
132
  <Canvas>
141
- <TextInput
142
- labelText="What is your favorite color?"
143
- showLabel={true}
144
- placeholder="i.e. blue, green, etc."
145
- invalidText="Waaaaaa!"
146
- errored={true}
147
- />
133
+ <DSProvider>
134
+ <TextInput
135
+ labelText="What is your favorite color?"
136
+ placeholder="i.e. blue, green, etc."
137
+ helperText="Choose wisely!"
138
+ isDisabled
139
+ />
140
+ </DSProvider>
148
141
  </Canvas>
149
142
 
150
143
  ## Textarea
151
144
 
152
145
  The TextInput component includes a multiline `textarea` form field. To render a
153
- `textarea` element, pass `TextInputTypes.textarea` for the `type` prop.
146
+ `textarea` element, pass `TextInputTypes.textarea` for the `type` prop. All the
147
+ variations described above are available for the `textarea` option.
154
148
 
155
- <Preview withToolbar>
149
+ <Canvas withToolbar>
156
150
  <Story
157
151
  name="Textarea"
158
152
  args={{
159
- type: TextInputTypes.textarea,
153
+ helperText: "Let it all out.",
154
+ invalidText: "This is error text :(",
155
+ isDisabled: false,
156
+ isInvalid: false,
157
+ isRequired: true,
160
158
  labelText: "In less than 500 words, describe your favorite color?",
161
- showLabel: true,
162
159
  placeholder: "Essay question...",
163
- helperText: "Let it all out.",
160
+ showLabel: true,
161
+ showOptReqLabel: true,
162
+ type: TextInputTypes.textarea,
164
163
  }}
165
164
  >
166
165
  {(args) => <TextInput {...args} />}
167
166
  </Story>
168
- </Preview>
167
+ </Canvas>
@@ -1,23 +1,33 @@
1
1
  import * as React from "react";
2
- import { fireEvent, render, screen } from "@testing-library/react";
2
+ import { render, screen, fireEvent } from "@testing-library/react";
3
3
  import { axe } from "jest-axe";
4
4
  import userEvent from "@testing-library/user-event";
5
5
 
6
- import HelperErrorText from "../HelperErrorText/HelperErrorText";
7
6
  import TextInput from "./TextInput";
8
7
  import { TextInputTypes } from "./TextInputTypes";
9
8
  import * as generateUUID from "../../helpers/generateUUID";
10
9
 
11
10
  describe("TextInput Accessibility", () => {
12
- it("passes axe accessibility test", async () => {
11
+ it("passes axe accessibility test for the input element", async () => {
13
12
  const { container } = render(
14
13
  <TextInput
15
- id="myTextInput"
16
- labelText="Custom Input Label"
17
- required={true}
14
+ labelText="Custom input label"
15
+ isRequired
18
16
  placeholder="Input Placeholder"
19
17
  type={TextInputTypes.text}
20
- attributes={{ onFocus: jest.fn() }}
18
+ onChange={jest.fn()}
19
+ />
20
+ );
21
+ expect(await axe(container)).toHaveNoViolations();
22
+ });
23
+
24
+ it("passes axe accessibility test for the textarea element", async () => {
25
+ const { container } = render(
26
+ <TextInput
27
+ labelText="Custom textarea label"
28
+ isRequired
29
+ placeholder="Input Placeholder"
30
+ type={TextInputTypes.textarea}
21
31
  onChange={jest.fn()}
22
32
  />
23
33
  );
@@ -37,7 +47,7 @@ describe("TextInput", () => {
37
47
  <TextInput
38
48
  id="myTextInput"
39
49
  labelText="Custom Input Label"
40
- required={true}
50
+ isRequired
41
51
  placeholder="Input Placeholder"
42
52
  type={TextInputTypes.text}
43
53
  attributes={{ onFocus: focusHandler }}
@@ -46,25 +56,25 @@ describe("TextInput", () => {
46
56
  );
47
57
  });
48
58
 
49
- it("Renders an input element", () => {
59
+ it("renders an input element", () => {
50
60
  expect(screen.getByLabelText(/Custom Input Label/i)).toBeInTheDocument();
51
61
  });
52
62
 
53
- it("Renders label with label text", () => {
63
+ it("renders label with label text", () => {
54
64
  expect(screen.getByText("Custom Input Label")).toBeInTheDocument();
55
65
  });
56
66
 
57
- it("Renders 'Required' along with the label text", () => {
67
+ it("renders 'Required' along with the label text", () => {
58
68
  expect(screen.getByText("Custom Input Label")).toBeInTheDocument();
59
69
  expect(screen.getByText(/Required/i)).toBeInTheDocument();
60
70
  });
61
71
 
62
- it("Renders 'Optional' along with the label text", () => {
72
+ it("renders 'Optional' along with the label text", () => {
63
73
  utils.rerender(
64
74
  <TextInput
65
75
  id="myTextInput"
66
76
  labelText="Custom Input Label"
67
- required={false}
77
+ isRequired={false}
68
78
  placeholder="Input Placeholder"
69
79
  type={TextInputTypes.text}
70
80
  attributes={{ onFocus: focusHandler }}
@@ -76,12 +86,12 @@ describe("TextInput", () => {
76
86
  expect(screen.getByText(/Optional/i)).toBeInTheDocument();
77
87
  });
78
88
 
79
- it("Does not render 'Required' along with the label text", () => {
89
+ it("does not render 'Required' along with the label text", () => {
80
90
  utils.rerender(
81
91
  <TextInput
82
92
  id="myTextInput"
83
93
  labelText="Custom Input Label"
84
- required={true}
94
+ isRequired
85
95
  showOptReqLabel={false}
86
96
  placeholder="Input Placeholder"
87
97
  type={TextInputTypes.text}
@@ -94,32 +104,32 @@ describe("TextInput", () => {
94
104
  expect(screen.queryByText(/Required/i)).not.toBeInTheDocument();
95
105
  });
96
106
 
97
- it("Renders label's `for` attribute pointing at ID from input", () => {
107
+ it("renders label's `for` attribute pointing at ID from input", () => {
98
108
  expect(screen.getByText(/Custom Input Label/i)).toHaveAttribute(
99
109
  "for",
100
110
  "myTextInput"
101
111
  );
102
112
  });
103
113
 
104
- it("Renders placeholder text", () => {
114
+ it("renders placeholder text", () => {
105
115
  expect(
106
116
  screen.getByPlaceholderText("Input Placeholder")
107
117
  ).toBeInTheDocument();
108
118
  });
109
119
 
110
- it("Adds aria-required prop if input is required", () => {
120
+ it("adds aria-required prop if input is required", () => {
111
121
  expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
112
122
  "aria-required"
113
123
  );
114
124
  });
115
125
 
116
- it("Allows user to pass in additional attributes", () => {
126
+ it("allows user to pass in additional attributes", () => {
117
127
  expect(focusHandler).toHaveBeenCalledTimes(0);
118
128
  fireEvent.focus(screen.getByLabelText(/Custom Input Label/i));
119
129
  expect(focusHandler).toHaveBeenCalledTimes(1);
120
130
  });
121
131
 
122
- it("Changing the value calls the onChange handler", () => {
132
+ it("changing the value calls the onChange handler", () => {
123
133
  expect(changeHandler).toHaveBeenCalledTimes(0);
124
134
  userEvent.type(screen.getByLabelText(/Custom Input Label/i), "Hello");
125
135
  // Called 5 times because "Hello" has length of 5.
@@ -137,117 +147,91 @@ describe("Renders TextInput with auto-generated ID, hidden label and visible hel
137
147
  labelText="Custom Input Label"
138
148
  showLabel={false}
139
149
  helperText="Custom Helper Text"
140
- required={true}
150
+ isRequired
141
151
  placeholder="Input Placeholder"
142
152
  type={TextInputTypes.text}
143
153
  />
144
154
  );
145
155
  });
146
156
 
147
- it("Renders Input component", () => {
157
+ it("renders Input component", () => {
148
158
  expect(screen.getByLabelText(/Custom Input Label/i)).toBeInTheDocument();
149
159
  });
150
160
 
151
- it("Calls a UUID generation method if no ID is passed as a prop", () => {
161
+ it("calls a UUID generation method if no ID is passed as a prop", () => {
152
162
  // Called twice for the `TextInput` and the SVG icon components.
153
163
  expect(generateUUIDSpy).toHaveBeenCalledTimes(2);
154
164
  });
155
165
 
156
- it("Does not renders Label component", () => {
166
+ it("does not renders Label component", () => {
157
167
  expect(screen.queryByText(/Custom Input Label/i)).not.toBeInTheDocument();
158
168
  });
159
169
 
160
- it("Renders custom aria-label", () => {
170
+ it("renders custom aria-label", () => {
161
171
  expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
162
172
  "aria-label",
163
- "Custom Input Label"
173
+ "Custom Input Label - Custom Helper Text"
164
174
  );
165
175
  });
166
176
 
167
- it("Renders HelperErrorText component", () => {
177
+ it("renders HelperErrorText component", () => {
168
178
  expect(screen.getByText("Custom Helper Text")).toBeInTheDocument();
169
179
  });
170
-
171
- it("Renders aria-describedby with helper text", () => {
172
- expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
173
- "aria-describedby",
174
- "Custom Helper Text"
175
- );
176
- });
177
180
  });
178
181
 
179
182
  describe("TextInput shows error state", () => {
183
+ let rerender;
180
184
  beforeEach(() => {
181
- render(
185
+ const utils = render(
182
186
  <TextInput
183
187
  id="myTextInputError"
184
188
  labelText="Custom Input Label"
185
189
  helperText="Custom Helper Text"
186
190
  invalidText="Custom Error Text"
187
191
  placeholder="Input Placeholder"
188
- errored={true}
192
+ isInvalid
189
193
  type={TextInputTypes.text}
190
194
  />
191
195
  );
196
+
197
+ rerender = utils.rerender;
192
198
  });
193
199
 
194
- it("Renders Input component", () => {
200
+ it("renders Input component", () => {
195
201
  expect(screen.getByLabelText(/Custom Input Label/i)).toBeInTheDocument();
196
202
  });
197
203
 
198
- it("Renders Label component", () => {
204
+ it("renders Label component", () => {
199
205
  expect(screen.getByText(/Custom Input Label/i)).toBeInTheDocument();
200
206
  });
201
207
 
202
- it("Renders HelperErrorText component", () => {
208
+ it("renders HelperErrorText component", () => {
203
209
  expect(screen.queryByText("Custom Helper Text")).not.toBeInTheDocument();
204
210
  expect(screen.getByText("Custom Error Text")).toBeInTheDocument();
205
211
  });
206
212
 
207
- it("Input shows error state", () => {
208
- expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
209
- "class",
210
- "inputfield inputfield--error "
213
+ it("does not render the invalid text when 'showHelperInvalidText' is set to false", () => {
214
+ rerender(
215
+ <TextInput
216
+ id="myTextInputError"
217
+ labelText="Custom Input Label"
218
+ helperText="Custom Helper Text"
219
+ invalidText="Custom Error Text"
220
+ placeholder="Input Placeholder"
221
+ showHelperInvalidText={false}
222
+ type={TextInputTypes.text}
223
+ isInvalid
224
+ />
211
225
  );
226
+ expect(screen.queryByText("Custom Helper Text")).not.toBeInTheDocument();
227
+ expect(screen.queryByText("Custom Error Text")).not.toBeInTheDocument();
212
228
  });
213
- });
214
229
 
215
- describe("TextInput Group", () => {
216
- beforeEach(() => {
217
- render(
218
- <fieldset>
219
- <legend>Input Group Label Legend</legend>
220
-
221
- <TextInput
222
- id="input1"
223
- required={true}
224
- type={TextInputTypes.text}
225
- labelText="For"
226
- helperText="Input 1 Helper Text"
227
- />
228
-
229
- <TextInput
230
- id="input2"
231
- required={true}
232
- type={TextInputTypes.text}
233
- labelText="To"
234
- helperText="Input 2 Helper Text"
235
- />
236
-
237
- <HelperErrorText isError={true} id={"sharedHelperText"}>
238
- Additional Error Text
239
- </HelperErrorText>
240
- </fieldset>
230
+ it("input shows error state", () => {
231
+ expect(screen.getByLabelText(/Custom Input Label/i)).toHaveAttribute(
232
+ "aria-invalid"
241
233
  );
242
234
  });
243
-
244
- it("Renders legend", () => {
245
- expect(screen.getByText("Input Group Label Legend")).toBeInTheDocument();
246
- });
247
-
248
- it("Renders two inputs", () => {
249
- expect(screen.getAllByRole("textbox")).toHaveLength(2);
250
- });
251
235
  });
252
236
 
253
237
  describe("Renders HTML attributes passed through the `attributes` prop", () => {
@@ -270,27 +254,27 @@ describe("Renders HTML attributes passed through the `attributes` prop", () => {
270
254
  );
271
255
  });
272
256
 
273
- it("Has a maxlength for the input element", () => {
257
+ it("has a maxlength for the input element", () => {
274
258
  expect(screen.getByLabelText(/Input Label/i)).toHaveAttribute(
275
259
  "maxLength",
276
260
  "10"
277
261
  );
278
262
  });
279
263
 
280
- it("Has a tabIndex", () => {
264
+ it("has a tabIndex", () => {
281
265
  expect(screen.getByLabelText(/Input Label/i)).toHaveAttribute(
282
266
  "tabIndex",
283
267
  "0"
284
268
  );
285
269
  });
286
270
 
287
- it("Calls the onChange function", () => {
271
+ it("calls the onChange function", () => {
288
272
  expect(onChangeSpy).toHaveBeenCalledTimes(0);
289
273
  userEvent.type(screen.getByLabelText(/Input Label/i), "Hello");
290
274
  expect(onChangeSpy).toHaveBeenCalledTimes(5);
291
275
  });
292
276
 
293
- it("Calls the onBlur function", () => {
277
+ it("calls the onBlur function", () => {
294
278
  expect(onBlurSpy).toHaveBeenCalledTimes(0);
295
279
  fireEvent.blur(screen.getByLabelText(/Input Label/i));
296
280
  expect(onBlurSpy).toHaveBeenCalledTimes(1);
@@ -329,7 +313,7 @@ describe("Renders HTML attributes passed through the `attributes` prop", () => {
329
313
  // });
330
314
 
331
315
  describe("Hidden input", () => {
332
- it("Renders a hidden type input", () => {
316
+ it("renders a hidden type input", () => {
333
317
  const utils = render(
334
318
  <TextInput
335
319
  id="inputID-hidden"
@@ -347,6 +331,21 @@ describe("Hidden input", () => {
347
331
  "hidden"
348
332
  );
349
333
  });
334
+
335
+ it("does not show the helper text", () => {
336
+ render(
337
+ <TextInput
338
+ id="inputID-hidden"
339
+ labelText="Hidden Input Label"
340
+ helperText="Helper Text"
341
+ type={TextInputTypes.hidden}
342
+ value="hidden"
343
+ />
344
+ );
345
+
346
+ expect(screen.queryByText("Hidden Input Label")).not.toBeInTheDocument();
347
+ expect(screen.queryByText("Helper Text")).not.toBeInTheDocument();
348
+ });
350
349
  });
351
350
 
352
351
  describe("Textarea element type", () => {
@@ -361,11 +360,11 @@ describe("Textarea element type", () => {
361
360
  );
362
361
  });
363
362
 
364
- it("Renders a textarea element", () => {
363
+ it("renders a textarea element", () => {
365
364
  expect(screen.getByRole("textbox")).toBeInTheDocument();
366
365
  });
367
366
 
368
- it("Renders label with label text", () => {
367
+ it("renders label with label text", () => {
369
368
  expect(screen.getByLabelText(/Custom textarea Label/i)).toBeInTheDocument();
370
369
  });
371
370
  });