@wireapp/react-ui-kit 9.0.0 → 9.0.2

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 (317) hide show
  1. package/lib/Form/Button.js +136 -0
  2. package/lib/Form/Button.js.map +1 -0
  3. package/lib/Form/ButtonLink.js +54 -0
  4. package/lib/Form/ButtonLink.js.map +1 -0
  5. package/lib/Form/Checkbox.js +114 -0
  6. package/lib/Form/Checkbox.js.map +1 -0
  7. package/lib/Form/CodeInput.js +126 -0
  8. package/lib/Form/CodeInput.js.map +1 -0
  9. package/lib/Form/DropFileInput.js +139 -0
  10. package/lib/Form/DropFileInput.js.map +1 -0
  11. package/lib/Form/ErrorMessage.js +54 -0
  12. package/lib/Form/ErrorMessage.js.map +1 -0
  13. package/lib/Form/Form.js +32 -0
  14. package/lib/Form/Form.js.map +1 -0
  15. package/lib/Form/Input.js +134 -0
  16. package/lib/Form/Input.js.map +1 -0
  17. package/lib/Form/InputBlock.js +41 -0
  18. package/lib/Form/InputBlock.js.map +1 -0
  19. package/lib/Form/InputLabel.js +47 -0
  20. package/lib/Form/InputLabel.js.map +1 -0
  21. package/lib/Form/InputSubmitCombo.js +54 -0
  22. package/lib/Form/InputSubmitCombo.js.map +1 -0
  23. package/lib/Form/RangeInput.js +54 -0
  24. package/lib/Form/RangeInput.js.map +1 -0
  25. package/lib/Form/RangeInput.styles.js +60 -0
  26. package/lib/Form/RangeInput.styles.js.map +1 -0
  27. package/lib/Form/RoundIconButton.js +49 -0
  28. package/lib/Form/RoundIconButton.js.map +1 -0
  29. package/lib/Form/Select.js +63 -0
  30. package/lib/Form/Select.js.map +1 -0
  31. package/lib/Form/SelectComponents.js +119 -0
  32. package/lib/Form/SelectComponents.js.map +1 -0
  33. package/lib/Form/SelectStyles.js +123 -0
  34. package/lib/Form/SelectStyles.js.map +1 -0
  35. package/lib/Form/ShakeBox.js +79 -0
  36. package/lib/Form/ShakeBox.js.map +1 -0
  37. package/lib/Form/Switch.js +96 -0
  38. package/lib/Form/Switch.js.map +1 -0
  39. package/lib/Form/TextArea.js +67 -0
  40. package/lib/Form/TextArea.js.map +1 -0
  41. package/lib/Form/Tooltip.js +79 -0
  42. package/lib/Form/Tooltip.js.map +1 -0
  43. package/lib/Form/index.js +54 -0
  44. package/lib/Form/index.js.map +1 -0
  45. package/lib/GlobalCssVariables.js +118 -0
  46. package/lib/GlobalCssVariables.js.map +1 -0
  47. package/lib/GlobalStyle.js +61 -0
  48. package/lib/GlobalStyle.js.map +1 -0
  49. package/lib/Icon/AddPeopleIcon.js +42 -0
  50. package/lib/Icon/AddPeopleIcon.js.map +1 -0
  51. package/lib/Icon/ArchiveIcon.js +28 -0
  52. package/lib/Icon/ArchiveIcon.js.map +1 -0
  53. package/lib/Icon/ArrowDown.js +44 -0
  54. package/lib/Icon/ArrowDown.js.map +1 -0
  55. package/lib/Icon/ArrowIcon.js +48 -0
  56. package/lib/Icon/ArrowIcon.js.map +1 -0
  57. package/lib/Icon/AttachmentIcon.js +28 -0
  58. package/lib/Icon/AttachmentIcon.js.map +1 -0
  59. package/lib/Icon/AudioVideoIcon.js +28 -0
  60. package/lib/Icon/AudioVideoIcon.js.map +1 -0
  61. package/lib/Icon/BlockIcon.js +28 -0
  62. package/lib/Icon/BlockIcon.js.map +1 -0
  63. package/lib/Icon/Brand/AndroidIcon.js +28 -0
  64. package/lib/Icon/Brand/AndroidIcon.js.map +1 -0
  65. package/lib/Icon/Brand/AppleIcon.js +28 -0
  66. package/lib/Icon/Brand/AppleIcon.js.map +1 -0
  67. package/lib/Icon/Brand/ChromeIcon.js +28 -0
  68. package/lib/Icon/Brand/ChromeIcon.js.map +1 -0
  69. package/lib/Icon/Brand/FacebookIcon.js +28 -0
  70. package/lib/Icon/Brand/FacebookIcon.js.map +1 -0
  71. package/lib/Icon/Brand/GitHubIcon.js +28 -0
  72. package/lib/Icon/Brand/GitHubIcon.js.map +1 -0
  73. package/lib/Icon/Brand/LinkedInIcon.js +28 -0
  74. package/lib/Icon/Brand/LinkedInIcon.js.map +1 -0
  75. package/lib/Icon/Brand/LinuxIcon.js +28 -0
  76. package/lib/Icon/Brand/LinuxIcon.js.map +1 -0
  77. package/lib/Icon/Brand/MicrosoftIcon.js +28 -0
  78. package/lib/Icon/Brand/MicrosoftIcon.js.map +1 -0
  79. package/lib/Icon/Brand/TwitterIcon.js +28 -0
  80. package/lib/Icon/Brand/TwitterIcon.js.map +1 -0
  81. package/lib/Icon/CallIcon.js +28 -0
  82. package/lib/Icon/CallIcon.js.map +1 -0
  83. package/lib/Icon/CamIcon.js +28 -0
  84. package/lib/Icon/CamIcon.js.map +1 -0
  85. package/lib/Icon/CameraIcon.js +42 -0
  86. package/lib/Icon/CameraIcon.js.map +1 -0
  87. package/lib/Icon/CheckIcon.js +28 -0
  88. package/lib/Icon/CheckIcon.js.map +1 -0
  89. package/lib/Icon/CheckRoundIcon.js +28 -0
  90. package/lib/Icon/CheckRoundIcon.js.map +1 -0
  91. package/lib/Icon/ChevronIcon.js +43 -0
  92. package/lib/Icon/ChevronIcon.js.map +1 -0
  93. package/lib/Icon/CloseIcon.js +28 -0
  94. package/lib/Icon/CloseIcon.js.map +1 -0
  95. package/lib/Icon/CopyIcon.js +28 -0
  96. package/lib/Icon/CopyIcon.js.map +1 -0
  97. package/lib/Icon/DeviceIcon.js +28 -0
  98. package/lib/Icon/DeviceIcon.js.map +1 -0
  99. package/lib/Icon/DownloadIcon.js +28 -0
  100. package/lib/Icon/DownloadIcon.js.map +1 -0
  101. package/lib/Icon/EditDocumentIcon.js +42 -0
  102. package/lib/Icon/EditDocumentIcon.js.map +1 -0
  103. package/lib/Icon/EditIcon.js +28 -0
  104. package/lib/Icon/EditIcon.js.map +1 -0
  105. package/lib/Icon/EnterIcon.js +28 -0
  106. package/lib/Icon/EnterIcon.js.map +1 -0
  107. package/lib/Icon/ErrorIcon.js +31 -0
  108. package/lib/Icon/ErrorIcon.js.map +1 -0
  109. package/lib/Icon/FileIcon.js +28 -0
  110. package/lib/Icon/FileIcon.js.map +1 -0
  111. package/lib/Icon/GifIcon.js +28 -0
  112. package/lib/Icon/GifIcon.js.map +1 -0
  113. package/lib/Icon/GridIcon.js +42 -0
  114. package/lib/Icon/GridIcon.js.map +1 -0
  115. package/lib/Icon/GroupIcon.js +28 -0
  116. package/lib/Icon/GroupIcon.js.map +1 -0
  117. package/lib/Icon/HangupIcon.js +28 -0
  118. package/lib/Icon/HangupIcon.js.map +1 -0
  119. package/lib/Icon/HideIcon.js +28 -0
  120. package/lib/Icon/HideIcon.js.map +1 -0
  121. package/lib/Icon/ImageIcon.js +28 -0
  122. package/lib/Icon/ImageIcon.js.map +1 -0
  123. package/lib/Icon/InfoIcon.js +28 -0
  124. package/lib/Icon/InfoIcon.js.map +1 -0
  125. package/lib/Icon/InviteIcon.js +28 -0
  126. package/lib/Icon/InviteIcon.js.map +1 -0
  127. package/lib/Icon/LeaveIcon.js +28 -0
  128. package/lib/Icon/LeaveIcon.js.map +1 -0
  129. package/lib/Icon/LinkIcon.js +42 -0
  130. package/lib/Icon/LinkIcon.js.map +1 -0
  131. package/lib/Icon/ListIcon.js +28 -0
  132. package/lib/Icon/ListIcon.js.map +1 -0
  133. package/lib/Icon/LockIcon.js +28 -0
  134. package/lib/Icon/LockIcon.js.map +1 -0
  135. package/lib/Icon/MessageIcon.js +28 -0
  136. package/lib/Icon/MessageIcon.js.map +1 -0
  137. package/lib/Icon/MinusIcon.js +28 -0
  138. package/lib/Icon/MinusIcon.js.map +1 -0
  139. package/lib/Icon/MoreIcon.js +28 -0
  140. package/lib/Icon/MoreIcon.js.map +1 -0
  141. package/lib/Icon/MuteIcon.js +28 -0
  142. package/lib/Icon/MuteIcon.js.map +1 -0
  143. package/lib/Icon/NotificationIcon.js +28 -0
  144. package/lib/Icon/NotificationIcon.js.map +1 -0
  145. package/lib/Icon/NotificationOffIcon.js +28 -0
  146. package/lib/Icon/NotificationOffIcon.js.map +1 -0
  147. package/lib/Icon/OptionsIcon.js +28 -0
  148. package/lib/Icon/OptionsIcon.js.map +1 -0
  149. package/lib/Icon/PeopleIcon.js +42 -0
  150. package/lib/Icon/PeopleIcon.js.map +1 -0
  151. package/lib/Icon/PingIcon.js +28 -0
  152. package/lib/Icon/PingIcon.js.map +1 -0
  153. package/lib/Icon/PlaneIcon.js +28 -0
  154. package/lib/Icon/PlaneIcon.js.map +1 -0
  155. package/lib/Icon/PlusIcon.js +28 -0
  156. package/lib/Icon/PlusIcon.js.map +1 -0
  157. package/lib/Icon/ProfileIcon.js +28 -0
  158. package/lib/Icon/ProfileIcon.js.map +1 -0
  159. package/lib/Icon/RecordBoldIcon.js +48 -0
  160. package/lib/Icon/RecordBoldIcon.js.map +1 -0
  161. package/lib/Icon/RecordIcon.js +30 -0
  162. package/lib/Icon/RecordIcon.js.map +1 -0
  163. package/lib/Icon/RecordPendingIcon.js +30 -0
  164. package/lib/Icon/RecordPendingIcon.js.map +1 -0
  165. package/lib/Icon/ReloadIcon.js +28 -0
  166. package/lib/Icon/ReloadIcon.js.map +1 -0
  167. package/lib/Icon/SVGIcon.js +59 -0
  168. package/lib/Icon/SVGIcon.js.map +1 -0
  169. package/lib/Icon/ScreenshareIcon.js +28 -0
  170. package/lib/Icon/ScreenshareIcon.js.map +1 -0
  171. package/lib/Icon/SearchIcon.js +28 -0
  172. package/lib/Icon/SearchIcon.js.map +1 -0
  173. package/lib/Icon/ServicesIcon.js +28 -0
  174. package/lib/Icon/ServicesIcon.js.map +1 -0
  175. package/lib/Icon/SettingsIcon.js +28 -0
  176. package/lib/Icon/SettingsIcon.js.map +1 -0
  177. package/lib/Icon/ShowIcon.js +28 -0
  178. package/lib/Icon/ShowIcon.js.map +1 -0
  179. package/lib/Icon/SignIcon.js +28 -0
  180. package/lib/Icon/SignIcon.js.map +1 -0
  181. package/lib/Icon/SpeakerIcon.js +28 -0
  182. package/lib/Icon/SpeakerIcon.js.map +1 -0
  183. package/lib/Icon/SupportIcon.js +28 -0
  184. package/lib/Icon/SupportIcon.js.map +1 -0
  185. package/lib/Icon/TeamIcon.js +28 -0
  186. package/lib/Icon/TeamIcon.js.map +1 -0
  187. package/lib/Icon/TimedIcon.js +28 -0
  188. package/lib/Icon/TimedIcon.js.map +1 -0
  189. package/lib/Icon/TrashCrossIcon.js +28 -0
  190. package/lib/Icon/TrashCrossIcon.js.map +1 -0
  191. package/lib/Icon/TrashIcon.js +28 -0
  192. package/lib/Icon/TrashIcon.js.map +1 -0
  193. package/lib/Icon/TriangleIcon.js +48 -0
  194. package/lib/Icon/TriangleIcon.js.map +1 -0
  195. package/lib/Icon/UploadIcon.js +28 -0
  196. package/lib/Icon/UploadIcon.js.map +1 -0
  197. package/lib/Icon/WireIcon.js +28 -0
  198. package/lib/Icon/WireIcon.js.map +1 -0
  199. package/lib/Icon/index.js +109 -0
  200. package/lib/Icon/index.js.map +1 -0
  201. package/lib/Identity/Animation.js +127 -0
  202. package/lib/Identity/Animation.js.map +1 -0
  203. package/lib/Identity/Avatar.js +90 -0
  204. package/lib/Identity/Avatar.js.map +1 -0
  205. package/lib/Identity/AvatarGrid.js +72 -0
  206. package/lib/Identity/AvatarGrid.js.map +1 -0
  207. package/lib/Identity/Logo.js +53 -0
  208. package/lib/Identity/Logo.js.map +1 -0
  209. package/lib/Identity/colors-v2.js +198 -0
  210. package/lib/Identity/colors-v2.js.map +1 -0
  211. package/lib/Identity/colors.js +81 -0
  212. package/lib/Identity/colors.js.map +1 -0
  213. package/lib/Identity/index.js +41 -0
  214. package/lib/Identity/index.js.map +1 -0
  215. package/lib/Identity/motions.js +85 -0
  216. package/lib/Identity/motions.js.map +1 -0
  217. package/lib/Layout/Box.js +33 -0
  218. package/lib/Layout/Box.js.map +1 -0
  219. package/lib/Layout/Column.js +46 -0
  220. package/lib/Layout/Column.js.map +1 -0
  221. package/lib/Layout/Container.js +58 -0
  222. package/lib/Layout/Container.js.map +1 -0
  223. package/lib/Layout/Content.js +33 -0
  224. package/lib/Layout/Content.js.map +1 -0
  225. package/lib/Layout/FlexBox.js +40 -0
  226. package/lib/Layout/FlexBox.js.map +1 -0
  227. package/lib/Layout/Footer.js +26 -0
  228. package/lib/Layout/Footer.js.map +1 -0
  229. package/lib/Layout/Header.js +33 -0
  230. package/lib/Layout/Header.js.map +1 -0
  231. package/lib/Layout/MatchMedia.js +85 -0
  232. package/lib/Layout/MatchMedia.js.map +1 -0
  233. package/lib/Layout/Spacer.js +28 -0
  234. package/lib/Layout/Spacer.js.map +1 -0
  235. package/lib/Layout/StyledApp.js +51 -0
  236. package/lib/Layout/StyledApp.js.map +1 -0
  237. package/lib/Layout/Theme.js +231 -0
  238. package/lib/Layout/Theme.js.map +1 -0
  239. package/lib/Layout/headerMenu/HeaderMenu.js +59 -0
  240. package/lib/Layout/headerMenu/HeaderMenu.js.map +1 -0
  241. package/lib/Layout/headerMenu/HeaderSubMenu.js +97 -0
  242. package/lib/Layout/headerMenu/HeaderSubMenu.js.map +1 -0
  243. package/lib/Layout/headerMenu/MenuContent.js +31 -0
  244. package/lib/Layout/headerMenu/MenuContent.js.map +1 -0
  245. package/lib/Layout/headerMenu/MenuItems.js +46 -0
  246. package/lib/Layout/headerMenu/MenuItems.js.map +1 -0
  247. package/lib/Layout/headerMenu/MenuLink.js +72 -0
  248. package/lib/Layout/headerMenu/MenuLink.js.map +1 -0
  249. package/lib/Layout/headerMenu/MenuOpenButton.js +57 -0
  250. package/lib/Layout/headerMenu/MenuOpenButton.js.map +1 -0
  251. package/lib/Layout/headerMenu/MenuScrollableItems.js +38 -0
  252. package/lib/Layout/headerMenu/MenuScrollableItems.js.map +1 -0
  253. package/lib/Layout/headerMenu/MenuSubLink.js +50 -0
  254. package/lib/Layout/headerMenu/MenuSubLink.js.map +1 -0
  255. package/lib/Layout/headerMenu/index.js +43 -0
  256. package/lib/Layout/headerMenu/index.js.map +1 -0
  257. package/lib/Layout/index.js +48 -0
  258. package/lib/Layout/index.js.map +1 -0
  259. package/lib/Layout/sizes.js +35 -0
  260. package/lib/Layout/sizes.js.map +1 -0
  261. package/lib/Menu/MenuModal.js +94 -0
  262. package/lib/Menu/MenuModal.js.map +1 -0
  263. package/lib/Menu/TabBar.js +59 -0
  264. package/lib/Menu/TabBar.js.map +1 -0
  265. package/lib/Menu/index.js +37 -0
  266. package/lib/Menu/index.js.map +1 -0
  267. package/lib/Misc/ButtonGroup.js +83 -0
  268. package/lib/Misc/ButtonGroup.js.map +1 -0
  269. package/lib/Misc/IconButton.js +93 -0
  270. package/lib/Misc/IconButton.js.map +1 -0
  271. package/lib/Misc/IsInViewport.js +63 -0
  272. package/lib/Misc/IsInViewport.js.map +1 -0
  273. package/lib/Misc/Loading.js +64 -0
  274. package/lib/Misc/Loading.js.map +1 -0
  275. package/lib/Misc/Pagination.js +70 -0
  276. package/lib/Misc/Pagination.js.map +1 -0
  277. package/lib/Misc/Pill.js +75 -0
  278. package/lib/Misc/Pill.js.map +1 -0
  279. package/lib/Misc/childrenWithDefaultProps.js +38 -0
  280. package/lib/Misc/childrenWithDefaultProps.js.map +1 -0
  281. package/lib/Misc/index.js +44 -0
  282. package/lib/Misc/index.js.map +1 -0
  283. package/lib/Misc/useLongTouch.js +45 -0
  284. package/lib/Misc/useLongTouch.js.map +1 -0
  285. package/lib/Misc/useTimeout.js +47 -0
  286. package/lib/Misc/useTimeout.js.map +1 -0
  287. package/lib/Modal/Modal.js +134 -0
  288. package/lib/Modal/Modal.js.map +1 -0
  289. package/lib/Modal/Overlay.js +92 -0
  290. package/lib/Modal/Overlay.js.map +1 -0
  291. package/lib/Modal/index.js +39 -0
  292. package/lib/Modal/index.js.map +1 -0
  293. package/lib/Text/Heading.js +88 -0
  294. package/lib/Text/Heading.js.map +1 -0
  295. package/lib/Text/Label.js +52 -0
  296. package/lib/Text/Label.js.map +1 -0
  297. package/lib/Text/Line.js +35 -0
  298. package/lib/Text/Line.js.map +1 -0
  299. package/lib/Text/Link.js +71 -0
  300. package/lib/Text/Link.js.map +1 -0
  301. package/lib/Text/Paragraph.js +53 -0
  302. package/lib/Text/Paragraph.js.map +1 -0
  303. package/lib/Text/Text.js +63 -0
  304. package/lib/Text/Text.js.map +1 -0
  305. package/lib/Text/TextLink.js +44 -0
  306. package/lib/Text/TextLink.js.map +1 -0
  307. package/lib/Text/Title.js +43 -0
  308. package/lib/Text/Title.js.map +1 -0
  309. package/lib/Text/index.js +43 -0
  310. package/lib/Text/index.js.map +1 -0
  311. package/lib/index.js +44 -0
  312. package/lib/index.js.map +1 -0
  313. package/lib/mediaQueries.js +45 -0
  314. package/lib/mediaQueries.js.map +1 -0
  315. package/lib/util.js +35 -0
  316. package/lib/util.js.map +1 -0
  317. package/package.json +4 -4
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2018 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __rest = (this && this.__rest) || function (s, e) {
21
+ var t = {};
22
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
23
+ t[p] = s[p];
24
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
25
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
26
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
27
+ t[p[i]] = s[p[i]];
28
+ }
29
+ return t;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.filterButtonProps = exports.Button = exports.buttonStyle = exports.ButtonVariant = void 0;
33
+ /** @jsx jsx */
34
+ const react_1 = require("@emotion/react");
35
+ const Identity_1 = require("../Identity");
36
+ const motions_1 = require("../Identity/motions");
37
+ const Misc_1 = require("../Misc");
38
+ const Text_1 = require("../Text");
39
+ const util_1 = require("../util");
40
+ var ButtonVariant;
41
+ (function (ButtonVariant) {
42
+ ButtonVariant["PRIMARY"] = "primary";
43
+ ButtonVariant["SECONDARY"] = "secondary";
44
+ ButtonVariant["TERTIARY"] = "tertiary";
45
+ ButtonVariant["QUATERNARY"] = "quaternary";
46
+ ButtonVariant["SEND"] = "send";
47
+ })(ButtonVariant = exports.ButtonVariant || (exports.ButtonVariant = {}));
48
+ const buttonStyle = (theme, _a) => {
49
+ var { variant = ButtonVariant.PRIMARY, backgroundColor, block = false, disabled = false, noCapital = false, bold = true, center = true, color = Identity_1.COLOR.WHITE, fontSize = '16px', noWrap = true, textTransform = 'none', truncate = true } = _a, props = __rest(_a, ["variant", "backgroundColor", "block", "disabled", "noCapital", "bold", "center", "color", "fontSize", "noWrap", "textTransform", "truncate"]);
50
+ return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (0, Text_1.textStyle)(theme, Object.assign({ block,
51
+ bold,
52
+ center,
53
+ disabled,
54
+ fontSize,
55
+ noWrap,
56
+ textTransform,
57
+ truncate }, props))), { border: 0, cursor: disabled ? 'default' : 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'center', marginBottom: '16px', padding: 0, outline: 'none', textDecoration: 'none', touchAction: 'manipulation', transition: motions_1.defaultTransition, width: block ? '100%' : 'auto', '&:hover, &:focus': {
58
+ textDecoration: 'none',
59
+ } }), (variant !== ButtonVariant.TERTIARY && Object.assign({ borderRadius: variant === ButtonVariant.SEND ? '100%' : '16px', height: variant === ButtonVariant.SEND ? '40px' : '48px', lineHeight: variant === ButtonVariant.SEND ? '40px' : '48px' }, (variant !== ButtonVariant.SEND && {
60
+ maxWidth: '100%',
61
+ minWidth: '125px',
62
+ padding: '0 16px',
63
+ })))), (variant === ButtonVariant.PRIMARY && Object.assign({ backgroundColor: backgroundColor || (disabled ? theme.Button.primaryDisabledBg : theme.Button.primaryBg), color: disabled ? theme.Button.primaryDisabledText : theme.general.contrastColor }, (!disabled && {
64
+ '&:hover, &:focus': {
65
+ backgroundColor: theme.Button.primaryHoverBg,
66
+ },
67
+ '&:focus': {
68
+ border: `1px solid ${theme.Button.primaryFocusBorder}`,
69
+ },
70
+ '&:active': {
71
+ backgroundColor: theme.Button.primaryActiveBg,
72
+ border: `1px solid ${theme.Button.primaryActiveBorder}`,
73
+ color: Identity_1.COLOR.WHITE,
74
+ },
75
+ })))), (variant === ButtonVariant.SECONDARY && Object.assign({ backgroundColor: backgroundColor || (disabled ? theme.IconButton.primaryDisabledBgColor : theme.IconButton.primaryBgColor), border: `1px solid ${theme.IconButton.primaryBorderColor}`, color: disabled ? theme.Input.placeholderColor : theme.general.color }, (!disabled && {
76
+ '&:hover, &:focus': {
77
+ border: `1px solid ${theme.Button.secondaryHoverBorder}`,
78
+ },
79
+ '&:focus': {
80
+ color: theme.IconButton.primaryActiveFillColor,
81
+ },
82
+ '&:active': {
83
+ backgroundColor: theme.Button.secondaryActiveBg,
84
+ border: `1px solid ${theme.Button.secondaryActiveBorder}`,
85
+ color: theme.general.primaryColor,
86
+ },
87
+ })))), (variant === ButtonVariant.TERTIARY && Object.assign({ backgroundColor: backgroundColor || (disabled ? theme.Button.tertiarydisabledBg : theme.Button.tertiaryBg), border: disabled ? `1px solid ${theme.Button.tertiaryDisabledBorder}` : `1px solid ${theme.Button.tertiaryBorder}`, borderRadius: '12px', color: disabled ? theme.Input.placeholderColor : theme.general.color, fontSize: '14px', fontWeight: 700, lineHeight: '24px', padding: '4px 8px', '& > svg > path': {
88
+ fill: disabled ? theme.Input.placeholderColor : theme.general.color,
89
+ } }, (!disabled && {
90
+ '&:hover, &:focus': {
91
+ backgroundColor: theme.Button.tertiaryHoverBg,
92
+ border: `1px solid ${theme.Button.tertiaryHoverBorder}`,
93
+ },
94
+ '&:focus': {
95
+ border: `1px solid ${theme.general.focusColor}`,
96
+ },
97
+ '&:active': {
98
+ backgroundColor: theme.Button.tertiaryActiveBg,
99
+ color: theme.IconButton.primaryActiveFillColor,
100
+ '& > svg > path': {
101
+ fill: theme.IconButton.primaryActiveFillColor,
102
+ },
103
+ },
104
+ })))), (variant === ButtonVariant.QUATERNARY && Object.assign({ backgroundColor: backgroundColor || (disabled ? Identity_1.COLOR_V2.GRAY_50 : Identity_1.COLOR_V2.GREEN), color: disabled ? Identity_1.COLOR_V2.GRAY_80 : Identity_1.COLOR_V2.WHITE, lineHeight: '24px' }, (!disabled && {
105
+ '&:hover, &:focus': {
106
+ backgroundColor: Identity_1.COLOR_V2.GREEN_LIGHT_600,
107
+ },
108
+ '&:focus': {
109
+ border: `1px solid ${Identity_1.COLOR_V2.GREEN_LIGHT_700}`,
110
+ },
111
+ '&:active': {
112
+ backgroundColor: Identity_1.COLOR_V2.GREEN_LIGHT_700,
113
+ },
114
+ })))), (variant === ButtonVariant.SEND && Object.assign({ backgroundColor: backgroundColor || (disabled ? Identity_1.COLOR_V2.GRAY_70 : Identity_1.COLOR_V2.BLUE), width: '40px' }, (!disabled && {
115
+ '&:hover, &:focus': {
116
+ backgroundColor: Identity_1.COLOR_V2.BLUE_LIGHT_600,
117
+ },
118
+ '&:focus': {
119
+ border: `1px solid ${Identity_1.COLOR_V2.BLUE_LIGHT_800}`,
120
+ },
121
+ '&:active': {
122
+ backgroundColor: Identity_1.COLOR_V2.BLUE_LIGHT_700,
123
+ },
124
+ })))));
125
+ };
126
+ exports.buttonStyle = buttonStyle;
127
+ const Button = (_a) => {
128
+ var { showLoading, children, loadingColor = Identity_1.COLOR.WHITE } = _a, props = __rest(_a, ["showLoading", "children", "loadingColor"]);
129
+ return ((0, react_1.jsx)("button", Object.assign({ css: (theme) => (0, exports.buttonStyle)(theme, props) }, (0, exports.filterButtonProps)(props)), showLoading ? (0, react_1.jsx)(Misc_1.Loading, { size: 30, color: loadingColor, style: { display: 'flex', margin: 'auto' } }) : children));
130
+ };
131
+ exports.Button = Button;
132
+ const filterButtonProps = (props) => {
133
+ return (0, util_1.filterProps)((0, Text_1.filterTextProps)(props), ['backgroundColor', 'noCapital']);
134
+ };
135
+ exports.filterButtonProps = filterButtonProps;
136
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/Form/Button.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;AAEH,eAAe;AACf,0CAA8C;AAE9C,0CAA4C;AAC5C,iDAAsD;AAEtD,kCAAgC;AAChC,kCAA8D;AAC9D,kCAAoC;AAEpC,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,8BAAa,CAAA;AACf,CAAC,EANW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAMxB;AAUM,MAAM,WAAW,GAA0D,CAChF,KAAK,EACL,EAcC,EACD,EAAE;QAfF,EACE,OAAO,GAAG,aAAa,CAAC,OAAO,EAC/B,eAAe,EACf,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,IAAI,EACb,KAAK,GAAG,gBAAK,CAAC,KAAK,EACnB,QAAQ,GAAG,MAAM,EACjB,MAAM,GAAG,IAAI,EACb,aAAa,GAAG,MAAM,EACtB,QAAQ,GAAG,IAAI,OAEhB,EADI,KAAK,cAbV,8IAcC,CADS;IAEP,OAAA,qHACA,IAAA,gBAAS,EAAC,KAAK,kBAChB,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,aAAa;QACb,QAAQ,IACL,KAAK,EACR,KACF,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACxC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,QAAQ,EACpB,cAAc,EAAE,QAAQ,EACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,2BAAiB,EAC7B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAC9B,kBAAkB,EAAE;YAClB,cAAc,EAAE,MAAM;SACvB,KACE,CAAC,OAAO,KAAK,aAAa,CAAC,QAAQ,oBACpC,YAAY,EAAE,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAC9D,MAAM,EAAE,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACxD,UAAU,EAAE,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IACzD,CAAC,OAAO,KAAK,aAAa,CAAC,IAAI,IAAI;QACpC,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,QAAQ;KAClB,CAAC,CACH,CAAC,GACC,CAAC,OAAO,KAAK,aAAa,CAAC,OAAO,oBACnC,eAAe,EAAE,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EACxG,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,IAC7E,CAAC,CAAC,QAAQ,IAAI;QACf,kBAAkB,EAAE;YAClB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;SAC7C;QACD,SAAS,EAAE;YACT,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;SACvD;QACD,UAAU,EAAE;YACV,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;YAC7C,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACvD,KAAK,EAAE,gBAAK,CAAC,KAAK;SACnB;KACF,CAAC,CACH,CAAC,GACC,CAAC,OAAO,KAAK,aAAa,CAAC,SAAS,oBACrC,eAAe,EACb,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAC3G,MAAM,EAAE,aAAa,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAC1D,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IACjE,CAAC,CAAC,QAAQ,IAAI;QACf,kBAAkB,EAAE;YAClB,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;SACzD;QACD,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,sBAAsB;SAC/C;QACD,UAAU,EAAE;YACV,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAiB;YAC/C,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE;YACzD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;SAClC;KACF,CAAC,CACH,CAAC,GACC,CAAC,OAAO,KAAK,aAAa,CAAC,QAAQ,oBACpC,eAAe,EAAE,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAC1G,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,EAClH,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EACpE,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,GAAG,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,SAAS,EAClB,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;SACpE,IACE,CAAC,CAAC,QAAQ,IAAI;QACf,kBAAkB,EAAE;YAClB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;YAC7C,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE;SACxD;QACD,SAAS,EAAE;YACT,MAAM,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;SAChD;QACD,UAAU,EAAE;YACV,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB;YAC9C,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,sBAAsB;YAC9C,gBAAgB,EAAE;gBAChB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,sBAAsB;aAC9C;SACF;KACF,CAAC,CACH,CAAC,GACC,CAAC,OAAO,KAAK,aAAa,CAAC,UAAU,oBACtC,eAAe,EAAE,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAQ,CAAC,KAAK,CAAC,EAClF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAQ,CAAC,KAAK,EACnD,UAAU,EAAE,MAAM,IACf,CAAC,CAAC,QAAQ,IAAI;QACf,kBAAkB,EAAE;YAClB,eAAe,EAAE,mBAAQ,CAAC,eAAe;SAC1C;QACD,SAAS,EAAE;YACT,MAAM,EAAE,aAAa,mBAAQ,CAAC,eAAe,EAAE;SAChD;QACD,UAAU,EAAE;YACV,eAAe,EAAE,mBAAQ,CAAC,eAAe;SAC1C;KACF,CAAC,CACH,CAAC,GACC,CAAC,OAAO,KAAK,aAAa,CAAC,IAAI,oBAChC,eAAe,EAAE,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAQ,CAAC,IAAI,CAAC,EACjF,KAAK,EAAE,MAAM,IACV,CAAC,CAAC,QAAQ,IAAI;QACf,kBAAkB,EAAE;YAClB,eAAe,EAAE,mBAAQ,CAAC,cAAc;SACzC;QACD,SAAS,EAAE;YACT,MAAM,EAAE,aAAa,mBAAQ,CAAC,cAAc,EAAE;SAC/C;QACD,UAAU,EAAE;YACV,eAAe,EAAE,mBAAQ,CAAC,cAAc;SACzC;KACF,CAAC,CACH,CAAC,EACF,CAAA;CAAA,CAAC;AAtJU,QAAA,WAAW,eAsJrB;AAEI,MAAM,MAAM,GAAG,CAAC,EAA0E,EAAE,EAAE;QAA9E,EAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,gBAAK,CAAC,KAAK,OAAwB,EAAnB,KAAK,cAA5D,2CAA6D,CAAD;IAAmB,OAAA,CACpG,2CAAQ,GAAG,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,IAAM,IAAA,yBAAiB,EAAC,KAAK,CAAC,GACnF,WAAW,CAAC,CAAC,CAAC,iBAAC,cAAO,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,GAAI,CAAC,CAAC,CAAC,QAAQ,CACvG,CACV,CAAA;CAAA,CAAC;AAJW,QAAA,MAAM,UAIjB;AAEK,MAAM,iBAAiB,GAAG,CAAC,KAAkB,EAAE,EAAE;IACtD,OAAO,IAAA,kBAAW,EAAC,IAAA,sBAAe,EAAC,KAAK,CAAgB,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9F,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2018 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __rest = (this && this.__rest) || function (s, e) {
21
+ var t = {};
22
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
23
+ t[p] = s[p];
24
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
25
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
26
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
27
+ t[p[i]] = s[p[i]];
28
+ }
29
+ return t;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.ButtonLink = exports.buttonLinkStyle = void 0;
33
+ /** @jsx jsx */
34
+ const react_1 = require("@emotion/react");
35
+ const Misc_1 = require("../Misc");
36
+ const Identity_1 = require("../Identity");
37
+ const util_1 = require("../util");
38
+ const Text_1 = require("../Text");
39
+ const Button_1 = require("./Button");
40
+ const buttonLinkStyle = (theme, props) => (Object.assign(Object.assign({}, (0, Button_1.buttonStyle)(theme, props)), { display: 'inline-flex !important' }));
41
+ exports.buttonLinkStyle = buttonLinkStyle;
42
+ const filterButtonLinkProps = (props) => {
43
+ return (0, util_1.filterProps)((0, Text_1.filterTextProps)(props), [
44
+ 'backgroundColor',
45
+ 'disabled',
46
+ 'noCapital',
47
+ ]);
48
+ };
49
+ const ButtonLink = (_a) => {
50
+ var { children, showLoading, loadingColor = Identity_1.COLOR.WHITE } = _a, props = __rest(_a, ["children", "showLoading", "loadingColor"]);
51
+ return ((0, react_1.jsx)("a", Object.assign({ css: (theme) => (0, exports.buttonLinkStyle)(theme, props) }, filterButtonLinkProps(props)), showLoading ? (0, react_1.jsx)(Misc_1.Loading, { size: 30, color: loadingColor, style: { display: 'flex', margin: 'auto' } }) : children));
52
+ };
53
+ exports.ButtonLink = ButtonLink;
54
+ //# sourceMappingURL=ButtonLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonLink.js","sourceRoot":"","sources":["../../src/Form/ButtonLink.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;AAEH,eAAe;AACf,0CAA8C;AAE9C,kCAAgC;AAChC,0CAAkC;AAClC,kCAAoC;AACpC,kCAAwC;AACxC,qCAAkD;AAG3C,MAAM,eAAe,GAAuE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,iCAChH,IAAA,oBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,KAC5B,OAAO,EAAE,wBAAwB,IACjC,CAAC;AAHU,QAAA,eAAe,mBAGzB;AAEH,MAAM,qBAAqB,GAAG,CAAC,KAAqC,EAAE,EAAE;IACtE,OAAO,IAAA,kBAAW,EAAC,IAAA,sBAAe,EAAC,KAAK,CAAmC,EAAE;QAC3E,iBAAiB;QACjB,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,EAKM,EAAE,EAAE;QALV,EACzB,QAAQ,EACR,WAAW,EACX,YAAY,GAAG,gBAAK,CAAC,KAAK,OAEK,EAD5B,KAAK,cAJiB,2CAK1B,CADS;IAC4B,OAAA,CACpC,sCAAG,GAAG,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,KAAK,EAAE,KAAK,CAAC,IAAM,qBAAqB,CAAC,KAAK,CAAC,GACtF,WAAW,CAAC,CAAC,CAAC,iBAAC,cAAO,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,GAAI,CAAC,CAAC,CAAC,QAAQ,CAC5G,CACL,CAAA;CAAA,CAAC;AATW,QAAA,UAAU,cASrB"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2018 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ var __rest = (this && this.__rest) || function (s, e) {
44
+ var t = {};
45
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
46
+ t[p] = s[p];
47
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
48
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
49
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
50
+ t[p[i]] = s[p[i]];
51
+ }
52
+ return t;
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.CheckboxLabel = exports.Checkbox = void 0;
56
+ /** @jsx jsx */
57
+ const react_1 = require("@emotion/react");
58
+ const react_2 = __importStar(require("react"));
59
+ const Text_1 = require("../Text");
60
+ const Input_1 = require("./Input");
61
+ const StyledLabel = (_a) => {
62
+ var { disabled, markInvalid, aligncenter = false, labelBeforeCheckbox = false, children } = _a, props = __rest(_a, ["disabled", "markInvalid", "aligncenter", "labelBeforeCheckbox", "children"]);
63
+ return ((0, react_1.jsx)("label", Object.assign({ css: (theme) => (Object.assign(Object.assign(Object.assign(Object.assign({ [`.${Input_1.INPUT_CLASSNAME}:checked + &::before`]: {
64
+ background: `${disabled ? theme.Checkbox.disablecheckedBgColor : theme.general.primaryColor}`,
65
+ borderColor: theme.general.primaryColor,
66
+ }, [`.${Input_1.INPUT_CLASSNAME}:checked + & > svg`]: {
67
+ fill: theme.general.backgroundColor,
68
+ }, [`.${Input_1.INPUT_CLASSNAME} + & > svg`]: Object.assign({ fill: 'none', position: 'absolute', top: '50%', transform: 'translateY(-50%)' }, (labelBeforeCheckbox
69
+ ? {
70
+ right: '0.75rem',
71
+ }
72
+ : {
73
+ left: '0.25rem',
74
+ })) }, (!disabled && {
75
+ [`.${Input_1.INPUT_CLASSNAME}:hover + &::before`]: {
76
+ borderColor: theme.general.primaryColor,
77
+ },
78
+ })), { [`.${Input_1.INPUT_CLASSNAME} + &::before`]: Object.assign(Object.assign({ background: disabled ? theme.Checkbox.disableBgColor : theme.Checkbox.background }, (!disabled
79
+ ? {
80
+ border: markInvalid
81
+ ? `2px solid ${theme.Checkbox.invalidBorderColor}`
82
+ : `2px solid ${theme.Checkbox.border}`,
83
+ }
84
+ : {
85
+ border: `2px solid ${theme.Checkbox.disableBorderColor}`,
86
+ })), { borderRadius: '3px', boxSizing: 'border-box', content: '""', display: 'inline-block', width: '22px', height: '22px', lineHeight: 1.4, margin: '0 8px 0 0px', color: theme.general.color }) }), (labelBeforeCheckbox && {
87
+ flexDirection: 'row-reverse',
88
+ justifyContent: 'space-between',
89
+ })), { alignItems: 'center', position: 'relative', margin: '0 0 0 -16px', width: aligncenter ? 'auto' : '100%', lineHeight: 1.4, display: 'flex', opacity: disabled ? 0.56 : 1, cursor: disabled ? 'not-allowed' : 'pointer', borderRadius: '4px' })) }, props),
90
+ children,
91
+ (0, react_1.jsx)("svg", { width: "15", height: "13", viewBox: "0 0 16 13", xmlns: "http://www.w3.org/2000/svg" },
92
+ (0, react_1.jsx)("path", { d: "M5.65685 12.0711L15.9842 1.62738L14.57 0.213167L5.65685 9.24264L1.41421 5L0 6.41421L5.65685 12.0711Z" }))));
93
+ };
94
+ exports.Checkbox = react_2.default.forwardRef((_a, ref) => {
95
+ var { id = (0, react_2.useId)(), children, style, disabled, wrapperCSS = {}, markInvalid, aligncenter, labelBeforeCheckbox, outlineOffset = '0.4rem' } = _a, props = __rest(_a, ["id", "children", "style", "disabled", "wrapperCSS", "markInvalid", "aligncenter", "labelBeforeCheckbox", "outlineOffset"]);
96
+ return ((0, react_1.jsx)("div", { css: (theme) => (Object.assign({ alignItems: 'center', display: 'flex', justifyContent: 'flex-start', position: 'relative', left: '-0.3rem', [`.${Input_1.INPUT_CLASSNAME}:focus-visible + label`]: {
97
+ outline: `1px solid ${theme.general.primaryColor}`,
98
+ outlineOffset: outlineOffset,
99
+ } }, wrapperCSS)), style: style },
100
+ (0, react_1.jsx)("input", Object.assign({ type: "checkbox", id: id, style: {
101
+ height: '22px',
102
+ marginBottom: '0',
103
+ opacity: 0,
104
+ width: '22px',
105
+ cursor: disabled ? 'not-allowed' : 'pointer',
106
+ }, disabled: disabled, ref: ref, className: Input_1.INPUT_CLASSNAME }, props)),
107
+ (0, react_1.jsx)(StyledLabel, { htmlFor: id, disabled: disabled, markInvalid: markInvalid, aligncenter: aligncenter, labelBeforeCheckbox: labelBeforeCheckbox }, children)));
108
+ });
109
+ const CheckboxLabel = (_a) => {
110
+ var props = __rest(_a, []);
111
+ return ((0, react_1.jsx)(Text_1.Text, Object.assign({ css: (theme) => (Object.assign({}, (0, Text_1.textStyle)(theme, Object.assign({}, props)))) }, props)));
112
+ };
113
+ exports.CheckboxLabel = CheckboxLabel;
114
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/Form/Checkbox.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,0CAAmC;AACnC,+CAAmC;AAGnC,kCAAmD;AACnD,mCAAoD;AASpD,MAAM,WAAW,GAAG,CAAC,EAOF,EAAE,EAAE;QAPF,EACnB,QAAQ,EACR,WAAW,EACX,WAAW,GAAG,KAAK,EACnB,mBAAmB,GAAG,KAAK,EAC3B,QAAQ,OAES,EADd,KAAK,cANW,6EAOpB,CADS;IAER,OAAO,CACL,0CACE,GAAG,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,2DACrB,CAAC,IAAI,uBAAe,sBAAsB,CAAC,EAAE;gBAC3C,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC7F,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;aACxC,EACD,CAAC,IAAI,uBAAe,oBAAoB,CAAC,EAAE;gBACzC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe;aACpC,EACD,CAAC,IAAI,uBAAe,YAAY,CAAC,kBAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,UAAU,EACpB,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,kBAAkB,IAC1B,CAAC,mBAAmB;gBACrB,CAAC,CAAC;oBACE,KAAK,EAAE,SAAS;iBACjB;gBACH,CAAC,CAAC;oBACE,IAAI,EAAE,SAAS;iBAChB,CAAC,KAEL,CAAC,CAAC,QAAQ,IAAI;YACf,CAAC,IAAI,uBAAe,oBAAoB,CAAC,EAAE;gBACzC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;aACxC;SACF,CAAC,KACF,CAAC,IAAI,uBAAe,cAAc,CAAC,gCACjC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,IAC7E,CAAC,CAAC,QAAQ;gBACX,CAAC,CAAC;oBACE,MAAM,EAAE,WAAW;wBACjB,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE;wBAClD,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;iBACzC;gBACH,CAAC,CAAC;oBACE,MAAM,EAAE,aAAa,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE;iBACzD,CAAC,KACN,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,GAAG,EACf,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,QAEzB,CAAC,mBAAmB,IAAI;YACzB,aAAa,EAAE,aAAa;YAC5B,cAAc,EAAE,eAAe;SAChC,CAAC,KACF,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACpC,UAAU,EAAE,GAAG,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC5B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAC5C,YAAY,EAAE,KAAK,IACnB,IACE,KAAK;QAER,QAAQ;QACT,0BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B;YAChF,2BAAM,CAAC,EAAC,sGAAsG,GAAG,CAC7G,CACA,CACT,CAAC;AACJ,CAAC,CAAC;AASW,QAAA,QAAQ,GAA8C,eAAK,CAAC,UAAU,CAIjF,CACE,EAWC,EACD,GAAG,EACH,EAAE;QAbF,EACE,EAAE,GAAG,IAAA,aAAK,GAAE,EACZ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,GAAG,QAAQ,OAEzB,EADI,KAAK,cAVV,2HAWC,CADS;IAGP,OAAA,CACH,0BACE,GAAG,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,iBACrB,UAAU,EAAE,QAAQ,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,YAAY,EAC5B,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,SAAS,EACf,CAAC,IAAI,uBAAe,wBAAwB,CAAC,EAAE;gBAC7C,OAAO,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;gBAClD,aAAa,EAAE,aAAa;aAC7B,IACE,UAAU,EACb,EACF,KAAK,EAAE,KAAK;QAEZ,0CACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,EAAE,EACN,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,GAAG;gBACjB,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;aAC7C,EACD,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,uBAAe,IACtB,KAAK,EACT;QAEF,iBAAC,WAAW,IACV,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,mBAAmB,IAEvC,QAAQ,CACG,CACV,CACP,CAAA;CAAA,CACF,CAAC;AAIK,MAAM,aAAa,GAAG,CAAC,EAA8B,EAAE,EAAE;QAA9B,KAAK,cAAT,EAAU,CAAD;IAA0B,OAAA,CAC/D,iBAAC,WAAI,kBACH,GAAG,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,mBAClB,IAAA,gBAAS,EAAC,KAAK,oBACb,KAAK,EACR,EACF,IACE,KAAK,EACT,CACH,CAAA;CAAA,CAAC;AATW,QAAA,aAAa,iBASxB"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2018 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.CodeInput = void 0;
45
+ /** @jsx jsx */
46
+ const react_1 = require("@emotion/react");
47
+ const react_2 = __importStar(require("react"));
48
+ const util_1 = require("../util");
49
+ const Input_1 = require("./Input");
50
+ const Identity_1 = require("../Identity");
51
+ const CodeInputWrapper = (props) => ((0, react_1.jsx)("div", Object.assign({ css: {
52
+ display: 'flex',
53
+ justifyContent: 'center',
54
+ } }, props)));
55
+ const digitInputStyle = (theme, props) => (Object.assign(Object.assign({}, (0, Input_1.inputStyle)(theme, props)), { '& + &': {
56
+ marginLeft: 'min(19px, 2vw)',
57
+ }, '&:hover': {
58
+ boxShadow: `0 0 0 1px ${Identity_1.COLOR_V2.GRAY_60}`,
59
+ }, fontSize: '24px', lineHeight: '28px', borderRadius: '12px', padding: 0, textAlign: 'center', width: 'min(48px, 13vw)', height: '56px' }));
60
+ const DigitInput = react_2.default.forwardRef((props, ref) => (0, react_1.jsx)("input", Object.assign({ ref: ref, css: (theme) => digitInputStyle(theme, props) }, props, { type: "tel" })));
61
+ const CodeInput = ({ style, digits = 6, autoFocus = false, markInvalid, onCodeComplete = util_1.noop, disabled, }) => {
62
+ const [values, setValues] = (0, react_2.useState)(Array(digits).fill(''));
63
+ const inputs = Array(digits);
64
+ const forceSelection = (event) => {
65
+ const target = event.target;
66
+ target.select();
67
+ };
68
+ const forceSelectionPreventDefault = (event) => {
69
+ forceSelection(event);
70
+ event.preventDefault();
71
+ };
72
+ const nextField = (currentFieldIndex) => {
73
+ const nextFieldIndex = currentFieldIndex + 1;
74
+ if (nextFieldIndex < digits) {
75
+ inputs[nextFieldIndex].focus();
76
+ }
77
+ };
78
+ const previousField = (currentFieldIndex) => {
79
+ if (currentFieldIndex > 0) {
80
+ inputs[currentFieldIndex - 1].focus();
81
+ }
82
+ };
83
+ const setValue = (fieldIndex, value) => {
84
+ if (/^[0-9]?$/.test(value)) {
85
+ const valuesCopy = values.slice();
86
+ valuesCopy[fieldIndex] = value;
87
+ setValues(valuesCopy);
88
+ if (value.length) {
89
+ nextField(fieldIndex);
90
+ }
91
+ }
92
+ };
93
+ const handleKeyDown = (fieldIndex, { key }) => {
94
+ switch (key) {
95
+ case 'Backspace':
96
+ setValue(fieldIndex, '');
97
+ previousField(fieldIndex);
98
+ break;
99
+ case 'ArrowLeft':
100
+ previousField(fieldIndex);
101
+ break;
102
+ case 'ArrowRight':
103
+ nextField(fieldIndex);
104
+ break;
105
+ }
106
+ if (/^[0-9]$/.test(key)) {
107
+ setValue(fieldIndex, key);
108
+ }
109
+ };
110
+ const handlePaste = (fieldIndex, event) => {
111
+ const pastedValue = event.clipboardData.getData('Text');
112
+ const cleanedPaste = pastedValue.replace(/[^0-9]/g, '');
113
+ if (/^[0-9]+$/.test(cleanedPaste)) {
114
+ setValues(values.slice(0, fieldIndex).concat(cleanedPaste.split('')).slice(0, digits));
115
+ }
116
+ };
117
+ (0, react_2.useEffect)(() => {
118
+ const completeCode = values.join('');
119
+ if (completeCode.length === digits) {
120
+ onCodeComplete(completeCode);
121
+ }
122
+ }, [values]);
123
+ return ((0, react_1.jsx)(CodeInputWrapper, { style: style }, Array.from({ length: digits }, (_, index) => ((0, react_1.jsx)(DigitInput, { autoFocus: index === 0 && autoFocus, key: index, onPaste: event => handlePaste(index, event), onFocus: forceSelection, onMouseDown: forceSelectionPreventDefault, onTouchStart: forceSelectionPreventDefault, onKeyDown: event => handleKeyDown(index, event), onKeyUp: forceSelection, markInvalid: markInvalid, ref: node => (inputs[index] = node), value: values[index], onChange: () => { }, disabled: disabled })))));
124
+ };
125
+ exports.CodeInput = CodeInput;
126
+ //# sourceMappingURL=CodeInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeInput.js","sourceRoot":"","sources":["../../src/Form/CodeInput.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2022 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __rest = (this && this.__rest) || function (s, e) {
21
+ var t = {};
22
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
23
+ t[p] = s[p];
24
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
25
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
26
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
27
+ t[p[i]] = s[p[i]];
28
+ }
29
+ return t;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.DropFileInput = exports.dropFileZonDescriptionStyle = exports.dropFileZoneHeadingStyle = exports.dropFileZoneLabelStyle = exports.dropFileZoneWrapperStyle = exports.dropFileWrapperStyle = void 0;
33
+ /** @jsx jsx */
34
+ const react_1 = require("@emotion/react");
35
+ const react_2 = require("react");
36
+ const Identity_1 = require("../Identity");
37
+ const Icon_1 = require("../Icon");
38
+ const Layout_1 = require("../Layout");
39
+ const visuallyHiddenStyles = {
40
+ clip: 'rect(0 0 0 0)',
41
+ clipPath: 'inset(50%)',
42
+ height: '1px',
43
+ overflow: 'hidden',
44
+ position: 'absolute',
45
+ whiteSpace: 'nowrap',
46
+ width: '1px',
47
+ };
48
+ exports.dropFileWrapperStyle = {
49
+ maxWidth: '330px',
50
+ };
51
+ const dropFileZoneWrapperStyle = (theme, isDraggedOver) => ({
52
+ width: '100%',
53
+ padding: '28px 12px',
54
+ border: `1px dashed ${theme.general.primaryColor}`,
55
+ borderBottomWidth: '2px',
56
+ borderRadius: '6px',
57
+ textAlign: 'center',
58
+ backgroundColor: isDraggedOver ? theme.general.backgroundColor : Identity_1.COLOR.WHITE,
59
+ fontWeight: 400,
60
+ fontSize: '12px',
61
+ lineHeight: '13px',
62
+ color: Identity_1.COLOR.GRAY,
63
+ });
64
+ exports.dropFileZoneWrapperStyle = dropFileZoneWrapperStyle;
65
+ const dropFileZoneLabelStyle = theme => ({
66
+ color: theme.general.primaryColor,
67
+ cursor: 'pointer',
68
+ ':focus-within': {
69
+ outline: `1px solid ${theme.general.primaryColor}`,
70
+ },
71
+ ':hover': {
72
+ textDecoration: 'underline',
73
+ },
74
+ });
75
+ exports.dropFileZoneLabelStyle = dropFileZoneLabelStyle;
76
+ exports.dropFileZoneHeadingStyle = {
77
+ display: 'block',
78
+ whiteSpace: 'pre-line',
79
+ };
80
+ exports.dropFileZonDescriptionStyle = {
81
+ marginTop: '12px',
82
+ fontWeight: 400,
83
+ fontSize: '10px',
84
+ lineHeight: '13px',
85
+ color: Identity_1.COLOR.GRAY,
86
+ whiteSpace: 'pre-line',
87
+ };
88
+ exports.DropFileInput = (0, react_2.forwardRef)((_a, ref) => {
89
+ var { onFilesUploaded, onInvalidFilesDropError, dropFileZoneWrapperCSS, labelText, headingText, description, accept, multiple } = _a, inputProps = __rest(_a, ["onFilesUploaded", "onInvalidFilesDropError", "dropFileZoneWrapperCSS", "labelText", "headingText", "description", "accept", "multiple"]);
90
+ const [isDraggedOver, setIsDraggedOver] = (0, react_2.useState)(false);
91
+ const resetDraggedOver = () => setIsDraggedOver(false);
92
+ const handleDragOver = (event) => {
93
+ event.preventDefault();
94
+ event.stopPropagation();
95
+ event.dataTransfer.dropEffect = 'copy';
96
+ if (event.dataTransfer.items.length > 0) {
97
+ setIsDraggedOver(true);
98
+ }
99
+ };
100
+ const handleDrop = (event) => {
101
+ event.preventDefault();
102
+ event.stopPropagation();
103
+ resetDraggedOver();
104
+ const { files } = event.dataTransfer;
105
+ if (files.length < 1) {
106
+ return;
107
+ }
108
+ const filesArr = multiple ? Array.from(files) : [files[0]];
109
+ const areFilesValid = !!accept
110
+ ? filesArr.every(file => accept
111
+ .split(',')
112
+ .map(v => v.trim())
113
+ .includes(file.type))
114
+ : true;
115
+ if (!areFilesValid) {
116
+ onInvalidFilesDropError();
117
+ return;
118
+ }
119
+ onFilesUploaded(filesArr);
120
+ };
121
+ const handleChange = (event) => {
122
+ const { files } = event.target;
123
+ if (files.length < 1) {
124
+ return;
125
+ }
126
+ onFilesUploaded(Array.from(files));
127
+ };
128
+ return ((0, react_1.jsx)("div", { css: exports.dropFileWrapperStyle },
129
+ (0, react_1.jsx)("div", { css: (theme) => (Object.assign(Object.assign({}, (0, exports.dropFileZoneWrapperStyle)(theme, isDraggedOver)), dropFileZoneWrapperCSS)), "data-testid": "dropzone", onDragOver: handleDragOver, onDragLeave: resetDraggedOver, onDrop: handleDrop },
130
+ (0, react_1.jsx)(Layout_1.FlexBox, { align: "center", justify: "center", flexWrap: "wrap", css: { maxWidth: '280px', margin: '0 auto' } },
131
+ (0, react_1.jsx)(Icon_1.UploadIcon, { css: { margin: '12px 0' } }),
132
+ (0, react_1.jsx)("div", { css: { maxWidth: '160px', margin: '0 25px' } },
133
+ (0, react_1.jsx)("span", { css: exports.dropFileZoneHeadingStyle }, headingText),
134
+ (0, react_1.jsx)("label", { "aria-label": `${headingText} ${labelText} (${description})`, css: (theme) => (0, exports.dropFileZoneLabelStyle)(theme) },
135
+ (0, react_1.jsx)("span", null, labelText),
136
+ (0, react_1.jsx)("input", Object.assign({ "data-testid": "file-input", ref: ref, accept: accept, multiple: multiple, css: visuallyHiddenStyles, onChange: handleChange, type: "file" }, inputProps)))))),
137
+ description && (0, react_1.jsx)("p", { css: exports.dropFileZonDescriptionStyle }, description)));
138
+ });
139
+ //# sourceMappingURL=DropFileInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropFileInput.js","sourceRoot":"","sources":["../../src/Form/DropFileInput.tsx"],"names":[],"mappings":"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"}