@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3624d0

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 (421) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1246 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +105 -181
  9. package/accordion/Accordion.stories.tsx +83 -149
  10. package/accordion/Accordion.test.js +32 -33
  11. package/accordion/types.d.ts +10 -17
  12. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  13. package/accordion-group/AccordionGroup.d.ts +3 -3
  14. package/accordion-group/AccordionGroup.js +38 -107
  15. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  16. package/accordion-group/AccordionGroup.test.js +55 -90
  17. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  18. package/accordion-group/AccordionGroupAccordion.js +31 -0
  19. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  20. package/accordion-group/AccordionGroupContext.js +8 -0
  21. package/accordion-group/types.d.ts +16 -17
  22. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  23. package/action-icon/ActionIcon.d.ts +4 -0
  24. package/action-icon/ActionIcon.js +48 -0
  25. package/action-icon/ActionIcon.stories.tsx +41 -0
  26. package/action-icon/ActionIcon.test.js +64 -0
  27. package/action-icon/types.d.ts +26 -0
  28. package/alert/Alert.accessibility.test.js +95 -0
  29. package/alert/Alert.js +40 -127
  30. package/alert/Alert.stories.tsx +28 -0
  31. package/alert/Alert.test.js +29 -46
  32. package/alert/types.d.ts +5 -5
  33. package/badge/Badge.accessibility.test.js +129 -0
  34. package/badge/Badge.d.ts +1 -1
  35. package/badge/Badge.js +142 -40
  36. package/badge/Badge.stories.tsx +210 -0
  37. package/badge/Badge.test.js +30 -0
  38. package/badge/types.d.ts +52 -2
  39. package/bleed/Bleed.js +14 -55
  40. package/bleed/Bleed.stories.tsx +95 -95
  41. package/bleed/types.d.ts +26 -2
  42. package/box/Box.accessibility.test.js +33 -0
  43. package/box/Box.d.ts +1 -1
  44. package/box/Box.js +30 -81
  45. package/box/Box.stories.tsx +38 -51
  46. package/box/Box.test.js +2 -7
  47. package/box/types.d.ts +3 -14
  48. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  49. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  50. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  51. package/breadcrumbs/Breadcrumbs.js +79 -0
  52. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  53. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  54. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  55. package/breadcrumbs/Item.d.ts +4 -0
  56. package/breadcrumbs/Item.js +52 -0
  57. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  58. package/breadcrumbs/dropdownTheme.js +62 -0
  59. package/breadcrumbs/types.d.ts +16 -0
  60. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  61. package/bulleted-list/BulletedList.d.ts +7 -0
  62. package/bulleted-list/BulletedList.js +92 -0
  63. package/bulleted-list/BulletedList.stories.tsx +115 -0
  64. package/bulleted-list/types.d.ts +38 -0
  65. package/button/Button.accessibility.test.js +127 -0
  66. package/button/Button.d.ts +1 -1
  67. package/button/Button.js +63 -113
  68. package/button/Button.stories.tsx +151 -100
  69. package/button/Button.test.js +20 -17
  70. package/button/types.d.ts +12 -8
  71. package/card/Card.accessibility.test.js +36 -0
  72. package/card/Card.d.ts +1 -1
  73. package/card/Card.js +59 -102
  74. package/card/Card.stories.tsx +12 -42
  75. package/card/Card.test.js +11 -22
  76. package/card/types.d.ts +6 -11
  77. package/checkbox/Checkbox.accessibility.test.js +87 -0
  78. package/checkbox/Checkbox.d.ts +2 -2
  79. package/checkbox/Checkbox.js +143 -181
  80. package/checkbox/Checkbox.stories.tsx +166 -136
  81. package/checkbox/Checkbox.test.js +163 -29
  82. package/checkbox/types.d.ts +18 -6
  83. package/chip/Chip.accessibility.test.js +67 -0
  84. package/chip/Chip.js +45 -80
  85. package/chip/Chip.stories.tsx +107 -27
  86. package/chip/Chip.test.js +18 -33
  87. package/chip/types.d.ts +4 -4
  88. package/common/coreTokens.d.ts +237 -0
  89. package/common/coreTokens.js +184 -0
  90. package/common/utils.d.ts +1 -0
  91. package/common/utils.js +6 -12
  92. package/common/variables.d.ts +1392 -0
  93. package/common/variables.js +1081 -1190
  94. package/container/Container.d.ts +4 -0
  95. package/container/Container.js +194 -0
  96. package/container/Container.stories.tsx +214 -0
  97. package/container/types.d.ts +74 -0
  98. package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
  99. package/contextual-menu/ContextualMenu.d.ts +5 -0
  100. package/contextual-menu/ContextualMenu.js +88 -0
  101. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  102. package/contextual-menu/ContextualMenu.test.js +205 -0
  103. package/contextual-menu/GroupItem.d.ts +4 -0
  104. package/contextual-menu/GroupItem.js +67 -0
  105. package/contextual-menu/ItemAction.d.ts +4 -0
  106. package/contextual-menu/ItemAction.js +51 -0
  107. package/contextual-menu/MenuItem.d.ts +4 -0
  108. package/contextual-menu/MenuItem.js +29 -0
  109. package/contextual-menu/SingleItem.d.ts +4 -0
  110. package/contextual-menu/SingleItem.js +38 -0
  111. package/contextual-menu/types.d.ts +58 -0
  112. package/date-input/Calendar.d.ts +4 -0
  113. package/date-input/Calendar.js +214 -0
  114. package/date-input/DateInput.accessibility.test.js +228 -0
  115. package/date-input/DateInput.js +170 -306
  116. package/date-input/DateInput.stories.tsx +210 -56
  117. package/date-input/DateInput.test.js +708 -369
  118. package/date-input/DatePicker.d.ts +4 -0
  119. package/date-input/DatePicker.js +121 -0
  120. package/date-input/YearPicker.d.ts +4 -0
  121. package/date-input/YearPicker.js +100 -0
  122. package/date-input/types.d.ts +86 -22
  123. package/dialog/Dialog.accessibility.test.js +69 -0
  124. package/dialog/Dialog.d.ts +1 -1
  125. package/dialog/Dialog.js +56 -129
  126. package/dialog/Dialog.stories.tsx +326 -167
  127. package/dialog/Dialog.test.js +287 -20
  128. package/dialog/types.d.ts +18 -25
  129. package/divider/Divider.accessibility.test.js +33 -0
  130. package/divider/Divider.d.ts +4 -0
  131. package/divider/Divider.js +36 -0
  132. package/divider/Divider.stories.tsx +223 -0
  133. package/divider/Divider.test.js +38 -0
  134. package/divider/types.d.ts +21 -0
  135. package/dropdown/Dropdown.accessibility.test.js +180 -0
  136. package/dropdown/Dropdown.d.ts +1 -1
  137. package/dropdown/Dropdown.js +233 -307
  138. package/dropdown/Dropdown.stories.tsx +235 -57
  139. package/dropdown/Dropdown.test.js +575 -165
  140. package/dropdown/DropdownMenu.d.ts +4 -0
  141. package/dropdown/DropdownMenu.js +63 -0
  142. package/dropdown/DropdownMenuItem.d.ts +4 -0
  143. package/dropdown/DropdownMenuItem.js +71 -0
  144. package/dropdown/types.d.ts +35 -19
  145. package/file-input/FileInput.accessibility.test.js +160 -0
  146. package/file-input/FileInput.d.ts +2 -2
  147. package/file-input/FileInput.js +246 -393
  148. package/file-input/FileInput.stories.tsx +123 -12
  149. package/file-input/FileInput.test.js +292 -367
  150. package/file-input/FileItem.d.ts +4 -14
  151. package/file-input/FileItem.js +61 -120
  152. package/file-input/types.d.ts +25 -8
  153. package/flex/Flex.d.ts +4 -0
  154. package/flex/Flex.js +57 -0
  155. package/flex/Flex.stories.tsx +112 -0
  156. package/flex/types.d.ts +97 -0
  157. package/flex/types.js +5 -0
  158. package/footer/Footer.accessibility.test.js +125 -0
  159. package/footer/Footer.d.ts +1 -1
  160. package/footer/Footer.js +73 -191
  161. package/footer/Footer.stories.tsx +99 -21
  162. package/footer/Footer.test.js +33 -57
  163. package/footer/Icons.d.ts +3 -2
  164. package/footer/Icons.js +54 -23
  165. package/footer/types.d.ts +26 -27
  166. package/grid/Grid.d.ts +7 -0
  167. package/grid/Grid.js +76 -0
  168. package/grid/Grid.stories.tsx +219 -0
  169. package/grid/types.d.ts +115 -0
  170. package/grid/types.js +5 -0
  171. package/header/Header.accessibility.test.js +93 -0
  172. package/header/Header.d.ts +4 -3
  173. package/header/Header.js +104 -218
  174. package/header/Header.stories.tsx +168 -63
  175. package/header/Header.test.js +31 -28
  176. package/header/Icons.d.ts +2 -2
  177. package/header/Icons.js +5 -15
  178. package/header/types.d.ts +7 -21
  179. package/heading/Heading.accessibility.test.js +33 -0
  180. package/heading/Heading.js +10 -32
  181. package/heading/Heading.test.js +71 -88
  182. package/heading/types.d.ts +7 -7
  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.js +56 -0
  190. package/image/Image.d.ts +4 -0
  191. package/image/Image.js +70 -0
  192. package/image/Image.stories.tsx +129 -0
  193. package/image/types.d.ts +72 -0
  194. package/image/types.js +5 -0
  195. package/inset/Inset.js +14 -55
  196. package/inset/Inset.stories.tsx +37 -36
  197. package/inset/types.d.ts +26 -2
  198. package/layout/ApplicationLayout.d.ts +16 -6
  199. package/layout/ApplicationLayout.js +88 -182
  200. package/layout/ApplicationLayout.stories.tsx +85 -94
  201. package/layout/Icons.d.ts +7 -0
  202. package/layout/Icons.js +41 -48
  203. package/layout/types.d.ts +19 -35
  204. package/link/Link.accessibility.test.js +108 -0
  205. package/link/Link.d.ts +3 -2
  206. package/link/Link.js +65 -101
  207. package/link/Link.stories.tsx +157 -55
  208. package/link/Link.test.js +25 -53
  209. package/link/types.d.ts +15 -31
  210. package/main.d.ts +17 -13
  211. package/main.js +86 -101
  212. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  213. package/nav-tabs/NavTabs.d.ts +7 -0
  214. package/nav-tabs/NavTabs.js +93 -0
  215. package/nav-tabs/NavTabs.stories.tsx +279 -0
  216. package/nav-tabs/NavTabs.test.js +77 -0
  217. package/nav-tabs/NavTabsContext.d.ts +3 -0
  218. package/nav-tabs/NavTabsContext.js +8 -0
  219. package/nav-tabs/Tab.d.ts +4 -0
  220. package/nav-tabs/Tab.js +117 -0
  221. package/nav-tabs/types.d.ts +52 -0
  222. package/nav-tabs/types.js +5 -0
  223. package/number-input/NumberInput.accessibility.test.js +228 -0
  224. package/number-input/NumberInput.js +47 -44
  225. package/number-input/NumberInput.stories.tsx +44 -28
  226. package/number-input/NumberInput.test.js +862 -381
  227. package/number-input/NumberInputContext.d.ts +3 -4
  228. package/number-input/NumberInputContext.js +3 -14
  229. package/number-input/types.d.ts +34 -15
  230. package/package.json +54 -53
  231. package/paginator/Paginator.accessibility.test.js +79 -0
  232. package/paginator/Paginator.js +46 -100
  233. package/paginator/Paginator.stories.tsx +24 -0
  234. package/paginator/Paginator.test.js +280 -211
  235. package/paginator/types.d.ts +3 -3
  236. package/paragraph/Paragraph.accessibility.test.js +28 -0
  237. package/paragraph/Paragraph.d.ts +5 -0
  238. package/paragraph/Paragraph.js +22 -0
  239. package/paragraph/Paragraph.stories.tsx +27 -0
  240. package/password-input/PasswordInput.accessibility.test.js +153 -0
  241. package/password-input/PasswordInput.js +58 -124
  242. package/password-input/PasswordInput.stories.tsx +1 -33
  243. package/password-input/PasswordInput.test.js +162 -147
  244. package/password-input/types.d.ts +21 -17
  245. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  246. package/progress-bar/ProgressBar.js +68 -92
  247. package/progress-bar/ProgressBar.stories.tsx +93 -0
  248. package/progress-bar/ProgressBar.test.js +72 -44
  249. package/progress-bar/types.d.ts +3 -3
  250. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  251. package/quick-nav/QuickNav.d.ts +4 -0
  252. package/quick-nav/QuickNav.js +94 -0
  253. package/quick-nav/QuickNav.stories.tsx +356 -0
  254. package/quick-nav/types.d.ts +21 -0
  255. package/quick-nav/types.js +5 -0
  256. package/radio-group/Radio.d.ts +1 -1
  257. package/radio-group/Radio.js +59 -76
  258. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  259. package/radio-group/RadioGroup.js +73 -116
  260. package/radio-group/RadioGroup.stories.tsx +135 -17
  261. package/radio-group/RadioGroup.test.js +529 -467
  262. package/radio-group/types.d.ts +86 -9
  263. package/resultset-table/Icons.d.ts +7 -0
  264. package/resultset-table/Icons.js +47 -0
  265. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  266. package/resultset-table/ResultsetTable.d.ts +7 -0
  267. package/resultset-table/ResultsetTable.js +171 -0
  268. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
  269. package/resultset-table/ResultsetTable.test.js +381 -0
  270. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  271. package/resultset-table/types.js +5 -0
  272. package/select/Listbox.d.ts +4 -0
  273. package/select/Listbox.js +155 -0
  274. package/select/Option.d.ts +4 -0
  275. package/select/Option.js +89 -0
  276. package/select/Select.accessibility.test.js +228 -0
  277. package/select/Select.js +237 -504
  278. package/select/Select.stories.tsx +533 -196
  279. package/select/Select.test.js +1953 -1588
  280. package/select/types.d.ts +65 -26
  281. package/sidenav/Sidenav.accessibility.test.js +59 -0
  282. package/sidenav/Sidenav.d.ts +6 -5
  283. package/sidenav/Sidenav.js +136 -71
  284. package/sidenav/Sidenav.stories.tsx +246 -151
  285. package/sidenav/Sidenav.test.js +26 -45
  286. package/sidenav/SidenavContext.d.ts +5 -0
  287. package/sidenav/SidenavContext.js +13 -0
  288. package/sidenav/types.d.ts +52 -26
  289. package/slider/Slider.accessibility.test.js +104 -0
  290. package/slider/Slider.d.ts +2 -2
  291. package/slider/Slider.js +149 -180
  292. package/slider/Slider.test.js +198 -73
  293. package/slider/types.d.ts +11 -3
  294. package/spinner/Spinner.accessibility.test.js +96 -0
  295. package/spinner/Spinner.js +34 -74
  296. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  297. package/spinner/Spinner.test.js +26 -35
  298. package/spinner/types.d.ts +3 -3
  299. package/status-light/StatusLight.accessibility.test.js +157 -0
  300. package/status-light/StatusLight.d.ts +4 -0
  301. package/status-light/StatusLight.js +51 -0
  302. package/status-light/StatusLight.stories.tsx +74 -0
  303. package/status-light/StatusLight.test.js +25 -0
  304. package/status-light/types.d.ts +17 -0
  305. package/status-light/types.js +5 -0
  306. package/switch/Switch.accessibility.test.js +98 -0
  307. package/switch/Switch.d.ts +2 -2
  308. package/switch/Switch.js +149 -114
  309. package/switch/Switch.stories.tsx +56 -67
  310. package/switch/Switch.test.js +146 -39
  311. package/switch/types.d.ts +13 -5
  312. package/table/DropdownTheme.js +62 -0
  313. package/table/Table.accessibility.test.js +93 -0
  314. package/table/Table.d.ts +6 -2
  315. package/table/Table.js +78 -35
  316. package/table/Table.stories.tsx +663 -0
  317. package/table/Table.test.js +95 -8
  318. package/table/types.d.ts +34 -6
  319. package/tabs/Tab.d.ts +4 -0
  320. package/tabs/Tab.js +117 -0
  321. package/tabs/Tabs.accessibility.test.js +56 -0
  322. package/tabs/Tabs.d.ts +1 -1
  323. package/tabs/Tabs.js +305 -145
  324. package/tabs/Tabs.stories.tsx +124 -14
  325. package/tabs/Tabs.test.js +220 -67
  326. package/tabs/types.d.ts +31 -17
  327. package/tag/Tag.accessibility.test.js +69 -0
  328. package/tag/Tag.js +42 -79
  329. package/tag/Tag.stories.tsx +24 -10
  330. package/tag/Tag.test.js +18 -37
  331. package/tag/types.d.ts +9 -9
  332. package/text-input/Suggestion.d.ts +4 -0
  333. package/text-input/Suggestion.js +67 -0
  334. package/text-input/Suggestions.d.ts +4 -0
  335. package/text-input/Suggestions.js +94 -0
  336. package/text-input/TextInput.accessibility.test.js +321 -0
  337. package/text-input/TextInput.js +332 -557
  338. package/text-input/TextInput.stories.tsx +282 -282
  339. package/text-input/TextInput.test.js +1442 -1377
  340. package/text-input/types.d.ts +70 -24
  341. package/textarea/Textarea.accessibility.test.js +155 -0
  342. package/textarea/Textarea.js +83 -134
  343. package/textarea/Textarea.stories.tsx +174 -0
  344. package/textarea/Textarea.test.js +168 -198
  345. package/textarea/types.d.ts +27 -16
  346. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  347. package/toggle-group/ToggleGroup.d.ts +2 -2
  348. package/toggle-group/ToggleGroup.js +94 -106
  349. package/toggle-group/ToggleGroup.stories.tsx +56 -11
  350. package/toggle-group/ToggleGroup.test.js +78 -66
  351. package/toggle-group/types.d.ts +36 -19
  352. package/typography/Typography.accessibility.test.js +339 -0
  353. package/typography/Typography.d.ts +4 -0
  354. package/typography/Typography.js +23 -0
  355. package/typography/Typography.stories.tsx +198 -0
  356. package/typography/types.d.ts +18 -0
  357. package/typography/types.js +5 -0
  358. package/useTheme.d.ts +1144 -1
  359. package/useTheme.js +4 -11
  360. package/useTranslatedLabels.d.ts +85 -0
  361. package/useTranslatedLabels.js +14 -0
  362. package/utils/BaseTypography.d.ts +21 -0
  363. package/utils/BaseTypography.js +94 -0
  364. package/utils/FocusLock.d.ts +13 -0
  365. package/utils/FocusLock.js +124 -0
  366. package/wizard/Wizard.accessibility.test.js +55 -0
  367. package/wizard/Wizard.d.ts +1 -1
  368. package/wizard/Wizard.js +78 -120
  369. package/wizard/Wizard.stories.tsx +67 -19
  370. package/wizard/Wizard.test.js +73 -87
  371. package/wizard/types.d.ts +14 -10
  372. package/ThemeContext.d.ts +0 -10
  373. package/ThemeContext.js +0 -243
  374. package/card/ice-cream.jpg +0 -0
  375. package/common/OpenSans.css +0 -81
  376. package/common/RequiredComponent.js +0 -32
  377. package/common/fonts/OpenSans-Bold.ttf +0 -0
  378. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  379. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  380. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  381. package/common/fonts/OpenSans-Italic.ttf +0 -0
  382. package/common/fonts/OpenSans-Light.ttf +0 -0
  383. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  384. package/common/fonts/OpenSans-Regular.ttf +0 -0
  385. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  386. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  387. package/list/List.d.ts +0 -4
  388. package/list/List.js +0 -47
  389. package/list/List.stories.tsx +0 -95
  390. package/list/types.d.ts +0 -7
  391. package/number-input/numberInputContextTypes.d.ts +0 -19
  392. package/paginator/Icons.js +0 -66
  393. package/progress-bar/ProgressBar.stories.jsx +0 -58
  394. package/radio/Radio.d.ts +0 -4
  395. package/radio/Radio.js +0 -174
  396. package/radio/Radio.stories.tsx +0 -192
  397. package/radio/Radio.test.js +0 -71
  398. package/radio/types.d.ts +0 -54
  399. package/resultsetTable/ResultsetTable.d.ts +0 -4
  400. package/resultsetTable/ResultsetTable.js +0 -254
  401. package/resultsetTable/ResultsetTable.test.js +0 -306
  402. package/row/Row.d.ts +0 -3
  403. package/row/Row.js +0 -127
  404. package/row/Row.stories.tsx +0 -237
  405. package/row/types.d.ts +0 -10
  406. package/slider/Slider.stories.tsx +0 -177
  407. package/stack/Stack.d.ts +0 -3
  408. package/stack/Stack.js +0 -97
  409. package/stack/Stack.stories.tsx +0 -164
  410. package/stack/types.d.ts +0 -9
  411. package/table/Table.stories.jsx +0 -277
  412. package/text/Text.d.ts +0 -7
  413. package/text/Text.js +0 -30
  414. package/text/Text.stories.tsx +0 -19
  415. package/textarea/Textarea.stories.jsx +0 -157
  416. /package/{list → action-icon}/types.js +0 -0
  417. /package/{radio → breadcrumbs}/types.js +0 -0
  418. /package/{resultsetTable → bulleted-list}/types.js +0 -0
  419. /package/{row → container}/types.js +0 -0
  420. /package/{stack → contextual-menu}/types.js +0 -0
  421. /package/{number-input/numberInputContextTypes.js → divider/types.js} +0 -0
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DropdownMenuProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<DropdownMenuProps & React.RefAttributes<HTMLUListElement>>>;
4
+ export default _default;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _DropdownMenuItem = _interopRequireDefault(require("./DropdownMenuItem"));
12
+ var _templateObject;
13
+ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
14
+ var id = _ref.id,
15
+ dropdownTriggerId = _ref.dropdownTriggerId,
16
+ iconsPosition = _ref.iconsPosition,
17
+ visualFocusIndex = _ref.visualFocusIndex,
18
+ menuItemOnClick = _ref.menuItemOnClick,
19
+ onKeyDown = _ref.onKeyDown,
20
+ options = _ref.options,
21
+ styles = _ref.styles;
22
+ return /*#__PURE__*/_react["default"].createElement(DropdownMenuContainer, {
23
+ onMouseDown: function onMouseDown(event) {
24
+ // Prevent the onBlur event from closing menu when clicking on the menu since
25
+ // it is implemented with a Portal and the menu is not a direct child of the container
26
+ event.preventDefault();
27
+ },
28
+ onKeyDown: onKeyDown,
29
+ id: id,
30
+ role: "menu",
31
+ "aria-labelledby": dropdownTriggerId,
32
+ "aria-orientation": "vertical",
33
+ "aria-activedescendant": visualFocusIndex !== -1 ? "".concat(id, "-option-").concat(visualFocusIndex) : undefined,
34
+ tabIndex: -1,
35
+ ref: ref,
36
+ style: styles
37
+ }, options.map(function (option, index) {
38
+ return /*#__PURE__*/_react["default"].createElement(_DropdownMenuItem["default"], {
39
+ id: "".concat(id, "-option-").concat(index),
40
+ key: "".concat(id, "-option-").concat(index),
41
+ visuallyFocused: index === visualFocusIndex,
42
+ iconPosition: iconsPosition,
43
+ onClick: menuItemOnClick,
44
+ option: option
45
+ });
46
+ }));
47
+ });
48
+ var DropdownMenuContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 230px;\n min-width: min-content;\n padding: 0;\n margin: 0;\n background-color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n border-radius: ", ";\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n outline: none;\n\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 6px;\n }\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 6px;\n }\n"])), function (props) {
49
+ return props.theme.optionBackgroundColor;
50
+ }, function (props) {
51
+ return props.theme.borderThickness;
52
+ }, function (props) {
53
+ return props.theme.borderStyle;
54
+ }, function (props) {
55
+ return props.theme.borderColor;
56
+ }, function (props) {
57
+ return props.theme.borderRadius;
58
+ }, function (props) {
59
+ return props.theme.scrollBarThumbColor;
60
+ }, function (props) {
61
+ return props.theme.scrollBarTrackColor;
62
+ });
63
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(DropdownMenu);
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DropdownMenuItemProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ id, visuallyFocused, iconPosition, onClick, option, }: DropdownMenuItemProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
12
+ var _templateObject, _templateObject2, _templateObject3;
13
+ var DropdownMenuItem = function DropdownMenuItem(_ref) {
14
+ var id = _ref.id,
15
+ visuallyFocused = _ref.visuallyFocused,
16
+ iconPosition = _ref.iconPosition,
17
+ _onClick = _ref.onClick,
18
+ option = _ref.option;
19
+ return /*#__PURE__*/_react["default"].createElement(DropdownMenuItemContainer, {
20
+ visuallyFocused: visuallyFocused,
21
+ onClick: function onClick() {
22
+ _onClick(option.value);
23
+ },
24
+ id: id,
25
+ role: "menuitem",
26
+ tabIndex: -1
27
+ }, iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label), option.icon && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemIcon, {
28
+ role: typeof option.icon === "string" ? undefined : "img",
29
+ "aria-hidden": true
30
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
31
+ icon: option.icon
32
+ }) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label));
33
+ };
34
+ var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
35
+ return props.theme.optionIconSpacing;
36
+ }, function (props) {
37
+ return props.theme.optionPaddingTop;
38
+ }, function (props) {
39
+ return props.theme.optionPaddingBottom;
40
+ }, function (props) {
41
+ return props.theme.optionPaddingLeft;
42
+ }, function (props) {
43
+ return props.theme.optionPaddingRight;
44
+ }, function (props) {
45
+ return props.visuallyFocused && "outline: ".concat(props.theme.focusColor, " solid 2px; outline-offset: -2px;");
46
+ }, function (props) {
47
+ return props.theme.hoverOptionBackgroundColor;
48
+ }, function (props) {
49
+ return props.theme.activeOptionBackgroundColor;
50
+ });
51
+ var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5rem;\n color: ", ";\n white-space: nowrap;\n"])), function (props) {
52
+ return props.theme.optionFontFamily;
53
+ }, function (props) {
54
+ return props.theme.optionFontSize;
55
+ }, function (props) {
56
+ return props.theme.optionFontStyle;
57
+ }, function (props) {
58
+ return props.theme.optionFontWeight;
59
+ }, function (props) {
60
+ return props.theme.optionFontColor;
61
+ });
62
+ var DropdownMenuItemIcon = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n font-size: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
63
+ return props.theme.optionIconColor;
64
+ }, function (props) {
65
+ return props.theme.optionIconSize;
66
+ }, function (props) {
67
+ return props.theme.optionIconSize;
68
+ }, function (props) {
69
+ return props.theme.optionIconSize;
70
+ });
71
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(DropdownMenuItem);
@@ -1,20 +1,20 @@
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.SVGProps<SVGSVGElement>;
10
- declare type Option = {
9
+ type Size = "small" | "medium" | "large" | "fillParent" | "fitContent";
10
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
11
+ export type Option = {
11
12
  /**
12
13
  * Option display value.
13
14
  */
14
15
  label?: string;
15
16
  /**
16
- * Element or path used as the icon that will be placed next to the
17
- * option label.
17
+ * Material Symbol name or SVG element as the icon that will be placed next to the label.
18
18
  */
19
19
  icon?: string | SVG;
20
20
  /**
@@ -22,7 +22,7 @@ declare type Option = {
22
22
  */
23
23
  value: string;
24
24
  };
25
- declare type Props = {
25
+ type Props = {
26
26
  /**
27
27
  * An array of objects representing the options.
28
28
  */
@@ -33,8 +33,7 @@ declare type Props = {
33
33
  */
34
34
  optionsIconPosition?: "before" | "after";
35
35
  /**
36
- * Element or path used as the icon that will be placed next to the
37
- * dropdown label.
36
+ * Material Symbol name or SVG element as the icon that will be placed next to the label.
38
37
  */
39
38
  icon?: string | SVG;
40
39
  /**
@@ -50,14 +49,18 @@ declare type Props = {
50
49
  */
51
50
  caretHidden?: boolean;
52
51
  /**
53
- * This function will be called every time the selection changes.
54
- * The value of the selected option will be passed as a parameter.
52
+ * If true, the component will be disabled.
55
53
  */
56
- onSelectOption: (value: string) => void;
54
+ disabled?: boolean;
57
55
  /**
58
- * If true, the options are showed when the dropdown is hover.
56
+ * If true, the options are shown when the dropdown is hover.
59
57
  */
60
58
  expandOnHover?: boolean;
59
+ /**
60
+ * This function will be called every time the selection changes.
61
+ * The value of the selected option will be passed as a parameter.
62
+ */
63
+ onSelectOption: (value: string) => void;
61
64
  /**
62
65
  * Size of the margin to be applied to the component.
63
66
  * You can pass an object with 'top', 'bottom', 'left' and 'right'
@@ -67,14 +70,27 @@ declare type Props = {
67
70
  /**
68
71
  * Size of the component.
69
72
  */
70
- size?: "small" | "medium" | "large" | "fillParent" | "fitContent";
73
+ size?: Size;
71
74
  /**
72
- * Value of the tabindex.
75
+ * Value of the tabindex attribute.
73
76
  */
74
77
  tabIndex?: number;
75
- /**
76
- * If true, the component will be disabled.
77
- */
78
- disabled?: boolean;
78
+ };
79
+ export type DropdownMenuProps = {
80
+ id: string;
81
+ dropdownTriggerId: string;
82
+ iconsPosition: "before" | "after";
83
+ visualFocusIndex: number;
84
+ menuItemOnClick: (value: string) => void;
85
+ onKeyDown: (event: React.KeyboardEvent<HTMLUListElement>) => void;
86
+ options: Option[];
87
+ styles: React.CSSProperties;
88
+ };
89
+ export type DropdownMenuItemProps = {
90
+ id: string;
91
+ visuallyFocused: boolean;
92
+ iconPosition: "before" | "after";
93
+ onClick: (value: string) => void;
94
+ option: Option;
79
95
  };
80
96
  export default Props;
@@ -0,0 +1,160 @@
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 _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _FileInput = _interopRequireDefault(require("./FileInput.tsx"));
10
+ var picPreview = "https://cdn.mos.cms.futurecdn.net/CAZ6JXi6huSuN4QGE627NR.jpg";
11
+ var file1 = new File(["file1"], "file.pdf", {
12
+ type: "text/plain"
13
+ });
14
+ var file2 = new File(["file2"], "file2.mp3", {
15
+ type: "audio"
16
+ });
17
+ var file3 = new File(["file3"], "file3.png", {
18
+ type: "image/png"
19
+ });
20
+ var file4 = new File(["file4"], "file4file4file4file4file4file4file4file4file4.mp4", {
21
+ type: "video"
22
+ });
23
+ var file5 = new File(["file5"], "file5file5file5file5file5file5file5file5file5.mp4", {
24
+ type: "video"
25
+ });
26
+ var filesExamples = [{
27
+ file: file1
28
+ }, {
29
+ file: file2
30
+ }, {
31
+ file: file3,
32
+ preview: picPreview
33
+ }, {
34
+ file: file4
35
+ }, {
36
+ error: "This error message is a multiline paragraph for testing.",
37
+ file: file5
38
+ }, {
39
+ error: "Error message",
40
+ file: file3,
41
+ preview: picPreview
42
+ }];
43
+ describe("FileInput component accessibility tests", function () {
44
+ it("Should not have basic accessibility issues for dropzone mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
45
+ var _render, container, results;
46
+ return _regenerator["default"].wrap(function _callee$(_context) {
47
+ while (1) switch (_context.prev = _context.next) {
48
+ case 0:
49
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
50
+ label: "File input",
51
+ helperText: "Helper Text",
52
+ value: filesExamples,
53
+ buttonLabel: "Button Label",
54
+ dropAreaLabel: "Drop Area",
55
+ margin: "medium",
56
+ mode: "dropzone",
57
+ multiple: true,
58
+ minSize: 1000,
59
+ maxSize: 20000,
60
+ showPreview: true
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 disabled 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(_FileInput["default"], {
79
+ label: "File input",
80
+ helperText: "Helper Text",
81
+ value: filesExamples,
82
+ buttonLabel: "Button Label",
83
+ dropAreaLabel: "Drop Area",
84
+ margin: "medium",
85
+ mode: "dropzone",
86
+ multiple: true,
87
+ minSize: 1000,
88
+ maxSize: 20000,
89
+ disabled: true
90
+ })), container = _render2.container;
91
+ _context2.next = 3;
92
+ return (0, _axeHelper.axe)(container);
93
+ case 3:
94
+ results = _context2.sent;
95
+ expect(results).toHaveNoViolations();
96
+ case 5:
97
+ case "end":
98
+ return _context2.stop();
99
+ }
100
+ }, _callee2);
101
+ })));
102
+ it("Should not have basic accessibility issues for file mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
103
+ var _render3, container, results;
104
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
105
+ while (1) switch (_context3.prev = _context3.next) {
106
+ case 0:
107
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
108
+ label: "File input",
109
+ helperText: "Helper Text",
110
+ value: filesExamples,
111
+ buttonLabel: "Button Label",
112
+ dropAreaLabel: "Drop Area",
113
+ margin: "medium",
114
+ mode: "file",
115
+ multiple: true,
116
+ minSize: 1000,
117
+ maxSize: 20000,
118
+ showPreview: true
119
+ })), container = _render3.container;
120
+ _context3.next = 3;
121
+ return (0, _axeHelper.axe)(container);
122
+ case 3:
123
+ results = _context3.sent;
124
+ expect(results).toHaveNoViolations();
125
+ case 5:
126
+ case "end":
127
+ return _context3.stop();
128
+ }
129
+ }, _callee3);
130
+ })));
131
+ it("Should not have basic accessibility issues for filedrop mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
132
+ var _render4, container, results;
133
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
134
+ while (1) switch (_context4.prev = _context4.next) {
135
+ case 0:
136
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
137
+ label: "File input",
138
+ helperText: "Helper Text",
139
+ value: filesExamples,
140
+ buttonLabel: "Button Label",
141
+ dropAreaLabel: "Drop Area",
142
+ margin: "medium",
143
+ mode: "filedrop",
144
+ multiple: true,
145
+ minSize: 1000,
146
+ maxSize: 20000,
147
+ showPreview: true
148
+ })), container = _render4.container;
149
+ _context4.next = 3;
150
+ return (0, _axeHelper.axe)(container);
151
+ case 3:
152
+ results = _context4.sent;
153
+ expect(results).toHaveNoViolations();
154
+ case 5:
155
+ case "end":
156
+ return _context4.stop();
157
+ }
158
+ }, _callee4);
159
+ })));
160
+ });
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import FileInputPropsType from "./types";
3
- declare const DxcFileInput: ({ name, mode, label, buttonLabel, dropAreaLabel, helperText, accept, minSize, maxSize, showPreview, multiple, disabled, callbackFile, value, margin, tabIndex, }: FileInputPropsType) => JSX.Element;
3
+ declare const DxcFileInput: React.ForwardRefExoticComponent<FileInputPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcFileInput;