@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,17 +1,33 @@
1
+ import { 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 { VStack } from "@chakra-ui/react";
10
10
 
11
+ import Heading from "../Heading/Heading";
11
12
  import Image from "./Image";
12
13
  import { ImageRatios, ImageSizes, ImageTypes } from "./ImageTypes";
13
- import Heading from "../Heading/Heading";
14
+ import SimpleGrid from "../Grid/SimpleGrid";
14
15
  import { getCategory } from "../../utils/componentCategories";
16
+ import { getStorybookEnumValues } from "../../utils/utils";
17
+
18
+ export const ratiosEnumValues = getStorybookEnumValues(
19
+ ImageRatios,
20
+ "ImageRatios"
21
+ );
22
+ export const sizesEnumValues = getStorybookEnumValues(ImageSizes, "ImageSizes");
23
+ export const typesEnumValues = getStorybookEnumValues(ImageTypes, "ImageTypes");
24
+
25
+ export const imageBlockStyles = {
26
+ margin: "auto",
27
+ maxWidth: "360px",
28
+ textAlign: "center",
29
+ width: "100%",
30
+ };
15
31
 
16
32
  <Meta
17
33
  title={getCategory("Image")}
@@ -25,9 +41,38 @@ import { getCategory } from "../../utils/componentCategories";
25
41
  jest: ["Image.test.tsx"],
26
42
  }}
27
43
  argTypes={{
28
- alt: { table: { disable: true } },
29
- className: { table: { disable: true } },
30
- component: { table: { disable: true } },
44
+ additionalFigureStyles: { control: false },
45
+ additionalImageStyles: { control: false },
46
+ additionalWrapperStyles: { control: false },
47
+ alt: {
48
+ control: false,
49
+ description:
50
+ "Alternate text description of the image. Needed for accessibility purposes.",
51
+ },
52
+ className: {
53
+ control: false,
54
+ description: "Additional class name for the component to use.",
55
+ },
56
+ component: { control: false },
57
+ imageAspectRatio: {
58
+ control: { type: "select" },
59
+ table: { defaultValue: { summary: "ImageRatios.Original" } },
60
+ options: ratiosEnumValues.options,
61
+ },
62
+ imageSize: {
63
+ control: { type: "select" },
64
+ table: { defaultValue: { summary: "ImageSizes.Default" } },
65
+ options: sizesEnumValues.options,
66
+ },
67
+ imageType: {
68
+ control: { type: "select" },
69
+ table: { defaultValue: { summary: "ImageTypes.Default" } },
70
+ options: typesEnumValues.options,
71
+ },
72
+ src: {
73
+ description:
74
+ "The src attribute is required, and contains the path to the image you want to embed.",
75
+ },
31
76
  }}
32
77
  />
33
78
 
@@ -36,7 +81,7 @@ import { getCategory } from "../../utils/componentCategories";
36
81
  | Component Version | DS Version |
37
82
  | ----------------- | ---------- |
38
83
  | Added | `0.0.6` |
39
- | Latest | `0.25.3` |
84
+ | Latest | `0.25.9` |
40
85
 
41
86
  <Description of={Image} />
42
87
 
@@ -47,22 +92,34 @@ import { getCategory } from "../../utils/componentCategories";
47
92
 
48
93
  <Canvas>
49
94
  <Story
50
- name="Image Props"
95
+ name="Image with Controls"
51
96
  args={{
97
+ additionalFigureStyles: undefined,
98
+ additionalImageStyles: undefined,
99
+ additionalWrapperStyles: undefined,
52
100
  alt: "Alt text",
53
- imageAspectRatio: ImageRatios.TwoByOne,
101
+ className: undefined,
102
+ component: undefined,
103
+ imageAspectRatio: "ImageRatios.TwoByOne",
54
104
  imageCaption: "Image caption",
55
105
  imageCredit: "Image credit",
56
- imageSize: ImageSizes.Medium,
57
- imageType: ImageTypes.Default,
106
+ imageSize: "ImageSizes.Medium",
107
+ imageType: "ImageTypes.Default",
58
108
  src: "https://placeimg.com/400/300/animals",
59
109
  }}
60
110
  >
61
- {(args) => <Image {...args} />}
111
+ {(args) => (
112
+ <Image
113
+ {...args}
114
+ imageAspectRatio={ratiosEnumValues.getValue(args.imageAspectRatio)}
115
+ imageSize={sizesEnumValues.getValue(args.imageSize)}
116
+ imageType={typesEnumValues.getValue(args.imageType)}
117
+ />
118
+ )}
62
119
  </Story>
63
120
  </Canvas>
64
121
 
65
- <ArgsTable story="Image Props" />
122
+ <ArgsTable story="Image with Controls" />
66
123
 
67
124
  ## Image Figure
68
125
 
@@ -102,28 +159,61 @@ Use the `ImageSizes` prop to set the desired size.
102
159
 
103
160
  <Canvas>
104
161
  <Story name="Image Sizes">
105
- <VStack spacing="xs">
106
- <Heading id="Small" text="ImageSizes.Small" />
107
- <Image
108
- alt="Alt text"
109
- imageSize={ImageSizes.Small}
110
- src="https://placeimg.com/400/300/animals"
111
- />
112
- <Heading id="Medium" text="ImageSizes.Medium" />
113
- <Image
114
- alt="Alt text"
115
- imageSize={ImageSizes.Medium}
116
- src="https://placeimg.com/400/300/animals"
117
- />
118
- <Heading id="Large" text="ImageSizes.Large" />
119
- <Image
120
- alt="Alt text"
121
- imageSize={ImageSizes.Large}
122
- src="https://placeimg.com/400/300/animals"
123
- />
124
- <Heading id="Default" text="ImageSizes.Default" />
125
- <Image alt="Alt text" src="https://placeimg.com/400/300/animals" />
126
- </VStack>
162
+ <SimpleGrid columns={1}>
163
+ <div style={{ textAlign: "center" }}>
164
+ <Heading id="ExtraExtraSmall" text="ImageSizes.ExtraExtraSmall" />
165
+ <Image
166
+ alt="Alt text"
167
+ imageCaption="64px"
168
+ imageSize={ImageSizes.ExtraExtraSmall}
169
+ src="https://placeimg.com/400/300/animals"
170
+ />
171
+ </div>
172
+ <div style={{ textAlign: "center" }}>
173
+ <Heading id="ExtraSmall" text="ImageSizes.ExtraSmall" />
174
+ <Image
175
+ alt="Alt text"
176
+ imageCaption="96px"
177
+ imageSize={ImageSizes.ExtraSmall}
178
+ src="https://placeimg.com/400/300/animals"
179
+ />
180
+ </div>
181
+ <div style={{ textAlign: "center" }}>
182
+ <Heading id="Small" text="ImageSizes.Small" />
183
+ <Image
184
+ alt="Alt text"
185
+ imageCaption="165px"
186
+ imageSize={ImageSizes.Small}
187
+ src="https://placeimg.com/400/300/animals"
188
+ />
189
+ </div>
190
+ <div style={{ textAlign: "center" }}>
191
+ <Heading id="Medium" text="ImageSizes.Medium" />
192
+ <Image
193
+ alt="Alt text"
194
+ imageCaption="225px"
195
+ imageSize={ImageSizes.Medium}
196
+ src="https://placeimg.com/400/300/animals"
197
+ />
198
+ </div>
199
+ <div style={{ textAlign: "center" }}>
200
+ <Heading id="Large" text="ImageSizes.Large" />
201
+ <Image
202
+ alt="Alt text"
203
+ imageCaption="360px"
204
+ imageSize={ImageSizes.Large}
205
+ src="https://placeimg.com/400/300/animals"
206
+ />
207
+ </div>
208
+ <div style={{ textAlign: "center" }}>
209
+ <Heading id="Default" text="ImageSizes.Default" />
210
+ <Image
211
+ alt="Alt text"
212
+ imageCaption="100%"
213
+ src="https://placeimg.com/400/300/animals"
214
+ />
215
+ </div>
216
+ </SimpleGrid>
127
217
  </Story>
128
218
  </Canvas>
129
219
 
@@ -137,56 +227,72 @@ in an element with a fixed width value.
137
227
 
138
228
  <Canvas>
139
229
  <Story name="Image Aspect Ratios">
140
- <VStack spacing="xs" maxWidth="360px" margin="auto">
141
- <Heading id="fourbythree" text="ImageRatios.FourByThree" />
142
- <Image
143
- alt="Alt text"
144
- imageAspectRatio={ImageRatios.FourByThree}
145
- src="https://placeimg.com/400/300/animals"
146
- />
147
- <Heading id="onebytwo" text="ImageRatios.OneByTwo" />
148
- <Image
149
- alt="Alt text"
150
- imageAspectRatio={ImageRatios.OneByTwo}
151
- src="https://placeimg.com/400/300/animals"
152
- />
153
- <Heading id="original" text="ImageRatios.Original" />
154
- <Image
155
- alt="Alt text"
156
- imageAspectRatio={ImageRatios.Original}
157
- src="https://placeimg.com/400/300/animals"
158
- />
159
- <Heading id="sixteenbynine" text="ImageRatios.SixteenByNine" />
160
- <Image
161
- alt="Alt text"
162
- imageAspectRatio={ImageRatios.SixteenByNine}
163
- src="https://placeimg.com/400/300/animals"
164
- />
165
- <Heading id="square" text="ImageRatios.Square" />
166
- <Image
167
- alt="Alt text"
168
- imageAspectRatio={ImageRatios.Square}
169
- src="https://placeimg.com/400/300/animals"
170
- />
171
- <Heading id="threebyfour" text="ImageRatios.ThreeByFour" />
172
- <Image
173
- alt="Alt text"
174
- imageAspectRatio={ImageRatios.ThreeByFour}
175
- src="https://placeimg.com/400/300/animals"
176
- />
177
- <Heading id="threebytwo" text="ImageRatios.ThreeByTwo" />
178
- <Image
179
- alt="Alt text"
180
- imageAspectRatio={ImageRatios.ThreeByTwo}
181
- src="https://placeimg.com/400/300/animals"
182
- />
183
- <Heading id="twobyone" text="ImageRatios.TwoByOne" />
184
- <Image
185
- alt="Alt text"
186
- imageAspectRatio={ImageRatios.TwoByOne}
187
- src="https://placeimg.com/400/300/animals"
188
- />
189
- </VStack>
230
+ <SimpleGrid columns={1}>
231
+ <div style={imageBlockStyles}>
232
+ <Heading id="fourbythree" text="ImageRatios.FourByThree" />
233
+ <Image
234
+ alt="Alt text"
235
+ imageAspectRatio={ImageRatios.FourByThree}
236
+ src="https://placeimg.com/400/300/animals"
237
+ />
238
+ </div>
239
+ <div style={imageBlockStyles}>
240
+ <Heading id="onebytwo" text="ImageRatios.OneByTwo" />
241
+ <Image
242
+ alt="Alt text"
243
+ imageAspectRatio={ImageRatios.OneByTwo}
244
+ src="https://placeimg.com/400/300/animals"
245
+ />
246
+ </div>
247
+ <div style={imageBlockStyles}>
248
+ <Heading id="original" text="ImageRatios.Original" />
249
+ <Image
250
+ alt="Alt text"
251
+ imageAspectRatio={ImageRatios.Original}
252
+ src="https://placeimg.com/400/300/animals"
253
+ />
254
+ </div>
255
+ <div style={imageBlockStyles}>
256
+ <Heading id="sixteenbynine" text="ImageRatios.SixteenByNine" />
257
+ <Image
258
+ alt="Alt text"
259
+ imageAspectRatio={ImageRatios.SixteenByNine}
260
+ src="https://placeimg.com/400/300/animals"
261
+ />
262
+ </div>
263
+ <div style={imageBlockStyles}>
264
+ <Heading id="square" text="ImageRatios.Square" />
265
+ <Image
266
+ alt="Alt text"
267
+ imageAspectRatio={ImageRatios.Square}
268
+ src="https://placeimg.com/400/300/animals"
269
+ />
270
+ </div>
271
+ <div style={imageBlockStyles}>
272
+ <Heading id="threebyfour" text="ImageRatios.ThreeByFour" />
273
+ <Image
274
+ alt="Alt text"
275
+ imageAspectRatio={ImageRatios.ThreeByFour}
276
+ src="https://placeimg.com/400/300/animals"
277
+ />
278
+ </div>
279
+ <div style={imageBlockStyles}>
280
+ <Heading id="threebytwo" text="ImageRatios.ThreeByTwo" />
281
+ <Image
282
+ alt="Alt text"
283
+ imageAspectRatio={ImageRatios.ThreeByTwo}
284
+ src="https://placeimg.com/400/300/animals"
285
+ />
286
+ </div>
287
+ <div style={imageBlockStyles}>
288
+ <Heading id="twobyone" text="ImageRatios.TwoByOne" />
289
+ <Image
290
+ alt="Alt text"
291
+ imageAspectRatio={ImageRatios.TwoByOne}
292
+ src="https://placeimg.com/400/300/animals"
293
+ />
294
+ </div>
295
+ </SimpleGrid>
190
296
  </Story>
191
297
  </Canvas>
192
298
 
@@ -200,21 +306,25 @@ in an element with a fixed width value.
200
306
 
201
307
  <Canvas>
202
308
  <Story name="Image Types">
203
- <VStack spacing="xs" maxWidth="360px" margin="auto">
204
- <Heading id="default" text="ImageTypes.Default" />
205
- <Image
206
- alt="Alt text"
207
- imageAspectRatio={ImageRatios.Square}
208
- imageType={ImageTypes.Default}
209
- src="https://placeimg.com/400/400/animals"
210
- />
211
- <Heading id="circle" text="ImageTypes.Circle" />
212
- <Image
213
- alt="Alt text"
214
- imageAspectRatio={ImageRatios.Square}
215
- imageType={ImageTypes.Circle}
216
- src="https://placeimg.com/400/400/animals"
217
- />
218
- </VStack>
309
+ <SimpleGrid columns={1}>
310
+ <div style={imageBlockStyles}>
311
+ <Heading id="default" text="ImageTypes.Default" />
312
+ <Image
313
+ alt="Alt text"
314
+ imageAspectRatio={ImageRatios.Square}
315
+ imageType={ImageTypes.Default}
316
+ src="https://placeimg.com/400/400/animals"
317
+ />
318
+ </div>
319
+ <div style={imageBlockStyles}>
320
+ <Heading id="circle" text="ImageTypes.Circle" />
321
+ <Image
322
+ alt="Alt text"
323
+ imageAspectRatio={ImageRatios.Square}
324
+ imageType={ImageTypes.Circle}
325
+ src="https://placeimg.com/400/400/animals"
326
+ />
327
+ </div>
328
+ </SimpleGrid>
219
329
  </Story>
220
330
  </Canvas>
@@ -74,6 +74,14 @@ describe("Image", () => {
74
74
  const figCaption = renderer
75
75
  .create(<Image src="test.png" alt="" imageCaption="Caption" />)
76
76
  .toJSON();
77
+ const sizeExtraExtraSmall = renderer
78
+ .create(
79
+ <Image src="test.png" alt="" imageSize={ImageSizes.ExtraExtraSmall} />
80
+ )
81
+ .toJSON();
82
+ const sizeExtraSmall = renderer
83
+ .create(<Image src="test.png" alt="" imageSize={ImageSizes.ExtraSmall} />)
84
+ .toJSON();
77
85
  const sizeSmall = renderer
78
86
  .create(<Image src="test.png" alt="" imageSize={ImageSizes.Small} />)
79
87
  .toJSON();
@@ -152,6 +160,8 @@ describe("Image", () => {
152
160
  .toJSON();
153
161
  expect(basic).toMatchSnapshot();
154
162
  expect(figCaption).toMatchSnapshot();
163
+ expect(sizeExtraExtraSmall).toMatchSnapshot();
164
+ expect(sizeExtraSmall).toMatchSnapshot();
155
165
  expect(sizeSmall).toMatchSnapshot();
156
166
  expect(sizeMedium).toMatchSnapshot();
157
167
  expect(sizeLarge).toMatchSnapshot();
@@ -1,11 +1,11 @@
1
- import * as React from "react";
2
1
  import { Box, useMultiStyleConfig } from "@chakra-ui/react";
2
+ import * as React from "react";
3
3
 
4
4
  import { ImageRatios, ImageSizes, ImageTypes } from "./ImageTypes";
5
5
 
6
6
  interface ImageWrapperProps {
7
7
  /** Optionally pass in additional Chakra-based styles. */
8
- additionalStyles?: { [key: string]: any };
8
+ additionalWrapperStyles?: { [key: string]: any };
9
9
  /** ClassName you can add in addition to 'image' */
10
10
  className?: string;
11
11
  /** Optional value to control the aspect ratio of the cartd image; default value is `square` */
@@ -15,6 +15,10 @@ interface ImageWrapperProps {
15
15
  }
16
16
 
17
17
  export interface ImageProps extends ImageWrapperProps {
18
+ /** Optionally pass in additional Chakra-based styles only for the figure. */
19
+ additionalFigureStyles?: { [key: string]: any };
20
+ /** Optionally pass in additional Chakra-based styles only for the image. */
21
+ additionalImageStyles?: { [key: string]: any };
18
22
  /** Alternate text description of the image */
19
23
  alt: string;
20
24
  /** Custom image component */
@@ -33,7 +37,7 @@ export interface ImageProps extends ImageWrapperProps {
33
37
 
34
38
  function ImageWrapper(props: React.PropsWithChildren<ImageWrapperProps>) {
35
39
  const {
36
- additionalStyles = {},
40
+ additionalWrapperStyles = {},
37
41
  className = "",
38
42
  children,
39
43
  imageAspectRatio = ImageRatios.Original,
@@ -45,19 +49,21 @@ function ImageWrapper(props: React.PropsWithChildren<ImageWrapperProps>) {
45
49
  });
46
50
  return (
47
51
  <Box
48
- __css={{ ...styles, ...additionalStyles }}
49
52
  className={`the-wrap ${className}`}
53
+ __css={{ ...styles, ...additionalWrapperStyles }}
50
54
  >
51
- <Box __css={styles.crop} className="the-crop">
55
+ <Box className="the-crop" __css={styles.crop}>
52
56
  {children}
53
57
  </Box>
54
58
  </Box>
55
59
  );
56
60
  }
57
61
 
58
- export default function Image(props: React.ComponentProps<"img"> & ImageProps) {
62
+ export default function Image(props: ImageProps) {
59
63
  const {
60
- additionalStyles = {},
64
+ additionalFigureStyles = {},
65
+ additionalImageStyles = {},
66
+ additionalWrapperStyles = {},
61
67
  alt,
62
68
  className = "",
63
69
  component,
@@ -81,14 +87,19 @@ export default function Image(props: React.ComponentProps<"img"> & ImageProps) {
81
87
  const imageComponent: JSX.Element = component ? (
82
88
  component
83
89
  ) : (
84
- <Box as="img" src={src} alt={alt} __css={styles.img} />
90
+ <Box
91
+ as="img"
92
+ src={src}
93
+ alt={alt}
94
+ __css={{ ...styles.img, ...additionalImageStyles }}
95
+ />
85
96
  );
86
97
  const finalImage = useImageWrapper ? (
87
98
  <ImageWrapper
88
99
  className={className}
89
100
  imageAspectRatio={imageAspectRatio}
90
101
  imageSize={imageSize}
91
- additionalStyles={additionalStyles}
102
+ additionalWrapperStyles={additionalWrapperStyles}
92
103
  >
93
104
  {imageComponent}
94
105
  </ImageWrapper>
@@ -97,7 +108,7 @@ export default function Image(props: React.ComponentProps<"img"> & ImageProps) {
97
108
  );
98
109
 
99
110
  return imageCaption || imageCredit ? (
100
- <Box as="figure" __css={styles.figure}>
111
+ <Box as="figure" __css={{ ...styles.figure, ...additionalFigureStyles }}>
101
112
  {finalImage}
102
113
  <Box as="figcaption" __css={styles.figcaption}>
103
114
  {imageCaption && (
@@ -14,6 +14,8 @@ export enum ImageSizes {
14
14
  Large = "large",
15
15
  Medium = "medium",
16
16
  Small = "small",
17
+ ExtraSmall = "xsmall",
18
+ ExtraExtraSmall = "xxsmall",
17
19
  }
18
20
 
19
21
  export enum ImageTypes {
@@ -54,6 +54,22 @@ exports[`Image Renders the UI snapshot correctly 5`] = `
54
54
  `;
55
55
 
56
56
  exports[`Image Renders the UI snapshot correctly 6`] = `
57
+ <img
58
+ alt=""
59
+ className="css-0"
60
+ src="test.png"
61
+ />
62
+ `;
63
+
64
+ exports[`Image Renders the UI snapshot correctly 7`] = `
65
+ <img
66
+ alt=""
67
+ className="css-0"
68
+ src="test.png"
69
+ />
70
+ `;
71
+
72
+ exports[`Image Renders the UI snapshot correctly 8`] = `
57
73
  <div
58
74
  className="the-wrap css-0"
59
75
  >
@@ -69,7 +85,7 @@ exports[`Image Renders the UI snapshot correctly 6`] = `
69
85
  </div>
70
86
  `;
71
87
 
72
- exports[`Image Renders the UI snapshot correctly 7`] = `
88
+ exports[`Image Renders the UI snapshot correctly 9`] = `
73
89
  <div
74
90
  className="the-wrap css-0"
75
91
  >
@@ -85,7 +101,7 @@ exports[`Image Renders the UI snapshot correctly 7`] = `
85
101
  </div>
86
102
  `;
87
103
 
88
- exports[`Image Renders the UI snapshot correctly 8`] = `
104
+ exports[`Image Renders the UI snapshot correctly 10`] = `
89
105
  <img
90
106
  alt=""
91
107
  className="css-0"
@@ -93,7 +109,7 @@ exports[`Image Renders the UI snapshot correctly 8`] = `
93
109
  />
94
110
  `;
95
111
 
96
- exports[`Image Renders the UI snapshot correctly 9`] = `
112
+ exports[`Image Renders the UI snapshot correctly 11`] = `
97
113
  <div
98
114
  className="the-wrap css-0"
99
115
  >
@@ -109,7 +125,7 @@ exports[`Image Renders the UI snapshot correctly 9`] = `
109
125
  </div>
110
126
  `;
111
127
 
112
- exports[`Image Renders the UI snapshot correctly 10`] = `
128
+ exports[`Image Renders the UI snapshot correctly 12`] = `
113
129
  <div
114
130
  className="the-wrap css-0"
115
131
  >
@@ -125,7 +141,7 @@ exports[`Image Renders the UI snapshot correctly 10`] = `
125
141
  </div>
126
142
  `;
127
143
 
128
- exports[`Image Renders the UI snapshot correctly 11`] = `
144
+ exports[`Image Renders the UI snapshot correctly 13`] = `
129
145
  <div
130
146
  className="the-wrap css-0"
131
147
  >
@@ -141,7 +157,7 @@ exports[`Image Renders the UI snapshot correctly 11`] = `
141
157
  </div>
142
158
  `;
143
159
 
144
- exports[`Image Renders the UI snapshot correctly 12`] = `
160
+ exports[`Image Renders the UI snapshot correctly 14`] = `
145
161
  <div
146
162
  className="the-wrap css-0"
147
163
  >
@@ -157,7 +173,7 @@ exports[`Image Renders the UI snapshot correctly 12`] = `
157
173
  </div>
158
174
  `;
159
175
 
160
- exports[`Image Renders the UI snapshot correctly 13`] = `
176
+ exports[`Image Renders the UI snapshot correctly 15`] = `
161
177
  <div
162
178
  className="the-wrap css-0"
163
179
  >
@@ -173,7 +189,7 @@ exports[`Image Renders the UI snapshot correctly 13`] = `
173
189
  </div>
174
190
  `;
175
191
 
176
- exports[`Image Renders the UI snapshot correctly 14`] = `
192
+ exports[`Image Renders the UI snapshot correctly 16`] = `
177
193
  <div
178
194
  className="the-wrap css-0"
179
195
  >
@@ -1,11 +1,11 @@
1
+ import { Box } 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";
8
- import { Box } from "@chakra-ui/react";
6
+ Meta,
7
+ Story,
8
+ } from "@storybook/addon-docs";
9
9
 
10
10
  import Label from "./Label";
11
11
  import { getCategory } from "../../utils/componentCategories";
@@ -17,8 +17,15 @@ import { getCategory } from "../../utils/componentCategories";
17
17
  jest: ["Label.test.tsx"],
18
18
  }}
19
19
  argTypes={{
20
- className: { table: { disable: true } },
21
- id: { table: { disable: true } },
20
+ className: { control: false },
21
+ id: { control: false },
22
+ optReqFlag: {
23
+ control: { type: "select" },
24
+ options: ["Required", "Optional", ""],
25
+ },
26
+ text: {
27
+ description: "Only used for Storybook",
28
+ },
22
29
  }}
23
30
  />
24
31
 
@@ -27,32 +34,26 @@ import { getCategory } from "../../utils/componentCategories";
27
34
  | Component Version | DS Version |
28
35
  | ----------------- | ---------- |
29
36
  | Added | `0.0.10` |
30
- | Latest | `0.25.1` |
37
+ | Latest | `0.25.8` |
31
38
 
32
39
  <Description of={Label} />
33
40
 
34
41
  <Canvas>
35
42
  <Story
36
- name="Label"
43
+ name="Label with Controls"
37
44
  args={{
38
- text: "A label for a villager.",
39
- optReqFlag: "Required",
45
+ className: undefined,
40
46
  htmlFor: "id-of-input-element",
41
- }}
42
- argTypes={{
43
- optReqFlag: {
44
- control: {
45
- type: "select",
46
- },
47
- options: ["Required", "Optional", ""],
48
- },
47
+ id: "label-id",
48
+ optReqFlag: "Required",
49
+ text: "A label for a villager.",
49
50
  }}
50
51
  >
51
52
  {(args) => <Label {...args}>{args.text}</Label>}
52
53
  </Story>
53
54
  </Canvas>
54
55
 
55
- <ArgsTable story="Label" />
56
+ <ArgsTable story="Label with Controls" />
56
57
 
57
58
  ## Required/Optional helper text
58
59