@wireapp/react-ui-kit 8.13.5 → 8.13.8
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/CHANGELOG.md +27 -0
- package/package.json +2 -2
- package/src/Form/Checkbox.js +3 -3
- package/src/Form/Checkbox.js.map +1 -1
- package/src/Form/CodeInput.js +3 -3
- package/src/Form/CodeInput.js.map +1 -1
- package/src/Text/Link.js +1 -1
- package/src/Text/Link.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [8.13.8](https://github.com/wireapp/wire-web-packages/tree/main/packages/react-ui-kit/compare/@wireapp/react-ui-kit@8.13.7...@wireapp/react-ui-kit@8.13.8) (2022-09-08)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **react-ui-kit:** update CodeInput component to be visible on mobile devices ([#4380](https://github.com/wireapp/wire-web-packages/tree/main/packages/react-ui-kit/issues/4380)) ([876921d](https://github.com/wireapp/wire-web-packages/tree/main/packages/react-ui-kit/commit/876921dd047ca0884b972d24eb83a097fef294cd))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [8.13.7](https://github.com/wireapp/wire-web-packages/tree/main/packages/react-ui-kit/compare/@wireapp/react-ui-kit@8.13.6...@wireapp/react-ui-kit@8.13.7) (2022-09-02)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @wireapp/react-ui-kit
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [8.13.6](https://github.com/wireapp/wire-web-packages/tree/main/packages/react-ui-kit/compare/@wireapp/react-ui-kit@8.13.5...@wireapp/react-ui-kit@8.13.6) (2022-09-02)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @wireapp/react-ui-kit
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
## [8.13.5](https://github.com/wireapp/wire-web-packages/tree/main/packages/react-ui-kit/compare/@wireapp/react-ui-kit@8.13.4...@wireapp/react-ui-kit@8.13.5) (2022-08-23)
|
|
7
34
|
|
|
8
35
|
**Note:** Version bump only for package @wireapp/react-ui-kit
|
package/package.json
CHANGED
|
@@ -70,6 +70,6 @@
|
|
|
70
70
|
"test:update": "yarn test --updateSnapshot",
|
|
71
71
|
"test:project": "yarn dist && yarn test"
|
|
72
72
|
},
|
|
73
|
-
"version": "8.13.
|
|
74
|
-
"gitHead": "
|
|
73
|
+
"version": "8.13.8",
|
|
74
|
+
"gitHead": "4cc5f40299b0b8fb593f169073c5c6740a2939f1"
|
|
75
75
|
}
|
package/src/Form/Checkbox.js
CHANGED
|
@@ -57,9 +57,9 @@ var StyledLabel = function StyledLabel(props) {
|
|
|
57
57
|
})), {}, (_objectSpread3 = {}, (0, _defineProperty2["default"])(_objectSpread3, ".".concat(_Input.INPUT_CLASSNAME, " + &::before"), _objectSpread(_objectSpread({
|
|
58
58
|
background: disabled ? theme.Checkbox.disableBgColor : theme.Checkbox.background
|
|
59
59
|
}, !disabled ? {
|
|
60
|
-
border: markInvalid ? "
|
|
60
|
+
border: markInvalid ? "2px solid ".concat(theme.Checkbox.invalidBorderColor) : "2px solid ".concat(theme.Checkbox.border)
|
|
61
61
|
} : {
|
|
62
|
-
border: "
|
|
62
|
+
border: "2px solid ".concat(theme.Checkbox.disableBorderColor)
|
|
63
63
|
}), {}, {
|
|
64
64
|
borderRadius: '3px',
|
|
65
65
|
boxSizing: 'border-box',
|
|
@@ -70,7 +70,7 @@ var StyledLabel = function StyledLabel(props) {
|
|
|
70
70
|
lineHeight: 1.4,
|
|
71
71
|
margin: '0 8px 0 0px',
|
|
72
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'), _objectSpread3));
|
|
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
74
|
}
|
|
75
75
|
}, filterStyledLabelProps(props)), props.children, (0, _react.jsx)("svg", {
|
|
76
76
|
width: "15",
|
package/src/Form/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Checkbox.tsx"],"names":["filterStyledLabelProps","props","StyledLabel","disabled","markInvalid","aligncenter","theme","INPUT_CLASSNAME","background","Checkbox","disablecheckedBgColor","general","primaryColor","borderColor","fill","backgroundColor","position","left","top","disableBgColor","border","invalidBorderColor","disableBorderColor","borderRadius","boxSizing","content","display","width","height","lineHeight","margin","color","children","filterCheckboxProps","React","forwardRef","ref","id","Math","random","toString","style","wrapperCSS","alignItems","justifyContent","outline","outlineOffset","marginBottom","opacity","cursor","CheckboxLabel"],"mappings":";;;;;;;;;;;;;;;AAoBA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;AAQA,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,KAAD;AAAA,SAA6B,uBAAYA,KAAZ,EAAmB,CAAC,aAAD,CAAnB,CAA7B;AAAA,CAA/B;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACD,KAAD,EAA6B;AAC/C,MAAOE,QAAP,GAAqDF,KAArD,CAAOE,QAAP;AAAA,MAAiBC,WAAjB,GAAqDH,KAArD,CAAiBG,WAAjB;AAAA,2BAAqDH,KAArD,CAA8BI,WAA9B;AAAA,MAA8BA,WAA9B,mCAA4C,KAA5C;AACA,SACE;AACE,IAAA,GAAG,EAAE,aAACC,KAAD;AAAA;;AAAA,2HACEC,sBADF,2BAC0C;AAC3CC,QAAAA,UAAU,YAAKL,QAAQ,GAAGG,KAAK,CAACG,QAAN,CAAeC,qBAAlB,GAA0CJ,KAAK,CAACK,OAAN,CAAcC,YAArE,CADiC;AAE3CC,QAAAA,WAAW,EAAEP,KAAK,CAACK,OAAN,CAAcC;AAFgB,OAD1C,+DAKEL,sBALF,yBAKwC;AACzCO,QAAAA,IAAI,EAAER,KAAK,CAACK,OAAN,CAAcI;AADqB,OALxC,+DAQER,sBARF,iBAQgC;AACjCO,QAAAA,IAAI,EAAE,MAD2B;AAEjCE,QAAAA,QAAQ,EAAE,UAFuB;AAGjCC,QAAAA,IAAI,EAAE,SAH2B;AAIjCC,QAAAA,GAAG,EAAE;AAJ4B,OARhC,oBAcC,CAACf,QAAD,oDACGI,sBADH,yBACyC;AACzCM,QAAAA,WAAW,EAAEP,KAAK,CAACK,OAAN,CAAcC;AADc,OADzC,CAdD,yFAmBEL,sBAnBF;AAoBDC,QAAAA,UAAU,EAAEL,QAAQ,GAAGG,KAAK,CAACG,QAAN,CAAeU,cAAlB,GAAmCb,KAAK,CAACG,QAAN,CAAeD;AApBrE,SAqBG,CAACL,QAAD,GACA;AACEiB,QAAAA,MAAM,EAAEhB,WAAW,
|
|
1
|
+
{"version":3,"sources":["Checkbox.tsx"],"names":["filterStyledLabelProps","props","StyledLabel","disabled","markInvalid","aligncenter","theme","INPUT_CLASSNAME","background","Checkbox","disablecheckedBgColor","general","primaryColor","borderColor","fill","backgroundColor","position","left","top","disableBgColor","border","invalidBorderColor","disableBorderColor","borderRadius","boxSizing","content","display","width","height","lineHeight","margin","color","children","filterCheckboxProps","React","forwardRef","ref","id","Math","random","toString","style","wrapperCSS","alignItems","justifyContent","outline","outlineOffset","marginBottom","opacity","cursor","CheckboxLabel"],"mappings":"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","sourcesContent":["/*\n * Wire\n * Copyright (C) 2018 Wire Swiss GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see http://www.gnu.org/licenses/.\n *\n */\n\n/** @jsx jsx */\nimport {jsx} from '@emotion/react';\nimport React from 'react';\n\nimport {Theme} from '../Layout';\nimport {Text, TextProps, textStyle} from '../Text';\nimport {filterProps} from '../util';\nimport {INPUT_CLASSNAME, InputProps} from './Input';\n\nexport interface StyledLabelProps<T = HTMLLabelElement> extends React.HTMLProps<T> {\n disabled?: boolean;\n markInvalid?: boolean;\n aligncenter?: boolean;\n}\n\nconst filterStyledLabelProps = (props: StyledLabelProps) => filterProps(props, ['markInvalid']);\n\nconst StyledLabel = (props: StyledLabelProps) => {\n const {disabled, markInvalid, aligncenter = false} = props;\n return (\n <label\n css={(theme: Theme) => ({\n [`.${INPUT_CLASSNAME}:checked + &::before`]: {\n background: `${disabled ? theme.Checkbox.disablecheckedBgColor : theme.general.primaryColor}`,\n borderColor: theme.general.primaryColor,\n },\n [`.${INPUT_CLASSNAME}:checked + & > svg`]: {\n fill: theme.general.backgroundColor,\n },\n [`.${INPUT_CLASSNAME} + & > svg`]: {\n fill: 'none',\n position: 'absolute',\n left: '0.25rem',\n top: '0.25rem',\n },\n ...(!disabled && {\n [`.${INPUT_CLASSNAME}:hover + &::before`]: {\n borderColor: theme.general.primaryColor,\n },\n }),\n [`.${INPUT_CLASSNAME} + &::before`]: {\n background: disabled ? theme.Checkbox.disableBgColor : theme.Checkbox.background,\n ...(!disabled\n ? {\n border: markInvalid\n ? `2px solid ${theme.Checkbox.invalidBorderColor}`\n : `2px solid ${theme.Checkbox.border}`,\n }\n : {\n border: `2px solid ${theme.Checkbox.disableBorderColor}`,\n }),\n borderRadius: '3px',\n boxSizing: 'border-box',\n content: '\"\"',\n display: 'inline-block',\n width: '22px',\n height: '22px',\n lineHeight: 1.4,\n margin: '0 8px 0 0px',\n color: theme.general.color,\n },\n position: 'relative',\n margin: '0 0 0 -16px',\n width: aligncenter ? 'auto' : '100%',\n lineHeight: 1.4,\n display: 'flex',\n opacity: disabled ? 0.56 : 1,\n cursor: disabled ? 'not-allowed' : 'pointer',\n borderRadius: '4px',\n })}\n {...filterStyledLabelProps(props)}\n >\n {props.children}\n <svg width=\"15\" height=\"13\" viewBox=\"0 0 16 13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.65685 12.0711L15.9842 1.62738L14.57 0.213167L5.65685 9.24264L1.41421 5L0 6.41421L5.65685 12.0711Z\" />\n </svg>\n </label>\n );\n};\n\ninterface CheckboxProps<T = HTMLInputElement> extends InputProps<T> {\n id?: string;\n aligncenter?: boolean;\n}\n\nconst filterCheckboxProps = (props: CheckboxProps) => filterProps(props, ['markInvalid']);\n\n// We use Math.random..., because some of apps doesn't migrated to newest version of React.\nexport const Checkbox: React.FC<CheckboxProps<HTMLInputElement>> = React.forwardRef<\n HTMLInputElement,\n CheckboxProps<HTMLInputElement>\n>(({id = Math.random().toString(), children, style, disabled, wrapperCSS = {}, ...props}, ref) => (\n <div\n css={(theme: Theme) => ({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'flex-start',\n position: 'relative',\n left: '-0.3rem',\n [`.${INPUT_CLASSNAME}:focus-visible + label`]: {\n outline: `1px solid ${theme.general.primaryColor}`,\n outlineOffset: '0.4rem',\n },\n ...wrapperCSS,\n })}\n style={style}\n >\n <input\n type=\"checkbox\"\n id={id}\n style={{\n height: '22px',\n marginBottom: '0',\n opacity: 0,\n width: '22px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n disabled={disabled}\n ref={ref}\n className={INPUT_CLASSNAME}\n {...filterCheckboxProps(props)}\n />\n\n <StyledLabel htmlFor={id} disabled={disabled} markInvalid={props.markInvalid} aligncenter={props.aligncenter}>\n {children}\n </StyledLabel>\n </div>\n));\n\nexport type CheckboxLabelProps<T = HTMLSpanElement> = TextProps<T>;\n\nexport const CheckboxLabel = ({...props}: CheckboxLabelProps) => (\n <Text\n css={(theme: Theme) => ({\n ...textStyle(theme, {\n ...props,\n }),\n })}\n {...props}\n />\n);\n"],"file":"Checkbox.js"}
|
package/src/Form/CodeInput.js
CHANGED
|
@@ -41,7 +41,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
41
41
|
} : {
|
|
42
42
|
name: "tvpiqi-CodeInputWrapper",
|
|
43
43
|
styles: "display:flex;justify-content:center;label:CodeInputWrapper;",
|
|
44
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvZGVJbnB1dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJJIiwiZmlsZSI6IkNvZGVJbnB1dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogV2lyZVxuICogQ29weXJpZ2h0IChDKSAyMDE4IFdpcmUgU3dpc3MgR21iSFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuLyoqIEBqc3gganN4ICovXG5pbXBvcnQge0NTU09iamVjdCwganN4fSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHtUaGVtZX0gZnJvbSAnLi4vTGF5b3V0JztcbmltcG9ydCB7bm9vcH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQge0lucHV0UHJvcHMsIGlucHV0U3R5bGV9IGZyb20gJy4vSW5wdXQnO1xuaW1wb3J0IHtDT0xPUl9WMn0gZnJvbSAnLi4vSWRlbnRpdHknO1xuXG5jb25zdCBDb2RlSW5wdXRXcmFwcGVyID0gKHByb3BzOiBSZWFjdC5IVE1MUHJvcHM8SFRNTERpdkVsZW1lbnQ+KSA9PiAoXG4gIDxkaXZcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbnR5cGUgRGlnaXRJbnB1dFByb3BzPFQgPSBIVE1MSW5wdXRFbGVtZW50PiA9IElucHV0UHJvcHM8VD47XG5cbmNvbnN0IGRpZ2l0SW5wdXRTdHlsZTogPFQ+
|
|
44
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvZGVJbnB1dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJJIiwiZmlsZSI6IkNvZGVJbnB1dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogV2lyZVxuICogQ29weXJpZ2h0IChDKSAyMDE4IFdpcmUgU3dpc3MgR21iSFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuLyoqIEBqc3gganN4ICovXG5pbXBvcnQge0NTU09iamVjdCwganN4fSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHtUaGVtZX0gZnJvbSAnLi4vTGF5b3V0JztcbmltcG9ydCB7bm9vcH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQge0lucHV0UHJvcHMsIGlucHV0U3R5bGV9IGZyb20gJy4vSW5wdXQnO1xuaW1wb3J0IHtDT0xPUl9WMn0gZnJvbSAnLi4vSWRlbnRpdHknO1xuXG5jb25zdCBDb2RlSW5wdXRXcmFwcGVyID0gKHByb3BzOiBSZWFjdC5IVE1MUHJvcHM8SFRNTERpdkVsZW1lbnQ+KSA9PiAoXG4gIDxkaXZcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbnR5cGUgRGlnaXRJbnB1dFByb3BzPFQgPSBIVE1MSW5wdXRFbGVtZW50PiA9IElucHV0UHJvcHM8VD47XG5cbmNvbnN0IGRpZ2l0SW5wdXRTdHlsZTogPFQ+KHRoZW1lOiBUaGVtZSwgcHJvcHM6IERpZ2l0SW5wdXRQcm9wczxUPikgPT4gQ1NTT2JqZWN0ID0gKHRoZW1lLCBwcm9wcykgPT4gKHtcbiAgLi4uaW5wdXRTdHlsZSh0aGVtZSwgcHJvcHMpLFxuICAnJiArICYnOiB7XG4gICAgbWFyZ2luTGVmdDogJ21pbigxOXB4LCAydncpJyxcbiAgfSxcbiAgJyY6aG92ZXInOiB7XG4gICAgYm94U2hhZG93OiBgMCAwIDAgMXB4ICR7Q09MT1JfVjIuR1JBWV82MH1gLFxuICB9LFxuICBmb250U2l6ZTogJzI0cHgnLFxuICBsaW5lSGVpZ2h0OiAnMjhweCcsXG4gIGJvcmRlclJhZGl1czogJzEycHgnLFxuICBwYWRkaW5nOiAwLFxuICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICB3aWR0aDogJ21pbig0OHB4LCAxM3Z3KScsXG4gIGhlaWdodDogJzU2cHgnLFxufSk7XG5cbmNvbnN0IERpZ2l0SW5wdXQ6IFJlYWN0LkZDPERpZ2l0SW5wdXRQcm9wczxIVE1MSW5wdXRFbGVtZW50Pj4gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MSW5wdXRFbGVtZW50LFxuICBEaWdpdElucHV0UHJvcHM8SFRNTElucHV0RWxlbWVudD5cbj4oKHByb3BzLCByZWYpID0+IDxpbnB1dCByZWY9e3JlZn0gY3NzPXsodGhlbWU6IFRoZW1lKSA9PiBkaWdpdElucHV0U3R5bGUodGhlbWUsIHByb3BzKX0gey4uLnByb3BzfSB0eXBlPVwidGVsXCIgLz4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVJbnB1dFByb3BzPFQgPSBIVE1MSW5wdXRFbGVtZW50PiBleHRlbmRzIElucHV0UHJvcHM8VD4ge1xuICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICBkaWdpdHM/OiBudW1iZXI7XG4gIG1hcmtJbnZhbGlkPzogYm9vbGVhbjtcbiAgb25Db2RlQ29tcGxldGU/OiAoY29tcGxldGVDb2RlPzogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgQ29kZUlucHV0ID0gKHtcbiAgc3R5bGUsXG4gIGRpZ2l0cyA9IDYsXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxuICBtYXJrSW52YWxpZCxcbiAgb25Db2RlQ29tcGxldGUgPSBub29wLFxuICBkaXNhYmxlZCxcbn06IENvZGVJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IFt2YWx1ZXMsIHNldFZhbHVlc10gPSB1c2VTdGF0ZShBcnJheShkaWdpdHMpLmZpbGwoJycpKTtcbiAgY29uc3QgaW5wdXRzID0gQXJyYXkoZGlnaXRzKTtcblxuICBjb25zdCBmb3JjZVNlbGVjdGlvbiA9IChcbiAgICBldmVudDpcbiAgICAgIHwgUmVhY3QuTW91c2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PlxuICAgICAgfCBSZWFjdC5Ub3VjaEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+XG4gICAgICB8IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD5cbiAgICAgIHwgUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGFyZ2V0LnNlbGVjdCgpO1xuICB9O1xuXG4gIGNvbnN0IGZvcmNlU2VsZWN0aW9uUHJldmVudERlZmF1bHQgPSAoXG4gICAgZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4gfCBSZWFjdC5Ub3VjaEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+LFxuICApID0+IHtcbiAgICBmb3JjZVNlbGVjdGlvbihldmVudCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBjb25zdCBuZXh0RmllbGQgPSAoY3VycmVudEZpZWxkSW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG5leHRGaWVsZEluZGV4ID0gY3VycmVudEZpZWxkSW5kZXggKyAxO1xuICAgIGlmIChuZXh0RmllbGRJbmRleCA8IGRpZ2l0cykge1xuICAgICAgaW5wdXRzW25leHRGaWVsZEluZGV4XS5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBwcmV2aW91c0ZpZWxkID0gKGN1cnJlbnRGaWVsZEluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoY3VycmVudEZpZWxkSW5kZXggPiAwKSB7XG4gICAgICBpbnB1dHNbY3VycmVudEZpZWxkSW5kZXggLSAxXS5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzZXRWYWx1ZSA9IChmaWVsZEluZGV4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoL15bMC05XT8kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgY29uc3QgdmFsdWVzQ29weSA9IHZhbHVlcy5zbGljZSgpO1xuICAgICAgdmFsdWVzQ29weVtmaWVsZEluZGV4XSA9IHZhbHVlO1xuICAgICAgc2V0VmFsdWVzKHZhbHVlc0NvcHkpO1xuICAgICAgaWYgKHZhbHVlLmxlbmd0aCkge1xuICAgICAgICBuZXh0RmllbGQoZmllbGRJbmRleCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZmllbGRJbmRleDogbnVtYmVyLCB7a2V5fTogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICBzZXRWYWx1ZShmaWVsZEluZGV4LCAnJyk7XG4gICAgICAgIHByZXZpb3VzRmllbGQoZmllbGRJbmRleCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgcHJldmlvdXNGaWVsZChmaWVsZEluZGV4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgbmV4dEZpZWxkKGZpZWxkSW5kZXgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKC9eWzAtOV0kLy50ZXN0KGtleSkpIHtcbiAgICAgIHNldFZhbHVlKGZpZWxkSW5kZXgsIGtleSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVBhc3RlID0gKGZpZWxkSW5kZXg6IG51bWJlciwgZXZlbnQ6IFJlYWN0LkNsaXBib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgcGFzdGVkVmFsdWUgPSBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ1RleHQnKTtcbiAgICBjb25zdCBjbGVhbmVkUGFzdGUgPSBwYXN0ZWRWYWx1ZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xuICAgIGlmICgvXlswLTldKyQvLnRlc3QoY2xlYW5lZFBhc3RlKSkge1xuICAgICAgc2V0VmFsdWVzKHZhbHVlcy5zbGljZSgwLCBmaWVsZEluZGV4KS5jb25jYXQoY2xlYW5lZFBhc3RlLnNwbGl0KCcnKSkuc2xpY2UoMCwgZGlnaXRzKSk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29tcGxldGVDb2RlID0gdmFsdWVzLmpvaW4oJycpO1xuICAgIGlmIChjb21wbGV0ZUNvZGUubGVuZ3RoID09PSBkaWdpdHMpIHtcbiAgICAgIG9uQ29kZUNvbXBsZXRlKGNvbXBsZXRlQ29kZSk7XG4gICAgfVxuICB9LCBbdmFsdWVzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29kZUlucHV0V3JhcHBlciBzdHlsZT17c3R5bGV9PlxuICAgICAge0FycmF5LmZyb20oe2xlbmd0aDogZGlnaXRzfSwgKF8sIGluZGV4KSA9PiAoXG4gICAgICAgIDxEaWdpdElucHV0XG4gICAgICAgICAgYXV0b0ZvY3VzPXtpbmRleCA9PT0gMCAmJiBhdXRvRm9jdXN9XG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICBvblBhc3RlPXtldmVudCA9PiBoYW5kbGVQYXN0ZShpbmRleCwgZXZlbnQpfVxuICAgICAgICAgIG9uRm9jdXM9e2ZvcmNlU2VsZWN0aW9ufVxuICAgICAgICAgIG9uTW91c2VEb3duPXtmb3JjZVNlbGVjdGlvblByZXZlbnREZWZhdWx0fVxuICAgICAgICAgIG9uVG91Y2hTdGFydD17Zm9yY2VTZWxlY3Rpb25QcmV2ZW50RGVmYXVsdH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IGhhbmRsZUtleURvd24oaW5kZXgsIGV2ZW50KX1cbiAgICAgICAgICBvbktleVVwPXtmb3JjZVNlbGVjdGlvbn1cbiAgICAgICAgICBtYXJrSW52YWxpZD17bWFya0ludmFsaWR9XG4gICAgICAgICAgcmVmPXtub2RlID0+IChpbnB1dHNbaW5kZXhdID0gbm9kZSl9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlc1tpbmRleF19XG4gICAgICAgICAgb25DaGFuZ2U9eygpID0+IHt9fVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvQ29kZUlucHV0V3JhcHBlcj5cbiAgKTtcbn07XG4iXX0= */",
|
|
45
45
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
46
46
|
};
|
|
47
47
|
|
|
@@ -54,7 +54,7 @@ var CodeInputWrapper = function CodeInputWrapper(props) {
|
|
|
54
54
|
var digitInputStyle = function digitInputStyle(theme, props) {
|
|
55
55
|
return _objectSpread(_objectSpread({}, (0, _Input.inputStyle)(theme, props)), {}, {
|
|
56
56
|
'& + &': {
|
|
57
|
-
marginLeft: '19px'
|
|
57
|
+
marginLeft: 'min(19px, 2vw)'
|
|
58
58
|
},
|
|
59
59
|
'&:hover': {
|
|
60
60
|
boxShadow: "0 0 0 1px ".concat(_Identity.COLOR_V2.GRAY_60)
|
|
@@ -64,7 +64,7 @@ var digitInputStyle = function digitInputStyle(theme, props) {
|
|
|
64
64
|
borderRadius: '12px',
|
|
65
65
|
padding: 0,
|
|
66
66
|
textAlign: 'center',
|
|
67
|
-
width: '48px',
|
|
67
|
+
width: 'min(48px, 13vw)',
|
|
68
68
|
height: '56px'
|
|
69
69
|
});
|
|
70
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CodeInput.tsx"],"names":["CodeInputWrapper","props","digitInputStyle","theme","marginLeft","boxShadow","COLOR_V2","GRAY_60","fontSize","lineHeight","borderRadius","padding","textAlign","width","height","DigitInput","React","forwardRef","ref","CodeInput","style","digits","autoFocus","markInvalid","onCodeComplete","noop","disabled","Array","fill","values","setValues","inputs","forceSelection","event","target","select","forceSelectionPreventDefault","preventDefault","nextField","currentFieldIndex","nextFieldIndex","focus","previousField","setValue","fieldIndex","value","test","valuesCopy","slice","length","handleKeyDown","key","handlePaste","pastedValue","clipboardData","getData","cleanedPaste","replace","concat","split","completeCode","join","from","_","index","node"],"mappings":"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","sourcesContent":["/*\n * Wire\n * Copyright (C) 2018 Wire Swiss GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see http://www.gnu.org/licenses/.\n *\n */\n\n/** @jsx jsx */\nimport {CSSObject, jsx} from '@emotion/react';\nimport React, {useEffect, useState} from 'react';\n\nimport type {Theme} from '../Layout';\nimport {noop} from '../util';\nimport {InputProps, inputStyle} from './Input';\nimport {COLOR_V2} from '../Identity';\n\nconst CodeInputWrapper = (props: React.HTMLProps<HTMLDivElement>) => (\n <div\n css={{\n display: 'flex',\n justifyContent: 'center',\n }}\n {...props}\n />\n);\n\ntype DigitInputProps<T = HTMLInputElement> = InputProps<T>;\n\nconst digitInputStyle: <T>(theme: Theme, props: DigitInputProps<T>) => CSSObject = (theme, props) => ({\n ...inputStyle(theme, props),\n '& + &': {\n marginLeft: '19px',\n },\n '&:hover': {\n boxShadow: `0 0 0 1px ${COLOR_V2.GRAY_60}`,\n },\n fontSize: '24px',\n lineHeight: '28px',\n borderRadius: '12px',\n padding: 0,\n textAlign: 'center',\n width: '48px',\n height: '56px',\n});\n\nconst DigitInput: React.FC<DigitInputProps<HTMLInputElement>> = React.forwardRef<\n HTMLInputElement,\n DigitInputProps<HTMLInputElement>\n>((props, ref) => <input ref={ref} css={(theme: Theme) => digitInputStyle(theme, props)} {...props} type=\"tel\" />);\n\nexport interface CodeInputProps<T = HTMLInputElement> extends InputProps<T> {\n autoFocus?: boolean;\n digits?: number;\n markInvalid?: boolean;\n onCodeComplete?: (completeCode?: string) => void;\n}\n\nexport const CodeInput = ({\n style,\n digits = 6,\n autoFocus = false,\n markInvalid,\n onCodeComplete = noop,\n disabled,\n}: CodeInputProps) => {\n const [values, setValues] = useState(Array(digits).fill(''));\n const inputs = Array(digits);\n\n const forceSelection = (\n event:\n | React.MouseEvent<HTMLInputElement>\n | React.TouchEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n | React.FocusEvent<HTMLInputElement>,\n ) => {\n const target = event.target as HTMLInputElement;\n target.select();\n };\n\n const forceSelectionPreventDefault = (\n event: React.MouseEvent<HTMLInputElement> | React.TouchEvent<HTMLInputElement>,\n ) => {\n forceSelection(event);\n event.preventDefault();\n };\n\n const nextField = (currentFieldIndex: number) => {\n const nextFieldIndex = currentFieldIndex + 1;\n if (nextFieldIndex < digits) {\n inputs[nextFieldIndex].focus();\n }\n };\n\n const previousField = (currentFieldIndex: number) => {\n if (currentFieldIndex > 0) {\n inputs[currentFieldIndex - 1].focus();\n }\n };\n\n const setValue = (fieldIndex: number, value: string) => {\n if (/^[0-9]?$/.test(value)) {\n const valuesCopy = values.slice();\n valuesCopy[fieldIndex] = value;\n setValues(valuesCopy);\n if (value.length) {\n nextField(fieldIndex);\n }\n }\n };\n\n const handleKeyDown = (fieldIndex: number, {key}: React.KeyboardEvent<HTMLInputElement>) => {\n switch (key) {\n case 'Backspace':\n setValue(fieldIndex, '');\n previousField(fieldIndex);\n break;\n case 'ArrowLeft':\n previousField(fieldIndex);\n break;\n case 'ArrowRight':\n nextField(fieldIndex);\n break;\n }\n if (/^[0-9]$/.test(key)) {\n setValue(fieldIndex, key);\n }\n };\n\n const handlePaste = (fieldIndex: number, event: React.ClipboardEvent<HTMLInputElement>) => {\n const pastedValue = event.clipboardData.getData('Text');\n const cleanedPaste = pastedValue.replace(/[^0-9]/g, '');\n if (/^[0-9]+$/.test(cleanedPaste)) {\n setValues(values.slice(0, fieldIndex).concat(cleanedPaste.split('')).slice(0, digits));\n }\n };\n\n useEffect(() => {\n const completeCode = values.join('');\n if (completeCode.length === digits) {\n onCodeComplete(completeCode);\n }\n }, [values]);\n\n return (\n <CodeInputWrapper style={style}>\n {Array.from({length: digits}, (_, index) => (\n <DigitInput\n autoFocus={index === 0 && autoFocus}\n key={index}\n onPaste={event => handlePaste(index, event)}\n onFocus={forceSelection}\n onMouseDown={forceSelectionPreventDefault}\n onTouchStart={forceSelectionPreventDefault}\n onKeyDown={event => handleKeyDown(index, event)}\n onKeyUp={forceSelection}\n markInvalid={markInvalid}\n ref={node => (inputs[index] = node)}\n value={values[index]}\n onChange={() => {}}\n disabled={disabled}\n />\n ))}\n </CodeInputWrapper>\n );\n};\n"],"file":"CodeInput.js"}
|
|
1
|
+
{"version":3,"sources":["CodeInput.tsx"],"names":["CodeInputWrapper","props","digitInputStyle","theme","marginLeft","boxShadow","COLOR_V2","GRAY_60","fontSize","lineHeight","borderRadius","padding","textAlign","width","height","DigitInput","React","forwardRef","ref","CodeInput","style","digits","autoFocus","markInvalid","onCodeComplete","noop","disabled","Array","fill","values","setValues","inputs","forceSelection","event","target","select","forceSelectionPreventDefault","preventDefault","nextField","currentFieldIndex","nextFieldIndex","focus","previousField","setValue","fieldIndex","value","test","valuesCopy","slice","length","handleKeyDown","key","handlePaste","pastedValue","clipboardData","getData","cleanedPaste","replace","concat","split","completeCode","join","from","_","index","node"],"mappings":"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","sourcesContent":["/*\n * Wire\n * Copyright (C) 2018 Wire Swiss GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see http://www.gnu.org/licenses/.\n *\n */\n\n/** @jsx jsx */\nimport {CSSObject, jsx} from '@emotion/react';\nimport React, {useEffect, useState} from 'react';\n\nimport type {Theme} from '../Layout';\nimport {noop} from '../util';\nimport {InputProps, inputStyle} from './Input';\nimport {COLOR_V2} from '../Identity';\n\nconst CodeInputWrapper = (props: React.HTMLProps<HTMLDivElement>) => (\n <div\n css={{\n display: 'flex',\n justifyContent: 'center',\n }}\n {...props}\n />\n);\n\ntype DigitInputProps<T = HTMLInputElement> = InputProps<T>;\n\nconst digitInputStyle: <T>(theme: Theme, props: DigitInputProps<T>) => CSSObject = (theme, props) => ({\n ...inputStyle(theme, props),\n '& + &': {\n marginLeft: 'min(19px, 2vw)',\n },\n '&:hover': {\n boxShadow: `0 0 0 1px ${COLOR_V2.GRAY_60}`,\n },\n fontSize: '24px',\n lineHeight: '28px',\n borderRadius: '12px',\n padding: 0,\n textAlign: 'center',\n width: 'min(48px, 13vw)',\n height: '56px',\n});\n\nconst DigitInput: React.FC<DigitInputProps<HTMLInputElement>> = React.forwardRef<\n HTMLInputElement,\n DigitInputProps<HTMLInputElement>\n>((props, ref) => <input ref={ref} css={(theme: Theme) => digitInputStyle(theme, props)} {...props} type=\"tel\" />);\n\nexport interface CodeInputProps<T = HTMLInputElement> extends InputProps<T> {\n autoFocus?: boolean;\n digits?: number;\n markInvalid?: boolean;\n onCodeComplete?: (completeCode?: string) => void;\n}\n\nexport const CodeInput = ({\n style,\n digits = 6,\n autoFocus = false,\n markInvalid,\n onCodeComplete = noop,\n disabled,\n}: CodeInputProps) => {\n const [values, setValues] = useState(Array(digits).fill(''));\n const inputs = Array(digits);\n\n const forceSelection = (\n event:\n | React.MouseEvent<HTMLInputElement>\n | React.TouchEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n | React.FocusEvent<HTMLInputElement>,\n ) => {\n const target = event.target as HTMLInputElement;\n target.select();\n };\n\n const forceSelectionPreventDefault = (\n event: React.MouseEvent<HTMLInputElement> | React.TouchEvent<HTMLInputElement>,\n ) => {\n forceSelection(event);\n event.preventDefault();\n };\n\n const nextField = (currentFieldIndex: number) => {\n const nextFieldIndex = currentFieldIndex + 1;\n if (nextFieldIndex < digits) {\n inputs[nextFieldIndex].focus();\n }\n };\n\n const previousField = (currentFieldIndex: number) => {\n if (currentFieldIndex > 0) {\n inputs[currentFieldIndex - 1].focus();\n }\n };\n\n const setValue = (fieldIndex: number, value: string) => {\n if (/^[0-9]?$/.test(value)) {\n const valuesCopy = values.slice();\n valuesCopy[fieldIndex] = value;\n setValues(valuesCopy);\n if (value.length) {\n nextField(fieldIndex);\n }\n }\n };\n\n const handleKeyDown = (fieldIndex: number, {key}: React.KeyboardEvent<HTMLInputElement>) => {\n switch (key) {\n case 'Backspace':\n setValue(fieldIndex, '');\n previousField(fieldIndex);\n break;\n case 'ArrowLeft':\n previousField(fieldIndex);\n break;\n case 'ArrowRight':\n nextField(fieldIndex);\n break;\n }\n if (/^[0-9]$/.test(key)) {\n setValue(fieldIndex, key);\n }\n };\n\n const handlePaste = (fieldIndex: number, event: React.ClipboardEvent<HTMLInputElement>) => {\n const pastedValue = event.clipboardData.getData('Text');\n const cleanedPaste = pastedValue.replace(/[^0-9]/g, '');\n if (/^[0-9]+$/.test(cleanedPaste)) {\n setValues(values.slice(0, fieldIndex).concat(cleanedPaste.split('')).slice(0, digits));\n }\n };\n\n useEffect(() => {\n const completeCode = values.join('');\n if (completeCode.length === digits) {\n onCodeComplete(completeCode);\n }\n }, [values]);\n\n return (\n <CodeInputWrapper style={style}>\n {Array.from({length: digits}, (_, index) => (\n <DigitInput\n autoFocus={index === 0 && autoFocus}\n key={index}\n onPaste={event => handlePaste(index, event)}\n onFocus={forceSelection}\n onMouseDown={forceSelectionPreventDefault}\n onTouchStart={forceSelectionPreventDefault}\n onKeyDown={event => handleKeyDown(index, event)}\n onKeyUp={forceSelection}\n markInvalid={markInvalid}\n ref={node => (inputs[index] = node)}\n value={values[index]}\n onChange={() => {}}\n disabled={disabled}\n />\n ))}\n </CodeInputWrapper>\n );\n};\n"],"file":"CodeInput.js"}
|
package/src/Text/Link.js
CHANGED
|
@@ -60,7 +60,7 @@ var linkStyle = function linkStyle(theme, _ref) {
|
|
|
60
60
|
color: color
|
|
61
61
|
}
|
|
62
62
|
}, variant === LinkVariant.PRIMARY && {
|
|
63
|
-
'&:hover, &:visited:hover': {
|
|
63
|
+
'&:hover, &:visited:hover, &:focus-visible': {
|
|
64
64
|
color: theme.general.primaryColor
|
|
65
65
|
},
|
|
66
66
|
fontSize: '16px',
|
package/src/Text/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Link.tsx"],"names":["LinkVariant","linkStyle","theme","bold","fontSize","textTransform","variant","SECONDARY","color","general","props","cursor","textDecoration","PRIMARY","primaryColor","fontWeight","textUnderlineOffset","transition","defaultTransition","filter","filterLinkProps","Link","targetBlank","children"],"mappings":";;;;;;;;;;;;;;;AAoBA;;AACA;;AAEA;;AACA;;;;;;;;IAEYA,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAUL,IAAMC,SAA8D,GAAG,SAAjEA,SAAiE,CAC5EC,KAD4E,QAUzE;AAAA,uBAPDC,IAOC;AAAA,MAPDA,IAOC,0BAPM,IAON;AAAA,2BANDC,QAMC;AAAA,MANDA,QAMC,8BANU,MAMV;AAAA,gCALDC,aAKC;AAAA,MALDA,aAKC,mCALe,WAKf;AAAA,0BAJDC,OAIC;AAAA,MAJDA,OAIC,6BAJSN,WAAW,CAACO,SAIrB;AAAA,wBAHDC,KAGC;AAAA,MAHDA,KAGC,2BAHON,KAAK,CAACO,OAAN,CAAcD,KAGrB;AAAA,MAFEE,KAEF;AACH,uDACK,qBAAUR,KAAV;AAAkBC,IAAAA,IAAI,EAAJA,IAAlB;AAAwBK,IAAAA,KAAK,EAALA,KAAxB;AAA+BJ,IAAAA,QAAQ,EAARA,QAA/B;AAAyCC,IAAAA,aAAa,EAAbA;AAAzC,KAA2DK,KAA3D,EADL;AAEEF,IAAAA,KAAK,EAAEA,KAFT;AAGEG,IAAAA,MAAM,EAAE,SAHV;AAIEC,IAAAA,cAAc,EAAE,MAJlB;AAKE,mCAA+B;AAC7BJ,MAAAA,KAAK,EAAEA;AADsB;AALjC,KAQMF,OAAO,KAAKN,WAAW,CAACa,OAAxB,IAAmC;AACrC,
|
|
1
|
+
{"version":3,"sources":["Link.tsx"],"names":["LinkVariant","linkStyle","theme","bold","fontSize","textTransform","variant","SECONDARY","color","general","props","cursor","textDecoration","PRIMARY","primaryColor","fontWeight","textUnderlineOffset","transition","defaultTransition","filter","filterLinkProps","Link","targetBlank","children"],"mappings":";;;;;;;;;;;;;;;AAoBA;;AACA;;AAEA;;AACA;;;;;;;;IAEYA,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAUL,IAAMC,SAA8D,GAAG,SAAjEA,SAAiE,CAC5EC,KAD4E,QAUzE;AAAA,uBAPDC,IAOC;AAAA,MAPDA,IAOC,0BAPM,IAON;AAAA,2BANDC,QAMC;AAAA,MANDA,QAMC,8BANU,MAMV;AAAA,gCALDC,aAKC;AAAA,MALDA,aAKC,mCALe,WAKf;AAAA,0BAJDC,OAIC;AAAA,MAJDA,OAIC,6BAJSN,WAAW,CAACO,SAIrB;AAAA,wBAHDC,KAGC;AAAA,MAHDA,KAGC,2BAHON,KAAK,CAACO,OAAN,CAAcD,KAGrB;AAAA,MAFEE,KAEF;AACH,uDACK,qBAAUR,KAAV;AAAkBC,IAAAA,IAAI,EAAJA,IAAlB;AAAwBK,IAAAA,KAAK,EAALA,KAAxB;AAA+BJ,IAAAA,QAAQ,EAARA,QAA/B;AAAyCC,IAAAA,aAAa,EAAbA;AAAzC,KAA2DK,KAA3D,EADL;AAEEF,IAAAA,KAAK,EAAEA,KAFT;AAGEG,IAAAA,MAAM,EAAE,SAHV;AAIEC,IAAAA,cAAc,EAAE,MAJlB;AAKE,mCAA+B;AAC7BJ,MAAAA,KAAK,EAAEA;AADsB;AALjC,KAQMF,OAAO,KAAKN,WAAW,CAACa,OAAxB,IAAmC;AACrC,iDAA6C;AAC3CL,MAAAA,KAAK,EAAEN,KAAK,CAACO,OAAN,CAAcK;AADsB,KADR;AAIrCV,IAAAA,QAAQ,EAAE,MAJ2B;AAKrCW,IAAAA,UAAU,EAAE,GALyB;AAMrCV,IAAAA,aAAa,EAAE,MANsB;AAOrCO,IAAAA,cAAc,EAAE,WAPqB;AAQrCI,IAAAA,mBAAmB,EAAE;AARgB,GARzC,GAkBMV,OAAO,KAAKN,WAAW,CAACO,SAAxB,IAAqC;AACvCU,IAAAA,UAAU,EAAEC,0BAD2B;AAEvC,eAAW;AACTC,MAAAA,MAAM,EAAE;AADC;AAF4B,GAlB3C;AAyBD,CApCM;;;;AAsCA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACV,KAAD;AAAA,SAAsB,uBAAY,2BAAgBA,KAAhB,CAAZ,EAAiD,EAAjD,CAAtB;AAAA,CAAxB;;;;AAEA,IAAMW,IAAI,GAAG,SAAPA,IAAO,CAACX,KAAD,EAAsB;AACxC,SACE;AACE,IAAA,GAAG,EAAE,aAACR,KAAD;AAAA,aAAkBD,SAAS,CAACC,KAAD,EAAQQ,KAAR,CAA3B;AAAA,KADP;AAEE,IAAA,MAAM,EAAEA,KAAK,CAACY,WAAN,IAAqB,QAF/B;AAGE,IAAA,GAAG,EAAC;AAHN,KAIMF,eAAe,CAACV,KAAD,CAJrB,GAMGA,KAAK,CAACa,QANT,CADF;AAUD,CAXM","sourcesContent":["/*\n * Wire\n * Copyright (C) 2018 Wire Swiss GmbH\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see http://www.gnu.org/licenses/.\n *\n */\n\n/** @jsx jsx */\nimport {CSSObject, jsx} from '@emotion/react';\nimport {defaultTransition} from '../Identity/motions';\nimport {Theme} from '../Layout';\nimport {filterProps} from '../util';\nimport {TextProps, filterTextProps, textStyle} from './Text';\n\nexport enum LinkVariant {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n}\n\nexport interface LinkProps<T = HTMLAnchorElement> extends TextProps<T> {\n variant?: LinkVariant;\n targetBlank?: Boolean;\n}\n\nexport const linkStyle: <T>(theme: Theme, props: LinkProps<T>) => CSSObject = (\n theme,\n {\n bold = true,\n fontSize = '11px',\n textTransform = 'uppercase',\n variant = LinkVariant.SECONDARY,\n color = theme.general.color,\n ...props\n },\n) => {\n return {\n ...textStyle(theme, {bold, color, fontSize, textTransform, ...props}),\n color: color,\n cursor: 'pointer',\n textDecoration: 'none',\n '&:visited, &:link, &:active': {\n color: color,\n },\n ...(variant === LinkVariant.PRIMARY && {\n '&:hover, &:visited:hover, &:focus-visible': {\n color: theme.general.primaryColor,\n },\n fontSize: '16px',\n fontWeight: 400,\n textTransform: 'none',\n textDecoration: 'underline',\n textUnderlineOffset: '2px',\n }),\n ...(variant === LinkVariant.SECONDARY && {\n transition: defaultTransition,\n '&:hover': {\n filter: 'brightness(70%)',\n },\n }),\n };\n};\n\nexport const filterLinkProps = (props: LinkProps) => filterProps(filterTextProps(props) as LinkProps, []);\n\nexport const Link = (props: LinkProps) => {\n return (\n <a\n css={(theme: Theme) => linkStyle(theme, props)}\n target={props.targetBlank && '_blank'}\n rel=\"noopener noreferrer\"\n {...filterLinkProps(props)}\n >\n {props.children}\n </a>\n );\n};\n"],"file":"Link.js"}
|