@wireapp/react-ui-kit 8.14.0 → 8.14.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.
- package/package.json +3 -3
- package/src/Form/Button.js +125 -210
- package/src/Form/Button.js.map +1 -1
- package/src/Form/ButtonLink.js +47 -60
- package/src/Form/ButtonLink.js.map +1 -1
- package/src/Form/Checkbox.js +84 -139
- package/src/Form/Checkbox.js.map +1 -1
- package/src/Form/CodeInput.js +98 -201
- package/src/Form/CodeInput.js.map +1 -1
- package/src/Form/DropFileInput.js +116 -214
- package/src/Form/DropFileInput.js.map +1 -1
- package/src/Form/ErrorMessage.js +45 -78
- package/src/Form/ErrorMessage.js.map +1 -1
- package/src/Form/Form.d.ts +0 -1
- package/src/Form/Form.js +28 -31
- package/src/Form/Form.js.map +1 -1
- package/src/Form/Input.js +101 -178
- package/src/Form/Input.js.map +1 -1
- package/src/Form/InputBlock.d.ts +1 -1
- package/src/Form/InputBlock.js +19 -45
- package/src/Form/InputBlock.js.map +1 -1
- package/src/Form/InputLabel.js +44 -46
- package/src/Form/InputLabel.js.map +1 -1
- package/src/Form/InputSubmitCombo.js +49 -53
- package/src/Form/InputSubmitCombo.js.map +1 -1
- package/src/Form/RangeInput.js +47 -71
- package/src/Form/RangeInput.js.map +1 -1
- package/src/Form/RangeInput.styles.js +39 -55
- package/src/Form/RangeInput.styles.js.map +1 -1
- package/src/Form/RoundIconButton.js +42 -62
- package/src/Form/RoundIconButton.js.map +1 -1
- package/src/Form/Select.js +55 -95
- package/src/Form/Select.js.map +1 -1
- package/src/Form/SelectComponents.js +101 -173
- package/src/Form/SelectComponents.js.map +1 -1
- package/src/Form/SelectStyles.d.ts +1 -899
- package/src/Form/SelectStyles.js +96 -156
- package/src/Form/SelectStyles.js.map +1 -1
- package/src/Form/ShakeBox.d.ts +1 -1
- package/src/Form/ShakeBox.js +33 -81
- package/src/Form/ShakeBox.js.map +1 -1
- package/src/Form/Switch.js +89 -124
- package/src/Form/Switch.js.map +1 -1
- package/src/Form/TextArea.js +59 -80
- package/src/Form/TextArea.js.map +1 -1
- package/src/Form/Tooltip.js +66 -75
- package/src/Form/Tooltip.js.map +1 -1
- package/src/Form/index.js +52 -238
- package/src/Form/index.js.map +1 -1
- package/src/GlobalCssVariables.js +79 -96
- package/src/GlobalCssVariables.js.map +1 -1
- package/src/GlobalStyle.d.js +0 -2
- package/src/GlobalStyle.d.js.map +1 -1
- package/src/GlobalStyle.d.ts +1 -2
- package/src/GlobalStyle.js +40 -55
- package/src/GlobalStyle.js.map +1 -1
- package/src/Icon/AddPeopleIcon.js +19 -24
- package/src/Icon/AddPeopleIcon.js.map +1 -1
- package/src/Icon/ArchiveIcon.js +6 -24
- package/src/Icon/ArchiveIcon.js.map +1 -1
- package/src/Icon/ArrowDown.js +19 -23
- package/src/Icon/ArrowDown.js.map +1 -1
- package/src/Icon/ArrowIcon.js +42 -35
- package/src/Icon/ArrowIcon.js.map +1 -1
- package/src/Icon/AttachmentIcon.js +6 -24
- package/src/Icon/AttachmentIcon.js.map +1 -1
- package/src/Icon/AudioVideoIcon.js +6 -24
- package/src/Icon/AudioVideoIcon.js.map +1 -1
- package/src/Icon/BlockIcon.js +6 -24
- package/src/Icon/BlockIcon.js.map +1 -1
- package/src/Icon/Brand/AndroidIcon.js +6 -25
- package/src/Icon/Brand/AndroidIcon.js.map +1 -1
- package/src/Icon/Brand/AppleIcon.js +6 -25
- package/src/Icon/Brand/AppleIcon.js.map +1 -1
- package/src/Icon/Brand/ChromeIcon.js +6 -25
- package/src/Icon/Brand/ChromeIcon.js.map +1 -1
- package/src/Icon/Brand/FacebookIcon.js +6 -24
- package/src/Icon/Brand/FacebookIcon.js.map +1 -1
- package/src/Icon/Brand/GitHubIcon.js +6 -24
- package/src/Icon/Brand/GitHubIcon.js.map +1 -1
- package/src/Icon/Brand/LinkedInIcon.js +6 -24
- package/src/Icon/Brand/LinkedInIcon.js.map +1 -1
- package/src/Icon/Brand/LinuxIcon.js +6 -25
- package/src/Icon/Brand/LinuxIcon.js.map +1 -1
- package/src/Icon/Brand/MicrosoftIcon.js +6 -25
- package/src/Icon/Brand/MicrosoftIcon.js.map +1 -1
- package/src/Icon/Brand/TwitterIcon.js +6 -24
- package/src/Icon/Brand/TwitterIcon.js.map +1 -1
- package/src/Icon/CallIcon.js +6 -24
- package/src/Icon/CallIcon.js.map +1 -1
- package/src/Icon/CamIcon.js +6 -24
- package/src/Icon/CamIcon.js.map +1 -1
- package/src/Icon/CameraIcon.js +19 -24
- package/src/Icon/CameraIcon.js.map +1 -1
- package/src/Icon/CheckIcon.js +6 -24
- package/src/Icon/CheckIcon.js.map +1 -1
- package/src/Icon/CheckRoundIcon.js +6 -24
- package/src/Icon/CheckRoundIcon.js.map +1 -1
- package/src/Icon/ChevronIcon.js +38 -31
- package/src/Icon/ChevronIcon.js.map +1 -1
- package/src/Icon/CloseIcon.js +6 -24
- package/src/Icon/CloseIcon.js.map +1 -1
- package/src/Icon/CopyIcon.js +6 -24
- package/src/Icon/CopyIcon.js.map +1 -1
- package/src/Icon/DeviceIcon.js +6 -24
- package/src/Icon/DeviceIcon.js.map +1 -1
- package/src/Icon/DownloadIcon.js +6 -24
- package/src/Icon/DownloadIcon.js.map +1 -1
- package/src/Icon/EditDocumentIcon.js +19 -25
- package/src/Icon/EditDocumentIcon.js.map +1 -1
- package/src/Icon/EditIcon.js +6 -24
- package/src/Icon/EditIcon.js.map +1 -1
- package/src/Icon/EnterIcon.js +6 -24
- package/src/Icon/EnterIcon.js.map +1 -1
- package/src/Icon/ErrorIcon.js +9 -39
- package/src/Icon/ErrorIcon.js.map +1 -1
- package/src/Icon/FileIcon.js +6 -24
- package/src/Icon/FileIcon.js.map +1 -1
- package/src/Icon/GifIcon.js +6 -24
- package/src/Icon/GifIcon.js.map +1 -1
- package/src/Icon/GridIcon.js +19 -24
- package/src/Icon/GridIcon.js.map +1 -1
- package/src/Icon/GroupIcon.js +6 -24
- package/src/Icon/GroupIcon.js.map +1 -1
- package/src/Icon/HangupIcon.js +6 -24
- package/src/Icon/HangupIcon.js.map +1 -1
- package/src/Icon/HideIcon.js +6 -24
- package/src/Icon/HideIcon.js.map +1 -1
- package/src/Icon/ImageIcon.js +6 -24
- package/src/Icon/ImageIcon.js.map +1 -1
- package/src/Icon/InfoIcon.js +6 -24
- package/src/Icon/InfoIcon.js.map +1 -1
- package/src/Icon/InviteIcon.js +6 -24
- package/src/Icon/InviteIcon.js.map +1 -1
- package/src/Icon/LeaveIcon.js +6 -24
- package/src/Icon/LeaveIcon.js.map +1 -1
- package/src/Icon/LinkIcon.js +19 -24
- package/src/Icon/LinkIcon.js.map +1 -1
- package/src/Icon/ListIcon.js +6 -24
- package/src/Icon/ListIcon.js.map +1 -1
- package/src/Icon/LockIcon.js +6 -25
- package/src/Icon/LockIcon.js.map +1 -1
- package/src/Icon/MessageIcon.js +6 -24
- package/src/Icon/MessageIcon.js.map +1 -1
- package/src/Icon/MinusIcon.js +6 -24
- package/src/Icon/MinusIcon.js.map +1 -1
- package/src/Icon/MoreIcon.js +6 -24
- package/src/Icon/MoreIcon.js.map +1 -1
- package/src/Icon/MuteIcon.js +6 -24
- package/src/Icon/MuteIcon.js.map +1 -1
- package/src/Icon/NotificationIcon.js +6 -24
- package/src/Icon/NotificationIcon.js.map +1 -1
- package/src/Icon/NotificationOffIcon.js +6 -24
- package/src/Icon/NotificationOffIcon.js.map +1 -1
- package/src/Icon/OptionsIcon.js +6 -24
- package/src/Icon/OptionsIcon.js.map +1 -1
- package/src/Icon/PeopleIcon.js +19 -24
- package/src/Icon/PeopleIcon.js.map +1 -1
- package/src/Icon/PingIcon.js +6 -24
- package/src/Icon/PingIcon.js.map +1 -1
- package/src/Icon/PlaneIcon.js +6 -24
- package/src/Icon/PlaneIcon.js.map +1 -1
- package/src/Icon/PlusIcon.js +6 -24
- package/src/Icon/PlusIcon.js.map +1 -1
- package/src/Icon/ProfileIcon.js +6 -24
- package/src/Icon/ProfileIcon.js.map +1 -1
- package/src/Icon/RecordBoldIcon.js +43 -50
- package/src/Icon/RecordBoldIcon.js.map +1 -1
- package/src/Icon/RecordIcon.js +8 -34
- package/src/Icon/RecordIcon.js.map +1 -1
- package/src/Icon/RecordPendingIcon.js +8 -31
- package/src/Icon/RecordPendingIcon.js.map +1 -1
- package/src/Icon/ReloadIcon.js +6 -24
- package/src/Icon/ReloadIcon.js.map +1 -1
- package/src/Icon/SVGIcon.js +53 -78
- package/src/Icon/SVGIcon.js.map +1 -1
- package/src/Icon/ScreenshareIcon.js +6 -24
- package/src/Icon/ScreenshareIcon.js.map +1 -1
- package/src/Icon/SearchIcon.js +6 -25
- package/src/Icon/SearchIcon.js.map +1 -1
- package/src/Icon/ServicesIcon.js +6 -24
- package/src/Icon/ServicesIcon.js.map +1 -1
- package/src/Icon/SettingsIcon.js +6 -24
- package/src/Icon/SettingsIcon.js.map +1 -1
- package/src/Icon/ShowIcon.js +6 -24
- package/src/Icon/ShowIcon.js.map +1 -1
- package/src/Icon/SignIcon.js +6 -24
- package/src/Icon/SignIcon.js.map +1 -1
- package/src/Icon/SpeakerIcon.js +6 -24
- package/src/Icon/SpeakerIcon.js.map +1 -1
- package/src/Icon/SupportIcon.js +6 -24
- package/src/Icon/SupportIcon.js.map +1 -1
- package/src/Icon/TeamIcon.js +6 -24
- package/src/Icon/TeamIcon.js.map +1 -1
- package/src/Icon/TimedIcon.js +6 -24
- package/src/Icon/TimedIcon.js.map +1 -1
- package/src/Icon/TrashCrossIcon.js +6 -24
- package/src/Icon/TrashCrossIcon.js.map +1 -1
- package/src/Icon/TrashIcon.js +6 -24
- package/src/Icon/TrashIcon.js.map +1 -1
- package/src/Icon/TriangleIcon.js +42 -35
- package/src/Icon/TriangleIcon.js.map +1 -1
- package/src/Icon/UploadIcon.js +6 -24
- package/src/Icon/UploadIcon.js.map +1 -1
- package/src/Icon/WireIcon.js +6 -24
- package/src/Icon/WireIcon.js.map +1 -1
- package/src/Icon/index.js +107 -953
- package/src/Icon/index.js.map +1 -1
- package/src/Identity/Animation.js +88 -211
- package/src/Identity/Animation.js.map +1 -1
- package/src/Identity/Avatar.js +66 -114
- package/src/Identity/Avatar.js.map +1 -1
- package/src/Identity/AvatarGrid.js +66 -108
- package/src/Identity/AvatarGrid.js.map +1 -1
- package/src/Identity/Logo.js +45 -54
- package/src/Identity/Logo.js.map +1 -1
- package/src/Identity/colors-v2.js +163 -186
- package/src/Identity/colors-v2.js.map +1 -1
- package/src/Identity/colors.js +64 -80
- package/src/Identity/colors.js.map +1 -1
- package/src/Identity/index.js +38 -81
- package/src/Identity/index.js.map +1 -1
- package/src/Identity/motions.js +71 -35
- package/src/Identity/motions.js.map +1 -1
- package/src/Layout/Box.d.ts +1 -1
- package/src/Layout/Box.js +9 -31
- package/src/Layout/Box.js.map +1 -1
- package/src/Layout/Column.d.ts +1 -1
- package/src/Layout/Column.js +17 -57
- package/src/Layout/Column.js.map +1 -1
- package/src/Layout/Container.d.ts +5 -5
- package/src/Layout/Container.js +29 -102
- package/src/Layout/Container.js.map +1 -1
- package/src/Layout/Content.d.ts +1 -1
- package/src/Layout/Content.js +8 -31
- package/src/Layout/Content.js.map +1 -1
- package/src/Layout/FlexBox.js +10 -45
- package/src/Layout/FlexBox.js.map +1 -1
- package/src/Layout/Footer.d.ts +1 -4
- package/src/Layout/Footer.js +4 -17
- package/src/Layout/Footer.js.map +1 -1
- package/src/Layout/Header.d.ts +1 -1
- package/src/Layout/Header.js +7 -28
- package/src/Layout/Header.js.map +1 -1
- package/src/Layout/MatchMedia.js +27 -112
- package/src/Layout/MatchMedia.js.map +1 -1
- package/src/Layout/Spacer.js +6 -26
- package/src/Layout/Spacer.js.map +1 -1
- package/src/Layout/StyledApp.js +45 -53
- package/src/Layout/StyledApp.js.map +1 -1
- package/src/Layout/Theme.js +217 -225
- package/src/Layout/Theme.js.map +1 -1
- package/src/Layout/headerMenu/HeaderMenu.js +54 -117
- package/src/Layout/headerMenu/HeaderMenu.js.map +1 -1
- package/src/Layout/headerMenu/HeaderSubMenu.d.ts +1 -1
- package/src/Layout/headerMenu/HeaderSubMenu.js +74 -131
- package/src/Layout/headerMenu/HeaderSubMenu.js.map +1 -1
- package/src/Layout/headerMenu/MenuContent.js +26 -47
- package/src/Layout/headerMenu/MenuContent.js.map +1 -1
- package/src/Layout/headerMenu/MenuItems.js +22 -52
- package/src/Layout/headerMenu/MenuItems.js.map +1 -1
- package/src/Layout/headerMenu/MenuLink.js +65 -89
- package/src/Layout/headerMenu/MenuLink.js.map +1 -1
- package/src/Layout/headerMenu/MenuOpenButton.js +26 -54
- package/src/Layout/headerMenu/MenuOpenButton.js.map +1 -1
- package/src/Layout/headerMenu/MenuScrollableItems.js +13 -36
- package/src/Layout/headerMenu/MenuScrollableItems.js.map +1 -1
- package/src/Layout/headerMenu/MenuSubLink.js +45 -64
- package/src/Layout/headerMenu/MenuSubLink.js.map +1 -1
- package/src/Layout/headerMenu/index.js +41 -108
- package/src/Layout/headerMenu/index.js.map +1 -1
- package/src/Layout/index.js +46 -173
- package/src/Layout/index.js.map +1 -1
- package/src/Layout/sizes.js +14 -21
- package/src/Layout/sizes.js.map +1 -1
- package/src/Menu/MenuModal.js +78 -123
- package/src/Menu/MenuModal.js.map +1 -1
- package/src/Menu/TabBar.d.ts +1 -1
- package/src/Menu/TabBar.js +50 -96
- package/src/Menu/TabBar.js.map +1 -1
- package/src/Menu/index.js +34 -29
- package/src/Menu/index.js.map +1 -1
- package/src/Misc/ButtonGroup.js +67 -97
- package/src/Misc/ButtonGroup.js.map +1 -1
- package/src/Misc/IconButton.js +72 -102
- package/src/Misc/IconButton.js.map +1 -1
- package/src/Misc/IsInViewport.js +57 -63
- package/src/Misc/IsInViewport.js.map +1 -1
- package/src/Misc/Loading.d.ts +1 -1
- package/src/Misc/Loading.js +58 -66
- package/src/Misc/Loading.js.map +1 -1
- package/src/Misc/Pagination.js +64 -149
- package/src/Misc/Pagination.js.map +1 -1
- package/src/Misc/Pill.js +66 -80
- package/src/Misc/Pill.js.map +1 -1
- package/src/Misc/childrenWithDefaultProps.d.ts +1 -1
- package/src/Misc/childrenWithDefaultProps.js +28 -28
- package/src/Misc/childrenWithDefaultProps.js.map +1 -1
- package/src/Misc/index.js +42 -121
- package/src/Misc/index.js.map +1 -1
- package/src/Misc/useLongTouch.js +23 -38
- package/src/Misc/useLongTouch.js.map +1 -1
- package/src/Misc/useTimeout.js +24 -44
- package/src/Misc/useTimeout.js.map +1 -1
- package/src/Modal/Modal.js +95 -177
- package/src/Modal/Modal.js.map +1 -1
- package/src/Modal/Overlay.d.ts +2 -2
- package/src/Modal/Overlay.js +68 -92
- package/src/Modal/Overlay.js.map +1 -1
- package/src/Modal/index.js +36 -28
- package/src/Modal/index.js.map +1 -1
- package/src/Text/Heading.js +71 -188
- package/src/Text/Heading.js.map +1 -1
- package/src/Text/Label.js +45 -74
- package/src/Text/Label.js.map +1 -1
- package/src/Text/Line.js +11 -36
- package/src/Text/Line.js.map +1 -1
- package/src/Text/Link.js +60 -88
- package/src/Text/Link.js.map +1 -1
- package/src/Text/Paragraph.js +44 -75
- package/src/Text/Paragraph.js.map +1 -1
- package/src/Text/Text.d.ts +6 -6
- package/src/Text/Text.js +29 -107
- package/src/Text/Text.js.map +1 -1
- package/src/Text/TextLink.js +38 -52
- package/src/Text/TextLink.js.map +1 -1
- package/src/Text/Title.js +38 -55
- package/src/Text/Title.js.map +1 -1
- package/src/Text/index.js +41 -108
- package/src/Text/index.js.map +1 -1
- package/src/index.js +42 -121
- package/src/index.js.map +1 -1
- package/src/mediaQueries.js +40 -41
- package/src/mediaQueries.js.map +1 -1
- package/src/util.js +8 -39
- package/src/util.js.map +1 -1
package/src/Form/Checkbox.js
CHANGED
|
@@ -1,146 +1,91 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
31
|
-
|
|
32
|
-
var filterStyledLabelProps = function filterStyledLabelProps(props) {
|
|
33
|
-
return (0, _util.filterProps)(props, ['markInvalid']);
|
|
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;
|
|
34
30
|
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
color: theme.general.color
|
|
73
|
-
})), (0, _defineProperty2["default"])(_objectSpread3, "position", 'relative'), (0, _defineProperty2["default"])(_objectSpread3, "margin", '0 0 0 -16px'), (0, _defineProperty2["default"])(_objectSpread3, "width", aligncenter ? 'auto' : '100%'), (0, _defineProperty2["default"])(_objectSpread3, "lineHeight", 1.4), (0, _defineProperty2["default"])(_objectSpread3, "display", 'flex'), (0, _defineProperty2["default"])(_objectSpread3, "opacity", disabled ? 0.56 : 1), (0, _defineProperty2["default"])(_objectSpread3, "cursor", disabled ? 'not-allowed' : 'pointer'), (0, _defineProperty2["default"])(_objectSpread3, "borderRadius", '4px'), _objectSpread3));
|
|
74
|
-
}
|
|
75
|
-
}, filterStyledLabelProps(props)), props.children, (0, _react.jsx)("svg", {
|
|
76
|
-
width: "15",
|
|
77
|
-
height: "13",
|
|
78
|
-
viewBox: "0 0 16 13",
|
|
79
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
80
|
-
}, (0, _react.jsx)("path", {
|
|
81
|
-
d: "M5.65685 12.0711L15.9842 1.62738L14.57 0.213167L5.65685 9.24264L1.41421 5L0 6.41421L5.65685 12.0711Z"
|
|
82
|
-
})));
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.CheckboxLabel = exports.Checkbox = void 0;
|
|
33
|
+
/** @jsx jsx */
|
|
34
|
+
const react_1 = require("@emotion/react");
|
|
35
|
+
const react_2 = require("react");
|
|
36
|
+
const Text_1 = require("../Text");
|
|
37
|
+
const util_1 = require("../util");
|
|
38
|
+
const Input_1 = require("./Input");
|
|
39
|
+
const filterStyledLabelProps = (props) => (0, util_1.filterProps)(props, ['markInvalid']);
|
|
40
|
+
const StyledLabel = (props) => {
|
|
41
|
+
const { disabled, markInvalid, aligncenter = false } = props;
|
|
42
|
+
return ((0, react_1.jsx)("label", Object.assign({ css: (theme) => (Object.assign(Object.assign({ [`.${Input_1.INPUT_CLASSNAME}:checked + &::before`]: {
|
|
43
|
+
background: `${disabled ? theme.Checkbox.disablecheckedBgColor : theme.general.primaryColor}`,
|
|
44
|
+
borderColor: theme.general.primaryColor,
|
|
45
|
+
}, [`.${Input_1.INPUT_CLASSNAME}:checked + & > svg`]: {
|
|
46
|
+
fill: theme.general.backgroundColor,
|
|
47
|
+
}, [`.${Input_1.INPUT_CLASSNAME} + & > svg`]: {
|
|
48
|
+
fill: 'none',
|
|
49
|
+
position: 'absolute',
|
|
50
|
+
left: '0.25rem',
|
|
51
|
+
top: '0.25rem',
|
|
52
|
+
} }, (!disabled && {
|
|
53
|
+
[`.${Input_1.INPUT_CLASSNAME}:hover + &::before`]: {
|
|
54
|
+
borderColor: theme.general.primaryColor,
|
|
55
|
+
},
|
|
56
|
+
})), { [`.${Input_1.INPUT_CLASSNAME} + &::before`]: Object.assign(Object.assign({ background: disabled ? theme.Checkbox.disableBgColor : theme.Checkbox.background }, (!disabled
|
|
57
|
+
? {
|
|
58
|
+
border: markInvalid
|
|
59
|
+
? `2px solid ${theme.Checkbox.invalidBorderColor}`
|
|
60
|
+
: `2px solid ${theme.Checkbox.border}`,
|
|
61
|
+
}
|
|
62
|
+
: {
|
|
63
|
+
border: `2px solid ${theme.Checkbox.disableBorderColor}`,
|
|
64
|
+
})), { 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 }), 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' })) }, filterStyledLabelProps(props)),
|
|
65
|
+
props.children,
|
|
66
|
+
(0, react_1.jsx)("svg", { width: "15", height: "13", viewBox: "0 0 16 13", xmlns: "http://www.w3.org/2000/svg" },
|
|
67
|
+
(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" }))));
|
|
83
68
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
css: function css(theme) {
|
|
101
|
-
return _objectSpread((0, _defineProperty2["default"])({
|
|
102
|
-
alignItems: 'center',
|
|
103
|
-
display: 'flex',
|
|
104
|
-
justifyContent: 'flex-start',
|
|
105
|
-
position: 'relative',
|
|
106
|
-
left: '-0.3rem'
|
|
107
|
-
}, ".".concat(_Input.INPUT_CLASSNAME, ":focus-visible + label"), {
|
|
108
|
-
outline: "1px solid ".concat(theme.general.primaryColor),
|
|
109
|
-
outlineOffset: '0.4rem'
|
|
110
|
-
}), wrapperCSS);
|
|
111
|
-
},
|
|
112
|
-
style: style
|
|
113
|
-
}, (0, _react.jsx)("input", (0, _extends2["default"])({
|
|
114
|
-
type: "checkbox",
|
|
115
|
-
id: id,
|
|
116
|
-
style: {
|
|
117
|
-
height: '22px',
|
|
118
|
-
marginBottom: '0',
|
|
119
|
-
opacity: 0,
|
|
120
|
-
width: '22px',
|
|
121
|
-
cursor: disabled ? 'not-allowed' : 'pointer'
|
|
122
|
-
},
|
|
123
|
-
disabled: disabled,
|
|
124
|
-
ref: ref,
|
|
125
|
-
className: _Input.INPUT_CLASSNAME
|
|
126
|
-
}, filterCheckboxProps(props))), (0, _react.jsx)(StyledLabel, {
|
|
127
|
-
htmlFor: id,
|
|
128
|
-
disabled: disabled,
|
|
129
|
-
markInvalid: props.markInvalid,
|
|
130
|
-
aligncenter: props.aligncenter
|
|
131
|
-
}, children));
|
|
69
|
+
const filterCheckboxProps = (props) => (0, util_1.filterProps)(props, ['markInvalid']);
|
|
70
|
+
// We use Math.random..., because some of apps doesn't migrated to newest version of React.
|
|
71
|
+
exports.Checkbox = react_2.default.forwardRef((_a, ref) => {
|
|
72
|
+
var { id = Math.random().toString(), children, style, disabled, wrapperCSS = {} } = _a, props = __rest(_a, ["id", "children", "style", "disabled", "wrapperCSS"]);
|
|
73
|
+
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`]: {
|
|
74
|
+
outline: `1px solid ${theme.general.primaryColor}`,
|
|
75
|
+
outlineOffset: '0.4rem',
|
|
76
|
+
} }, wrapperCSS)), style: style },
|
|
77
|
+
(0, react_1.jsx)("input", Object.assign({ type: "checkbox", id: id, style: {
|
|
78
|
+
height: '22px',
|
|
79
|
+
marginBottom: '0',
|
|
80
|
+
opacity: 0,
|
|
81
|
+
width: '22px',
|
|
82
|
+
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
83
|
+
}, disabled: disabled, ref: ref, className: Input_1.INPUT_CLASSNAME }, filterCheckboxProps(props))),
|
|
84
|
+
(0, react_1.jsx)(StyledLabel, { htmlFor: id, disabled: disabled, markInvalid: props.markInvalid, aligncenter: props.aligncenter }, children)));
|
|
132
85
|
});
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
var CheckboxLabel = function CheckboxLabel(_ref3) {
|
|
137
|
-
var props = (0, _extends2["default"])({}, _ref3);
|
|
138
|
-
return (0, _react.jsx)(_Text.Text, (0, _extends2["default"])({
|
|
139
|
-
css: function css(theme) {
|
|
140
|
-
return _objectSpread({}, (0, _Text.textStyle)(theme, _objectSpread({}, props)));
|
|
141
|
-
}
|
|
142
|
-
}, props));
|
|
86
|
+
const CheckboxLabel = (_a) => {
|
|
87
|
+
var props = __rest(_a, []);
|
|
88
|
+
return ((0, react_1.jsx)(Text_1.Text, Object.assign({ css: (theme) => (Object.assign({}, (0, Text_1.textStyle)(theme, Object.assign({}, props)))) }, props)));
|
|
143
89
|
};
|
|
144
|
-
|
|
145
90
|
exports.CheckboxLabel = CheckboxLabel;
|
|
146
91
|
//# sourceMappingURL=Checkbox.js.map
|
package/src/Form/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["Checkbox.tsx"],"names":[],"mappings":"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"}
|
package/src/Form/CodeInput.js
CHANGED
|
@@ -1,206 +1,103 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
21
|
exports.CodeInput = void 0;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
22
|
+
/** @jsx jsx */
|
|
23
|
+
const react_1 = require("@emotion/react");
|
|
24
|
+
const react_2 = require("react");
|
|
25
|
+
const util_1 = require("../util");
|
|
26
|
+
const Input_1 = require("./Input");
|
|
27
|
+
const Identity_1 = require("../Identity");
|
|
28
|
+
const CodeInputWrapper = (props) => ((0, react_1.jsx)("div", Object.assign({ css: {
|
|
29
|
+
display: 'flex',
|
|
30
|
+
justifyContent: 'center',
|
|
31
|
+
} }, props)));
|
|
32
|
+
const digitInputStyle = (theme, props) => (Object.assign(Object.assign({}, (0, Input_1.inputStyle)(theme, props)), { '& + &': {
|
|
33
|
+
marginLeft: 'min(19px, 2vw)',
|
|
34
|
+
}, '&:hover': {
|
|
35
|
+
boxShadow: `0 0 0 1px ${Identity_1.COLOR_V2.GRAY_60}`,
|
|
36
|
+
}, fontSize: '24px', lineHeight: '28px', borderRadius: '12px', padding: 0, textAlign: 'center', width: 'min(48px, 13vw)', height: '56px' }));
|
|
37
|
+
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" })));
|
|
38
|
+
const CodeInput = ({ style, digits = 6, autoFocus = false, markInvalid, onCodeComplete = util_1.noop, disabled, }) => {
|
|
39
|
+
const [values, setValues] = (0, react_2.useState)(Array(digits).fill(''));
|
|
40
|
+
const inputs = Array(digits);
|
|
41
|
+
const forceSelection = (event) => {
|
|
42
|
+
const target = event.target;
|
|
43
|
+
target.select();
|
|
44
|
+
};
|
|
45
|
+
const forceSelectionPreventDefault = (event) => {
|
|
46
|
+
forceSelection(event);
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
};
|
|
49
|
+
const nextField = (currentFieldIndex) => {
|
|
50
|
+
const nextFieldIndex = currentFieldIndex + 1;
|
|
51
|
+
if (nextFieldIndex < digits) {
|
|
52
|
+
inputs[nextFieldIndex].focus();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const previousField = (currentFieldIndex) => {
|
|
56
|
+
if (currentFieldIndex > 0) {
|
|
57
|
+
inputs[currentFieldIndex - 1].focus();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const setValue = (fieldIndex, value) => {
|
|
61
|
+
if (/^[0-9]?$/.test(value)) {
|
|
62
|
+
const valuesCopy = values.slice();
|
|
63
|
+
valuesCopy[fieldIndex] = value;
|
|
64
|
+
setValues(valuesCopy);
|
|
65
|
+
if (value.length) {
|
|
66
|
+
nextField(fieldIndex);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const handleKeyDown = (fieldIndex, { key }) => {
|
|
71
|
+
switch (key) {
|
|
72
|
+
case 'Backspace':
|
|
73
|
+
setValue(fieldIndex, '');
|
|
74
|
+
previousField(fieldIndex);
|
|
75
|
+
break;
|
|
76
|
+
case 'ArrowLeft':
|
|
77
|
+
previousField(fieldIndex);
|
|
78
|
+
break;
|
|
79
|
+
case 'ArrowRight':
|
|
80
|
+
nextField(fieldIndex);
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
if (/^[0-9]$/.test(key)) {
|
|
84
|
+
setValue(fieldIndex, key);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const handlePaste = (fieldIndex, event) => {
|
|
88
|
+
const pastedValue = event.clipboardData.getData('Text');
|
|
89
|
+
const cleanedPaste = pastedValue.replace(/[^0-9]/g, '');
|
|
90
|
+
if (/^[0-9]+$/.test(cleanedPaste)) {
|
|
91
|
+
setValues(values.slice(0, fieldIndex).concat(cleanedPaste.split('')).slice(0, digits));
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
(0, react_2.useEffect)(() => {
|
|
95
|
+
const completeCode = values.join('');
|
|
96
|
+
if (completeCode.length === digits) {
|
|
97
|
+
onCodeComplete(completeCode);
|
|
98
|
+
}
|
|
99
|
+
}, [values]);
|
|
100
|
+
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 })))));
|
|
46
101
|
};
|
|
47
|
-
|
|
48
|
-
var CodeInputWrapper = function CodeInputWrapper(props) {
|
|
49
|
-
return (0, _react.jsx)("div", (0, _extends2["default"])({
|
|
50
|
-
css: _ref
|
|
51
|
-
}, props));
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
var digitInputStyle = function digitInputStyle(theme, props) {
|
|
55
|
-
return _objectSpread(_objectSpread({}, (0, _Input.inputStyle)(theme, props)), {}, {
|
|
56
|
-
'& + &': {
|
|
57
|
-
marginLeft: 'min(19px, 2vw)'
|
|
58
|
-
},
|
|
59
|
-
'&:hover': {
|
|
60
|
-
boxShadow: "0 0 0 1px ".concat(_Identity.COLOR_V2.GRAY_60)
|
|
61
|
-
},
|
|
62
|
-
fontSize: '24px',
|
|
63
|
-
lineHeight: '28px',
|
|
64
|
-
borderRadius: '12px',
|
|
65
|
-
padding: 0,
|
|
66
|
-
textAlign: 'center',
|
|
67
|
-
width: 'min(48px, 13vw)',
|
|
68
|
-
height: '56px'
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
var DigitInput = /*#__PURE__*/_react2["default"].forwardRef(function (props, ref) {
|
|
73
|
-
return (0, _react.jsx)("input", (0, _extends2["default"])({
|
|
74
|
-
ref: ref,
|
|
75
|
-
css: function css(theme) {
|
|
76
|
-
return digitInputStyle(theme, props);
|
|
77
|
-
}
|
|
78
|
-
}, props, {
|
|
79
|
-
type: "tel"
|
|
80
|
-
}));
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
var CodeInput = function CodeInput(_ref2) {
|
|
84
|
-
var style = _ref2.style,
|
|
85
|
-
_ref2$digits = _ref2.digits,
|
|
86
|
-
digits = _ref2$digits === void 0 ? 6 : _ref2$digits,
|
|
87
|
-
_ref2$autoFocus = _ref2.autoFocus,
|
|
88
|
-
autoFocus = _ref2$autoFocus === void 0 ? false : _ref2$autoFocus,
|
|
89
|
-
markInvalid = _ref2.markInvalid,
|
|
90
|
-
_ref2$onCodeComplete = _ref2.onCodeComplete,
|
|
91
|
-
onCodeComplete = _ref2$onCodeComplete === void 0 ? _util.noop : _ref2$onCodeComplete,
|
|
92
|
-
disabled = _ref2.disabled;
|
|
93
|
-
|
|
94
|
-
var _useState = (0, _react2.useState)(Array(digits).fill('')),
|
|
95
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
96
|
-
values = _useState2[0],
|
|
97
|
-
setValues = _useState2[1];
|
|
98
|
-
|
|
99
|
-
var inputs = Array(digits);
|
|
100
|
-
|
|
101
|
-
var forceSelection = function forceSelection(event) {
|
|
102
|
-
var target = event.target;
|
|
103
|
-
target.select();
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
var forceSelectionPreventDefault = function forceSelectionPreventDefault(event) {
|
|
107
|
-
forceSelection(event);
|
|
108
|
-
event.preventDefault();
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
var nextField = function nextField(currentFieldIndex) {
|
|
112
|
-
var nextFieldIndex = currentFieldIndex + 1;
|
|
113
|
-
|
|
114
|
-
if (nextFieldIndex < digits) {
|
|
115
|
-
inputs[nextFieldIndex].focus();
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
var previousField = function previousField(currentFieldIndex) {
|
|
120
|
-
if (currentFieldIndex > 0) {
|
|
121
|
-
inputs[currentFieldIndex - 1].focus();
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
var setValue = function setValue(fieldIndex, value) {
|
|
126
|
-
if (/^[0-9]?$/.test(value)) {
|
|
127
|
-
var valuesCopy = values.slice();
|
|
128
|
-
valuesCopy[fieldIndex] = value;
|
|
129
|
-
setValues(valuesCopy);
|
|
130
|
-
|
|
131
|
-
if (value.length) {
|
|
132
|
-
nextField(fieldIndex);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
var handleKeyDown = function handleKeyDown(fieldIndex, _ref3) {
|
|
138
|
-
var key = _ref3.key;
|
|
139
|
-
|
|
140
|
-
switch (key) {
|
|
141
|
-
case 'Backspace':
|
|
142
|
-
setValue(fieldIndex, '');
|
|
143
|
-
previousField(fieldIndex);
|
|
144
|
-
break;
|
|
145
|
-
|
|
146
|
-
case 'ArrowLeft':
|
|
147
|
-
previousField(fieldIndex);
|
|
148
|
-
break;
|
|
149
|
-
|
|
150
|
-
case 'ArrowRight':
|
|
151
|
-
nextField(fieldIndex);
|
|
152
|
-
break;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
if (/^[0-9]$/.test(key)) {
|
|
156
|
-
setValue(fieldIndex, key);
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
var handlePaste = function handlePaste(fieldIndex, event) {
|
|
161
|
-
var pastedValue = event.clipboardData.getData('Text');
|
|
162
|
-
var cleanedPaste = pastedValue.replace(/[^0-9]/g, '');
|
|
163
|
-
|
|
164
|
-
if (/^[0-9]+$/.test(cleanedPaste)) {
|
|
165
|
-
setValues(values.slice(0, fieldIndex).concat(cleanedPaste.split('')).slice(0, digits));
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
(0, _react2.useEffect)(function () {
|
|
170
|
-
var completeCode = values.join('');
|
|
171
|
-
|
|
172
|
-
if (completeCode.length === digits) {
|
|
173
|
-
onCodeComplete(completeCode);
|
|
174
|
-
}
|
|
175
|
-
}, [values]);
|
|
176
|
-
return (0, _react.jsx)(CodeInputWrapper, {
|
|
177
|
-
style: style
|
|
178
|
-
}, Array.from({
|
|
179
|
-
length: digits
|
|
180
|
-
}, function (_, index) {
|
|
181
|
-
return (0, _react.jsx)(DigitInput, {
|
|
182
|
-
autoFocus: index === 0 && autoFocus,
|
|
183
|
-
key: index,
|
|
184
|
-
onPaste: function onPaste(event) {
|
|
185
|
-
return handlePaste(index, event);
|
|
186
|
-
},
|
|
187
|
-
onFocus: forceSelection,
|
|
188
|
-
onMouseDown: forceSelectionPreventDefault,
|
|
189
|
-
onTouchStart: forceSelectionPreventDefault,
|
|
190
|
-
onKeyDown: function onKeyDown(event) {
|
|
191
|
-
return handleKeyDown(index, event);
|
|
192
|
-
},
|
|
193
|
-
onKeyUp: forceSelection,
|
|
194
|
-
markInvalid: markInvalid,
|
|
195
|
-
ref: function ref(node) {
|
|
196
|
-
return inputs[index] = node;
|
|
197
|
-
},
|
|
198
|
-
value: values[index],
|
|
199
|
-
onChange: function onChange() {},
|
|
200
|
-
disabled: disabled
|
|
201
|
-
});
|
|
202
|
-
}));
|
|
203
|
-
};
|
|
204
|
-
|
|
205
102
|
exports.CodeInput = CodeInput;
|
|
206
103
|
//# sourceMappingURL=CodeInput.js.map
|