@dxc-technology/halstack-react 0.0.0-b39a2d8 → 0.0.0-b3b8a35

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 (346) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +7 -22
  3. package/HalstackContext.d.ts +1353 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +119 -192
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  18. package/alert/Alert.js +24 -57
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +75 -0
  21. package/alert/types.d.ts +5 -5
  22. package/badge/Badge.d.ts +4 -0
  23. package/badge/Badge.js +9 -20
  24. package/badge/types.d.ts +5 -0
  25. package/bleed/Bleed.d.ts +3 -0
  26. package/bleed/Bleed.js +43 -0
  27. package/bleed/Bleed.stories.tsx +342 -0
  28. package/bleed/types.d.ts +37 -0
  29. package/bleed/types.js +5 -0
  30. package/box/Box.d.ts +1 -1
  31. package/box/Box.js +31 -79
  32. package/box/Box.stories.tsx +38 -51
  33. package/box/Box.test.js +13 -0
  34. package/box/types.d.ts +3 -14
  35. package/bulleted-list/BulletedList.d.ts +7 -0
  36. package/bulleted-list/BulletedList.js +99 -0
  37. package/bulleted-list/BulletedList.stories.tsx +116 -0
  38. package/bulleted-list/types.d.ts +38 -0
  39. package/bulleted-list/types.js +5 -0
  40. package/button/Button.d.ts +1 -1
  41. package/button/Button.js +64 -120
  42. package/button/Button.stories.tsx +164 -96
  43. package/button/Button.test.js +36 -0
  44. package/button/types.d.ts +14 -14
  45. package/card/Card.d.ts +1 -1
  46. package/card/Card.js +59 -103
  47. package/card/Card.stories.tsx +13 -43
  48. package/card/Card.test.js +39 -0
  49. package/card/types.d.ts +6 -11
  50. package/checkbox/Checkbox.d.ts +2 -2
  51. package/checkbox/Checkbox.js +147 -180
  52. package/checkbox/Checkbox.stories.tsx +166 -136
  53. package/checkbox/Checkbox.test.js +199 -0
  54. package/checkbox/types.d.ts +19 -7
  55. package/chip/Chip.d.ts +4 -0
  56. package/chip/Chip.js +48 -148
  57. package/chip/Chip.stories.tsx +123 -30
  58. package/chip/Chip.test.js +41 -0
  59. package/chip/types.d.ts +45 -0
  60. package/chip/types.js +5 -0
  61. package/common/OpenSans.css +68 -80
  62. package/common/coreTokens.d.ts +237 -0
  63. package/common/coreTokens.js +184 -0
  64. package/common/utils.d.ts +1 -0
  65. package/common/utils.js +6 -12
  66. package/common/variables.d.ts +1499 -0
  67. package/common/variables.js +1119 -1325
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +187 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/container/types.js +5 -0
  73. package/date-input/Calendar.d.ts +4 -0
  74. package/date-input/Calendar.js +214 -0
  75. package/date-input/DateInput.js +175 -313
  76. package/date-input/DateInput.stories.tsx +203 -56
  77. package/date-input/DateInput.test.js +808 -0
  78. package/date-input/DatePicker.d.ts +4 -0
  79. package/date-input/DatePicker.js +115 -0
  80. package/date-input/Icons.d.ts +6 -0
  81. package/date-input/Icons.js +58 -0
  82. package/date-input/YearPicker.d.ts +4 -0
  83. package/date-input/YearPicker.js +100 -0
  84. package/date-input/types.d.ts +86 -22
  85. package/dialog/Dialog.d.ts +1 -1
  86. package/dialog/Dialog.js +72 -130
  87. package/dialog/Dialog.stories.tsx +154 -171
  88. package/dialog/Dialog.test.js +307 -0
  89. package/dialog/types.d.ts +18 -25
  90. package/dropdown/Dropdown.d.ts +1 -1
  91. package/dropdown/Dropdown.js +245 -328
  92. package/dropdown/Dropdown.stories.tsx +438 -0
  93. package/dropdown/Dropdown.test.js +599 -0
  94. package/dropdown/DropdownMenu.d.ts +4 -0
  95. package/dropdown/DropdownMenu.js +63 -0
  96. package/dropdown/DropdownMenuItem.d.ts +4 -0
  97. package/dropdown/DropdownMenuItem.js +67 -0
  98. package/dropdown/types.d.ts +37 -28
  99. package/file-input/FileInput.d.ts +2 -2
  100. package/file-input/FileInput.js +236 -289
  101. package/file-input/FileInput.stories.tsx +618 -0
  102. package/file-input/FileInput.test.js +408 -0
  103. package/file-input/FileItem.d.ts +4 -14
  104. package/file-input/FileItem.js +53 -100
  105. package/file-input/types.d.ts +53 -11
  106. package/flex/Flex.d.ts +4 -0
  107. package/flex/Flex.js +57 -0
  108. package/flex/Flex.stories.tsx +112 -0
  109. package/flex/types.d.ts +97 -0
  110. package/flex/types.js +5 -0
  111. package/footer/Footer.d.ts +1 -1
  112. package/footer/Footer.js +61 -192
  113. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +38 -37
  114. package/footer/Footer.test.js +85 -0
  115. package/footer/Icons.d.ts +2 -0
  116. package/footer/Icons.js +4 -9
  117. package/footer/types.d.ts +36 -33
  118. package/grid/Grid.d.ts +7 -0
  119. package/grid/Grid.js +76 -0
  120. package/grid/Grid.stories.tsx +219 -0
  121. package/grid/types.d.ts +115 -0
  122. package/grid/types.js +5 -0
  123. package/header/Header.d.ts +4 -3
  124. package/header/Header.js +106 -199
  125. package/header/Header.stories.tsx +152 -63
  126. package/header/Header.test.js +66 -0
  127. package/header/Icons.d.ts +2 -0
  128. package/header/Icons.js +4 -9
  129. package/header/types.d.ts +5 -20
  130. package/heading/Heading.js +11 -33
  131. package/heading/Heading.stories.tsx +54 -0
  132. package/heading/Heading.test.js +169 -0
  133. package/heading/types.d.ts +7 -7
  134. package/image/Image.d.ts +4 -0
  135. package/image/Image.js +70 -0
  136. package/image/Image.stories.tsx +127 -0
  137. package/image/types.d.ts +72 -0
  138. package/image/types.js +5 -0
  139. package/inset/Inset.d.ts +3 -0
  140. package/inset/Inset.js +43 -0
  141. package/inset/Inset.stories.tsx +230 -0
  142. package/inset/types.d.ts +37 -0
  143. package/inset/types.js +5 -0
  144. package/layout/ApplicationLayout.d.ts +20 -0
  145. package/layout/ApplicationLayout.js +83 -184
  146. package/layout/ApplicationLayout.stories.tsx +162 -0
  147. package/layout/Icons.d.ts +8 -0
  148. package/layout/Icons.js +51 -48
  149. package/layout/SidenavContext.d.ts +5 -0
  150. package/layout/SidenavContext.js +13 -0
  151. package/layout/types.d.ts +41 -0
  152. package/layout/types.js +5 -0
  153. package/link/Link.d.ts +3 -2
  154. package/link/Link.js +65 -111
  155. package/link/Link.stories.tsx +159 -52
  156. package/link/Link.test.js +63 -0
  157. package/link/types.d.ts +15 -35
  158. package/main.d.ts +16 -13
  159. package/main.js +71 -91
  160. package/nav-tabs/NavTabs.d.ts +8 -0
  161. package/nav-tabs/NavTabs.js +90 -0
  162. package/nav-tabs/NavTabs.stories.tsx +274 -0
  163. package/nav-tabs/NavTabs.test.js +75 -0
  164. package/nav-tabs/Tab.d.ts +4 -0
  165. package/nav-tabs/Tab.js +117 -0
  166. package/nav-tabs/types.d.ts +52 -0
  167. package/nav-tabs/types.js +5 -0
  168. package/number-input/NumberInput.d.ts +7 -0
  169. package/number-input/NumberInput.js +28 -47
  170. package/number-input/NumberInput.stories.tsx +44 -28
  171. package/number-input/NumberInput.test.js +830 -0
  172. package/number-input/types.d.ts +28 -15
  173. package/package.json +45 -44
  174. package/paginator/Icons.d.ts +5 -0
  175. package/paginator/Icons.js +21 -47
  176. package/paginator/Paginator.js +35 -95
  177. package/paginator/Paginator.stories.tsx +24 -0
  178. package/paginator/Paginator.test.js +335 -0
  179. package/paginator/types.d.ts +3 -3
  180. package/paragraph/Paragraph.d.ts +5 -0
  181. package/paragraph/Paragraph.js +27 -0
  182. package/paragraph/Paragraph.stories.tsx +27 -0
  183. package/password-input/Icons.d.ts +6 -0
  184. package/password-input/Icons.js +35 -0
  185. package/password-input/PasswordInput.js +60 -125
  186. package/password-input/PasswordInput.stories.tsx +3 -34
  187. package/password-input/PasswordInput.test.js +198 -0
  188. package/password-input/types.d.ts +35 -24
  189. package/progress-bar/ProgressBar.js +69 -89
  190. package/progress-bar/ProgressBar.stories.tsx +93 -0
  191. package/progress-bar/ProgressBar.test.js +93 -0
  192. package/progress-bar/types.d.ts +3 -3
  193. package/quick-nav/QuickNav.d.ts +4 -0
  194. package/quick-nav/QuickNav.js +94 -0
  195. package/quick-nav/QuickNav.stories.tsx +356 -0
  196. package/quick-nav/types.d.ts +21 -0
  197. package/quick-nav/types.js +5 -0
  198. package/radio-group/Radio.d.ts +4 -0
  199. package/radio-group/Radio.js +124 -0
  200. package/radio-group/RadioGroup.d.ts +4 -0
  201. package/radio-group/RadioGroup.js +235 -0
  202. package/radio-group/RadioGroup.stories.tsx +214 -0
  203. package/radio-group/RadioGroup.test.js +756 -0
  204. package/radio-group/types.d.ts +114 -0
  205. package/radio-group/types.js +5 -0
  206. package/resultset-table/Icons.d.ts +7 -0
  207. package/resultset-table/Icons.js +47 -0
  208. package/resultset-table/ResultsetTable.d.ts +4 -0
  209. package/resultset-table/ResultsetTable.js +159 -0
  210. package/resultset-table/ResultsetTable.stories.tsx +300 -0
  211. package/resultset-table/ResultsetTable.test.js +305 -0
  212. package/resultset-table/types.d.ts +67 -0
  213. package/resultset-table/types.js +5 -0
  214. package/select/Icons.d.ts +10 -0
  215. package/select/Icons.js +89 -0
  216. package/select/Listbox.d.ts +4 -0
  217. package/select/Listbox.js +143 -0
  218. package/select/Option.d.ts +4 -0
  219. package/select/Option.js +80 -0
  220. package/select/Select.d.ts +4 -0
  221. package/select/Select.js +221 -504
  222. package/select/Select.stories.tsx +603 -204
  223. package/select/Select.test.js +2334 -0
  224. package/select/types.d.ts +209 -0
  225. package/select/types.js +5 -0
  226. package/sidenav/Icons.d.ts +7 -0
  227. package/sidenav/Icons.js +47 -0
  228. package/sidenav/Sidenav.d.ts +6 -5
  229. package/sidenav/Sidenav.js +135 -72
  230. package/sidenav/Sidenav.stories.tsx +282 -0
  231. package/sidenav/Sidenav.test.js +37 -0
  232. package/sidenav/types.d.ts +52 -26
  233. package/slider/Slider.d.ts +2 -2
  234. package/slider/Slider.js +146 -169
  235. package/slider/Slider.test.js +254 -0
  236. package/slider/types.d.ts +11 -3
  237. package/spinner/Spinner.js +30 -66
  238. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  239. package/spinner/Spinner.test.js +55 -0
  240. package/spinner/types.d.ts +3 -3
  241. package/switch/Switch.d.ts +2 -2
  242. package/switch/Switch.js +154 -114
  243. package/switch/Switch.stories.tsx +45 -68
  244. package/switch/Switch.test.js +180 -0
  245. package/switch/types.d.ts +13 -5
  246. package/table/Table.js +10 -29
  247. package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
  248. package/table/Table.test.js +21 -0
  249. package/table/types.d.ts +8 -8
  250. package/tabs/Tab.d.ts +4 -0
  251. package/tabs/Tab.js +113 -0
  252. package/tabs/Tabs.d.ts +1 -1
  253. package/tabs/Tabs.js +319 -145
  254. package/tabs/Tabs.stories.tsx +226 -0
  255. package/tabs/Tabs.test.js +294 -0
  256. package/tabs/types.d.ts +46 -24
  257. package/tag/Tag.d.ts +1 -1
  258. package/tag/Tag.js +44 -86
  259. package/tag/Tag.stories.tsx +38 -28
  260. package/tag/Tag.test.js +49 -0
  261. package/tag/types.d.ts +25 -16
  262. package/text-input/Icons.d.ts +8 -0
  263. package/text-input/Icons.js +56 -0
  264. package/text-input/Suggestion.d.ts +4 -0
  265. package/text-input/Suggestion.js +67 -0
  266. package/text-input/Suggestions.d.ts +4 -0
  267. package/text-input/Suggestions.js +89 -0
  268. package/text-input/TextInput.d.ts +4 -0
  269. package/text-input/TextInput.js +310 -543
  270. package/text-input/TextInput.stories.tsx +465 -0
  271. package/text-input/TextInput.test.js +1739 -0
  272. package/text-input/types.d.ts +205 -0
  273. package/text-input/types.js +5 -0
  274. package/textarea/Textarea.d.ts +4 -0
  275. package/textarea/Textarea.js +94 -171
  276. package/textarea/Textarea.stories.tsx +175 -0
  277. package/textarea/Textarea.test.js +406 -0
  278. package/textarea/types.d.ts +141 -0
  279. package/textarea/types.js +5 -0
  280. package/toggle-group/ToggleGroup.d.ts +4 -0
  281. package/toggle-group/ToggleGroup.js +103 -142
  282. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  283. package/toggle-group/ToggleGroup.test.js +137 -0
  284. package/toggle-group/types.d.ts +114 -0
  285. package/toggle-group/types.js +5 -0
  286. package/typography/Typography.d.ts +4 -0
  287. package/typography/Typography.js +23 -0
  288. package/typography/Typography.stories.tsx +198 -0
  289. package/typography/types.d.ts +18 -0
  290. package/typography/types.js +5 -0
  291. package/useTheme.d.ts +1252 -0
  292. package/useTheme.js +4 -11
  293. package/useTranslatedLabels.d.ts +85 -0
  294. package/useTranslatedLabels.js +14 -0
  295. package/utils/BaseTypography.d.ts +21 -0
  296. package/utils/BaseTypography.js +94 -0
  297. package/utils/FocusLock.d.ts +13 -0
  298. package/utils/FocusLock.js +114 -0
  299. package/wizard/Wizard.d.ts +1 -1
  300. package/wizard/Wizard.js +123 -104
  301. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  302. package/wizard/Wizard.test.js +114 -0
  303. package/wizard/types.d.ts +14 -14
  304. package/ThemeContext.js +0 -246
  305. package/V3Select/V3Select.js +0 -455
  306. package/V3Select/index.d.ts +0 -27
  307. package/V3Textarea/V3Textarea.js +0 -260
  308. package/V3Textarea/index.d.ts +0 -27
  309. package/card/ice-cream.jpg +0 -0
  310. package/chip/index.d.ts +0 -22
  311. package/common/RequiredComponent.js +0 -32
  312. package/date/Date.js +0 -373
  313. package/date/index.d.ts +0 -27
  314. package/input-text/Icons.js +0 -22
  315. package/input-text/InputText.js +0 -611
  316. package/input-text/index.d.ts +0 -36
  317. package/number-input/NumberInputContext.js +0 -16
  318. package/progress-bar/ProgressBar.stories.jsx +0 -58
  319. package/radio/Radio.d.ts +0 -4
  320. package/radio/Radio.js +0 -174
  321. package/radio/Radio.stories.tsx +0 -192
  322. package/radio/types.d.ts +0 -54
  323. package/resultsetTable/ResultsetTable.js +0 -274
  324. package/resultsetTable/index.d.ts +0 -19
  325. package/select/index.d.ts +0 -131
  326. package/slider/Slider.stories.tsx +0 -177
  327. package/text-input/index.d.ts +0 -135
  328. package/textarea/Textarea.stories.jsx +0 -135
  329. package/textarea/index.d.ts +0 -117
  330. package/toggle/Toggle.js +0 -186
  331. package/toggle/index.d.ts +0 -21
  332. package/toggle-group/index.d.ts +0 -21
  333. package/upload/Upload.js +0 -201
  334. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  335. package/upload/buttons-upload/Icons.js +0 -40
  336. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  337. package/upload/dragAndDropArea/Icons.js +0 -39
  338. package/upload/file-upload/FileToUpload.js +0 -115
  339. package/upload/file-upload/Icons.js +0 -66
  340. package/upload/files-upload/FilesToUpload.js +0 -109
  341. package/upload/index.d.ts +0 -15
  342. package/upload/transaction/Icons.js +0 -160
  343. package/upload/transaction/Transaction.js +0 -104
  344. package/upload/transactions/Transactions.js +0 -94
  345. package/wizard/Icons.js +0 -65
  346. /package/{radio → badge}/types.js +0 -0
@@ -3,42 +3,38 @@ import { userEvent, within } from "@storybook/testing-library";
3
3
  import DxcToggleGroup from "./ToggleGroup";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import { HalstackProvider } from "../HalstackContext";
6
7
 
7
8
  export default {
8
- title: "ToggleGroup",
9
+ title: "Toggle Group",
9
10
  component: DxcToggleGroup,
10
11
  };
11
12
 
12
- const ethernetSVG = () => {
13
- return (
14
- <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
15
- <path d="M0 0h24v24H0V0z" fill="none" />
16
- <path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z" />
17
- </svg>
18
- );
19
- };
20
- const gMobileSVG = () => {
21
- return (
22
- <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
23
- <g>
24
- <path d="M0,0h24v24H0V0z" fill="none" />
25
- </g>
13
+ const ethernetSVG = (
14
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
15
+ <path d="M0 0h24v24H0V0z" fill="none" />
16
+ <path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z" />
17
+ </svg>
18
+ );
19
+ const gMobileSVG = (
20
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
21
+ <g>
22
+ <path d="M0,0h24v24H0V0z" fill="none" />
23
+ </g>
24
+ <g>
26
25
  <g>
27
- <g>
28
- <path d="M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z" />
29
- </g>
26
+ <path d="M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z" />
30
27
  </g>
31
- </svg>
32
- );
33
- };
34
- const wifiSVG = () => {
35
- return (
36
- <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
37
- <path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
38
- <path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z" />
39
- </svg>
40
- );
41
- };
28
+ </g>
29
+ </svg>
30
+ );
31
+ const wifiSVG = (
32
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
33
+ <path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
34
+ <path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z" />
35
+ </svg>
36
+ );
37
+
42
38
  const options = [
43
39
  {
44
40
  value: 1,
@@ -46,7 +42,7 @@ const options = [
46
42
  },
47
43
  {
48
44
  value: 2,
49
- label: "Twitter",
45
+ label: "X",
50
46
  },
51
47
  {
52
48
  value: 3,
@@ -57,14 +53,17 @@ const optionsWithIcon = [
57
53
  {
58
54
  value: 1,
59
55
  icon: wifiSVG,
56
+ title: "WiFi connection",
60
57
  },
61
58
  {
62
59
  value: 2,
63
60
  icon: ethernetSVG,
61
+ title: "Ethernet connection",
64
62
  },
65
63
  {
66
64
  value: 3,
67
65
  icon: gMobileSVG,
66
+ title: "3G Mobile data connection",
68
67
  },
69
68
  ];
70
69
  const optionsWithIconAndLabel = [
@@ -91,9 +90,19 @@ const twoOptions = [
91
90
  },
92
91
  {
93
92
  value: 2,
94
- label: "Twitter",
93
+ label: "X",
95
94
  },
96
95
  ];
96
+
97
+ const opinionatedTheme = {
98
+ toggleGroup: {
99
+ selectedBaseColor: "#5f249f",
100
+ selectedFontColor: "#ffffff",
101
+ unselectedBaseColor: "#e6e6e6",
102
+ unselectedFontColor: "#000000",
103
+ },
104
+ };
105
+
97
106
  export const Chromatic = () => (
98
107
  <>
99
108
  <ExampleContainer>
@@ -102,7 +111,7 @@ export const Chromatic = () => (
102
111
  </ExampleContainer>
103
112
  <ExampleContainer>
104
113
  <Title title="Selected" theme="light" level={4} />
105
- <DxcToggleGroup label="Selected" helperText="HelperText" value={2} options={options} />
114
+ <DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
106
115
  </ExampleContainer>
107
116
  <ExampleContainer>
108
117
  <Title title="Icons toggle group" theme="light" level={4} />
@@ -114,11 +123,11 @@ export const Chromatic = () => (
114
123
  </ExampleContainer>
115
124
  <ExampleContainer>
116
125
  <Title title="Disabled" theme="light" level={4} />
117
- <DxcToggleGroup label="Disabled" value={2} options={options} disabled />
126
+ <DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
118
127
  </ExampleContainer>
119
128
  <ExampleContainer pseudoState="pseudo-hover">
120
129
  <Title title="Hovered" theme="light" level={4} />
121
- <DxcToggleGroup label="Hovered" options={twoOptions} value={2} />
130
+ <DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
122
131
  </ExampleContainer>
123
132
  <ExampleContainer>
124
133
  <Title title="Multiple toggleGroup" theme="light" level={4} />
@@ -126,7 +135,7 @@ export const Chromatic = () => (
126
135
  label="Toggle group"
127
136
  helperText="Please select one or more"
128
137
  options={options}
129
- value={[1, 3]}
138
+ defaultValue={[1, 3]}
130
139
  multiple
131
140
  ></DxcToggleGroup>
132
141
  </ExampleContainer>
@@ -159,6 +168,37 @@ export const Chromatic = () => (
159
168
  <Title title="xxLarge" theme="light" level={4} />
160
169
  <DxcToggleGroup label="xxLarge margin" options={options} margin="xxlarge" />
161
170
  </ExampleContainer>
171
+ <Title title="Opinionated theme" theme="light" level={2} />
172
+ <ExampleContainer>
173
+ <HalstackProvider theme={opinionatedTheme}>
174
+ <Title title="Selected" theme="light" level={4} />
175
+ <DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
176
+ </HalstackProvider>
177
+ </ExampleContainer>
178
+ <ExampleContainer>
179
+ <HalstackProvider theme={opinionatedTheme}>
180
+ <Title title="Icons & label toggle group" theme="light" level={4} />
181
+ <DxcToggleGroup label="Icons & label" options={optionsWithIconAndLabel} />
182
+ </HalstackProvider>
183
+ </ExampleContainer>
184
+ <ExampleContainer>
185
+ <HalstackProvider theme={opinionatedTheme}>
186
+ <Title title="Disabled" theme="light" level={4} />
187
+ <DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
188
+ </HalstackProvider>
189
+ </ExampleContainer>
190
+ <ExampleContainer pseudoState="pseudo-hover">
191
+ <Title title="Hovered" theme="light" level={4} />
192
+ <HalstackProvider theme={opinionatedTheme}>
193
+ <DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
194
+ </HalstackProvider>
195
+ </ExampleContainer>
196
+ <ExampleContainer pseudoState="pseudo-active">
197
+ <Title title="Actived" theme="light" level={4} />
198
+ <HalstackProvider theme={opinionatedTheme}>
199
+ <DxcToggleGroup label="Actived" options={twoOptions} defaultValue={2} />
200
+ </HalstackProvider>
201
+ </ExampleContainer>
162
202
  </>
163
203
  );
164
204
  const OptionSelected = () => <DxcToggleGroup label="Toggle group" helperText="HelperText" options={options} />;
@@ -172,7 +212,7 @@ ToggleGroupSelectedActived.play = async ({ canvasElement }) => {
172
212
  export const ToggleGroupUnselectedActived = OptionSelected.bind({});
173
213
  ToggleGroupUnselectedActived.play = async ({ canvasElement }) => {
174
214
  const canvas = within(canvasElement);
175
- const option = canvas.getByText("Twitter");
215
+ const option = canvas.getByText("X");
176
216
  await userEvent.click(option);
177
217
  userEvent.tab();
178
218
  };
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup.tsx"));
7
+ var options = [{
8
+ value: 1,
9
+ label: "Amazon"
10
+ }, {
11
+ value: 2,
12
+ label: "Ebay"
13
+ }, {
14
+ value: 3,
15
+ label: "Apple"
16
+ }, {
17
+ value: 4,
18
+ label: "Google"
19
+ }];
20
+ describe("Toggle group component tests", function () {
21
+ test("Toggle group renders with correct labels", function () {
22
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
23
+ label: "Toggle group label",
24
+ helperText: "Toggle group helper text",
25
+ options: options
26
+ })),
27
+ getByText = _render.getByText;
28
+ expect(getByText("Toggle group label")).toBeTruthy();
29
+ expect(getByText("Toggle group helper text")).toBeTruthy();
30
+ expect(getByText("Amazon")).toBeTruthy();
31
+ expect(getByText("Ebay")).toBeTruthy();
32
+ expect(getByText("Apple")).toBeTruthy();
33
+ expect(getByText("Google")).toBeTruthy();
34
+ });
35
+ test("Toggle group renders with correct aria-label in only-icon scenario", function () {
36
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
37
+ label: "Toggle group label",
38
+ helperText: "Toggle group helper text",
39
+ options: [{
40
+ value: 1,
41
+ icon: "https://cdn.icon-icons.com/icons2/2645/PNG/512/mic_mute_icon_159965.png",
42
+ title: "Mute"
43
+ }]
44
+ })),
45
+ getByRole = _render2.getByRole;
46
+ expect(getByRole("button").getAttribute("aria-label")).toBe("Mute");
47
+ });
48
+ test("Uncontrolled toggle group calls correct function on change with value", function () {
49
+ var onChange = jest.fn();
50
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
51
+ options: options,
52
+ onChange: onChange
53
+ })),
54
+ getByText = _render3.getByText;
55
+ var option = getByText("Ebay");
56
+ _react2.fireEvent.click(option);
57
+ expect(onChange).toHaveBeenCalledWith(2);
58
+ });
59
+ test("Controlled toggle group calls correct function on change with value", function () {
60
+ var onChange = jest.fn();
61
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
62
+ options: options,
63
+ onChange: onChange,
64
+ value: 1
65
+ })),
66
+ getByText = _render4.getByText;
67
+ var option = getByText("Ebay");
68
+ _react2.fireEvent.click(option);
69
+ expect(onChange).toHaveBeenCalledWith(2);
70
+ });
71
+ test("Function on change is not called when disable", function () {
72
+ var onChange = jest.fn();
73
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
74
+ options: options,
75
+ onChange: onChange,
76
+ disabled: true
77
+ })),
78
+ getByText = _render5.getByText;
79
+ var option = getByText("Ebay");
80
+ _react2.fireEvent.click(option);
81
+ expect(onChange).toHaveBeenCalledTimes(0);
82
+ });
83
+ test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
84
+ var onChange = jest.fn();
85
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
86
+ options: options,
87
+ onChange: onChange,
88
+ multiple: true
89
+ })),
90
+ getAllByRole = _render6.getAllByRole;
91
+ var toggleOptions = getAllByRole("button");
92
+ _react2.fireEvent.click(toggleOptions[0]);
93
+ expect(onChange).toHaveBeenCalledWith([1]);
94
+ _react2.fireEvent.click(toggleOptions[1]);
95
+ _react2.fireEvent.click(toggleOptions[3]);
96
+ expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
97
+ expect(toggleOptions[0].getAttribute("aria-pressed")).toBe("true");
98
+ expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
99
+ expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
100
+ });
101
+ test("Controlled multiple toggle returns always same values", function () {
102
+ var onChange = jest.fn();
103
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
104
+ options: options,
105
+ onChange: onChange,
106
+ value: [1],
107
+ multiple: true
108
+ })),
109
+ getByText = _render7.getByText;
110
+ var option = getByText("Ebay");
111
+ _react2.fireEvent.click(option);
112
+ expect(onChange).toHaveBeenCalledWith([1, 2]);
113
+ var option2 = getByText("Google");
114
+ _react2.fireEvent.click(option2);
115
+ expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
116
+ });
117
+ test("Single selection: Renders with correct default value", function () {
118
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
119
+ options: options,
120
+ defaultValue: 2
121
+ })),
122
+ getAllByRole = _render8.getAllByRole;
123
+ var toggleOptions = getAllByRole("button");
124
+ expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
125
+ });
126
+ test("Multiple selection: Renders with correct default value", function () {
127
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
128
+ options: options,
129
+ defaultValue: [2, 4],
130
+ multiple: true
131
+ })),
132
+ getAllByRole = _render9.getAllByRole;
133
+ var toggleOptions = getAllByRole("button");
134
+ expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
135
+ expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
136
+ });
137
+ });
@@ -0,0 +1,114 @@
1
+ /// <reference types="react" />
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ type OptionIcon = {
11
+ /**
12
+ * String with the option display value.
13
+ */
14
+ label?: never;
15
+ /**
16
+ * Element used as the icon. Icon and label can't be used at same time.
17
+ */
18
+ icon: string | SVG;
19
+ /**
20
+ * Value for the HTML properties title and aria-label.
21
+ * When a label is defined, this prop can not be use.
22
+ */
23
+ title: string;
24
+ };
25
+ export type OptionLabel = {
26
+ /**
27
+ * String with the option display value.
28
+ */
29
+ label: string;
30
+ /**
31
+ * Element used as the icon. Icon and label can't be used at same time.
32
+ */
33
+ icon?: string | SVG;
34
+ /**
35
+ * Value for the HTML properties title and aria-label.
36
+ * When a label is defined, this prop can not be use.
37
+ */
38
+ title?: never;
39
+ };
40
+ type Option = {
41
+ /**
42
+ * Number with the option inner value.
43
+ */
44
+ value: number;
45
+ } & (OptionIcon | OptionLabel);
46
+ type CommonProps = {
47
+ /**
48
+ * Text to be placed above the component.
49
+ */
50
+ label?: string;
51
+ /**
52
+ * Helper text to be placed above the component.
53
+ */
54
+ helperText?: string;
55
+ /**
56
+ * If true, the component will be disabled.
57
+ */
58
+ disabled?: boolean;
59
+ /**
60
+ * An array of objects representing the selectable options.
61
+ */
62
+ options: Option[];
63
+ /**
64
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
65
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
66
+ */
67
+ margin?: Space | Margin;
68
+ /**
69
+ * Value of the tabindex.
70
+ */
71
+ tabIndex?: number;
72
+ };
73
+ type SingleSelectionToggleGroup = CommonProps & {
74
+ /**
75
+ * If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
76
+ */
77
+ multiple?: false;
78
+ /**
79
+ * The key of the initially selected value.
80
+ */
81
+ defaultValue?: number;
82
+ /**
83
+ * The key of the selected value. If the component allows multiple selection, value must be an array.
84
+ * If undefined, the component will be uncontrolled and the value will be managed internally by the component.
85
+ */
86
+ value?: number;
87
+ /**
88
+ * This function will be called every time the selection changes. The number with the key of the selected
89
+ * value will be passed as a parameter to this function.
90
+ */
91
+ onChange?: (optionIndex: number) => void;
92
+ };
93
+ type MultipleSelectionToggleGroup = CommonProps & {
94
+ /**
95
+ * If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
96
+ */
97
+ multiple: true;
98
+ /**
99
+ * The array of keys with the initially selected values.
100
+ */
101
+ defaultValue?: number[];
102
+ /**
103
+ * An array with the keys of the selected values.
104
+ * If undefined, the component will be uncontrolled and the value will be managed internally by the component.
105
+ */
106
+ value?: number[];
107
+ /**
108
+ * This function will be called every time the selection changes. An array with the key of
109
+ * the selected values will be passed as a parameter to this function.
110
+ */
111
+ onChange?: (optionIndex: number[]) => void;
112
+ };
113
+ type Props = SingleSelectionToggleGroup | MultipleSelectionToggleGroup;
114
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import TypographyPropsTypes from "./types";
3
+ declare const DxcTypography: ({ textOverflow, whiteSpace, children, ...props }: TypographyPropsTypes) => JSX.Element;
4
+ export default DxcTypography;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
12
+ var _excluded = ["textOverflow", "whiteSpace", "children"];
13
+ var DxcTypography = function DxcTypography(_ref) {
14
+ var textOverflow = _ref.textOverflow,
15
+ whiteSpace = _ref.whiteSpace,
16
+ children = _ref.children,
17
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
18
+ return /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], (0, _extends2["default"])({
19
+ textOverflow: textOverflow,
20
+ whiteSpace: whiteSpace == null && textOverflow != null && textOverflow !== "unset" ? "nowrap" : whiteSpace
21
+ }, props), children);
22
+ };
23
+ var _default = exports["default"] = DxcTypography;
@@ -0,0 +1,198 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
4
+ import DxcTypography from "./Typography";
5
+
6
+ export default {
7
+ title: "Typography",
8
+ component: DxcTypography,
9
+ };
10
+
11
+ export const Chromatic = () => (
12
+ <>
13
+ <ExampleContainer>
14
+ <Title title="Default Typography" theme="light" level={4} />
15
+ <DxcTypography>Default typography.</DxcTypography>
16
+ </ExampleContainer>
17
+ <ExampleContainer>
18
+ <Title title="Typography font sizes" theme="light" level={4} />
19
+ <DxcTypography display="block" fontSize="3.75rem">
20
+ 3.75rem.
21
+ </DxcTypography>
22
+ <DxcTypography display="block" fontSize="3rem">
23
+ 3rem.
24
+ </DxcTypography>
25
+ <DxcTypography display="block" fontSize="2rem">
26
+ 2rem.
27
+ </DxcTypography>
28
+ <DxcTypography display="block" fontSize="1.5rem">
29
+ 1.5rem.
30
+ </DxcTypography>
31
+ <DxcTypography display="block" fontSize="1.25rem">
32
+ 1.25rem.
33
+ </DxcTypography>
34
+ <DxcTypography display="block" fontSize="1rem">
35
+ 1rem.
36
+ </DxcTypography>
37
+ <DxcTypography display="block" fontSize="0.875rem">
38
+ 0.875rem.
39
+ </DxcTypography>
40
+ <DxcTypography display="block" fontSize="0.75rem">
41
+ 0.75rem.
42
+ </DxcTypography>
43
+ </ExampleContainer>
44
+ <ExampleContainer>
45
+ <Title title="Typography letter spacing" theme="light" level={4} />
46
+ <DxcTypography display="block" letterSpacing="-0.025em">
47
+ -0.025em.
48
+ </DxcTypography>
49
+ <DxcTypography display="block" letterSpacing="-0.0125em">
50
+ -0.0125em.
51
+ </DxcTypography>
52
+ <DxcTypography display="block" letterSpacing="0em">
53
+ 0em.
54
+ </DxcTypography>
55
+ <DxcTypography display="block" letterSpacing="0.025em">
56
+ 0.025em.
57
+ </DxcTypography>
58
+ <DxcTypography display="block" letterSpacing="0.05em">
59
+ 0.05em.
60
+ </DxcTypography>
61
+ <DxcTypography display="block" letterSpacing="0.1em">
62
+ 0.1em.
63
+ </DxcTypography>{" "}
64
+ </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="Typography line height" theme="light" level={4} />
67
+ <DxcTypography display="block" lineHeight="1em">
68
+ 1em.
69
+ </DxcTypography>
70
+ <DxcTypography display="block" lineHeight="1.25em">
71
+ 1.25em.
72
+ </DxcTypography>
73
+ <DxcTypography display="block" lineHeight="1.365em">
74
+ 1.365em.
75
+ </DxcTypography>
76
+ <DxcTypography display="block" lineHeight="1.5em">
77
+ 1.5em.
78
+ </DxcTypography>
79
+ <DxcTypography display="block" lineHeight="1.715em">
80
+ 1.715em.
81
+ </DxcTypography>
82
+ <DxcTypography display="block" lineHeight="2em">
83
+ 2em.
84
+ </DxcTypography>
85
+ </ExampleContainer>
86
+ <ExampleContainer>
87
+ <Title title="Typography font weight" theme="light" level={4} />
88
+ <DxcTypography display="block" fontWeight="300">
89
+ 300.
90
+ </DxcTypography>
91
+ <DxcTypography display="block" fontWeight="400">
92
+ 400.
93
+ </DxcTypography>
94
+ <DxcTypography display="block" fontWeight="600">
95
+ 600.
96
+ </DxcTypography>
97
+ <DxcTypography display="block" fontWeight="700">
98
+ 700.
99
+ </DxcTypography>
100
+ </ExampleContainer>
101
+ <ExampleContainer>
102
+ <Title title="Typography decoration" theme="light" level={4} />
103
+ <DxcTypography display="block" textDecoration="underline">
104
+ Underline.
105
+ </DxcTypography>
106
+ <DxcTypography display="block" textDecoration="line-through">
107
+ Line-through.
108
+ </DxcTypography>
109
+ </ExampleContainer>
110
+ <ExampleContainer>
111
+ <Title title="Typography font family" theme="light" level={4} />
112
+ <DxcTypography display="block" fontFamily="Open Sans, sans-serif">
113
+ Open Sans, sans-serif.
114
+ </DxcTypography>
115
+ <DxcTypography display="block" fontFamily="Source Code Pro, monospace">
116
+ Source Code Pro, monospace.
117
+ </DxcTypography>
118
+ </ExampleContainer>
119
+ <ExampleContainer>
120
+ <Title title="Typography font style" theme="light" level={4} />
121
+ <DxcTypography display="block" fontStyle="italic">
122
+ Italic.
123
+ </DxcTypography>
124
+ <DxcTypography display="block" fontStyle="normal">
125
+ Normal.
126
+ </DxcTypography>
127
+ </ExampleContainer>
128
+ <ExampleContainer>
129
+ <Title title="Typography align" theme="light" level={4} />
130
+ <DxcTypography display="block" textAlign="left">
131
+ Left.
132
+ </DxcTypography>
133
+ <DxcTypography display="block" textAlign="center">
134
+ Center.
135
+ </DxcTypography>
136
+ <DxcTypography display="block" textAlign="right">
137
+ Right.
138
+ </DxcTypography>
139
+ </ExampleContainer>
140
+ <ExampleContainer>
141
+ <Title title="Typography whitespace" theme="light" level={4} />
142
+ <div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
143
+ <DxcTypography fontSize="2rem">
144
+ {" "} Normal: A bunch of words you see.
145
+ </DxcTypography>
146
+ </div>
147
+ <div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
148
+ <DxcTypography whiteSpace="nowrap" fontSize="2rem">
149
+ {" "}No-wrap: A bunch of words you see.
150
+ </DxcTypography>
151
+ </div>
152
+ <div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
153
+ <DxcTypography whiteSpace="pre" fontSize="2rem">
154
+ {" "} pre: A bunch of words you see.
155
+ </DxcTypography>
156
+ </div>
157
+ <div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
158
+ <DxcTypography whiteSpace="pre-line" fontSize="2rem">
159
+ {" "}pre-line: A bunch of words you see.
160
+ </DxcTypography>
161
+ </div>
162
+ <div style={{ margin: "50px", border: "1px solid red", width: "125px" }}>
163
+ <DxcTypography whiteSpace="pre-wrap" fontSize="2rem">
164
+ {" "} pre-wrap: A bunch of words you see.
165
+ </DxcTypography>
166
+ </div>
167
+ </ExampleContainer>{" "}
168
+ <ExampleContainer>
169
+ <Title title="Typography display" theme="light" level={4} />
170
+ <DxcTypography display="block" textAlign="left">
171
+ Display Block.
172
+ <DxcTypography>A different text.</DxcTypography>
173
+ </DxcTypography>
174
+ <DxcTypography display="inline" textAlign="left">
175
+ Display Inline.
176
+ <DxcTypography>A different text.</DxcTypography>
177
+ </DxcTypography>
178
+ </ExampleContainer>
179
+ <ExampleContainer>
180
+ <Title title="Typography text-overflow" theme="light" level={4} />
181
+ <div style={{ width: "75px" }}>
182
+ <DxcTypography display="block" textOverflow="clip">
183
+ Overflow clip.
184
+ </DxcTypography>
185
+ </div>
186
+ <div style={{ width: "75px" }}>
187
+ <DxcTypography display="block" textOverflow="ellipsis">
188
+ Overflow ellipsis.
189
+ </DxcTypography>
190
+ </div>
191
+ <div style={{ width: "75px" }}>
192
+ <DxcTypography display="block" textOverflow="unset">
193
+ Overflow unset.
194
+ </DxcTypography>
195
+ </div>
196
+ </ExampleContainer>
197
+ </>
198
+ );