@nypl/design-system-react-components 0.25.13 → 0.27.0

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 (305) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +10 -10
  3. package/dist/components/Accordion/Accordion.d.ts +1 -1
  4. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  5. package/dist/components/Button/Button.d.ts +2 -2
  6. package/dist/components/Card/Card.d.ts +11 -9
  7. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  8. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +5 -4
  9. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
  10. package/dist/components/DatePicker/DatePicker.d.ts +5 -6
  11. package/dist/components/Fieldset/Fieldset.d.ts +5 -6
  12. package/dist/components/Form/Form.d.ts +6 -6
  13. package/dist/components/Grid/GridTypes.d.ts +7 -7
  14. package/dist/components/Grid/SimpleGrid.d.ts +1 -1
  15. package/dist/components/Heading/Heading.d.ts +1 -1
  16. package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
  17. package/dist/components/Hero/Hero.d.ts +2 -1
  18. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
  19. package/dist/components/Icons/Icon.d.ts +2 -1
  20. package/dist/components/Image/Image.d.ts +2 -2
  21. package/dist/components/Label/Label.d.ts +7 -4
  22. package/dist/components/Link/Link.d.ts +1 -1
  23. package/dist/components/List/List.d.ts +11 -11
  24. package/dist/components/List/ListTypes.d.ts +1 -1
  25. package/dist/components/Logo/Logo.d.ts +2 -1
  26. package/dist/components/Logo/LogoSvgs.d.ts +2 -0
  27. package/dist/components/Logo/LogoTypes.d.ts +2 -0
  28. package/dist/components/Modal/Modal.d.ts +28 -8
  29. package/dist/components/Notification/Notification.d.ts +4 -4
  30. package/dist/components/Pagination/Pagination.d.ts +2 -2
  31. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  32. package/dist/components/Radio/Radio.d.ts +4 -6
  33. package/dist/components/RadioGroup/RadioGroup.d.ts +12 -6
  34. package/dist/components/SearchBar/SearchBar.d.ts +4 -4
  35. package/dist/components/Select/Select.d.ts +10 -6
  36. package/dist/components/Select/SelectTypes.d.ts +4 -0
  37. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +4 -3
  38. package/dist/components/Slider/Slider.d.ts +6 -4
  39. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  40. package/dist/components/StructuredContent/StructuredContent.d.ts +2 -2
  41. package/dist/components/Table/Table.d.ts +1 -1
  42. package/dist/components/Tabs/Tabs.d.ts +4 -3
  43. package/dist/components/Template/Template.d.ts +4 -3
  44. package/dist/components/Text/Text.d.ts +1 -1
  45. package/dist/components/TextInput/TextInput.d.ts +5 -5
  46. package/dist/components/Toggle/Toggle.d.ts +3 -4
  47. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  48. package/dist/design-system-react-components.cjs.development.js +1767 -1180
  49. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  50. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  51. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  52. package/dist/design-system-react-components.esm.js +1774 -1188
  53. package/dist/design-system-react-components.esm.js.map +1 -1
  54. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  55. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  56. package/dist/index.d.ts +5 -2
  57. package/dist/styles.css +1 -1
  58. package/dist/theme/components/button.d.ts +10 -2
  59. package/dist/theme/components/card.d.ts +42 -22
  60. package/dist/theme/components/checkbox.d.ts +5 -4
  61. package/dist/theme/components/checkboxGroup.d.ts +1 -1
  62. package/dist/theme/components/componentWrapper.d.ts +2 -2
  63. package/dist/theme/components/customTable.d.ts +84 -1
  64. package/dist/theme/components/fieldset.d.ts +4 -14
  65. package/dist/theme/components/global.d.ts +23 -17
  66. package/dist/theme/components/heading.d.ts +53 -0
  67. package/dist/theme/components/helperErrorText.d.ts +1 -0
  68. package/dist/theme/components/hero.d.ts +20 -14
  69. package/dist/theme/components/label.d.ts +9 -10
  70. package/dist/theme/components/list.d.ts +99 -9
  71. package/dist/theme/components/radio.d.ts +6 -4
  72. package/dist/theme/components/radioGroup.d.ts +1 -1
  73. package/dist/theme/components/select.d.ts +28 -5
  74. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  75. package/dist/theme/components/slider.d.ts +6 -3
  76. package/dist/theme/components/structuredContent.d.ts +197 -0
  77. package/dist/theme/components/textInput.d.ts +18 -6
  78. package/dist/theme/components/toggle.d.ts +7 -4
  79. package/dist/theme/foundations/global.d.ts +2 -0
  80. package/dist/theme/foundations/radii.d.ts +1 -0
  81. package/dist/theme/foundations/spacing.d.ts +46 -43
  82. package/package.json +17 -19
  83. package/src/components/Accordion/Accordion.stories.mdx +9 -9
  84. package/src/components/Accordion/Accordion.test.tsx +21 -0
  85. package/src/components/Accordion/Accordion.tsx +13 -9
  86. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +276 -27
  87. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  88. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +21 -5
  89. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +52 -31
  90. package/src/components/Breadcrumbs/Breadcrumbs.tsx +8 -7
  91. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
  92. package/src/components/Button/Button.stories.mdx +87 -23
  93. package/src/components/Button/Button.test.tsx +25 -0
  94. package/src/components/Button/Button.tsx +18 -7
  95. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  96. package/src/components/Card/Card.stories.mdx +287 -194
  97. package/src/components/Card/Card.test.tsx +102 -0
  98. package/src/components/Card/Card.tsx +73 -32
  99. package/src/components/Card/__snapshots__/Card.test.tsx.snap +196 -36
  100. package/src/components/Chakra/Grid.stories.mdx +4 -4
  101. package/src/components/Checkbox/Checkbox.stories.mdx +62 -10
  102. package/src/components/Checkbox/Checkbox.test.tsx +32 -9
  103. package/src/components/Checkbox/Checkbox.tsx +20 -15
  104. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +134 -7
  105. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +65 -17
  106. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +137 -81
  107. package/src/components/CheckboxGroup/CheckboxGroup.tsx +31 -21
  108. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +332 -97
  109. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  110. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  111. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  112. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  113. package/src/components/DatePicker/DatePicker.test.tsx +89 -13
  114. package/src/components/DatePicker/DatePicker.tsx +62 -56
  115. package/src/components/DatePicker/_DatePicker.scss +71 -13
  116. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  117. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  118. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  119. package/src/components/Fieldset/Fieldset.tsx +35 -30
  120. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  121. package/src/components/Form/Form.stories.mdx +72 -39
  122. package/src/components/Form/Form.test.tsx +58 -15
  123. package/src/components/Form/Form.tsx +89 -67
  124. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  125. package/src/components/Grid/GridTypes.tsx +7 -7
  126. package/src/components/Grid/SimpleGrid.stories.mdx +34 -6
  127. package/src/components/Grid/SimpleGrid.test.tsx +9 -0
  128. package/src/components/Grid/SimpleGrid.tsx +29 -20
  129. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  130. package/src/components/Heading/Heading.stories.mdx +36 -3
  131. package/src/components/Heading/Heading.test.tsx +10 -0
  132. package/src/components/Heading/Heading.tsx +56 -50
  133. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +26 -7
  134. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  135. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  136. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  137. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  138. package/src/components/Hero/Hero.stories.mdx +125 -95
  139. package/src/components/Hero/Hero.test.tsx +33 -0
  140. package/src/components/Hero/Hero.tsx +135 -126
  141. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  142. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  143. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -19
  144. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -26
  145. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  146. package/src/components/Icons/Icon.stories.mdx +31 -6
  147. package/src/components/Icons/Icon.test.tsx +38 -0
  148. package/src/components/Icons/Icon.tsx +93 -76
  149. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  150. package/src/components/Image/Image.stories.mdx +29 -5
  151. package/src/components/Image/Image.test.tsx +8 -0
  152. package/src/components/Image/Image.tsx +38 -26
  153. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  154. package/src/components/Label/Label.stories.mdx +42 -20
  155. package/src/components/Label/Label.test.tsx +42 -17
  156. package/src/components/Label/Label.tsx +22 -13
  157. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  158. package/src/components/Link/Link.stories.mdx +25 -15
  159. package/src/components/Link/Link.test.tsx +21 -22
  160. package/src/components/Link/Link.tsx +8 -8
  161. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  162. package/src/components/List/List.stories.mdx +75 -40
  163. package/src/components/List/List.test.tsx +67 -19
  164. package/src/components/List/List.tsx +38 -25
  165. package/src/components/List/ListTypes.tsx +1 -1
  166. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  167. package/src/components/Logo/Logo.stories.mdx +30 -6
  168. package/src/components/Logo/Logo.test.tsx +17 -0
  169. package/src/components/Logo/Logo.tsx +18 -6
  170. package/src/components/Logo/LogoSvgs.tsx +4 -0
  171. package/src/components/Logo/LogoTypes.tsx +2 -0
  172. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  173. package/src/components/Modal/Modal.stories.mdx +256 -136
  174. package/src/components/Modal/Modal.test.tsx +151 -9
  175. package/src/components/Modal/Modal.tsx +140 -20
  176. package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +25 -0
  177. package/src/components/Notification/Notification.stories.mdx +25 -1
  178. package/src/components/Notification/Notification.test.tsx +23 -0
  179. package/src/components/Notification/Notification.tsx +46 -44
  180. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
  181. package/src/components/Pagination/Pagination.stories.mdx +25 -6
  182. package/src/components/Pagination/Pagination.test.tsx +25 -0
  183. package/src/components/Pagination/Pagination.tsx +6 -6
  184. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
  185. package/src/components/Placeholder/Placeholder.tsx +3 -1
  186. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  187. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +81 -11
  188. package/src/components/ProgressIndicator/ProgressIndicator.tsx +17 -9
  189. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  190. package/src/components/Radio/Radio.stories.mdx +64 -12
  191. package/src/components/Radio/Radio.test.tsx +28 -8
  192. package/src/components/Radio/Radio.tsx +66 -63
  193. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +103 -6
  194. package/src/components/RadioGroup/RadioGroup.stories.mdx +224 -89
  195. package/src/components/RadioGroup/RadioGroup.test.tsx +122 -62
  196. package/src/components/RadioGroup/RadioGroup.tsx +106 -100
  197. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1236 -1020
  198. package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
  199. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
  200. package/src/components/SearchBar/SearchBar.tsx +17 -8
  201. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  202. package/src/components/Select/Select.stories.mdx +128 -49
  203. package/src/components/Select/Select.test.tsx +63 -16
  204. package/src/components/Select/Select.tsx +131 -92
  205. package/src/components/Select/SelectTypes.tsx +5 -0
  206. package/src/components/Select/__snapshots__/Select.test.tsx.snap +765 -425
  207. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +42 -10
  208. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +8 -0
  209. package/src/components/SkeletonLoader/SkeletonLoader.tsx +76 -72
  210. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  211. package/src/components/Slider/Slider.stories.mdx +91 -42
  212. package/src/components/Slider/Slider.test.tsx +65 -17
  213. package/src/components/Slider/Slider.tsx +26 -19
  214. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  215. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  216. package/src/components/StatusBadge/StatusBadge.test.tsx +16 -0
  217. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  218. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  219. package/src/components/StructuredContent/StructuredContent.stories.mdx +131 -12
  220. package/src/components/StructuredContent/StructuredContent.test.tsx +34 -0
  221. package/src/components/StructuredContent/StructuredContent.tsx +80 -75
  222. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  223. package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
  224. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  225. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  226. package/src/components/StyleGuide/ColorCard.tsx +1 -1
  227. package/src/components/StyleGuide/Colors.stories.mdx +1 -2
  228. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  229. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  230. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  231. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  232. package/src/components/StyleGuide/Typography.stories.mdx +30 -21
  233. package/src/components/Table/Table.stories.mdx +38 -11
  234. package/src/components/Table/Table.test.tsx +15 -0
  235. package/src/components/Table/Table.tsx +7 -7
  236. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  237. package/src/components/Tabs/Tabs.stories.mdx +52 -3
  238. package/src/components/Tabs/Tabs.test.tsx +16 -0
  239. package/src/components/Tabs/Tabs.tsx +10 -6
  240. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  241. package/src/components/Template/Template.stories.mdx +47 -43
  242. package/src/components/Template/Template.test.tsx +33 -0
  243. package/src/components/Template/Template.tsx +65 -60
  244. package/src/components/Template/__snapshots__/Template.test.tsx.snap +191 -20
  245. package/src/components/Text/Text.stories.mdx +20 -1
  246. package/src/components/Text/Text.test.tsx +12 -0
  247. package/src/components/Text/Text.tsx +6 -4
  248. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  249. package/src/components/TextInput/TextInput.stories.mdx +65 -19
  250. package/src/components/TextInput/TextInput.test.tsx +42 -28
  251. package/src/components/TextInput/TextInput.tsx +121 -113
  252. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  253. package/src/components/Toggle/Toggle.stories.mdx +80 -22
  254. package/src/components/Toggle/Toggle.test.tsx +27 -9
  255. package/src/components/Toggle/Toggle.tsx +22 -18
  256. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +128 -5
  257. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  258. package/src/components/VideoPlayer/VideoPlayer.test.tsx +23 -0
  259. package/src/components/VideoPlayer/VideoPlayer.tsx +133 -126
  260. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  261. package/src/docs/Chakra.stories.mdx +50 -9
  262. package/src/docs/Welcome.stories.mdx +160 -41
  263. package/src/hooks/useCarouselStyles.stories.mdx +22 -2
  264. package/src/hooks/useCarouselStyles.ts +3 -2
  265. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  266. package/src/hooks/useNYPLTheme.ts +30 -6
  267. package/src/hooks/useWindowSize.stories.mdx +23 -0
  268. package/src/index.ts +5 -2
  269. package/src/styles/base/_place-holder.scss +1 -1
  270. package/src/styles.scss +0 -1
  271. package/src/theme/components/button.ts +15 -7
  272. package/src/theme/components/card.ts +30 -19
  273. package/src/theme/components/checkbox.ts +10 -8
  274. package/src/theme/components/checkboxGroup.ts +1 -1
  275. package/src/theme/components/componentWrapper.ts +2 -2
  276. package/src/theme/components/customTable.ts +39 -31
  277. package/src/theme/components/fieldset.ts +1 -2
  278. package/src/theme/components/global.ts +25 -20
  279. package/src/theme/components/heading.ts +1 -1
  280. package/src/theme/components/helperErrorText.ts +1 -0
  281. package/src/theme/components/hero.ts +13 -15
  282. package/src/theme/components/label.ts +4 -3
  283. package/src/theme/components/list.ts +73 -66
  284. package/src/theme/components/notification.ts +2 -2
  285. package/src/theme/components/radio.ts +9 -9
  286. package/src/theme/components/radioGroup.ts +1 -1
  287. package/src/theme/components/select.ts +31 -22
  288. package/src/theme/components/skeletonLoader.ts +3 -3
  289. package/src/theme/components/slider.ts +8 -7
  290. package/src/theme/components/statusBadge.ts +2 -2
  291. package/src/theme/components/structuredContent.ts +66 -1
  292. package/src/theme/components/tabs.ts +2 -2
  293. package/src/theme/components/template.ts +9 -9
  294. package/src/theme/components/textInput.ts +13 -12
  295. package/src/theme/components/toggle.ts +17 -10
  296. package/src/theme/components/videoPlayer.ts +1 -1
  297. package/src/theme/foundations/colors.ts +1 -1
  298. package/src/theme/foundations/radii.ts +1 -0
  299. package/src/theme/foundations/spacing.ts +70 -22
  300. package/src/theme/foundations/typography.ts +2 -2
  301. package/src/utils/componentCategories.ts +1 -2
  302. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  303. package/dist/helpers/generateUUID.d.ts +0 -1
  304. package/src/components/Modal/_Modal.scss +0 -18
  305. package/src/helpers/generateUUID.tsx +0 -5
@@ -1,22 +1,20 @@
1
- import * as React from "react";
2
1
  import {
3
- Box,
2
+ chakra,
4
3
  Radio as ChakraRadio,
5
4
  useMultiStyleConfig,
6
5
  } from "@chakra-ui/react";
6
+ import * as React from "react";
7
7
 
8
8
  import HelperErrorText, {
9
9
  HelperErrorTextType,
10
10
  } from "../HelperErrorText/HelperErrorText";
11
- import generateUUID from "../../helpers/generateUUID";
12
-
13
11
  export interface RadioProps {
14
12
  /** Additional class name. */
15
13
  className?: string;
16
14
  /** Optional string to populate the HelperErrorText for the standard state. */
17
15
  helperText?: HelperErrorTextType;
18
16
  /** ID that other components can cross reference for accessibility purposes */
19
- id?: string;
17
+ id: string;
20
18
  /** Optional string to populate the HelperErrorText for the error state
21
19
  * when `isInvalid` is true.
22
20
  */
@@ -26,12 +24,10 @@ export interface RadioProps {
26
24
  * Learn more about controlled and uncontrolled form fields: https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ */
27
25
  isChecked?: boolean;
28
26
  /** Adds the 'disabled' and `aria-disabled` attributes to the input when true.
29
- * This also makes the text italic and color scheme gray.
30
- */
27
+ * This also makes the text italic and color scheme gray. */
31
28
  isDisabled?: boolean;
32
29
  /** Adds the 'aria-invalid' attribute to the input when true. This also makes
33
- * the color theme "NYPL error" red for the button and text.
34
- */
30
+ * the color theme "NYPL error" red for the button and text. */
35
31
  isInvalid?: boolean;
36
32
  /** Adds the 'required' attribute to the input when true. */
37
33
  isRequired?: boolean;
@@ -52,71 +48,78 @@ export interface RadioProps {
52
48
  value?: string;
53
49
  }
54
50
 
55
- const Radio = React.forwardRef<HTMLInputElement, RadioProps>((props, ref?) => {
56
- const {
57
- className,
58
- helperText,
59
- id = generateUUID(),
60
- invalidText,
61
- isChecked,
62
- isDisabled = false,
63
- isInvalid = false,
64
- isRequired = false,
65
- labelText,
66
- name,
67
- onChange,
68
- showHelperInvalidText = true,
69
- showLabel = true,
70
- value,
71
- } = props;
72
- const styles = useMultiStyleConfig("Radio", {});
73
- const footnote = isInvalid ? invalidText : helperText;
74
- const attributes = {};
51
+ export const Radio = chakra(
52
+ React.forwardRef<HTMLInputElement, RadioProps>((props, ref?) => {
53
+ const {
54
+ className,
55
+ helperText,
56
+ id,
57
+ invalidText,
58
+ isChecked,
59
+ isDisabled = false,
60
+ isInvalid = false,
61
+ isRequired = false,
62
+ labelText,
63
+ name,
64
+ onChange,
65
+ showHelperInvalidText = true,
66
+ showLabel = true,
67
+ value,
68
+ ...rest
69
+ } = props;
70
+ const styles = useMultiStyleConfig("Radio", {});
71
+ const footnote = isInvalid ? invalidText : helperText;
72
+ const attributes = {};
75
73
 
76
- if (!showLabel) {
77
- if (typeof labelText !== "string") {
74
+ if (!id) {
78
75
  console.warn(
79
- "NYPL Reservoir Radio: `labelText` must be a string when `showLabel` is false."
76
+ "NYPL Reservoir Radio: This component's required `id` prop was not passed."
80
77
  );
81
78
  }
82
- attributes["aria-label"] =
83
- labelText && footnote ? `${labelText} - ${footnote}` : labelText;
84
- } else {
85
- if (footnote) {
79
+
80
+ if (!showLabel) {
81
+ if (typeof labelText !== "string") {
82
+ console.warn(
83
+ "NYPL Reservoir Radio: `labelText` must be a string when `showLabel` is false."
84
+ );
85
+ }
86
+ attributes["aria-label"] =
87
+ labelText && footnote ? `${labelText} - ${footnote}` : labelText;
88
+ } else if (footnote) {
86
89
  attributes["aria-describedby"] = `${id}-helperText`;
87
90
  }
88
- }
89
91
 
90
- return (
91
- <>
92
- <ChakraRadio
93
- className={className}
94
- id={id}
95
- isChecked={isChecked}
96
- isDisabled={isDisabled}
97
- isInvalid={isInvalid}
98
- isRequired={isRequired}
99
- name={name}
100
- onChange={onChange}
101
- value={value}
102
- ref={ref}
103
- alignItems="flex-start"
104
- __css={styles}
105
- {...attributes}
106
- >
107
- {showLabel && labelText}
108
- </ChakraRadio>
109
- {footnote && showHelperInvalidText && (
110
- <Box __css={styles.helper} aria-disabled={isDisabled}>
92
+ return (
93
+ <>
94
+ <ChakraRadio
95
+ className={className}
96
+ id={id}
97
+ isChecked={isChecked}
98
+ isDisabled={isDisabled}
99
+ isInvalid={isInvalid}
100
+ isRequired={isRequired}
101
+ name={name}
102
+ onChange={onChange}
103
+ value={value}
104
+ ref={ref}
105
+ alignItems="flex-start"
106
+ __css={styles}
107
+ {...attributes}
108
+ {...rest}
109
+ >
110
+ {showLabel && labelText}
111
+ </ChakraRadio>
112
+ {footnote && showHelperInvalidText && (
111
113
  <HelperErrorText
114
+ additionalStyles={styles.helperErrorText}
112
115
  id={`${id}-helperText`}
113
116
  isInvalid={isInvalid}
114
117
  text={footnote}
115
118
  />
116
- </Box>
117
- )}
118
- </>
119
- );
120
- });
119
+ )}
120
+ </>
121
+ );
122
+ })
123
+ );
121
124
 
122
125
  export default Radio;
@@ -32,7 +32,7 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
32
32
  />
33
33
  <span
34
34
  aria-hidden={true}
35
- className="css-ssalds"
35
+ className="css-14wybg9"
36
36
  onMouseDown={[Function]}
37
37
  onMouseEnter={[Function]}
38
38
  onMouseLeave={[Function]}
@@ -81,7 +81,7 @@ exports[`Radio Button renders the UI snapshot correctly 2`] = `
81
81
  />
82
82
  <span
83
83
  aria-hidden={true}
84
- className="css-ssalds"
84
+ className="css-14wybg9"
85
85
  data-checked=""
86
86
  onMouseDown={[Function]}
87
87
  onMouseEnter={[Function]}
@@ -132,7 +132,7 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
132
132
  />
133
133
  <span
134
134
  aria-hidden={true}
135
- className="css-ssalds"
135
+ className="css-14wybg9"
136
136
  onMouseDown={[Function]}
137
137
  onMouseEnter={[Function]}
138
138
  onMouseLeave={[Function]}
@@ -182,7 +182,7 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
182
182
  />
183
183
  <span
184
184
  aria-hidden={true}
185
- className="css-ssalds"
185
+ className="css-14wybg9"
186
186
  data-invalid=""
187
187
  onMouseDown={[Function]}
188
188
  onMouseEnter={[Function]}
@@ -234,7 +234,7 @@ exports[`Radio Button renders the UI snapshot correctly 5`] = `
234
234
  />
235
235
  <span
236
236
  aria-hidden={true}
237
- className="css-ssalds"
237
+ className="css-14wybg9"
238
238
  data-disabled=""
239
239
  onMouseDown={[Function]}
240
240
  onMouseEnter={[Function]}
@@ -285,7 +285,7 @@ exports[`Radio Button renders the UI snapshot correctly 6`] = `
285
285
  />
286
286
  <span
287
287
  aria-hidden={true}
288
- className="css-ssalds"
288
+ className="css-14wybg9"
289
289
  onMouseDown={[Function]}
290
290
  onMouseEnter={[Function]}
291
291
  onMouseLeave={[Function]}
@@ -312,3 +312,100 @@ exports[`Radio Button renders the UI snapshot correctly 6`] = `
312
312
  </span>
313
313
  </label>
314
314
  `;
315
+
316
+ exports[`Radio Button renders the UI snapshot correctly 7`] = `
317
+ <label
318
+ className="chakra-radio css-13p0l12"
319
+ >
320
+ <input
321
+ checked={false}
322
+ className="chakra-radio__input"
323
+ disabled={false}
324
+ id="chakra"
325
+ onBlur={[Function]}
326
+ onChange={[Function]}
327
+ onFocus={[Function]}
328
+ onKeyDown={[Function]}
329
+ onKeyUp={[Function]}
330
+ required={false}
331
+ style={
332
+ Object {
333
+ "border": "0px",
334
+ "clip": "rect(0px, 0px, 0px, 0px)",
335
+ "height": "1px",
336
+ "margin": "-1px",
337
+ "overflow": "hidden",
338
+ "padding": "0px",
339
+ "position": "absolute",
340
+ "whiteSpace": "nowrap",
341
+ "width": "1px",
342
+ }
343
+ }
344
+ type="radio"
345
+ />
346
+ <span
347
+ aria-hidden={true}
348
+ className="css-1dwi2jm"
349
+ onMouseDown={[Function]}
350
+ onMouseEnter={[Function]}
351
+ onMouseLeave={[Function]}
352
+ onMouseUp={[Function]}
353
+ />
354
+ <span
355
+ className="chakra-radio__label css-1y8kf23"
356
+ onMouseDown={[Function]}
357
+ onTouchStart={[Function]}
358
+ >
359
+ Test Label
360
+ </span>
361
+ </label>
362
+ `;
363
+
364
+ exports[`Radio Button renders the UI snapshot correctly 8`] = `
365
+ <label
366
+ className="chakra-radio css-13p0l12"
367
+ >
368
+ <input
369
+ checked={false}
370
+ className="chakra-radio__input"
371
+ disabled={false}
372
+ id="props"
373
+ onBlur={[Function]}
374
+ onChange={[Function]}
375
+ onFocus={[Function]}
376
+ onKeyDown={[Function]}
377
+ onKeyUp={[Function]}
378
+ required={false}
379
+ style={
380
+ Object {
381
+ "border": "0px",
382
+ "clip": "rect(0px, 0px, 0px, 0px)",
383
+ "height": "1px",
384
+ "margin": "-1px",
385
+ "overflow": "hidden",
386
+ "padding": "0px",
387
+ "position": "absolute",
388
+ "whiteSpace": "nowrap",
389
+ "width": "1px",
390
+ }
391
+ }
392
+ type="radio"
393
+ />
394
+ <span
395
+ aria-hidden={true}
396
+ className="css-14wybg9"
397
+ data-testid="props"
398
+ onMouseDown={[Function]}
399
+ onMouseEnter={[Function]}
400
+ onMouseLeave={[Function]}
401
+ onMouseUp={[Function]}
402
+ />
403
+ <span
404
+ className="chakra-radio__label css-1y8kf23"
405
+ onMouseDown={[Function]}
406
+ onTouchStart={[Function]}
407
+ >
408
+ Test Label
409
+ </span>
410
+ </label>
411
+ `;