@bacon-pos/ui 0.4.0 → 0.5.0

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 (53) hide show
  1. package/lib/commonjs/components/CodeField/CodeField.js +95 -65
  2. package/lib/commonjs/components/CodeField/CodeField.js.map +1 -1
  3. package/lib/commonjs/components/CodeField/CodeField.stories.js +24 -1
  4. package/lib/commonjs/components/CodeField/CodeField.stories.js.map +1 -1
  5. package/lib/commonjs/components/CodeField/CodeField.test.js +28 -0
  6. package/lib/commonjs/components/CodeField/CodeField.test.js.map +1 -1
  7. package/lib/commonjs/components/Keypad/Keypad.js +162 -0
  8. package/lib/commonjs/components/Keypad/Keypad.js.map +1 -0
  9. package/lib/commonjs/components/Keypad/Keypad.stories.js +210 -0
  10. package/lib/commonjs/components/Keypad/Keypad.stories.js.map +1 -0
  11. package/lib/commonjs/components/Keypad/Keypad.test.js +119 -0
  12. package/lib/commonjs/components/Keypad/Keypad.test.js.map +1 -0
  13. package/lib/commonjs/components/Keypad/index.js +13 -0
  14. package/lib/commonjs/components/Keypad/index.js.map +1 -0
  15. package/lib/commonjs/components/index.js +20 -9
  16. package/lib/commonjs/components/index.js.map +1 -1
  17. package/lib/module/components/CodeField/CodeField.js +95 -65
  18. package/lib/module/components/CodeField/CodeField.js.map +1 -1
  19. package/lib/module/components/CodeField/CodeField.stories.js +23 -0
  20. package/lib/module/components/CodeField/CodeField.stories.js.map +1 -1
  21. package/lib/module/components/CodeField/CodeField.test.js +28 -0
  22. package/lib/module/components/CodeField/CodeField.test.js.map +1 -1
  23. package/lib/module/components/Keypad/Keypad.js +158 -0
  24. package/lib/module/components/Keypad/Keypad.js.map +1 -0
  25. package/lib/module/components/Keypad/Keypad.stories.js +206 -0
  26. package/lib/module/components/Keypad/Keypad.stories.js.map +1 -0
  27. package/lib/module/components/Keypad/Keypad.test.js +119 -0
  28. package/lib/module/components/Keypad/Keypad.test.js.map +1 -0
  29. package/lib/module/components/Keypad/index.js +4 -0
  30. package/lib/module/components/Keypad/index.js.map +1 -0
  31. package/lib/module/components/index.js +1 -0
  32. package/lib/module/components/index.js.map +1 -1
  33. package/lib/typescript/commonjs/components/CodeField/CodeField.d.ts +5 -1
  34. package/lib/typescript/commonjs/components/CodeField/CodeField.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/components/Keypad/Keypad.d.ts +54 -0
  36. package/lib/typescript/commonjs/components/Keypad/Keypad.d.ts.map +1 -0
  37. package/lib/typescript/commonjs/components/Keypad/index.d.ts +3 -0
  38. package/lib/typescript/commonjs/components/Keypad/index.d.ts.map +1 -0
  39. package/lib/typescript/commonjs/components/index.d.ts +1 -0
  40. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  41. package/lib/typescript/module/components/CodeField/CodeField.d.ts +5 -1
  42. package/lib/typescript/module/components/CodeField/CodeField.d.ts.map +1 -1
  43. package/lib/typescript/module/components/Keypad/Keypad.d.ts +54 -0
  44. package/lib/typescript/module/components/Keypad/Keypad.d.ts.map +1 -0
  45. package/lib/typescript/module/components/Keypad/index.d.ts +3 -0
  46. package/lib/typescript/module/components/Keypad/index.d.ts.map +1 -0
  47. package/lib/typescript/module/components/index.d.ts +1 -0
  48. package/lib/typescript/module/components/index.d.ts.map +1 -1
  49. package/package.json +1 -1
  50. package/src/components/CodeField/CodeField.tsx +104 -64
  51. package/src/components/Keypad/Keypad.tsx +191 -0
  52. package/src/components/Keypad/index.ts +2 -0
  53. package/src/components/index.ts +1 -0
@@ -11,6 +11,16 @@ const WEB_NO_OUTLINE = {
11
11
  outlineStyle: 'none',
12
12
  outlineWidth: 0
13
13
  };
14
+
15
+ /** Convert a `#RRGGBB` (or `#RGB`) token to an `rgba()` string at the given alpha. */
16
+ function hexToRgba(hex, alpha) {
17
+ const h = hex.replace('#', '');
18
+ const full = h.length === 3 ? h.replace(/./g, c => c + c) : h;
19
+ const r = parseInt(full.slice(0, 2), 16);
20
+ const g = parseInt(full.slice(2, 4), 16);
21
+ const b = parseInt(full.slice(4, 6), 16);
22
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
23
+ }
14
24
  /** Chars to strip per mode (applied after upper-casing). */
15
25
  const DISALLOWED = {
16
26
  numeric: /[^0-9]/g,
@@ -29,6 +39,8 @@ export function CodeField({
29
39
  length = 6,
30
40
  mode = 'numeric',
31
41
  onComplete,
42
+ helperText,
43
+ error,
32
44
  disabled = false,
33
45
  autoFocus = false,
34
46
  cellWidth = 126,
@@ -48,78 +60,96 @@ export function CodeField({
48
60
  if (next.length === length) onComplete?.(next);
49
61
  };
50
62
  const activeIndex = Math.min(value.length, length - 1);
51
- return /*#__PURE__*/_jsxs(Pressable, {
52
- onPress: () => inputRef.current?.focus(),
53
- disabled: disabled,
63
+ const hasError = Boolean(error);
64
+ const message = typeof error === 'string' ? error : helperText;
65
+ return /*#__PURE__*/_jsxs(View, {
54
66
  style: [{
55
- position: 'relative',
56
67
  alignSelf: 'flex-start'
57
68
  }, style],
58
- children: [/*#__PURE__*/_jsx(View, {
69
+ children: [/*#__PURE__*/_jsxs(Pressable, {
70
+ onPress: () => inputRef.current?.focus(),
71
+ disabled: disabled,
59
72
  style: {
60
- flexDirection: 'row',
61
- gap
73
+ position: 'relative'
62
74
  },
63
- children: Array.from({
64
- length
65
- }).map((_, i) => {
66
- const isActive = focused && i === activeIndex && !disabled;
67
- return /*#__PURE__*/_jsx(View, {
68
- testID: "code-field-cell",
69
- style: {
70
- width: cellWidth,
71
- height: cellHeight,
72
- borderRadius: theme.radii.pill,
73
- borderWidth: 1,
74
- borderColor: isActive ? theme.colors.border.focus : theme.colors.border.default,
75
- backgroundColor: disabled ? theme.colors.disabled.background : theme.colors.background.default,
76
- alignItems: 'center',
77
- justifyContent: 'center',
78
- opacity: disabled ? 0.6 : 1,
79
- ...(isActive ? {
80
- boxShadow: [{
81
- offsetX: 0,
82
- offsetY: 0,
83
- blurRadius: 0,
84
- spreadDistance: 6,
85
- color: 'rgba(201,255,0,0.15)'
86
- }]
87
- } : null)
88
- },
89
- children: /*#__PURE__*/_jsx(Text, {
90
- color: disabled ? 'tertiary' : 'primary',
75
+ children: [/*#__PURE__*/_jsx(View, {
76
+ style: {
77
+ flexDirection: 'row',
78
+ gap
79
+ },
80
+ children: Array.from({
81
+ length
82
+ }).map((_, i) => {
83
+ const isActive = focused && i === activeIndex && !disabled;
84
+ // Error overrides the default/focus border on every cell; the active
85
+ // cell still gets the ring (red on error, lime otherwise).
86
+ const borderColor = hasError ? theme.colors.feedback.error : isActive ? theme.colors.border.focus : theme.colors.border.default;
87
+ const ringColor = hasError ? hexToRgba(theme.colors.feedback.error, 0.15) : 'rgba(201,255,0,0.15)';
88
+ return /*#__PURE__*/_jsx(View, {
89
+ testID: "code-field-cell",
91
90
  style: {
92
- fontFamily: fontFamily ?? theme.fontFamily.regular,
93
- fontSize,
94
- lineHeight: Math.round(fontSize * 1.45)
91
+ width: cellWidth,
92
+ height: cellHeight,
93
+ borderRadius: theme.radii.pill,
94
+ borderWidth: 1,
95
+ borderColor,
96
+ backgroundColor: disabled ? theme.colors.disabled.background : theme.colors.background.default,
97
+ alignItems: 'center',
98
+ justifyContent: 'center',
99
+ opacity: disabled ? 0.6 : 1,
100
+ ...(isActive ? {
101
+ boxShadow: [{
102
+ offsetX: 0,
103
+ offsetY: 0,
104
+ blurRadius: 0,
105
+ spreadDistance: 6,
106
+ color: ringColor
107
+ }]
108
+ } : null)
95
109
  },
96
- children: value[i] ?? ''
97
- })
98
- }, i);
99
- })
100
- }), /*#__PURE__*/_jsx(TextInput, {
101
- ref: inputRef,
102
- value: value,
103
- onChangeText: handleChange,
104
- onFocus: () => setFocused(true),
105
- onBlur: () => setFocused(false),
106
- keyboardType: mode === 'numeric' ? 'number-pad' : 'default',
107
- autoCapitalize: "characters",
108
- autoCorrect: false,
109
- maxLength: length,
110
- editable: !disabled,
111
- caretHidden: true,
112
- autoFocus: autoFocus,
113
- accessibilityLabel: accessibilityLabel,
114
- style: [{
115
- position: 'absolute',
116
- top: 0,
117
- left: 0,
118
- right: 0,
119
- bottom: 0,
120
- opacity: 0
121
- }, WEB_NO_OUTLINE]
122
- })]
110
+ children: /*#__PURE__*/_jsx(Text, {
111
+ color: disabled ? 'tertiary' : 'primary',
112
+ style: {
113
+ fontFamily: fontFamily ?? theme.fontFamily.regular,
114
+ fontSize,
115
+ lineHeight: Math.round(fontSize * 1.45)
116
+ },
117
+ children: value[i] ?? ''
118
+ })
119
+ }, i);
120
+ })
121
+ }), /*#__PURE__*/_jsx(TextInput, {
122
+ ref: inputRef,
123
+ value: value,
124
+ onChangeText: handleChange,
125
+ onFocus: () => setFocused(true),
126
+ onBlur: () => setFocused(false),
127
+ keyboardType: mode === 'numeric' ? 'number-pad' : 'default',
128
+ autoCapitalize: "characters",
129
+ autoCorrect: false,
130
+ maxLength: length,
131
+ editable: !disabled,
132
+ caretHidden: true,
133
+ autoFocus: autoFocus,
134
+ accessibilityLabel: accessibilityLabel,
135
+ style: [{
136
+ position: 'absolute',
137
+ top: 0,
138
+ left: 0,
139
+ right: 0,
140
+ bottom: 0,
141
+ opacity: 0
142
+ }, WEB_NO_OUTLINE]
143
+ })]
144
+ }), message ? /*#__PURE__*/_jsx(Text, {
145
+ variant: "bodySmall",
146
+ color: hasError ? theme.colors.feedback.error : 'tertiary',
147
+ style: {
148
+ marginTop: 8,
149
+ marginLeft: 8
150
+ },
151
+ children: message
152
+ }) : null]
123
153
  });
124
154
  }
125
155
  //# sourceMappingURL=CodeField.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useState","Pressable","TextInput","View","useTheme","Text","jsx","_jsx","jsxs","_jsxs","WEB_NO_OUTLINE","outlineStyle","outlineWidth","DISALLOWED","numeric","alpha","alphanumeric","CodeField","value","onChangeText","length","mode","onComplete","disabled","autoFocus","cellWidth","cellHeight","gap","fontFamily","fontSize","accessibilityLabel","style","theme","inputRef","focused","setFocused","handleChange","text","next","toUpperCase","replace","slice","activeIndex","Math","min","onPress","current","focus","position","alignSelf","children","flexDirection","Array","from","map","_","i","isActive","testID","width","height","borderRadius","radii","pill","borderWidth","borderColor","colors","border","default","backgroundColor","background","alignItems","justifyContent","opacity","boxShadow","offsetX","offsetY","blurRadius","spreadDistance","color","regular","lineHeight","round","ref","onFocus","onBlur","keyboardType","autoCapitalize","autoCorrect","maxLength","editable","caretHidden","top","left","right","bottom"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CodeField/CodeField.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","useState","Pressable","TextInput","View","useTheme","Text","jsx","_jsx","jsxs","_jsxs","WEB_NO_OUTLINE","outlineStyle","outlineWidth","hexToRgba","hex","alpha","h","replace","full","length","c","r","parseInt","slice","g","b","DISALLOWED","numeric","alphanumeric","CodeField","value","onChangeText","mode","onComplete","helperText","error","disabled","autoFocus","cellWidth","cellHeight","gap","fontFamily","fontSize","accessibilityLabel","style","theme","inputRef","focused","setFocused","handleChange","text","next","toUpperCase","activeIndex","Math","min","hasError","Boolean","message","alignSelf","children","onPress","current","focus","position","flexDirection","Array","from","map","_","i","isActive","borderColor","colors","feedback","border","default","ringColor","testID","width","height","borderRadius","radii","pill","borderWidth","backgroundColor","background","alignItems","justifyContent","opacity","boxShadow","offsetX","offsetY","blurRadius","spreadDistance","color","regular","lineHeight","round","ref","onFocus","onBlur","keyboardType","autoCapitalize","autoCorrect","maxLength","editable","caretHidden","top","left","right","bottom","variant","marginTop","marginLeft"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CodeField/CodeField.tsx"],"mappings":"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","ignoreList":[]}
@@ -69,4 +69,27 @@ export const Disabled = {
69
69
  disabled: true
70
70
  })
71
71
  };
72
+ // Error state — red cells + focus ring, message below (like Input).
73
+ export const Error = {
74
+ render: () => /*#__PURE__*/_jsx(Demo, {
75
+ length: 4,
76
+ error: "That code is incorrect. Try again."
77
+ })
78
+ };
79
+ export const ErrorHelperText = {
80
+ render: () => /*#__PURE__*/_jsxs(View, {
81
+ style: {
82
+ gap: 24,
83
+ alignItems: 'flex-start'
84
+ },
85
+ children: [/*#__PURE__*/_jsx(Demo, {
86
+ length: 4,
87
+ helperText: "Enter the 4-digit code we sent you."
88
+ }), /*#__PURE__*/_jsx(Demo, {
89
+ length: 4,
90
+ error: true,
91
+ helperText: "Enter the 4-digit code we sent you."
92
+ })]
93
+ })
94
+ };
72
95
  //# sourceMappingURL=CodeField.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","View","CodeField","Text","jsx","_jsx","jsxs","_jsxs","meta","title","component","Demo","props","value","setValue","done","setDone","style","gap","alignItems","children","onChangeText","onComplete","variant","color","Default","render","length","Compact","cellWidth","Alphanumeric","mode","Alpha","Disabled","disabled"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CodeField/CodeField.stories.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,SAAS,QAA4B,gBAAa;AAC3D,SAASC,IAAI,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpC,MAAMC,IAAI,GAAG;EACXC,KAAK,EAAE,sBAAsB;EAC7BC,SAAS,EAAER;AACb,CAAkC;AAElC,eAAeM,IAAI;AAGnB,SAASG,IAAIA,CAACC,KAQb,EAAE;EACD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGd,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAM,CAACe,IAAI,EAAEC,OAAO,CAAC,GAAGhB,QAAQ,CAAC,EAAE,CAAC;EACpC,oBACEO,KAAA,CAACN,IAAI;IAACgB,KAAK,EAAE;MAAEC,GAAG,EAAE,CAAC;MAAEC,UAAU,EAAE;IAAa,CAAE;IAAAC,QAAA,gBAChDf,IAAA,CAACH,SAAS;MAACW,KAAK,EAAEA,KAAM;MAACQ,YAAY,EAAEP,QAAS;MAACQ,UAAU,EAAEN,OAAQ;MAAA,GAAKJ;IAAK,CAAG,CAAC,eACnFL,KAAA,CAACJ,IAAI;MAACoB,OAAO,EAAC,SAAS;MAACC,KAAK,EAAC,WAAW;MAAAJ,QAAA,GAAC,WAChC,EAACP,KAAK,EAAC,IAAC,EAACE,IAAI,GAAG,gBAAgBA,IAAI,EAAE,GAAG,EAAE;IAAA,CAC/C,CAAC;EAAA,CACH,CAAC;AAEX;;AAEA;AACA,OAAO,MAAMU,OAAc,GAAG;EAAEC,MAAM,EAAEA,CAAA,kBAAMrB,IAAA,CAACM,IAAI;IAACgB,MAAM,EAAE;EAAE,CAAE;AAAE,CAAC;AACnE;AACA,OAAO,MAAMC,OAAc,GAAG;EAAEF,MAAM,EAAEA,CAAA,kBAAMrB,IAAA,CAACM,IAAI;IAACgB,MAAM,EAAE,CAAE;IAACE,SAAS,EAAE,EAAG;IAACX,GAAG,EAAE;EAAE,CAAE;AAAE,CAAC;AAC1F,OAAO,MAAMY,YAAmB,GAAG;EACjCJ,MAAM,EAAEA,CAAA,kBAAMrB,IAAA,CAACM,IAAI;IAACgB,MAAM,EAAE,CAAE;IAACI,IAAI,EAAC,cAAc;IAACF,SAAS,EAAE,EAAG;IAACX,GAAG,EAAE;EAAE,CAAE;AAC7E,CAAC;AACD,OAAO,MAAMc,KAAY,GAAG;EAAEN,MAAM,EAAEA,CAAA,kBAAMrB,IAAA,CAACM,IAAI;IAACgB,MAAM,EAAE,CAAE;IAACI,IAAI,EAAC,OAAO;IAACF,SAAS,EAAE,EAAG;IAACX,GAAG,EAAE;EAAE,CAAE;AAAE,CAAC;AACrG,OAAO,MAAMe,QAAe,GAAG;EAAEP,MAAM,EAAEA,CAAA,kBAAMrB,IAAA,CAACM,IAAI;IAACgB,MAAM,EAAE,CAAE;IAACE,SAAS,EAAE,EAAG;IAACX,GAAG,EAAE,CAAE;IAACgB,QAAQ;EAAA,CAAE;AAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useState","View","CodeField","Text","jsx","_jsx","jsxs","_jsxs","meta","title","component","Demo","props","value","setValue","done","setDone","style","gap","alignItems","children","onChangeText","onComplete","variant","color","Default","render","length","Compact","cellWidth","Alphanumeric","mode","Alpha","Disabled","disabled","Error","error","ErrorHelperText","helperText"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CodeField/CodeField.stories.tsx"],"mappings":"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","ignoreList":[]}
@@ -74,5 +74,33 @@ describe('CodeField', () => {
74
74
  expect(screen.getByText('1')).toBeTruthy();
75
75
  expect(screen.getByText('2')).toBeTruthy();
76
76
  });
77
+ it('shows the error message when error is a string', () => {
78
+ renderWithTheme(/*#__PURE__*/_jsx(CodeField, {
79
+ value: "",
80
+ onChangeText: () => {},
81
+ error: "Wrong code"
82
+ }));
83
+ expect(screen.getByText('Wrong code')).toBeTruthy();
84
+ });
85
+ it('shows helperText, and the error message replaces it when error is a string', () => {
86
+ const {
87
+ rerender
88
+ } = renderWithTheme(/*#__PURE__*/_jsx(CodeField, {
89
+ value: "",
90
+ onChangeText: () => {},
91
+ helperText: "Enter your code"
92
+ }));
93
+ expect(screen.getByText('Enter your code')).toBeTruthy();
94
+ rerender(/*#__PURE__*/_jsx(ThemeProvider, {
95
+ children: /*#__PURE__*/_jsx(CodeField, {
96
+ value: "",
97
+ onChangeText: () => {},
98
+ helperText: "Enter your code",
99
+ error: "Wrong code"
100
+ })
101
+ }));
102
+ expect(screen.getByText('Wrong code')).toBeTruthy();
103
+ expect(screen.queryByText('Enter your code')).toBeNull();
104
+ });
77
105
  });
78
106
  //# sourceMappingURL=CodeField.test.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","screen","fireEvent","CodeField","ThemeProvider","jsx","_jsx","renderWithTheme","ui","children","describe","it","value","onChangeText","length","expect","getAllByTestId","toHaveLength","jest","fn","mode","changeText","getByLabelText","toHaveBeenCalledWith","onComplete","getByText","toBeTruthy"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CodeField/CodeField.test.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AACzE,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,aAAa,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5C,SAASC,eAAeA,CAACC,EAAsB,EAAE;EAC/C,OAAOR,MAAM,cAACM,IAAA,CAACF,aAAa;IAAAK,QAAA,EAAED;EAAE,CAAgB,CAAC,CAAC;AACpD;AAEAE,QAAQ,CAAC,WAAW,EAAE,MAAM;EAC1BC,EAAE,CAAC,6BAA6B,EAAE,MAAM;IACtCJ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAE;MAACC,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC1EC,MAAM,CAACd,MAAM,CAACe,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;EAClE,CAAC,CAAC;EAEFN,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACzC,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9BZ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACO,IAAI,EAAC,SAAS;MAACN,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC7FZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,MAAM,CAAC;EACnD,CAAC,CAAC;EAEFZ,EAAE,CAAC,kDAAkD,EAAE,MAAM;IAC3D,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9BZ,eAAe,cACbD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACO,IAAI,EAAC,cAAc;MAACN,MAAM,EAAE;IAAE,CAAE,CAClF,CAAC;IACDZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,MAAM,CAAC;EACnD,CAAC,CAAC;EAEFZ,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACnC,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9BZ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACO,IAAI,EAAC,OAAO;MAACN,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC3FZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,KAAK,CAAC;EAClD,CAAC,CAAC;EAEFZ,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7D,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9B,MAAMK,UAAU,GAAGN,IAAI,CAACC,EAAE,CAAC,CAAC;IAC5BZ,eAAe,cACbD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACW,UAAU,EAAEA,UAAW;MAACV,MAAM,EAAE;IAAE,CAAE,CACtF,CAAC;IACDZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,MAAM,CAAC;IACjDR,MAAM,CAACS,UAAU,CAAC,CAACD,oBAAoB,CAAC,MAAM,CAAC;EACjD,CAAC,CAAC;EAEFZ,EAAE,CAAC,uCAAuC,EAAE,MAAM;IAChDJ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,IAAI;MAACC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAE;MAACC,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC5EC,MAAM,CAACd,MAAM,CAACwB,SAAS,CAAC,GAAG,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;IAC1CX,MAAM,CAACd,MAAM,CAACwB,SAAS,CAAC,GAAG,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EAC5C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","render","screen","fireEvent","CodeField","ThemeProvider","jsx","_jsx","renderWithTheme","ui","children","describe","it","value","onChangeText","length","expect","getAllByTestId","toHaveLength","jest","fn","mode","changeText","getByLabelText","toHaveBeenCalledWith","onComplete","getByText","toBeTruthy","error","rerender","helperText","queryByText","toBeNull"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CodeField/CodeField.test.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AACzE,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,aAAa,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5C,SAASC,eAAeA,CAACC,EAAsB,EAAE;EAC/C,OAAOR,MAAM,cAACM,IAAA,CAACF,aAAa;IAAAK,QAAA,EAAED;EAAE,CAAgB,CAAC,CAAC;AACpD;AAEAE,QAAQ,CAAC,WAAW,EAAE,MAAM;EAC1BC,EAAE,CAAC,6BAA6B,EAAE,MAAM;IACtCJ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAE;MAACC,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC1EC,MAAM,CAACd,MAAM,CAACe,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;EAClE,CAAC,CAAC;EAEFN,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACzC,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9BZ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACO,IAAI,EAAC,SAAS;MAACN,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC7FZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,MAAM,CAAC;EACnD,CAAC,CAAC;EAEFZ,EAAE,CAAC,kDAAkD,EAAE,MAAM;IAC3D,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9BZ,eAAe,cACbD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACO,IAAI,EAAC,cAAc;MAACN,MAAM,EAAE;IAAE,CAAE,CAClF,CAAC;IACDZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,MAAM,CAAC;EACnD,CAAC,CAAC;EAEFZ,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACnC,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9BZ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACO,IAAI,EAAC,OAAO;MAACN,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC3FZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,KAAK,CAAC;EAClD,CAAC,CAAC;EAEFZ,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7D,MAAME,YAAY,GAAGK,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9B,MAAMK,UAAU,GAAGN,IAAI,CAACC,EAAE,CAAC,CAAC;IAC5BZ,eAAe,cACbD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,YAAa;MAACW,UAAU,EAAEA,UAAW;MAACV,MAAM,EAAE;IAAE,CAAE,CACtF,CAAC;IACDZ,SAAS,CAACmB,UAAU,CAACpB,MAAM,CAACqB,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC7DP,MAAM,CAACF,YAAY,CAAC,CAACU,oBAAoB,CAAC,MAAM,CAAC;IACjDR,MAAM,CAACS,UAAU,CAAC,CAACD,oBAAoB,CAAC,MAAM,CAAC;EACjD,CAAC,CAAC;EAEFZ,EAAE,CAAC,uCAAuC,EAAE,MAAM;IAChDJ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,IAAI;MAACC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAE;MAACC,MAAM,EAAE;IAAE,CAAE,CAAC,CAAC;IAC5EC,MAAM,CAACd,MAAM,CAACwB,SAAS,CAAC,GAAG,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;IAC1CX,MAAM,CAACd,MAAM,CAACwB,SAAS,CAAC,GAAG,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EAC5C,CAAC,CAAC;EAEFf,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzDJ,eAAe,cAACD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAE;MAACc,KAAK,EAAC;IAAY,CAAE,CAAC,CAAC;IAClFZ,MAAM,CAACd,MAAM,CAACwB,SAAS,CAAC,YAAY,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFf,EAAE,CAAC,4EAA4E,EAAE,MAAM;IACrF,MAAM;MAAEiB;IAAS,CAAC,GAAGrB,eAAe,cAClCD,IAAA,CAACH,SAAS;MAACS,KAAK,EAAC,EAAE;MAACC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAE;MAACgB,UAAU,EAAC;IAAiB,CAAE,CAC5E,CAAC;IACDd,MAAM,CAACd,MAAM,CAACwB,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;IACxDE,QAAQ,cACNtB,IAAA,CAACF,aAAa;MAAAK,QAAA,eACZH,IAAA,CAACH,SAAS;QAACS,KAAK,EAAC,EAAE;QAACC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAE;QAACgB,UAAU,EAAC,iBAAiB;QAACF,KAAK,EAAC;MAAY,CAAE;IAAC,CACjF,CACjB,CAAC;IACDZ,MAAM,CAACd,MAAM,CAACwB,SAAS,CAAC,YAAY,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;IACnDX,MAAM,CAACd,MAAM,CAAC6B,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC1D,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ import { Pressable, View } from 'react-native';
4
+ import { useTheme } from "../../theme/index.js";
5
+ import { Icon } from "../Icon/Icon.js";
6
+ import { Text } from "../Text/Text.js";
7
+
8
+ /** The optional key to the left of 0. Hidden unless provided. */
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const ROWS = [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']];
11
+
12
+ /**
13
+ * Numeric keypad — a 3-column pad decoupled from what it drives (bind it to a
14
+ * PIN display, an amount, etc. via `value`/`onChangeText`, and put that display
15
+ * in `header`). Backspace is fixed to the right of 0; the key left of 0 is hidden
16
+ * unless you pass `extraKey` (custom symbol/icon, action and colors). Width,
17
+ * key height, gap and digit size are all configurable.
18
+ */
19
+ export function Keypad({
20
+ value = '',
21
+ onChangeText,
22
+ onKeyPress,
23
+ maxLength,
24
+ header,
25
+ extraKey,
26
+ keyHeight = 83,
27
+ gap = 8,
28
+ width,
29
+ digitSize = 24,
30
+ headerGap = 24,
31
+ disabled = false,
32
+ style
33
+ }) {
34
+ const theme = useTheme();
35
+ const keyStyle = bg => ({
36
+ flex: 1,
37
+ height: keyHeight,
38
+ borderRadius: theme.radii.xl,
39
+ borderWidth: 1,
40
+ borderColor: theme.colors.border.strong,
41
+ backgroundColor: bg ?? theme.colors.action.secondary,
42
+ alignItems: 'center',
43
+ justifyContent: 'center'
44
+ });
45
+ const pressDigit = digit => {
46
+ onKeyPress?.(digit);
47
+ if (maxLength != null && value.length >= maxLength) return;
48
+ onChangeText?.(value + digit);
49
+ };
50
+ const pressBackspace = () => {
51
+ onKeyPress?.('backspace');
52
+ onChangeText?.(value.slice(0, -1));
53
+ };
54
+ const pressExtra = () => {
55
+ onKeyPress?.('extra');
56
+ if (extraKey?.onPress) {
57
+ extraKey.onPress();
58
+ return;
59
+ }
60
+ if (extraKey?.value != null) {
61
+ if (maxLength != null && value.length >= maxLength) return;
62
+ onChangeText?.(value + extraKey.value);
63
+ }
64
+ };
65
+ const DigitKey = ({
66
+ digit
67
+ }) => /*#__PURE__*/_jsx(Pressable, {
68
+ onPress: () => pressDigit(digit),
69
+ disabled: disabled,
70
+ accessibilityRole: "button",
71
+ accessibilityLabel: digit,
72
+ style: ({
73
+ pressed
74
+ }) => [keyStyle(), {
75
+ opacity: disabled ? 0.5 : pressed ? 0.85 : 1
76
+ }],
77
+ children: /*#__PURE__*/_jsx(Text, {
78
+ variant: "h2",
79
+ color: theme.colors.action.secondaryForeground,
80
+ style: {
81
+ fontSize: digitSize,
82
+ lineHeight: Math.round(digitSize * 1.35)
83
+ },
84
+ children: digit
85
+ })
86
+ });
87
+ return /*#__PURE__*/_jsxs(View, {
88
+ style: [{
89
+ width: width ?? '100%',
90
+ gap
91
+ }, style],
92
+ children: [header != null ? /*#__PURE__*/_jsx(View, {
93
+ style: {
94
+ marginBottom: headerGap - gap
95
+ },
96
+ children: header
97
+ }) : null, ROWS.map(row => /*#__PURE__*/_jsx(View, {
98
+ style: {
99
+ flexDirection: 'row',
100
+ gap
101
+ },
102
+ children: row.map(digit => /*#__PURE__*/_jsx(DigitKey, {
103
+ digit: digit
104
+ }, digit))
105
+ }, row[0])), /*#__PURE__*/_jsxs(View, {
106
+ style: {
107
+ flexDirection: 'row',
108
+ gap
109
+ },
110
+ children: [extraKey ? /*#__PURE__*/_jsx(Pressable, {
111
+ onPress: pressExtra,
112
+ disabled: disabled,
113
+ accessibilityRole: "button",
114
+ accessibilityLabel: extraKey.label ?? 'action',
115
+ style: ({
116
+ pressed
117
+ }) => [keyStyle(extraKey.backgroundColor), {
118
+ opacity: disabled ? 0.5 : pressed ? 0.85 : 1
119
+ }],
120
+ children: extraKey.icon ? /*#__PURE__*/_jsx(Icon, {
121
+ name: extraKey.icon,
122
+ size: 24,
123
+ color: extraKey.color ?? theme.colors.action.secondaryForeground
124
+ }) : /*#__PURE__*/_jsx(Text, {
125
+ variant: "h2",
126
+ color: extraKey.color ?? theme.colors.action.secondaryForeground,
127
+ style: {
128
+ fontSize: digitSize,
129
+ lineHeight: Math.round(digitSize * 1.35)
130
+ },
131
+ children: extraKey.label ?? ''
132
+ })
133
+ }) : /*#__PURE__*/_jsx(View, {
134
+ style: {
135
+ flex: 1
136
+ }
137
+ }), /*#__PURE__*/_jsx(DigitKey, {
138
+ digit: "0"
139
+ }), /*#__PURE__*/_jsx(Pressable, {
140
+ onPress: pressBackspace,
141
+ disabled: disabled,
142
+ accessibilityRole: "button",
143
+ accessibilityLabel: "Backspace",
144
+ style: ({
145
+ pressed
146
+ }) => [keyStyle(), {
147
+ opacity: disabled ? 0.5 : pressed ? 0.85 : 1
148
+ }],
149
+ children: /*#__PURE__*/_jsx(Icon, {
150
+ name: "arrow-left",
151
+ size: 24,
152
+ color: theme.colors.action.secondaryForeground
153
+ })
154
+ })]
155
+ })]
156
+ });
157
+ }
158
+ //# sourceMappingURL=Keypad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Pressable","View","useTheme","Icon","Text","jsx","_jsx","jsxs","_jsxs","ROWS","Keypad","value","onChangeText","onKeyPress","maxLength","header","extraKey","keyHeight","gap","width","digitSize","headerGap","disabled","style","theme","keyStyle","bg","flex","height","borderRadius","radii","xl","borderWidth","borderColor","colors","border","strong","backgroundColor","action","secondary","alignItems","justifyContent","pressDigit","digit","length","pressBackspace","slice","pressExtra","onPress","DigitKey","accessibilityRole","accessibilityLabel","pressed","opacity","children","variant","color","secondaryForeground","fontSize","lineHeight","Math","round","marginBottom","map","row","flexDirection","label","icon","name","size"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Keypad/Keypad.tsx"],"mappings":"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","ignoreList":[]}