@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
@@ -63,7 +63,7 @@ describe("Checkbox", () => {
63
63
  id="inputID"
64
64
  labelText="Test Label"
65
65
  helperText="This is the helper text."
66
- errorText="This is the error text :("
66
+ invalidText="This is the error text :("
67
67
  />
68
68
  );
69
69
  expect(screen.getByText("This is the helper text.")).toBeVisible();
@@ -77,7 +77,7 @@ describe("Checkbox", () => {
77
77
  labelText="Test Label"
78
78
  isInvalid
79
79
  helperText="This is the helper text."
80
- errorText="This is the error text :("
80
+ invalidText="This is the error text :("
81
81
  />
82
82
  );
83
83
  expect(screen.getByText("This is the error text :(")).toBeVisible();
@@ -109,6 +109,22 @@ describe("Checkbox", () => {
109
109
  expect(screen.getByRole("checkbox")).toHaveAttribute("checked");
110
110
  });
111
111
 
112
+ it("Sets the 'indeterminate' state", () => {
113
+ const { container, rerender } = render(
114
+ <Checkbox id="inputID" labelText="Test Label" isChecked />
115
+ );
116
+ expect(
117
+ container.querySelector(".chakra-checkbox__control")
118
+ ).not.toHaveAttribute("data-indeterminate");
119
+
120
+ rerender(
121
+ <Checkbox id="inputID" labelText="Test Label" isChecked isIndeterminate />
122
+ );
123
+ expect(
124
+ container.querySelector(".chakra-checkbox__control")
125
+ ).toHaveAttribute("data-indeterminate");
126
+ });
127
+
112
128
  it("Sets the 'disabled' attribute", () => {
113
129
  render(
114
130
  <Checkbox
@@ -139,10 +155,28 @@ describe("Checkbox", () => {
139
155
  id="inputID-attributes"
140
156
  labelText="onChange test"
141
157
  showLabel={true}
158
+ invalidText="This is the error text!"
159
+ isInvalid
160
+ />
161
+ );
162
+ expect(screen.getByRole("checkbox")).toHaveAttribute("aria-invalid");
163
+ expect(screen.getByText("This is the error text!")).toBeInTheDocument();
164
+ });
165
+
166
+ it("does not render the error text when 'isInvalid' is true but 'showHelperInvalidText' is false", () => {
167
+ render(
168
+ <Checkbox
169
+ id="inputID-attributes"
170
+ labelText="onChange test"
171
+ showLabel={true}
172
+ showHelperInvalidText={false}
142
173
  isInvalid
143
174
  />
144
175
  );
145
176
  expect(screen.getByRole("checkbox")).toHaveAttribute("aria-invalid");
177
+ expect(
178
+ screen.queryByText("This is the error text!")
179
+ ).not.toBeInTheDocument();
146
180
  });
147
181
 
148
182
  it("Changing the value calls the onChange handler", () => {
@@ -170,6 +204,16 @@ describe("Checkbox", () => {
170
204
  <Checkbox id="checkbox-checked" labelText="Test Label" isChecked />
171
205
  )
172
206
  .toJSON();
207
+ const isIndeterminate = renderer
208
+ .create(
209
+ <Checkbox
210
+ id="checkbox-checked"
211
+ labelText="Test Label"
212
+ isChecked
213
+ isIndeterminate
214
+ />
215
+ )
216
+ .toJSON();
173
217
  const isRequired = renderer
174
218
  .create(
175
219
  <Checkbox id="checkbox-required" labelText="Test Label" isRequired />
@@ -188,6 +232,7 @@ describe("Checkbox", () => {
188
232
 
189
233
  expect(primary).toMatchSnapshot();
190
234
  expect(isChecked).toMatchSnapshot();
235
+ expect(isIndeterminate).toMatchSnapshot();
191
236
  expect(isRequired).toMatchSnapshot();
192
237
  expect(isInvalid).toMatchSnapshot();
193
238
  expect(isDisabled).toMatchSnapshot();
@@ -11,36 +11,40 @@ import generateUUID from "../../helpers/generateUUID";
11
11
  export interface CheckboxProps {
12
12
  /** className you can add in addition to 'input' */
13
13
  className?: string;
14
- /** Optional string to populate the HelperErrorText for the error state
15
- * when `isInvalid` is true.
16
- */
17
- errorText?: string;
18
14
  /** Optional string to populate the HelperErrorText for standard state */
19
15
  helperText?: string;
20
16
  /** ID that other components can cross reference for accessibility purposes */
21
17
  id?: string;
22
- /** When using the Checkbox as a "controlled" form element, you can specify the
23
- * Checkbox's checked state using this prop.
18
+ /** Optional string to populate the HelperErrorText for the error state
19
+ * when `isInvalid` is true. */
20
+ invalidText?: string;
21
+ /** When using the Checkbox as a "controlled" form element, you can specify
22
+ * the Checkbox's checked state using this prop.
24
23
  * Learn more about controlled and uncontrolled form fields:
25
24
  * https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ */
26
25
  isChecked?: boolean;
27
26
  /** Adds the 'disabled' and `aria-disabled` attributes to the input when true.
28
- * This also makes the text italic and color scheme gray.
29
- */
27
+ * This also makes the text italic and color scheme gray. */
30
28
  isDisabled?: boolean;
29
+ /** Adds the indeterminate state to the `Checkbox`. */
30
+ isIndeterminate?: boolean;
31
31
  /** Adds the 'aria-invalid' attribute to the input when true. This also makes
32
- * the color theme "NYPL error" red for the button and text.
33
- */
32
+ * the color theme "NYPL error" red for the button and text. */
34
33
  isInvalid?: boolean;
35
34
  /** Adds the 'required' attribute to the input when true. */
36
35
  isRequired?: boolean;
37
- /** The checkbox's label. This will serve as the text content for a `<label>` element if `showlabel` is true, or an "aria-label" if `showLabel` is false. */
36
+ /** The checkbox's label. This will serve as the text content for a `<label>`
37
+ * element if `showlabel` is true, or an "aria-label" if `showLabel` is false. */
38
38
  labelText: string;
39
- /** The name prop indicates into which group of checkboxes this checkbox belongs. If none is specified, 'default' will be used */
39
+ /** The name prop indicates into which group of checkboxes this checkbox
40
+ * belongs. If none is specified, 'default' will be used */
40
41
  name?: string;
41
42
  /** The action to perform on the `<input>`'s onChange function */
42
43
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
43
- /** Offers the ability to show the checkbox's label onscreen or hide it. Refer to the `labelText` property for more information. */
44
+ /** Offers the ability to hide the helper/invalid text. */
45
+ showHelperInvalidText?: boolean;
46
+ /** Offers the ability to show the checkbox's label onscreen or hide it.
47
+ * Refer to the `labelText` property for more information. */
44
48
  showLabel?: boolean;
45
49
  /** Populates the value of the input */
46
50
  value?: string;
@@ -51,15 +55,17 @@ export const onChangeDefault = () => {
51
55
  };
52
56
 
53
57
  function CheckboxIcon(props) {
54
- const { isIndeterminate, ...rest } = props;
55
-
56
- const d = isIndeterminate
57
- ? "M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm0,19a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,12,19Zm1.6-6.08a1,1,0,0,0-.6.917,1,1,0,1,1-2,0,3,3,0,0,1,1.8-2.75A2,2,0,1,0,10,9.255a1,1,0,1,1-2,0,4,4,0,1,1,5.6,3.666Z"
58
- : "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";
58
+ // We don't need the `isIndeterminate` or `isChecked` props but it
59
+ // causes rendering issues on the SVG element, so we remove them
60
+ // before passing all the props to the `Icon` component.
61
+ const { isIndeterminate, isChecked, ...rest } = props;
59
62
 
60
63
  return (
61
64
  <Icon viewBox="0 0 24 24" {...rest}>
62
- <path fill="currentColor" d={d} />
65
+ <path
66
+ fill="currentColor"
67
+ 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"
68
+ />
63
69
  </Icon>
64
70
  );
65
71
  }
@@ -68,64 +74,63 @@ const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(
68
74
  (props, ref?) => {
69
75
  const {
70
76
  className,
71
- errorText,
77
+ invalidText,
72
78
  helperText,
73
- id,
79
+ id = generateUUID(),
74
80
  isChecked,
75
81
  isDisabled = false,
82
+ isIndeterminate = false,
76
83
  isInvalid = false,
77
84
  isRequired = false,
78
85
  labelText,
79
86
  name,
87
+ showHelperInvalidText = true,
80
88
  showLabel = true,
81
89
  value,
82
90
  } = props;
83
-
84
91
  const styles = useMultiStyleConfig("Checkbox", {});
85
- const footnote = isInvalid ? errorText : helperText;
86
- const attributes = {};
87
- const checkboxID = id || generateUUID();
92
+ const footnote = isInvalid ? invalidText : helperText;
93
+ const ariaAttributes = {};
88
94
  const onChange = props.onChange || onChangeDefault;
95
+ // Use Chakra's default indeterminate icon.
96
+ const icon = !isIndeterminate ? <CheckboxIcon /> : undefined;
89
97
 
90
98
  if (!showLabel) {
91
- attributes["aria-label"] =
99
+ ariaAttributes["aria-label"] =
92
100
  labelText && footnote ? `${labelText} - ${footnote}` : labelText;
93
101
  } else {
94
- if (footnote) attributes["aria-describedby"] = `${checkboxID}-helperText`;
102
+ if (footnote) ariaAttributes["aria-describedby"] = `${id}-helperText`;
95
103
  }
96
104
 
97
105
  return (
98
106
  <>
99
107
  <ChakraCheckbox
100
- id={checkboxID}
108
+ id={id}
101
109
  className={className}
102
110
  name={name || "default"}
103
111
  isDisabled={isDisabled}
104
112
  isInvalid={isInvalid}
105
113
  isRequired={isRequired}
114
+ isIndeterminate={isIndeterminate}
106
115
  ref={ref}
107
116
  value={value}
108
117
  {...(isChecked !== undefined
109
118
  ? {
110
- isChecked: isChecked,
111
- onChange: onChange,
119
+ isChecked,
120
+ onChange,
112
121
  }
113
122
  : {
114
123
  defaultIsChecked: false,
115
124
  })}
116
- icon={<CheckboxIcon />}
117
- //iconColor="ui.focus"
125
+ icon={icon}
118
126
  __css={styles}
119
- {...attributes}
127
+ {...ariaAttributes}
120
128
  >
121
129
  {showLabel && labelText}
122
130
  </ChakraCheckbox>
123
- {footnote && showLabel && (
124
- <Box __css={styles.helper} aria-disabled={isDisabled}>
125
- <HelperErrorText
126
- isError={isInvalid}
127
- id={`${checkboxID}-helperText`}
128
- >
131
+ {footnote && showHelperInvalidText && (
132
+ <Box __css={styles.helper}>
133
+ <HelperErrorText isInvalid={isInvalid} id={`${id}-helperText`}>
129
134
  {footnote}
130
135
  </HelperErrorText>
131
136
  </Box>
@@ -135,6 +140,4 @@ const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(
135
140
  }
136
141
  );
137
142
 
138
- Checkbox.displayName = "Checkbox";
139
-
140
143
  export default Checkbox;
@@ -45,7 +45,6 @@ exports[`Checkbox Renders the UI snapshot correctly 1`] = `
45
45
  <svg
46
46
  className="chakra-icon css-1vfv7ic"
47
47
  focusable={false}
48
- isChecked={false}
49
48
  viewBox="0 0 24 24"
50
49
  >
51
50
  <path
@@ -67,6 +66,7 @@ exports[`Checkbox Renders the UI snapshot correctly 1`] = `
67
66
  exports[`Checkbox Renders the UI snapshot correctly 2`] = `
68
67
  <label
69
68
  className="chakra-checkbox css-1uiwwan"
69
+ data-checked=""
70
70
  onClick={[Function]}
71
71
  >
72
72
  <input
@@ -110,7 +110,6 @@ exports[`Checkbox Renders the UI snapshot correctly 2`] = `
110
110
  <svg
111
111
  className="chakra-icon css-oi1lnb"
112
112
  focusable={false}
113
- isChecked={true}
114
113
  viewBox="0 0 24 24"
115
114
  >
116
115
  <path
@@ -131,6 +130,94 @@ exports[`Checkbox Renders the UI snapshot correctly 2`] = `
131
130
  `;
132
131
 
133
132
  exports[`Checkbox Renders the UI snapshot correctly 3`] = `
133
+ <label
134
+ className="chakra-checkbox css-1uiwwan"
135
+ data-checked=""
136
+ onClick={[Function]}
137
+ >
138
+ <input
139
+ aria-disabled={false}
140
+ aria-invalid={false}
141
+ checked={true}
142
+ className="chakra-checkbox__input"
143
+ disabled={false}
144
+ id="checkbox-checked"
145
+ name="default"
146
+ onBlur={[Function]}
147
+ onChange={[Function]}
148
+ onFocus={[Function]}
149
+ onKeyDown={[Function]}
150
+ onKeyUp={[Function]}
151
+ required={false}
152
+ style={
153
+ Object {
154
+ "border": "0px",
155
+ "clip": "rect(0px, 0px, 0px, 0px)",
156
+ "height": "1px",
157
+ "margin": "-1px",
158
+ "overflow": "hidden",
159
+ "padding": "0px",
160
+ "position": "absolute",
161
+ "whiteSpace": "nowrap",
162
+ "width": "1px",
163
+ }
164
+ }
165
+ type="checkbox"
166
+ />
167
+ <span
168
+ aria-hidden={true}
169
+ className="chakra-checkbox__control css-dnty2r"
170
+ data-checked=""
171
+ data-indeterminate=""
172
+ onMouseDown={[Function]}
173
+ onMouseEnter={[Function]}
174
+ onMouseLeave={[Function]}
175
+ onMouseUp={[Function]}
176
+ >
177
+ <div
178
+ style={
179
+ Object {
180
+ "alignItems": "center",
181
+ "display": "flex",
182
+ "height": "100%",
183
+ "justifyContent": "center",
184
+ "transform": "none",
185
+ }
186
+ }
187
+ >
188
+ <svg
189
+ className="css-o8vbdw"
190
+ style={
191
+ Object {
192
+ "opacity": 1,
193
+ "stroke": "currentColor",
194
+ "strokeWidth": 4,
195
+ "transform": "none",
196
+ }
197
+ }
198
+ viewBox="0 0 24 24"
199
+ >
200
+ <line
201
+ x1="21"
202
+ x2="3"
203
+ y1="12"
204
+ y2="12"
205
+ />
206
+ </svg>
207
+ </div>
208
+ </span>
209
+ <span
210
+ className="chakra-checkbox__label css-1oeb2oe"
211
+ data-checked=""
212
+ onMouseDown={[Function]}
213
+ onTouchStart={[Function]}
214
+ >
215
+ Test Label
216
+ </span>
217
+ </label>
218
+ `;
219
+
220
+ exports[`Checkbox Renders the UI snapshot correctly 4`] = `
134
221
  <label
135
222
  className="chakra-checkbox css-1uiwwan"
136
223
  onClick={[Function]}
@@ -175,7 +262,6 @@ exports[`Checkbox Renders the UI snapshot correctly 3`] = `
175
262
  <svg
176
263
  className="chakra-icon css-1vfv7ic"
177
264
  focusable={false}
178
- isChecked={false}
179
265
  viewBox="0 0 24 24"
180
266
  >
181
267
  <path
@@ -194,9 +280,10 @@ exports[`Checkbox Renders the UI snapshot correctly 3`] = `
194
280
  </label>
195
281
  `;
196
282
 
197
- exports[`Checkbox Renders the UI snapshot correctly 4`] = `
283
+ exports[`Checkbox Renders the UI snapshot correctly 5`] = `
198
284
  <label
199
285
  className="chakra-checkbox css-1uiwwan"
286
+ data-invalid=""
200
287
  onClick={[Function]}
201
288
  >
202
289
  <input
@@ -240,7 +327,6 @@ exports[`Checkbox Renders the UI snapshot correctly 4`] = `
240
327
  <svg
241
328
  className="chakra-icon css-1vfv7ic"
242
329
  focusable={false}
243
- isChecked={false}
244
330
  viewBox="0 0 24 24"
245
331
  >
246
332
  <path
@@ -260,7 +346,7 @@ exports[`Checkbox Renders the UI snapshot correctly 4`] = `
260
346
  </label>
261
347
  `;
262
348
 
263
- exports[`Checkbox Renders the UI snapshot correctly 5`] = `
349
+ exports[`Checkbox Renders the UI snapshot correctly 6`] = `
264
350
  <label
265
351
  className="chakra-checkbox css-1uiwwan"
266
352
  data-disabled=""
@@ -307,7 +393,6 @@ exports[`Checkbox Renders the UI snapshot correctly 5`] = `
307
393
  <svg
308
394
  className="chakra-icon css-1vfv7ic"
309
395
  focusable={false}
310
- isChecked={false}
311
396
  viewBox="0 0 24 24"
312
397
  >
313
398
  <path