@nypl/design-system-react-components 0.25.8 → 0.25.11

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 (282) hide show
  1. package/CHANGELOG.md +110 -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 +0 -21
  19. package/dist/components/Icons/IconTypes.d.ts +0 -23
  20. package/dist/components/Image/Image.d.ts +11 -3
  21. package/dist/components/List/List.d.ts +1 -1
  22. package/dist/components/Logo/Logo.d.ts +28 -0
  23. package/dist/components/Logo/LogoSvgs.d.ts +34 -0
  24. package/dist/components/Logo/LogoTypes.d.ts +46 -0
  25. package/dist/components/Modal/Modal.d.ts +0 -4
  26. package/dist/components/Notification/Notification.d.ts +4 -2
  27. package/dist/components/Placeholder/Placeholder.d.ts +3 -5
  28. package/dist/components/Radio/Radio.d.ts +6 -5
  29. package/dist/components/RadioGroup/RadioGroup.d.ts +6 -5
  30. package/dist/components/SearchBar/SearchBar.d.ts +15 -7
  31. package/dist/components/Select/Select.d.ts +7 -2
  32. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
  33. package/dist/components/Slider/Slider.d.ts +3 -2
  34. package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
  35. package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
  36. package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
  37. package/dist/components/Table/Table.d.ts +29 -0
  38. package/dist/components/Template/Template.d.ts +30 -6
  39. package/dist/components/Text/Text.d.ts +2 -2
  40. package/dist/components/TextInput/TextInput.d.ts +4 -3
  41. package/dist/components/Toggle/Toggle.d.ts +3 -2
  42. package/dist/components/VideoPlayer/VideoPlayer.d.ts +14 -5
  43. package/dist/design-system-react-components.cjs.development.js +6721 -5777
  44. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  45. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  46. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  47. package/dist/design-system-react-components.esm.js +6774 -5839
  48. package/dist/design-system-react-components.esm.js.map +1 -1
  49. package/dist/index.d.ts +10 -8
  50. package/dist/resources.scss +0 -2
  51. package/dist/styles.css +2 -2
  52. package/dist/theme/components/breadcrumb.d.ts +1 -1
  53. package/dist/theme/components/button.d.ts +0 -12
  54. package/dist/theme/components/card.d.ts +14 -2
  55. package/dist/theme/components/customTable.d.ts +56 -0
  56. package/dist/theme/components/fieldset.d.ts +2 -2
  57. package/dist/theme/components/global.d.ts +1 -1
  58. package/dist/theme/components/heading.d.ts +4 -0
  59. package/dist/theme/components/label.d.ts +1 -1
  60. package/dist/theme/components/link.d.ts +14 -1
  61. package/dist/theme/components/list.d.ts +0 -2
  62. package/dist/theme/components/logo.d.ts +4 -0
  63. package/dist/theme/components/notification.d.ts +13 -4
  64. package/dist/theme/components/searchBar.d.ts +9 -11
  65. package/dist/theme/components/select.d.ts +1 -0
  66. package/dist/theme/components/structuredContent.d.ts +33 -0
  67. package/dist/theme/components/template.d.ts +10 -10
  68. package/dist/theme/components/textInput.d.ts +4 -0
  69. package/dist/theme/components/toggle.d.ts +8 -5
  70. package/dist/utils/utils.d.ts +10 -0
  71. package/package.json +40 -37
  72. package/src/__tests__/utils/utils.test.ts +23 -1
  73. package/src/components/Accordion/Accordion.stories.mdx +15 -13
  74. package/src/components/Accordion/Accordion.test.tsx +45 -1
  75. package/src/components/Accordion/Accordion.tsx +20 -8
  76. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
  77. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  78. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  79. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  80. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +43 -13
  81. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +15 -0
  82. package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
  83. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +5 -5
  84. package/src/components/Button/Button.stories.mdx +93 -48
  85. package/src/components/Button/Button.test.tsx +0 -12
  86. package/src/components/Button/Button.tsx +7 -7
  87. package/src/components/Button/ButtonTypes.tsx +0 -1
  88. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  89. package/src/components/Card/Card.stories.mdx +186 -71
  90. package/src/components/Card/Card.test.tsx +45 -22
  91. package/src/components/Card/Card.tsx +21 -6
  92. package/src/components/Card/__snapshots__/Card.test.tsx.snap +9 -3
  93. package/src/components/Chakra/Box.stories.mdx +3 -3
  94. package/src/components/Chakra/Center.stories.mdx +5 -5
  95. package/src/components/Chakra/Flex.stories.mdx +113 -0
  96. package/src/components/Chakra/Grid.stories.mdx +3 -3
  97. package/src/components/Chakra/Stack.stories.mdx +2 -2
  98. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  99. package/src/components/Checkbox/Checkbox.tsx +13 -8
  100. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  101. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  102. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  103. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  104. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  105. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  106. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  107. package/src/components/DatePicker/DatePicker.test.tsx +6 -6
  108. package/src/components/DatePicker/DatePicker.tsx +17 -11
  109. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +50 -24
  110. package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
  111. package/src/components/Fieldset/Fieldset.tsx +2 -4
  112. package/src/components/Form/Form.stories.mdx +75 -49
  113. package/src/components/Form/Form.test.tsx +92 -3
  114. package/src/components/Form/Form.tsx +28 -23
  115. package/src/components/Form/FormTypes.tsx +2 -2
  116. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
  117. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  118. package/src/components/Heading/Heading.stories.mdx +59 -23
  119. package/src/components/Heading/Heading.test.tsx +82 -18
  120. package/src/components/Heading/Heading.tsx +31 -31
  121. package/src/components/Heading/HeadingTypes.tsx +6 -6
  122. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  123. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  124. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  125. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  126. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  127. package/src/components/Hero/Hero.stories.mdx +72 -53
  128. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +11 -9
  129. package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
  130. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -4
  131. package/src/components/Icons/Icon.stories.mdx +78 -77
  132. package/src/components/Icons/Icon.test.tsx +1 -1
  133. package/src/components/Icons/Icon.tsx +5 -6
  134. package/src/components/Icons/IconSvgs.tsx +0 -42
  135. package/src/components/Icons/IconTypes.tsx +0 -24
  136. package/src/components/Image/Image.stories.mdx +66 -18
  137. package/src/components/Image/Image.tsx +21 -10
  138. package/src/components/Label/Label.stories.mdx +20 -19
  139. package/src/components/Link/Link.stories.mdx +102 -51
  140. package/src/components/Link/Link.test.tsx +38 -8
  141. package/src/components/Link/Link.tsx +19 -12
  142. package/src/components/Link/__snapshots__/Link.test.tsx.snap +60 -0
  143. package/src/components/List/List.stories.mdx +60 -29
  144. package/src/components/List/List.test.tsx +1 -1
  145. package/src/components/List/List.tsx +2 -2
  146. package/src/components/List/__snapshots__/List.test.tsx.snap +3 -1
  147. package/src/components/Logo/Logo.stories.mdx +222 -0
  148. package/src/components/Logo/Logo.test.tsx +98 -0
  149. package/src/components/Logo/Logo.tsx +97 -0
  150. package/src/components/Logo/LogoSvgs.tsx +66 -0
  151. package/src/components/Logo/LogoTypes.tsx +48 -0
  152. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  153. package/src/components/Modal/Modal.stories.mdx +20 -5
  154. package/src/components/Modal/Modal.tsx +2 -8
  155. package/src/components/Notification/Notification.stories.mdx +128 -38
  156. package/src/components/Notification/Notification.test.tsx +49 -1
  157. package/src/components/Notification/Notification.tsx +25 -12
  158. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +4 -0
  159. package/src/components/Pagination/Pagination.stories.mdx +18 -7
  160. package/src/components/Pagination/Pagination.tsx +3 -3
  161. package/src/components/Placeholder/Placeholder.tsx +7 -14
  162. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +72 -43
  163. package/src/components/Radio/Radio.stories.mdx +39 -19
  164. package/src/components/Radio/Radio.tsx +13 -9
  165. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
  166. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  167. package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
  168. package/src/components/RadioGroup/RadioGroup.tsx +97 -94
  169. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
  170. package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
  171. package/src/components/SearchBar/SearchBar.stories.mdx +115 -33
  172. package/src/components/SearchBar/SearchBar.tsx +72 -51
  173. package/src/components/Select/Select.stories.mdx +48 -14
  174. package/src/components/Select/Select.test.tsx +89 -0
  175. package/src/components/Select/Select.tsx +27 -12
  176. package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
  177. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  178. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  179. package/src/components/Slider/Slider.stories.mdx +72 -22
  180. package/src/components/Slider/Slider.tsx +15 -10
  181. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +67 -30
  182. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  183. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  184. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  185. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  186. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  187. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  188. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  189. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  190. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  191. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  192. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  193. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  194. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  195. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  196. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  197. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  198. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  199. package/src/components/Table/Table.stories.mdx +165 -0
  200. package/src/components/Table/Table.test.tsx +137 -0
  201. package/src/components/Table/Table.tsx +126 -0
  202. package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
  203. package/src/components/Tabs/Tabs.stories.mdx +20 -14
  204. package/src/components/Tabs/Tabs.test.tsx +21 -5
  205. package/src/components/Tabs/Tabs.tsx +35 -20
  206. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
  207. package/src/components/Template/Template.stories.mdx +132 -48
  208. package/src/components/Template/Template.test.tsx +128 -6
  209. package/src/components/Template/Template.tsx +93 -13
  210. package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -0
  211. package/src/components/Text/Text.stories.mdx +33 -11
  212. package/src/components/Text/Text.tsx +2 -2
  213. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  214. package/src/components/TextInput/TextInput.test.tsx +96 -0
  215. package/src/components/TextInput/TextInput.tsx +12 -8
  216. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  217. package/src/components/Toggle/Toggle.stories.mdx +33 -9
  218. package/src/components/Toggle/Toggle.tsx +14 -9
  219. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +4 -4
  220. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +64 -14
  221. package/src/components/VideoPlayer/VideoPlayer.tsx +17 -7
  222. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +12 -6
  223. package/src/docs/Chakra.stories.mdx +5 -8
  224. package/src/docs/Intro.stories.mdx +2 -2
  225. package/src/index.ts +13 -6
  226. package/src/styles/base/_03-base.scss +1 -1
  227. package/src/styles/base/_place-holder.scss +7 -7
  228. package/src/styles.scss +1 -5
  229. package/src/theme/components/breadcrumb.ts +4 -4
  230. package/src/theme/components/button.ts +5 -12
  231. package/src/theme/components/card.ts +5 -2
  232. package/src/theme/components/checkbox.ts +1 -1
  233. package/src/theme/components/customTable.ts +63 -0
  234. package/src/theme/components/datePicker.ts +1 -1
  235. package/src/theme/components/global.ts +7 -7
  236. package/src/theme/components/heading.ts +13 -11
  237. package/src/theme/components/helperErrorText.ts +1 -1
  238. package/src/theme/components/image.ts +1 -1
  239. package/src/theme/components/link.ts +17 -5
  240. package/src/theme/components/list.ts +3 -5
  241. package/src/theme/components/logo.ts +54 -0
  242. package/src/theme/components/notification.ts +19 -9
  243. package/src/theme/components/searchBar.ts +11 -13
  244. package/src/theme/components/select.ts +1 -0
  245. package/src/theme/components/statusBadge.ts +1 -1
  246. package/src/theme/components/structuredContent.ts +74 -0
  247. package/src/theme/components/template.ts +10 -10
  248. package/src/theme/components/text.ts +6 -6
  249. package/src/theme/components/textInput.ts +2 -0
  250. package/src/theme/components/toggle.ts +10 -6
  251. package/src/theme/components/videoPlayer.ts +0 -2
  252. package/src/theme/foundations/global.ts +2 -2
  253. package/src/theme/foundations/typography.ts +84 -12
  254. package/src/theme/index.ts +6 -0
  255. package/src/utils/componentCategories.ts +2 -1
  256. package/src/utils/utils.ts +17 -0
  257. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  258. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  259. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  260. package/dist/components/Input/Input.d.ts +0 -36
  261. package/dist/components/Input/Input.stories.d.ts +0 -29
  262. package/dist/components/Input/InputTypes.d.ts +0 -6
  263. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  264. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  265. package/dist/helpers/getCSSVariable.d.ts +0 -1
  266. package/dist/interfaces.d.ts +0 -3
  267. package/dist/utils/bem.d.ts +0 -1
  268. package/src/__tests__/utils/bem.test.ts +0 -37
  269. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  270. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  271. package/src/components/CardEdition/CardEdition.tsx +0 -60
  272. package/src/components/CardEdition/_CardEdition.scss +0 -137
  273. package/src/components/Input/Input.stories.tsx +0 -133
  274. package/src/components/Input/Input.test.tsx +0 -266
  275. package/src/components/Input/Input.tsx +0 -81
  276. package/src/components/Input/InputTypes.tsx +0 -8
  277. package/src/components/Input/_Input.scss +0 -78
  278. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  279. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  280. package/src/helpers/getCSSVariable.tsx +0 -5
  281. package/src/interfaces.ts +0 -3
  282. package/src/utils/bem.ts +0 -44
@@ -0,0 +1,427 @@
1
+ import {
2
+ ArgsTable,
3
+ Canvas,
4
+ Description,
5
+ Meta,
6
+ Story,
7
+ } from "@storybook/addon-docs";
8
+ import { withDesign } from "storybook-addon-designs";
9
+
10
+ import { ImageRatios, ImageSizes, ImageTypes } from "../Image/ImageTypes";
11
+ import StructuredContent from "./StructuredContent";
12
+ import { StructuredContentImagePosition } from "./StructuredContentTypes";
13
+ import DSProvider from "../../theme/provider";
14
+ import { getCategory } from "../../utils/componentCategories";
15
+ import { getStorybookEnumValues } from "../../utils/utils";
16
+
17
+ export const imageAspectRatioEnumValues = getStorybookEnumValues(
18
+ ImageRatios,
19
+ "ImageRatios"
20
+ );
21
+ export const imagePositionEnumValues = getStorybookEnumValues(
22
+ StructuredContentImagePosition,
23
+ "StructuredContentImagePosition"
24
+ );
25
+ export const imageSizeEnumValues = getStorybookEnumValues(
26
+ ImageSizes,
27
+ "ImageSizes"
28
+ );
29
+
30
+ <Meta
31
+ title={getCategory("StructuredContent")}
32
+ component={StructuredContent}
33
+ decorators={[withDesign]}
34
+ parameters={{
35
+ design: {
36
+ type: "figma",
37
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36818%3A24923",
38
+ },
39
+ jest: ["StructuredContent.test.tsx"],
40
+ }}
41
+ argTypes={{
42
+ className: { control: false },
43
+ id: { control: false },
44
+ imageAspectRatio: {
45
+ table: {
46
+ defaultValue: { summary: "ImageRatios.Square" },
47
+ },
48
+ options: imageAspectRatioEnumValues.options,
49
+ },
50
+ imagePosition: {
51
+ table: {
52
+ defaultValue: { summary: "StructuredContentImagePosition.Left" },
53
+ },
54
+ options: imagePositionEnumValues.options,
55
+ },
56
+ imageSize: {
57
+ table: {
58
+ defaultValue: { summary: "ImageSizes.Medium" },
59
+ },
60
+ options: imageSizeEnumValues.options,
61
+ },
62
+ imageComponent: { control: false },
63
+ }}
64
+ />
65
+
66
+ # StructuredContent
67
+
68
+ | Component Version | DS Version |
69
+ | ----------------- | ---------- |
70
+ | Added | `0.25.9` |
71
+ | Latest | `0.25.11` |
72
+
73
+ <Description of={StructuredContent} />
74
+
75
+ <Canvas withToolbar>
76
+ <Story
77
+ name="StructuredContent with Controls"
78
+ args={{
79
+ calloutText: "This is the callout text",
80
+ className: undefined,
81
+ headingText: "Heading text",
82
+ id: "structured-content",
83
+ imageAlt: "Image alt text",
84
+ imageAspectRatio: "ImageRatios.Square",
85
+ imageCaption: "Image caption",
86
+ imageCredit: "Image credit",
87
+ imagePosition: "StructuredContentImagePosition.Left",
88
+ imageSize: "ImageSizes.Medium",
89
+ imageSrc: "https://placeimg.com/400/300/animals",
90
+ bodyContent:
91
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod" +
92
+ " tempor incididunt ut labore et dolore magna aliqua. Pellentesque massa" +
93
+ " placerat duis ultricies lacus sed turpis tincidunt. Porttitor eget " +
94
+ "dolor morbi non arcu risus quis varius. Faucibus in ornare quam viverra" +
95
+ " orci sagittis. Nisl vel pretium lectus quam id leo in. Etiam dignissim" +
96
+ " diam quis enim lobortis scelerisque fermentum. Diam maecenas sed enim" +
97
+ " ut sem viverra. Diam quam nulla porttitor massa id neque. Sed " +
98
+ "faucibus turpis in eu mi. Ornare lectus sit amet est placerat in. " +
99
+ "Quis blandit turpis cursus in. Aliquam ut porttitor leo a diam " +
100
+ "sollicitudin tempor id eu. Pellentesque eu tincidunt tortor aliquam " +
101
+ "nulla facilisi cras fermentum. Porttitor leo a diam sollicitudin " +
102
+ "tempor id eu nisl nunc. Feugiat nisl pretium fusce id velit ut tortor. " +
103
+ "Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Purus " +
104
+ "gravida quis blandit turpis cursus in hac. Morbi tempus iaculis urna id " +
105
+ "volutpat. Lectus nulla at volutpat diam ut venenatis. Donec ac odio " +
106
+ "tempor orci dapibus ultrices in iaculis. Dui vivamus arcu felis " +
107
+ "bibendum ut tristique. Cras semper auctor neque vitae tempus quam " +
108
+ "pellentesque. Placerat orci nulla pellentesque dignissim enim sit " +
109
+ "amet. Feugiat pretium nibh ipsum consequat. Placerat orci nulla " +
110
+ "pellentesque dignissim. Suspendisse faucibus interdum posuere lorem. " +
111
+ "Nullam non nisi est sit. Turpis egestas integer eget aliquet nibh " +
112
+ "praesent. Tortor at risus viverra adipiscing at. Eu augue ut lectus " +
113
+ "arcu bibendum at varius vel pharetra.",
114
+ }}
115
+ >
116
+ {(args) => (
117
+ <StructuredContent
118
+ {...args}
119
+ imageAspectRatio={imageAspectRatioEnumValues.getValue(
120
+ args.imageAspectRatio
121
+ )}
122
+ imagePosition={imagePositionEnumValues.getValue(args.imagePosition)}
123
+ imageSize={imageSizeEnumValues.getValue(args.imageSize)}
124
+ />
125
+ )}
126
+ </Story>
127
+ </Canvas>
128
+
129
+ <ArgsTable story="StructuredContent with Controls" />
130
+
131
+ ## With HTML String Text Content
132
+
133
+ The following body content is passed as a string to the `bodyContent` prop. It
134
+ includes HTML tags in the string.
135
+
136
+ <Canvas>
137
+ <Story name="With HTMl String Text Content">
138
+ <StructuredContent
139
+ calloutText="This is the callout text"
140
+ headingText="Heading text"
141
+ imageAlt="Image alt text"
142
+ imageAspectRatio={ImageRatios.Original}
143
+ imageCaption="Image caption"
144
+ imageCredit="Image credit"
145
+ imagePosition={StructuredContentImagePosition.Left}
146
+ imageSize={ImageSizes.Medium}
147
+ imageSrc="https://placeimg.com/400/300/animals"
148
+ bodyContent={
149
+ "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
150
+ "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
151
+ "Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. " +
152
+ "<a href='#'>Porttitor eget dolor</a> morbi non arcu risus quis varius. " +
153
+ "Faucibus in ornare quam viverra orci sagittis.</p><p>Nisl vel pretium " +
154
+ "lectus quam id leo in. Etiam dignissim diam quis enim lobortis " +
155
+ "scelerisque fermentum. Diam maecenas sed enim ut sem viverra. <b>Diam " +
156
+ "quam nulla porttitor massa id neque. Sed faucibus turpis in eu mi. " +
157
+ "</b></p><p>Ornare lectus sit amet est placerat in. Quis blandit turpis " +
158
+ "cursus in. Aliquam ut porttitor leo a diam sollicitudin tempor id eu. " +
159
+ "Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum. " +
160
+ "Porttitor leo a diam sollicitudin tempor id eu nisl nunc. Feugiat" +
161
+ "nisl pretium fusce id velit ut tortor. Porttitor leo a diam sollicitudin " +
162
+ "tempor id eu nisl nunc.</p><ul><li>one</li><li>two</li>" +
163
+ "<li>three</li><li>four</li></ul><p><i>Mauris nunc congue nisi vitae suscipit" +
164
+ "tellus mauris a diam. Purus gravida quis blandit turpis cursus in hac." +
165
+ "Morbi tempus iaculis urna id volutpat. Lectus nulla at volutpat diam ut" +
166
+ "venenatis. Donec ac odio tempor orci dapibus ultrices in iaculis. Dui vivamus" +
167
+ "arcu felis bibendum ut tristique. Cras semper auctor neque vitae tempus" +
168
+ "quam pellentesque. Placerat orci nulla pellentesque dignissim enim sit" +
169
+ "amet. Feugiat pretium nibh ipsum consequat. Placerat orci nulla pellentesque" +
170
+ "dignissim. Suspendisse faucibus interdum posuere lorem. Nullam non nisi" +
171
+ "est sit. Turpis egestas integer eget aliquet nibh praesent. Tortor at risus" +
172
+ "viverra adipiscing at. Eu augue ut lectus arcu bibendum at varius vel" +
173
+ "pharetra.</i></p>"
174
+ }
175
+ />
176
+ </Story>
177
+ </Canvas>
178
+
179
+ ## With HTML Element Text Content
180
+
181
+ The following content is passed as HTML DOM elements to the `bodyContent` prop.
182
+
183
+ <Canvas>
184
+ <Story name="With HTML Element Text Content">
185
+ <StructuredContent
186
+ calloutText="This is the callout text"
187
+ headingText="Heading text"
188
+ imageAlt="Image alt text"
189
+ imageAspectRatio={ImageRatios.Original}
190
+ imageCaption="Image caption"
191
+ imageCredit="Image credit"
192
+ imagePosition={StructuredContentImagePosition.Left}
193
+ imageSize={ImageSizes.Medium}
194
+ imageSrc="https://placeimg.com/400/300/animals"
195
+ bodyContent={
196
+ <>
197
+ <p>
198
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
199
+ eiusmod tempor incididunt ut labore et dolore magna aliqua.
200
+ Pellentesque massa placerat duis ultricies lacus sed turpis
201
+ tincidunt. <a href="#">Porttitor eget dolor</a> morbi non arcu risus
202
+ quis varius. Faucibus in ornare quam viverra orci sagittis.
203
+ </p>
204
+ <p>
205
+ Nisl vel pretium lectus quam id leo in. Etiam dignissim diam quis
206
+ enim lobortis scelerisque fermentum. Diam maecenas sed enim ut sem
207
+ viverra.{" "}
208
+ <b>
209
+ Diam quam nulla porttitor massa id neque. Sed faucibus turpis in
210
+ eu mi.
211
+ </b>
212
+ </p>
213
+ <p>
214
+ Ornare lectus sit amet est placerat in. Quis blandit turpis cursus
215
+ in. Aliquam ut porttitor leo a diam sollicitudin tempor id eu.
216
+ Pellentesque eu tincidunt tortor aliquam nulla facilisi cras
217
+ fermentum. Porttitor leo a diam sollicitudin tempor id eu nisl nunc.
218
+ Feugiat nisl pretium fusce id velit ut tortor. Porttitor leo a diam
219
+ sollicitudin tempor id eu nisl nunc.
220
+ </p>
221
+ <ul>
222
+ <li>one</li>
223
+ <li>two</li>
224
+ <li>three</li>
225
+ <li>four</li>
226
+ </ul>
227
+ <p>
228
+ <i>
229
+ Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Purus
230
+ gravida quis blandit turpis cursus in hac. Morbi tempus iaculis
231
+ urna id volutpat. Lectus nulla at volutpat diam ut venenatis.
232
+ Donec ac odio tempor orci dapibus ultrices in iaculis. Dui vivamus
233
+ arcu felis bibendum ut tristique. Cras semper auctor neque vitae
234
+ tempus quam pellentesque. Placerat orci nulla pellentesque
235
+ dignissim enim sit amet. Feugiat pretium nibh ipsum consequat.
236
+ Placerat orci nulla pellentesque dignissim. Suspendisse faucibus
237
+ interdum posuere lorem. Nullam non nisi est sit. Turpis egestas
238
+ integer eget aliquet nibh praesent. Tortor at risus 'viverra
239
+ adipiscing at. Eu augue ut lectus arcu bibendum at varius vel'
240
+ pharetra.
241
+ </i>
242
+ </p>
243
+ </>
244
+ }
245
+ />
246
+ </Story>
247
+ </Canvas>
248
+
249
+ ## Examples
250
+
251
+ The following has two `StructuredContent` components. The first one has an image
252
+ but no callout content. The second component does not have an image.
253
+
254
+ <Canvas>
255
+ <DSProvider>
256
+ <StructuredContent
257
+ headingText="Heading text"
258
+ imageAlt="Image alt text"
259
+ imageAspectRatio={ImageRatios.Original}
260
+ imageCaption="Image caption"
261
+ imageCredit="Image credit"
262
+ imagePosition={StructuredContentImagePosition.Left}
263
+ imageSize={ImageSizes.Medium}
264
+ imageSrc="https://placeimg.com/400/300/animals"
265
+ bodyContent={
266
+ "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
267
+ "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
268
+ "Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. " +
269
+ "<a href='#'>Porttitor eget dolor</a> morbi non arcu risus quis varius. " +
270
+ "Faucibus in ornare quam viverra orci sagittis.</p><p>Nisl vel pretium " +
271
+ "lectus quam id leo in. Etiam dignissim diam quis enim lobortis " +
272
+ "scelerisque fermentum. Diam maecenas sed enim ut sem viverra. <b>Diam " +
273
+ "quam nulla porttitor massa id neque. Sed faucibus turpis in eu mi. " +
274
+ "</b></p><p>Ornare lectus sit amet est placerat in. Quis blandit turpis " +
275
+ "cursus in. Aliquam ut porttitor leo a diam sollicitudin tempor id eu. " +
276
+ "Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum. " +
277
+ "Porttitor leo a diam sollicitudin tempor id eu nisl nunc. Feugiat" +
278
+ "nisl pretium fusce id velit ut tortor. Porttitor leo a diam sollicitudin " +
279
+ "tempor id eu nisl nunc.</p><ul><li>one</li><li>two</li>" +
280
+ "<li>three</li><li>four</li></ul><p><i>Mauris nunc congue nisi vitae suscipit" +
281
+ "tellus mauris a diam. Purus gravida quis blandit turpis cursus in hac." +
282
+ "Morbi tempus iaculis urna id volutpat. Lectus nulla at volutpat diam ut" +
283
+ "venenatis. Donec ac odio tempor orci dapibus ultrices in iaculis. Dui vivamus" +
284
+ "arcu felis bibendum ut tristique. Cras semper auctor neque vitae tempus" +
285
+ "quam pellentesque. Placerat orci nulla pellentesque dignissim enim sit" +
286
+ "amet. Feugiat pretium nibh ipsum consequat. Placerat orci nulla pellentesque" +
287
+ "dignissim. Suspendisse faucibus interdum posuere lorem. Nullam non nisi" +
288
+ "est sit. Turpis egestas integer eget aliquet nibh praesent. Tortor at risus" +
289
+ "viverra adipiscing at. Eu augue ut lectus arcu bibendum at varius vel" +
290
+ "pharetra.</i></p>"
291
+ }
292
+ />
293
+ <StructuredContent
294
+ calloutText="This is the callout text"
295
+ headingText="Heading text"
296
+ bodyContent={
297
+ "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
298
+ "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
299
+ "Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. " +
300
+ "<a href='#'>Porttitor eget dolor</a> morbi non arcu risus quis varius. " +
301
+ "Faucibus in ornare quam viverra orci sagittis.</p><p>Nisl vel pretium " +
302
+ "lectus quam id leo in. Etiam dignissim diam quis enim lobortis " +
303
+ "scelerisque fermentum. Diam maecenas sed enim ut sem viverra. <b>Diam " +
304
+ "quam nulla porttitor massa id neque. Sed faucibus turpis in eu mi.</b></p>"
305
+ }
306
+ />
307
+ </DSProvider>
308
+ </Canvas>
309
+
310
+ The following has three `StructuredContent` components. The first one only has
311
+ the callout content. The second has no callout content but an image and text content.
312
+ The third one does not contain an image.
313
+
314
+ <Canvas>
315
+ <DSProvider>
316
+ <StructuredContent
317
+ calloutText="This is the callout text"
318
+ headingText="Heading text"
319
+ />
320
+ <StructuredContent
321
+ headingText="Heading text"
322
+ imageAlt="Image alt text"
323
+ imageAspectRatio={ImageRatios.Original}
324
+ imageCaption="Image caption"
325
+ imageCredit="Image credit"
326
+ imagePosition={StructuredContentImagePosition.Left}
327
+ imageSize={ImageSizes.Medium}
328
+ imageSrc="https://placeimg.com/400/300/animals"
329
+ bodyContent={
330
+ "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
331
+ "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
332
+ "Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. " +
333
+ "<a href='#'>Porttitor eget dolor</a> morbi non arcu risus quis varius. " +
334
+ "Faucibus in ornare quam viverra orci sagittis.</p><p>Nisl vel pretium " +
335
+ "lectus quam id leo in. Etiam dignissim diam quis enim lobortis " +
336
+ "scelerisque fermentum. Diam maecenas sed enim ut sem viverra. <b>Diam " +
337
+ "quam nulla porttitor massa id neque. Sed faucibus turpis in eu mi. " +
338
+ "</b></p><p>Ornare lectus sit amet est placerat in. Quis blandit turpis " +
339
+ "cursus in. Aliquam ut porttitor leo a diam sollicitudin tempor id eu. " +
340
+ "Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum. " +
341
+ "Porttitor leo a diam sollicitudin tempor id eu nisl nunc. Feugiat nisl " +
342
+ "pretium fusce id velit ut tortor. </p><p><i>Mauris nunc congue nisi " +
343
+ "vitae suscipit tellus mauris a diam. Purus gravida quis blandit turpis " +
344
+ "cursus in hac. Morbi tempus iaculis urna id volutpat. Lectus nulla at " +
345
+ "volutpat diam ut venenatis. Donec ac odio tempor orci dapibus ultrices " +
346
+ "in iaculis. Dui vivamus arcu felis bibendum ut tristique. Cras semper " +
347
+ "auctor neque vitae tempus quam pellentesque. Placerat orci nulla " +
348
+ "pellentesque dignissim enim sit amet. Feugiat pretium nibh ipsum " +
349
+ "consequat. Placerat orci nulla pellentesque dignissim. Suspendisse " +
350
+ "faucibus interdum posuere lorem. Nullam non nisi est sit. Turpis " +
351
+ "egestas integer eget aliquet nibh praesent. Tortor at risus viverra " +
352
+ "sadipiscing at. Eu augue ut lectus arcu bibendum at varius vel" +
353
+ "pharetra.</i></p>"
354
+ }
355
+ />
356
+ <StructuredContent
357
+ calloutText="This is the callout text"
358
+ headingText="Heading text"
359
+ bodyContent={
360
+ "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
361
+ "eiusmod tempor incididunt ut labore et dolore magna aliqua." +
362
+ "Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. " +
363
+ "<a href='#'>Porttitor eget dolor</a> morbi non arcu risus quis varius. " +
364
+ "Faucibus in ornare quam viverra orci sagittis.</p><p>Nisl vel pretium " +
365
+ "lectus quam id leo in. Etiam dignissim diam quis enim lobortis " +
366
+ "scelerisque fermentum. Diam maecenas sed enim ut sem viverra. <b>Diam " +
367
+ "quam nulla porttitor massa id neque. Sed faucibus turpis in eu mi.</b></p>"
368
+ }
369
+ />
370
+ </DSProvider>
371
+ </Canvas>
372
+
373
+ The following has two `StructuredContent` components. The first one only displays
374
+ text content. The second one has a callout content and image spanning full width.
375
+
376
+ <Canvas>
377
+ <DSProvider>
378
+ <StructuredContent
379
+ bodyContent={
380
+ "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
381
+ "eiusmod tempor incididunt ut labore et dolore magna aliqua." +
382
+ "Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. " +
383
+ "<a href='#'>Porttitor eget dolor</a> morbi non arcu risus quis varius. " +
384
+ "Faucibus in ornare quam viverra orci sagittis.</p><p>Nisl vel pretium " +
385
+ "lectus quam id leo in. Etiam dignissim diam quis enim lobortis " +
386
+ "scelerisque fermentum. Diam maecenas sed enim ut sem viverra. <b>Diam " +
387
+ "quam nulla porttitor massa id neque. Sed faucibus turpis in eu mi.</b></p>"
388
+ }
389
+ />
390
+ <StructuredContent
391
+ calloutText="This is the callout text"
392
+ headingText="Heading text"
393
+ imageAlt="Image alt text"
394
+ imageAspectRatio={ImageRatios.Original}
395
+ imagePosition={StructuredContentImagePosition.Center}
396
+ imageSize={ImageSizes.Medium}
397
+ imageSrc="https://placeimg.com/400/300/animals"
398
+ bodyContent={
399
+ "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
400
+ "eiusmod tempor incididunt ut labore et dolore magna aliqua." +
401
+ "Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. " +
402
+ "<a href='#'>Porttitor eget dolor</a> morbi non arcu risus quis varius. " +
403
+ "Faucibus in ornare quam viverra orci sagittis.</p><p>Nisl vel pretium " +
404
+ "lectus quam id leo in. Etiam dignissim diam quis enim lobortis " +
405
+ "scelerisque fermentum. Diam maecenas sed enim ut sem viverra. <b>Diam " +
406
+ "quam nulla porttitor massa id neque. Sed faucibus turpis in eu mi. " +
407
+ "</b></p><p>Ornare lectus sit amet est placerat in. Quis blandit turpis " +
408
+ "cursus in. Aliquam ut porttitor leo a diam sollicitudin tempor id eu. " +
409
+ "Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum. " +
410
+ "Porttitor leo a diam sollicitudin tempor id eu nisl nunc. Feugiat nisl " +
411
+ "pretium fusce id velit ut tortor. Porttitor leo a diam sollicitudin " +
412
+ "tempor id eu nisl nunc.</p><ul><li>one</li><li>two</li><li>three</li>" +
413
+ "<li>four</li></ul><p><i>Mauris nunc congue nisi vitae suscipit" +
414
+ "tellus mauris a diam. Purus gravida quis blandit turpis cursus in hac." +
415
+ "Morbi tempus iaculis urna id volutpat. Lectus nulla at volutpat diam ut" +
416
+ "venenatis. Donec ac odio tempor orci dapibus ultrices in iaculis. Dui " +
417
+ "vivamus arcu felis bibendum ut tristique. Cras semper auctor neque " +
418
+ "vitae tempus quam pellentesque. Placerat orci nulla pellentesque " +
419
+ "dignissim enim sit amet. Feugiat pretium nibh ipsum consequat. " +
420
+ "Placerat orci nulla pellentesque dignissim. Suspendisse faucibus " +
421
+ "interdum posuere lorem. Nullam non nisi est sit. Turpis egestas " +
422
+ "integer eget aliquet nibh praesent. Tortor at risus viverra adipiscing " +
423
+ "at. Eu augue ut lectus arcu bibendum at varius vel pharetra.</i></p>"
424
+ }
425
+ />
426
+ </DSProvider>
427
+ </Canvas>