@dxc-technology/halstack-react 0.0.0-0271b6e → 0.0.0-0276e5a

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 (276) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +108 -134
  7. package/accordion/Accordion.stories.tsx +108 -118
  8. package/accordion/Accordion.test.js +10 -11
  9. package/accordion/types.d.ts +1 -12
  10. package/accordion-group/AccordionGroup.d.ts +5 -4
  11. package/accordion-group/AccordionGroup.js +34 -76
  12. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  13. package/accordion-group/AccordionGroup.test.js +33 -50
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +11 -12
  17. package/alert/Alert.js +9 -10
  18. package/alert/Alert.stories.tsx +28 -0
  19. package/alert/Alert.test.js +1 -1
  20. package/badge/Badge.d.ts +1 -1
  21. package/badge/Badge.js +5 -3
  22. package/badge/types.d.ts +1 -0
  23. package/bleed/Bleed.js +1 -34
  24. package/bleed/Bleed.stories.tsx +95 -95
  25. package/bleed/types.d.ts +1 -1
  26. package/box/Box.d.ts +1 -1
  27. package/box/Box.js +19 -48
  28. package/box/Box.stories.tsx +38 -51
  29. package/box/Box.test.js +1 -1
  30. package/box/types.d.ts +0 -11
  31. package/bulleted-list/BulletedList.d.ts +7 -0
  32. package/bulleted-list/BulletedList.js +125 -0
  33. package/bulleted-list/BulletedList.stories.tsx +206 -0
  34. package/bulleted-list/types.d.ts +38 -0
  35. package/button/Button.js +52 -70
  36. package/button/Button.stories.tsx +159 -8
  37. package/button/Button.test.js +1 -1
  38. package/button/types.d.ts +5 -5
  39. package/card/Card.d.ts +1 -1
  40. package/card/Card.js +37 -58
  41. package/card/Card.stories.tsx +12 -42
  42. package/card/Card.test.js +1 -1
  43. package/card/types.d.ts +1 -6
  44. package/checkbox/Checkbox.d.ts +2 -2
  45. package/checkbox/Checkbox.js +104 -101
  46. package/checkbox/Checkbox.stories.tsx +198 -130
  47. package/checkbox/Checkbox.test.js +94 -17
  48. package/checkbox/types.d.ts +7 -3
  49. package/chip/Chip.js +28 -49
  50. package/chip/Chip.stories.tsx +121 -26
  51. package/chip/Chip.test.js +3 -5
  52. package/chip/types.d.ts +1 -1
  53. package/common/OpenSans.css +68 -80
  54. package/common/coreTokens.d.ts +146 -0
  55. package/common/coreTokens.js +167 -0
  56. package/common/utils.d.ts +1 -0
  57. package/common/utils.js +4 -4
  58. package/common/variables.d.ts +1482 -0
  59. package/common/variables.js +1100 -1112
  60. package/date-input/Calendar.d.ts +4 -0
  61. package/date-input/Calendar.js +258 -0
  62. package/date-input/DateInput.js +155 -240
  63. package/date-input/DateInput.stories.tsx +199 -33
  64. package/date-input/DateInput.test.js +502 -159
  65. package/date-input/DatePicker.d.ts +4 -0
  66. package/date-input/DatePicker.js +146 -0
  67. package/date-input/Icons.d.ts +6 -0
  68. package/date-input/Icons.js +75 -0
  69. package/date-input/YearPicker.d.ts +4 -0
  70. package/date-input/YearPicker.js +126 -0
  71. package/date-input/types.d.ts +63 -9
  72. package/dialog/Dialog.d.ts +1 -1
  73. package/dialog/Dialog.js +68 -103
  74. package/dialog/Dialog.stories.tsx +154 -171
  75. package/dialog/Dialog.test.js +334 -5
  76. package/dialog/types.d.ts +0 -12
  77. package/dropdown/Dropdown.d.ts +1 -1
  78. package/dropdown/Dropdown.js +246 -253
  79. package/dropdown/Dropdown.stories.tsx +245 -56
  80. package/dropdown/Dropdown.test.js +507 -110
  81. package/dropdown/DropdownMenu.d.ts +4 -0
  82. package/dropdown/DropdownMenu.js +74 -0
  83. package/dropdown/DropdownMenuItem.d.ts +4 -0
  84. package/dropdown/DropdownMenuItem.js +79 -0
  85. package/dropdown/types.d.ts +23 -3
  86. package/file-input/FileInput.d.ts +2 -2
  87. package/file-input/FileInput.js +180 -223
  88. package/file-input/FileInput.stories.tsx +122 -11
  89. package/file-input/FileInput.test.js +14 -14
  90. package/file-input/FileItem.d.ts +4 -14
  91. package/file-input/FileItem.js +44 -66
  92. package/file-input/types.d.ts +18 -1
  93. package/flex/Flex.d.ts +4 -0
  94. package/flex/Flex.js +71 -0
  95. package/flex/Flex.stories.tsx +112 -0
  96. package/flex/types.d.ts +97 -0
  97. package/footer/Footer.d.ts +1 -1
  98. package/footer/Footer.js +49 -142
  99. package/footer/Footer.stories.tsx +37 -16
  100. package/footer/Footer.test.js +16 -26
  101. package/footer/Icons.js +1 -1
  102. package/footer/types.d.ts +11 -12
  103. package/grid/Grid.d.ts +7 -0
  104. package/grid/Grid.js +91 -0
  105. package/grid/Grid.stories.tsx +219 -0
  106. package/grid/types.d.ts +115 -0
  107. package/header/Header.d.ts +4 -3
  108. package/header/Header.js +102 -150
  109. package/header/Header.stories.tsx +152 -63
  110. package/header/Header.test.js +20 -4
  111. package/header/Icons.js +2 -2
  112. package/header/types.d.ts +0 -13
  113. package/heading/Heading.js +1 -1
  114. package/heading/Heading.test.js +1 -1
  115. package/inset/Inset.js +1 -34
  116. package/inset/Inset.stories.tsx +37 -36
  117. package/inset/types.d.ts +25 -1
  118. package/layout/ApplicationLayout.d.ts +16 -6
  119. package/layout/ApplicationLayout.js +78 -135
  120. package/layout/ApplicationLayout.stories.tsx +84 -93
  121. package/layout/Icons.d.ts +5 -0
  122. package/layout/Icons.js +13 -2
  123. package/layout/SidenavContext.d.ts +5 -0
  124. package/layout/SidenavContext.js +19 -0
  125. package/layout/types.d.ts +19 -35
  126. package/link/Link.d.ts +3 -2
  127. package/link/Link.js +60 -77
  128. package/link/Link.stories.tsx +155 -53
  129. package/link/Link.test.js +9 -19
  130. package/link/types.d.ts +5 -21
  131. package/main.d.ts +8 -10
  132. package/main.js +47 -57
  133. package/nav-tabs/NavTabs.d.ts +8 -0
  134. package/nav-tabs/NavTabs.js +122 -0
  135. package/nav-tabs/NavTabs.stories.tsx +274 -0
  136. package/nav-tabs/NavTabs.test.js +82 -0
  137. package/nav-tabs/Tab.d.ts +4 -0
  138. package/nav-tabs/Tab.js +146 -0
  139. package/nav-tabs/types.d.ts +52 -0
  140. package/number-input/NumberInput.test.js +46 -12
  141. package/number-input/types.d.ts +13 -10
  142. package/package.json +19 -23
  143. package/paginator/Icons.d.ts +5 -0
  144. package/paginator/Icons.js +16 -28
  145. package/paginator/Paginator.js +20 -49
  146. package/paginator/Paginator.stories.tsx +24 -0
  147. package/paginator/Paginator.test.js +91 -39
  148. package/paragraph/Paragraph.d.ts +5 -0
  149. package/paragraph/Paragraph.js +38 -0
  150. package/paragraph/Paragraph.stories.tsx +44 -0
  151. package/password-input/PasswordInput.js +7 -4
  152. package/password-input/PasswordInput.test.js +17 -19
  153. package/password-input/types.d.ts +14 -11
  154. package/progress-bar/ProgressBar.js +61 -55
  155. package/progress-bar/ProgressBar.stories.jsx +47 -12
  156. package/progress-bar/ProgressBar.test.js +68 -23
  157. package/quick-nav/QuickNav.js +77 -26
  158. package/quick-nav/QuickNav.stories.tsx +145 -26
  159. package/quick-nav/types.d.ts +4 -4
  160. package/radio-group/Radio.d.ts +1 -1
  161. package/radio-group/Radio.js +46 -31
  162. package/radio-group/RadioGroup.js +37 -36
  163. package/radio-group/RadioGroup.stories.tsx +132 -18
  164. package/radio-group/RadioGroup.test.js +124 -97
  165. package/radio-group/types.d.ts +2 -2
  166. package/resultsetTable/Icons.d.ts +7 -0
  167. package/resultsetTable/Icons.js +51 -0
  168. package/resultsetTable/ResultsetTable.js +49 -108
  169. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  170. package/resultsetTable/ResultsetTable.test.js +61 -42
  171. package/resultsetTable/types.d.ts +1 -1
  172. package/select/Listbox.d.ts +4 -0
  173. package/select/Listbox.js +169 -0
  174. package/select/Option.js +11 -24
  175. package/select/Select.js +150 -224
  176. package/select/Select.stories.tsx +522 -133
  177. package/select/Select.test.js +551 -339
  178. package/select/types.d.ts +32 -13
  179. package/sidenav/Icons.d.ts +7 -0
  180. package/sidenav/Icons.js +51 -0
  181. package/sidenav/Sidenav.d.ts +6 -5
  182. package/sidenav/Sidenav.js +146 -44
  183. package/sidenav/Sidenav.stories.tsx +251 -151
  184. package/sidenav/Sidenav.test.js +25 -37
  185. package/sidenav/types.d.ts +52 -26
  186. package/slider/Slider.d.ts +2 -2
  187. package/slider/Slider.js +121 -97
  188. package/slider/Slider.stories.tsx +64 -1
  189. package/slider/Slider.test.js +122 -22
  190. package/slider/types.d.ts +4 -0
  191. package/spinner/Spinner.js +18 -24
  192. package/spinner/Spinner.stories.jsx +53 -27
  193. package/spinner/Spinner.test.js +1 -1
  194. package/switch/Switch.d.ts +2 -2
  195. package/switch/Switch.js +138 -68
  196. package/switch/Switch.stories.tsx +49 -38
  197. package/switch/Switch.test.js +145 -18
  198. package/switch/types.d.ts +6 -2
  199. package/table/Table.js +3 -3
  200. package/table/Table.stories.jsx +80 -1
  201. package/table/Table.test.js +2 -2
  202. package/tabs/Tab.d.ts +4 -0
  203. package/tabs/Tab.js +132 -0
  204. package/tabs/Tabs.d.ts +1 -1
  205. package/tabs/Tabs.js +360 -112
  206. package/tabs/Tabs.stories.tsx +119 -13
  207. package/tabs/Tabs.test.js +244 -17
  208. package/tabs/types.d.ts +17 -3
  209. package/tag/Tag.js +12 -17
  210. package/tag/Tag.stories.tsx +14 -1
  211. package/tag/Tag.test.js +1 -1
  212. package/tag/types.d.ts +1 -1
  213. package/text-input/Icons.d.ts +8 -0
  214. package/text-input/Icons.js +60 -0
  215. package/text-input/Suggestion.d.ts +4 -0
  216. package/text-input/Suggestion.js +84 -0
  217. package/text-input/Suggestions.d.ts +4 -0
  218. package/text-input/Suggestions.js +134 -0
  219. package/text-input/TextInput.js +221 -346
  220. package/text-input/TextInput.stories.tsx +280 -185
  221. package/text-input/TextInput.test.js +756 -758
  222. package/text-input/types.d.ts +46 -12
  223. package/textarea/Textarea.js +13 -23
  224. package/textarea/Textarea.stories.jsx +60 -1
  225. package/textarea/Textarea.test.js +2 -4
  226. package/textarea/types.d.ts +10 -7
  227. package/toggle-group/ToggleGroup.d.ts +2 -2
  228. package/toggle-group/ToggleGroup.js +12 -8
  229. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  230. package/toggle-group/ToggleGroup.test.js +36 -5
  231. package/toggle-group/types.d.ts +10 -2
  232. package/typography/Typography.d.ts +4 -0
  233. package/typography/Typography.js +32 -0
  234. package/typography/Typography.stories.tsx +198 -0
  235. package/typography/types.d.ts +18 -0
  236. package/typography/types.js +5 -0
  237. package/useTheme.d.ts +1234 -1
  238. package/useTheme.js +3 -3
  239. package/useTranslatedLabels.d.ts +85 -0
  240. package/useTranslatedLabels.js +20 -0
  241. package/utils/BaseTypography.d.ts +21 -0
  242. package/utils/BaseTypography.js +108 -0
  243. package/utils/FocusLock.d.ts +13 -0
  244. package/utils/FocusLock.js +138 -0
  245. package/wizard/Wizard.js +44 -45
  246. package/wizard/Wizard.stories.tsx +40 -1
  247. package/wizard/Wizard.test.js +1 -1
  248. package/wizard/types.d.ts +3 -3
  249. package/ThemeContext.d.ts +0 -10
  250. package/ThemeContext.js +0 -243
  251. package/card/ice-cream.jpg +0 -0
  252. package/common/RequiredComponent.js +0 -32
  253. package/list/List.d.ts +0 -4
  254. package/list/List.js +0 -47
  255. package/list/List.stories.tsx +0 -95
  256. package/list/types.d.ts +0 -7
  257. package/radio/Radio.d.ts +0 -4
  258. package/radio/Radio.js +0 -174
  259. package/radio/Radio.stories.tsx +0 -192
  260. package/radio/Radio.test.js +0 -71
  261. package/radio/types.d.ts +0 -54
  262. package/row/Row.d.ts +0 -3
  263. package/row/Row.js +0 -127
  264. package/row/Row.stories.tsx +0 -237
  265. package/row/types.d.ts +0 -28
  266. package/stack/Stack.d.ts +0 -3
  267. package/stack/Stack.js +0 -97
  268. package/stack/Stack.stories.tsx +0 -164
  269. package/stack/types.d.ts +0 -24
  270. package/text/Text.d.ts +0 -7
  271. package/text/Text.js +0 -30
  272. package/text/Text.stories.tsx +0 -19
  273. /package/{list → bulleted-list}/types.js +0 -0
  274. /package/{radio → flex}/types.js +0 -0
  275. /package/{row → grid}/types.js +0 -0
  276. /package/{stack → nav-tabs}/types.js +0 -0
@@ -1,8 +1,8 @@
1
1
  import React from "react";
2
- import { userEvent, within } from "@storybook/testing-library";
3
2
  import DxcTabs from "./Tabs";
4
3
  import Title from "../../.storybook/components/Title";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
6
6
 
7
7
  export default {
8
8
  title: "Tabs",
@@ -10,9 +10,8 @@ export default {
10
10
  };
11
11
 
12
12
  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" />
13
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" height="20" width="20" fill="currentColor">
14
+ <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
15
  </svg>
17
16
  );
18
17
 
@@ -30,6 +29,44 @@ const tabs: any = [
30
29
  {
31
30
  label: "Tab 4",
32
31
  },
32
+ {
33
+ label: "Tab 5",
34
+ },
35
+ {
36
+ label: "Tab 6",
37
+ },
38
+ {
39
+ label: "Tab 7",
40
+ },
41
+ ];
42
+
43
+ const disabledTabs: any = [
44
+ {
45
+ label: "Tab 1",
46
+ isDisabled: true,
47
+ },
48
+ {
49
+ label: "Tab 2",
50
+ isDisabled: true,
51
+ },
52
+ {
53
+ label: "Tab 3",
54
+ isDisabled: true,
55
+ },
56
+ ];
57
+
58
+ const firstDisabledTabs: any = [
59
+ {
60
+ label: "Tab 1",
61
+ isDisabled: true,
62
+ },
63
+ {
64
+ label: "Tab 2",
65
+ isDisabled: true,
66
+ },
67
+ {
68
+ label: "Tab 3",
69
+ },
33
70
  ];
34
71
 
35
72
  const tabsNotification = tabs.map((tab, index) => ({
@@ -37,16 +74,34 @@ const tabsNotification = tabs.map((tab, index) => ({
37
74
  notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 200),
38
75
  }));
39
76
 
40
- const tabsIcon = tabs.map((tab) => ({ ...tab, icon: iconSVG }));
77
+ const tabsIcon = tabs.map((tab, index) =>
78
+ index <= tabs.length / 2
79
+ ? { ...tab, icon: "https://cdn-icons-png.flaticon.com/512/5039/5039041.png" }
80
+ : { ...tab, icon: iconSVG }
81
+ );
41
82
 
42
83
  const tabsNotificationIcon = tabsNotification.map((tab) => ({ ...tab, icon: iconSVG }));
43
84
 
85
+ const opinionatedTheme = {
86
+ tabs: {
87
+ baseColor: "#5f249f",
88
+ },
89
+ };
90
+
44
91
  export const Chromatic = () => (
45
92
  <>
46
93
  <ExampleContainer>
47
94
  <Title title="Only label" theme="light" level={4} />
48
95
  <DxcTabs tabs={tabs} />
49
96
  </ExampleContainer>
97
+ <ExampleContainer>
98
+ <Title title="Disabled tabs" theme="light" level={4} />
99
+ <DxcTabs activeTabIndex={0} tabs={disabledTabs} />
100
+ </ExampleContainer>
101
+ <ExampleContainer>
102
+ <Title title="First two tabs disabled" theme="light" level={4} />
103
+ <DxcTabs tabs={firstDisabledTabs} />
104
+ </ExampleContainer>
50
105
  <ExampleContainer pseudoState="pseudo-hover">
51
106
  <Title title="Hovered tabs" theme="light" level={4} />
52
107
  <DxcTabs tabs={tabs} />
@@ -79,13 +134,6 @@ export const Chromatic = () => (
79
134
  <Title title="With icon on the left and notification number" theme="light" level={4} />
80
135
  <DxcTabs tabs={tabsNotificationIcon} iconPosition="left" />
81
136
  </ExampleContainer>
82
- <ExampleContainer>
83
- <Title title="Scrollable" theme="light" level={4} />
84
- <div style={{ width: "400px" }}>
85
- <DxcTabs tabs={tabsNotificationIcon} iconPosition="left" activeTabIndex={1} />
86
- </div>
87
- </ExampleContainer>
88
-
89
137
  <Title title="Margins" theme="light" level={2} />
90
138
  <ExampleContainer>
91
139
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -114,7 +162,65 @@ export const Chromatic = () => (
114
162
  <ExampleContainer>
115
163
  <Title title="Xxlarge margin" theme="light" level={4} />
116
164
  <DxcTabs tabs={tabs} margin="xxlarge" />
117
- <hr />
165
+ </ExampleContainer>
166
+ <Title title="Opinionated theme" theme="light" level={2} />
167
+ <ExampleContainer>
168
+ <Title title="With icon and notification" theme="light" level={4} />
169
+ <HalstackProvider theme={opinionatedTheme}>
170
+ <DxcTabs tabs={tabsNotificationIcon} />
171
+ </HalstackProvider>
172
+ </ExampleContainer>
173
+ <ExampleContainer>
174
+ <Title title="Disabled" theme="light" level={4} />
175
+ <HalstackProvider theme={opinionatedTheme}>
176
+ <DxcTabs activeTabIndex={0} tabs={disabledTabs} />
177
+ </HalstackProvider>
178
+ </ExampleContainer>
179
+ <ExampleContainer pseudoState="pseudo-hover">
180
+ <Title title="Hovered" theme="light" level={4} />
181
+ <HalstackProvider theme={opinionatedTheme}>
182
+ <DxcTabs tabs={tabs} />
183
+ </HalstackProvider>
184
+ </ExampleContainer>
185
+ <ExampleContainer pseudoState="pseudo-focus">
186
+ <Title title="Focused" theme="light" level={4} />
187
+ <HalstackProvider theme={opinionatedTheme}>
188
+ <DxcTabs tabs={tabs} />
189
+ </HalstackProvider>
190
+ </ExampleContainer>
191
+ <ExampleContainer pseudoState="pseudo-active">
192
+ <Title title="Actived" theme="light" level={4} />
193
+ <HalstackProvider theme={opinionatedTheme}>
194
+ <DxcTabs tabs={tabs} />
195
+ </HalstackProvider>
196
+ </ExampleContainer>
197
+ </>
198
+ );
199
+
200
+ export const ScrollableTabs = () => (
201
+ <>
202
+ <ExampleContainer>
203
+ <Title title="Only label" theme="light" level={4} />
204
+ <DxcTabs tabs={tabs} />
205
+ </ExampleContainer>
206
+ <ExampleContainer pseudoState="pseudo-hover">
207
+ <Title title="Hovered tabs" theme="light" level={4} />
208
+ <DxcTabs tabs={tabs} />
209
+ </ExampleContainer>
210
+ <ExampleContainer pseudoState="pseudo-focus">
211
+ <Title title="Focused tabs" theme="light" level={4} />
212
+ <DxcTabs tabs={tabs} />
213
+ </ExampleContainer>
214
+ <ExampleContainer pseudoState="pseudo-active">
215
+ <Title title="Actived tabs" theme="light" level={4} />
216
+ <DxcTabs tabs={tabs} />
118
217
  </ExampleContainer>
119
218
  </>
120
219
  );
220
+
221
+ ScrollableTabs.parameters = {
222
+ viewport: {
223
+ defaultViewport: "iphonex",
224
+ },
225
+ chromatic: { viewports: [375], delay: 5000 },
226
+ };
package/tabs/Tabs.test.js CHANGED
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Tabs = _interopRequireDefault(require("./Tabs"));
9
+ var _Tabs = _interopRequireDefault(require("./Tabs.tsx"));
10
10
 
11
11
  var sampleTabs = [{
12
12
  label: "Tab-1"
@@ -17,24 +17,46 @@ var sampleTabs = [{
17
17
  }];
18
18
  var sampleTabsWithBadge = [{
19
19
  label: "Tab-1",
20
- notificationNumber: "10"
20
+ notificationNumber: 10
21
21
  }, {
22
22
  label: "Tab-2",
23
- notificationNumber: "20"
23
+ notificationNumber: 20
24
24
  }, {
25
25
  label: "Tab-3",
26
- notificationNumber: "101"
26
+ notificationNumber: 101
27
+ }];
28
+ var sampleTabsMiddleDisabled = [{
29
+ label: "Tab-1"
30
+ }, {
31
+ label: "Tab-2",
32
+ isDisabled: true
33
+ }, {
34
+ label: "Tab-3"
35
+ }];
36
+ var sampleTabsLastTabNonDisabled = [{
37
+ label: "Tab-1",
38
+ isDisabled: true
39
+ }, {
40
+ label: "Tab-2",
41
+ isDisabled: true
42
+ }, {
43
+ label: "Tab-3"
27
44
  }];
28
45
  describe("Tabs component tests", function () {
29
46
  test("Tabs render with correct labels", function () {
30
47
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
31
48
  tabs: sampleTabs
32
49
  })),
33
- getByText = _render.getByText;
50
+ getByText = _render.getByText,
51
+ getAllByRole = _render.getAllByRole;
34
52
 
53
+ var tabs = getAllByRole("tab");
35
54
  expect(getByText("Tab-1")).toBeTruthy();
36
55
  expect(getByText("Tab-2")).toBeTruthy();
37
56
  expect(getByText("Tab-3")).toBeTruthy();
57
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
58
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
59
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
38
60
  });
39
61
  test("Tabs render with correct labels and badges", function () {
40
62
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
@@ -46,8 +68,20 @@ describe("Tabs component tests", function () {
46
68
  expect(getByText("20")).toBeTruthy();
47
69
  expect(getByText("+99")).toBeTruthy();
48
70
  });
49
- test("Tabs render with correct icons", function () {
71
+ test("Tabs render with an initially active tab", function () {
50
72
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
73
+ defaultActiveTabIndex: 2,
74
+ tabs: sampleTabsWithBadge
75
+ })),
76
+ getAllByRole = _render3.getAllByRole;
77
+
78
+ var tabs = getAllByRole("tab");
79
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
80
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
81
+ expect(tabs[2].getAttribute("aria-selected")).toBe("true");
82
+ });
83
+ test("Tabs render with correct icons", function () {
84
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
51
85
  tabs: [{
52
86
  label: "Tab-1",
53
87
  icon: "/testIcon1.png"
@@ -59,14 +93,14 @@ describe("Tabs component tests", function () {
59
93
  icon: "/testIcon3.png"
60
94
  }]
61
95
  })),
62
- getAllByRole = _render3.getAllByRole;
96
+ getAllByRole = _render4.getAllByRole;
63
97
 
64
98
  expect(getAllByRole("img")[0].getAttribute("src")).toBe("/testIcon1.png");
65
99
  expect(getAllByRole("img")[1].getAttribute("src")).toBe("/testIcon2.png");
66
100
  expect(getAllByRole("img")[2].getAttribute("src")).toBe("/testIcon3.png");
67
101
  });
68
102
  test("Tabs render with disabled tab", function () {
69
- var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
103
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
70
104
  tabs: [{
71
105
  label: "Tab-1",
72
106
  isDisabled: true
@@ -74,7 +108,7 @@ describe("Tabs component tests", function () {
74
108
  label: "Tab-2"
75
109
  }]
76
110
  })),
77
- getAllByRole = _render4.getAllByRole;
111
+ getAllByRole = _render5.getAllByRole;
78
112
 
79
113
  expect(getAllByRole("tab")[0].hasAttribute("disabled")).toBeTruthy();
80
114
  expect(getAllByRole("tab")[1].hasAttribute("disabled")).toBeFalsy();
@@ -82,42 +116,235 @@ describe("Tabs component tests", function () {
82
116
  test("Uncontrolled tabs", function () {
83
117
  var onTabClick = jest.fn();
84
118
 
85
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
119
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
86
120
  tabs: sampleTabs,
87
121
  onTabClick: onTabClick
88
122
  })),
89
- getByText = _render5.getByText;
123
+ getByText = _render6.getByText,
124
+ getAllByRole = _render6.getAllByRole;
90
125
 
126
+ var tabs = getAllByRole("tab");
91
127
  var tab1 = getByText("Tab-1");
92
128
  var tab2 = getByText("Tab-2");
93
129
 
94
130
  _react2.fireEvent.click(tab2);
95
131
 
96
132
  expect(onTabClick).toHaveBeenCalledWith(1);
133
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
134
+ expect(tabs[1].getAttribute("aria-selected")).toBe("true");
135
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
97
136
 
98
137
  _react2.fireEvent.click(tab1);
99
138
 
100
139
  expect(onTabClick).toHaveBeenCalledWith(0);
140
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
141
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
142
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
101
143
  });
102
144
  test("Controlled tabs", function () {
103
145
  var onTabClick = jest.fn();
104
146
 
105
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
147
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
106
148
  tabs: sampleTabs,
107
149
  onTabClick: onTabClick,
108
150
  activeTabIndex: 0
109
151
  })),
110
- getByText = _render6.getByText;
152
+ getAllByRole = _render7.getAllByRole;
111
153
 
112
- var tab2 = getByText("Tab-2");
113
- var tab3 = getByText("Tab-3");
154
+ var tabs = getAllByRole("tab");
114
155
 
115
- _react2.fireEvent.click(tab2);
156
+ _react2.fireEvent.click(tabs[1]);
116
157
 
117
158
  expect(onTabClick).toHaveBeenCalledWith(1);
159
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
160
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
161
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
162
+
163
+ _react2.fireEvent.click(tabs[2]);
164
+
165
+ expect(onTabClick).toHaveBeenCalledWith(2);
166
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
167
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
168
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
169
+ });
170
+ test("Uncontrolled tabs should have focus in the first non-disabled tab", function () {
171
+ var onTabClick = jest.fn();
172
+
173
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
174
+ tabs: sampleTabsLastTabNonDisabled,
175
+ onTabClick: onTabClick
176
+ })),
177
+ getAllByRole = _render8.getAllByRole;
178
+
179
+ var tabs = getAllByRole("tab");
180
+ expect(tabs[0].hasAttribute("disabled")).toBeTruthy();
181
+ expect(tabs[1].hasAttribute("disabled")).toBeTruthy();
182
+ expect(tabs[2].hasAttribute("disabled")).toBeFalsy();
183
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
184
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
185
+ expect(tabs[2].getAttribute("aria-selected")).toBe("true");
186
+ });
187
+ test("Controlled tabs with active index in disabled tab should not change focus to the first available tab", function () {
188
+ var onTabClick = jest.fn();
189
+
190
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
191
+ tabs: sampleTabsLastTabNonDisabled,
192
+ onTabClick: onTabClick,
193
+ activeTabIndex: 0
194
+ })),
195
+ getAllByRole = _render9.getAllByRole;
196
+
197
+ var tabs = getAllByRole("tab");
198
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
199
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
200
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
201
+ expect(tabs[0].hasAttribute("disabled")).toBeTruthy();
202
+ expect(tabs[1].hasAttribute("disabled")).toBeTruthy();
203
+ expect(tabs[2].hasAttribute("disabled")).toBeFalsy();
204
+
205
+ _react2.fireEvent.click(tabs[2]);
206
+
207
+ expect(onTabClick).toHaveBeenCalledWith(2);
208
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
209
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
210
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
211
+ expect(tabs[0].hasAttribute("disabled")).toBeTruthy();
212
+ expect(tabs[1].hasAttribute("disabled")).toBeTruthy();
213
+ expect(tabs[2].hasAttribute("disabled")).toBeFalsy();
214
+ });
215
+ test("Select tabs with keyboard event arrows", function () {
216
+ var onTabClick = jest.fn();
217
+
218
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
219
+ tabs: sampleTabs,
220
+ onTabClick: onTabClick
221
+ })),
222
+ getByText = _render10.getByText,
223
+ getByRole = _render10.getByRole,
224
+ getAllByRole = _render10.getAllByRole;
225
+
226
+ var tabList = getByRole("tablist");
227
+ var tab1 = getByText("Tab-1");
228
+ var tabs = getAllByRole("tab");
229
+
230
+ _react2.fireEvent.click(tab1);
231
+
232
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
233
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
234
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
235
+ expect(onTabClick).toHaveBeenCalledWith(0);
236
+
237
+ _react2.fireEvent.keyDown(tabList, {
238
+ key: "ArrowRight"
239
+ });
240
+
241
+ _react2.fireEvent.keyDown(tabList, {
242
+ key: "Enter"
243
+ });
244
+
245
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
246
+ expect(tabs[1].getAttribute("aria-selected")).toBe("true");
247
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
248
+ expect(onTabClick).toHaveBeenCalledWith(1);
249
+
250
+ _react2.fireEvent.keyDown(tabList, {
251
+ key: "ArrowRight"
252
+ });
253
+
254
+ _react2.fireEvent.keyDown(tabList, {
255
+ key: "Enter"
256
+ });
257
+
258
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
259
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
260
+ expect(tabs[2].getAttribute("aria-selected")).toBe("true");
261
+ expect(onTabClick).toHaveBeenCalledWith(2);
262
+
263
+ _react2.fireEvent.keyDown(tabList, {
264
+ key: "ArrowLeft"
265
+ });
266
+
267
+ _react2.fireEvent.keyDown(tabList, {
268
+ key: "Enter"
269
+ });
270
+
271
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
272
+ expect(tabs[1].getAttribute("aria-selected")).toBe("true");
273
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
274
+ expect(onTabClick).toHaveBeenCalledWith(1);
275
+
276
+ _react2.fireEvent.keyDown(tabList, {
277
+ key: "ArrowLeft"
278
+ });
279
+
280
+ _react2.fireEvent.keyDown(tabList, {
281
+ key: "Enter"
282
+ });
283
+
284
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
285
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
286
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
287
+ expect(onTabClick).toHaveBeenCalledWith(0);
288
+
289
+ _react2.fireEvent.keyDown(tabList, {
290
+ key: "ArrowLeft"
291
+ });
292
+
293
+ _react2.fireEvent.keyDown(tabList, {
294
+ key: "Enter"
295
+ });
296
+
297
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
298
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
299
+ expect(tabs[2].getAttribute("aria-selected")).toBe("true");
300
+ expect(onTabClick).toHaveBeenCalledWith(2);
301
+
302
+ _react2.fireEvent.keyDown(tabList, {
303
+ key: "ArrowRight"
304
+ });
305
+
306
+ _react2.fireEvent.keyDown(tabList, {
307
+ key: "Enter"
308
+ });
309
+
310
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
311
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
312
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
313
+ expect(onTabClick).toHaveBeenCalledWith(0);
314
+ });
315
+ test("Skip disabled tab with keyboard event arrows", function () {
316
+ var onTabClick = jest.fn();
317
+
318
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
319
+ tabs: sampleTabsMiddleDisabled,
320
+ onTabClick: onTabClick
321
+ })),
322
+ getByText = _render11.getByText,
323
+ getByRole = _render11.getByRole,
324
+ getAllByRole = _render11.getAllByRole;
325
+
326
+ var tabList = getByRole("tablist");
327
+ var tab1 = getByText("Tab-1");
328
+ var tabs = getAllByRole("tab");
329
+
330
+ _react2.fireEvent.click(tab1);
331
+
332
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
333
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
334
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
335
+ expect(onTabClick).toHaveBeenCalledWith(0);
336
+
337
+ _react2.fireEvent.keyDown(tabList, {
338
+ key: "ArrowRight"
339
+ });
118
340
 
119
- _react2.fireEvent.click(tab3);
341
+ _react2.fireEvent.keyDown(tabList, {
342
+ key: " "
343
+ });
120
344
 
345
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
346
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
347
+ expect(tabs[2].getAttribute("aria-selected")).toBe("true");
121
348
  expect(onTabClick).toHaveBeenCalledWith(2);
122
349
  });
123
350
  });
package/tabs/types.d.ts CHANGED
@@ -6,7 +6,7 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement>;
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
10
  declare type TabCommonProps = {
11
11
  /**
12
12
  * Whether the tab is disabled or not.
@@ -21,7 +21,7 @@ declare type TabCommonProps = {
21
21
  */
22
22
  notificationNumber?: boolean | number;
23
23
  };
24
- declare type TabLabelProps = TabCommonProps & {
24
+ export declare type TabLabelProps = TabCommonProps & {
25
25
  /**
26
26
  * Tab label.
27
27
  */
@@ -31,7 +31,7 @@ declare type TabLabelProps = TabCommonProps & {
31
31
  */
32
32
  icon?: string | SVG;
33
33
  };
34
- declare type TabIconProps = TabCommonProps & {
34
+ export declare type TabIconProps = TabCommonProps & {
35
35
  /**
36
36
  * Tab label.
37
37
  */
@@ -41,6 +41,16 @@ declare type TabIconProps = TabCommonProps & {
41
41
  */
42
42
  icon: string | SVG;
43
43
  };
44
+ export declare type TabProps = {
45
+ tab: TabLabelProps | TabIconProps;
46
+ active: boolean;
47
+ tabIndex: number;
48
+ hasLabelAndIcon: boolean;
49
+ iconPosition: "top" | "left";
50
+ onClick: () => void;
51
+ onMouseEnter: () => void;
52
+ onMouseLeave: () => void;
53
+ };
44
54
  declare type Props = {
45
55
  /**
46
56
  * An array of objects representing the tabs.
@@ -50,6 +60,10 @@ declare type Props = {
50
60
  * Whether the icon should appear above or to the left of the label.
51
61
  */
52
62
  iconPosition?: "top" | "left";
63
+ /**
64
+ * Initially active tab, only when it is uncontrolled.
65
+ */
66
+ defaultActiveTabIndex?: number;
53
67
  /**
54
68
  * The index of the active tab. If undefined, the component will be
55
69
  * uncontrolled and the active tab will be managed internally by the component.
package/tag/Tag.js CHANGED
@@ -19,11 +19,11 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _variables = require("../common/variables.js");
22
+ var _variables = require("../common/variables");
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
- var _utils = require("../common/utils.js");
26
+ var _utils = require("../common/utils");
27
27
 
28
28
  var _Box = _interopRequireDefault(require("../box/Box"));
29
29
 
@@ -64,13 +64,11 @@ var DxcTag = function DxcTag(_ref) {
64
64
  var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
65
65
  size: size,
66
66
  shadowDepth: isHovered && (onClick || linkHref) && 2 || 1
67
- }, /*#__PURE__*/_react["default"].createElement(TagContent, {
68
- labelPosition: labelPosition
69
- }, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
67
+ }, /*#__PURE__*/_react["default"].createElement(TagContent, null, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
70
68
  iconBgColor: iconBgColor
71
69
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(TagIcon, {
72
70
  src: icon
73
- }) : icon), size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
71
+ }) : icon), labelPosition === "after" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
74
72
 
75
73
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
76
74
  theme: colorsTheme.tag
@@ -99,7 +97,7 @@ var sizes = {
99
97
  medium: "240px",
100
98
  large: "480px",
101
99
  fillParent: "100%",
102
- fitContent: "unset"
100
+ fitContent: "fit-content"
103
101
  };
104
102
 
105
103
  var calculateWidth = function calculateWidth(margin, size) {
@@ -114,26 +112,23 @@ var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templat
114
112
  return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
115
113
  }, function (_ref4) {
116
114
  var margin = _ref4.margin;
117
- return margin && margin.top ? _variables.spaces[margin.top] : "";
115
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.top ? _variables.spaces[margin.top] : "";
118
116
  }, function (_ref5) {
119
117
  var margin = _ref5.margin;
120
- return margin && margin.right ? _variables.spaces[margin.right] : "";
118
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.right ? _variables.spaces[margin.right] : "";
121
119
  }, function (_ref6) {
122
120
  var margin = _ref6.margin;
123
- return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
121
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.bottom ? _variables.spaces[margin.bottom] : "";
124
122
  }, function (_ref7) {
125
123
  var margin = _ref7.margin;
126
- return margin && margin.left ? _variables.spaces[margin.left] : "";
124
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.left ? _variables.spaces[margin.left] : "";
127
125
  }, function (props) {
128
126
  return calculateWidth(props.margin, props.size);
129
127
  }, function (props) {
130
128
  return props.theme.height;
131
129
  });
132
130
 
133
- var TagContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n flex-direction: ", ";\n width: 100%;\n height: ", ";\n"])), function (_ref8) {
134
- var labelPosition = _ref8.labelPosition;
135
- return labelPosition === "before" && "row-reverse" || "row";
136
- }, function (props) {
131
+ var TagContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: 100%;\n height: ", ";\n"])), function (props) {
137
132
  return props.theme.height;
138
133
  });
139
134
 
@@ -145,8 +140,8 @@ var StyledButton = _styledComponents["default"].button(_templateObject4 || (_tem
145
140
  return props.theme.focusColor;
146
141
  });
147
142
 
148
- var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (_ref9) {
149
- var iconBgColor = _ref9.iconBgColor;
143
+ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (_ref8) {
144
+ var iconBgColor = _ref8.iconBgColor;
150
145
  return iconBgColor;
151
146
  }, function (props) {
152
147
  return props.theme.iconSectionWidth;