@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
@@ -1,14 +1,14 @@
1
+ import { ButtonGroup, VStack } from "@chakra-ui/react";
1
2
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
3
  ArgsTable,
4
+ Canvas,
6
5
  Description,
7
- } from "@storybook/addon-docs/blocks";
6
+ Meta,
7
+ Story,
8
+ } from "@storybook/addon-docs";
8
9
  import { withDesign } from "storybook-addon-designs";
9
- import { ButtonGroup } from "@chakra-ui/react";
10
10
 
11
- import Button from "./Button";
11
+ import Button, { ButtonElementType } from "./Button";
12
12
  import { ButtonTypes } from "./ButtonTypes";
13
13
  import Icon from "../Icons/Icon";
14
14
  import {
@@ -17,9 +17,11 @@ import {
17
17
  IconRotationTypes,
18
18
  IconSizes,
19
19
  } from "../Icons/IconTypes";
20
- import getCSSVariable from "../../helpers/getCSSVariable";
21
20
  import { getCategory } from "../../utils/componentCategories";
22
21
  import DSProvider from "../../theme/provider";
22
+ import { getStorybookEnumValues } from "../../utils/utils";
23
+
24
+ export const enumValues = getStorybookEnumValues(ButtonTypes, "ButtonTypes");
23
25
 
24
26
  <Meta
25
27
  title={getCategory("Button")}
@@ -32,6 +34,30 @@ import DSProvider from "../../theme/provider";
32
34
  },
33
35
  jest: ["Button.test.tsx"],
34
36
  }}
37
+ argTypes={{
38
+ additionalStyles: { control: false },
39
+ attributes: { control: false },
40
+ buttonText: { description: "Only used for Storybook" },
41
+ buttonType: {
42
+ control: { type: "select" },
43
+ table: { defaultValue: { summary: "ButtonType.Primary" } },
44
+ options: enumValues.options,
45
+ },
46
+ className: { control: false },
47
+ displayIcon: { description: "Only used for Storybook." },
48
+ displayIconLeft: {
49
+ description: "Move the icon left or right. Only used for Storybook.",
50
+ },
51
+ iconType: {
52
+ control: { type: "select" },
53
+ options: Object.values(IconNames).map((value) => value),
54
+ description: "Select the icon. Only used for Storybook.",
55
+ },
56
+ id: { control: false },
57
+ isDisabled: { table: { defaultValue: { summary: false } } },
58
+ mouseDown: { table: { defaultValue: { summary: false } } },
59
+ onClick: { control: false },
60
+ }}
35
61
  />
36
62
 
37
63
  # Button
@@ -39,7 +65,7 @@ import DSProvider from "../../theme/provider";
39
65
  | Component Version | DS Version |
40
66
  | ----------------- | ---------- |
41
67
  | Added | `0.0.4` |
42
- | Latest | `0.25.4` |
68
+ | Latest | `0.25.9` |
43
69
 
44
70
  <Description of={Button} />
45
71
 
@@ -51,7 +77,6 @@ that can be rendered.
51
77
  - `ButtonTypes.Callout` is used for call to action text such as "Donate".
52
78
  - `ButtonTypes.Pill` is used for equally weighted actions within cards and always in a set.
53
79
  - `ButtonTypes.Link` is used for equally weighted actions in a text based list.
54
- - `ButtonTypes.SearchBar` is a variant only used in the `SearchBar` component.
55
80
  - `ButtonTypes.NoBrand` is a variant used when there is no brand and will display
56
81
  the background color as black.
57
82
 
@@ -59,16 +84,53 @@ When one and only one `Icon` component is passed inside a `Button` component wit
59
84
  no text, it will automatically be configured to use the `"iconOnly"` type.
60
85
 
61
86
  <Canvas withToolbar>
62
- <Story name="Basic">{(args) => <Button {...args}>Button Text</Button>}</Story>
87
+ <Story
88
+ name="Button with Controls"
89
+ args={{
90
+ additionalStyles: undefined,
91
+ attributes: undefined,
92
+ buttonText: "Button Text",
93
+ buttonType: "ButtonTypes.Primary",
94
+ className: undefined,
95
+ displayIcon: false,
96
+ displayIconLeft: true,
97
+ iconType: IconNames.Search,
98
+ id: "button-id",
99
+ isDisabled: false,
100
+ mouseDown: undefined,
101
+ onClick: undefined,
102
+ type: "button",
103
+ }}
104
+ >
105
+ {(args) => (
106
+ <Button {...args} buttonType={enumValues.getValue(args.buttonType)}>
107
+ {args.displayIcon && args.displayIconLeft && (
108
+ <Icon
109
+ name={args.iconType}
110
+ align={IconAlign.Left}
111
+ size={IconSizes.Small}
112
+ />
113
+ )}
114
+ {args.buttonText}
115
+ {args.displayIcon && !args.displayIconLeft && (
116
+ <Icon
117
+ name={args.iconType}
118
+ align={IconAlign.Right}
119
+ size={IconSizes.Small}
120
+ />
121
+ )}
122
+ </Button>
123
+ )}
124
+ </Story>
63
125
  </Canvas>
64
126
 
65
- <ArgsTable story="Basic" />
127
+ <ArgsTable story="Button with Controls" />
66
128
 
67
129
  ## Button Groups
68
130
 
69
131
  Primary and secondary buttons should be grouped like in the following example.
70
132
  The `ButtonGroup` component, which is directly exported from Chakra UI, should
71
- be used to wrap the `Button` cmoponent.
133
+ be used to wrap the `Button` component.
72
134
 
73
135
  <Canvas>
74
136
  <Story name="Button Groups">
@@ -83,45 +145,28 @@ be used to wrap the `Button` cmoponent.
83
145
 
84
146
  The `Icon` component collaborates great with the `Button` component. Check out
85
147
  [`src/components/Icons/IconTypes`](https://github.com/NYPL/nypl-design-system/blob/development/src/components/Icons/IconTypes.tsx)
86
- to see the full list of icon and logo names that can be rendered. Use the
87
- Controls for this Story section to preview a `Button` with the selected icon.
148
+ to see the full list of icon and logo names that can be rendered.
88
149
 
89
150
  <Canvas>
90
- <Story
91
- name="With Icon"
92
- args={{
93
- displayLeft: true,
94
- buttonText: "Button Text",
95
- iconType: IconNames.Search,
96
- }}
97
- argTypes={{
98
- iconType: {
99
- control: {
100
- type: "select",
101
- },
102
- options: Object.values(IconNames).map((value) => value),
103
- },
104
- }}
105
- >
106
- {(args) => (
107
- <Button {...args}>
108
- {args.displayLeft && (
109
- <Icon
110
- name={args.iconType}
111
- align={IconAlign.Left}
112
- size={IconSizes.Small}
113
- />
114
- )}
115
- {args.buttonText}
116
- {!args.displayLeft && (
117
- <Icon
118
- name={args.iconType}
119
- align={IconAlign.Right}
120
- size={IconSizes.Small}
121
- />
122
- )}
151
+ <Story name="With Icon">
152
+ <VStack align="left" width="150px">
153
+ <Button>
154
+ <Icon
155
+ name={IconNames.Search}
156
+ align={IconAlign.Left}
157
+ size={IconSizes.Small}
158
+ />
159
+ Button Text
123
160
  </Button>
124
- )}
161
+ <Button>
162
+ Button Text
163
+ <Icon
164
+ name={IconNames.Search}
165
+ align={IconAlign.Right}
166
+ size={IconSizes.Small}
167
+ />
168
+ </Button>
169
+ </VStack>
125
170
  </Story>
126
171
  </Canvas>
127
172
 
@@ -150,17 +150,6 @@ describe("Button Snapshot", () => {
150
150
  </Button>
151
151
  )
152
152
  .toJSON();
153
- const searchBar = renderer
154
- .create(
155
- <Button
156
- id="button"
157
- onClick={jest.fn()}
158
- buttonType={ButtonTypes.SearchBar}
159
- >
160
- SearchBar
161
- </Button>
162
- )
163
- .toJSON();
164
153
  const noBrand = renderer
165
154
  .create(
166
155
  <Button
@@ -179,7 +168,6 @@ describe("Button Snapshot", () => {
179
168
  expect(callout).toMatchSnapshot();
180
169
  expect(pill).toMatchSnapshot();
181
170
  expect(link).toMatchSnapshot();
182
- expect(searchBar).toMatchSnapshot();
183
171
  expect(noBrand).toMatchSnapshot();
184
172
  });
185
173
  });
@@ -6,25 +6,25 @@ import Icon from "../Icons/Icon";
6
6
  import { getVariant } from "../../utils/utils";
7
7
  import generateUUID from "../../helpers/generateUUID";
8
8
 
9
- type ButtonElementType = "submit" | "button" | "reset";
9
+ export type ButtonElementType = "submit" | "button" | "reset";
10
10
 
11
11
  interface ButtonProps {
12
12
  /** Optionally pass in additional Chakra-based styles. */
13
13
  additionalStyles?: { [key: string]: any };
14
- /** Additional attributes passed to the button */
14
+ /** Additional attributes passed to the button. */
15
15
  attributes?: { [key: string]: any };
16
- /** The kind of button assigned through the `ButtonTypes` enum */
16
+ /** The kind of button assigned through the `ButtonTypes` enum. */
17
17
  buttonType?: ButtonTypes;
18
18
  /** Additional className to use. */
19
19
  className?: string;
20
- /** ID that other components can cross reference for accessibility purposes */
20
+ /** ID that other components can cross reference for accessibility purposes. */
21
21
  id?: string;
22
- /** Adds 'disabled' property to the button */
22
+ /** Adds 'disabled' property to the button. */
23
23
  isDisabled?: boolean;
24
24
  /** Trigger the Button's action through the `mouseDown` event handler instead
25
25
  * of `onClick`. `false` by default. */
26
26
  mouseDown?: boolean;
27
- /** The action to perform on the `<button>`'s onClick function */
27
+ /** The action to perform on the `<button>`'s onClick function. */
28
28
  onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;
29
29
  /** The HTML button type attribute. */
30
30
  type?: ButtonElementType;
@@ -40,8 +40,8 @@ function Button(props: React.PropsWithChildren<ButtonProps>) {
40
40
  buttonType,
41
41
  children,
42
42
  className = "",
43
- isDisabled,
44
43
  id = generateUUID(),
44
+ isDisabled = false,
45
45
  mouseDown = false,
46
46
  onClick,
47
47
  type = "button",
@@ -71,7 +71,6 @@ function Button(props: React.PropsWithChildren<ButtonProps>) {
71
71
  }
72
72
 
73
73
  styles = useStyleConfig("Button", { variant });
74
-
75
74
  return (
76
75
  <ChakraButton
77
76
  id={id}
@@ -4,6 +4,5 @@ export enum ButtonTypes {
4
4
  Callout = "callout",
5
5
  Pill = "pill",
6
6
  Link = "link",
7
- SearchBar = "searchBar",
8
7
  NoBrand = "noBrand",
9
8
  }
@@ -74,18 +74,6 @@ exports[`Button Snapshot Renders the UI snapshot correctly 6`] = `
74
74
  `;
75
75
 
76
76
  exports[`Button Snapshot Renders the UI snapshot correctly 7`] = `
77
- <button
78
- className="chakra-button css-0"
79
- data-testid="button"
80
- id="button"
81
- onClick={[MockFunction]}
82
- type="button"
83
- >
84
- SearchBar
85
- </button>
86
- `;
87
-
88
- exports[`Button Snapshot Renders the UI snapshot correctly 8`] = `
89
77
  <button
90
78
  className="chakra-button css-0"
91
79
  data-testid="button"