@bacon-pos/ui 0.3.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 (101) 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/Dialog/Dialog.js +23 -4
  8. package/lib/commonjs/components/Dialog/Dialog.js.map +1 -1
  9. package/lib/commonjs/components/Dialog/Dialog.stories.js +49 -1
  10. package/lib/commonjs/components/Dialog/Dialog.stories.js.map +1 -1
  11. package/lib/commonjs/components/Keypad/Keypad.js +162 -0
  12. package/lib/commonjs/components/Keypad/Keypad.js.map +1 -0
  13. package/lib/commonjs/components/Keypad/Keypad.stories.js +210 -0
  14. package/lib/commonjs/components/Keypad/Keypad.stories.js.map +1 -0
  15. package/lib/commonjs/components/Keypad/Keypad.test.js +119 -0
  16. package/lib/commonjs/components/Keypad/Keypad.test.js.map +1 -0
  17. package/lib/commonjs/components/Keypad/index.js +13 -0
  18. package/lib/commonjs/components/Keypad/index.js.map +1 -0
  19. package/lib/commonjs/components/Toast/Toast.js +184 -0
  20. package/lib/commonjs/components/Toast/Toast.js.map +1 -0
  21. package/lib/commonjs/components/Toast/Toast.stories.js +109 -0
  22. package/lib/commonjs/components/Toast/Toast.stories.js.map +1 -0
  23. package/lib/commonjs/components/Toast/Toast.test.js +70 -0
  24. package/lib/commonjs/components/Toast/Toast.test.js.map +1 -0
  25. package/lib/commonjs/components/Toast/ToastProvider.js +95 -0
  26. package/lib/commonjs/components/Toast/ToastProvider.js.map +1 -0
  27. package/lib/commonjs/components/Toast/index.js +26 -0
  28. package/lib/commonjs/components/Toast/index.js.map +1 -0
  29. package/lib/commonjs/components/index.js +30 -8
  30. package/lib/commonjs/components/index.js.map +1 -1
  31. package/lib/module/components/CodeField/CodeField.js +95 -65
  32. package/lib/module/components/CodeField/CodeField.js.map +1 -1
  33. package/lib/module/components/CodeField/CodeField.stories.js +23 -0
  34. package/lib/module/components/CodeField/CodeField.stories.js.map +1 -1
  35. package/lib/module/components/CodeField/CodeField.test.js +28 -0
  36. package/lib/module/components/CodeField/CodeField.test.js.map +1 -1
  37. package/lib/module/components/Dialog/Dialog.js +23 -4
  38. package/lib/module/components/Dialog/Dialog.js.map +1 -1
  39. package/lib/module/components/Dialog/Dialog.stories.js +48 -0
  40. package/lib/module/components/Dialog/Dialog.stories.js.map +1 -1
  41. package/lib/module/components/Keypad/Keypad.js +158 -0
  42. package/lib/module/components/Keypad/Keypad.js.map +1 -0
  43. package/lib/module/components/Keypad/Keypad.stories.js +206 -0
  44. package/lib/module/components/Keypad/Keypad.stories.js.map +1 -0
  45. package/lib/module/components/Keypad/Keypad.test.js +119 -0
  46. package/lib/module/components/Keypad/Keypad.test.js.map +1 -0
  47. package/lib/module/components/Keypad/index.js +4 -0
  48. package/lib/module/components/Keypad/index.js.map +1 -0
  49. package/lib/module/components/Toast/Toast.js +180 -0
  50. package/lib/module/components/Toast/Toast.js.map +1 -0
  51. package/lib/module/components/Toast/Toast.stories.js +105 -0
  52. package/lib/module/components/Toast/Toast.stories.js.map +1 -0
  53. package/lib/module/components/Toast/Toast.test.js +69 -0
  54. package/lib/module/components/Toast/Toast.test.js.map +1 -0
  55. package/lib/module/components/Toast/ToastProvider.js +90 -0
  56. package/lib/module/components/Toast/ToastProvider.js.map +1 -0
  57. package/lib/module/components/Toast/index.js +5 -0
  58. package/lib/module/components/Toast/index.js.map +1 -0
  59. package/lib/module/components/index.js +2 -0
  60. package/lib/module/components/index.js.map +1 -1
  61. package/lib/typescript/commonjs/components/CodeField/CodeField.d.ts +5 -1
  62. package/lib/typescript/commonjs/components/CodeField/CodeField.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +5 -1
  64. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/components/Keypad/Keypad.d.ts +54 -0
  66. package/lib/typescript/commonjs/components/Keypad/Keypad.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/components/Keypad/index.d.ts +3 -0
  68. package/lib/typescript/commonjs/components/Keypad/index.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/components/Toast/Toast.d.ts +40 -0
  70. package/lib/typescript/commonjs/components/Toast/Toast.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts +34 -0
  72. package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/components/Toast/index.d.ts +3 -0
  74. package/lib/typescript/commonjs/components/Toast/index.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/components/index.d.ts +2 -0
  76. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  77. package/lib/typescript/module/components/CodeField/CodeField.d.ts +5 -1
  78. package/lib/typescript/module/components/CodeField/CodeField.d.ts.map +1 -1
  79. package/lib/typescript/module/components/Dialog/Dialog.d.ts +5 -1
  80. package/lib/typescript/module/components/Dialog/Dialog.d.ts.map +1 -1
  81. package/lib/typescript/module/components/Keypad/Keypad.d.ts +54 -0
  82. package/lib/typescript/module/components/Keypad/Keypad.d.ts.map +1 -0
  83. package/lib/typescript/module/components/Keypad/index.d.ts +3 -0
  84. package/lib/typescript/module/components/Keypad/index.d.ts.map +1 -0
  85. package/lib/typescript/module/components/Toast/Toast.d.ts +40 -0
  86. package/lib/typescript/module/components/Toast/Toast.d.ts.map +1 -0
  87. package/lib/typescript/module/components/Toast/ToastProvider.d.ts +34 -0
  88. package/lib/typescript/module/components/Toast/ToastProvider.d.ts.map +1 -0
  89. package/lib/typescript/module/components/Toast/index.d.ts +3 -0
  90. package/lib/typescript/module/components/Toast/index.d.ts.map +1 -0
  91. package/lib/typescript/module/components/index.d.ts +2 -0
  92. package/lib/typescript/module/components/index.d.ts.map +1 -1
  93. package/package.json +1 -1
  94. package/src/components/CodeField/CodeField.tsx +104 -64
  95. package/src/components/Dialog/Dialog.tsx +40 -10
  96. package/src/components/Keypad/Keypad.tsx +191 -0
  97. package/src/components/Keypad/index.ts +2 -0
  98. package/src/components/Toast/Toast.tsx +173 -0
  99. package/src/components/Toast/ToastProvider.tsx +126 -0
  100. package/src/components/Toast/index.ts +7 -0
  101. package/src/components/index.ts +2 -0
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Keypad = Keypad;
7
+ var _reactNative = require("react-native");
8
+ var _index = require("../../theme/index.js");
9
+ var _Icon = require("../Icon/Icon.js");
10
+ var _Text = require("../Text/Text.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /** The optional key to the left of 0. Hidden unless provided. */
13
+
14
+ const ROWS = [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']];
15
+
16
+ /**
17
+ * Numeric keypad — a 3-column pad decoupled from what it drives (bind it to a
18
+ * PIN display, an amount, etc. via `value`/`onChangeText`, and put that display
19
+ * in `header`). Backspace is fixed to the right of 0; the key left of 0 is hidden
20
+ * unless you pass `extraKey` (custom symbol/icon, action and colors). Width,
21
+ * key height, gap and digit size are all configurable.
22
+ */
23
+ function Keypad({
24
+ value = '',
25
+ onChangeText,
26
+ onKeyPress,
27
+ maxLength,
28
+ header,
29
+ extraKey,
30
+ keyHeight = 83,
31
+ gap = 8,
32
+ width,
33
+ digitSize = 24,
34
+ headerGap = 24,
35
+ disabled = false,
36
+ style
37
+ }) {
38
+ const theme = (0, _index.useTheme)();
39
+ const keyStyle = bg => ({
40
+ flex: 1,
41
+ height: keyHeight,
42
+ borderRadius: theme.radii.xl,
43
+ borderWidth: 1,
44
+ borderColor: theme.colors.border.strong,
45
+ backgroundColor: bg ?? theme.colors.action.secondary,
46
+ alignItems: 'center',
47
+ justifyContent: 'center'
48
+ });
49
+ const pressDigit = digit => {
50
+ onKeyPress?.(digit);
51
+ if (maxLength != null && value.length >= maxLength) return;
52
+ onChangeText?.(value + digit);
53
+ };
54
+ const pressBackspace = () => {
55
+ onKeyPress?.('backspace');
56
+ onChangeText?.(value.slice(0, -1));
57
+ };
58
+ const pressExtra = () => {
59
+ onKeyPress?.('extra');
60
+ if (extraKey?.onPress) {
61
+ extraKey.onPress();
62
+ return;
63
+ }
64
+ if (extraKey?.value != null) {
65
+ if (maxLength != null && value.length >= maxLength) return;
66
+ onChangeText?.(value + extraKey.value);
67
+ }
68
+ };
69
+ const DigitKey = ({
70
+ digit
71
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
72
+ onPress: () => pressDigit(digit),
73
+ disabled: disabled,
74
+ accessibilityRole: "button",
75
+ accessibilityLabel: digit,
76
+ style: ({
77
+ pressed
78
+ }) => [keyStyle(), {
79
+ opacity: disabled ? 0.5 : pressed ? 0.85 : 1
80
+ }],
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
82
+ variant: "h2",
83
+ color: theme.colors.action.secondaryForeground,
84
+ style: {
85
+ fontSize: digitSize,
86
+ lineHeight: Math.round(digitSize * 1.35)
87
+ },
88
+ children: digit
89
+ })
90
+ });
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
92
+ style: [{
93
+ width: width ?? '100%',
94
+ gap
95
+ }, style],
96
+ children: [header != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
97
+ style: {
98
+ marginBottom: headerGap - gap
99
+ },
100
+ children: header
101
+ }) : null, ROWS.map(row => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
102
+ style: {
103
+ flexDirection: 'row',
104
+ gap
105
+ },
106
+ children: row.map(digit => /*#__PURE__*/(0, _jsxRuntime.jsx)(DigitKey, {
107
+ digit: digit
108
+ }, digit))
109
+ }, row[0])), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
110
+ style: {
111
+ flexDirection: 'row',
112
+ gap
113
+ },
114
+ children: [extraKey ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
115
+ onPress: pressExtra,
116
+ disabled: disabled,
117
+ accessibilityRole: "button",
118
+ accessibilityLabel: extraKey.label ?? 'action',
119
+ style: ({
120
+ pressed
121
+ }) => [keyStyle(extraKey.backgroundColor), {
122
+ opacity: disabled ? 0.5 : pressed ? 0.85 : 1
123
+ }],
124
+ children: extraKey.icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
125
+ name: extraKey.icon,
126
+ size: 24,
127
+ color: extraKey.color ?? theme.colors.action.secondaryForeground
128
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
129
+ variant: "h2",
130
+ color: extraKey.color ?? theme.colors.action.secondaryForeground,
131
+ style: {
132
+ fontSize: digitSize,
133
+ lineHeight: Math.round(digitSize * 1.35)
134
+ },
135
+ children: extraKey.label ?? ''
136
+ })
137
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
138
+ style: {
139
+ flex: 1
140
+ }
141
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DigitKey, {
142
+ digit: "0"
143
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
144
+ onPress: pressBackspace,
145
+ disabled: disabled,
146
+ accessibilityRole: "button",
147
+ accessibilityLabel: "Backspace",
148
+ style: ({
149
+ pressed
150
+ }) => [keyStyle(), {
151
+ opacity: disabled ? 0.5 : pressed ? 0.85 : 1
152
+ }],
153
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
154
+ name: "arrow-left",
155
+ size: 24,
156
+ color: theme.colors.action.secondaryForeground
157
+ })
158
+ })]
159
+ })]
160
+ });
161
+ }
162
+ //# sourceMappingURL=Keypad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_index","_Icon","_Text","_jsxRuntime","ROWS","Keypad","value","onChangeText","onKeyPress","maxLength","header","extraKey","keyHeight","gap","width","digitSize","headerGap","disabled","style","theme","useTheme","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","jsx","Pressable","accessibilityRole","accessibilityLabel","pressed","opacity","children","Text","variant","color","secondaryForeground","fontSize","lineHeight","Math","round","jsxs","View","marginBottom","map","row","flexDirection","label","icon","Icon","name","size"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Keypad/Keypad.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AAAoC,IAAAI,WAAA,GAAAJ,OAAA;AAEpC;;AA4CA,MAAMK,IAAI,GAAG,CACX,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAChB;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,MAAMA,CAAC;EACrBC,KAAK,GAAG,EAAE;EACVC,YAAY;EACZC,UAAU;EACVC,SAAS;EACTC,MAAM;EACNC,QAAQ;EACRC,SAAS,GAAG,EAAE;EACdC,GAAG,GAAG,CAAC;EACPC,KAAK;EACLC,SAAS,GAAG,EAAE;EACdC,SAAS,GAAG,EAAE;EACdC,QAAQ,GAAG,KAAK;EAChBC;AACW,CAAC,EAAE;EACd,MAAMC,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;EAExB,MAAMC,QAAQ,GAAIC,EAAW,KAA4B;IACvDC,IAAI,EAAE,CAAC;IACPC,MAAM,EAAEZ,SAAS;IACjBa,YAAY,EAAEN,KAAK,CAACO,KAAK,CAACC,EAAE;IAC5BC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEV,KAAK,CAACW,MAAM,CAACC,MAAM,CAACC,MAAM;IACvCC,eAAe,EAAEX,EAAE,IAAIH,KAAK,CAACW,MAAM,CAACI,MAAM,CAACC,SAAS;IACpDC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC,CAAC;EAEF,MAAMC,UAAU,GAAIC,KAAa,IAAK;IACpC/B,UAAU,GAAG+B,KAAK,CAAC;IACnB,IAAI9B,SAAS,IAAI,IAAI,IAAIH,KAAK,CAACkC,MAAM,IAAI/B,SAAS,EAAE;IACpDF,YAAY,GAAGD,KAAK,GAAGiC,KAAK,CAAC;EAC/B,CAAC;EAED,MAAME,cAAc,GAAGA,CAAA,KAAM;IAC3BjC,UAAU,GAAG,WAAW,CAAC;IACzBD,YAAY,GAAGD,KAAK,CAACoC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EACpC,CAAC;EAED,MAAMC,UAAU,GAAGA,CAAA,KAAM;IACvBnC,UAAU,GAAG,OAAO,CAAC;IACrB,IAAIG,QAAQ,EAAEiC,OAAO,EAAE;MACrBjC,QAAQ,CAACiC,OAAO,CAAC,CAAC;MAClB;IACF;IACA,IAAIjC,QAAQ,EAAEL,KAAK,IAAI,IAAI,EAAE;MAC3B,IAAIG,SAAS,IAAI,IAAI,IAAIH,KAAK,CAACkC,MAAM,IAAI/B,SAAS,EAAE;MACpDF,YAAY,GAAGD,KAAK,GAAGK,QAAQ,CAACL,KAAK,CAAC;IACxC;EACF,CAAC;EAED,MAAMuC,QAAQ,GAAGA,CAAC;IAAEN;EAAyB,CAAC,kBAC5C,IAAApC,WAAA,CAAA2C,GAAA,EAAChD,YAAA,CAAAiD,SAAS;IACRH,OAAO,EAAEA,CAAA,KAAMN,UAAU,CAACC,KAAK,CAAE;IACjCtB,QAAQ,EAAEA,QAAS;IACnB+B,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEV,KAAM;IAC1BrB,KAAK,EAAEA,CAAC;MAAEgC;IAAQ,CAAC,KAAK,CACtB7B,QAAQ,CAAC,CAAC,EACV;MAAE8B,OAAO,EAAElC,QAAQ,GAAG,GAAG,GAAGiC,OAAO,GAAG,IAAI,GAAG;IAAE,CAAC,CAChD;IAAAE,QAAA,eAEF,IAAAjD,WAAA,CAAA2C,GAAA,EAAC5C,KAAA,CAAAmD,IAAI;MACHC,OAAO,EAAC,IAAI;MACZC,KAAK,EAAEpC,KAAK,CAACW,MAAM,CAACI,MAAM,CAACsB,mBAAoB;MAC/CtC,KAAK,EAAE;QAAEuC,QAAQ,EAAE1C,SAAS;QAAE2C,UAAU,EAAEC,IAAI,CAACC,KAAK,CAAC7C,SAAS,GAAG,IAAI;MAAE,CAAE;MAAAqC,QAAA,EAExEb;IAAK,CACF;EAAC,CACE,CACZ;EAED,oBACE,IAAApC,WAAA,CAAA0D,IAAA,EAAC/D,YAAA,CAAAgE,IAAI;IAAC5C,KAAK,EAAE,CAAC;MAAEJ,KAAK,EAAEA,KAAK,IAAI,MAAM;MAAED;IAAI,CAAC,EAAEK,KAAK,CAAE;IAAAkC,QAAA,GACnD1C,MAAM,IAAI,IAAI,gBAAG,IAAAP,WAAA,CAAA2C,GAAA,EAAChD,YAAA,CAAAgE,IAAI;MAAC5C,KAAK,EAAE;QAAE6C,YAAY,EAAE/C,SAAS,GAAGH;MAAI,CAAE;MAAAuC,QAAA,EAAE1C;IAAM,CAAO,CAAC,GAAG,IAAI,EAEvFN,IAAI,CAAC4D,GAAG,CAAEC,GAAG,iBACZ,IAAA9D,WAAA,CAAA2C,GAAA,EAAChD,YAAA,CAAAgE,IAAI;MAAc5C,KAAK,EAAE;QAAEgD,aAAa,EAAE,KAAK;QAAErD;MAAI,CAAE;MAAAuC,QAAA,EACrDa,GAAG,CAACD,GAAG,CAAEzB,KAAK,iBACb,IAAApC,WAAA,CAAA2C,GAAA,EAACD,QAAQ;QAAaN,KAAK,EAAEA;MAAM,GAApBA,KAAsB,CACtC;IAAC,GAHO0B,GAAG,CAAC,CAAC,CAIV,CACP,CAAC,eAEF,IAAA9D,WAAA,CAAA0D,IAAA,EAAC/D,YAAA,CAAAgE,IAAI;MAAC5C,KAAK,EAAE;QAAEgD,aAAa,EAAE,KAAK;QAAErD;MAAI,CAAE;MAAAuC,QAAA,GACxCzC,QAAQ,gBACP,IAAAR,WAAA,CAAA2C,GAAA,EAAChD,YAAA,CAAAiD,SAAS;QACRH,OAAO,EAAED,UAAW;QACpB1B,QAAQ,EAAEA,QAAS;QACnB+B,iBAAiB,EAAC,QAAQ;QAC1BC,kBAAkB,EAAEtC,QAAQ,CAACwD,KAAK,IAAI,QAAS;QAC/CjD,KAAK,EAAEA,CAAC;UAAEgC;QAAQ,CAAC,KAAK,CACtB7B,QAAQ,CAACV,QAAQ,CAACsB,eAAe,CAAC,EAClC;UAAEkB,OAAO,EAAElC,QAAQ,GAAG,GAAG,GAAGiC,OAAO,GAAG,IAAI,GAAG;QAAE,CAAC,CAChD;QAAAE,QAAA,EAEDzC,QAAQ,CAACyD,IAAI,gBACZ,IAAAjE,WAAA,CAAA2C,GAAA,EAAC7C,KAAA,CAAAoE,IAAI;UAACC,IAAI,EAAE3D,QAAQ,CAACyD,IAAK;UAACG,IAAI,EAAE,EAAG;UAAChB,KAAK,EAAE5C,QAAQ,CAAC4C,KAAK,IAAIpC,KAAK,CAACW,MAAM,CAACI,MAAM,CAACsB;QAAoB,CAAE,CAAC,gBAEzG,IAAArD,WAAA,CAAA2C,GAAA,EAAC5C,KAAA,CAAAmD,IAAI;UACHC,OAAO,EAAC,IAAI;UACZC,KAAK,EAAE5C,QAAQ,CAAC4C,KAAK,IAAIpC,KAAK,CAACW,MAAM,CAACI,MAAM,CAACsB,mBAAoB;UACjEtC,KAAK,EAAE;YAAEuC,QAAQ,EAAE1C,SAAS;YAAE2C,UAAU,EAAEC,IAAI,CAACC,KAAK,CAAC7C,SAAS,GAAG,IAAI;UAAE,CAAE;UAAAqC,QAAA,EAExEzC,QAAQ,CAACwD,KAAK,IAAI;QAAE,CACjB;MACP,CACQ,CAAC,gBAEZ,IAAAhE,WAAA,CAAA2C,GAAA,EAAChD,YAAA,CAAAgE,IAAI;QAAC5C,KAAK,EAAE;UAAEK,IAAI,EAAE;QAAE;MAAE,CAAE,CAC5B,eAED,IAAApB,WAAA,CAAA2C,GAAA,EAACD,QAAQ;QAACN,KAAK,EAAC;MAAG,CAAE,CAAC,eAEtB,IAAApC,WAAA,CAAA2C,GAAA,EAAChD,YAAA,CAAAiD,SAAS;QACRH,OAAO,EAAEH,cAAe;QACxBxB,QAAQ,EAAEA,QAAS;QACnB+B,iBAAiB,EAAC,QAAQ;QAC1BC,kBAAkB,EAAC,WAAW;QAC9B/B,KAAK,EAAEA,CAAC;UAAEgC;QAAQ,CAAC,KAAK,CAAC7B,QAAQ,CAAC,CAAC,EAAE;UAAE8B,OAAO,EAAElC,QAAQ,GAAG,GAAG,GAAGiC,OAAO,GAAG,IAAI,GAAG;QAAE,CAAC,CAAE;QAAAE,QAAA,eAEvF,IAAAjD,WAAA,CAAA2C,GAAA,EAAC7C,KAAA,CAAAoE,IAAI;UAACC,IAAI,EAAC,YAAY;UAACC,IAAI,EAAE,EAAG;UAAChB,KAAK,EAAEpC,KAAK,CAACW,MAAM,CAACI,MAAM,CAACsB;QAAoB,CAAE;MAAC,CAC3E,CAAC;IAAA,CACR,CAAC;EAAA,CACH,CAAC;AAEX","ignoreList":[]}
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.LoginCodeRevealable = exports.LoginCode = exports.FullWidthContainer = exports.FixedWidth = exports.ExtraKeyAction = exports.CustomSizing = exports.Bare = exports.AmountEntry = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _Keypad = require("./Keypad.js");
10
+ var _CodeInput = require("../CodeInput/CodeInput.js");
11
+ var _Text = require("../Text/Text.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ const meta = {
14
+ title: 'Components/Keypad',
15
+ component: _Keypad.Keypad
16
+ };
17
+ var _default = exports.default = meta;
18
+ /** Login PIN: the keypad drives a dots display above it. */
19
+ const LoginCode = exports.LoginCode = {
20
+ render: () => {
21
+ const [pin, setPin] = (0, _react.useState)('');
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
23
+ style: {
24
+ padding: 24,
25
+ maxWidth: 360,
26
+ alignItems: 'center',
27
+ gap: 24
28
+ },
29
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
30
+ value: pin,
31
+ onChangeText: setPin,
32
+ maxLength: 4,
33
+ header: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
34
+ style: {
35
+ alignItems: 'center'
36
+ },
37
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CodeInput.CodeInput, {
38
+ value: pin,
39
+ onChangeText: setPin,
40
+ length: 4
41
+ })
42
+ })
43
+ })
44
+ });
45
+ }
46
+ };
47
+
48
+ /**
49
+ * Login PIN with reveal — the eye toggle swaps the dots for the entered digits,
50
+ * in the same positions (see CodeInput › RevealPositions).
51
+ */
52
+ const LoginCodeRevealable = exports.LoginCodeRevealable = {
53
+ render: () => {
54
+ const [pin, setPin] = (0, _react.useState)('');
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
56
+ style: {
57
+ padding: 24,
58
+ maxWidth: 360,
59
+ alignItems: 'center',
60
+ gap: 24
61
+ },
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
63
+ value: pin,
64
+ onChangeText: setPin,
65
+ maxLength: 4,
66
+ header: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
67
+ style: {
68
+ alignItems: 'center'
69
+ },
70
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CodeInput.CodeInput, {
71
+ value: pin,
72
+ onChangeText: setPin,
73
+ length: 4,
74
+ revealable: true,
75
+ revealPosition: "right"
76
+ })
77
+ })
78
+ })
79
+ });
80
+ }
81
+ };
82
+
83
+ /** Amount entry: big number header + a "." extra key for decimals. */
84
+ const AmountEntry = exports.AmountEntry = {
85
+ render: () => {
86
+ const [amount, setAmount] = (0, _react.useState)('');
87
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
88
+ style: {
89
+ padding: 24,
90
+ maxWidth: 360
91
+ },
92
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
93
+ value: amount,
94
+ onChangeText: setAmount,
95
+ extraKey: {
96
+ label: '.',
97
+ value: '.'
98
+ },
99
+ header: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
100
+ style: {
101
+ alignItems: 'center',
102
+ paddingVertical: 8
103
+ },
104
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Text.Text, {
105
+ variant: "h1",
106
+ color: amount ? 'primary' : 'tertiary',
107
+ style: {
108
+ fontSize: 40
109
+ },
110
+ children: ["$", amount || '0.00']
111
+ })
112
+ })
113
+ })
114
+ });
115
+ }
116
+ };
117
+
118
+ /** Extra key as a custom action (e.g. open a modal / redirect). */
119
+ const ExtraKeyAction = exports.ExtraKeyAction = {
120
+ render: () => {
121
+ const [value, setValue] = (0, _react.useState)('');
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
123
+ style: {
124
+ padding: 24,
125
+ maxWidth: 360
126
+ },
127
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
128
+ value: value,
129
+ onChangeText: setValue,
130
+ extraKey: {
131
+ icon: 'user',
132
+ onPress: () => {}
133
+ }
134
+ })
135
+ });
136
+ }
137
+ };
138
+
139
+ /** Fixed width — the pad keeps `width` regardless of the container. */
140
+ const FixedWidth = exports.FixedWidth = {
141
+ render: () => {
142
+ const [value, setValue] = (0, _react.useState)('');
143
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
144
+ style: {
145
+ padding: 24,
146
+ alignItems: 'center'
147
+ },
148
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
149
+ value: value,
150
+ onChangeText: setValue,
151
+ width: 260
152
+ })
153
+ });
154
+ }
155
+ };
156
+
157
+ /** Full width — with no `width`, the pad fills its parent container (here 480px). */
158
+ const FullWidthContainer = exports.FullWidthContainer = {
159
+ render: () => {
160
+ const [value, setValue] = (0, _react.useState)('');
161
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
162
+ style: {
163
+ padding: 24,
164
+ width: 480
165
+ },
166
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
167
+ value: value,
168
+ onChangeText: setValue
169
+ })
170
+ });
171
+ }
172
+ };
173
+
174
+ /** Standalone: no header, no extra key (backspace only in the bottom row). */
175
+ const Bare = exports.Bare = {
176
+ render: () => {
177
+ const [value, setValue] = (0, _react.useState)('');
178
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
179
+ style: {
180
+ padding: 24,
181
+ maxWidth: 360
182
+ },
183
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
184
+ value: value,
185
+ onChangeText: setValue
186
+ })
187
+ });
188
+ }
189
+ };
190
+
191
+ /** Custom sizing: taller keys, wider gap, larger digits. */
192
+ const CustomSizing = exports.CustomSizing = {
193
+ render: () => {
194
+ const [value, setValue] = (0, _react.useState)('');
195
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
196
+ style: {
197
+ padding: 24,
198
+ maxWidth: 360
199
+ },
200
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
201
+ value: value,
202
+ onChangeText: setValue,
203
+ keyHeight: 96,
204
+ gap: 12,
205
+ digitSize: 28
206
+ })
207
+ });
208
+ }
209
+ };
210
+ //# sourceMappingURL=Keypad.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_Keypad","_CodeInput","_Text","_jsxRuntime","meta","title","component","Keypad","_default","exports","default","LoginCode","render","pin","setPin","useState","jsx","View","style","padding","maxWidth","alignItems","gap","children","value","onChangeText","maxLength","header","CodeInput","length","LoginCodeRevealable","revealable","revealPosition","AmountEntry","amount","setAmount","extraKey","label","paddingVertical","jsxs","Text","variant","color","fontSize","ExtraKeyAction","setValue","icon","onPress","FixedWidth","width","FullWidthContainer","Bare","CustomSizing","keyHeight","digitSize"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Keypad/Keypad.stories.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _react = require("react");
4
+ var _reactNative = require("react-native");
5
+ var _reactNative2 = require("@testing-library/react-native");
6
+ var _index = require("../../theme/index.js");
7
+ var _Keypad = require("./Keypad.js");
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ function wrap(ui) {
10
+ return (0, _reactNative2.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ThemeProvider, {
11
+ children: ui
12
+ }));
13
+ }
14
+ function Controlled(props) {
15
+ const [value, setValue] = (0, _react.useState)('');
16
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
17
+ ...props,
18
+ value: value,
19
+ onChangeText: setValue,
20
+ header: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
21
+ testID: "value",
22
+ children: value
23
+ })
24
+ });
25
+ }
26
+ describe('Keypad', () => {
27
+ it('renders digits 0–9 and a backspace, no extra key by default', () => {
28
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {}));
29
+ for (let i = 0; i <= 9; i++) {
30
+ expect(_reactNative2.screen.getByLabelText(String(i))).toBeTruthy();
31
+ }
32
+ expect(_reactNative2.screen.getByLabelText('Backspace')).toBeTruthy();
33
+ expect(_reactNative2.screen.queryByLabelText('action')).toBeNull();
34
+ });
35
+ it('appends the pressed digit to the value', () => {
36
+ const onChangeText = jest.fn();
37
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
38
+ value: "12",
39
+ onChangeText: onChangeText
40
+ }));
41
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('3'));
42
+ expect(onChangeText).toHaveBeenCalledWith('123');
43
+ });
44
+ it('backspace removes the last character', () => {
45
+ const onChangeText = jest.fn();
46
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
47
+ value: "123",
48
+ onChangeText: onChangeText
49
+ }));
50
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('Backspace'));
51
+ expect(onChangeText).toHaveBeenCalledWith('12');
52
+ });
53
+ it('respects maxLength', () => {
54
+ const onChangeText = jest.fn();
55
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
56
+ value: "1234",
57
+ onChangeText: onChangeText,
58
+ maxLength: 4
59
+ }));
60
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('5'));
61
+ expect(onChangeText).not.toHaveBeenCalled();
62
+ });
63
+ it('fires onKeyPress with the raw key even at maxLength', () => {
64
+ const onKeyPress = jest.fn();
65
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
66
+ value: "1234",
67
+ onKeyPress: onKeyPress,
68
+ maxLength: 4
69
+ }));
70
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('5'));
71
+ expect(onKeyPress).toHaveBeenCalledWith('5');
72
+ });
73
+ it('extra key with a value appends it', () => {
74
+ const onChangeText = jest.fn();
75
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
76
+ value: "1",
77
+ onChangeText: onChangeText,
78
+ extraKey: {
79
+ label: '.',
80
+ value: '.'
81
+ }
82
+ }));
83
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('.'));
84
+ expect(onChangeText).toHaveBeenCalledWith('1.');
85
+ });
86
+ it('extra key with onPress runs the action and does not change the value', () => {
87
+ const onPress = jest.fn();
88
+ const onChangeText = jest.fn();
89
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
90
+ value: "1",
91
+ onChangeText: onChangeText,
92
+ extraKey: {
93
+ label: 'x',
94
+ value: '.',
95
+ onPress
96
+ }
97
+ }));
98
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('x'));
99
+ expect(onPress).toHaveBeenCalledTimes(1);
100
+ expect(onChangeText).not.toHaveBeenCalled();
101
+ });
102
+ it('is controllable end-to-end', () => {
103
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(Controlled, {}));
104
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('9'));
105
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('1'));
106
+ expect(_reactNative2.screen.getByTestId('value').props.children).toBe('91');
107
+ });
108
+ it('does not fire callbacks when disabled', () => {
109
+ const onChangeText = jest.fn();
110
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Keypad.Keypad, {
111
+ value: "",
112
+ onChangeText: onChangeText,
113
+ disabled: true
114
+ }));
115
+ _reactNative2.fireEvent.press(_reactNative2.screen.getByLabelText('1'));
116
+ expect(onChangeText).not.toHaveBeenCalled();
117
+ });
118
+ });
119
+ //# sourceMappingURL=Keypad.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNative2","_index","_Keypad","_jsxRuntime","wrap","ui","render","jsx","ThemeProvider","children","Controlled","props","value","setValue","useState","Keypad","onChangeText","header","Text","testID","describe","it","i","expect","screen","getByLabelText","String","toBeTruthy","queryByLabelText","toBeNull","jest","fn","fireEvent","press","toHaveBeenCalledWith","maxLength","not","toHaveBeenCalled","onKeyPress","extraKey","label","onPress","toHaveBeenCalledTimes","getByTestId","toBe","disabled"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Keypad/Keypad.test.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Keypad", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Keypad.Keypad;
10
+ }
11
+ });
12
+ var _Keypad = require("./Keypad.js");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Keypad","require"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Keypad/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA","ignoreList":[]}