@dxc-technology/halstack-react 11.0.0 → 12.0.1

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 (386) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +3 -8
  3. package/HalstackContext.d.ts +32 -145
  4. package/HalstackContext.js +3 -7
  5. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.js +18 -35
  8. package/accordion/Accordion.stories.tsx +7 -49
  9. package/accordion/Accordion.test.d.ts +1 -0
  10. package/accordion/Accordion.test.js +3 -3
  11. package/accordion/types.d.ts +1 -1
  12. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  13. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  14. package/accordion-group/AccordionGroup.d.ts +2 -3
  15. package/accordion-group/AccordionGroup.js +4 -4
  16. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  17. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  18. package/accordion-group/AccordionGroup.test.js +5 -9
  19. package/accordion-group/AccordionGroupAccordion.js +3 -3
  20. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  21. package/accordion-group/AccordionGroupContext.js +8 -0
  22. package/accordion-group/types.d.ts +1 -1
  23. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  24. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  25. package/action-icon/ActionIcon.d.ts +4 -0
  26. package/action-icon/ActionIcon.js +48 -0
  27. package/action-icon/ActionIcon.stories.tsx +41 -0
  28. package/action-icon/ActionIcon.test.d.ts +1 -0
  29. package/action-icon/ActionIcon.test.js +64 -0
  30. package/action-icon/types.d.ts +26 -0
  31. package/action-icon/types.js +5 -0
  32. package/alert/Alert.accessibility.test.d.ts +1 -0
  33. package/alert/Alert.accessibility.test.js +95 -0
  34. package/alert/Alert.js +21 -75
  35. package/alert/Alert.test.d.ts +1 -0
  36. package/alert/Alert.test.js +1 -1
  37. package/badge/Badge.accessibility.test.d.ts +1 -0
  38. package/badge/Badge.accessibility.test.js +129 -0
  39. package/badge/Badge.d.ts +1 -1
  40. package/badge/Badge.js +141 -28
  41. package/badge/Badge.stories.tsx +210 -0
  42. package/badge/Badge.test.d.ts +1 -0
  43. package/badge/Badge.test.js +30 -0
  44. package/badge/types.d.ts +52 -3
  45. package/box/Box.accessibility.test.d.ts +1 -0
  46. package/box/Box.accessibility.test.js +33 -0
  47. package/box/Box.js +2 -5
  48. package/box/Box.test.d.ts +1 -0
  49. package/box/Box.test.js +1 -1
  50. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  51. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  52. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  53. package/breadcrumbs/Breadcrumbs.js +79 -0
  54. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  55. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  56. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  57. package/breadcrumbs/Item.d.ts +4 -0
  58. package/breadcrumbs/Item.js +52 -0
  59. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  60. package/breadcrumbs/dropdownTheme.js +62 -0
  61. package/breadcrumbs/types.d.ts +16 -0
  62. package/breadcrumbs/types.js +5 -0
  63. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  64. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  65. package/bulleted-list/BulletedList.js +16 -23
  66. package/bulleted-list/BulletedList.stories.tsx +1 -2
  67. package/button/Button.accessibility.test.d.ts +1 -0
  68. package/button/Button.accessibility.test.js +127 -0
  69. package/button/Button.js +16 -16
  70. package/button/Button.stories.tsx +34 -53
  71. package/button/Button.test.d.ts +1 -0
  72. package/button/Button.test.js +4 -2
  73. package/button/types.d.ts +1 -1
  74. package/card/Card.accessibility.test.d.ts +1 -0
  75. package/card/Card.accessibility.test.js +36 -0
  76. package/card/Card.js +3 -2
  77. package/card/Card.test.d.ts +1 -0
  78. package/card/Card.test.js +1 -1
  79. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  80. package/checkbox/Checkbox.accessibility.test.js +87 -0
  81. package/checkbox/Checkbox.js +36 -44
  82. package/checkbox/Checkbox.test.d.ts +1 -0
  83. package/checkbox/Checkbox.test.js +1 -1
  84. package/chip/Chip.accessibility.test.d.ts +1 -0
  85. package/chip/Chip.accessibility.test.js +69 -0
  86. package/chip/Chip.js +20 -26
  87. package/chip/Chip.stories.tsx +67 -50
  88. package/chip/Chip.test.d.ts +1 -0
  89. package/chip/Chip.test.js +5 -5
  90. package/chip/types.d.ts +35 -12
  91. package/common/coreTokens.d.ts +105 -14
  92. package/common/coreTokens.js +40 -22
  93. package/common/fonts.css +2 -0
  94. package/common/variables.d.ts +31 -141
  95. package/common/variables.js +104 -214
  96. package/container/Container.d.ts +4 -0
  97. package/container/Container.js +194 -0
  98. package/container/Container.stories.tsx +214 -0
  99. package/container/types.d.ts +74 -0
  100. package/container/types.js +5 -0
  101. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  102. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  103. package/contextual-menu/ContextualMenu.d.ts +5 -0
  104. package/contextual-menu/ContextualMenu.js +88 -0
  105. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  106. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  107. package/contextual-menu/ContextualMenu.test.js +205 -0
  108. package/contextual-menu/GroupItem.d.ts +4 -0
  109. package/contextual-menu/GroupItem.js +67 -0
  110. package/contextual-menu/ItemAction.d.ts +4 -0
  111. package/contextual-menu/ItemAction.js +51 -0
  112. package/contextual-menu/MenuItem.d.ts +4 -0
  113. package/contextual-menu/MenuItem.js +29 -0
  114. package/contextual-menu/SingleItem.d.ts +4 -0
  115. package/contextual-menu/SingleItem.js +38 -0
  116. package/contextual-menu/types.d.ts +58 -0
  117. package/contextual-menu/types.js +5 -0
  118. package/date-input/Calendar.js +1 -1
  119. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  120. package/date-input/DateInput.accessibility.test.js +230 -0
  121. package/date-input/DateInput.js +19 -20
  122. package/date-input/DateInput.stories.tsx +15 -8
  123. package/date-input/DateInput.test.d.ts +1 -0
  124. package/date-input/DateInput.test.js +9 -8
  125. package/date-input/DatePicker.js +13 -7
  126. package/date-input/YearPicker.js +1 -1
  127. package/date-input/types.d.ts +2 -2
  128. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  129. package/dialog/Dialog.accessibility.test.js +69 -0
  130. package/dialog/Dialog.js +11 -25
  131. package/dialog/Dialog.stories.tsx +175 -0
  132. package/dialog/Dialog.test.d.ts +1 -0
  133. package/dialog/Dialog.test.js +113 -49
  134. package/divider/Divider.accessibility.test.d.ts +1 -0
  135. package/divider/Divider.accessibility.test.js +33 -0
  136. package/divider/Divider.d.ts +4 -0
  137. package/divider/Divider.js +36 -0
  138. package/divider/Divider.stories.tsx +223 -0
  139. package/divider/Divider.test.d.ts +1 -0
  140. package/divider/Divider.test.js +38 -0
  141. package/divider/types.d.ts +21 -0
  142. package/divider/types.js +5 -0
  143. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  144. package/dropdown/Dropdown.accessibility.test.js +184 -0
  145. package/dropdown/Dropdown.js +37 -51
  146. package/dropdown/Dropdown.stories.tsx +15 -26
  147. package/dropdown/Dropdown.test.d.ts +1 -0
  148. package/dropdown/Dropdown.test.js +100 -70
  149. package/dropdown/DropdownMenu.js +4 -4
  150. package/dropdown/DropdownMenuItem.js +8 -4
  151. package/dropdown/types.d.ts +3 -5
  152. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  153. package/file-input/FileInput.accessibility.test.js +167 -0
  154. package/file-input/FileInput.js +127 -145
  155. package/file-input/FileInput.test.d.ts +1 -0
  156. package/file-input/FileInput.test.js +125 -129
  157. package/file-input/FileItem.js +18 -28
  158. package/file-input/types.d.ts +1 -1
  159. package/footer/Footer.accessibility.test.d.ts +1 -0
  160. package/footer/Footer.accessibility.test.js +125 -0
  161. package/footer/Footer.d.ts +1 -1
  162. package/footer/Footer.js +36 -31
  163. package/footer/Footer.stories.tsx +58 -2
  164. package/footer/Footer.test.d.ts +1 -0
  165. package/footer/Footer.test.js +1 -1
  166. package/footer/Icons.d.ts +1 -0
  167. package/footer/Icons.js +52 -16
  168. package/footer/types.d.ts +8 -8
  169. package/header/Header.accessibility.test.d.ts +1 -0
  170. package/header/Header.accessibility.test.js +94 -0
  171. package/header/Header.js +20 -41
  172. package/header/Header.stories.tsx +16 -0
  173. package/header/Header.test.d.ts +1 -0
  174. package/header/Header.test.js +1 -1
  175. package/header/Icons.js +1 -6
  176. package/header/types.d.ts +4 -3
  177. package/heading/Heading.accessibility.test.d.ts +1 -0
  178. package/heading/Heading.accessibility.test.js +33 -0
  179. package/heading/Heading.js +1 -1
  180. package/heading/Heading.test.d.ts +1 -0
  181. package/heading/Heading.test.js +1 -14
  182. package/icon/Icon.accessibility.test.d.ts +1 -0
  183. package/icon/Icon.accessibility.test.js +30 -0
  184. package/icon/Icon.d.ts +4 -0
  185. package/icon/Icon.js +33 -0
  186. package/icon/Icon.stories.tsx +28 -0
  187. package/icon/types.d.ts +4 -0
  188. package/icon/types.js +5 -0
  189. package/image/Image.accessibility.test.d.ts +1 -0
  190. package/image/Image.accessibility.test.js +56 -0
  191. package/image/Image.js +1 -1
  192. package/image/Image.stories.tsx +3 -1
  193. package/layout/ApplicationLayout.d.ts +1 -1
  194. package/layout/ApplicationLayout.js +10 -7
  195. package/layout/Icons.d.ts +0 -1
  196. package/layout/Icons.js +1 -11
  197. package/link/Link.accessibility.test.d.ts +1 -0
  198. package/link/Link.accessibility.test.js +108 -0
  199. package/link/Link.js +8 -6
  200. package/link/Link.stories.tsx +4 -4
  201. package/link/Link.test.d.ts +1 -0
  202. package/link/Link.test.js +1 -1
  203. package/link/types.d.ts +1 -1
  204. package/main.d.ts +8 -3
  205. package/main.js +38 -9
  206. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  207. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  208. package/nav-tabs/NavTabs.d.ts +1 -2
  209. package/nav-tabs/NavTabs.js +25 -7
  210. package/nav-tabs/NavTabs.stories.tsx +44 -24
  211. package/nav-tabs/NavTabs.test.d.ts +1 -0
  212. package/nav-tabs/NavTabs.test.js +12 -10
  213. package/nav-tabs/NavTabsContext.d.ts +3 -0
  214. package/nav-tabs/NavTabsContext.js +8 -0
  215. package/nav-tabs/Tab.js +23 -23
  216. package/nav-tabs/types.d.ts +1 -1
  217. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  218. package/number-input/NumberInput.accessibility.test.js +228 -0
  219. package/number-input/NumberInput.d.ts +0 -7
  220. package/number-input/NumberInput.js +24 -5
  221. package/number-input/NumberInput.test.d.ts +1 -0
  222. package/number-input/NumberInput.test.js +166 -7
  223. package/number-input/NumberInputContext.d.ts +3 -0
  224. package/number-input/NumberInputContext.js +8 -0
  225. package/number-input/types.d.ts +6 -0
  226. package/package.json +20 -18
  227. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  228. package/paginator/Paginator.accessibility.test.js +79 -0
  229. package/paginator/Paginator.js +14 -14
  230. package/paginator/Paginator.test.d.ts +1 -0
  231. package/paginator/Paginator.test.js +1 -1
  232. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  233. package/paragraph/Paragraph.accessibility.test.js +28 -0
  234. package/paragraph/Paragraph.js +2 -7
  235. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  236. package/password-input/PasswordInput.accessibility.test.js +153 -0
  237. package/password-input/PasswordInput.js +7 -7
  238. package/password-input/PasswordInput.stories.tsx +0 -1
  239. package/password-input/PasswordInput.test.d.ts +1 -0
  240. package/password-input/PasswordInput.test.js +5 -5
  241. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  242. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  243. package/progress-bar/ProgressBar.js +11 -15
  244. package/progress-bar/ProgressBar.test.d.ts +1 -0
  245. package/progress-bar/ProgressBar.test.js +1 -1
  246. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  247. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  248. package/quick-nav/QuickNav.js +1 -1
  249. package/radio-group/Radio.js +6 -9
  250. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  251. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  252. package/radio-group/RadioGroup.js +15 -17
  253. package/radio-group/RadioGroup.test.d.ts +1 -0
  254. package/radio-group/RadioGroup.test.js +3 -5
  255. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  256. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  257. package/resultset-table/ResultsetTable.d.ts +4 -1
  258. package/resultset-table/ResultsetTable.js +25 -13
  259. package/resultset-table/ResultsetTable.stories.tsx +118 -5
  260. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  261. package/resultset-table/ResultsetTable.test.js +76 -1
  262. package/resultset-table/types.d.ts +40 -7
  263. package/select/Listbox.js +24 -16
  264. package/select/Option.js +19 -10
  265. package/select/Select.accessibility.test.d.ts +1 -0
  266. package/select/Select.accessibility.test.js +228 -0
  267. package/select/Select.js +72 -54
  268. package/select/Select.stories.tsx +59 -111
  269. package/select/Select.test.d.ts +1 -0
  270. package/select/Select.test.js +393 -459
  271. package/select/types.d.ts +3 -3
  272. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  273. package/sidenav/Sidenav.accessibility.test.js +59 -0
  274. package/sidenav/Sidenav.js +21 -19
  275. package/sidenav/Sidenav.stories.tsx +4 -9
  276. package/sidenav/Sidenav.test.d.ts +1 -0
  277. package/sidenav/Sidenav.test.js +1 -1
  278. package/sidenav/types.d.ts +2 -2
  279. package/slider/Slider.accessibility.test.d.ts +1 -0
  280. package/slider/Slider.accessibility.test.js +104 -0
  281. package/slider/Slider.js +31 -42
  282. package/slider/Slider.stories.tsx +180 -0
  283. package/slider/Slider.test.d.ts +1 -0
  284. package/slider/Slider.test.js +12 -9
  285. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  286. package/spinner/Spinner.accessibility.test.js +96 -0
  287. package/spinner/Spinner.js +12 -16
  288. package/spinner/Spinner.test.d.ts +1 -0
  289. package/spinner/Spinner.test.js +1 -1
  290. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  291. package/status-light/StatusLight.accessibility.test.js +157 -0
  292. package/status-light/StatusLight.d.ts +4 -0
  293. package/status-light/StatusLight.js +51 -0
  294. package/status-light/StatusLight.stories.tsx +74 -0
  295. package/status-light/StatusLight.test.d.ts +1 -0
  296. package/status-light/StatusLight.test.js +25 -0
  297. package/status-light/types.d.ts +17 -0
  298. package/status-light/types.js +5 -0
  299. package/switch/Switch.accessibility.test.d.ts +1 -0
  300. package/switch/Switch.accessibility.test.js +98 -0
  301. package/switch/Switch.js +29 -37
  302. package/switch/Switch.stories.tsx +12 -0
  303. package/switch/Switch.test.d.ts +1 -0
  304. package/switch/Switch.test.js +1 -1
  305. package/table/DropdownTheme.js +62 -0
  306. package/table/Table.accessibility.test.d.ts +1 -0
  307. package/table/Table.accessibility.test.js +93 -0
  308. package/table/Table.d.ts +6 -2
  309. package/table/Table.js +74 -12
  310. package/table/Table.stories.tsx +309 -2
  311. package/table/Table.test.d.ts +1 -0
  312. package/table/Table.test.js +92 -1
  313. package/table/types.d.ts +28 -0
  314. package/tabs/Tab.js +13 -9
  315. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  316. package/tabs/Tabs.accessibility.test.js +56 -0
  317. package/tabs/Tabs.js +12 -24
  318. package/tabs/Tabs.stories.tsx +8 -4
  319. package/tabs/Tabs.test.d.ts +1 -0
  320. package/tabs/Tabs.test.js +20 -38
  321. package/tabs/types.d.ts +2 -2
  322. package/tag/Tag.accessibility.test.d.ts +1 -0
  323. package/tag/Tag.accessibility.test.js +69 -0
  324. package/tag/Tag.js +7 -7
  325. package/tag/Tag.stories.tsx +4 -7
  326. package/tag/Tag.test.d.ts +1 -0
  327. package/tag/Tag.test.js +5 -13
  328. package/tag/types.d.ts +2 -2
  329. package/text-input/Suggestion.js +1 -1
  330. package/text-input/Suggestions.js +19 -14
  331. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  332. package/text-input/TextInput.accessibility.test.js +321 -0
  333. package/text-input/TextInput.js +103 -126
  334. package/text-input/TextInput.stories.tsx +17 -8
  335. package/text-input/TextInput.test.d.ts +1 -0
  336. package/text-input/TextInput.test.js +97 -80
  337. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  338. package/textarea/Textarea.accessibility.test.js +155 -0
  339. package/textarea/Textarea.js +13 -21
  340. package/textarea/Textarea.stories.tsx +0 -1
  341. package/textarea/Textarea.test.d.ts +1 -0
  342. package/textarea/Textarea.test.js +1 -1
  343. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  344. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  345. package/toggle-group/ToggleGroup.js +11 -16
  346. package/toggle-group/ToggleGroup.stories.tsx +3 -3
  347. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  348. package/toggle-group/ToggleGroup.test.js +1 -1
  349. package/toggle-group/types.d.ts +2 -2
  350. package/typography/Typography.accessibility.test.d.ts +1 -0
  351. package/typography/Typography.accessibility.test.js +339 -0
  352. package/useTheme.d.ts +31 -141
  353. package/utils/BaseTypography.js +1 -1
  354. package/utils/FocusLock.js +16 -6
  355. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  356. package/wizard/Wizard.accessibility.test.js +55 -0
  357. package/wizard/Wizard.js +14 -25
  358. package/wizard/Wizard.stories.tsx +19 -0
  359. package/wizard/Wizard.test.d.ts +1 -0
  360. package/wizard/Wizard.test.js +1 -1
  361. package/wizard/types.d.ts +2 -2
  362. package/common/OpenSans.css +0 -69
  363. package/common/fonts/OpenSans-Bold.ttf +0 -0
  364. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  365. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  366. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  367. package/common/fonts/OpenSans-Italic.ttf +0 -0
  368. package/common/fonts/OpenSans-Light.ttf +0 -0
  369. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  370. package/common/fonts/OpenSans-Regular.ttf +0 -0
  371. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  372. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  373. package/date-input/Icons.d.ts +0 -6
  374. package/date-input/Icons.js +0 -58
  375. package/paginator/Icons.d.ts +0 -5
  376. package/paginator/Icons.js +0 -40
  377. package/password-input/Icons.d.ts +0 -6
  378. package/password-input/Icons.js +0 -35
  379. package/select/Icons.d.ts +0 -10
  380. package/select/Icons.js +0 -89
  381. package/sidenav/Icons.d.ts +0 -7
  382. package/sidenav/Icons.js +0 -47
  383. package/text-input/Icons.d.ts +0 -8
  384. package/text-input/Icons.js +0 -56
  385. /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
  386. /package/{layout → sidenav}/SidenavContext.js +0 -0
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import DxcNavTabs from "./NavTabs";
3
+ import DxcContainer from "../container/Container";
3
4
  import Title from "../../.storybook/components/Title";
4
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
6
  import { HalstackProvider } from "../HalstackContext";
@@ -16,7 +17,9 @@ const iconSVG = (
16
17
  </svg>
17
18
  );
18
19
 
19
- const largeIcon = "https://www.iconpacks.net/icons/1/free-pin-icon-48-thumb.png";
20
+ const favoriteIcon = "filled_Favorite";
21
+
22
+ const pinIcon = "Location_On";
20
23
 
21
24
  const opinionatedTheme = {
22
25
  navTabs: {
@@ -91,7 +94,9 @@ export const Chromatic = () => (
91
94
  <DxcNavTabs.Tab href="#" notificationNumber={120}>
92
95
  Tab 3
93
96
  </DxcNavTabs.Tab>
94
- <DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
97
+ <DxcNavTabs.Tab href="#" notificationNumber={12}>
98
+ Tab 4
99
+ </DxcNavTabs.Tab>
95
100
  </DxcNavTabs>
96
101
  </ExampleContainer>
97
102
  <ExampleContainer>
@@ -103,10 +108,10 @@ export const Chromatic = () => (
103
108
  <DxcNavTabs.Tab href="#" disabled icon={iconSVG}>
104
109
  Tab 2
105
110
  </DxcNavTabs.Tab>
106
- <DxcNavTabs.Tab href="#" icon={largeIcon}>
111
+ <DxcNavTabs.Tab href="#" icon={pinIcon}>
107
112
  Tab 3
108
113
  </DxcNavTabs.Tab>
109
- <DxcNavTabs.Tab href="#" icon={largeIcon}>
114
+ <DxcNavTabs.Tab href="#" icon={pinIcon}>
110
115
  Tab 4
111
116
  </DxcNavTabs.Tab>
112
117
  </DxcNavTabs>
@@ -114,16 +119,16 @@ export const Chromatic = () => (
114
119
  <ExampleContainer>
115
120
  <Title title="With icon position left" theme="light" level={4} />
116
121
  <DxcNavTabs iconPosition="left">
117
- <DxcNavTabs.Tab href="#" active icon={largeIcon}>
122
+ <DxcNavTabs.Tab href="#" active icon={pinIcon}>
118
123
  Tab 1
119
124
  </DxcNavTabs.Tab>
120
- <DxcNavTabs.Tab href="#" disabled icon={iconSVG}>
125
+ <DxcNavTabs.Tab href="#" disabled icon={favoriteIcon}>
121
126
  Tab 2
122
127
  </DxcNavTabs.Tab>
123
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
128
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon}>
124
129
  Tab 3
125
130
  </DxcNavTabs.Tab>
126
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
131
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon}>
127
132
  Tab 4
128
133
  </DxcNavTabs.Tab>
129
134
  </DxcNavTabs>
@@ -131,16 +136,16 @@ export const Chromatic = () => (
131
136
  <ExampleContainer>
132
137
  <Title title="With icon and notification number" theme="light" level={4} />
133
138
  <DxcNavTabs>
134
- <DxcNavTabs.Tab href="#" active icon={largeIcon} notificationNumber>
139
+ <DxcNavTabs.Tab href="#" active icon={pinIcon} notificationNumber>
135
140
  Tab 1
136
141
  </DxcNavTabs.Tab>
137
- <DxcNavTabs.Tab href="#" disabled icon={iconSVG} notificationNumber={5}>
142
+ <DxcNavTabs.Tab href="#" disabled icon={favoriteIcon} notificationNumber={5}>
138
143
  Tab 2
139
144
  </DxcNavTabs.Tab>
140
- <DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={120}>
145
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon} notificationNumber={120}>
141
146
  Tab 3
142
147
  </DxcNavTabs.Tab>
143
- <DxcNavTabs.Tab href="#" icon={largeIcon}>
148
+ <DxcNavTabs.Tab href="#" icon={pinIcon} notificationNumber={12}>
144
149
  Tab 4
145
150
  </DxcNavTabs.Tab>
146
151
  </DxcNavTabs>
@@ -148,16 +153,16 @@ export const Chromatic = () => (
148
153
  <ExampleContainer>
149
154
  <Title title="With icon on the left and notification number" theme="light" level={4} />
150
155
  <DxcNavTabs iconPosition="left">
151
- <DxcNavTabs.Tab href="#" active icon={iconSVG} notificationNumber>
156
+ <DxcNavTabs.Tab href="#" active icon={favoriteIcon} notificationNumber>
152
157
  Tab 1
153
158
  </DxcNavTabs.Tab>
154
- <DxcNavTabs.Tab href="#" disabled icon={iconSVG} notificationNumber={5}>
159
+ <DxcNavTabs.Tab href="#" disabled icon={favoriteIcon} notificationNumber={5}>
155
160
  Tab 2
156
161
  </DxcNavTabs.Tab>
157
- <DxcNavTabs.Tab href="#" icon={largeIcon} notificationNumber={120}>
162
+ <DxcNavTabs.Tab href="#" icon={pinIcon} notificationNumber={120}>
158
163
  Tab 3
159
164
  </DxcNavTabs.Tab>
160
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
165
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon} notificationNumber={12}>
161
166
  Tab 4
162
167
  </DxcNavTabs.Tab>
163
168
  </DxcNavTabs>
@@ -168,10 +173,10 @@ export const Chromatic = () => (
168
173
  <DxcNavTabs.Tab href="#" active>
169
174
  Lorem ipsum dolor sit amet, consectetur adipiscing elit
170
175
  </DxcNavTabs.Tab>
171
- <DxcNavTabs.Tab href="#" icon={iconSVG} disabled notificationNumber={3}>
176
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon} disabled notificationNumber={3}>
172
177
  Tab 2
173
178
  </DxcNavTabs.Tab>
174
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
179
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon}>
175
180
  Tab 3
176
181
  </DxcNavTabs.Tab>
177
182
  </DxcNavTabs>
@@ -182,10 +187,10 @@ export const Chromatic = () => (
182
187
  <DxcNavTabs.Tab href="#" active>
183
188
  Lorem ipsum dolor sit amet, consectetur adipiscing elit
184
189
  </DxcNavTabs.Tab>
185
- <DxcNavTabs.Tab href="#" icon={iconSVG} disabled notificationNumber={3}>
190
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon} disabled notificationNumber={3}>
186
191
  Tab 2
187
192
  </DxcNavTabs.Tab>
188
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
193
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon}>
189
194
  Tab 3
190
195
  </DxcNavTabs.Tab>
191
196
  </DxcNavTabs>
@@ -255,20 +260,35 @@ export const Chromatic = () => (
255
260
  <Title title="With icon and notification number" theme="light" level={4} />
256
261
  <HalstackProvider theme={opinionatedTheme}>
257
262
  <DxcNavTabs>
258
- <DxcNavTabs.Tab href="#" active icon={iconSVG} notificationNumber>
263
+ <DxcNavTabs.Tab href="#" active icon={favoriteIcon} notificationNumber>
259
264
  Tab 1
260
265
  </DxcNavTabs.Tab>
261
- <DxcNavTabs.Tab href="#" disabled icon={iconSVG} notificationNumber={5}>
266
+ <DxcNavTabs.Tab href="#" disabled icon={favoriteIcon} notificationNumber={5}>
262
267
  Tab 2
263
268
  </DxcNavTabs.Tab>
264
- <DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={120}>
269
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon} notificationNumber={120}>
265
270
  Tab 3
266
271
  </DxcNavTabs.Tab>
267
- <DxcNavTabs.Tab href="#" icon={iconSVG}>
272
+ <DxcNavTabs.Tab href="#" icon={favoriteIcon} notificationNumber={12}>
268
273
  Tab 4
269
274
  </DxcNavTabs.Tab>
270
275
  </DxcNavTabs>
271
276
  </HalstackProvider>
272
277
  </ExampleContainer>
278
+ <ExampleContainer>
279
+ <Title title="NavTabs in a limited space container" theme="light" level={4} />
280
+ <DxcContainer width="500px">
281
+ <DxcNavTabs>
282
+ <DxcNavTabs.Tab href="#" active>
283
+ Tab 1
284
+ </DxcNavTabs.Tab>
285
+ <DxcNavTabs.Tab href="#" disabled>
286
+ Tab 2
287
+ </DxcNavTabs.Tab>
288
+ <DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
289
+ <DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
290
+ </DxcNavTabs>
291
+ </DxcContainer>
292
+ </ExampleContainer>
273
293
  </>
274
294
  );
@@ -0,0 +1 @@
1
+ export {};
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  var _react = _interopRequireDefault(require("react"));
5
5
  var _react2 = require("@testing-library/react");
6
- var _NavTabs = _interopRequireDefault(require("./NavTabs.tsx"));
6
+ var _NavTabs = _interopRequireDefault(require("./NavTabs"));
7
7
  describe("Tabs component tests", function () {
8
8
  test("Tabs render with correct labels and attributes", function () {
9
9
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NavTabs["default"], null, /*#__PURE__*/_react["default"].createElement(_NavTabs["default"].Tab, {
@@ -27,12 +27,14 @@ describe("Tabs component tests", function () {
27
27
  tabs.forEach(function (tab, index) {
28
28
  expect(tab.getAttribute("aria-selected")).toBe((index === 0).toString());
29
29
  });
30
- var anchors = getAllByRole("link");
31
- expect(anchors.length).toBe(2);
30
+ var anchors = getAllByRole("tab");
31
+ expect(anchors.length).toBe(3);
32
32
  expect(anchors[0].getAttribute("href")).toBe("/test1");
33
- expect(anchors[1].getAttribute("href")).toBe("/test3");
33
+ expect(anchors[1].getAttribute("href")).toBeFalsy();
34
+ expect(anchors[2].getAttribute("href")).toBe("/test3");
34
35
  expect(anchors[0].getAttribute("tabindex")).toBe("0");
35
36
  expect(anchors[1].getAttribute("tabindex")).toBe("-1");
37
+ expect(anchors[2].getAttribute("tabindex")).toBe("-1");
36
38
  });
37
39
  test("Tabs render with correct labels, badges and icons", function () {
38
40
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NavTabs["default"], null, /*#__PURE__*/_react["default"].createElement(_NavTabs["default"].Tab, {
@@ -46,14 +48,13 @@ describe("Tabs component tests", function () {
46
48
  }, "Tab 2"), /*#__PURE__*/_react["default"].createElement(_NavTabs["default"].Tab, {
47
49
  href: "/test3",
48
50
  notificationNumber: 1000,
49
- icon: "/testIcon.png"
51
+ icon: "Settings"
50
52
  }, "Tab 3"))),
51
53
  getByText = _render2.getByText,
52
- getByRole = _render2.getByRole;
54
+ queryByText = _render2.queryByText;
53
55
  expect(getByText("10")).toBeTruthy();
54
- expect(getByText("20")).toBeTruthy();
56
+ expect(queryByText("20")).toBeFalsy();
55
57
  expect(getByText("+99")).toBeTruthy();
56
- expect(getByRole("img")).toBeTruthy();
57
58
  });
58
59
  test("Tabs render with correct tab index", function () {
59
60
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NavTabs["default"], {
@@ -68,8 +69,9 @@ describe("Tabs component tests", function () {
68
69
  active: true
69
70
  }, "Tab 3"))),
70
71
  getAllByRole = _render3.getAllByRole;
71
- var tabs = getAllByRole("link");
72
+ var tabs = getAllByRole("tab");
72
73
  expect(tabs[0].getAttribute("tabindex")).toBe("-1");
73
- expect(tabs[1].getAttribute("tabindex")).toBe("3");
74
+ expect(tabs[1].getAttribute("tabindex")).toBe("-1");
75
+ expect(tabs[2].getAttribute("tabindex")).toBe("3");
74
76
  });
75
77
  });
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { NavTabsContextProps } from "./types";
3
+ export declare const NavTabsContext: import("react").Context<NavTabsContextProps>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NavTabsContext = void 0;
7
+ var _react = require("react");
8
+ var NavTabsContext = exports.NavTabsContext = /*#__PURE__*/(0, _react.createContext)(null);
package/nav-tabs/Tab.js CHANGED
@@ -13,13 +13,14 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _styledComponents = _interopRequireDefault(require("styled-components"));
14
14
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
15
15
  var _Flex = _interopRequireDefault(require("../flex/Flex"));
16
- var _NavTabs = require("./NavTabs");
17
16
  var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
18
17
  var _useTheme = _interopRequireDefault(require("../useTheme"));
18
+ var _NavTabsContext = require("./NavTabsContext");
19
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
19
20
  var _templateObject, _templateObject2, _templateObject3;
20
21
  var _excluded = ["href", "active", "icon", "disabled", "notificationNumber", "children"];
21
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
23
24
  var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
24
25
  var href = _ref.href,
25
26
  _ref$active = _ref.active,
@@ -33,7 +34,7 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
33
34
  otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
34
35
  var tabRef = (0, _react.useRef)();
35
36
  var colorsTheme = (0, _useTheme["default"])();
36
- var _useContext = (0, _react.useContext)(_NavTabs.NavTabsContext),
37
+ var _useContext = (0, _react.useContext)(_NavTabsContext.NavTabsContext),
37
38
  iconPosition = _useContext.iconPosition,
38
39
  tabIndex = _useContext.tabIndex,
39
40
  focusedLabel = _useContext.focusedLabel;
@@ -52,10 +53,7 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
52
53
  }
53
54
  };
54
55
  return /*#__PURE__*/_react["default"].createElement(TabContainer, {
55
- active: active,
56
- role: "tab",
57
- "aria-selected": active,
58
- "aria-disabled": disabled
56
+ active: active
59
57
  }, /*#__PURE__*/_react["default"].createElement(Tab, (0, _extends2["default"])({
60
58
  href: !disabled ? href : undefined,
61
59
  disabled: disabled,
@@ -69,11 +67,16 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
69
67
  }
70
68
  },
71
69
  onKeyDown: handleOnKeyDown,
72
- tabIndex: active ? tabIndex : -1
70
+ tabIndex: active ? tabIndex : -1,
71
+ role: "tab",
72
+ "aria-selected": active,
73
+ "aria-disabled": disabled
73
74
  }, otherProps), icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
74
- iconPosition: iconPosition
75
- }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
76
- src: icon
75
+ iconPosition: iconPosition,
76
+ active: active,
77
+ disabled: disabled
78
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
79
+ icon: icon
77
80
  }) : icon), /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
78
81
  alignItems: "center",
79
82
  gap: "0.5rem"
@@ -86,19 +89,14 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
86
89
  textAlign: "center",
87
90
  letterSpacing: "0.025em",
88
91
  lineHeight: "1.715em"
89
- }, children), notificationNumber && /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
90
- notificationText: typeof notificationNumber === "number" && notificationNumber > 99 ? "+99" : notificationNumber,
91
- disabled: disabled
92
+ }, children), notificationNumber && !disabled && /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
93
+ mode: "notification",
94
+ size: "small",
95
+ label: typeof notificationNumber === "number" && notificationNumber
92
96
  }))));
93
97
  });
94
- var TabContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n align-items: stretch;\n border-bottom: 2px solid ", ";\n padding: 0.5rem;\n\n svg {\n color: ", ";\n }\n &[aria-selected=\"true\"] {\n svg {\n color: ", ";\n }\n }\n &[aria-disabled=\"true\"] {\n svg {\n color: ", ";\n }\n }\n"])), function (props) {
95
- return props.active ? props.theme.selectedUnderlineColor : props.theme.dividerColor;
96
- }, function (props) {
97
- return props.theme.unselectedIconColor;
98
- }, function (props) {
99
- return props.theme.selectedIconColor;
100
- }, function (props) {
101
- return props.theme.disabledIconColor;
98
+ var TabContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n align-items: stretch;\n border-bottom: 2px solid ", ";\n padding: 0.5rem;\n"])), function (props) {
99
+ return props.active ? props.theme.selectedUnderlineColor : "transparent";
102
100
  });
103
101
  var Tab = _styledComponents["default"].a(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: ", ";\n justify-content: center;\n align-items: center;\n gap: ", ";\n height: ", ";\n min-width: 176px;\n min-height: 44px;\n padding: 0.375rem;\n border-radius: 4px;\n background: ", ";\n text-decoration-color: transparent;\n text-decoration-line: none;\n cursor: ", ";\n\n ", "\n"])), function (props) {
104
102
  return props.hasIcon && props.iconPosition === "top" ? "column" : "row";
@@ -113,5 +111,7 @@ var Tab = _styledComponents["default"].a(_templateObject2 || (_templateObject2 =
113
111
  }, function (props) {
114
112
  return !props.disabled && "\n :hover {\n background: ".concat(props.theme.hoverBackgroundColor, ";\n }\n :focus {\n outline: 2px solid ").concat(props.theme.focusOutline, ";\n }\n :active {\n background: ").concat(props.theme.pressedBackgroundColor, ";\n outline: 2px solid #33aaff};\n }\n ");
115
113
  });
116
- var TabIconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n\n img,\n svg {\n height: 24px;\n width: 24px;\n }\n"])));
114
+ var TabIconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-size: 24px;\n color: ", ";\n svg {\n height: 24px;\n width: 24px;\n }\n"])), function (props) {
115
+ return props.active ? props.theme.selectedIconColor : props.disabled ? props.theme.disabledIconColor : props.theme.unselectedIconColor;
116
+ });
117
117
  var _default = exports["default"] = DxcTab;
@@ -19,7 +19,7 @@ export type TabProps = {
19
19
  */
20
20
  href?: string;
21
21
  /**
22
- * Element or path used as the icon that will be displayed in the tab.
22
+ * Material Symbol name or SVG element used as the icon that will be displayed in the tab.
23
23
  */
24
24
  icon?: string | SVG;
25
25
  /**
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
11
+ var _NumberInput = _interopRequireDefault(require("./NumberInput"));
12
+ // Mocking DOMRect for Radix Primitive Popover
13
+ global.globalThis = global;
14
+ global.DOMRect = {
15
+ fromRect: function fromRect() {
16
+ return {
17
+ top: 0,
18
+ left: 0,
19
+ bottom: 0,
20
+ right: 0,
21
+ width: 0,
22
+ height: 0
23
+ };
24
+ }
25
+ };
26
+ global.ResizeObserver = /*#__PURE__*/function () {
27
+ function ResizeObserver() {
28
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
29
+ }
30
+ (0, _createClass2["default"])(ResizeObserver, [{
31
+ key: "observe",
32
+ value: function observe() {}
33
+ }, {
34
+ key: "unobserve",
35
+ value: function unobserve() {}
36
+ }, {
37
+ key: "disconnect",
38
+ value: function disconnect() {}
39
+ }]);
40
+ return ResizeObserver;
41
+ }();
42
+ describe("Number input component accessibility tests", function () {
43
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
44
+ var _render, container, results;
45
+ return _regenerator["default"].wrap(function _callee$(_context) {
46
+ while (1) switch (_context.prev = _context.next) {
47
+ case 0:
48
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
49
+ label: "Number input label",
50
+ helperText: "Helper text",
51
+ placeholder: "Placeholder",
52
+ defaultValue: "10",
53
+ margin: "medium",
54
+ min: 0,
55
+ max: 100,
56
+ suffix: "Suffix",
57
+ prefix: "Prefix",
58
+ name: "Name",
59
+ size: "medium",
60
+ step: 1
61
+ })), container = _render.container;
62
+ _context.next = 3;
63
+ return (0, _axeHelper.axe)(container);
64
+ case 3:
65
+ results = _context.sent;
66
+ expect(results).toHaveNoViolations();
67
+ case 5:
68
+ case "end":
69
+ return _context.stop();
70
+ }
71
+ }, _callee);
72
+ })));
73
+ it("Should not have basic accessibility issues for optional mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
74
+ var _render2, container, results;
75
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
76
+ while (1) switch (_context2.prev = _context2.next) {
77
+ case 0:
78
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
79
+ label: "Number input label",
80
+ helperText: "Helper text",
81
+ placeholder: "Placeholder",
82
+ defaultValue: "10",
83
+ margin: "medium",
84
+ min: 0,
85
+ max: 100,
86
+ suffix: "Suffix",
87
+ prefix: "Prefix",
88
+ name: "Name",
89
+ size: "medium",
90
+ step: 1,
91
+ optional: true
92
+ })), container = _render2.container;
93
+ _context2.next = 3;
94
+ return (0, _axeHelper.axe)(container);
95
+ case 3:
96
+ results = _context2.sent;
97
+ expect(results).toHaveNoViolations();
98
+ case 5:
99
+ case "end":
100
+ return _context2.stop();
101
+ }
102
+ }, _callee2);
103
+ })));
104
+ it("Should not have basic accessibility issues for error mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
105
+ var _render3, container, results;
106
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
107
+ while (1) switch (_context3.prev = _context3.next) {
108
+ case 0:
109
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
110
+ label: "Number input label",
111
+ helperText: "Helper text",
112
+ placeholder: "Placeholder",
113
+ defaultValue: "10",
114
+ margin: "medium",
115
+ min: 0,
116
+ max: 100,
117
+ suffix: "Suffix",
118
+ prefix: "Prefix",
119
+ name: "Name",
120
+ error: "Input error",
121
+ size: "medium",
122
+ step: 1
123
+ })), container = _render3.container;
124
+ _context3.next = 3;
125
+ return (0, _axeHelper.axe)(container);
126
+ case 3:
127
+ results = _context3.sent;
128
+ expect(results).toHaveNoViolations();
129
+ case 5:
130
+ case "end":
131
+ return _context3.stop();
132
+ }
133
+ }, _callee3);
134
+ })));
135
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
136
+ var _render4, container, results;
137
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
138
+ while (1) switch (_context4.prev = _context4.next) {
139
+ case 0:
140
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
141
+ label: "Number input label",
142
+ helperText: "Helper text",
143
+ placeholder: "Placeholder",
144
+ defaultValue: "10",
145
+ margin: "medium",
146
+ min: 0,
147
+ max: 100,
148
+ suffix: "Suffix",
149
+ prefix: "Prefix",
150
+ name: "Name",
151
+ size: "medium",
152
+ step: 1,
153
+ disabled: true
154
+ })), container = _render4.container;
155
+ _context4.next = 3;
156
+ return (0, _axeHelper.axe)(container);
157
+ case 3:
158
+ results = _context4.sent;
159
+ expect(results).toHaveNoViolations();
160
+ case 5:
161
+ case "end":
162
+ return _context4.stop();
163
+ }
164
+ }, _callee4);
165
+ })));
166
+ it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
167
+ var _render5, container, results;
168
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
169
+ while (1) switch (_context5.prev = _context5.next) {
170
+ case 0:
171
+ _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
172
+ label: "Number input label",
173
+ helperText: "Helper text",
174
+ placeholder: "Placeholder",
175
+ defaultValue: "10",
176
+ margin: "medium",
177
+ min: 0,
178
+ max: 100,
179
+ suffix: "Suffix",
180
+ prefix: "Prefix",
181
+ name: "Name",
182
+ size: "medium",
183
+ step: 1,
184
+ readOnly: true
185
+ })), container = _render5.container;
186
+ _context5.next = 3;
187
+ return (0, _axeHelper.axe)(container);
188
+ case 3:
189
+ results = _context5.sent;
190
+ expect(results).toHaveNoViolations();
191
+ case 5:
192
+ case "end":
193
+ return _context5.stop();
194
+ }
195
+ }, _callee5);
196
+ })));
197
+ it("Should not have basic accessibility issues for autocomplete mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
198
+ var _render6, container, results;
199
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
200
+ while (1) switch (_context6.prev = _context6.next) {
201
+ case 0:
202
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
203
+ label: "Number input label",
204
+ helperText: "Helper text",
205
+ placeholder: "Placeholder",
206
+ defaultValue: "10",
207
+ margin: "medium",
208
+ min: 0,
209
+ max: 100,
210
+ suffix: "Suffix",
211
+ prefix: "Prefix",
212
+ name: "Name",
213
+ size: "medium",
214
+ step: 1,
215
+ autocomplete: "on"
216
+ })), container = _render6.container;
217
+ _context6.next = 3;
218
+ return (0, _axeHelper.axe)(container);
219
+ case 3:
220
+ results = _context6.sent;
221
+ expect(results).toHaveNoViolations();
222
+ case 5:
223
+ case "end":
224
+ return _context6.stop();
225
+ }
226
+ }, _callee6);
227
+ })));
228
+ });
@@ -1,11 +1,4 @@
1
1
  import React from "react";
2
2
  import NumberInputPropsType from "./types";
3
- type NumberInputContextProps = {
4
- typeNumber?: string;
5
- minNumber?: number;
6
- maxNumber?: number;
7
- stepNumber?: number;
8
- };
9
- export declare const NumberInputContext: React.Context<NumberInputContextProps>;
10
3
  declare const DxcNumberInput: React.ForwardRefExoticComponent<NumberInputPropsType & React.RefAttributes<HTMLDivElement>>;
11
4
  export default DxcNumberInput;
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
- exports["default"] = exports.NumberInputContext = void 0;
8
+ exports["default"] = void 0;
8
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
10
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
12
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
13
+ var _NumberInputContext = require("./NumberInputContext");
12
14
  var _templateObject;
13
- var NumberInputContext = exports.NumberInputContext = /*#__PURE__*/_react["default"].createContext(null);
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
17
  var DxcNumberInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
15
18
  var label = _ref.label,
16
19
  name = _ref.name,
@@ -34,14 +37,30 @@ var DxcNumberInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, r
34
37
  margin = _ref.margin,
35
38
  size = _ref.size,
36
39
  tabIndex = _ref.tabIndex;
37
- return /*#__PURE__*/_react["default"].createElement(NumberInputContext.Provider, {
40
+ var numberInputRef = _react["default"].useRef(null);
41
+ (0, _react.useEffect)(function () {
42
+ var _numberInputRef$curre;
43
+ var input = (_numberInputRef$curre = numberInputRef.current) === null || _numberInputRef$curre === void 0 ? void 0 : _numberInputRef$curre.getElementsByTagName("input")[0];
44
+ var preventDefault = function preventDefault(event) {
45
+ event.preventDefault();
46
+ };
47
+ input === null || input === void 0 ? void 0 : input.addEventListener("wheel", preventDefault, {
48
+ passive: false
49
+ });
50
+ return function () {
51
+ input === null || input === void 0 ? void 0 : input.removeEventListener("wheel", preventDefault);
52
+ };
53
+ }, []);
54
+ return /*#__PURE__*/_react["default"].createElement(_NumberInputContext.NumberInputContext.Provider, {
38
55
  value: {
39
56
  typeNumber: "number",
40
57
  minNumber: min,
41
58
  maxNumber: max,
42
59
  stepNumber: step
43
60
  }
44
- }, /*#__PURE__*/_react["default"].createElement(NumberInputContainer, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
61
+ }, /*#__PURE__*/_react["default"].createElement(NumberInputContainer, {
62
+ ref: numberInputRef
63
+ }, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
45
64
  label: label,
46
65
  name: name,
47
66
  defaultValue: defaultValue,
@@ -0,0 +1 @@
1
+ export {};