@nypl/design-system-react-components 0.25.13 → 0.26.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 (299) hide show
  1. package/CHANGELOG.md +58 -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/Notification/Notification.d.ts +4 -4
  29. package/dist/components/Pagination/Pagination.d.ts +2 -2
  30. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  31. package/dist/components/Radio/Radio.d.ts +4 -6
  32. package/dist/components/RadioGroup/RadioGroup.d.ts +12 -6
  33. package/dist/components/SearchBar/SearchBar.d.ts +4 -4
  34. package/dist/components/Select/Select.d.ts +10 -6
  35. package/dist/components/Select/SelectTypes.d.ts +4 -0
  36. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +4 -3
  37. package/dist/components/Slider/Slider.d.ts +6 -4
  38. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  39. package/dist/components/StructuredContent/StructuredContent.d.ts +2 -2
  40. package/dist/components/Table/Table.d.ts +1 -1
  41. package/dist/components/Tabs/Tabs.d.ts +4 -3
  42. package/dist/components/Template/Template.d.ts +4 -3
  43. package/dist/components/Text/Text.d.ts +1 -1
  44. package/dist/components/TextInput/TextInput.d.ts +5 -5
  45. package/dist/components/Toggle/Toggle.d.ts +3 -4
  46. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  47. package/dist/design-system-react-components.cjs.development.js +1663 -1139
  48. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  49. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  50. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  51. package/dist/design-system-react-components.esm.js +1667 -1143
  52. package/dist/design-system-react-components.esm.js.map +1 -1
  53. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  54. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  55. package/dist/index.d.ts +4 -1
  56. package/dist/styles.css +1 -1
  57. package/dist/theme/components/button.d.ts +10 -2
  58. package/dist/theme/components/card.d.ts +42 -22
  59. package/dist/theme/components/checkbox.d.ts +5 -4
  60. package/dist/theme/components/checkboxGroup.d.ts +1 -1
  61. package/dist/theme/components/componentWrapper.d.ts +2 -2
  62. package/dist/theme/components/customTable.d.ts +84 -1
  63. package/dist/theme/components/fieldset.d.ts +4 -14
  64. package/dist/theme/components/global.d.ts +23 -17
  65. package/dist/theme/components/heading.d.ts +53 -0
  66. package/dist/theme/components/helperErrorText.d.ts +1 -0
  67. package/dist/theme/components/hero.d.ts +20 -14
  68. package/dist/theme/components/label.d.ts +9 -10
  69. package/dist/theme/components/list.d.ts +99 -9
  70. package/dist/theme/components/radio.d.ts +6 -4
  71. package/dist/theme/components/radioGroup.d.ts +1 -1
  72. package/dist/theme/components/select.d.ts +34 -5
  73. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  74. package/dist/theme/components/slider.d.ts +6 -3
  75. package/dist/theme/components/structuredContent.d.ts +197 -0
  76. package/dist/theme/components/textInput.d.ts +18 -6
  77. package/dist/theme/components/toggle.d.ts +7 -4
  78. package/dist/theme/foundations/global.d.ts +2 -0
  79. package/dist/theme/foundations/radii.d.ts +1 -0
  80. package/dist/theme/foundations/spacing.d.ts +46 -43
  81. package/package.json +5 -6
  82. package/src/components/Accordion/Accordion.stories.mdx +9 -9
  83. package/src/components/Accordion/Accordion.test.tsx +21 -0
  84. package/src/components/Accordion/Accordion.tsx +13 -9
  85. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +276 -27
  86. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  87. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +21 -5
  88. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +52 -31
  89. package/src/components/Breadcrumbs/Breadcrumbs.tsx +8 -7
  90. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
  91. package/src/components/Button/Button.stories.mdx +87 -23
  92. package/src/components/Button/Button.test.tsx +25 -0
  93. package/src/components/Button/Button.tsx +18 -7
  94. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  95. package/src/components/Card/Card.stories.mdx +287 -194
  96. package/src/components/Card/Card.test.tsx +102 -0
  97. package/src/components/Card/Card.tsx +73 -32
  98. package/src/components/Card/__snapshots__/Card.test.tsx.snap +195 -35
  99. package/src/components/Chakra/Grid.stories.mdx +4 -4
  100. package/src/components/Checkbox/Checkbox.stories.mdx +62 -10
  101. package/src/components/Checkbox/Checkbox.test.tsx +32 -9
  102. package/src/components/Checkbox/Checkbox.tsx +20 -15
  103. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +134 -7
  104. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +65 -17
  105. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +137 -81
  106. package/src/components/CheckboxGroup/CheckboxGroup.tsx +31 -21
  107. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +332 -97
  108. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  109. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  110. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  111. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  112. package/src/components/DatePicker/DatePicker.test.tsx +89 -13
  113. package/src/components/DatePicker/DatePicker.tsx +62 -56
  114. package/src/components/DatePicker/_DatePicker.scss +71 -13
  115. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  116. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  117. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  118. package/src/components/Fieldset/Fieldset.tsx +35 -30
  119. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  120. package/src/components/Form/Form.stories.mdx +72 -39
  121. package/src/components/Form/Form.test.tsx +58 -15
  122. package/src/components/Form/Form.tsx +89 -67
  123. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  124. package/src/components/Grid/GridTypes.tsx +7 -7
  125. package/src/components/Grid/SimpleGrid.stories.mdx +34 -6
  126. package/src/components/Grid/SimpleGrid.test.tsx +9 -0
  127. package/src/components/Grid/SimpleGrid.tsx +29 -20
  128. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  129. package/src/components/Heading/Heading.stories.mdx +36 -3
  130. package/src/components/Heading/Heading.test.tsx +10 -0
  131. package/src/components/Heading/Heading.tsx +56 -50
  132. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +26 -7
  133. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  134. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  135. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  136. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  137. package/src/components/Hero/Hero.stories.mdx +125 -95
  138. package/src/components/Hero/Hero.test.tsx +33 -0
  139. package/src/components/Hero/Hero.tsx +135 -126
  140. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  141. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  142. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -19
  143. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -26
  144. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  145. package/src/components/Icons/Icon.stories.mdx +31 -6
  146. package/src/components/Icons/Icon.test.tsx +38 -0
  147. package/src/components/Icons/Icon.tsx +93 -76
  148. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  149. package/src/components/Image/Image.stories.mdx +29 -5
  150. package/src/components/Image/Image.test.tsx +8 -0
  151. package/src/components/Image/Image.tsx +38 -26
  152. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  153. package/src/components/Label/Label.stories.mdx +42 -20
  154. package/src/components/Label/Label.test.tsx +42 -17
  155. package/src/components/Label/Label.tsx +22 -13
  156. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  157. package/src/components/Link/Link.stories.mdx +25 -1
  158. package/src/components/Link/Link.test.tsx +21 -0
  159. package/src/components/Link/Link.tsx +8 -8
  160. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  161. package/src/components/List/List.stories.mdx +75 -40
  162. package/src/components/List/List.test.tsx +67 -19
  163. package/src/components/List/List.tsx +38 -25
  164. package/src/components/List/ListTypes.tsx +1 -1
  165. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  166. package/src/components/Logo/Logo.stories.mdx +30 -6
  167. package/src/components/Logo/Logo.test.tsx +17 -0
  168. package/src/components/Logo/Logo.tsx +18 -6
  169. package/src/components/Logo/LogoSvgs.tsx +4 -0
  170. package/src/components/Logo/LogoTypes.tsx +2 -0
  171. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  172. package/src/components/Modal/Modal.stories.mdx +13 -0
  173. package/src/components/Notification/Notification.stories.mdx +25 -1
  174. package/src/components/Notification/Notification.test.tsx +23 -0
  175. package/src/components/Notification/Notification.tsx +46 -44
  176. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
  177. package/src/components/Pagination/Pagination.stories.mdx +24 -4
  178. package/src/components/Pagination/Pagination.test.tsx +25 -0
  179. package/src/components/Pagination/Pagination.tsx +6 -6
  180. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
  181. package/src/components/Placeholder/Placeholder.tsx +3 -1
  182. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  183. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +81 -11
  184. package/src/components/ProgressIndicator/ProgressIndicator.tsx +17 -9
  185. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  186. package/src/components/Radio/Radio.stories.mdx +64 -12
  187. package/src/components/Radio/Radio.test.tsx +28 -8
  188. package/src/components/Radio/Radio.tsx +66 -63
  189. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +103 -6
  190. package/src/components/RadioGroup/RadioGroup.stories.mdx +224 -89
  191. package/src/components/RadioGroup/RadioGroup.test.tsx +122 -62
  192. package/src/components/RadioGroup/RadioGroup.tsx +106 -100
  193. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1236 -1020
  194. package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
  195. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
  196. package/src/components/SearchBar/SearchBar.tsx +17 -8
  197. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  198. package/src/components/Select/Select.stories.mdx +128 -49
  199. package/src/components/Select/Select.test.tsx +63 -16
  200. package/src/components/Select/Select.tsx +125 -92
  201. package/src/components/Select/SelectTypes.tsx +5 -0
  202. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  203. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +42 -10
  204. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +8 -0
  205. package/src/components/SkeletonLoader/SkeletonLoader.tsx +76 -72
  206. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  207. package/src/components/Slider/Slider.stories.mdx +91 -42
  208. package/src/components/Slider/Slider.test.tsx +65 -17
  209. package/src/components/Slider/Slider.tsx +26 -19
  210. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  211. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  212. package/src/components/StatusBadge/StatusBadge.test.tsx +16 -0
  213. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  214. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  215. package/src/components/StructuredContent/StructuredContent.stories.mdx +131 -12
  216. package/src/components/StructuredContent/StructuredContent.test.tsx +34 -0
  217. package/src/components/StructuredContent/StructuredContent.tsx +80 -75
  218. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  219. package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
  220. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  221. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  222. package/src/components/StyleGuide/ColorCard.tsx +1 -1
  223. package/src/components/StyleGuide/Colors.stories.mdx +1 -2
  224. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  225. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  226. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  227. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  228. package/src/components/StyleGuide/Typography.stories.mdx +30 -21
  229. package/src/components/Table/Table.stories.mdx +38 -11
  230. package/src/components/Table/Table.test.tsx +15 -0
  231. package/src/components/Table/Table.tsx +7 -7
  232. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  233. package/src/components/Tabs/Tabs.stories.mdx +52 -3
  234. package/src/components/Tabs/Tabs.test.tsx +16 -0
  235. package/src/components/Tabs/Tabs.tsx +10 -6
  236. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  237. package/src/components/Template/Template.stories.mdx +47 -43
  238. package/src/components/Template/Template.test.tsx +33 -0
  239. package/src/components/Template/Template.tsx +65 -60
  240. package/src/components/Template/__snapshots__/Template.test.tsx.snap +191 -20
  241. package/src/components/Text/Text.stories.mdx +20 -1
  242. package/src/components/Text/Text.test.tsx +12 -0
  243. package/src/components/Text/Text.tsx +6 -4
  244. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  245. package/src/components/TextInput/TextInput.stories.mdx +65 -19
  246. package/src/components/TextInput/TextInput.test.tsx +42 -28
  247. package/src/components/TextInput/TextInput.tsx +121 -113
  248. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  249. package/src/components/Toggle/Toggle.stories.mdx +80 -22
  250. package/src/components/Toggle/Toggle.test.tsx +27 -9
  251. package/src/components/Toggle/Toggle.tsx +22 -18
  252. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +128 -5
  253. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  254. package/src/components/VideoPlayer/VideoPlayer.test.tsx +23 -0
  255. package/src/components/VideoPlayer/VideoPlayer.tsx +133 -126
  256. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  257. package/src/docs/Chakra.stories.mdx +50 -9
  258. package/src/docs/Welcome.stories.mdx +160 -41
  259. package/src/hooks/useCarouselStyles.stories.mdx +22 -2
  260. package/src/hooks/useCarouselStyles.ts +3 -2
  261. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  262. package/src/hooks/useNYPLTheme.ts +30 -6
  263. package/src/hooks/useWindowSize.stories.mdx +23 -0
  264. package/src/index.ts +4 -1
  265. package/src/styles/base/_place-holder.scss +1 -1
  266. package/src/theme/components/button.ts +15 -7
  267. package/src/theme/components/card.ts +30 -19
  268. package/src/theme/components/checkbox.ts +10 -8
  269. package/src/theme/components/checkboxGroup.ts +1 -1
  270. package/src/theme/components/componentWrapper.ts +2 -2
  271. package/src/theme/components/customTable.ts +39 -31
  272. package/src/theme/components/fieldset.ts +1 -2
  273. package/src/theme/components/global.ts +25 -20
  274. package/src/theme/components/heading.ts +1 -1
  275. package/src/theme/components/helperErrorText.ts +1 -0
  276. package/src/theme/components/hero.ts +13 -15
  277. package/src/theme/components/label.ts +4 -3
  278. package/src/theme/components/list.ts +73 -66
  279. package/src/theme/components/notification.ts +2 -2
  280. package/src/theme/components/radio.ts +9 -9
  281. package/src/theme/components/radioGroup.ts +1 -1
  282. package/src/theme/components/select.ts +35 -22
  283. package/src/theme/components/skeletonLoader.ts +3 -3
  284. package/src/theme/components/slider.ts +8 -7
  285. package/src/theme/components/statusBadge.ts +2 -2
  286. package/src/theme/components/structuredContent.ts +66 -1
  287. package/src/theme/components/tabs.ts +2 -2
  288. package/src/theme/components/template.ts +9 -9
  289. package/src/theme/components/textInput.ts +13 -12
  290. package/src/theme/components/toggle.ts +17 -10
  291. package/src/theme/components/videoPlayer.ts +1 -1
  292. package/src/theme/foundations/colors.ts +1 -1
  293. package/src/theme/foundations/radii.ts +1 -0
  294. package/src/theme/foundations/spacing.ts +70 -22
  295. package/src/theme/foundations/typography.ts +2 -2
  296. package/src/utils/componentCategories.ts +1 -2
  297. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  298. package/dist/helpers/generateUUID.d.ts +0 -1
  299. package/src/helpers/generateUUID.tsx +0 -5
@@ -1,5 +1,5 @@
1
1
  import {
2
- Box,
2
+ chakra,
3
3
  Checkbox as ChakraCheckbox,
4
4
  Icon,
5
5
  useMultiStyleConfig,
@@ -9,15 +9,13 @@ import * as React from "react";
9
9
  import HelperErrorText, {
10
10
  HelperErrorTextType,
11
11
  } from "../HelperErrorText/HelperErrorText";
12
- import generateUUID from "../../helpers/generateUUID";
13
-
14
12
  export interface CheckboxProps {
15
13
  /** className you can add in addition to 'input' */
16
14
  className?: string;
17
15
  /** Optional string to populate the HelperErrorText for standard state */
18
16
  helperText?: HelperErrorTextType;
19
17
  /** ID that other components can cross reference for accessibility purposes */
20
- id?: string;
18
+ id: string;
21
19
  /** Optional string to populate the HelperErrorText for the error state
22
20
  * when `isInvalid` is true. */
23
21
  invalidText?: HelperErrorTextType;
@@ -73,13 +71,13 @@ function CheckboxIcon(props) {
73
71
  );
74
72
  }
75
73
 
76
- const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(
77
- (props, ref?) => {
74
+ export const Checkbox = chakra(
75
+ React.forwardRef<HTMLInputElement, CheckboxProps>((props, ref?) => {
78
76
  const {
79
77
  className,
80
78
  invalidText,
81
79
  helperText,
82
- id = generateUUID(),
80
+ id,
83
81
  isChecked,
84
82
  isDisabled = false,
85
83
  isIndeterminate = false,
@@ -90,6 +88,7 @@ const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(
90
88
  showHelperInvalidText = true,
91
89
  showLabel = true,
92
90
  value,
91
+ ...rest
93
92
  } = props;
94
93
  const styles = useMultiStyleConfig("Checkbox", {});
95
94
  const footnote: HelperErrorTextType = isInvalid ? invalidText : helperText;
@@ -98,6 +97,12 @@ const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(
98
97
  // Use Chakra's default indeterminate icon.
99
98
  const icon = !isIndeterminate ? <CheckboxIcon /> : undefined;
100
99
 
100
+ if (!id) {
101
+ console.warn(
102
+ "NYPL Reservoir Checkbox: This component's required `id` prop was not passed."
103
+ );
104
+ }
105
+
101
106
  if (!showLabel) {
102
107
  if (typeof labelText !== "string") {
103
108
  console.warn(
@@ -134,21 +139,21 @@ const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(
134
139
  alignItems="flex-start"
135
140
  __css={styles}
136
141
  {...ariaAttributes}
142
+ {...rest}
137
143
  >
138
144
  {showLabel && labelText}
139
145
  </ChakraCheckbox>
140
146
  {footnote && showHelperInvalidText && (
141
- <Box __css={styles.helper}>
142
- <HelperErrorText
143
- id={`${id}-helperText`}
144
- isInvalid={isInvalid}
145
- text={footnote}
146
- />
147
- </Box>
147
+ <HelperErrorText
148
+ additionalStyles={styles.helperErrorText}
149
+ id={`${id}-helperText`}
150
+ isInvalid={isInvalid}
151
+ text={footnote}
152
+ />
148
153
  )}
149
154
  </>
150
155
  );
151
- }
156
+ })
152
157
  );
153
158
 
154
159
  export default Checkbox;
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`Checkbox Renders the UI snapshot correctly 1`] = `
4
4
  <label
5
- className="chakra-checkbox css-g8du1g"
5
+ className="chakra-checkbox css-1cgy6rg"
6
6
  onClick={[Function]}
7
7
  >
8
8
  <input
@@ -65,7 +65,7 @@ exports[`Checkbox Renders the UI snapshot correctly 1`] = `
65
65
 
66
66
  exports[`Checkbox Renders the UI snapshot correctly 2`] = `
67
67
  <label
68
- className="chakra-checkbox css-g8du1g"
68
+ className="chakra-checkbox css-1cgy6rg"
69
69
  data-checked=""
70
70
  onClick={[Function]}
71
71
  >
@@ -131,7 +131,7 @@ exports[`Checkbox Renders the UI snapshot correctly 2`] = `
131
131
 
132
132
  exports[`Checkbox Renders the UI snapshot correctly 3`] = `
133
133
  <label
134
- className="chakra-checkbox css-g8du1g"
134
+ className="chakra-checkbox css-1cgy6rg"
135
135
  data-checked=""
136
136
  onClick={[Function]}
137
137
  >
@@ -219,7 +219,7 @@ exports[`Checkbox Renders the UI snapshot correctly 3`] = `
219
219
 
220
220
  exports[`Checkbox Renders the UI snapshot correctly 4`] = `
221
221
  <label
222
- className="chakra-checkbox css-g8du1g"
222
+ className="chakra-checkbox css-1cgy6rg"
223
223
  onClick={[Function]}
224
224
  >
225
225
  <input
@@ -282,7 +282,7 @@ exports[`Checkbox Renders the UI snapshot correctly 4`] = `
282
282
 
283
283
  exports[`Checkbox Renders the UI snapshot correctly 5`] = `
284
284
  <label
285
- className="chakra-checkbox css-g8du1g"
285
+ className="chakra-checkbox css-1cgy6rg"
286
286
  data-invalid=""
287
287
  onClick={[Function]}
288
288
  >
@@ -348,7 +348,7 @@ exports[`Checkbox Renders the UI snapshot correctly 5`] = `
348
348
 
349
349
  exports[`Checkbox Renders the UI snapshot correctly 6`] = `
350
350
  <label
351
- className="chakra-checkbox css-g8du1g"
351
+ className="chakra-checkbox css-1cgy6rg"
352
352
  data-disabled=""
353
353
  onClick={[Function]}
354
354
  >
@@ -414,7 +414,7 @@ exports[`Checkbox Renders the UI snapshot correctly 6`] = `
414
414
 
415
415
  exports[`Checkbox Renders the UI snapshot correctly 7`] = `
416
416
  <label
417
- className="chakra-checkbox css-g8du1g"
417
+ className="chakra-checkbox css-1cgy6rg"
418
418
  onClick={[Function]}
419
419
  >
420
420
  <input
@@ -487,3 +487,130 @@ exports[`Checkbox Renders the UI snapshot correctly 7`] = `
487
487
  </span>
488
488
  </label>
489
489
  `;
490
+
491
+ exports[`Checkbox Renders the UI snapshot correctly 8`] = `
492
+ <label
493
+ className="chakra-checkbox css-vrx9r6"
494
+ onClick={[Function]}
495
+ >
496
+ <input
497
+ aria-disabled={false}
498
+ aria-invalid={false}
499
+ checked={false}
500
+ className="chakra-checkbox__input"
501
+ disabled={false}
502
+ id="checkbox-chakra"
503
+ name="default"
504
+ onBlur={[Function]}
505
+ onChange={[Function]}
506
+ onFocus={[Function]}
507
+ onKeyDown={[Function]}
508
+ onKeyUp={[Function]}
509
+ required={false}
510
+ style={
511
+ Object {
512
+ "border": "0px",
513
+ "clip": "rect(0px, 0px, 0px, 0px)",
514
+ "height": "1px",
515
+ "margin": "-1px",
516
+ "overflow": "hidden",
517
+ "padding": "0px",
518
+ "position": "absolute",
519
+ "whiteSpace": "nowrap",
520
+ "width": "1px",
521
+ }
522
+ }
523
+ type="checkbox"
524
+ />
525
+ <span
526
+ aria-hidden={true}
527
+ className="chakra-checkbox__control css-dnty2r"
528
+ onMouseDown={[Function]}
529
+ onMouseEnter={[Function]}
530
+ onMouseLeave={[Function]}
531
+ onMouseUp={[Function]}
532
+ >
533
+ <svg
534
+ className="chakra-icon css-1vfv7ic"
535
+ focusable={false}
536
+ viewBox="0 0 24 24"
537
+ >
538
+ <path
539
+ d="M8.795 15.875l-4.17-4.17-1.42 1.41 5.59 5.59 12-12-1.41-1.41-10.59 10.58z"
540
+ fill="currentColor"
541
+ />
542
+ </svg>
543
+ </span>
544
+ <span
545
+ className="chakra-checkbox__label css-1oeb2oe"
546
+ onMouseDown={[Function]}
547
+ onTouchStart={[Function]}
548
+ >
549
+ Test Label
550
+ </span>
551
+ </label>
552
+ `;
553
+
554
+ exports[`Checkbox Renders the UI snapshot correctly 9`] = `
555
+ <label
556
+ className="chakra-checkbox css-1cgy6rg"
557
+ data-testid="testid"
558
+ onClick={[Function]}
559
+ >
560
+ <input
561
+ aria-disabled={false}
562
+ aria-invalid={false}
563
+ checked={false}
564
+ className="chakra-checkbox__input"
565
+ disabled={false}
566
+ id="checkbox-props"
567
+ name="default"
568
+ onBlur={[Function]}
569
+ onChange={[Function]}
570
+ onFocus={[Function]}
571
+ onKeyDown={[Function]}
572
+ onKeyUp={[Function]}
573
+ required={false}
574
+ style={
575
+ Object {
576
+ "border": "0px",
577
+ "clip": "rect(0px, 0px, 0px, 0px)",
578
+ "height": "1px",
579
+ "margin": "-1px",
580
+ "overflow": "hidden",
581
+ "padding": "0px",
582
+ "position": "absolute",
583
+ "whiteSpace": "nowrap",
584
+ "width": "1px",
585
+ }
586
+ }
587
+ type="checkbox"
588
+ />
589
+ <span
590
+ aria-hidden={true}
591
+ className="chakra-checkbox__control css-dnty2r"
592
+ onMouseDown={[Function]}
593
+ onMouseEnter={[Function]}
594
+ onMouseLeave={[Function]}
595
+ onMouseUp={[Function]}
596
+ >
597
+ <svg
598
+ className="chakra-icon css-1vfv7ic"
599
+ focusable={false}
600
+ viewBox="0 0 24 24"
601
+ >
602
+ <path
603
+ d="M8.795 15.875l-4.17-4.17-1.42 1.41 5.59 5.59 12-12-1.41-1.41-10.59 10.58z"
604
+ fill="currentColor"
605
+ />
606
+ </svg>
607
+ </span>
608
+ <span
609
+ className="chakra-checkbox__label css-1oeb2oe"
610
+ onMouseDown={[Function]}
611
+ onTouchStart={[Function]}
612
+ >
613
+ Test Label
614
+ </span>
615
+ </label>
616
+ `;
@@ -52,9 +52,6 @@ export const enumValues = getStorybookEnumValues(LayoutTypes, "LayoutTypes");
52
52
  },
53
53
  name: { control: false },
54
54
  onChange: { control: false },
55
- optReqFlag: {
56
- table: { defaultValue: { summary: true } },
57
- },
58
55
  ref: { table: { disable: true } },
59
56
  showHelperInvalidText: {
60
57
  table: { defaultValue: { summary: true } },
@@ -62,6 +59,9 @@ export const enumValues = getStorybookEnumValues(LayoutTypes, "LayoutTypes");
62
59
  showLabel: {
63
60
  table: { defaultValue: { summary: true } },
64
61
  },
62
+ showRequiredLabel: {
63
+ table: { defaultValue: { summary: true } },
64
+ },
65
65
  }}
66
66
  />
67
67
 
@@ -70,10 +70,27 @@ export const enumValues = getStorybookEnumValues(LayoutTypes, "LayoutTypes");
70
70
  | Component Version | DS Version |
71
71
  | ----------------- | ---------- |
72
72
  | Added | `0.25.1` |
73
- | Latest | `0.25.13` |
73
+ | Latest | `0.26.0` |
74
+
75
+ ## Table of Contents
76
+
77
+ - [Overview](#overview)
78
+ - [Component Props](#component-props)
79
+ - [Accessibility](#accessibility)
80
+ - [Layout Patterns](#layout-patterns)
81
+ - [Errored](#errored)
82
+ - [Required](#required)
83
+ - [Disabled](#disabled)
84
+ - [With JSX Element labels](#with-jsx-element-labels)
85
+ - [Indeterminate Example](#indeterminate-example)
86
+ - [Getting Checkbox Input Values](#getting-checkbox-input-values)
87
+
88
+ ## Overview
74
89
 
75
90
  <Description of={CheckboxGroup} />
76
91
 
92
+ ## Component Props
93
+
77
94
  <Canvas withToolbar>
78
95
  <Story
79
96
  name="CheckboxGroup"
@@ -90,9 +107,9 @@ export const enumValues = getStorybookEnumValues(LayoutTypes, "LayoutTypes");
90
107
  layout: "LayoutTypes.Column",
91
108
  name: "checkbox-story",
92
109
  onChange: undefined,
93
- optReqFlag: true,
94
110
  showHelperInvalidText: true,
95
111
  showLabel: true,
112
+ showRequiredLabel: true,
96
113
  }}
97
114
  >
98
115
  {(args) => (
@@ -108,6 +125,16 @@ export const enumValues = getStorybookEnumValues(LayoutTypes, "LayoutTypes");
108
125
 
109
126
  <ArgsTable story="CheckboxGroup" />
110
127
 
128
+ ## Accessibility
129
+
130
+ The `CheckboxGroup` renders a group of `Checkbox` components that are wrapped in
131
+ a `<fieldset>` element. The `<fieldset>` element renders a `<legend>` element that
132
+ can be visually hidden through the `showLabel` prop.
133
+
134
+ Resources:
135
+
136
+ - [Chakra UI Checkbox](https://chakra-ui.com/docs/components/form/checkbox)
137
+
111
138
  ## Layout Patterns
112
139
 
113
140
  Use the `layout` prop to set the `Checkbox` buttons to display in a column or in
@@ -116,9 +143,9 @@ a row.
116
143
  <Canvas>
117
144
  <DSProvider>
118
145
  <CheckboxGroup
146
+ id="column"
119
147
  labelText="Column (default)"
120
148
  name="column-example"
121
- optReqFlag={false}
122
149
  >
123
150
  <Checkbox value="2" labelText="Checkbox 2" />
124
151
  <Checkbox value="3" labelText="Checkbox 3" />
@@ -127,10 +154,10 @@ a row.
127
154
  </CheckboxGroup>
128
155
  <br />
129
156
  <CheckboxGroup
157
+ id="row"
130
158
  labelText="Row"
131
159
  name="row-example"
132
160
  layout={LayoutTypes.Row}
133
- optReqFlag={false}
134
161
  >
135
162
  <Checkbox value="2" labelText="Checkbox 2" />
136
163
  <Checkbox value="3" labelText="Checkbox 3" />
@@ -145,11 +172,30 @@ a row.
145
172
  <Canvas>
146
173
  <DSProvider>
147
174
  <CheckboxGroup
148
- labelText="Errored Checkbox Group"
149
- name="errored-example"
150
- optReqFlag={false}
175
+ id="errored"
151
176
  invalidText="Error message for the full group."
152
177
  isInvalid
178
+ labelText="Errored Checkbox Group"
179
+ name="errored-example"
180
+ >
181
+ <Checkbox value="2" labelText="Checkbox 2" />
182
+ <Checkbox value="3" labelText="Checkbox 3" />
183
+ <Checkbox value="4" labelText="Checkbox 4" />
184
+ <Checkbox value="5" labelText="Checkbox 5" />
185
+ </CheckboxGroup>
186
+ </DSProvider>
187
+ </Canvas>
188
+
189
+ ## Required
190
+
191
+ <Canvas>
192
+ <DSProvider>
193
+ <CheckboxGroup
194
+ id="required"
195
+ isRequired
196
+ labelText="Required Checkbox Group"
197
+ name="required-example"
198
+ helperText="The reason for being required."
153
199
  >
154
200
  <Checkbox value="2" labelText="Checkbox 2" />
155
201
  <Checkbox value="3" labelText="Checkbox 3" />
@@ -164,11 +210,11 @@ a row.
164
210
  <Canvas>
165
211
  <DSProvider>
166
212
  <CheckboxGroup
213
+ id="disabled"
214
+ isDisabled
167
215
  labelText="Disabled Checkbox Group"
168
216
  name="disabled-example"
169
- optReqFlag={false}
170
217
  helperText="The reason for being disabled."
171
- isDisabled
172
218
  >
173
219
  <Checkbox value="2" labelText="Checkbox 2" />
174
220
  <Checkbox value="3" labelText="Checkbox 3" />
@@ -191,10 +237,10 @@ order to make this work, pass in the `isFullWidth` prop.
191
237
  <Canvas>
192
238
  <DSProvider>
193
239
  <CheckboxGroup
240
+ id="full-width"
241
+ isFullWidth
194
242
  labelText="Checkbox Group"
195
243
  name="checkbox-example"
196
- optReqFlag={false}
197
- isFullWidth
198
244
  >
199
245
  <Checkbox
200
246
  labelText={
@@ -250,8 +296,8 @@ children are checked, the parent will be in the "checked" state.
250
296
  The following working example can be used in your application to keep track of
251
297
  the checked and indeterminate states - taken and modified from Chakra's
252
298
  [Checkbox](https://chakra-ui.com/docs/form/checkbox#indeterminate) documentation.
253
- Note that this example is specifically using NYPL DS `Checkbox` and
254
- `CheckboxGroup` components.
299
+ Note that this example is specifically using Reservoir Design System (DS)
300
+ `Checkbox` and `CheckboxGroup` components.
255
301
 
256
302
  ```tsx
257
303
  export function IndeterminateExample() {
@@ -260,6 +306,7 @@ export function IndeterminateExample() {
260
306
  const isIndeterminate = checkedItems.some(Boolean) && !allChecked;
261
307
  return (
262
308
  <CheckboxGroup
309
+ id="indeterminate"
263
310
  labelText="Indeterminate Example"
264
311
  name="indeterminate-example"
265
312
  >
@@ -290,6 +337,7 @@ export function IndeterminateExample() {
290
337
  const isIndeterminate = checkedItems.some(Boolean) && !allChecked;
291
338
  return (
292
339
  <CheckboxGroup
340
+ id="indeterminate"
293
341
  labelText="Indeterminate Example"
294
342
  name="indeterminate-example"
295
343
  >
@@ -319,7 +367,7 @@ export function IndeterminateExample() {
319
367
  </DSProvider>
320
368
  </Canvas>
321
369
 
322
- ## Getting Checkbox Data Values
370
+ ## Getting Checkbox Input Values
323
371
 
324
372
  ### Controlled Component using `name`, `defaultValue`, and `onChange` props
325
373