@dxc-technology/halstack-react 0.0.0-335f028 → 0.0.0-33c1fd8

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 (403) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1244 -6
  4. package/HalstackContext.js +182 -115
  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 -160
  9. package/accordion/Accordion.stories.tsx +84 -140
  10. package/accordion/Accordion.test.js +25 -41
  11. package/accordion/types.d.ts +6 -17
  12. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  13. package/accordion-group/AccordionGroup.d.ts +2 -2
  14. package/accordion-group/AccordionGroup.js +31 -98
  15. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  16. package/accordion-group/AccordionGroup.test.js +52 -105
  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 +12 -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 +35 -125
  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 +2 -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/bulleted-list/BulletedList.accessibility.test.js +107 -0
  49. package/bulleted-list/BulletedList.d.ts +7 -0
  50. package/bulleted-list/BulletedList.js +92 -0
  51. package/bulleted-list/BulletedList.stories.tsx +115 -0
  52. package/bulleted-list/types.d.ts +38 -0
  53. package/button/Button.accessibility.test.js +127 -0
  54. package/button/Button.d.ts +1 -1
  55. package/button/Button.js +64 -117
  56. package/button/Button.stories.tsx +151 -100
  57. package/button/Button.test.js +20 -17
  58. package/button/types.d.ts +12 -8
  59. package/card/Card.accessibility.test.js +36 -0
  60. package/card/Card.d.ts +1 -1
  61. package/card/Card.js +64 -107
  62. package/card/Card.stories.tsx +12 -42
  63. package/card/Card.test.js +11 -22
  64. package/card/types.d.ts +6 -11
  65. package/checkbox/Checkbox.accessibility.test.js +87 -0
  66. package/checkbox/Checkbox.d.ts +2 -2
  67. package/checkbox/Checkbox.js +142 -181
  68. package/checkbox/Checkbox.stories.tsx +128 -94
  69. package/checkbox/Checkbox.test.js +160 -39
  70. package/checkbox/types.d.ts +11 -3
  71. package/chip/Chip.accessibility.test.js +67 -0
  72. package/chip/Chip.js +43 -80
  73. package/chip/Chip.stories.tsx +102 -26
  74. package/chip/Chip.test.js +18 -33
  75. package/chip/types.d.ts +4 -4
  76. package/common/coreTokens.d.ts +237 -0
  77. package/common/coreTokens.js +184 -0
  78. package/common/utils.d.ts +1 -0
  79. package/common/utils.js +6 -12
  80. package/common/variables.d.ts +1394 -0
  81. package/common/variables.js +1027 -1133
  82. package/container/Container.d.ts +4 -0
  83. package/container/Container.js +194 -0
  84. package/container/Container.stories.tsx +214 -0
  85. package/container/types.d.ts +74 -0
  86. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  87. package/contextual-menu/ContextualMenu.d.ts +5 -0
  88. package/contextual-menu/ContextualMenu.js +88 -0
  89. package/contextual-menu/ContextualMenu.stories.tsx +219 -0
  90. package/contextual-menu/ContextualMenu.test.js +205 -0
  91. package/contextual-menu/GroupItem.d.ts +4 -0
  92. package/contextual-menu/GroupItem.js +67 -0
  93. package/contextual-menu/ItemAction.d.ts +4 -0
  94. package/contextual-menu/ItemAction.js +52 -0
  95. package/contextual-menu/MenuItem.d.ts +4 -0
  96. package/contextual-menu/MenuItem.js +29 -0
  97. package/contextual-menu/SingleItem.d.ts +4 -0
  98. package/contextual-menu/SingleItem.js +38 -0
  99. package/contextual-menu/types.d.ts +58 -0
  100. package/date-input/Calendar.d.ts +4 -0
  101. package/date-input/Calendar.js +214 -0
  102. package/date-input/DateInput.accessibility.test.js +216 -0
  103. package/date-input/DateInput.js +151 -298
  104. package/date-input/DateInput.stories.tsx +203 -56
  105. package/date-input/DateInput.test.js +700 -371
  106. package/date-input/DatePicker.d.ts +4 -0
  107. package/date-input/DatePicker.js +121 -0
  108. package/date-input/YearPicker.d.ts +4 -0
  109. package/date-input/YearPicker.js +100 -0
  110. package/date-input/types.d.ts +72 -15
  111. package/dialog/Dialog.accessibility.test.js +69 -0
  112. package/dialog/Dialog.d.ts +1 -1
  113. package/dialog/Dialog.js +61 -107
  114. package/dialog/Dialog.stories.tsx +320 -167
  115. package/dialog/Dialog.test.js +287 -20
  116. package/dialog/types.d.ts +18 -25
  117. package/divider/Divider.accessibility.test.js +33 -0
  118. package/divider/Divider.d.ts +4 -0
  119. package/divider/Divider.js +36 -0
  120. package/divider/Divider.stories.tsx +223 -0
  121. package/divider/Divider.test.js +38 -0
  122. package/divider/types.d.ts +21 -0
  123. package/dropdown/Dropdown.accessibility.test.js +180 -0
  124. package/dropdown/Dropdown.d.ts +1 -1
  125. package/dropdown/Dropdown.js +231 -303
  126. package/dropdown/Dropdown.stories.tsx +235 -57
  127. package/dropdown/Dropdown.test.js +575 -165
  128. package/dropdown/DropdownMenu.d.ts +4 -0
  129. package/dropdown/DropdownMenu.js +63 -0
  130. package/dropdown/DropdownMenuItem.d.ts +4 -0
  131. package/dropdown/DropdownMenuItem.js +70 -0
  132. package/dropdown/types.d.ts +35 -19
  133. package/file-input/FileInput.accessibility.test.js +160 -0
  134. package/file-input/FileInput.d.ts +2 -2
  135. package/file-input/FileInput.js +246 -393
  136. package/file-input/FileInput.stories.tsx +123 -12
  137. package/file-input/FileInput.test.js +292 -367
  138. package/file-input/FileItem.d.ts +4 -14
  139. package/file-input/FileItem.js +57 -120
  140. package/file-input/types.d.ts +25 -8
  141. package/flex/Flex.d.ts +4 -0
  142. package/flex/Flex.js +57 -0
  143. package/flex/Flex.stories.tsx +112 -0
  144. package/flex/types.d.ts +97 -0
  145. package/footer/Footer.accessibility.test.js +117 -0
  146. package/footer/Footer.d.ts +1 -1
  147. package/footer/Footer.js +75 -118
  148. package/footer/Footer.stories.tsx +87 -21
  149. package/footer/Footer.test.js +33 -57
  150. package/footer/Icons.d.ts +3 -2
  151. package/footer/Icons.js +67 -8
  152. package/footer/types.d.ts +26 -27
  153. package/grid/Grid.d.ts +7 -0
  154. package/grid/Grid.js +76 -0
  155. package/grid/Grid.stories.tsx +219 -0
  156. package/grid/types.d.ts +115 -0
  157. package/grid/types.js +5 -0
  158. package/header/Header.accessibility.test.js +84 -0
  159. package/header/Header.d.ts +4 -3
  160. package/header/Header.js +93 -184
  161. package/header/Header.stories.tsx +118 -39
  162. package/header/Header.test.js +13 -26
  163. package/header/Icons.d.ts +2 -2
  164. package/header/Icons.js +4 -9
  165. package/header/types.d.ts +7 -21
  166. package/heading/Heading.accessibility.test.js +33 -0
  167. package/heading/Heading.js +10 -32
  168. package/heading/Heading.test.js +71 -88
  169. package/heading/types.d.ts +7 -7
  170. package/icon/Icon.accessibility.test.js +30 -0
  171. package/icon/Icon.d.ts +4 -0
  172. package/icon/Icon.js +33 -0
  173. package/icon/Icon.stories.tsx +28 -0
  174. package/icon/types.d.ts +4 -0
  175. package/icon/types.js +5 -0
  176. package/image/Image.accessibility.test.js +56 -0
  177. package/image/Image.d.ts +4 -0
  178. package/image/Image.js +70 -0
  179. package/image/Image.stories.tsx +129 -0
  180. package/image/types.d.ts +72 -0
  181. package/image/types.js +5 -0
  182. package/inset/Inset.js +14 -55
  183. package/inset/Inset.stories.tsx +37 -36
  184. package/inset/types.d.ts +2 -2
  185. package/layout/ApplicationLayout.d.ts +16 -6
  186. package/layout/ApplicationLayout.js +85 -166
  187. package/layout/ApplicationLayout.stories.tsx +85 -94
  188. package/layout/Icons.d.ts +7 -0
  189. package/layout/Icons.js +41 -48
  190. package/layout/types.d.ts +19 -35
  191. package/link/Link.accessibility.test.js +112 -0
  192. package/link/Link.d.ts +2 -2
  193. package/link/Link.js +46 -91
  194. package/link/Link.stories.tsx +74 -7
  195. package/link/Link.test.js +24 -44
  196. package/link/types.d.ts +14 -15
  197. package/main.d.ts +15 -13
  198. package/main.js +71 -101
  199. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  200. package/nav-tabs/NavTabs.d.ts +7 -0
  201. package/nav-tabs/NavTabs.js +93 -0
  202. package/nav-tabs/NavTabs.stories.tsx +279 -0
  203. package/nav-tabs/NavTabs.test.js +75 -0
  204. package/nav-tabs/NavTabsContext.d.ts +3 -0
  205. package/nav-tabs/NavTabsContext.js +8 -0
  206. package/nav-tabs/Tab.d.ts +4 -0
  207. package/nav-tabs/Tab.js +117 -0
  208. package/nav-tabs/types.d.ts +52 -0
  209. package/nav-tabs/types.js +5 -0
  210. package/number-input/NumberInput.accessibility.test.js +228 -0
  211. package/number-input/NumberInput.js +46 -36
  212. package/number-input/NumberInput.stories.tsx +42 -26
  213. package/number-input/NumberInput.test.js +860 -377
  214. package/number-input/NumberInputContext.d.ts +3 -4
  215. package/number-input/NumberInputContext.js +3 -14
  216. package/number-input/types.d.ts +18 -6
  217. package/package.json +49 -51
  218. package/paginator/Paginator.accessibility.test.js +79 -0
  219. package/paginator/Paginator.js +38 -96
  220. package/paginator/Paginator.stories.tsx +24 -0
  221. package/paginator/Paginator.test.js +280 -211
  222. package/paginator/types.d.ts +3 -3
  223. package/paragraph/Paragraph.accessibility.test.js +28 -0
  224. package/paragraph/Paragraph.d.ts +5 -0
  225. package/paragraph/Paragraph.js +22 -0
  226. package/paragraph/Paragraph.stories.tsx +27 -0
  227. package/password-input/PasswordInput.accessibility.test.js +153 -0
  228. package/password-input/PasswordInput.js +56 -123
  229. package/password-input/PasswordInput.stories.tsx +1 -33
  230. package/password-input/PasswordInput.test.js +160 -143
  231. package/password-input/types.d.ts +9 -8
  232. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  233. package/progress-bar/ProgressBar.js +65 -91
  234. package/progress-bar/ProgressBar.stories.tsx +93 -0
  235. package/progress-bar/ProgressBar.test.js +72 -44
  236. package/progress-bar/types.d.ts +3 -3
  237. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  238. package/quick-nav/QuickNav.js +71 -41
  239. package/quick-nav/QuickNav.stories.tsx +146 -27
  240. package/quick-nav/types.d.ts +10 -10
  241. package/radio-group/Radio.d.ts +1 -1
  242. package/radio-group/Radio.js +59 -76
  243. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  244. package/radio-group/RadioGroup.js +71 -116
  245. package/radio-group/RadioGroup.stories.tsx +132 -18
  246. package/radio-group/RadioGroup.test.js +518 -457
  247. package/radio-group/types.d.ts +10 -10
  248. package/resultset-table/Icons.d.ts +7 -0
  249. package/resultset-table/Icons.js +47 -0
  250. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  251. package/resultset-table/ResultsetTable.d.ts +7 -0
  252. package/resultset-table/ResultsetTable.js +170 -0
  253. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
  254. package/resultset-table/ResultsetTable.test.js +381 -0
  255. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  256. package/resultset-table/types.js +5 -0
  257. package/select/Listbox.d.ts +1 -1
  258. package/select/Listbox.js +50 -53
  259. package/select/Option.js +33 -55
  260. package/select/Select.accessibility.test.js +217 -0
  261. package/select/Select.js +194 -251
  262. package/select/Select.stories.tsx +512 -187
  263. package/select/Select.test.js +1962 -1743
  264. package/select/types.d.ts +17 -21
  265. package/sidenav/Sidenav.accessibility.test.js +59 -0
  266. package/sidenav/Sidenav.d.ts +6 -5
  267. package/sidenav/Sidenav.js +136 -71
  268. package/sidenav/Sidenav.stories.tsx +246 -151
  269. package/sidenav/Sidenav.test.js +26 -45
  270. package/sidenav/SidenavContext.d.ts +5 -0
  271. package/sidenav/SidenavContext.js +13 -0
  272. package/sidenav/types.d.ts +52 -26
  273. package/slider/Slider.accessibility.test.js +104 -0
  274. package/slider/Slider.d.ts +2 -2
  275. package/slider/Slider.js +148 -181
  276. package/slider/Slider.test.js +185 -81
  277. package/slider/types.d.ts +7 -3
  278. package/spinner/Spinner.accessibility.test.js +96 -0
  279. package/spinner/Spinner.js +31 -75
  280. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  281. package/spinner/Spinner.test.js +26 -35
  282. package/spinner/types.d.ts +3 -3
  283. package/status-light/StatusLight.accessibility.test.js +157 -0
  284. package/status-light/StatusLight.d.ts +4 -0
  285. package/status-light/StatusLight.js +51 -0
  286. package/status-light/StatusLight.stories.tsx +74 -0
  287. package/status-light/StatusLight.test.js +25 -0
  288. package/status-light/types.d.ts +17 -0
  289. package/status-light/types.js +5 -0
  290. package/switch/Switch.accessibility.test.js +89 -0
  291. package/switch/Switch.d.ts +2 -2
  292. package/switch/Switch.js +147 -125
  293. package/switch/Switch.stories.tsx +37 -60
  294. package/switch/Switch.test.js +138 -56
  295. package/switch/types.d.ts +7 -3
  296. package/table/DropdownTheme.js +62 -0
  297. package/table/Table.accessibility.test.js +82 -0
  298. package/table/Table.d.ts +6 -2
  299. package/table/Table.js +78 -35
  300. package/table/Table.stories.tsx +651 -0
  301. package/table/Table.test.js +95 -8
  302. package/table/types.d.ts +34 -6
  303. package/tabs/Tab.d.ts +4 -0
  304. package/tabs/Tab.js +117 -0
  305. package/tabs/Tabs.accessibility.test.js +56 -0
  306. package/tabs/Tabs.js +303 -141
  307. package/tabs/Tabs.stories.tsx +118 -6
  308. package/tabs/Tabs.test.js +213 -77
  309. package/tabs/types.d.ts +30 -20
  310. package/tag/Tag.accessibility.test.js +69 -0
  311. package/tag/Tag.js +35 -67
  312. package/tag/Tag.stories.tsx +18 -8
  313. package/tag/Tag.test.js +18 -37
  314. package/tag/types.d.ts +9 -9
  315. package/text-input/Suggestion.d.ts +4 -0
  316. package/text-input/Suggestion.js +67 -0
  317. package/text-input/Suggestions.d.ts +4 -0
  318. package/text-input/Suggestions.js +86 -0
  319. package/text-input/TextInput.accessibility.test.js +321 -0
  320. package/text-input/TextInput.js +326 -555
  321. package/text-input/TextInput.stories.tsx +266 -275
  322. package/text-input/TextInput.test.js +1420 -1376
  323. package/text-input/types.d.ts +53 -14
  324. package/textarea/Textarea.accessibility.test.js +155 -0
  325. package/textarea/Textarea.js +79 -131
  326. package/textarea/Textarea.stories.tsx +174 -0
  327. package/textarea/Textarea.test.js +152 -183
  328. package/textarea/types.d.ts +10 -6
  329. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  330. package/toggle-group/ToggleGroup.d.ts +2 -2
  331. package/toggle-group/ToggleGroup.js +94 -107
  332. package/toggle-group/ToggleGroup.stories.tsx +52 -7
  333. package/toggle-group/ToggleGroup.test.js +69 -88
  334. package/toggle-group/types.d.ts +28 -19
  335. package/typography/Typography.accessibility.test.js +339 -0
  336. package/typography/Typography.d.ts +4 -0
  337. package/typography/Typography.js +23 -0
  338. package/typography/Typography.stories.tsx +198 -0
  339. package/typography/types.d.ts +18 -0
  340. package/typography/types.js +5 -0
  341. package/useTheme.d.ts +1146 -1
  342. package/useTheme.js +2 -9
  343. package/useTranslatedLabels.d.ts +85 -0
  344. package/useTranslatedLabels.js +14 -0
  345. package/utils/BaseTypography.d.ts +21 -0
  346. package/utils/BaseTypography.js +94 -0
  347. package/utils/FocusLock.d.ts +13 -0
  348. package/utils/FocusLock.js +124 -0
  349. package/wizard/Wizard.accessibility.test.js +55 -0
  350. package/wizard/Wizard.js +59 -102
  351. package/wizard/Wizard.stories.tsx +59 -1
  352. package/wizard/Wizard.test.js +54 -81
  353. package/wizard/types.d.ts +9 -9
  354. package/card/ice-cream.jpg +0 -0
  355. package/common/OpenSans.css +0 -81
  356. package/common/RequiredComponent.js +0 -32
  357. package/common/fonts/OpenSans-Bold.ttf +0 -0
  358. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  359. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  360. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  361. package/common/fonts/OpenSans-Italic.ttf +0 -0
  362. package/common/fonts/OpenSans-Light.ttf +0 -0
  363. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  364. package/common/fonts/OpenSans-Regular.ttf +0 -0
  365. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  366. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  367. package/list/List.d.ts +0 -4
  368. package/list/List.js +0 -47
  369. package/list/List.stories.tsx +0 -95
  370. package/list/types.d.ts +0 -7
  371. package/number-input/numberInputContextTypes.d.ts +0 -19
  372. package/paginator/Icons.js +0 -66
  373. package/progress-bar/ProgressBar.stories.jsx +0 -58
  374. package/radio/Radio.d.ts +0 -4
  375. package/radio/Radio.js +0 -173
  376. package/radio/Radio.stories.tsx +0 -192
  377. package/radio/Radio.test.js +0 -71
  378. package/radio/types.d.ts +0 -54
  379. package/resultsetTable/ResultsetTable.d.ts +0 -4
  380. package/resultsetTable/ResultsetTable.js +0 -254
  381. package/resultsetTable/ResultsetTable.test.js +0 -306
  382. package/row/Row.d.ts +0 -3
  383. package/row/Row.js +0 -127
  384. package/row/Row.stories.tsx +0 -237
  385. package/row/types.d.ts +0 -28
  386. package/select/Icons.d.ts +0 -10
  387. package/select/Icons.js +0 -93
  388. package/slider/Slider.stories.tsx +0 -177
  389. package/stack/Stack.d.ts +0 -3
  390. package/stack/Stack.js +0 -97
  391. package/stack/Stack.stories.tsx +0 -164
  392. package/stack/types.d.ts +0 -24
  393. package/table/Table.stories.jsx +0 -277
  394. package/text/Text.d.ts +0 -7
  395. package/text/Text.js +0 -30
  396. package/text/Text.stories.tsx +0 -19
  397. package/textarea/Textarea.stories.jsx +0 -157
  398. /package/{list → action-icon}/types.js +0 -0
  399. /package/{radio → bulleted-list}/types.js +0 -0
  400. /package/{resultsetTable → container}/types.js +0 -0
  401. /package/{row → contextual-menu}/types.js +0 -0
  402. /package/{stack → divider}/types.js +0 -0
  403. /package/{number-input/numberInputContextTypes.js → flex/types.js} +0 -0
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DatePickerPropsType } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ date, onDateSelect, id }: DatePickerPropsType) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _dayjs = _interopRequireDefault(require("dayjs"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
+ var _Calendar = _interopRequireDefault(require("./Calendar"));
15
+ var _YearPicker = _interopRequireDefault(require("./YearPicker"));
16
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
17
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
18
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
19
+ 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); }
20
+ 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; }
21
+ var today = (0, _dayjs["default"])();
22
+ var DxcDatePicker = function DxcDatePicker(_ref) {
23
+ var date = _ref.date,
24
+ onDateSelect = _ref.onDateSelect,
25
+ id = _ref.id;
26
+ var _useState = (0, _react.useState)(date !== null && date !== void 0 && date.isValid() ? date : (0, _dayjs["default"])()),
27
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
28
+ innerDate = _useState2[0],
29
+ setInnerDate = _useState2[1];
30
+ var _useState3 = (0, _react.useState)("calendar"),
31
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
32
+ content = _useState4[0],
33
+ setContent = _useState4[1];
34
+ var selectedDate = date !== null && date !== void 0 && date.isValid() ? date : null;
35
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
36
+ var handleDateSelect = function handleDateSelect(date) {
37
+ setInnerDate(date);
38
+ onDateSelect(date);
39
+ };
40
+ var handleOnYearSelect = function handleOnYearSelect(year) {
41
+ setInnerDate(innerDate.set("year", year));
42
+ setContent("calendar");
43
+ };
44
+ var handleMonthChange = function handleMonthChange(date) {
45
+ setInnerDate(date);
46
+ };
47
+ return /*#__PURE__*/_react["default"].createElement(DatePicker, {
48
+ id: id
49
+ }, /*#__PURE__*/_react["default"].createElement(PickerHeader, null, /*#__PURE__*/_react["default"].createElement(HeaderButton, {
50
+ "aria-label": translatedLabels.calendar.previousMonthTitle,
51
+ title: translatedLabels.calendar.previousMonthTitle,
52
+ onClick: function onClick() {
53
+ return handleMonthChange(innerDate.set("month", innerDate.get("month") - 1));
54
+ }
55
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
56
+ icon: "keyboard_arrow_left"
57
+ })), /*#__PURE__*/_react["default"].createElement(HeaderYearTrigger, {
58
+ "aria-live": "polite",
59
+ onClick: function onClick() {
60
+ return setContent(function (content) {
61
+ return content === "yearPicker" ? "calendar" : "yearPicker";
62
+ });
63
+ }
64
+ }, /*#__PURE__*/_react["default"].createElement(HeaderYearTriggerLabel, null, translatedLabels.calendar.months[innerDate.get("month")], " ", innerDate.format("YYYY")), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
65
+ icon: content === "yearPicker" ? "arrow_drop_up" : "arrow_drop_down"
66
+ })), /*#__PURE__*/_react["default"].createElement(HeaderButton, {
67
+ "aria-label": translatedLabels.calendar.nextMonthTitle,
68
+ title: translatedLabels.calendar.nextMonthTitle,
69
+ onClick: function onClick() {
70
+ return handleMonthChange(innerDate.set("month", innerDate.get("month") + 1));
71
+ }
72
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
73
+ icon: "keyboard_arrow_right"
74
+ }))), content === "calendar" && /*#__PURE__*/_react["default"].createElement(_Calendar["default"], {
75
+ innerDate: innerDate,
76
+ selectedDate: selectedDate,
77
+ onInnerDateChange: setInnerDate,
78
+ onDaySelect: handleDateSelect,
79
+ today: today
80
+ }), content === "yearPicker" && /*#__PURE__*/_react["default"].createElement(_YearPicker["default"], {
81
+ selectedDate: selectedDate,
82
+ onYearSelect: handleOnYearSelect,
83
+ today: today
84
+ }));
85
+ };
86
+ var DatePicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 16px;\n background-color: ", ";\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n border: ", ";\n border-radius: 4px;\n width: fit-content;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
87
+ return props.theme.dateInput.pickerBackgroundColor;
88
+ }, function (props) {
89
+ return "".concat(props.theme.dateInput.pickerBorderWidth, " ").concat(props.theme.dateInput.pickerBorderStyle, "\n ").concat(props.theme.dateInput.pickerBorderColor);
90
+ }, function (props) {
91
+ return props.theme.dateInput.pickerFontFamily;
92
+ }, function (props) {
93
+ return props.theme.dateInput.pickerFontSize;
94
+ }, function (props) {
95
+ return props.theme.dateInput.pickerFontColor;
96
+ }, function (props) {
97
+ return props.theme.dateInput.pickerFontWeight;
98
+ });
99
+ var PickerHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n padding: 0px 16px;\n"])));
100
+ var HeaderButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0px;\n color: ", ";\n background-color: ", ";\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", ";\n }\n\n span::before {\n font-size: 24px;\n }\n"])), function (props) {
101
+ return props.theme.dateInput.pickerHeaderFontColor;
102
+ }, function (props) {
103
+ return props.theme.dateInput.pickerHeaderBackgroundColor;
104
+ }, function (props) {
105
+ return props.theme.dateInput.pickerHeaderHoverFontColor;
106
+ }, function (props) {
107
+ return props.theme.dateInput.pickerHeaderHoverBackgroundColor;
108
+ }, function (props) {
109
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
110
+ }, function (props) {
111
+ return props.theme.dateInput.pickerHeaderActiveFontColor;
112
+ }, function (props) {
113
+ return props.theme.dateInput.pickerHeaderActiveBackgroundColor;
114
+ });
115
+ var HeaderYearTrigger = (0, _styledComponents["default"])(HeaderButton)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n gap: 8px;\n height: 40px;\n width: 172px;\n font-size: 24px;\n span::before {\n font-size: 24px;\n }\n"])));
116
+ var HeaderYearTriggerLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: ", ";\n font-size: ", ";\n"])), function (props) {
117
+ return props.theme.dateInput.pickerFontFamily;
118
+ }, function (props) {
119
+ return props.theme.dateInput.pickerHeaderFontSize;
120
+ });
121
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(DxcDatePicker);
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { YearPickerPropsType } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ onYearSelect, selectedDate, today }: YearPickerPropsType) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _dayjs = _interopRequireDefault(require("dayjs"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
+ var _templateObject, _templateObject2;
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; }
17
+ var getYearsArray = function getYearsArray() {
18
+ var yearList = [];
19
+ for (var i = 1899; i <= 2100; i++) {
20
+ yearList.push(i);
21
+ }
22
+ return yearList;
23
+ };
24
+ var yearList = getYearsArray();
25
+ var YearPicker = function YearPicker(_ref) {
26
+ var onYearSelect = _ref.onYearSelect,
27
+ selectedDate = _ref.selectedDate,
28
+ today = _ref.today;
29
+ var _useState = (0, _react.useState)(selectedDate ? selectedDate.get("year") : (0, _dayjs["default"])().get("year")),
30
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
31
+ yearToFocus = _useState2[0],
32
+ setYearToFocus = _useState2[1];
33
+ (0, _react.useEffect)(function () {
34
+ var _yearToFocusEl$scroll;
35
+ var yearToFocusEl = document.getElementById("year_".concat(yearToFocus));
36
+ yearToFocusEl === null || yearToFocusEl === void 0 ? void 0 : (_yearToFocusEl$scroll = yearToFocusEl.scrollIntoView) === null || _yearToFocusEl$scroll === void 0 ? void 0 : _yearToFocusEl$scroll.call(yearToFocusEl, {
37
+ block: "nearest",
38
+ inline: "start"
39
+ });
40
+ yearToFocusEl === null || yearToFocusEl === void 0 ? void 0 : yearToFocusEl.focus();
41
+ }, [yearToFocus]);
42
+ var handleDayKeyboardEvent = function handleDayKeyboardEvent(event) {
43
+ switch (event.key) {
44
+ case "ArrowUp":
45
+ setYearToFocus(function (prev) {
46
+ return prev > 1899 ? prev - 1 : prev;
47
+ });
48
+ break;
49
+ case "ArrowDown":
50
+ setYearToFocus(function (prev) {
51
+ return prev < 2100 ? prev + 1 : prev;
52
+ });
53
+ break;
54
+ }
55
+ };
56
+ return /*#__PURE__*/_react["default"].createElement(YearPickerContainer, null, yearList.map(function (year) {
57
+ return /*#__PURE__*/_react["default"].createElement(YearPickerButton, {
58
+ "aria-label": year,
59
+ key: year,
60
+ selected: (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === year,
61
+ "aria-selected": (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === year,
62
+ tabIndex: yearToFocus === year ? 0 : -1,
63
+ isCurrentYear: today.get("year") === year,
64
+ onKeyDown: function onKeyDown(event) {
65
+ return handleDayKeyboardEvent(event);
66
+ },
67
+ id: "year_".concat(year),
68
+ onClick: function onClick() {
69
+ onYearSelect(year);
70
+ }
71
+ }, year);
72
+ }));
73
+ };
74
+ var YearPickerContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: center;\n overflow-y: scroll;\n width: 292px;\n height: 312px;\n padding: 2px 8px 8px 8px;\n"])));
75
+ var YearPickerButton = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n min-height: 40px;\n line-height: 21px;\n background-color: transparent;\n border: none;\n border-radius: 50px;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n ", "\n\n &:hover, &:focus, &:active {\n font-size: ", ";\n line-height: 36px;\n }\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n color: ", ";\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", " !important;\n }\n"])), function (props) {
76
+ return props.theme.dateInput.pickerFontFamily;
77
+ }, function (props) {
78
+ return props.theme.dateInput.pickerFontSize;
79
+ }, function (props) {
80
+ return props.theme.dateInput.pickerFontColor;
81
+ }, function (props) {
82
+ return props.theme.dateInput.pickerFontWeight;
83
+ }, function (props) {
84
+ return props.selected ? "font-size: ".concat(props.theme.dateInput.pickerInteractedYearFontSize, ";\n line-height: 36px;\n color: ").concat(props.theme.dateInput.pickerSelectedFontColor, " !important;\n background-color: ").concat(props.theme.dateInput.pickerSelectedBackgroundColor, " !important;") : props.isCurrentYear ? "border: 1px solid ".concat(props.theme.dateInput.pickerCurrentDateBorderColor, "; \n color: ").concat(props.theme.dateInput.pickerCurrentYearFontColor, ";") : "";
85
+ }, function (props) {
86
+ return props.theme.dateInput.pickerInteractedYearFontSize;
87
+ }, function (props) {
88
+ return props.theme.dateInput.pickerHoverFontColor;
89
+ }, function (props) {
90
+ return props.theme.dateInput.pickerHoverBackgroundColor;
91
+ }, function (props) {
92
+ return props.theme.dateInput.pickerHoverFontColor;
93
+ }, function (props) {
94
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
95
+ }, function (props) {
96
+ return props.theme.dateInput.pickerActiveFontColor;
97
+ }, function (props) {
98
+ return props.theme.dateInput.pickerActiveBackgroundColor;
99
+ });
100
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(YearPicker);
@@ -1,19 +1,12 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Margin = {
1
+ import { Dayjs } from "dayjs";
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
3
4
  top?: Space;
4
5
  bottom?: Space;
5
6
  left?: Space;
6
7
  right?: Space;
7
8
  };
8
- declare type Props = {
9
- /**
10
- * Text to be placed above the date.
11
- */
12
- label?: string;
13
- /**
14
- * Name attribute of the input element.
15
- */
16
- name?: string;
9
+ type Props = {
17
10
  /**
18
11
  * Initial value of the input element, only when it is uncontrolled.
19
12
  */
@@ -23,9 +16,13 @@ declare type Props = {
23
16
  */
24
17
  value?: string;
25
18
  /**
26
- * The format in which the date value will be displayed. User must use this format when editing the value or it will be considered as an invalid date.
19
+ * Text to be placed above the date input.
27
20
  */
28
- format?: string;
21
+ label?: string;
22
+ /**
23
+ * Name attribute of the input element.
24
+ */
25
+ name?: string;
29
26
  /**
30
27
  * Helper text to be placed above the date.
31
28
  */
@@ -34,6 +31,10 @@ declare type Props = {
34
31
  * If true, the date format will appear as placeholder in the field.
35
32
  */
36
33
  placeholder?: boolean;
34
+ /**
35
+ * The format in which the date value will be displayed. User must use this format when editing the value or it will be considered as an invalid date.
36
+ */
37
+ format?: string;
37
38
  /**
38
39
  * If true, the date input will have an action to clear the entered value.
39
40
  */
@@ -43,12 +44,18 @@ declare type Props = {
43
44
  */
44
45
  disabled?: boolean;
45
46
  /**
46
- * If true, the date will be optional, showing '(Optional)'
47
+ * If true, the date will be optional, showing the text '(Optional)'
47
48
  * next to the label. Otherwise, the field will be considered required and an error will be
48
49
  * passed as a parameter to the OnBlur and onChange functions when it has
49
50
  * not been filled.
50
51
  */
51
52
  optional?: boolean;
53
+ /**
54
+ * If true, the component will not be mutable, meaning the user can not edit the control.
55
+ * The date picker cannot be opened either. In addition, the clear action will not be displayed
56
+ * even if the flag is set to true.
57
+ */
58
+ readOnly?: boolean;
52
59
  /**
53
60
  * This function will be called when the user types within the input
54
61
  * element of the component. An object including the string value, the
@@ -100,8 +107,58 @@ declare type Props = {
100
107
  */
101
108
  tabIndex?: number;
102
109
  };
110
+ export type DatePickerPropsType = {
111
+ /**
112
+ * Initial selected date value. If invalid the actual date will be used instead.
113
+ */
114
+ date: Dayjs;
115
+ /**
116
+ * Function called when a date is selected.
117
+ */
118
+ onDateSelect: (date: Dayjs) => void;
119
+ /**
120
+ * Id assigned to the date picker.
121
+ */
122
+ id: string;
123
+ };
124
+ export type CalendarPropsType = {
125
+ /**
126
+ * Initial selected date value. If invalid the actual date will be used instead.
127
+ */
128
+ selectedDate: Dayjs;
129
+ /**
130
+ * Date shown by the calendar.
131
+ */
132
+ innerDate: Dayjs;
133
+ /**
134
+ * Function called when the shown date needs to be updated.
135
+ */
136
+ onInnerDateChange: (date: Dayjs) => void;
137
+ /**
138
+ * Function called when a date is selected.
139
+ */
140
+ onDaySelect: (date: Dayjs) => void;
141
+ /**
142
+ * Current date.
143
+ */
144
+ today: Dayjs;
145
+ };
146
+ export type YearPickerPropsType = {
147
+ /**
148
+ * Initial selected date value. If invalid the actual date will be used instead.
149
+ */
150
+ selectedDate: Dayjs;
151
+ /**
152
+ * Function called when a year is selected.
153
+ */
154
+ onYearSelect: (year: number) => void;
155
+ /**
156
+ * Current date.
157
+ */
158
+ today: Dayjs;
159
+ };
103
160
  /**
104
161
  * Reference to the component.
105
162
  */
106
- export declare type RefType = HTMLDivElement;
163
+ export type RefType = HTMLDivElement;
107
164
  export default Props;
@@ -0,0 +1,69 @@
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 _jestAxe = require("jest-axe");
9
+ var _Dialog = _interopRequireDefault(require("./Dialog.tsx"));
10
+ describe("Dialog component accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, baseElement, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ // baseElement is needed when using React Portals
17
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "Dialog text")), baseElement = _render.baseElement;
18
+ _context.next = 3;
19
+ return (0, _jestAxe.axe)(baseElement);
20
+ case 3:
21
+ results = _context.sent;
22
+ expect(results).toHaveNoViolations();
23
+ case 5:
24
+ case "end":
25
+ return _context.stop();
26
+ }
27
+ }, _callee);
28
+ })));
29
+ it("Should not have basic accessibility issues for close button not visible", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
30
+ var _render2, baseElement, results;
31
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
32
+ while (1) switch (_context2.prev = _context2.next) {
33
+ case 0:
34
+ // baseElement is needed when using React Portals
35
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
36
+ isCloseVisible: false
37
+ }, "Dialog text")), baseElement = _render2.baseElement;
38
+ _context2.next = 3;
39
+ return (0, _jestAxe.axe)(baseElement);
40
+ case 3:
41
+ results = _context2.sent;
42
+ expect(results).toHaveNoViolations();
43
+ case 5:
44
+ case "end":
45
+ return _context2.stop();
46
+ }
47
+ }, _callee2);
48
+ })));
49
+ it("Should not have basic accessibility issues for overlay not visible", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
50
+ var _render3, baseElement, results;
51
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
52
+ while (1) switch (_context3.prev = _context3.next) {
53
+ case 0:
54
+ // baseElement is needed when using React Portals
55
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
56
+ overlay: false
57
+ }, "Dialog text")), baseElement = _render3.baseElement;
58
+ _context3.next = 3;
59
+ return (0, _jestAxe.axe)(baseElement);
60
+ case 3:
61
+ results = _context3.sent;
62
+ expect(results).toHaveNoViolations();
63
+ case 5:
64
+ case "end":
65
+ return _context3.stop();
66
+ }
67
+ }, _callee3);
68
+ })));
69
+ });
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import DialogPropsType from "./types";
3
- declare const DxcDialog: ({ isCloseVisible, onCloseClick, children, overlay, onBackgroundClick, padding, tabIndex, }: DialogPropsType) => JSX.Element;
3
+ declare const DxcDialog: ({ isCloseVisible, onCloseClick, children, overlay, onBackgroundClick, tabIndex, }: DialogPropsType) => JSX.Element;
4
4
  export default DxcDialog;
package/dialog/Dialog.js CHANGED
@@ -1,129 +1,83 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
- var _react = _interopRequireDefault(require("react"));
17
-
10
+ var _react = _interopRequireWildcard(require("react"));
18
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
- var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
21
-
22
- var _variables = require("../common/variables.js");
23
-
12
+ var _variables = require("../common/variables");
24
13
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
- var _BackgroundColorContext = require("../BackgroundColorContext");
27
-
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
14
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
15
+ var _reactDom = require("react-dom");
16
+ var _FocusLock = _interopRequireDefault(require("../utils/FocusLock"));
17
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
18
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
19
+ 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); }
20
+ 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; }
34
21
  var DxcDialog = function DxcDialog(_ref) {
35
22
  var _ref$isCloseVisible = _ref.isCloseVisible,
36
- isCloseVisible = _ref$isCloseVisible === void 0 ? true : _ref$isCloseVisible,
37
- onCloseClick = _ref.onCloseClick,
38
- children = _ref.children,
39
- _ref$overlay = _ref.overlay,
40
- overlay = _ref$overlay === void 0 ? true : _ref$overlay,
41
- onBackgroundClick = _ref.onBackgroundClick,
42
- _ref$padding = _ref.padding,
43
- padding = _ref$padding === void 0 ? "small" : _ref$padding,
44
- _ref$tabIndex = _ref.tabIndex,
45
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
23
+ isCloseVisible = _ref$isCloseVisible === void 0 ? true : _ref$isCloseVisible,
24
+ onCloseClick = _ref.onCloseClick,
25
+ children = _ref.children,
26
+ _ref$overlay = _ref.overlay,
27
+ overlay = _ref$overlay === void 0 ? true : _ref$overlay,
28
+ onBackgroundClick = _ref.onBackgroundClick,
29
+ _ref$tabIndex = _ref.tabIndex,
30
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
46
31
  var colorsTheme = (0, _useTheme["default"])();
47
-
48
- var handleClose = function handleClose() {
49
- onCloseClick === null || onCloseClick === void 0 ? void 0 : onCloseClick();
50
- };
51
-
52
- var handleOverlayClick = function handleOverlayClick() {
53
- onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
54
- };
55
-
32
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
33
+ (0, _react.useEffect)(function () {
34
+ var handleKeyDown = function handleKeyDown(event) {
35
+ if (event.key === "Escape") {
36
+ event.preventDefault();
37
+ onCloseClick === null || onCloseClick === void 0 ? void 0 : onCloseClick();
38
+ }
39
+ };
40
+ document.addEventListener("keydown", handleKeyDown);
41
+ return function () {
42
+ document.removeEventListener("keydown", handleKeyDown);
43
+ };
44
+ }, [onCloseClick]);
56
45
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
57
46
  theme: colorsTheme.dialog
58
- }, /*#__PURE__*/_react["default"].createElement(DialogContainer, {
59
- open: true,
60
- isCloseVisible: isCloseVisible,
61
- onClose: handleOverlayClick,
62
- overlay: overlay,
63
- padding: padding
64
- }, isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconContainer, {
65
- onClick: handleClose,
47
+ }, /*#__PURE__*/_react["default"].createElement(BodyStyle, null), /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react["default"].createElement(DialogContainer, null, overlay && /*#__PURE__*/_react["default"].createElement(Overlay, {
48
+ onClick: function onClick() {
49
+ onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
50
+ }
51
+ }), /*#__PURE__*/_react["default"].createElement(Dialog, {
52
+ role: "dialog",
53
+ "aria-modal": overlay,
54
+ isCloseVisible: isCloseVisible
55
+ }, /*#__PURE__*/_react["default"].createElement(_FocusLock["default"], null, children, isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconAction, {
56
+ onClick: function onClick() {
57
+ onCloseClick === null || onCloseClick === void 0 ? void 0 : onCloseClick();
58
+ },
59
+ "aria-label": translatedLabels.dialog.closeIconAriaLabel,
66
60
  tabIndex: tabIndex
67
- }, /*#__PURE__*/_react["default"].createElement(CloseIcon, {
68
- xmlns: "http://www.w3.org/2000/svg",
69
- width: "24",
70
- height: "24",
71
- viewBox: "0 0 24 24",
72
- fill: "currentColor"
73
- }, /*#__PURE__*/_react["default"].createElement("path", {
74
- d: "M0 0h24v24H0V0z",
75
- fill: "none"
76
- }), /*#__PURE__*/_react["default"].createElement("path", {
77
- d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
78
- }))), /*#__PURE__*/_react["default"].createElement(Children, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
79
- color: colorsTheme.dialog.backgroundColor
80
- }, children))));
61
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
62
+ icon: "close"
63
+ }))))), document.body));
81
64
  };
82
-
83
- var DialogContainer = (0, _styledComponents["default"])(_Dialog["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n overflow: unset;\n font-family: ", ";\n\n .MuiBackdrop-root {\n background-color: ", ";\n opacity: ", " !important;\n }\n .MuiDialog-paperWidthSm {\n background-color: ", ";\n @media (min-width: ", "rem) {\n max-width: 80%;\n min-width: 800px;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 92%;\n min-width: 92%;\n }\n\n box-sizing: border-box;\n min-height: ", ";\n box-shadow: ", ";\n\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n }\n"])), function (props) {
84
- return props.theme.fontFamily;
85
- }, function (props) {
86
- return props.overlay === true ? props.theme.overlayColor : "transparent";
87
- }, function (props) {
88
- return props.overlay === true && props.theme.overlayOpacity;
89
- }, function (props) {
90
- return props.theme.backgroundColor;
91
- }, _variables.responsiveSizes.medium, _variables.responsiveSizes.medium, function (props) {
92
- return props.isCloseVisible ? "72px" : "";
93
- }, function (props) {
94
- return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
95
- }, function (props) {
96
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : _variables.spaces["small"];
97
- }, function (props) {
98
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
99
- }, function (props) {
100
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
101
- }, function (props) {
102
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
103
- }, function (props) {
104
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
65
+ var BodyStyle = (0, _styledComponents.createGlobalStyle)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n body {\n overflow: hidden;\n }\n"])));
66
+ var DialogContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n z-index: 2147483647;\n"])));
67
+ var Overlay = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n inset: 0;\n height: 100%;\n background-color: ", ";\n"])), function (props) {
68
+ return props.theme.overlayColor;
105
69
  });
106
-
107
- var Children = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])([""])));
108
-
109
- var CloseIconContainer = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-end;\n position: absolute;\n top: ", ";\n right: ", ";\n cursor: pointer;\n padding: 0;\n margin: 0;\n background: none;\n color: ", ";\n width: ", ";\n height: ", ";\n border: none;\n"])), function (props) {
110
- return props.theme.closeIconTopPosition;
111
- }, function (props) {
112
- return props.theme.closeIconRightPosition;
113
- }, function (props) {
114
- return props.theme.closeIconColor;
70
+ var Dialog = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n box-sizing: border-box;\n max-width: 80%;\n min-width: 696px;\n border-radius: 4px;\n background-color: ", ";\n ", "\n box-shadow: ", ";\n z-index: 2147483647;\n\n @media (max-width: ", "rem) {\n max-width: 92%;\n min-width: 92%;\n }\n"])), function (props) {
71
+ return props.theme.backgroundColor;
115
72
  }, function (props) {
116
- return props.theme.closeIconWidth;
73
+ return props.isCloseVisible && "min-height: 72px;";
117
74
  }, function (props) {
118
- return props.theme.closeIconHeight;
119
- });
120
-
121
- var CloseIcon = _styledComponents["default"].svg(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n width: ", ";\n height: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n"])), function (props) {
75
+ return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
76
+ }, _variables.responsiveSizes.medium);
77
+ var CloseIconAction = _styledComponents["default"].button(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n position: absolute;\n top: 24px;\n right: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ", ";\n box-shadow: 0 0 0 2px transparent;\n color: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n cursor: pointer;\n z-index: 1;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px #0095ff;\n }\n &:hover {\n background-color: #f2f2f2;\n }\n &:active {\n background-color: #cccccc;\n }\n span {\n font-size: ", ";\n }\n"])), function (props) {
122
78
  return props.theme.closeIconBackgroundColor;
123
79
  }, function (props) {
124
- return props.theme.closeIconWidth;
125
- }, function (props) {
126
- return props.theme.closeIconHeight;
80
+ return props.theme.closeIconColor;
127
81
  }, function (props) {
128
82
  return props.theme.closeIconBorderRadius;
129
83
  }, function (props) {
@@ -132,7 +86,7 @@ var CloseIcon = _styledComponents["default"].svg(_templateObject4 || (_templateO
132
86
  return props.theme.closeIconBorderStyle;
133
87
  }, function (props) {
134
88
  return props.theme.closeIconBorderColor;
89
+ }, function (props) {
90
+ return props.theme.closeIconSize;
135
91
  });
136
-
137
- var _default = DxcDialog;
138
- exports["default"] = _default;
92
+ var _default = exports["default"] = DxcDialog;