@dxc-technology/halstack-react 0.0.0-1b8b460 → 0.0.0-1bfe223

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 (286) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1215 -6
  4. package/HalstackContext.js +121 -105
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +36 -99
  8. package/accordion/Accordion.stories.tsx +101 -124
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +142 -42
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +18 -59
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -15
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +69 -105
  45. package/button/Button.stories.tsx +152 -91
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -12
  53. package/checkbox/Checkbox.js +87 -122
  54. package/checkbox/Checkbox.stories.tsx +68 -54
  55. package/checkbox/Checkbox.test.js +108 -64
  56. package/checkbox/types.d.ts +8 -4
  57. package/chip/Chip.js +39 -79
  58. package/chip/Chip.stories.tsx +121 -26
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  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 +1367 -0
  67. package/common/variables.js +866 -1139
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +194 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/date-input/Calendar.d.ts +1 -1
  73. package/date-input/Calendar.js +52 -96
  74. package/date-input/DateInput.js +103 -107
  75. package/date-input/DateInput.stories.tsx +194 -60
  76. package/date-input/DateInput.test.js +676 -620
  77. package/date-input/DatePicker.js +47 -92
  78. package/date-input/Icons.d.ts +6 -0
  79. package/date-input/Icons.js +58 -0
  80. package/date-input/YearPicker.d.ts +1 -1
  81. package/date-input/YearPicker.js +29 -44
  82. package/date-input/types.d.ts +31 -27
  83. package/dialog/Dialog.d.ts +1 -1
  84. package/dialog/Dialog.js +61 -119
  85. package/dialog/Dialog.stories.tsx +310 -212
  86. package/dialog/Dialog.test.js +269 -32
  87. package/dialog/types.d.ts +18 -26
  88. package/dropdown/Dropdown.js +44 -101
  89. package/dropdown/Dropdown.stories.tsx +210 -84
  90. package/dropdown/Dropdown.test.js +393 -379
  91. package/dropdown/DropdownMenu.js +20 -37
  92. package/dropdown/DropdownMenuItem.js +9 -34
  93. package/dropdown/types.d.ts +17 -19
  94. package/file-input/FileInput.js +184 -256
  95. package/file-input/FileInput.stories.tsx +86 -3
  96. package/file-input/FileInput.test.js +356 -395
  97. package/file-input/FileItem.js +15 -41
  98. package/file-input/types.d.ts +10 -10
  99. package/flex/Flex.js +27 -39
  100. package/flex/Flex.stories.tsx +35 -26
  101. package/flex/types.d.ts +74 -9
  102. package/footer/Footer.d.ts +1 -1
  103. package/footer/Footer.js +70 -117
  104. package/footer/Footer.stories.tsx +55 -21
  105. package/footer/Footer.test.js +33 -57
  106. package/footer/Icons.d.ts +3 -2
  107. package/footer/Icons.js +66 -7
  108. package/footer/types.d.ts +25 -27
  109. package/grid/Grid.d.ts +7 -0
  110. package/grid/Grid.js +76 -0
  111. package/grid/Grid.stories.tsx +219 -0
  112. package/grid/types.d.ts +115 -0
  113. package/header/Header.d.ts +4 -3
  114. package/header/Header.js +48 -133
  115. package/header/Header.stories.tsx +115 -36
  116. package/header/Header.test.js +13 -26
  117. package/header/Icons.d.ts +2 -2
  118. package/header/Icons.js +2 -7
  119. package/header/types.d.ts +5 -20
  120. package/heading/Heading.js +10 -32
  121. package/heading/Heading.test.js +71 -88
  122. package/heading/types.d.ts +7 -7
  123. package/image/Image.d.ts +4 -0
  124. package/image/Image.js +70 -0
  125. package/image/Image.stories.tsx +127 -0
  126. package/image/types.d.ts +72 -0
  127. package/image/types.js +5 -0
  128. package/inset/Inset.js +13 -21
  129. package/inset/Inset.stories.tsx +2 -1
  130. package/inset/types.d.ts +2 -2
  131. package/layout/ApplicationLayout.d.ts +5 -5
  132. package/layout/ApplicationLayout.js +29 -66
  133. package/layout/ApplicationLayout.stories.tsx +1 -1
  134. package/layout/Icons.d.ts +8 -5
  135. package/layout/Icons.js +51 -59
  136. package/layout/SidenavContext.d.ts +1 -1
  137. package/layout/SidenavContext.js +3 -9
  138. package/layout/types.d.ts +5 -6
  139. package/link/Link.js +24 -45
  140. package/link/Link.stories.tsx +60 -0
  141. package/link/Link.test.js +24 -44
  142. package/link/types.d.ts +14 -14
  143. package/main.d.ts +8 -5
  144. package/main.js +33 -59
  145. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  146. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  147. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  148. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  149. package/nav-tabs/Tab.js +118 -0
  150. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  151. package/nav-tabs/types.js +5 -0
  152. package/number-input/NumberInput.d.ts +7 -0
  153. package/number-input/NumberInput.js +26 -35
  154. package/number-input/NumberInput.stories.tsx +42 -26
  155. package/number-input/NumberInput.test.js +701 -413
  156. package/number-input/types.d.ts +11 -5
  157. package/package.json +31 -29
  158. package/paginator/Icons.d.ts +5 -0
  159. package/paginator/Icons.js +21 -47
  160. package/paginator/Paginator.js +22 -58
  161. package/paginator/Paginator.stories.tsx +24 -0
  162. package/paginator/Paginator.test.js +252 -225
  163. package/paginator/types.d.ts +3 -3
  164. package/paragraph/Paragraph.d.ts +3 -4
  165. package/paragraph/Paragraph.js +6 -22
  166. package/paragraph/Paragraph.stories.tsx +0 -17
  167. package/password-input/Icons.d.ts +6 -0
  168. package/password-input/Icons.js +35 -0
  169. package/password-input/PasswordInput.js +57 -126
  170. package/password-input/PasswordInput.stories.tsx +1 -33
  171. package/password-input/PasswordInput.test.js +158 -141
  172. package/password-input/types.d.ts +8 -7
  173. package/progress-bar/ProgressBar.d.ts +2 -2
  174. package/progress-bar/ProgressBar.js +23 -55
  175. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  176. package/progress-bar/ProgressBar.test.js +36 -53
  177. package/progress-bar/types.d.ts +4 -3
  178. package/quick-nav/QuickNav.js +4 -27
  179. package/quick-nav/QuickNav.stories.tsx +15 -1
  180. package/quick-nav/types.d.ts +10 -10
  181. package/radio-group/Radio.d.ts +1 -1
  182. package/radio-group/Radio.js +31 -63
  183. package/radio-group/RadioGroup.js +45 -93
  184. package/radio-group/RadioGroup.stories.tsx +131 -18
  185. package/radio-group/RadioGroup.test.js +505 -471
  186. package/radio-group/types.d.ts +8 -8
  187. package/resultset-table/Icons.d.ts +7 -0
  188. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  189. package/{resultsetTable → resultset-table}/ResultsetTable.js +25 -61
  190. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +89 -114
  191. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  192. package/resultset-table/types.js +5 -0
  193. package/select/Icons.d.ts +7 -7
  194. package/select/Icons.js +1 -5
  195. package/select/Listbox.d.ts +1 -1
  196. package/select/Listbox.js +17 -72
  197. package/select/Option.js +27 -50
  198. package/select/Select.js +120 -175
  199. package/select/Select.stories.tsx +495 -148
  200. package/select/Select.test.js +1974 -1837
  201. package/select/types.d.ts +16 -17
  202. package/sidenav/Icons.d.ts +7 -0
  203. package/sidenav/Icons.js +47 -0
  204. package/sidenav/Sidenav.d.ts +2 -2
  205. package/sidenav/Sidenav.js +81 -153
  206. package/sidenav/Sidenav.stories.tsx +165 -63
  207. package/sidenav/Sidenav.test.js +3 -10
  208. package/sidenav/types.d.ts +31 -28
  209. package/slider/Slider.js +70 -128
  210. package/slider/Slider.test.js +108 -104
  211. package/slider/types.d.ts +4 -4
  212. package/spinner/Spinner.js +29 -73
  213. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  214. package/spinner/Spinner.test.js +26 -35
  215. package/spinner/types.d.ts +3 -3
  216. package/status-light/StatusLight.d.ts +4 -0
  217. package/status-light/StatusLight.js +51 -0
  218. package/status-light/StatusLight.stories.tsx +74 -0
  219. package/status-light/StatusLight.test.js +25 -0
  220. package/status-light/types.d.ts +17 -0
  221. package/status-light/types.js +5 -0
  222. package/switch/Switch.js +51 -99
  223. package/switch/Switch.stories.tsx +33 -34
  224. package/switch/Switch.test.js +52 -97
  225. package/switch/types.d.ts +4 -4
  226. package/table/Table.js +7 -29
  227. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  228. package/table/Table.test.js +2 -7
  229. package/table/types.d.ts +8 -8
  230. package/tabs/Tab.js +26 -45
  231. package/tabs/Tabs.js +62 -145
  232. package/tabs/Tabs.stories.tsx +46 -5
  233. package/tabs/Tabs.test.js +66 -123
  234. package/tabs/types.d.ts +19 -19
  235. package/tag/Tag.js +28 -60
  236. package/tag/Tag.stories.tsx +14 -1
  237. package/tag/Tag.test.js +20 -31
  238. package/tag/types.d.ts +7 -7
  239. package/text-input/Icons.d.ts +5 -5
  240. package/text-input/Icons.js +1 -5
  241. package/text-input/Suggestion.js +11 -28
  242. package/text-input/Suggestions.d.ts +1 -1
  243. package/text-input/Suggestions.js +15 -65
  244. package/text-input/TextInput.js +219 -324
  245. package/text-input/TextInput.stories.tsx +134 -155
  246. package/text-input/TextInput.test.js +1211 -1196
  247. package/text-input/types.d.ts +25 -17
  248. package/textarea/Textarea.js +70 -113
  249. package/textarea/Textarea.stories.tsx +174 -0
  250. package/textarea/Textarea.test.js +152 -183
  251. package/textarea/types.d.ts +9 -5
  252. package/toggle-group/ToggleGroup.d.ts +2 -2
  253. package/toggle-group/ToggleGroup.js +92 -106
  254. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  255. package/toggle-group/ToggleGroup.test.js +69 -88
  256. package/toggle-group/types.d.ts +26 -17
  257. package/typography/Typography.d.ts +2 -2
  258. package/typography/Typography.js +15 -123
  259. package/typography/Typography.stories.tsx +1 -1
  260. package/typography/types.d.ts +1 -1
  261. package/useTheme.d.ts +1119 -1
  262. package/useTheme.js +2 -9
  263. package/useTranslatedLabels.d.ts +84 -1
  264. package/useTranslatedLabels.js +1 -7
  265. package/utils/BaseTypography.d.ts +21 -0
  266. package/utils/BaseTypography.js +94 -0
  267. package/utils/FocusLock.d.ts +13 -0
  268. package/utils/FocusLock.js +124 -0
  269. package/wizard/Wizard.js +16 -51
  270. package/wizard/Wizard.stories.tsx +20 -0
  271. package/wizard/Wizard.test.js +54 -81
  272. package/wizard/types.d.ts +8 -9
  273. package/card/ice-cream.jpg +0 -0
  274. package/number-input/NumberInputContext.d.ts +0 -4
  275. package/number-input/NumberInputContext.js +0 -19
  276. package/number-input/numberInputContextTypes.d.ts +0 -19
  277. package/resultsetTable/Icons.d.ts +0 -7
  278. package/slider/Slider.stories.tsx +0 -183
  279. package/tabs-nav/Tab.js +0 -130
  280. package/textarea/Textarea.stories.jsx +0 -157
  281. /package/{resultsetTable → action-icon}/types.js +0 -0
  282. /package/{tabs-nav → container}/types.js +0 -0
  283. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
  284. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  285. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
  286. /package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +0 -0
@@ -3,6 +3,7 @@ import { userEvent, within } from "@storybook/testing-library";
3
3
  import DxcChip from "./Chip";
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
9
  title: "Chip",
@@ -10,12 +11,43 @@ export default {
10
11
  };
11
12
 
12
13
  const iconSVG = (
13
- <svg viewBox="0 0 24 24" fill="currentColor">
14
- <path d="M0 0h24v24H0z" fill="none" />
15
- <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
14
+ <svg
15
+ version="1.1"
16
+ id="Capa_1"
17
+ x="0px"
18
+ y="0px"
19
+ width="438.536px"
20
+ height="438.536px"
21
+ viewBox="0 0 438.536 438.536"
22
+ fill="currentColor"
23
+ >
24
+ <g>
25
+ <path
26
+ d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
27
+ C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
28
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
29
+ C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
30
+ c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
31
+ c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
32
+ />
33
+ </g>
34
+ </svg>
35
+ );
36
+
37
+ const smallIconSVG = (
38
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" height="20" width="20">
39
+ <path d="m10 17-1.042-.938q-2.083-1.854-3.437-3.177-1.354-1.323-2.136-2.354Q2.604 9.5 2.302 8.646 2 7.792 2 6.896q0-1.854 1.271-3.125T6.396 2.5q1.021 0 1.979.438.958.437 1.625 1.229.667-.792 1.625-1.229.958-.438 1.979-.438 1.854 0 3.125 1.271T18 6.896q0 .896-.292 1.729-.291.833-1.073 1.854-.781 1.021-2.145 2.365-1.365 1.344-3.49 3.26Zm0-2.021q1.938-1.729 3.188-2.948 1.25-1.219 1.989-2.125.74-.906 1.031-1.614.292-.709.292-1.396 0-1.229-.833-2.063Q14.833 4 13.604 4q-.729 0-1.364.302-.636.302-1.094.844L10.417 6h-.834l-.729-.854q-.458-.542-1.114-.844Q7.083 4 6.396 4q-1.229 0-2.063.833-.833.834-.833 2.063 0 .687.271 1.364.271.678.989 1.573.719.896 1.98 2.125Q8 13.188 10 14.979Zm0-5.5Z" />
16
40
  </svg>
17
41
  );
18
42
 
43
+ const opinionatedTheme = {
44
+ chip: {
45
+ baseColor: "#e6e6e6",
46
+ fontColor: "#000000",
47
+ iconColor: "#4d4d4d",
48
+ },
49
+ };
50
+
19
51
  export const Chromatic = () => (
20
52
  <>
21
53
  <ExampleContainer>
@@ -23,46 +55,63 @@ export const Chromatic = () => (
23
55
  <DxcChip label="Default Chip" />
24
56
  </ExampleContainer>
25
57
  <ExampleContainer>
26
- <Title title="Chip with prefix" theme="light" level={4} />
27
- <DxcChip label="Chip with prefix" prefixIcon={iconSVG} />
58
+ <Title title="Chip with prefix SVG (small icon)" theme="light" level={4} />
59
+ <DxcChip label="Chip with prefix" prefixIcon={smallIconSVG} />
28
60
  </ExampleContainer>
29
61
  <ExampleContainer>
30
- <Title title="Chip with suffix" theme="light" level={4} />
62
+ <Title title="Chip with suffix SVG (large icon)" theme="light" level={4} />
31
63
  <DxcChip label="Chip with suffix" suffixIcon={iconSVG} />
32
64
  </ExampleContainer>
33
65
  <ExampleContainer>
34
- <Title title="Chip with prefix and suffix" theme="light" level={4} />
35
- <DxcChip label="Chip with prefix and suffix" prefixIcon={iconSVG} suffixIcon={iconSVG} />
66
+ <Title title="Chip with prefix (SVG) and suffix (URL)" theme="light" level={4} />
67
+ <DxcChip
68
+ label="Chip with prefix and suffix"
69
+ prefixIcon={iconSVG}
70
+ suffixIcon="https://upload.wikimedia.org/wikipedia/commons/e/e0/Check_green_icon.svg"
71
+ />
36
72
  </ExampleContainer>
37
73
  <ExampleContainer>
38
74
  <Title title="Disabled chip" theme="light" level={4} />
39
- <DxcChip label="Disabled" disabled prefixIcon={iconSVG} suffixIcon={iconSVG} />
75
+ <DxcChip
76
+ label="Disabled"
77
+ disabled
78
+ prefixIcon={iconSVG}
79
+ suffixIcon="https://upload.wikimedia.org/wikipedia/commons/e/e0/Check_green_icon.svg"
80
+ />
40
81
  </ExampleContainer>
41
82
  <ExampleContainer>
42
83
  <Title title="Chip with ellipsis" theme="light" level={4} />
43
- <DxcChip label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fg ssssssssssss ssss" />
84
+ <div style={{ width: "200px" }}>
85
+ <DxcChip label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fg ssssssssssss ssss" />
86
+ </div>
44
87
  </ExampleContainer>
45
88
  <ExampleContainer>
46
89
  <Title title="Chip with ellipsis and suffix" theme="light" level={4} />
47
- <DxcChip
48
- suffixIcon={iconSVG}
49
- label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fgsss"
50
- />
90
+ <div style={{ width: "200px" }}>
91
+ <DxcChip
92
+ suffixIcon={iconSVG}
93
+ label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fgsss"
94
+ />
95
+ </div>
51
96
  </ExampleContainer>
52
97
  <ExampleContainer>
53
98
  <Title title="Chip with ellipsis and prefix" theme="light" level={4} />
54
- <DxcChip
55
- prefixIcon={iconSVG}
56
- label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fgsss"
57
- />
99
+ <div style={{ width: "200px" }}>
100
+ <DxcChip
101
+ prefixIcon={iconSVG}
102
+ label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fgsss"
103
+ />
104
+ </div>
58
105
  </ExampleContainer>
59
106
  <ExampleContainer>
60
107
  <Title title="Chip with ellipsis, suffix and prefix" theme="light" level={4} />
61
- <DxcChip
62
- prefixIcon={iconSVG}
63
- suffixIcon={iconSVG}
64
- label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasdf"
65
- />
108
+ <div style={{ width: "200px" }}>
109
+ <DxcChip
110
+ prefixIcon={iconSVG}
111
+ suffixIcon={iconSVG}
112
+ label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasdf"
113
+ />
114
+ </div>
66
115
  </ExampleContainer>
67
116
  <Title title="Margins" theme="light" level={2} />
68
117
  <ExampleContainer>
@@ -93,6 +142,52 @@ export const Chromatic = () => (
93
142
  <Title title="Xxlarge margin" theme="light" level={4} />
94
143
  <DxcChip label="xxlarge" margin="xxlarge" />
95
144
  </ExampleContainer>
145
+ <Title title="Opinionated theme" theme="light" level={2} />
146
+ <ExampleContainer>
147
+ <Title title="Chip with prefix and suffix" theme="light" level={4} />
148
+ <HalstackProvider theme={opinionatedTheme}>
149
+ <DxcChip
150
+ label="Chip"
151
+ prefixIcon={iconSVG}
152
+ suffixIcon="https://upload.wikimedia.org/wikipedia/commons/e/e0/Check_green_icon.svg"
153
+ />
154
+ </HalstackProvider>
155
+ </ExampleContainer>
156
+ <ExampleContainer>
157
+ <Title title="Chip with prefix and suffix" theme="light" level={4} />
158
+ <HalstackProvider theme={opinionatedTheme}>
159
+ <DxcChip
160
+ label="Chip"
161
+ disabled
162
+ prefixIcon={iconSVG}
163
+ suffixIcon="https://upload.wikimedia.org/wikipedia/commons/e/e0/Check_green_icon.svg"
164
+ />
165
+ </HalstackProvider>
166
+ </ExampleContainer>
167
+ <ExampleContainer pseudoState="pseudo-hover">
168
+ <Title title="Hovered" theme="light" level={4} />
169
+ <HalstackProvider theme={opinionatedTheme}>
170
+ <DxcChip
171
+ label="Chip"
172
+ prefixIcon={iconSVG}
173
+ suffixIcon={iconSVG}
174
+ onClickPrefix={() => {}}
175
+ onClickSuffix={() => {}}
176
+ />
177
+ </HalstackProvider>
178
+ </ExampleContainer>
179
+ <ExampleContainer pseudoState="pseudo-active">
180
+ <Title title="Actived" theme="light" level={4} />
181
+ <HalstackProvider theme={opinionatedTheme}>
182
+ <DxcChip
183
+ label="Chip"
184
+ prefixIcon={iconSVG}
185
+ suffixIcon={iconSVG}
186
+ onClickPrefix={() => {}}
187
+ onClickSuffix={() => {}}
188
+ />
189
+ </HalstackProvider>
190
+ </ExampleContainer>
96
191
  </>
97
192
  );
98
193
  const ChipPrefixFocused = () => (
@@ -104,16 +199,16 @@ const ChipPrefixFocused = () => (
104
199
  const ChipSuffixFocused = () => (
105
200
  <ExampleContainer>
106
201
  <Title title="Chip with suffix" theme="light" level={4} />
107
- <DxcChip label="Chip with suffix" suffixIcon={iconSVG} onClickSuffix={() => {}} />
202
+ <DxcChip label="Chip with suffix" suffixIcon="https://cdn.iconscout.com/icon/free/png-256/free-delete-2902143-2411575.png" onClickSuffix={() => {}} />
108
203
  </ExampleContainer>
109
204
  );
110
205
 
111
206
  export const PrefixFocused = ChipPrefixFocused.bind({});
112
- PrefixFocused.play = async ({ canvasElement }) => {
207
+ PrefixFocused.play = async () => {
113
208
  await userEvent.tab();
114
209
  };
115
210
 
116
211
  export const SuffixFocused = ChipSuffixFocused.bind({});
117
- SuffixFocused.play = async ({ canvasElement }) => {
212
+ SuffixFocused.play = async () => {
118
213
  await userEvent.tab();
119
214
  };
package/chip/Chip.test.js CHANGED
@@ -1,56 +1,41 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _react = _interopRequireDefault(require("react"));
6
-
7
5
  var _react2 = require("@testing-library/react");
8
-
9
- var _Chip = _interopRequireDefault(require("./Chip"));
10
-
11
- var _invision = _interopRequireDefault(require("../../app/src/images/invision.svg"));
12
-
6
+ var _Chip = _interopRequireDefault(require("./Chip.tsx"));
13
7
  describe("Chip component tests", function () {
14
8
  test("Chip renders with correct text", function () {
15
9
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
16
- label: "Chip"
17
- })),
18
- getByText = _render.getByText;
19
-
10
+ label: "Chip"
11
+ })),
12
+ getByText = _render.getByText;
20
13
  expect(getByText("Chip")).toBeTruthy();
21
14
  });
22
15
  test("Calls correct function when clicking on prefix icon", function () {
23
16
  var onClick = jest.fn();
24
-
25
17
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
26
- label: "Chip",
27
- prefixIcon: _invision["default"],
28
- onClickPrefix: onClick
29
- })),
30
- getByText = _render2.getByText,
31
- getByRole = _render2.getByRole;
32
-
18
+ label: "Chip",
19
+ prefixIcon: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png",
20
+ onClickPrefix: onClick
21
+ })),
22
+ getByText = _render2.getByText,
23
+ getByRole = _render2.getByRole;
33
24
  expect(getByText("Chip")).toBeTruthy();
34
-
35
25
  _react2.fireEvent.click(getByRole("img"));
36
-
37
26
  expect(onClick).toHaveBeenCalled();
38
27
  });
39
28
  test("Calls correct function when clicking on suffix icon", function () {
40
29
  var onClick = jest.fn();
41
-
42
30
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
43
- label: "Chip",
44
- suffixIcon: _invision["default"],
45
- onClickSuffix: onClick
46
- })),
47
- getByText = _render3.getByText,
48
- getByRole = _render3.getByRole;
49
-
31
+ label: "Chip",
32
+ suffixIcon: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png",
33
+ onClickSuffix: onClick
34
+ })),
35
+ getByText = _render3.getByText,
36
+ getByRole = _render3.getByRole;
50
37
  expect(getByText("Chip")).toBeTruthy();
51
-
52
38
  _react2.fireEvent.click(getByRole("img"));
53
-
54
39
  expect(onClick).toHaveBeenCalled();
55
40
  });
56
41
  });
package/chip/types.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
- declare type Props = {
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ type Props = {
11
11
  /**
12
12
  * Text to be placed on the chip.
13
13
  */
@@ -1,81 +1,69 @@
1
+ @font-face {
2
+ font-family: "Open Sans";
3
+ src: url("./fonts/OpenSans-Light.ttf") format("truetype");
4
+ font-style: normal;
5
+ font-weight: 200;
6
+ }
1
7
 
2
- @font-face {
3
- font-family: 'Open Sans';
4
- src: url('./fonts/OpenSans-Light.ttf')
5
- format('truetype');
6
- font-style: normal;
7
- font-weight: 200;
8
- }
9
-
10
- @font-face {
11
- font-family: 'Open Sans';
12
- src: url('./fonts/OpenSans-Regular.ttf')
13
- format('truetype');
14
- font-style: normal;
15
- font-weight: 400;
16
- }
17
-
18
- @font-face {
19
- font-family: 'Open Sans';
20
- src: url('./fonts/OpenSans-SemiBold.ttf')
21
- format('truetype');
22
- font-style: normal;
23
- font-weight: 600;
24
- }
25
-
26
- @font-face {
27
- font-family: 'Open Sans';
28
- src: url('./fonts/OpenSans-Bold.ttf')
29
- format('truetype');
30
- font-style: normal;
31
- font-weight: 700;
32
- }
33
-
34
- @font-face {
35
- font-family: 'Open Sans';
36
- src: url('./fonts/OpenSans-ExtraBold.ttf')
37
- format('truetype');
38
- font-style: normal;
39
- font-weight: 800;
40
- }
41
-
42
- @font-face {
43
- font-family: 'Open Sans';
44
- src: url('./fonts/OpenSans-LightItalic.ttf')
45
- format('truetype');
46
- font-style: italic;
47
- font-weight: 200;
48
- }
49
-
50
- @font-face {
51
- font-family: 'Open Sans';
52
- src: url('./fonts/OpenSans-Italic.ttf')
53
- format('truetype');
54
- font-style: italic;
55
- font-weight: 400;
56
- }
57
-
58
- @font-face {
59
- font-family: 'Open Sans';
60
- src: url('./fonts/OpenSans-SemiBoldItalic.ttf')
61
- format('truetype');
62
- font-style: italic;
63
- font-weight: 600;
64
- }
65
-
66
- @font-face {
67
- font-family: 'Open Sans';
68
- src: url('./fonts/OpenSans-BoldItalic.ttf')
69
- format('truetype');
70
- font-style: italic;
71
- font-weight: 700;
72
- }
73
-
74
- @font-face {
75
- font-family: 'Open Sans';
76
- src: url('./fonts/OpenSans-ExtraBoldItalic.ttf')
77
- format('truetype');
78
- font-style: italic;
79
- font-weight: 800;
80
- }
81
-
8
+ @font-face {
9
+ font-family: "Open Sans";
10
+ src: url("./fonts/OpenSans-Regular.ttf") format("truetype");
11
+ font-style: normal;
12
+ font-weight: 400;
13
+ }
14
+
15
+ @font-face {
16
+ font-family: "Open Sans";
17
+ src: url("./fonts/OpenSans-SemiBold.ttf") format("truetype");
18
+ font-style: normal;
19
+ font-weight: 600;
20
+ }
21
+
22
+ @font-face {
23
+ font-family: "Open Sans";
24
+ src: url("./fonts/OpenSans-Bold.ttf") format("truetype");
25
+ font-style: normal;
26
+ font-weight: 700;
27
+ }
28
+
29
+ @font-face {
30
+ font-family: "Open Sans";
31
+ src: url("./fonts/OpenSans-ExtraBold.ttf") format("truetype");
32
+ font-style: normal;
33
+ font-weight: 800;
34
+ }
35
+
36
+ @font-face {
37
+ font-family: "Open Sans";
38
+ src: url("./fonts/OpenSans-LightItalic.ttf") format("truetype");
39
+ font-style: italic;
40
+ font-weight: 200;
41
+ }
42
+
43
+ @font-face {
44
+ font-family: "Open Sans";
45
+ src: url("./fonts/OpenSans-Italic.ttf") format("truetype");
46
+ font-style: italic;
47
+ font-weight: 400;
48
+ }
49
+
50
+ @font-face {
51
+ font-family: "Open Sans";
52
+ src: url("./fonts/OpenSans-SemiBoldItalic.ttf") format("truetype");
53
+ font-style: italic;
54
+ font-weight: 600;
55
+ }
56
+
57
+ @font-face {
58
+ font-family: "Open Sans";
59
+ src: url("./fonts/OpenSans-BoldItalic.ttf") format("truetype");
60
+ font-style: italic;
61
+ font-weight: 700;
62
+ }
63
+
64
+ @font-face {
65
+ font-family: "Open Sans";
66
+ src: url("./fonts/OpenSans-ExtraBoldItalic.ttf") format("truetype");
67
+ font-style: italic;
68
+ font-weight: 800;
69
+ }