@nypl/design-system-react-components 0.25.7 → 0.25.10

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 (293) hide show
  1. package/CHANGELOG.md +119 -1
  2. package/README.md +1 -1
  3. package/dist/components/Button/Button.d.ts +6 -6
  4. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  5. package/dist/components/Card/Card.d.ts +6 -4
  6. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  7. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  8. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +4 -3
  10. package/dist/components/Fieldset/Fieldset.d.ts +1 -3
  11. package/dist/components/Form/Form.d.ts +15 -14
  12. package/dist/components/Form/FormTypes.d.ts +2 -2
  13. package/dist/components/Heading/Heading.d.ts +7 -3
  14. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  15. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  16. package/dist/components/HorizontalRule/HorizontalRule.d.ts +3 -3
  17. package/dist/components/Icons/Icon.d.ts +4 -4
  18. package/dist/components/Icons/IconSvgs.d.ts +1 -21
  19. package/dist/components/Icons/IconTypes.d.ts +1 -23
  20. package/dist/components/Image/Image.d.ts +11 -3
  21. package/dist/components/Image/ImageTypes.d.ts +3 -1
  22. package/dist/components/Link/LinkTypes.d.ts +1 -0
  23. package/dist/components/Logo/Logo.d.ts +28 -0
  24. package/dist/components/Logo/LogoSvgs.d.ts +18 -0
  25. package/dist/components/Logo/LogoTypes.d.ts +30 -0
  26. package/dist/components/Modal/Modal.d.ts +0 -4
  27. package/dist/components/Notification/Notification.d.ts +4 -2
  28. package/dist/components/Placeholder/Placeholder.d.ts +3 -5
  29. package/dist/components/Radio/Radio.d.ts +6 -5
  30. package/dist/components/RadioGroup/RadioGroup.d.ts +6 -5
  31. package/dist/components/SearchBar/SearchBar.d.ts +15 -7
  32. package/dist/components/Select/Select.d.ts +5 -2
  33. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
  34. package/dist/components/Slider/Slider.d.ts +3 -2
  35. package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
  36. package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
  37. package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
  38. package/dist/components/Table/Table.d.ts +29 -0
  39. package/dist/components/Template/Template.d.ts +30 -6
  40. package/dist/components/Text/Text.d.ts +2 -2
  41. package/dist/components/TextInput/TextInput.d.ts +4 -3
  42. package/dist/components/Toggle/Toggle.d.ts +48 -0
  43. package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
  44. package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
  45. package/dist/design-system-react-components.cjs.development.js +4698 -4405
  46. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  47. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  48. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  49. package/dist/design-system-react-components.esm.js +5862 -5573
  50. package/dist/design-system-react-components.esm.js.map +1 -1
  51. package/dist/index.d.ts +13 -8
  52. package/dist/resources.scss +0 -2
  53. package/dist/styles.css +2 -2
  54. package/dist/theme/components/breadcrumb.d.ts +1 -1
  55. package/dist/theme/components/button.d.ts +0 -12
  56. package/dist/theme/components/card.d.ts +14 -2
  57. package/dist/theme/components/customTable.d.ts +56 -0
  58. package/dist/theme/components/fieldset.d.ts +2 -2
  59. package/dist/theme/components/global.d.ts +1 -1
  60. package/dist/theme/components/heading.d.ts +4 -0
  61. package/dist/theme/components/label.d.ts +1 -1
  62. package/dist/theme/components/link.d.ts +14 -1
  63. package/dist/theme/components/list.d.ts +0 -2
  64. package/dist/theme/components/logo.d.ts +4 -0
  65. package/dist/theme/components/notification.d.ts +8 -4
  66. package/dist/theme/components/searchBar.d.ts +7 -13
  67. package/dist/theme/components/select.d.ts +1 -0
  68. package/dist/theme/components/structuredContent.d.ts +33 -0
  69. package/dist/theme/components/template.d.ts +10 -10
  70. package/dist/theme/components/textInput.d.ts +2 -0
  71. package/dist/theme/components/toggle.d.ts +71 -0
  72. package/dist/theme/foundations/spacing.d.ts +2 -0
  73. package/dist/utils/utils.d.ts +10 -0
  74. package/package.json +40 -37
  75. package/src/__tests__/utils/utils.test.ts +23 -1
  76. package/src/components/Accordion/Accordion.stories.mdx +16 -15
  77. package/src/components/Accordion/Accordion.test.tsx +45 -1
  78. package/src/components/Accordion/Accordion.tsx +20 -8
  79. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
  80. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  81. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  82. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  83. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +43 -13
  84. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +25 -0
  85. package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
  86. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +103 -4
  87. package/src/components/Button/Button.stories.mdx +93 -48
  88. package/src/components/Button/Button.test.tsx +0 -12
  89. package/src/components/Button/Button.tsx +7 -8
  90. package/src/components/Button/ButtonTypes.tsx +0 -1
  91. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  92. package/src/components/Card/Card.stories.mdx +246 -64
  93. package/src/components/Card/Card.test.tsx +45 -22
  94. package/src/components/Card/Card.tsx +30 -14
  95. package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
  96. package/src/components/Chakra/Box.stories.mdx +3 -3
  97. package/src/components/Chakra/Center.stories.mdx +5 -5
  98. package/src/components/Chakra/Flex.stories.mdx +113 -0
  99. package/src/components/Chakra/Grid.stories.mdx +14 -17
  100. package/src/components/Chakra/Stack.stories.mdx +2 -2
  101. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  102. package/src/components/Checkbox/Checkbox.tsx +13 -8
  103. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  104. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  105. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  106. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  107. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  108. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  109. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  110. package/src/components/DatePicker/DatePicker.test.tsx +14 -12
  111. package/src/components/DatePicker/DatePicker.tsx +13 -10
  112. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
  113. package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
  114. package/src/components/Fieldset/Fieldset.tsx +2 -4
  115. package/src/components/Form/Form.stories.mdx +75 -49
  116. package/src/components/Form/Form.test.tsx +92 -3
  117. package/src/components/Form/Form.tsx +28 -23
  118. package/src/components/Form/FormTypes.tsx +2 -2
  119. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
  120. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  121. package/src/components/Heading/Heading.stories.mdx +59 -23
  122. package/src/components/Heading/Heading.test.tsx +82 -18
  123. package/src/components/Heading/Heading.tsx +31 -31
  124. package/src/components/Heading/HeadingTypes.tsx +6 -6
  125. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  126. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  127. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  128. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  129. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  130. package/src/components/Hero/Hero.stories.mdx +72 -53
  131. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +11 -9
  132. package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
  133. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -4
  134. package/src/components/Icons/Icon.stories.mdx +77 -75
  135. package/src/components/Icons/Icon.tsx +4 -5
  136. package/src/components/Icons/IconSvgs.tsx +2 -42
  137. package/src/components/Icons/IconTypes.tsx +1 -24
  138. package/src/components/Image/Image.stories.mdx +214 -104
  139. package/src/components/Image/Image.test.tsx +10 -0
  140. package/src/components/Image/Image.tsx +21 -10
  141. package/src/components/Image/ImageTypes.ts +2 -0
  142. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  143. package/src/components/Label/Label.stories.mdx +21 -20
  144. package/src/components/Link/Link.stories.mdx +103 -53
  145. package/src/components/Link/Link.test.tsx +108 -7
  146. package/src/components/Link/Link.tsx +58 -19
  147. package/src/components/Link/LinkTypes.tsx +1 -0
  148. package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
  149. package/src/components/List/List.stories.mdx +37 -25
  150. package/src/components/List/List.tsx +1 -1
  151. package/src/components/Logo/Logo.stories.mdx +220 -0
  152. package/src/components/Logo/Logo.test.tsx +98 -0
  153. package/src/components/Logo/Logo.tsx +97 -0
  154. package/src/components/Logo/LogoSvgs.tsx +34 -0
  155. package/src/components/Logo/LogoTypes.tsx +32 -0
  156. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  157. package/src/components/Modal/Modal.stories.mdx +20 -5
  158. package/src/components/Modal/Modal.tsx +2 -8
  159. package/src/components/Notification/Notification.stories.mdx +96 -40
  160. package/src/components/Notification/Notification.test.tsx +62 -16
  161. package/src/components/Notification/Notification.tsx +26 -9
  162. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
  163. package/src/components/Pagination/Pagination.stories.mdx +19 -9
  164. package/src/components/Pagination/Pagination.tsx +3 -3
  165. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
  166. package/src/components/Placeholder/Placeholder.tsx +7 -14
  167. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
  168. package/src/components/Radio/Radio.stories.mdx +39 -19
  169. package/src/components/Radio/Radio.tsx +13 -9
  170. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
  171. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  172. package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
  173. package/src/components/RadioGroup/RadioGroup.tsx +97 -94
  174. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
  175. package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
  176. package/src/components/SearchBar/SearchBar.stories.mdx +116 -34
  177. package/src/components/SearchBar/SearchBar.tsx +70 -50
  178. package/src/components/Select/Select.stories.mdx +177 -66
  179. package/src/components/Select/Select.test.tsx +91 -2
  180. package/src/components/Select/Select.tsx +29 -13
  181. package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
  182. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  183. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  184. package/src/components/Slider/Slider.stories.mdx +74 -23
  185. package/src/components/Slider/Slider.test.tsx +35 -0
  186. package/src/components/Slider/Slider.tsx +22 -11
  187. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +67 -30
  188. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  189. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  190. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  191. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  192. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  193. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  194. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  195. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  196. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  197. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  198. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  199. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  200. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  201. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  202. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  203. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  204. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  205. package/src/components/Table/Table.stories.mdx +165 -0
  206. package/src/components/Table/Table.test.tsx +137 -0
  207. package/src/components/Table/Table.tsx +126 -0
  208. package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
  209. package/src/components/Tabs/Tabs.stories.mdx +20 -14
  210. package/src/components/Tabs/Tabs.test.tsx +21 -5
  211. package/src/components/Tabs/Tabs.tsx +33 -18
  212. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
  213. package/src/components/Template/Template.stories.mdx +132 -49
  214. package/src/components/Template/Template.test.tsx +128 -6
  215. package/src/components/Template/Template.tsx +93 -13
  216. package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -0
  217. package/src/components/Text/Text.stories.mdx +33 -11
  218. package/src/components/Text/Text.tsx +2 -2
  219. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  220. package/src/components/TextInput/TextInput.test.tsx +96 -0
  221. package/src/components/TextInput/TextInput.tsx +12 -8
  222. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  223. package/src/components/Toggle/Toggle.stories.mdx +200 -0
  224. package/src/components/Toggle/Toggle.test.tsx +140 -0
  225. package/src/components/Toggle/Toggle.tsx +123 -0
  226. package/src/components/Toggle/ToggleSizes.tsx +4 -0
  227. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
  228. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
  229. package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
  230. package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
  231. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
  232. package/src/docs/Chakra.stories.mdx +5 -8
  233. package/src/docs/Intro.stories.mdx +2 -2
  234. package/src/index.ts +19 -6
  235. package/src/styles/base/_03-base.scss +1 -1
  236. package/src/styles/base/_place-holder.scss +7 -7
  237. package/src/styles.scss +1 -5
  238. package/src/theme/components/breadcrumb.ts +5 -5
  239. package/src/theme/components/button.ts +5 -12
  240. package/src/theme/components/card.ts +9 -7
  241. package/src/theme/components/checkbox.ts +1 -1
  242. package/src/theme/components/customTable.ts +63 -0
  243. package/src/theme/components/datePicker.ts +1 -1
  244. package/src/theme/components/global.ts +7 -7
  245. package/src/theme/components/heading.ts +13 -11
  246. package/src/theme/components/helperErrorText.ts +1 -1
  247. package/src/theme/components/icon.ts +2 -2
  248. package/src/theme/components/image.ts +9 -1
  249. package/src/theme/components/link.ts +17 -5
  250. package/src/theme/components/list.ts +1 -3
  251. package/src/theme/components/logo.ts +54 -0
  252. package/src/theme/components/notification.ts +9 -7
  253. package/src/theme/components/searchBar.ts +7 -13
  254. package/src/theme/components/select.ts +1 -0
  255. package/src/theme/components/statusBadge.ts +1 -1
  256. package/src/theme/components/structuredContent.ts +54 -0
  257. package/src/theme/components/template.ts +10 -10
  258. package/src/theme/components/text.ts +6 -6
  259. package/src/theme/components/textInput.ts +1 -0
  260. package/src/theme/components/toggle.ts +69 -0
  261. package/src/theme/components/videoPlayer.ts +0 -2
  262. package/src/theme/foundations/global.ts +2 -2
  263. package/src/theme/foundations/spacing.ts +3 -0
  264. package/src/theme/foundations/typography.ts +84 -12
  265. package/src/theme/index.ts +8 -0
  266. package/src/utils/componentCategories.ts +5 -2
  267. package/src/utils/utils.ts +17 -0
  268. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  269. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  270. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  271. package/dist/components/Input/Input.d.ts +0 -36
  272. package/dist/components/Input/Input.stories.d.ts +0 -29
  273. package/dist/components/Input/InputTypes.d.ts +0 -6
  274. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  275. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  276. package/dist/helpers/getCSSVariable.d.ts +0 -1
  277. package/dist/interfaces.d.ts +0 -3
  278. package/dist/utils/bem.d.ts +0 -1
  279. package/src/__tests__/utils/bem.test.ts +0 -37
  280. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  281. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  282. package/src/components/CardEdition/CardEdition.tsx +0 -60
  283. package/src/components/CardEdition/_CardEdition.scss +0 -137
  284. package/src/components/Input/Input.stories.tsx +0 -133
  285. package/src/components/Input/Input.test.tsx +0 -266
  286. package/src/components/Input/Input.tsx +0 -81
  287. package/src/components/Input/InputTypes.tsx +0 -8
  288. package/src/components/Input/_Input.scss +0 -78
  289. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  290. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  291. package/src/helpers/getCSSVariable.tsx +0 -5
  292. package/src/interfaces.ts +0 -3
  293. package/src/utils/bem.ts +0 -44
@@ -0,0 +1,85 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ComponentWrapper Renders the UI snapshot correctly 1`] = `
4
+ <div
5
+ className="css-0"
6
+ >
7
+ <h2
8
+ className="chakra-heading css-0"
9
+ id="id-heading"
10
+ >
11
+ heading text
12
+ </h2>
13
+ <p
14
+ className="chakra-text css-0"
15
+ >
16
+ description text
17
+ </p>
18
+ <div>
19
+ children elements
20
+ </div>
21
+ <div
22
+ className="css-0"
23
+ >
24
+ <div
25
+ aria-atomic={true}
26
+ aria-live="off"
27
+ className=" css-0"
28
+ dangerouslySetInnerHTML={
29
+ Object {
30
+ "__html": "helper text",
31
+ }
32
+ }
33
+ data-isinvalid={false}
34
+ id="id-helperText"
35
+ />
36
+ </div>
37
+ </div>
38
+ `;
39
+
40
+ exports[`ComponentWrapper Renders the UI snapshot correctly 2`] = `
41
+ <div
42
+ className="css-0"
43
+ >
44
+ <div>
45
+ children elements
46
+ </div>
47
+ </div>
48
+ `;
49
+
50
+ exports[`ComponentWrapper Renders the UI snapshot correctly 3`] = `
51
+ <div
52
+ className="css-0"
53
+ >
54
+ <h2
55
+ className="chakra-heading css-0"
56
+ id="id-heading"
57
+ >
58
+ heading text
59
+ </h2>
60
+ <p
61
+ className="chakra-text css-0"
62
+ >
63
+ description text
64
+ </p>
65
+ <div>
66
+ children elements
67
+ </div>
68
+ <div
69
+ className="css-0"
70
+ >
71
+ <div
72
+ aria-atomic={true}
73
+ aria-live="polite"
74
+ className=" css-0"
75
+ dangerouslySetInnerHTML={
76
+ Object {
77
+ "__html": "invalid text",
78
+ }
79
+ }
80
+ data-isinvalid={true}
81
+ id="id-helperText"
82
+ />
83
+ </div>
84
+ </div>
85
+ `;
@@ -1,16 +1,22 @@
1
1
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
2
  ArgsTable,
3
+ Canvas,
6
4
  Description,
7
- } from "@storybook/addon-docs/blocks";
5
+ Meta,
6
+ Story,
7
+ } from "@storybook/addon-docs";
8
8
  import { withDesign } from "storybook-addon-designs";
9
9
 
10
- import { getCategory } from "../../utils/componentCategories";
11
10
  import DatePicker from "./DatePicker";
12
11
  import { DatePickerTypes } from "./DatePickerTypes";
12
+ import { getCategory } from "../../utils/componentCategories";
13
13
  import DSProvider from "../../theme/provider";
14
+ import { getStorybookEnumValues } from "../../utils/utils";
15
+
16
+ export const enumValues = getStorybookEnumValues(
17
+ DatePickerTypes,
18
+ "DatePickerTypes"
19
+ );
14
20
 
15
21
  <Meta
16
22
  title={getCategory("DatePicker")}
@@ -19,18 +25,51 @@ import DSProvider from "../../theme/provider";
19
25
  parameters={{
20
26
  design: {
21
27
  type: "figma",
22
- url:
23
- "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11689%3A0",
28
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11689%3A0",
24
29
  },
25
30
  jest: ["DatePicker.test.tsx"],
26
31
  }}
27
32
  argTypes={{
28
- className: { table: { disable: true } },
29
- id: { table: { disable: true } },
30
- nameFrom: { table: { disable: true } },
31
- nameTo: { table: { disable: true } },
32
- onChange: { table: { disable: true } },
33
- refTo: { table: { disable: true } },
33
+ className: { control: false },
34
+ dateFormat: {
35
+ table: { defaultValue: { summary: "yyyy-MM-dd" } },
36
+ },
37
+ dateType: {
38
+ control: { type: "select" },
39
+ table: { defaultValue: { summary: "DatePickerTypes.Full" } },
40
+ options: enumValues.options,
41
+ },
42
+ id: { control: false },
43
+ isDateRange: {
44
+ table: { defaultValue: { summary: false } },
45
+ },
46
+ isDisabled: {
47
+ table: { defaultValue: { summary: false } },
48
+ },
49
+ isInvalid: {
50
+ table: { defaultValue: { summary: false } },
51
+ },
52
+ isRequired: {
53
+ table: { defaultValue: { summary: false } },
54
+ },
55
+ key: { table: { disable: true } },
56
+ labelText: {
57
+ table: { defaultValue: { summary: "From" } },
58
+ },
59
+ nameFrom: { control: false },
60
+ nameTo: { control: false },
61
+ onChange: { control: false },
62
+ ref: { table: { disable: true } },
63
+ refTo: { control: false },
64
+ showHelperInvalidText: {
65
+ table: { defaultValue: { summary: true } },
66
+ },
67
+ showLabel: {
68
+ table: { defaultValue: { summary: true } },
69
+ },
70
+ showOptReqLabel: {
71
+ table: { defaultValue: { summary: true } },
72
+ },
34
73
  }}
35
74
  />
36
75
 
@@ -39,7 +78,7 @@ import DSProvider from "../../theme/provider";
39
78
  | Component Version | DS Version |
40
79
  | ----------------- | ---------- |
41
80
  | Added | `0.24.0` |
42
- | Latest | `0.25.3` |
81
+ | Latest | `0.25.10` |
43
82
 
44
83
  <Description of={DatePicker} />
45
84
 
@@ -49,13 +88,15 @@ also be added through props.
49
88
 
50
89
  <Canvas withToolbar>
51
90
  <Story
52
- name="DatePicker"
91
+ name="DatePicker with Controls"
53
92
  args={{
93
+ className: undefined,
54
94
  dateFormat: "yyyy-MM-dd",
55
- dateType: DatePickerTypes.Full,
95
+ dateType: "DatePickerTypes.Full",
56
96
  helperText: "Note that the Library may be closed on Sundays.",
57
97
  helperTextFrom: "Select start date.",
58
98
  helperTextTo: "Select end date.",
99
+ id: "datePicker-id",
59
100
  initialDate: "1/1/2021",
60
101
  initialDateTo: "1/30/2021",
61
102
  invalidText: "Please select a valid date.",
@@ -68,16 +109,20 @@ also be added through props.
68
109
  minDate: "1/1/2021",
69
110
  nameFrom: "visit-dates-from",
70
111
  nameTo: "visit-dates-to",
112
+ onChange: undefined,
113
+ refTo: undefined,
71
114
  showHelperInvalidText: true,
72
115
  showLabel: true,
73
116
  showOptReqLabel: true,
74
117
  }}
75
118
  >
76
- {(args) => <DatePicker id="visit-dates" {...args} />}
119
+ {(args) => (
120
+ <DatePicker {...args} dateType={enumValues.getValue(args.dateType)} />
121
+ )}
77
122
  </Story>
78
123
  </Canvas>
79
124
 
80
- <ArgsTable story="DatePicker" />
125
+ <ArgsTable story="DatePicker with Controls" />
81
126
 
82
127
  ## Date Range
83
128
 
@@ -9,7 +9,7 @@ import { DatePickerTypes } from "./DatePickerTypes";
9
9
  import { TextInputRefType } from "../TextInput/TextInput";
10
10
 
11
11
  /** This adds a "0" padding for date values under "10". */
12
- const str_pad = (n) => String("0" + n).slice(-2);
12
+ const strPad = (n) => String("0" + n).slice(-2);
13
13
  const monthArray = [
14
14
  "January",
15
15
  "February",
@@ -49,8 +49,8 @@ describe("DatePicker", () => {
49
49
  /** Returns today's year, month, and day values. */
50
50
  const getTodaysValues = () => {
51
51
  const year = todaysDate.getFullYear();
52
- const month = str_pad(todaysDate.getMonth() + 1);
53
- const day = str_pad(todaysDate.getDate());
52
+ const month = strPad(todaysDate.getMonth() + 1);
53
+ const day = strPad(todaysDate.getDate());
54
54
  return [year, month, day];
55
55
  };
56
56
  /** Returns today's date in string format based on the DatePicker type. */
@@ -328,9 +328,9 @@ describe("DatePicker", () => {
328
328
  expect(screen.getByDisplayValue(newDayValue)).toBeInTheDocument();
329
329
 
330
330
  const { startDate } = dateObject;
331
- const valueFromOnChange = `${startDate.getFullYear()}-${str_pad(
331
+ const valueFromOnChange = `${startDate.getFullYear()}-${strPad(
332
332
  startDate.getMonth() + 1
333
- )}-${str_pad(startDate.getDate())}`;
333
+ )}-${strPad(startDate.getDate())}`;
334
334
  expect(newDayValue).toEqual(valueFromOnChange);
335
335
  });
336
336
 
@@ -368,7 +368,7 @@ describe("DatePicker", () => {
368
368
  // Note: Have to add an initial date so that the snapshot tests always
369
369
  // pass. Otherwise, it'll use the _current_ date which changes
370
370
  // based on the day it is tested and is not what we want.
371
- it.skip("renders the UI snapshot correctly", () => {
371
+ it("renders the UI snapshot correctly", () => {
372
372
  const basic = renderer
373
373
  .create(
374
374
  <DatePicker
@@ -724,7 +724,7 @@ describe("DatePicker", () => {
724
724
  // We are two months ahead but still selecting the midmonth day.
725
725
  userEvent.click(screen.getByText(midMonthDay));
726
726
  // So only the month should change accordingly.
727
- const newMonthValue = `${newDayValue.substr(0, 5)}${str_pad(
727
+ const newMonthValue = `${newDayValue.substr(0, 5)}${strPad(
728
728
  "10"
729
729
  )}${newDayValue.substr(7)}`;
730
730
  expect(screen.getByDisplayValue(newMonthValue)).toBeInTheDocument();
@@ -805,10 +805,12 @@ describe("DatePicker", () => {
805
805
  const input = screen.getByLabelText(
806
806
  /Select the year you want to visit NYPL/i
807
807
  );
808
- const [year] = getTodaysValues();
808
+ const mockYear = 2021;
809
809
 
810
810
  expect(
811
- screen.queryByText(`${(year as any) - 4} - ${(year as any) + 7}`)
811
+ screen.queryByText(
812
+ `${(mockYear as any) - 4} - ${(mockYear as any) + 7}`
813
+ )
812
814
  ).not.toBeInTheDocument();
813
815
 
814
816
  userEvent.click(input);
@@ -817,16 +819,16 @@ describe("DatePicker", () => {
817
819
  // before the current year to seven years after the current year. For year
818
820
  // 2021, it will display 2017 - 2028.
819
821
  expect(
820
- screen.getByText(`${(year as any) - 4} - ${(year as any) + 7}`)
822
+ screen.getByText(`${(mockYear as any) - 4} - ${(mockYear as any) + 7}`)
821
823
  ).toBeInTheDocument();
822
824
  // This calendar displays 12 years to select from.
823
825
  // It should display the four previous years from the current year.
824
826
  for (let i = 4; i > 0; i--) {
825
- expect(screen.getByText((year as any) - i)).toBeInTheDocument();
827
+ expect(screen.getByText((mockYear as any) - i)).toBeInTheDocument();
826
828
  }
827
829
  // It should display the eight next years from the current year.
828
830
  for (let i = 0; i < 8; i++) {
829
- expect(screen.getByText((year as any) + i)).toBeInTheDocument();
831
+ expect(screen.getByText((mockYear as any) + i)).toBeInTheDocument();
830
832
  }
831
833
  });
832
834
 
@@ -4,8 +4,10 @@ import ReactDatePicker from "react-datepicker";
4
4
  import { DatePickerTypes } from "./DatePickerTypes";
5
5
  import Fieldset from "../Fieldset/Fieldset";
6
6
  import { FormRow, FormField } from "../Form/Form";
7
- import { FormSpacing } from "../Form/FormTypes";
8
- import HelperErrorText from "../HelperErrorText/HelperErrorText";
7
+ import { FormGaps } from "../Form/FormTypes";
8
+ import HelperErrorText, {
9
+ HelperErrorTextType,
10
+ } from "../HelperErrorText/HelperErrorText";
9
11
  import TextInput, {
10
12
  InputProps,
11
13
  TextInputRefType,
@@ -14,8 +16,7 @@ import generateUUID from "../../helpers/generateUUID";
14
16
  import { useMultiStyleConfig } from "@chakra-ui/system";
15
17
 
16
18
  // The object shape for the DatePicker's start and end date state values.
17
- // Internal use only.
18
- interface FullDateType {
19
+ export interface FullDateType {
19
20
  /** Date object that gets returned for the onChange
20
21
  * function only for date ranges. */
21
22
  endDate?: Date;
@@ -74,7 +75,7 @@ export interface DatePickerProps extends DatePickerWrapperProps {
74
75
  /** DatePicker date types that can be rendered. */
75
76
  dateType?: DatePickerTypes;
76
77
  /** Populates the `HelperErrorText` component in this component. */
77
- helperText?: string;
78
+ helperText?: HelperErrorTextType;
78
79
  /** Populates the `HelperErrorText` component in the "From" `TextInput` component. */
79
80
  helperTextFrom?: string;
80
81
  /** Populates the `HelperErrorText` component in the "To" `TextInput` component. */
@@ -86,7 +87,7 @@ export interface DatePickerProps extends DatePickerWrapperProps {
86
87
  initialDateTo?: string;
87
88
  /** Populates the `HelperErrorText` error state for both "From"
88
89
  * and "To" input components. */
89
- invalidText?: string;
90
+ invalidText?: HelperErrorTextType;
90
91
  /** Adds the 'disabled' property to the input element(s). */
91
92
  isDisabled?: boolean;
92
93
  /** Adds 'isInvalid' styling. */
@@ -215,7 +216,7 @@ const DateRangeRow: React.FC<DateRangeRowProps> = ({
215
216
  children,
216
217
  }) =>
217
218
  isDateRange ? (
218
- <FormRow id={`${id}-form-row`} gap={FormSpacing.ExtraSmall}>
219
+ <FormRow id={`${id}-form-row`} gap={FormGaps.ExtraSmall}>
219
220
  {children}
220
221
  </FormRow>
221
222
  ) : (
@@ -415,9 +416,11 @@ const DatePicker = React.forwardRef<TextInputRefType, DatePickerProps>(
415
416
  )}
416
417
  </DateRangeRow>
417
418
  {helperText && isDateRange && showHelperInvalidText && (
418
- <HelperErrorText id={`${id}-helper-text`} isInvalid={false}>
419
- {helperText}
420
- </HelperErrorText>
419
+ <HelperErrorText
420
+ id={`${id}-helper-text`}
421
+ isInvalid={false}
422
+ text={helperText}
423
+ />
421
424
  )}
422
425
  </DatePickerWrapper>
423
426
  );
@@ -363,11 +363,14 @@ exports[`DatePicker Date Range renders the UI snapshot correctly 4`] = `
363
363
  aria-atomic={true}
364
364
  aria-live="polite"
365
365
  className=" css-0"
366
+ dangerouslySetInnerHTML={
367
+ Object {
368
+ "__html": "Please select a valid date.",
369
+ }
370
+ }
366
371
  data-isinvalid={true}
367
372
  id="invalid-start-helperText"
368
- >
369
- Please select a valid date.
370
- </div>
373
+ />
371
374
  </div>
372
375
  </div>
373
376
  </div>
@@ -415,11 +418,14 @@ exports[`DatePicker Date Range renders the UI snapshot correctly 4`] = `
415
418
  aria-atomic={true}
416
419
  aria-live="polite"
417
420
  className=" css-0"
421
+ dangerouslySetInnerHTML={
422
+ Object {
423
+ "__html": "Please select a valid date.",
424
+ }
425
+ }
418
426
  data-isinvalid={true}
419
427
  id="invalid-end-helperText"
420
- >
421
- Please select a valid date.
422
- </div>
428
+ />
423
429
  </div>
424
430
  </div>
425
431
  </div>
@@ -430,11 +436,14 @@ exports[`DatePicker Date Range renders the UI snapshot correctly 4`] = `
430
436
  aria-atomic={true}
431
437
  aria-live="off"
432
438
  className=" css-0"
439
+ dangerouslySetInnerHTML={
440
+ Object {
441
+ "__html": "Note that the Library may be closed on Sundays.",
442
+ }
443
+ }
433
444
  data-isinvalid={false}
434
445
  id="invalid-helper-text"
435
- >
436
- Note that the Library may be closed on Sundays.
437
- </div>
446
+ />
438
447
  </fieldset>
439
448
  </div>
440
449
  `;
@@ -539,11 +548,14 @@ exports[`DatePicker Date Range renders the UI snapshot correctly 5`] = `
539
548
  aria-atomic={true}
540
549
  aria-live="off"
541
550
  className=" css-0"
551
+ dangerouslySetInnerHTML={
552
+ Object {
553
+ "__html": "Note that the Library may be closed on Sundays.",
554
+ }
555
+ }
542
556
  data-isinvalid={false}
543
557
  id="disabled-helper-text"
544
- >
545
- Note that the Library may be closed on Sundays.
546
- </div>
558
+ />
547
559
  </fieldset>
548
560
  </div>
549
561
  `;
@@ -587,6 +599,7 @@ exports[`DatePicker Single input renders the UI snapshot correctly 1`] = `
587
599
  onClick={[Function]}
588
600
  onFocus={[Function]}
589
601
  required={false}
602
+ step={null}
590
603
  type="text"
591
604
  value="1988-01-02"
592
605
  />
@@ -625,12 +638,9 @@ exports[`DatePicker Single input renders the UI snapshot correctly 2`] = `
625
638
  onClick={[Function]}
626
639
  onFocus={[Function]}
627
640
  required={false}
641
+ step={null}
628
642
  type="text"
629
- <<<<<<< HEAD
630
- value="2021-11-17"
631
- =======
632
643
  value="1988-01-02"
633
- >>>>>>> development
634
644
  />
635
645
  </div>
636
646
  </div>
@@ -678,6 +688,7 @@ exports[`DatePicker Single input renders the UI snapshot correctly 3`] = `
678
688
  onClick={[Function]}
679
689
  onFocus={[Function]}
680
690
  required={false}
691
+ step={null}
681
692
  type="text"
682
693
  value="1988/02/01"
683
694
  />
@@ -729,6 +740,7 @@ exports[`DatePicker Single input renders the UI snapshot correctly 4`] = `
729
740
  onClick={[Function]}
730
741
  onFocus={[Function]}
731
742
  required={false}
743
+ step={null}
732
744
  type="text"
733
745
  value="1988-01-02"
734
746
  />
@@ -740,11 +752,14 @@ exports[`DatePicker Single input renders the UI snapshot correctly 4`] = `
740
752
  aria-atomic={true}
741
753
  aria-live="polite"
742
754
  className=" css-0"
755
+ dangerouslySetInnerHTML={
756
+ Object {
757
+ "__html": "Please select a valid date.",
758
+ }
759
+ }
743
760
  data-isinvalid={true}
744
761
  id="invalid-start-helperText"
745
- >
746
- Please select a valid date.
747
- </div>
762
+ />
748
763
  </div>
749
764
  </div>
750
765
  </div>
@@ -793,6 +808,7 @@ exports[`DatePicker Single input renders the UI snapshot correctly 5`] = `
793
808
  onClick={[Function]}
794
809
  onFocus={[Function]}
795
810
  required={false}
811
+ step={null}
796
812
  type="text"
797
813
  value="1988-01-02"
798
814
  />
@@ -804,11 +820,14 @@ exports[`DatePicker Single input renders the UI snapshot correctly 5`] = `
804
820
  aria-atomic={true}
805
821
  aria-live="off"
806
822
  className=" css-0"
823
+ dangerouslySetInnerHTML={
824
+ Object {
825
+ "__html": "Note that the Library may be closed on Sundays.",
826
+ }
827
+ }
807
828
  data-isinvalid={false}
808
829
  id="disabled-start-helperText"
809
- >
810
- Note that the Library may be closed on Sundays.
811
- </div>
830
+ />
812
831
  </div>
813
832
  </div>
814
833
  </div>
@@ -1,10 +1,10 @@
1
1
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
2
  ArgsTable,
3
+ Canvas,
6
4
  Description,
7
- } from "@storybook/addon-docs/blocks";
5
+ Meta,
6
+ Story,
7
+ } from "@storybook/addon-docs";
8
8
  import { withDesign } from "storybook-addon-designs";
9
9
 
10
10
  import Fieldset from "./Fieldset";
@@ -20,8 +20,17 @@ import DSProvider from "../../theme/provider";
20
20
  }}
21
21
  argTypes={{
22
22
  children: { table: { disable: true } },
23
- className: { table: { disable: true } },
24
- id: { table: { disable: true } },
23
+ className: { control: false },
24
+ id: { control: false },
25
+ isLegendHidden: {
26
+ table: { defaultValue: { summary: false } },
27
+ },
28
+ isRequired: {
29
+ table: { defaultValue: { summary: false } },
30
+ },
31
+ optReqFlag: {
32
+ table: { defaultValue: { summary: false } },
33
+ },
25
34
  }}
26
35
  />
27
36
 
@@ -30,14 +39,16 @@ import DSProvider from "../../theme/provider";
30
39
  | Component Version | DS Version |
31
40
  | ----------------- | ---------- |
32
41
  | Added | `0.25.3` |
33
- | Latest | `0.25.3` |
42
+ | Latest | `0.25.10` |
34
43
 
35
44
  <Description of={Fieldset} />
36
45
 
37
46
  <Canvas withToolbar>
38
47
  <Story
39
- name="Basic"
48
+ name="Fieldset"
40
49
  args={{
50
+ className: undefined,
51
+ id: "fieldset-id",
41
52
  isLegendHidden: false,
42
53
  isRequired: false,
43
54
  legendText: "This is the legend text",
@@ -52,4 +63,4 @@ import DSProvider from "../../theme/provider";
52
63
  </Story>
53
64
  </Canvas>
54
65
 
55
- <ArgsTable story="Basic" />
66
+ <ArgsTable story="Fieldset" />
@@ -2,8 +2,6 @@ import React from "react";
2
2
  import { Box, useMultiStyleConfig } from "@chakra-ui/react";
3
3
 
4
4
  interface FieldsetProps {
5
- /** Children to render. Typically form-related components are used. */
6
- children: React.ReactNode;
7
5
  /** Additional class name to add. */
8
6
  className?: string;
9
7
  /** ID that other components can cross reference for accessibility purposes */
@@ -24,7 +22,7 @@ interface FieldsetProps {
24
22
  * A wrapper component that renders a `fieldset` element along with a `legend`
25
23
  * element as its first child. Commonly used to wrap form components.
26
24
  */
27
- const Fieldset: React.FC<FieldsetProps> = ({
25
+ const Fieldset = ({
28
26
  children,
29
27
  className,
30
28
  id,
@@ -32,7 +30,7 @@ const Fieldset: React.FC<FieldsetProps> = ({
32
30
  isRequired = false,
33
31
  legendText,
34
32
  optReqFlag = true,
35
- }) => {
33
+ }: React.PropsWithChildren<FieldsetProps>) => {
36
34
  const styles = useMultiStyleConfig("Fieldset", { isLegendHidden });
37
35
  return (
38
36
  <Box as="fieldset" id={id} __css={styles} className={className}>