@hipay/hipay-material-ui 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/AppBar/AppBar.js +144 -0
  2. package/AppBar/index.js +16 -0
  3. package/Avatar/Avatar.js +165 -0
  4. package/Avatar/index.js +16 -0
  5. package/Badge/Badge.js +142 -0
  6. package/Badge/index.js +16 -0
  7. package/BottomNavigation/BottomNavigation.js +113 -0
  8. package/BottomNavigation/BottomNavigationAction.js +219 -0
  9. package/BottomNavigation/index.js +25 -0
  10. package/Button/Button.js +298 -0
  11. package/Button/index.js +16 -0
  12. package/ButtonBase/ButtonBase.js +446 -0
  13. package/ButtonBase/Ripple.js +162 -0
  14. package/ButtonBase/TouchRipple.js +359 -0
  15. package/ButtonBase/createRippleHandler.js +28 -0
  16. package/ButtonBase/index.js +16 -0
  17. package/CHANGELOG.md +5481 -0
  18. package/Card/Card.js +48 -0
  19. package/Card/CardActions.js +94 -0
  20. package/Card/CardContent.js +76 -0
  21. package/Card/CardHeader.js +150 -0
  22. package/Card/CardMedia.js +113 -0
  23. package/Card/index.js +52 -0
  24. package/Checkbox/Checkbox.js +160 -0
  25. package/Checkbox/index.js +16 -0
  26. package/Chip/Chip.js +322 -0
  27. package/Chip/index.js +16 -0
  28. package/Dialog/Dialog.js +271 -0
  29. package/Dialog/DialogActions.js +94 -0
  30. package/Dialog/DialogContent.js +77 -0
  31. package/Dialog/DialogContentText.js +72 -0
  32. package/Dialog/DialogTitle.js +91 -0
  33. package/Dialog/index.js +61 -0
  34. package/Dialog/withMobileDialog.js +49 -0
  35. package/Divider/Divider.js +113 -0
  36. package/Divider/index.js +16 -0
  37. package/Drawer/Drawer.js +325 -0
  38. package/Drawer/index.js +16 -0
  39. package/ExpansionPanel/ExpansionPanel.js +257 -0
  40. package/ExpansionPanel/ExpansionPanelActions.js +79 -0
  41. package/ExpansionPanel/ExpansionPanelDetails.js +73 -0
  42. package/ExpansionPanel/ExpansionPanelSummary.js +250 -0
  43. package/ExpansionPanel/index.js +43 -0
  44. package/Form/FormControl.js +291 -0
  45. package/Form/FormControlLabel.js +168 -0
  46. package/Form/FormGroup.js +94 -0
  47. package/Form/FormHelperText.js +139 -0
  48. package/Form/FormLabel.js +158 -0
  49. package/Form/index.js +52 -0
  50. package/Grid/Grid.js +372 -0
  51. package/Grid/index.js +16 -0
  52. package/GridList/GridList.js +122 -0
  53. package/GridList/GridListTile.js +239 -0
  54. package/GridList/GridListTileBar.js +176 -0
  55. package/GridList/index.js +34 -0
  56. package/HiBadge/HiBadge.js +107 -0
  57. package/HiBadge/index.js +16 -0
  58. package/HiButton/HiButton.js +159 -0
  59. package/HiButton/index.js +16 -0
  60. package/HiCheckbox/HiCheckbox.js +171 -0
  61. package/HiCheckbox/index.js +16 -0
  62. package/HiChip/HiChip.js +185 -0
  63. package/HiChip/HiChipSwitch.js +306 -0
  64. package/HiChip/index.js +25 -0
  65. package/HiColoredLabel/HiColoredLabel.js +116 -0
  66. package/HiColoredLabel/index.js +16 -0
  67. package/HiDatePicker/Caption.js +93 -0
  68. package/HiDatePicker/HiDatePicker.js +411 -0
  69. package/HiDatePicker/HiDateRangePicker.js +713 -0
  70. package/HiDatePicker/HiDateRangeSelector.js +414 -0
  71. package/HiDatePicker/HiWeekPicker.js +389 -0
  72. package/HiDatePicker/ListPicker.js +154 -0
  73. package/HiDatePicker/Navbar.js +169 -0
  74. package/HiDatePicker/Overlays/CustomOverlayLayout.js +142 -0
  75. package/HiDatePicker/Overlays/MonthPickerOverlay.js +137 -0
  76. package/HiDatePicker/Overlays/Overlay.js +105 -0
  77. package/HiDatePicker/Overlays/TimePickerOverlay.js +291 -0
  78. package/HiDatePicker/Overlays/YearPickerOverlay.js +173 -0
  79. package/HiDatePicker/Overlays/index.js +52 -0
  80. package/HiDatePicker/Weekday.js +52 -0
  81. package/HiDatePicker/index.js +33 -0
  82. package/HiDatePicker/stylesheet.js +188 -0
  83. package/HiForm/HiEmailField.js +126 -0
  84. package/HiForm/HiFormControl.js +377 -0
  85. package/HiForm/HiFormLabel.js +180 -0
  86. package/HiForm/HiInput.js +546 -0
  87. package/HiForm/HiPasswordField.js +134 -0
  88. package/HiForm/HiSearchField.js +192 -0
  89. package/HiForm/HiTextField.js +293 -0
  90. package/HiForm/index.js +70 -0
  91. package/HiLoader/HiLoader.js +55 -0
  92. package/HiLoader/index.js +16 -0
  93. package/HiPins/HiPins.js +99 -0
  94. package/HiPins/index.js +16 -0
  95. package/HiRadio/HiRadio.js +99 -0
  96. package/HiRadio/index.js +16 -0
  97. package/HiSelect/HiSelect.js +830 -0
  98. package/HiSelect/HiSelectField.js +160 -0
  99. package/HiSelect/HiSuggestSelect.js +306 -0
  100. package/HiSelect/HiSuggestSelectField.js +143 -0
  101. package/HiSelect/SelectInput.js +329 -0
  102. package/HiSelect/index.js +41 -0
  103. package/HiSelectableList/HiSelectableList.js +258 -0
  104. package/HiSelectableList/HiSelectableListItem.js +520 -0
  105. package/HiSelectableList/index.js +25 -0
  106. package/HiSwitch/HiSwitch.js +208 -0
  107. package/HiSwitch/HiSwitchState.js +229 -0
  108. package/HiSwitch/index.js +25 -0
  109. package/HiTable/BodyCellBuilder.js +398 -0
  110. package/HiTable/BodyCells/CellAccount.js +100 -0
  111. package/HiTable/BodyCells/CellAccountNumber.js +220 -0
  112. package/HiTable/BodyCells/CellAddress.js +199 -0
  113. package/HiTable/BodyCells/CellCountry.js +172 -0
  114. package/HiTable/BodyCells/CellDate.js +177 -0
  115. package/HiTable/BodyCells/CellIcon.js +148 -0
  116. package/HiTable/BodyCells/CellImage.js +177 -0
  117. package/HiTable/BodyCells/CellLayout.js +281 -0
  118. package/HiTable/BodyCells/CellNumeric.js +135 -0
  119. package/HiTable/BodyCells/CellRate.js +197 -0
  120. package/HiTable/BodyCells/CellSentinel.js +213 -0
  121. package/HiTable/BodyCells/CellStatus.js +136 -0
  122. package/HiTable/BodyCells/CellText.js +267 -0
  123. package/HiTable/BodyCells/CellThirdPartySecurity.js +144 -0
  124. package/HiTable/BodyCells/index.js +133 -0
  125. package/HiTable/BodyRow.js +388 -0
  126. package/HiTable/ChildRow.js +432 -0
  127. package/HiTable/ColumnFilter.js +490 -0
  128. package/HiTable/HeaderCell.js +463 -0
  129. package/HiTable/HiStickyRow.js +300 -0
  130. package/HiTable/HiTable.js +1012 -0
  131. package/HiTable/HiTableBody.js +547 -0
  132. package/HiTable/HiTableContextMenu.js +214 -0
  133. package/HiTable/HiTableFooterScroll.js +202 -0
  134. package/HiTable/HiTableHead.js +489 -0
  135. package/HiTable/OrderColumns.js +557 -0
  136. package/HiTable/constants.js +105 -0
  137. package/HiTable/index.js +25 -0
  138. package/HiTopBar/HiTopBar.js +635 -0
  139. package/HiTopBar/index.js +16 -0
  140. package/Hidden/Hidden.js +130 -0
  141. package/Hidden/HiddenCss.js +175 -0
  142. package/Hidden/HiddenJs.js +149 -0
  143. package/Hidden/index.js +16 -0
  144. package/Icon/Icon.js +109 -0
  145. package/Icon/index.js +16 -0
  146. package/IconButton/IconButton.js +146 -0
  147. package/IconButton/index.js +16 -0
  148. package/Input/Input.js +682 -0
  149. package/Input/InputAdornment.js +116 -0
  150. package/Input/InputLabel.js +163 -0
  151. package/Input/Textarea.js +301 -0
  152. package/Input/index.js +34 -0
  153. package/LICENSE +21 -0
  154. package/List/List.js +167 -0
  155. package/List/ListItem.js +279 -0
  156. package/List/ListItemAvatar.js +100 -0
  157. package/List/ListItemIcon.js +77 -0
  158. package/List/ListItemSecondaryAction.js +76 -0
  159. package/List/ListItemText.js +145 -0
  160. package/List/ListSubheader.js +127 -0
  161. package/List/index.js +70 -0
  162. package/Menu/Menu.js +274 -0
  163. package/Menu/MenuItem.js +113 -0
  164. package/Menu/MenuList.js +253 -0
  165. package/Menu/index.js +34 -0
  166. package/MobileStepper/MobileStepper.js +173 -0
  167. package/MobileStepper/index.js +16 -0
  168. package/Modal/Backdrop.js +102 -0
  169. package/Modal/Modal.js +502 -0
  170. package/Modal/ModalManager.js +210 -0
  171. package/Modal/index.js +34 -0
  172. package/Modal/isOverflowing.js +43 -0
  173. package/Modal/manageAriaHidden.js +45 -0
  174. package/Paper/Paper.js +111 -0
  175. package/Paper/index.js +16 -0
  176. package/Popover/Popover.js +564 -0
  177. package/Popover/index.js +16 -0
  178. package/Portal/LegacyPortal.js +158 -0
  179. package/Portal/Portal.js +144 -0
  180. package/Portal/index.js +21 -0
  181. package/Progress/CircularProgress.js +228 -0
  182. package/Progress/LinearProgress.js +258 -0
  183. package/Progress/index.js +25 -0
  184. package/README.md +237 -0
  185. package/Radio/Radio.js +155 -0
  186. package/Radio/RadioGroup.js +168 -0
  187. package/Radio/index.js +25 -0
  188. package/Reboot/Reboot.js +106 -0
  189. package/Reboot/index.js +16 -0
  190. package/Select/Select.js +229 -0
  191. package/Select/SelectInput.js +502 -0
  192. package/Select/index.js +16 -0
  193. package/Snackbar/Snackbar.js +451 -0
  194. package/Snackbar/SnackbarContent.js +135 -0
  195. package/Snackbar/index.js +25 -0
  196. package/Stepper/Step.js +151 -0
  197. package/Stepper/StepButton.js +143 -0
  198. package/Stepper/StepConnector.js +118 -0
  199. package/Stepper/StepContent.js +153 -0
  200. package/Stepper/StepIcon.js +86 -0
  201. package/Stepper/StepLabel.js +200 -0
  202. package/Stepper/StepPositionIcon.js +95 -0
  203. package/Stepper/Stepper.js +161 -0
  204. package/Stepper/index.js +61 -0
  205. package/SvgIcon/SvgIcon.js +147 -0
  206. package/SvgIcon/index.js +16 -0
  207. package/Switch/Switch.js +215 -0
  208. package/Switch/index.js +16 -0
  209. package/Table/Table.js +127 -0
  210. package/Table/TableBody.js +121 -0
  211. package/Table/TableCell.js +181 -0
  212. package/Table/TableFooter.js +93 -0
  213. package/Table/TableHead.js +121 -0
  214. package/Table/TablePagination.js +310 -0
  215. package/Table/TablePaginationActions.js +183 -0
  216. package/Table/TableRow.js +127 -0
  217. package/Table/TableSortLabel.js +145 -0
  218. package/Table/index.js +79 -0
  219. package/Tabs/Tab.js +340 -0
  220. package/Tabs/TabIndicator.js +95 -0
  221. package/Tabs/TabScrollButton.js +112 -0
  222. package/Tabs/Tabs.js +530 -0
  223. package/Tabs/index.js +25 -0
  224. package/TextField/TextField.js +290 -0
  225. package/TextField/index.js +16 -0
  226. package/Toolbar/Toolbar.js +89 -0
  227. package/Toolbar/index.js +16 -0
  228. package/Tooltip/Tooltip.js +514 -0
  229. package/Tooltip/index.js +16 -0
  230. package/Typography/Typography.js +192 -0
  231. package/Typography/index.js +16 -0
  232. package/colors/amber.js +23 -0
  233. package/colors/blue.js +23 -0
  234. package/colors/blueGrey.js +23 -0
  235. package/colors/brown.js +23 -0
  236. package/colors/common.js +11 -0
  237. package/colors/cyan.js +23 -0
  238. package/colors/deepOrange.js +23 -0
  239. package/colors/deepPurple.js +23 -0
  240. package/colors/green.js +23 -0
  241. package/colors/grey.js +23 -0
  242. package/colors/index.js +187 -0
  243. package/colors/indigo.js +23 -0
  244. package/colors/lightBlue.js +23 -0
  245. package/colors/lightGreen.js +23 -0
  246. package/colors/lime.js +23 -0
  247. package/colors/orange.js +23 -0
  248. package/colors/pink.js +23 -0
  249. package/colors/purple.js +23 -0
  250. package/colors/red.js +23 -0
  251. package/colors/teal.js +23 -0
  252. package/colors/yellow.js +23 -0
  253. package/es/AppBar/AppBar.js +106 -0
  254. package/es/AppBar/index.js +1 -0
  255. package/es/Avatar/Avatar.js +136 -0
  256. package/es/Avatar/index.js +1 -0
  257. package/es/Badge/Badge.js +112 -0
  258. package/es/Badge/index.js +1 -0
  259. package/es/BottomNavigation/BottomNavigation.js +86 -0
  260. package/es/BottomNavigation/BottomNavigationAction.js +153 -0
  261. package/es/BottomNavigation/index.js +2 -0
  262. package/es/Button/Button.js +274 -0
  263. package/es/Button/index.js +1 -0
  264. package/es/ButtonBase/ButtonBase.js +358 -0
  265. package/es/ButtonBase/Ripple.js +102 -0
  266. package/es/ButtonBase/TouchRipple.js +268 -0
  267. package/es/ButtonBase/createRippleHandler.js +23 -0
  268. package/es/ButtonBase/index.js +1 -0
  269. package/es/Card/Card.js +27 -0
  270. package/es/Card/CardActions.js +58 -0
  271. package/es/Card/CardContent.js +45 -0
  272. package/es/Card/CardHeader.js +120 -0
  273. package/es/Card/CardMedia.js +76 -0
  274. package/es/Card/index.js +5 -0
  275. package/es/Checkbox/Checkbox.js +117 -0
  276. package/es/Checkbox/index.js +1 -0
  277. package/es/Chip/Chip.js +241 -0
  278. package/es/Chip/index.js +1 -0
  279. package/es/Dialog/Dialog.js +231 -0
  280. package/es/Dialog/DialogActions.js +58 -0
  281. package/es/Dialog/DialogContent.js +48 -0
  282. package/es/Dialog/DialogContentText.js +41 -0
  283. package/es/Dialog/DialogTitle.js +57 -0
  284. package/es/Dialog/index.js +6 -0
  285. package/es/Dialog/withMobileDialog.js +25 -0
  286. package/es/Divider/Divider.js +83 -0
  287. package/es/Divider/index.js +1 -0
  288. package/es/Drawer/Drawer.js +252 -0
  289. package/es/Drawer/index.js +1 -0
  290. package/es/ExpansionPanel/ExpansionPanel.js +194 -0
  291. package/es/ExpansionPanel/ExpansionPanelActions.js +47 -0
  292. package/es/ExpansionPanel/ExpansionPanelDetails.js +42 -0
  293. package/es/ExpansionPanel/ExpansionPanelSummary.js +182 -0
  294. package/es/ExpansionPanel/index.js +4 -0
  295. package/es/Form/FormControl.js +214 -0
  296. package/es/Form/FormControlLabel.js +137 -0
  297. package/es/Form/FormGroup.js +62 -0
  298. package/es/Form/FormHelperText.js +110 -0
  299. package/es/Form/FormLabel.js +132 -0
  300. package/es/Form/index.js +5 -0
  301. package/es/Grid/Grid.js +353 -0
  302. package/es/Grid/index.js +1 -0
  303. package/es/GridList/GridList.js +97 -0
  304. package/es/GridList/GridListTile.js +153 -0
  305. package/es/GridList/GridListTileBar.js +152 -0
  306. package/es/GridList/index.js +3 -0
  307. package/es/HiBadge/HiBadge.js +76 -0
  308. package/es/HiBadge/index.js +1 -0
  309. package/es/HiButton/HiButton.js +130 -0
  310. package/es/HiButton/index.js +1 -0
  311. package/es/HiCheckbox/HiCheckbox.js +101 -0
  312. package/es/HiCheckbox/index.js +1 -0
  313. package/es/HiChip/HiChip.js +148 -0
  314. package/es/HiChip/HiChipSwitch.js +244 -0
  315. package/es/HiChip/index.js +2 -0
  316. package/es/HiColoredLabel/HiColoredLabel.js +84 -0
  317. package/es/HiColoredLabel/index.js +1 -0
  318. package/es/HiDatePicker/Caption.js +67 -0
  319. package/es/HiDatePicker/HiDatePicker.js +314 -0
  320. package/es/HiDatePicker/HiDateRangePicker.js +565 -0
  321. package/es/HiDatePicker/HiDateRangeSelector.js +337 -0
  322. package/es/HiDatePicker/HiWeekPicker.js +296 -0
  323. package/es/HiDatePicker/ListPicker.js +93 -0
  324. package/es/HiDatePicker/Navbar.js +130 -0
  325. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +114 -0
  326. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +80 -0
  327. package/es/HiDatePicker/Overlays/Overlay.js +76 -0
  328. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +218 -0
  329. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +109 -0
  330. package/es/HiDatePicker/Overlays/index.js +5 -0
  331. package/es/HiDatePicker/Weekday.js +34 -0
  332. package/es/HiDatePicker/index.js +7 -0
  333. package/es/HiDatePicker/stylesheet.js +175 -0
  334. package/es/HiForm/HiEmailField.js +71 -0
  335. package/es/HiForm/HiFormControl.js +298 -0
  336. package/es/HiForm/HiFormLabel.js +122 -0
  337. package/es/HiForm/HiInput.js +485 -0
  338. package/es/HiForm/HiPasswordField.js +70 -0
  339. package/es/HiForm/HiSearchField.js +135 -0
  340. package/es/HiForm/HiTextField.js +239 -0
  341. package/es/HiForm/index.js +7 -0
  342. package/es/HiLoader/HiLoader.js +33 -0
  343. package/es/HiLoader/index.js +1 -0
  344. package/es/HiPins/HiPins.js +66 -0
  345. package/es/HiPins/index.js +1 -0
  346. package/es/HiRadio/HiRadio.js +41 -0
  347. package/es/HiRadio/index.js +1 -0
  348. package/es/HiSelect/HiSelect.js +713 -0
  349. package/es/HiSelect/HiSelectField.js +106 -0
  350. package/es/HiSelect/HiSuggestSelect.js +223 -0
  351. package/es/HiSelect/HiSuggestSelectField.js +89 -0
  352. package/es/HiSelect/SelectInput.js +262 -0
  353. package/es/HiSelect/index.js +11 -0
  354. package/es/HiSelectableList/HiSelectableList.js +195 -0
  355. package/es/HiSelectableList/HiSelectableListItem.js +441 -0
  356. package/es/HiSelectableList/index.js +2 -0
  357. package/es/HiSwitch/HiSwitch.js +138 -0
  358. package/es/HiSwitch/HiSwitchState.js +169 -0
  359. package/es/HiSwitch/index.js +2 -0
  360. package/es/HiTable/BodyCellBuilder.js +345 -0
  361. package/es/HiTable/BodyCells/CellAccount.js +40 -0
  362. package/es/HiTable/BodyCells/CellAccountNumber.js +166 -0
  363. package/es/HiTable/BodyCells/CellAddress.js +129 -0
  364. package/es/HiTable/BodyCells/CellCountry.js +107 -0
  365. package/es/HiTable/BodyCells/CellDate.js +111 -0
  366. package/es/HiTable/BodyCells/CellIcon.js +83 -0
  367. package/es/HiTable/BodyCells/CellImage.js +115 -0
  368. package/es/HiTable/BodyCells/CellLayout.js +198 -0
  369. package/es/HiTable/BodyCells/CellNumeric.js +71 -0
  370. package/es/HiTable/BodyCells/CellRate.js +131 -0
  371. package/es/HiTable/BodyCells/CellSentinel.js +153 -0
  372. package/es/HiTable/BodyCells/CellStatus.js +73 -0
  373. package/es/HiTable/BodyCells/CellText.js +188 -0
  374. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +89 -0
  375. package/es/HiTable/BodyCells/index.js +16 -0
  376. package/es/HiTable/BodyRow.js +314 -0
  377. package/es/HiTable/ChildRow.js +345 -0
  378. package/es/HiTable/ColumnFilter.js +394 -0
  379. package/es/HiTable/HeaderCell.js +376 -0
  380. package/es/HiTable/HiStickyRow.js +217 -0
  381. package/es/HiTable/HiTable.js +876 -0
  382. package/es/HiTable/HiTableBody.js +454 -0
  383. package/es/HiTable/HiTableContextMenu.js +150 -0
  384. package/es/HiTable/HiTableFooterScroll.js +144 -0
  385. package/es/HiTable/HiTableHead.js +403 -0
  386. package/es/HiTable/OrderColumns.js +437 -0
  387. package/es/HiTable/constants.js +180 -0
  388. package/es/HiTable/index.js +2 -0
  389. package/es/HiTopBar/HiTopBar.js +527 -0
  390. package/es/HiTopBar/index.js +1 -0
  391. package/es/Hidden/Hidden.js +107 -0
  392. package/es/Hidden/HiddenCss.js +151 -0
  393. package/es/Hidden/HiddenJs.js +129 -0
  394. package/es/Hidden/index.js +1 -0
  395. package/es/Icon/Icon.js +74 -0
  396. package/es/Icon/index.js +1 -0
  397. package/es/IconButton/IconButton.js +106 -0
  398. package/es/IconButton/index.js +1 -0
  399. package/es/Input/Input.js +616 -0
  400. package/es/Input/InputAdornment.js +83 -0
  401. package/es/Input/InputLabel.js +138 -0
  402. package/es/Input/Textarea.js +234 -0
  403. package/es/Input/index.js +3 -0
  404. package/es/List/List.js +106 -0
  405. package/es/List/ListItem.js +212 -0
  406. package/es/List/ListItemAvatar.js +63 -0
  407. package/es/List/ListItemIcon.js +46 -0
  408. package/es/List/ListItemSecondaryAction.js +45 -0
  409. package/es/List/ListItemText.js +114 -0
  410. package/es/List/ListSubheader.js +90 -0
  411. package/es/List/index.js +7 -0
  412. package/es/Menu/Menu.js +205 -0
  413. package/es/Menu/MenuItem.js +75 -0
  414. package/es/Menu/MenuList.js +168 -0
  415. package/es/Menu/index.js +3 -0
  416. package/es/MobileStepper/MobileStepper.js +137 -0
  417. package/es/MobileStepper/index.js +1 -0
  418. package/es/Modal/Backdrop.js +67 -0
  419. package/es/Modal/Modal.js +398 -0
  420. package/es/Modal/ModalManager.js +162 -0
  421. package/es/Modal/index.js +3 -0
  422. package/es/Modal/isOverflowing.js +25 -0
  423. package/es/Modal/manageAriaHidden.js +33 -0
  424. package/es/Paper/Paper.js +81 -0
  425. package/es/Paper/index.js +1 -0
  426. package/es/Popover/Popover.js +455 -0
  427. package/es/Popover/index.js +1 -0
  428. package/es/Portal/LegacyPortal.js +97 -0
  429. package/es/Portal/Portal.js +82 -0
  430. package/es/Portal/index.js +5 -0
  431. package/es/Progress/CircularProgress.js +201 -0
  432. package/es/Progress/LinearProgress.js +235 -0
  433. package/es/Progress/index.js +2 -0
  434. package/es/Radio/Radio.js +113 -0
  435. package/es/Radio/RadioGroup.js +101 -0
  436. package/es/Radio/index.js +2 -0
  437. package/es/Reboot/Reboot.js +55 -0
  438. package/es/Reboot/index.js +1 -0
  439. package/es/Select/Select.js +199 -0
  440. package/es/Select/SelectInput.js +414 -0
  441. package/es/Select/index.js +1 -0
  442. package/es/Snackbar/Snackbar.js +370 -0
  443. package/es/Snackbar/SnackbarContent.js +96 -0
  444. package/es/Snackbar/index.js +2 -0
  445. package/es/Stepper/Step.js +120 -0
  446. package/es/Stepper/StepButton.js +111 -0
  447. package/es/Stepper/StepConnector.js +85 -0
  448. package/es/Stepper/StepContent.js +116 -0
  449. package/es/Stepper/StepIcon.js +54 -0
  450. package/es/Stepper/StepLabel.js +170 -0
  451. package/es/Stepper/StepPositionIcon.js +64 -0
  452. package/es/Stepper/Stepper.js +126 -0
  453. package/es/Stepper/index.js +6 -0
  454. package/es/SvgIcon/SvgIcon.js +117 -0
  455. package/es/SvgIcon/index.js +1 -0
  456. package/es/Switch/Switch.js +178 -0
  457. package/es/Switch/index.js +1 -0
  458. package/es/Table/Table.js +64 -0
  459. package/es/Table/TableBody.js +61 -0
  460. package/es/Table/TableCell.js +153 -0
  461. package/es/Table/TableFooter.js +44 -0
  462. package/es/Table/TableHead.js +61 -0
  463. package/es/Table/TablePagination.js +224 -0
  464. package/es/Table/TablePaginationActions.js +116 -0
  465. package/es/Table/TableRow.js +99 -0
  466. package/es/Table/TableSortLabel.js +101 -0
  467. package/es/Table/index.js +8 -0
  468. package/es/Tabs/Tab.js +271 -0
  469. package/es/Tabs/TabIndicator.js +63 -0
  470. package/es/Tabs/TabScrollButton.js +70 -0
  471. package/es/Tabs/Tabs.js +425 -0
  472. package/es/Tabs/index.js +2 -0
  473. package/es/TextField/TextField.js +259 -0
  474. package/es/TextField/index.js +1 -0
  475. package/es/Toolbar/Toolbar.js +55 -0
  476. package/es/Toolbar/index.js +1 -0
  477. package/es/Tooltip/Tooltip.js +425 -0
  478. package/es/Tooltip/index.js +1 -0
  479. package/es/Typography/Typography.js +164 -0
  480. package/es/Typography/index.js +1 -0
  481. package/es/colors/amber.js +18 -0
  482. package/es/colors/blue.js +18 -0
  483. package/es/colors/blueGrey.js +18 -0
  484. package/es/colors/brown.js +18 -0
  485. package/es/colors/common.js +6 -0
  486. package/es/colors/cyan.js +18 -0
  487. package/es/colors/deepOrange.js +18 -0
  488. package/es/colors/deepPurple.js +18 -0
  489. package/es/colors/green.js +18 -0
  490. package/es/colors/grey.js +18 -0
  491. package/es/colors/index.js +20 -0
  492. package/es/colors/indigo.js +18 -0
  493. package/es/colors/lightBlue.js +18 -0
  494. package/es/colors/lightGreen.js +18 -0
  495. package/es/colors/lime.js +18 -0
  496. package/es/colors/orange.js +18 -0
  497. package/es/colors/pink.js +18 -0
  498. package/es/colors/purple.js +18 -0
  499. package/es/colors/red.js +18 -0
  500. package/es/colors/teal.js +18 -0
  501. package/es/colors/yellow.js +18 -0
  502. package/es/index.js +64 -0
  503. package/es/internal/RefHolder.js +20 -0
  504. package/es/internal/SwitchBase.js +219 -0
  505. package/es/internal/svg-icons/ArrowDownward.js +20 -0
  506. package/es/internal/svg-icons/ArrowDropDown.js +20 -0
  507. package/es/internal/svg-icons/Cancel.js +19 -0
  508. package/es/internal/svg-icons/CheckBox.js +19 -0
  509. package/es/internal/svg-icons/CheckBoxOutlineBlank.js +19 -0
  510. package/es/internal/svg-icons/CheckCircle.js +19 -0
  511. package/es/internal/svg-icons/IndeterminateCheckBox.js +19 -0
  512. package/es/internal/svg-icons/KeyboardArrowLeft.js +19 -0
  513. package/es/internal/svg-icons/KeyboardArrowRight.js +19 -0
  514. package/es/internal/svg-icons/RadioButtonChecked.js +19 -0
  515. package/es/internal/svg-icons/RadioButtonUnchecked.js +19 -0
  516. package/es/styles/MuiThemeProvider.js +125 -0
  517. package/es/styles/colorManipulator.js +221 -0
  518. package/es/styles/createBreakpoints.js +69 -0
  519. package/es/styles/createGenerateClassName.js +72 -0
  520. package/es/styles/createHiMuiTheme.js +296 -0
  521. package/es/styles/createMixins.js +25 -0
  522. package/es/styles/createMuiTheme.js +45 -0
  523. package/es/styles/createPalette.js +164 -0
  524. package/es/styles/createTypography.js +116 -0
  525. package/es/styles/getStylesCreator.js +34 -0
  526. package/es/styles/index.js +7 -0
  527. package/es/styles/jssPreset.js +16 -0
  528. package/es/styles/shadows.js +11 -0
  529. package/es/styles/spacing.js +5 -0
  530. package/es/styles/themeListener.js +31 -0
  531. package/es/styles/transitions.js +80 -0
  532. package/es/styles/withStyles.js +300 -0
  533. package/es/styles/withTheme.js +65 -0
  534. package/es/styles/zIndex.js +12 -0
  535. package/es/svg-icons/ArrowDownward.js +20 -0
  536. package/es/svg-icons/ArrowDropDown.js +20 -0
  537. package/es/svg-icons/Cancel.js +19 -0
  538. package/es/svg-icons/CheckBox.js +19 -0
  539. package/es/svg-icons/CheckBoxOutlineBlank.js +19 -0
  540. package/es/svg-icons/CheckCircle.js +19 -0
  541. package/es/svg-icons/HiAccount.js +33 -0
  542. package/es/svg-icons/HiAll.js +43 -0
  543. package/es/svg-icons/HiBilling.js +33 -0
  544. package/es/svg-icons/HiCatalog.js +33 -0
  545. package/es/svg-icons/HiCustomer.js +39 -0
  546. package/es/svg-icons/HiFinance.js +33 -0
  547. package/es/svg-icons/HiRoute.js +33 -0
  548. package/es/svg-icons/HiSettlement.js +36 -0
  549. package/es/svg-icons/HiSizeLarge.js +19 -0
  550. package/es/svg-icons/HiSizeMedium.js +19 -0
  551. package/es/svg-icons/HiSizeSmall.js +19 -0
  552. package/es/svg-icons/HiTransaction.js +33 -0
  553. package/es/svg-icons/HiUser.js +39 -0
  554. package/es/svg-icons/HiWidget.js +43 -0
  555. package/es/svg-icons/IndeterminateCheckBox.js +19 -0
  556. package/es/svg-icons/KeyboardArrowLeft.js +19 -0
  557. package/es/svg-icons/KeyboardArrowRight.js +19 -0
  558. package/es/svg-icons/RadioButtonChecked.js +19 -0
  559. package/es/svg-icons/RadioButtonUnchecked.js +19 -0
  560. package/es/svg-icons/index.js +11 -0
  561. package/es/test-utils/createMount.js +32 -0
  562. package/es/test-utils/createRender.js +16 -0
  563. package/es/test-utils/createShallow.js +33 -0
  564. package/es/test-utils/getClasses.js +21 -0
  565. package/es/test-utils/index.js +5 -0
  566. package/es/test-utils/until.js +32 -0
  567. package/es/test-utils/unwrap.js +5 -0
  568. package/es/transitions/Collapse.js +245 -0
  569. package/es/transitions/Fade.js +132 -0
  570. package/es/transitions/Grow.js +173 -0
  571. package/es/transitions/Slide.js +291 -0
  572. package/es/transitions/Zoom.js +129 -0
  573. package/es/transitions/index.js +5 -0
  574. package/es/transitions/utils.js +10 -0
  575. package/es/utils/ClickAwayListener.js +65 -0
  576. package/es/utils/HiIconBuilder.js +99 -0
  577. package/es/utils/addEventListener.js +11 -0
  578. package/es/utils/exactProp.js +21 -0
  579. package/es/utils/helpers.js +65 -0
  580. package/es/utils/hiGetMdiIcon.js +12 -0
  581. package/es/utils/hiHelpers.js +173 -0
  582. package/es/utils/keyboardFocus.js +51 -0
  583. package/es/utils/manageAriaHidden.js +33 -0
  584. package/es/utils/reactHelpers.js +21 -0
  585. package/es/utils/requirePropFactory.js +16 -0
  586. package/es/utils/withWidth.js +141 -0
  587. package/index.es.js +69 -0
  588. package/index.js +853 -0
  589. package/internal/RefHolder.js +64 -0
  590. package/internal/SwitchBase.js +287 -0
  591. package/internal/svg-icons/ArrowDownward.js +37 -0
  592. package/internal/svg-icons/ArrowDropDown.js +37 -0
  593. package/internal/svg-icons/Cancel.js +36 -0
  594. package/internal/svg-icons/CheckBox.js +36 -0
  595. package/internal/svg-icons/CheckBoxOutlineBlank.js +36 -0
  596. package/internal/svg-icons/CheckCircle.js +36 -0
  597. package/internal/svg-icons/IndeterminateCheckBox.js +36 -0
  598. package/internal/svg-icons/KeyboardArrowLeft.js +36 -0
  599. package/internal/svg-icons/KeyboardArrowRight.js +36 -0
  600. package/internal/svg-icons/RadioButtonChecked.js +36 -0
  601. package/internal/svg-icons/RadioButtonUnchecked.js +36 -0
  602. package/package.json +77 -0
  603. package/styles/MuiThemeProvider.js +197 -0
  604. package/styles/colorManipulator.js +255 -0
  605. package/styles/createBreakpoints.js +86 -0
  606. package/styles/createGenerateClassName.js +88 -0
  607. package/styles/createHiMuiTheme.js +328 -0
  608. package/styles/createMixins.js +42 -0
  609. package/styles/createMuiTheme.js +91 -0
  610. package/styles/createPalette.js +208 -0
  611. package/styles/createTypography.js +138 -0
  612. package/styles/getStylesCreator.js +55 -0
  613. package/styles/index.js +70 -0
  614. package/styles/jssPreset.js +41 -0
  615. package/styles/shadows.js +16 -0
  616. package/styles/spacing.js +10 -0
  617. package/styles/themeListener.js +44 -0
  618. package/styles/transitions.js +112 -0
  619. package/styles/withStyles.js +416 -0
  620. package/styles/withTheme.js +127 -0
  621. package/styles/zIndex.js +17 -0
  622. package/svg-icons/ArrowDownward.js +37 -0
  623. package/svg-icons/ArrowDropDown.js +37 -0
  624. package/svg-icons/Cancel.js +36 -0
  625. package/svg-icons/CheckBox.js +36 -0
  626. package/svg-icons/CheckBoxOutlineBlank.js +36 -0
  627. package/svg-icons/CheckCircle.js +36 -0
  628. package/svg-icons/HiAccount.js +52 -0
  629. package/svg-icons/HiAll.js +62 -0
  630. package/svg-icons/HiBilling.js +52 -0
  631. package/svg-icons/HiCatalog.js +52 -0
  632. package/svg-icons/HiCustomer.js +58 -0
  633. package/svg-icons/HiFinance.js +52 -0
  634. package/svg-icons/HiRoute.js +52 -0
  635. package/svg-icons/HiSettlement.js +52 -0
  636. package/svg-icons/HiSizeLarge.js +36 -0
  637. package/svg-icons/HiSizeMedium.js +36 -0
  638. package/svg-icons/HiSizeSmall.js +36 -0
  639. package/svg-icons/HiTransaction.js +52 -0
  640. package/svg-icons/HiUser.js +58 -0
  641. package/svg-icons/HiWidget.js +62 -0
  642. package/svg-icons/IndeterminateCheckBox.js +36 -0
  643. package/svg-icons/KeyboardArrowLeft.js +36 -0
  644. package/svg-icons/KeyboardArrowRight.js +36 -0
  645. package/svg-icons/RadioButtonChecked.js +36 -0
  646. package/svg-icons/RadioButtonUnchecked.js +36 -0
  647. package/svg-icons/index.js +106 -0
  648. package/test-utils/createMount.js +53 -0
  649. package/test-utils/createRender.js +36 -0
  650. package/test-utils/createShallow.js +60 -0
  651. package/test-utils/getClasses.js +47 -0
  652. package/test-utils/index.js +52 -0
  653. package/test-utils/until.js +54 -0
  654. package/test-utils/unwrap.js +11 -0
  655. package/transitions/Collapse.js +324 -0
  656. package/transitions/Fade.js +207 -0
  657. package/transitions/Grow.js +251 -0
  658. package/transitions/Slide.js +381 -0
  659. package/transitions/Zoom.js +204 -0
  660. package/transitions/index.js +52 -0
  661. package/transitions/utils.js +21 -0
  662. package/umd/hipay-material-ui.development.js +113768 -0
  663. package/umd/hipay-material-ui.production.min.js +21 -0
  664. package/utils/ClickAwayListener.js +122 -0
  665. package/utils/HiIconBuilder.js +168 -0
  666. package/utils/addEventListener.js +26 -0
  667. package/utils/exactProp.js +40 -0
  668. package/utils/helpers.js +97 -0
  669. package/utils/hiGetMdiIcon.js +20 -0
  670. package/utils/hiHelpers.js +195 -0
  671. package/utils/keyboardFocus.js +75 -0
  672. package/utils/manageAriaHidden.js +49 -0
  673. package/utils/reactHelpers.js +27 -0
  674. package/utils/requirePropFactory.js +23 -0
  675. package/utils/withWidth.js +214 -0
@@ -0,0 +1,398 @@
1
+ import _extends from 'babel-runtime/helpers/extends';
2
+ import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
3
+ // @inheritedComponent Portal
4
+
5
+ import React from 'react';
6
+ import ReactDOM from 'react-dom';
7
+ import PropTypes from 'prop-types';
8
+ import classNames from 'classnames';
9
+ import warning from 'warning';
10
+ import keycode from 'keycode';
11
+ import activeElement from 'dom-helpers/activeElement';
12
+ import contains from 'dom-helpers/query/contains';
13
+ import inDOM from 'dom-helpers/util/inDOM';
14
+ import ownerDocument from 'dom-helpers/ownerDocument';
15
+ import RefHolder from '../internal/RefHolder';
16
+ import Portal from '../Portal';
17
+ import addEventListener from '../utils/addEventListener';
18
+ import { createChainedFunction } from '../utils/helpers';
19
+ import withStyles from '../styles/withStyles';
20
+ import ModalManager from './ModalManager';
21
+ import Backdrop from './Backdrop';
22
+
23
+ function getContainer(container, defaultContainer) {
24
+ container = typeof container === 'function' ? container() : container;
25
+ return ReactDOM.findDOMNode(container) || defaultContainer;
26
+ }
27
+
28
+ function getHasTransition(props) {
29
+ return props.children ? props.children.props.hasOwnProperty('in') : false;
30
+ }
31
+
32
+ export const styles = theme => ({
33
+ root: {
34
+ display: 'flex',
35
+ width: '100%',
36
+ height: '100%',
37
+ position: 'fixed',
38
+ zIndex: theme.zIndex.modal,
39
+ top: 0,
40
+ left: 0
41
+ },
42
+ hidden: {
43
+ visibility: 'hidden'
44
+ }
45
+ });
46
+
47
+ class Modal extends React.Component {
48
+ constructor(props, context) {
49
+ super(props, context);
50
+ this.dialog = null;
51
+ this.mounted = false;
52
+ this.mountNode = null;
53
+
54
+ this.handleRendered = () => {
55
+ this.autoFocus();
56
+
57
+ if (this.props.onRendered) {
58
+ this.props.onRendered();
59
+ }
60
+ };
61
+
62
+ this.handleOpen = () => {
63
+ const doc = ownerDocument(this.mountNode);
64
+ const container = getContainer(this.props.container, doc.body);
65
+
66
+ this.props.manager.add(this, container);
67
+ this.onDocumentKeydownListener = addEventListener(doc, 'keydown', this.handleDocumentKeyDown);
68
+ this.onFocusinListener = addEventListener(doc, 'focus', this.enforceFocus, true);
69
+ };
70
+
71
+ this.handleClose = () => {
72
+ this.props.manager.remove(this);
73
+ this.onDocumentKeydownListener.remove();
74
+ this.onFocusinListener.remove();
75
+ this.restoreLastFocus();
76
+ };
77
+
78
+ this.handleExited = () => {
79
+ this.setState({ exited: true });
80
+ this.handleClose();
81
+ };
82
+
83
+ this.handleBackdropClick = event => {
84
+ if (event.target !== event.currentTarget) {
85
+ return;
86
+ }
87
+
88
+ if (this.props.onBackdropClick) {
89
+ this.props.onBackdropClick(event);
90
+ }
91
+
92
+ if (!this.props.disableBackdropClick && this.props.onClose) {
93
+ this.props.onClose(event, 'backdropClick');
94
+ }
95
+ };
96
+
97
+ this.handleDocumentKeyDown = event => {
98
+ if (!this.isTopModal() || keycode(event) !== 'esc') {
99
+ return;
100
+ }
101
+
102
+ if (this.props.onEscapeKeyDown) {
103
+ this.props.onEscapeKeyDown(event);
104
+ }
105
+
106
+ if (!this.props.disableEscapeKeyDown && this.props.onClose) {
107
+ this.props.onClose(event, 'escapeKeyDown');
108
+ }
109
+ };
110
+
111
+ this.checkForFocus = () => {
112
+ if (inDOM) {
113
+ this.lastFocus = activeElement();
114
+ }
115
+ };
116
+
117
+ this.enforceFocus = () => {
118
+ if (this.props.disableEnforceFocus || !this.mounted || !this.isTopModal()) {
119
+ return;
120
+ }
121
+
122
+ const dialogElement = this.getDialogElement();
123
+ const currentActiveElement = activeElement(ownerDocument(this.mountNode));
124
+
125
+ if (dialogElement && !contains(dialogElement, currentActiveElement)) {
126
+ dialogElement.focus();
127
+ }
128
+ };
129
+
130
+ this.state = {
131
+ exited: !this.props.open
132
+ };
133
+ }
134
+
135
+ componentDidMount() {
136
+ this.mounted = true;
137
+ if (this.props.open) {
138
+ this.handleOpen();
139
+ }
140
+ }
141
+
142
+ componentWillReceiveProps(nextProps) {
143
+ if (nextProps.open) {
144
+ this.setState({ exited: false });
145
+ } else if (!getHasTransition(nextProps)) {
146
+ // Otherwise let handleExited take care of marking exited.
147
+ this.setState({ exited: true });
148
+ }
149
+ }
150
+
151
+ componentDidUpdate(prevProps) {
152
+ if (!prevProps.open && this.props.open) {
153
+ this.checkForFocus();
154
+ }
155
+
156
+ if (prevProps.open && !this.props.open && !getHasTransition(this.props)) {
157
+ // Otherwise handleExited will call this.
158
+ this.handleClose();
159
+ } else if (!prevProps.open && this.props.open) {
160
+ this.handleOpen();
161
+ }
162
+ }
163
+
164
+ componentWillUnmount() {
165
+ this.mounted = false;
166
+
167
+ if (this.props.open || getHasTransition(this.props) && !this.state.exited) {
168
+ this.handleClose();
169
+ }
170
+ }
171
+
172
+ getDialogElement() {
173
+ return ReactDOM.findDOMNode(this.dialog);
174
+ }
175
+
176
+ autoFocus() {
177
+ if (this.props.disableAutoFocus) {
178
+ return;
179
+ }
180
+
181
+ const dialogElement = this.getDialogElement();
182
+ const currentActiveElement = activeElement(ownerDocument(this.mountNode));
183
+
184
+ if (dialogElement && !contains(dialogElement, currentActiveElement)) {
185
+ this.lastFocus = currentActiveElement;
186
+
187
+ if (!dialogElement.hasAttribute('tabIndex')) {
188
+ process.env.NODE_ENV !== "production" ? warning(false, ['Material-UI: the modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to "-1".'].join('\n')) : void 0;
189
+ dialogElement.setAttribute('tabIndex', -1);
190
+ }
191
+
192
+ dialogElement.focus();
193
+ }
194
+ }
195
+
196
+ restoreLastFocus() {
197
+ if (this.props.disableRestoreFocus) {
198
+ return;
199
+ }
200
+
201
+ if (this.lastFocus) {
202
+ this.lastFocus.focus();
203
+ this.lastFocus = null;
204
+ }
205
+ }
206
+
207
+ isTopModal() {
208
+ return this.props.manager.isTopModal(this);
209
+ }
210
+
211
+ render() {
212
+ const _props = this.props,
213
+ {
214
+ BackdropComponent,
215
+ BackdropProps,
216
+ children,
217
+ classes,
218
+ className,
219
+ container,
220
+ disableAutoFocus,
221
+ disableBackdropClick,
222
+ disableEnforceFocus,
223
+ disableEscapeKeyDown,
224
+ disableRestoreFocus,
225
+ hideBackdrop,
226
+ keepMounted,
227
+ onBackdropClick,
228
+ onClose,
229
+ onEscapeKeyDown,
230
+ onRendered,
231
+ open,
232
+ manager
233
+ } = _props,
234
+ other = _objectWithoutProperties(_props, ['BackdropComponent', 'BackdropProps', 'children', 'classes', 'className', 'container', 'disableAutoFocus', 'disableBackdropClick', 'disableEnforceFocus', 'disableEscapeKeyDown', 'disableRestoreFocus', 'hideBackdrop', 'keepMounted', 'onBackdropClick', 'onClose', 'onEscapeKeyDown', 'onRendered', 'open', 'manager']);
235
+ const { exited } = this.state;
236
+ const hasTransition = getHasTransition(this.props);
237
+ const childProps = {};
238
+
239
+ if (!keepMounted && !open && (!hasTransition || exited)) {
240
+ return null;
241
+ }
242
+
243
+ // It's a Transition like component
244
+ if (hasTransition) {
245
+ childProps.onExited = createChainedFunction(this.handleExited, children.props.onExited);
246
+ }
247
+
248
+ if (children.props.role === undefined) {
249
+ childProps.role = children.props.role || 'document';
250
+ }
251
+
252
+ if (children.props.tabIndex === undefined) {
253
+ childProps.tabIndex = children.props.tabIndex || '-1';
254
+ }
255
+
256
+ return React.createElement(
257
+ Portal,
258
+ {
259
+ ref: node => {
260
+ this.mountNode = node ? node.getMountNode() : node;
261
+ },
262
+ container: container,
263
+ onRendered: this.handleRendered
264
+ },
265
+ React.createElement(
266
+ 'div',
267
+ _extends({
268
+ className: classNames(classes.root, className, {
269
+ [classes.hidden]: exited
270
+ })
271
+ }, other),
272
+ hideBackdrop ? null : React.createElement(BackdropComponent, _extends({ open: open, onClick: this.handleBackdropClick }, BackdropProps)),
273
+ React.createElement(
274
+ RefHolder,
275
+ {
276
+ ref: node => {
277
+ this.dialog = node;
278
+ }
279
+ },
280
+ React.cloneElement(children, childProps)
281
+ )
282
+ )
283
+ );
284
+ }
285
+ }
286
+
287
+ Modal.propTypes = process.env.NODE_ENV !== "production" ? {
288
+ /**
289
+ * A backdrop component. Useful for custom backdrop rendering.
290
+ */
291
+ BackdropComponent: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
292
+ /**
293
+ * Properties applied to the `Backdrop` element.
294
+ */
295
+ BackdropProps: PropTypes.object,
296
+ /**
297
+ * A single child content element.
298
+ */
299
+ children: PropTypes.element,
300
+ /**
301
+ * Useful to extend the style applied to components.
302
+ */
303
+ classes: PropTypes.object.isRequired,
304
+ /**
305
+ * @ignore
306
+ */
307
+ className: PropTypes.string,
308
+ /**
309
+ * A node, component instance, or function that returns either.
310
+ * The `container` will have the portal children appended to it.
311
+ */
312
+ container: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),
313
+ /**
314
+ * If `true`, the modal will not automatically shift focus to itself when it opens, and
315
+ * replace it to the last focused element when it closes.
316
+ * This also works correctly with any modal children that have the `disableAutoFocus` prop.
317
+ *
318
+ * Generally this should never be set to `true` as it makes the modal less
319
+ * accessible to assistive technologies, like screen readers.
320
+ */
321
+ disableAutoFocus: PropTypes.bool,
322
+ /**
323
+ * If `true`, clicking the backdrop will not fire any callback.
324
+ */
325
+ disableBackdropClick: PropTypes.bool,
326
+ /**
327
+ * If `true`, the modal will not prevent focus from leaving the modal while open.
328
+ *
329
+ * Generally this should never be set to `true` as it makes the modal less
330
+ * accessible to assistive technologies, like screen readers.
331
+ */
332
+ disableEnforceFocus: PropTypes.bool,
333
+ /**
334
+ * If `true`, hitting escape will not fire any callback.
335
+ */
336
+ disableEscapeKeyDown: PropTypes.bool,
337
+ /**
338
+ * If `true`, the modal will not restore focus to previously focused element once
339
+ * modal is hidden.
340
+ */
341
+ disableRestoreFocus: PropTypes.bool,
342
+ /**
343
+ * If `true`, the backdrop is not rendered.
344
+ */
345
+ hideBackdrop: PropTypes.bool,
346
+ /**
347
+ * Always keep the children in the DOM.
348
+ * This property can be useful in SEO situation or
349
+ * when you want to maximize the responsiveness of the Modal.
350
+ */
351
+ keepMounted: PropTypes.bool,
352
+ /**
353
+ * A modal manager used to track and manage the state of open
354
+ * Modals. Useful when customizing how modals interact within a container.
355
+ */
356
+ manager: PropTypes.object,
357
+ /**
358
+ * Callback fired when the backdrop is clicked.
359
+ */
360
+ onBackdropClick: PropTypes.func,
361
+ /**
362
+ * Callback fired when the component requests to be closed.
363
+ * The `reason` parameter can optionally be used to control the response to `onClose`.
364
+ *
365
+ * @param {object} event The event source of the callback
366
+ * @param {string} reason Can be:`"escapeKeyDown"`, `"backdropClick"`
367
+ */
368
+ onClose: PropTypes.func,
369
+ /**
370
+ * Callback fired when the escape key is pressed,
371
+ * `disableEscapeKeyDown` is false and the modal is in focus.
372
+ */
373
+ onEscapeKeyDown: PropTypes.func,
374
+ /**
375
+ * Callback fired once the children has been mounted into the `container`.
376
+ * It signals that the `open={true}` property took effect.
377
+ */
378
+ onRendered: PropTypes.func,
379
+ /**
380
+ * If `true`, the modal is open.
381
+ */
382
+ open: PropTypes.bool.isRequired
383
+ } : {};
384
+
385
+ Modal.defaultProps = {
386
+ disableAutoFocus: false,
387
+ disableBackdropClick: false,
388
+ disableEnforceFocus: false,
389
+ disableEscapeKeyDown: false,
390
+ disableRestoreFocus: false,
391
+ hideBackdrop: false,
392
+ keepMounted: false,
393
+ // Modals don't open on the server so this won't conflict with concurrent requests.
394
+ manager: new ModalManager(),
395
+ BackdropComponent: Backdrop
396
+ };
397
+
398
+ export default withStyles(styles, { flip: false, name: 'MuiModal' })(Modal);
@@ -0,0 +1,162 @@
1
+ import _Object$keys from 'babel-runtime/core-js/object/keys';
2
+ import css from 'dom-helpers/style';
3
+ import ownerDocument from 'dom-helpers/ownerDocument';
4
+ import getScrollbarSize from 'dom-helpers/util/scrollbarSize';
5
+ import isOverflowing from './isOverflowing';
6
+ import { ariaHidden, hideSiblings, showSiblings } from './manageAriaHidden';
7
+
8
+ function findIndexOf(data, callback) {
9
+ let idx = -1;
10
+ data.some((item, index) => {
11
+ if (callback(item)) {
12
+ idx = index;
13
+ return true;
14
+ }
15
+ return false;
16
+ });
17
+ return idx;
18
+ }
19
+
20
+ function findContainer(data, modal) {
21
+ return findIndexOf(data, item => item.modals.indexOf(modal) !== -1);
22
+ }
23
+
24
+ function getPaddingRight(node) {
25
+ return parseInt(css(node, 'paddingRight') || 0, 10);
26
+ }
27
+
28
+ function setContainerStyle(data, container) {
29
+ const style = { overflow: 'hidden' };
30
+
31
+ // We are only interested in the actual `style` here because we will override it.
32
+ data.style = {
33
+ overflow: container.style.overflow,
34
+ paddingRight: container.style.paddingRight
35
+ };
36
+
37
+ if (data.overflowing) {
38
+ const scrollbarSize = getScrollbarSize();
39
+
40
+ // Use computed style, here to get the real padding to add our scrollbar width.
41
+ style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;
42
+
43
+ // .mui-fixed is a global helper.
44
+ const fixedNodes = ownerDocument(container).querySelectorAll('.mui-fixed');
45
+ for (let i = 0; i < fixedNodes.length; i += 1) {
46
+ const paddingRight = getPaddingRight(fixedNodes[i]);
47
+ data.prevPaddings.push(paddingRight);
48
+ fixedNodes[i].style.paddingRight = `${paddingRight + scrollbarSize}px`;
49
+ }
50
+ }
51
+
52
+ _Object$keys(style).forEach(key => {
53
+ container.style[key] = style[key];
54
+ });
55
+ }
56
+
57
+ function removeContainerStyle(data, container) {
58
+ _Object$keys(data.style).forEach(key => {
59
+ container.style[key] = data.style[key];
60
+ });
61
+
62
+ const fixedNodes = ownerDocument(container).querySelectorAll('.mui-fixed');
63
+ for (let i = 0; i < fixedNodes.length; i += 1) {
64
+ fixedNodes[i].style.paddingRight = `${data.prevPaddings[i]}px`;
65
+ }
66
+ }
67
+ /**
68
+ * @ignore - do not document.
69
+ *
70
+ * Proper state managment for containers and the modals in those containers.
71
+ * Simplified, but inspired by react-overlay's ModalManager class
72
+ * Used by the Modal to ensure proper styling of containers.
73
+ */
74
+ class ModalManager {
75
+ constructor({ hideSiblingNodes = true, handleContainerOverflow = true } = {}) {
76
+ this.hideSiblingNodes = hideSiblingNodes;
77
+ this.handleContainerOverflow = handleContainerOverflow;
78
+ // this.modals[modalIdx] = modal
79
+ this.modals = [];
80
+ // this.containers[containerIdx] = container
81
+ this.containers = [];
82
+ // this.data[containerIdx] = {
83
+ // modals: [],
84
+ // }
85
+ this.data = [];
86
+ }
87
+
88
+ add(modal, container) {
89
+ let modalIdx = this.modals.indexOf(modal);
90
+ const containerIdx = this.containers.indexOf(container);
91
+
92
+ if (modalIdx !== -1) {
93
+ return modalIdx;
94
+ }
95
+
96
+ modalIdx = this.modals.length;
97
+ this.modals.push(modal);
98
+
99
+ if (this.hideSiblingNodes) {
100
+ hideSiblings(container, modal.mountNode);
101
+ }
102
+
103
+ if (containerIdx !== -1) {
104
+ this.data[containerIdx].modals.push(modal);
105
+ return modalIdx;
106
+ }
107
+
108
+ const data = {
109
+ modals: [modal],
110
+ overflowing: isOverflowing(container),
111
+ prevPaddings: []
112
+ };
113
+
114
+ if (this.handleContainerOverflow) {
115
+ setContainerStyle(data, container);
116
+ }
117
+
118
+ this.containers.push(container);
119
+ this.data.push(data);
120
+
121
+ return modalIdx;
122
+ }
123
+
124
+ remove(modal) {
125
+ const modalIdx = this.modals.indexOf(modal);
126
+
127
+ if (modalIdx === -1) {
128
+ return modalIdx;
129
+ }
130
+
131
+ const containerIdx = findContainer(this.data, modal);
132
+ const data = this.data[containerIdx];
133
+ const container = this.containers[containerIdx];
134
+
135
+ data.modals.splice(data.modals.indexOf(modal), 1);
136
+ this.modals.splice(modalIdx, 1);
137
+
138
+ // If that was the last modal in a container, clean up the container.
139
+ if (data.modals.length === 0) {
140
+ if (this.handleContainerOverflow) {
141
+ removeContainerStyle(data, container);
142
+ }
143
+
144
+ if (this.hideSiblingNodes) {
145
+ showSiblings(container, modal.mountNode);
146
+ }
147
+ this.containers.splice(containerIdx, 1);
148
+ this.data.splice(containerIdx, 1);
149
+ } else if (this.hideSiblingNodes) {
150
+ // Otherwise make sure the next top modal is visible to a SR.
151
+ ariaHidden(false, data.modals[data.modals.length - 1].mountNode);
152
+ }
153
+
154
+ return modalIdx;
155
+ }
156
+
157
+ isTopModal(modal) {
158
+ return !!this.modals.length && this.modals[this.modals.length - 1] === modal;
159
+ }
160
+ }
161
+
162
+ export default ModalManager;
@@ -0,0 +1,3 @@
1
+ export { default } from './Modal';
2
+ export { default as Backdrop } from './Backdrop';
3
+ export { default as ModalManager } from './ModalManager';
@@ -0,0 +1,25 @@
1
+ import isWindow from 'dom-helpers/query/isWindow';
2
+ import ownerDocument from 'dom-helpers/ownerDocument';
3
+ import ownerWindow from 'dom-helpers/ownerWindow';
4
+
5
+ export function isBody(node) {
6
+ return node && node.tagName.toLowerCase() === 'body';
7
+ }
8
+
9
+ // Do we have a scroll bar?
10
+ export default function isOverflowing(container) {
11
+ const doc = ownerDocument(container);
12
+ const win = ownerWindow(doc);
13
+
14
+ /* istanbul ignore next */
15
+ if (!isWindow(doc) && !isBody(container)) {
16
+ return container.scrollHeight > container.clientHeight;
17
+ }
18
+
19
+ // Takes in account potential non zero margin on the body.
20
+ const style = win.getComputedStyle(doc.body);
21
+ const marginLeft = parseInt(style.getPropertyValue('margin-left'), 10);
22
+ const marginRight = parseInt(style.getPropertyValue('margin-right'), 10);
23
+
24
+ return marginLeft + doc.body.clientWidth + marginRight < win.innerWidth;
25
+ }
@@ -0,0 +1,33 @@
1
+ const BLACKLIST = ['template', 'script', 'style'];
2
+
3
+ function isHidable(node) {
4
+ return node.nodeType === 1 && BLACKLIST.indexOf(node.tagName.toLowerCase()) === -1;
5
+ }
6
+
7
+ function siblings(container, mount, callback) {
8
+ mount = [].concat(mount); // eslint-disable-line no-param-reassign
9
+ [].forEach.call(container.children, node => {
10
+ if (mount.indexOf(node) === -1 && isHidable(node)) {
11
+ callback(node);
12
+ }
13
+ });
14
+ }
15
+
16
+ export function ariaHidden(show, node) {
17
+ if (!node) {
18
+ return;
19
+ }
20
+ if (show) {
21
+ node.setAttribute('aria-hidden', 'true');
22
+ } else {
23
+ node.removeAttribute('aria-hidden');
24
+ }
25
+ }
26
+
27
+ export function hideSiblings(container, mountNode) {
28
+ siblings(container, mountNode, node => ariaHidden(true, node));
29
+ }
30
+
31
+ export function showSiblings(container, mountNode) {
32
+ siblings(container, mountNode, node => ariaHidden(false, node));
33
+ }
@@ -0,0 +1,81 @@
1
+ import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
2
+ import _extends from 'babel-runtime/helpers/extends';
3
+ import React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import classNames from 'classnames';
6
+ import warning from 'warning';
7
+ import withStyles from '../styles/withStyles';
8
+
9
+ export const styles = theme => {
10
+ const elevations = {};
11
+ theme.shadows.forEach((shadow, index) => {
12
+ elevations[`elevation${index}`] = {
13
+ boxShadow: shadow
14
+ };
15
+ });
16
+
17
+ return _extends({
18
+ root: {
19
+ backgroundColor: theme.palette.background.paper
20
+ },
21
+ rounded: {
22
+ borderRadius: 2
23
+ }
24
+ }, elevations);
25
+ };
26
+
27
+ function Paper(props) {
28
+ const {
29
+ classes,
30
+ className: classNameProp,
31
+ component: Component,
32
+ square,
33
+ elevation
34
+ } = props,
35
+ other = _objectWithoutProperties(props, ['classes', 'className', 'component', 'square', 'elevation']);
36
+
37
+ process.env.NODE_ENV !== "production" ? warning(elevation >= 0 && elevation < 25, `Material-UI: this elevation \`${elevation}\` is not implemented.`) : void 0;
38
+
39
+ const className = classNames(classes.root, classes[`elevation${elevation}`], {
40
+ [classes.rounded]: !square
41
+ }, classNameProp);
42
+
43
+ return React.createElement(Component, _extends({ className: className }, other));
44
+ }
45
+
46
+ Paper.propTypes = process.env.NODE_ENV !== "production" ? {
47
+ /**
48
+ * The content of the component.
49
+ */
50
+ children: PropTypes.node,
51
+ /**
52
+ * Useful to extend the style applied to components.
53
+ */
54
+ classes: PropTypes.object.isRequired,
55
+ /**
56
+ * @ignore
57
+ */
58
+ className: PropTypes.string,
59
+ /**
60
+ * The component used for the root node.
61
+ * Either a string to use a DOM element or a component.
62
+ */
63
+ component: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
64
+ /**
65
+ * Shadow depth, corresponds to `dp` in the spec.
66
+ * It's accepting values between 0 and 24 inclusive.
67
+ */
68
+ elevation: PropTypes.number,
69
+ /**
70
+ * If `true`, rounded corners are disabled.
71
+ */
72
+ square: PropTypes.bool
73
+ } : {};
74
+
75
+ Paper.defaultProps = {
76
+ component: 'div',
77
+ elevation: 2,
78
+ square: false
79
+ };
80
+
81
+ export default withStyles(styles, { name: 'MuiPaper' })(Paper);
@@ -0,0 +1 @@
1
+ export { default } from './Paper';