@nexub/react-native 0.0.0-stage → 2.1.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.
- package/README.md +111 -2
- package/lib/module/components/actions.js +222 -0
- package/lib/module/components/actions.js.map +1 -0
- package/lib/module/components/containers.js +292 -0
- package/lib/module/components/containers.js.map +1 -0
- package/lib/module/components/display.js +266 -0
- package/lib/module/components/display.js.map +1 -0
- package/lib/module/components/feedback.js +464 -0
- package/lib/module/components/feedback.js.map +1 -0
- package/lib/module/components/inputs.js +746 -0
- package/lib/module/components/inputs.js.map +1 -0
- package/lib/module/components/mobile.js +811 -0
- package/lib/module/components/mobile.js.map +1 -0
- package/lib/module/components/overlays.js +418 -0
- package/lib/module/components/overlays.js.map +1 -0
- package/lib/module/components/shared.js +57 -0
- package/lib/module/components/shared.js.map +1 -0
- package/lib/module/hooks/useControllableState.js +23 -0
- package/lib/module/hooks/useControllableState.js.map +1 -0
- package/lib/module/index.js +30 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/patterns/app.js +709 -0
- package/lib/module/patterns/app.js.map +1 -0
- package/lib/module/patterns/auth.js +224 -0
- package/lib/module/patterns/auth.js.map +1 -0
- package/lib/module/patterns/index.js +7 -0
- package/lib/module/patterns/index.js.map +1 -0
- package/lib/module/patterns/money.js +419 -0
- package/lib/module/patterns/money.js.map +1 -0
- package/lib/module/primitives/Icon.js +17 -0
- package/lib/module/primitives/Icon.js.map +1 -0
- package/lib/module/primitives/Layout.js +79 -0
- package/lib/module/primitives/Layout.js.map +1 -0
- package/lib/module/primitives/Pressable.js +77 -0
- package/lib/module/primitives/Pressable.js.map +1 -0
- package/lib/module/primitives/ScreenContainer.js +58 -0
- package/lib/module/primitives/ScreenContainer.js.map +1 -0
- package/lib/module/primitives/Surface.js +57 -0
- package/lib/module/primitives/Surface.js.map +1 -0
- package/lib/module/primitives/Text.js +70 -0
- package/lib/module/primitives/Text.js.map +1 -0
- package/lib/module/theme/ThemeProvider.js +127 -0
- package/lib/module/theme/ThemeProvider.js.map +1 -0
- package/lib/module/theme/fonts.js +56 -0
- package/lib/module/theme/fonts.js.map +1 -0
- package/lib/module/theme/haptics.js +56 -0
- package/lib/module/theme/haptics.js.map +1 -0
- package/lib/module/theme/navigation.js +99 -0
- package/lib/module/theme/navigation.js.map +1 -0
- package/lib/typescript/components/actions.d.ts +53 -0
- package/lib/typescript/components/actions.d.ts.map +1 -0
- package/lib/typescript/components/containers.d.ts +59 -0
- package/lib/typescript/components/containers.d.ts.map +1 -0
- package/lib/typescript/components/display.d.ts +62 -0
- package/lib/typescript/components/display.d.ts.map +1 -0
- package/lib/typescript/components/feedback.d.ts +93 -0
- package/lib/typescript/components/feedback.d.ts.map +1 -0
- package/lib/typescript/components/inputs.d.ts +141 -0
- package/lib/typescript/components/inputs.d.ts.map +1 -0
- package/lib/typescript/components/mobile.d.ts +173 -0
- package/lib/typescript/components/mobile.d.ts.map +1 -0
- package/lib/typescript/components/overlays.d.ts +74 -0
- package/lib/typescript/components/overlays.d.ts.map +1 -0
- package/lib/typescript/components/shared.d.ts +20 -0
- package/lib/typescript/components/shared.d.ts.map +1 -0
- package/lib/typescript/hooks/useControllableState.d.ts +6 -0
- package/lib/typescript/hooks/useControllableState.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +37 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/patterns/app.d.ts +139 -0
- package/lib/typescript/patterns/app.d.ts.map +1 -0
- package/lib/typescript/patterns/auth.d.ts +54 -0
- package/lib/typescript/patterns/auth.d.ts.map +1 -0
- package/lib/typescript/patterns/index.d.ts +7 -0
- package/lib/typescript/patterns/index.d.ts.map +1 -0
- package/lib/typescript/patterns/money.d.ts +106 -0
- package/lib/typescript/patterns/money.d.ts.map +1 -0
- package/lib/typescript/primitives/Icon.d.ts +12 -0
- package/lib/typescript/primitives/Icon.d.ts.map +1 -0
- package/lib/typescript/primitives/Layout.d.ts +26 -0
- package/lib/typescript/primitives/Layout.d.ts.map +1 -0
- package/lib/typescript/primitives/Pressable.d.ts +21 -0
- package/lib/typescript/primitives/Pressable.d.ts.map +1 -0
- package/lib/typescript/primitives/ScreenContainer.d.ts +25 -0
- package/lib/typescript/primitives/ScreenContainer.d.ts.map +1 -0
- package/lib/typescript/primitives/Surface.d.ts +23 -0
- package/lib/typescript/primitives/Surface.d.ts.map +1 -0
- package/lib/typescript/primitives/Text.d.ts +21 -0
- package/lib/typescript/primitives/Text.d.ts.map +1 -0
- package/lib/typescript/theme/ThemeProvider.d.ts +69 -0
- package/lib/typescript/theme/ThemeProvider.d.ts.map +1 -0
- package/lib/typescript/theme/fonts.d.ts +25 -0
- package/lib/typescript/theme/fonts.d.ts.map +1 -0
- package/lib/typescript/theme/haptics.d.ts +3 -0
- package/lib/typescript/theme/haptics.d.ts.map +1 -0
- package/lib/typescript/theme/navigation.d.ts +158 -0
- package/lib/typescript/theme/navigation.d.ts.map +1 -0
- package/package.json +138 -3
- package/src/components/actions.tsx +259 -0
- package/src/components/containers.tsx +341 -0
- package/src/components/display.tsx +314 -0
- package/src/components/feedback.tsx +522 -0
- package/src/components/inputs.tsx +851 -0
- package/src/components/mobile.tsx +879 -0
- package/src/components/overlays.tsx +485 -0
- package/src/components/shared.ts +54 -0
- package/src/hooks/useControllableState.ts +27 -0
- package/src/index.ts +175 -0
- package/src/patterns/app.tsx +715 -0
- package/src/patterns/auth.tsx +266 -0
- package/src/patterns/index.ts +57 -0
- package/src/patterns/money.tsx +458 -0
- package/src/primitives/Icon.tsx +15 -0
- package/src/primitives/Layout.tsx +71 -0
- package/src/primitives/Pressable.tsx +94 -0
- package/src/primitives/ScreenContainer.tsx +65 -0
- package/src/primitives/Surface.tsx +75 -0
- package/src/primitives/Text.tsx +79 -0
- package/src/theme/ThemeProvider.tsx +210 -0
- package/src/theme/fonts.ts +52 -0
- package/src/theme/haptics.ts +57 -0
- package/src/theme/navigation.ts +68 -0
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { SectionList, View } from 'react-native';
|
|
5
|
+
import { moneyFormatter } from '@nexub/core';
|
|
6
|
+
import { CheckCircle2, ShieldCheck } from '@nexub/icons/native';
|
|
7
|
+
import { Button } from "../components/actions.js";
|
|
8
|
+
import { ListItem, ListSection } from "../components/containers.js";
|
|
9
|
+
import { Amount, Avatar, Badge } from "../components/display.js";
|
|
10
|
+
import { EmptyState, Progress } from "../components/feedback.js";
|
|
11
|
+
import { ExpressiveMoneyInput, RefreshControl, StickyFooter, SwipeableRow } from "../components/mobile.js";
|
|
12
|
+
import { ScreenContainer } from "../primitives/ScreenContainer.js";
|
|
13
|
+
import { Heading, Text } from "../primitives/Text.js";
|
|
14
|
+
import { useTheme } from "../theme/ThemeProvider.js";
|
|
15
|
+
|
|
16
|
+
// ─── Flow step frame ─────────────────────────────────────────────────────────
|
|
17
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
18
|
+
/** One step of a multi-step flow: progress, title, content, sticky primary action. */
|
|
19
|
+
export function FlowStep({
|
|
20
|
+
step,
|
|
21
|
+
total,
|
|
22
|
+
title,
|
|
23
|
+
children,
|
|
24
|
+
footer
|
|
25
|
+
}) {
|
|
26
|
+
const {
|
|
27
|
+
tokens,
|
|
28
|
+
messages
|
|
29
|
+
} = useTheme();
|
|
30
|
+
return /*#__PURE__*/_jsx(StickyFooter, {
|
|
31
|
+
footer: footer,
|
|
32
|
+
children: /*#__PURE__*/_jsxs(ScreenContainer, {
|
|
33
|
+
gap: "5",
|
|
34
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
35
|
+
style: {
|
|
36
|
+
gap: tokens.spacing[2]
|
|
37
|
+
},
|
|
38
|
+
children: [/*#__PURE__*/_jsx(Progress, {
|
|
39
|
+
value: step / total,
|
|
40
|
+
label: messages.pageOf(step, total)
|
|
41
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
42
|
+
variant: "label-md",
|
|
43
|
+
color: "on-surface-variant",
|
|
44
|
+
children: messages.pageOf(step, total)
|
|
45
|
+
}), /*#__PURE__*/_jsx(Heading, {
|
|
46
|
+
variant: "headline-sm",
|
|
47
|
+
children: title
|
|
48
|
+
})]
|
|
49
|
+
}), children]
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// ─── Send money ──────────────────────────────────────────────────────────────
|
|
55
|
+
|
|
56
|
+
/** Amount entry with the fee, rate and arrival shown live. */
|
|
57
|
+
export function AmountStep({
|
|
58
|
+
from,
|
|
59
|
+
to,
|
|
60
|
+
balance,
|
|
61
|
+
quote,
|
|
62
|
+
onContinue,
|
|
63
|
+
step = 1,
|
|
64
|
+
total = 3
|
|
65
|
+
}) {
|
|
66
|
+
const {
|
|
67
|
+
locale
|
|
68
|
+
} = useTheme();
|
|
69
|
+
const [amount, setAmount] = React.useState(null);
|
|
70
|
+
const fmt = (n, c) => moneyFormatter(c, locale).format(n);
|
|
71
|
+
const over = amount != null && amount > balance;
|
|
72
|
+
const q = amount ? quote(amount) : undefined;
|
|
73
|
+
return /*#__PURE__*/_jsxs(FlowStep, {
|
|
74
|
+
step: step,
|
|
75
|
+
total: total,
|
|
76
|
+
title: "How much?",
|
|
77
|
+
footer: /*#__PURE__*/_jsx(Button, {
|
|
78
|
+
size: "lg",
|
|
79
|
+
fullWidth: true,
|
|
80
|
+
disabled: !amount || over,
|
|
81
|
+
onPress: () => amount && onContinue(amount),
|
|
82
|
+
children: "Continue"
|
|
83
|
+
}),
|
|
84
|
+
children: [/*#__PURE__*/_jsx(ExpressiveMoneyInput, {
|
|
85
|
+
label: "Amount to send",
|
|
86
|
+
currency: from,
|
|
87
|
+
value: amount,
|
|
88
|
+
onValueChange: setAmount,
|
|
89
|
+
error: over,
|
|
90
|
+
caption: over ? `More than your balance (${fmt(balance, from)})` : `Balance ${fmt(balance, from)}`
|
|
91
|
+
}), q && amount && !over && /*#__PURE__*/_jsxs(ListSection, {
|
|
92
|
+
children: [/*#__PURE__*/_jsx(ListItem, {
|
|
93
|
+
variant: "value",
|
|
94
|
+
title: "Fee",
|
|
95
|
+
value: fmt(q.fee, from)
|
|
96
|
+
}), /*#__PURE__*/_jsx(ListItem, {
|
|
97
|
+
variant: "value",
|
|
98
|
+
title: "Rate",
|
|
99
|
+
value: `1 ${from} = ${q.rate} ${to}`
|
|
100
|
+
}), /*#__PURE__*/_jsx(ListItem, {
|
|
101
|
+
variant: "value",
|
|
102
|
+
title: "Recipient gets",
|
|
103
|
+
value: fmt((amount - q.fee) * q.rate, to)
|
|
104
|
+
}), /*#__PURE__*/_jsx(ListItem, {
|
|
105
|
+
variant: "value",
|
|
106
|
+
title: "Arrives",
|
|
107
|
+
value: q.arrives
|
|
108
|
+
})]
|
|
109
|
+
})]
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/** Summary before money moves: every number visible, one confirming action. */
|
|
113
|
+
export function ReviewStep({
|
|
114
|
+
rows,
|
|
115
|
+
confirmLabel,
|
|
116
|
+
onConfirm,
|
|
117
|
+
confirmHint,
|
|
118
|
+
loading,
|
|
119
|
+
step = 2,
|
|
120
|
+
total = 3
|
|
121
|
+
}) {
|
|
122
|
+
return /*#__PURE__*/_jsx(FlowStep, {
|
|
123
|
+
step: step,
|
|
124
|
+
total: total,
|
|
125
|
+
title: "Check the details",
|
|
126
|
+
footer: /*#__PURE__*/_jsxs(_Fragment, {
|
|
127
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
128
|
+
size: "lg",
|
|
129
|
+
fullWidth: true,
|
|
130
|
+
loading: loading,
|
|
131
|
+
leadingIcon: confirmHint ? ShieldCheck : undefined,
|
|
132
|
+
onPress: onConfirm,
|
|
133
|
+
children: confirmLabel
|
|
134
|
+
}), confirmHint && /*#__PURE__*/_jsx(Text, {
|
|
135
|
+
variant: "body-sm",
|
|
136
|
+
color: "on-surface-variant",
|
|
137
|
+
style: {
|
|
138
|
+
textAlign: 'center'
|
|
139
|
+
},
|
|
140
|
+
children: confirmHint
|
|
141
|
+
})]
|
|
142
|
+
}),
|
|
143
|
+
children: /*#__PURE__*/_jsx(ListSection, {
|
|
144
|
+
children: rows.map(r => /*#__PURE__*/_jsx(ListItem, {
|
|
145
|
+
variant: "value",
|
|
146
|
+
title: r.label,
|
|
147
|
+
value: r.value
|
|
148
|
+
}, r.label))
|
|
149
|
+
})
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// ─── Activity ────────────────────────────────────────────────────────────────
|
|
154
|
+
|
|
155
|
+
/** Transactions grouped by day, with pull-to-refresh, paging and swipe actions (web ActivityFeed). */
|
|
156
|
+
export function ActivityList({
|
|
157
|
+
transactions,
|
|
158
|
+
onPress,
|
|
159
|
+
onRefresh,
|
|
160
|
+
refreshing = false,
|
|
161
|
+
onEndReached,
|
|
162
|
+
actions,
|
|
163
|
+
header,
|
|
164
|
+
empty
|
|
165
|
+
}) {
|
|
166
|
+
const {
|
|
167
|
+
roles,
|
|
168
|
+
tokens,
|
|
169
|
+
locale
|
|
170
|
+
} = useTheme();
|
|
171
|
+
const day = new Intl.DateTimeFormat(locale, {
|
|
172
|
+
dateStyle: 'medium'
|
|
173
|
+
});
|
|
174
|
+
const sections = React.useMemo(() => {
|
|
175
|
+
const map = new Map();
|
|
176
|
+
for (const t of [...transactions].sort((a, b) => +b.date - +a.date)) {
|
|
177
|
+
const key = day.format(t.date);
|
|
178
|
+
map.set(key, [...(map.get(key) ?? []), t]);
|
|
179
|
+
}
|
|
180
|
+
return [...map].map(([title, data]) => ({
|
|
181
|
+
title,
|
|
182
|
+
data
|
|
183
|
+
}));
|
|
184
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
185
|
+
}, [transactions, locale]);
|
|
186
|
+
const row = t => {
|
|
187
|
+
const label = `${t.title}, ${moneyFormatter(t.currency, locale, {
|
|
188
|
+
signDisplay: 'exceptZero'
|
|
189
|
+
}).format(t.amount)}${t.status ? `, ${t.status}` : ''}`;
|
|
190
|
+
const item = /*#__PURE__*/_jsx(ListItem, {
|
|
191
|
+
title: t.title,
|
|
192
|
+
subtitle: t.subtitle,
|
|
193
|
+
leading: /*#__PURE__*/_jsx(Avatar, {
|
|
194
|
+
name: t.title,
|
|
195
|
+
src: t.image
|
|
196
|
+
}),
|
|
197
|
+
trailing: /*#__PURE__*/_jsxs(View, {
|
|
198
|
+
style: {
|
|
199
|
+
alignItems: 'flex-end',
|
|
200
|
+
gap: 2
|
|
201
|
+
},
|
|
202
|
+
children: [/*#__PURE__*/_jsx(Amount, {
|
|
203
|
+
value: t.amount,
|
|
204
|
+
currency: t.currency,
|
|
205
|
+
locale: locale,
|
|
206
|
+
tone: "auto",
|
|
207
|
+
signDisplay: "exceptZero"
|
|
208
|
+
}), t.status && /*#__PURE__*/_jsx(Badge, {
|
|
209
|
+
tone: t.status === 'failed' ? 'danger' : 'warning',
|
|
210
|
+
size: "sm",
|
|
211
|
+
children: t.status === 'failed' ? 'Failed' : 'Pending'
|
|
212
|
+
})]
|
|
213
|
+
}),
|
|
214
|
+
variant: onPress ? 'navigation' : 'static',
|
|
215
|
+
onPress: onPress && (() => onPress(t))
|
|
216
|
+
});
|
|
217
|
+
return actions ? /*#__PURE__*/_jsx(SwipeableRow, {
|
|
218
|
+
label: label,
|
|
219
|
+
onPress: onPress && (() => onPress(t)),
|
|
220
|
+
actions: actions(t),
|
|
221
|
+
children: item
|
|
222
|
+
}) : item;
|
|
223
|
+
};
|
|
224
|
+
return /*#__PURE__*/_jsx(SectionList, {
|
|
225
|
+
sections: sections,
|
|
226
|
+
keyExtractor: t => t.id,
|
|
227
|
+
contentInsetAdjustmentBehavior: "automatic",
|
|
228
|
+
style: {
|
|
229
|
+
backgroundColor: roles.surface
|
|
230
|
+
},
|
|
231
|
+
contentContainerStyle: {
|
|
232
|
+
padding: tokens.spacing[4],
|
|
233
|
+
gap: 0
|
|
234
|
+
},
|
|
235
|
+
ListHeaderComponent: header,
|
|
236
|
+
ListEmptyComponent: empty ?? /*#__PURE__*/_jsx(EmptyState, {
|
|
237
|
+
title: "No activity yet",
|
|
238
|
+
description: "Your payments and transfers will show up here."
|
|
239
|
+
}),
|
|
240
|
+
renderSectionHeader: ({
|
|
241
|
+
section
|
|
242
|
+
}) => /*#__PURE__*/_jsx(Text, {
|
|
243
|
+
variant: "title-sm",
|
|
244
|
+
color: "on-surface-variant",
|
|
245
|
+
accessibilityRole: "header",
|
|
246
|
+
style: {
|
|
247
|
+
paddingTop: tokens.spacing[4],
|
|
248
|
+
paddingBottom: tokens.spacing[2],
|
|
249
|
+
paddingHorizontal: tokens.spacing[4],
|
|
250
|
+
backgroundColor: roles.surface
|
|
251
|
+
},
|
|
252
|
+
children: section.title
|
|
253
|
+
}),
|
|
254
|
+
renderItem: ({
|
|
255
|
+
item,
|
|
256
|
+
index,
|
|
257
|
+
section
|
|
258
|
+
}) => /*#__PURE__*/_jsx(View, {
|
|
259
|
+
style: {
|
|
260
|
+
backgroundColor: roles['surface-container-lowest'],
|
|
261
|
+
borderTopStartRadius: index === 0 ? tokens.shape.container : 0,
|
|
262
|
+
borderTopEndRadius: index === 0 ? tokens.shape.container : 0,
|
|
263
|
+
borderBottomStartRadius: index === section.data.length - 1 ? tokens.shape.container : 0,
|
|
264
|
+
borderBottomEndRadius: index === section.data.length - 1 ? tokens.shape.container : 0,
|
|
265
|
+
overflow: 'hidden'
|
|
266
|
+
},
|
|
267
|
+
children: row(item)
|
|
268
|
+
}),
|
|
269
|
+
refreshControl: onRefresh ? /*#__PURE__*/_jsx(RefreshControl, {
|
|
270
|
+
refreshing: refreshing,
|
|
271
|
+
onRefresh: onRefresh
|
|
272
|
+
}) : undefined,
|
|
273
|
+
onEndReached: onEndReached,
|
|
274
|
+
onEndReachedThreshold: 0.5,
|
|
275
|
+
stickySectionHeadersEnabled: false
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
/** One transaction: hero amount, status, summary rows (web InfoList). */
|
|
279
|
+
export function TransactionDetail({
|
|
280
|
+
transaction: t,
|
|
281
|
+
rows = [],
|
|
282
|
+
actions
|
|
283
|
+
}) {
|
|
284
|
+
const {
|
|
285
|
+
tokens,
|
|
286
|
+
locale
|
|
287
|
+
} = useTheme();
|
|
288
|
+
const when = new Intl.DateTimeFormat(locale, {
|
|
289
|
+
dateStyle: 'full',
|
|
290
|
+
timeStyle: 'short'
|
|
291
|
+
}).format(t.date);
|
|
292
|
+
return /*#__PURE__*/_jsxs(ScreenContainer, {
|
|
293
|
+
gap: "5",
|
|
294
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
295
|
+
style: {
|
|
296
|
+
alignItems: 'center',
|
|
297
|
+
gap: tokens.spacing[2],
|
|
298
|
+
paddingVertical: tokens.spacing[4]
|
|
299
|
+
},
|
|
300
|
+
children: [/*#__PURE__*/_jsx(Avatar, {
|
|
301
|
+
name: t.title,
|
|
302
|
+
src: t.image,
|
|
303
|
+
size: "xl"
|
|
304
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
305
|
+
variant: "title-md",
|
|
306
|
+
children: t.title
|
|
307
|
+
}), /*#__PURE__*/_jsx(Amount, {
|
|
308
|
+
value: t.amount,
|
|
309
|
+
currency: t.currency,
|
|
310
|
+
locale: locale,
|
|
311
|
+
size: "display",
|
|
312
|
+
tone: "auto",
|
|
313
|
+
signDisplay: "exceptZero"
|
|
314
|
+
}), t.status ? /*#__PURE__*/_jsx(Badge, {
|
|
315
|
+
tone: t.status === 'failed' ? 'danger' : 'warning',
|
|
316
|
+
dot: true,
|
|
317
|
+
children: t.status === 'failed' ? 'Failed' : 'Pending'
|
|
318
|
+
}) : /*#__PURE__*/_jsx(Badge, {
|
|
319
|
+
tone: "success",
|
|
320
|
+
dot: true,
|
|
321
|
+
children: "Completed"
|
|
322
|
+
})]
|
|
323
|
+
}), /*#__PURE__*/_jsxs(ListSection, {
|
|
324
|
+
children: [/*#__PURE__*/_jsx(ListItem, {
|
|
325
|
+
variant: "value",
|
|
326
|
+
title: "Date",
|
|
327
|
+
value: when
|
|
328
|
+
}), t.subtitle && /*#__PURE__*/_jsx(ListItem, {
|
|
329
|
+
variant: "value",
|
|
330
|
+
title: "Details",
|
|
331
|
+
value: t.subtitle
|
|
332
|
+
}), rows.map(r => /*#__PURE__*/_jsx(ListItem, {
|
|
333
|
+
variant: "value",
|
|
334
|
+
title: r.label,
|
|
335
|
+
value: r.value
|
|
336
|
+
}, r.label))]
|
|
337
|
+
}), actions]
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// ─── Result screens ──────────────────────────────────────────────────────────
|
|
342
|
+
|
|
343
|
+
/** Full-screen outcome: success, error, offline, maintenance, or "update required". */
|
|
344
|
+
export function ResultScreen({
|
|
345
|
+
kind = 'success',
|
|
346
|
+
title,
|
|
347
|
+
description,
|
|
348
|
+
amount,
|
|
349
|
+
primary,
|
|
350
|
+
secondary,
|
|
351
|
+
icon
|
|
352
|
+
}) {
|
|
353
|
+
const {
|
|
354
|
+
roles,
|
|
355
|
+
tokens,
|
|
356
|
+
locale
|
|
357
|
+
} = useTheme();
|
|
358
|
+
const tone = kind === 'success' ? 'success' : kind === 'error' ? 'error' : 'primary';
|
|
359
|
+
const Glyph = icon ?? CheckCircle2;
|
|
360
|
+
return /*#__PURE__*/_jsx(StickyFooter, {
|
|
361
|
+
footer: /*#__PURE__*/_jsxs(_Fragment, {
|
|
362
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
363
|
+
size: "lg",
|
|
364
|
+
fullWidth: true,
|
|
365
|
+
onPress: primary.onPress,
|
|
366
|
+
children: primary.label
|
|
367
|
+
}), secondary && /*#__PURE__*/_jsx(Button, {
|
|
368
|
+
size: "lg",
|
|
369
|
+
fullWidth: true,
|
|
370
|
+
variant: "text",
|
|
371
|
+
onPress: secondary.onPress,
|
|
372
|
+
children: secondary.label
|
|
373
|
+
})]
|
|
374
|
+
}),
|
|
375
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
376
|
+
accessibilityLiveRegion: "polite",
|
|
377
|
+
style: {
|
|
378
|
+
flex: 1,
|
|
379
|
+
alignItems: 'center',
|
|
380
|
+
justifyContent: 'center',
|
|
381
|
+
gap: tokens.spacing[4],
|
|
382
|
+
padding: tokens.spacing[6]
|
|
383
|
+
},
|
|
384
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
385
|
+
style: {
|
|
386
|
+
width: 88,
|
|
387
|
+
height: 88,
|
|
388
|
+
borderRadius: 44,
|
|
389
|
+
alignItems: 'center',
|
|
390
|
+
justifyContent: 'center',
|
|
391
|
+
backgroundColor: roles[`${tone}-container`]
|
|
392
|
+
},
|
|
393
|
+
children: /*#__PURE__*/_jsx(Glyph, {
|
|
394
|
+
size: 44,
|
|
395
|
+
color: roles[tone]
|
|
396
|
+
})
|
|
397
|
+
}), /*#__PURE__*/_jsx(Heading, {
|
|
398
|
+
variant: "headline-md",
|
|
399
|
+
style: {
|
|
400
|
+
textAlign: 'center'
|
|
401
|
+
},
|
|
402
|
+
children: title
|
|
403
|
+
}), amount && /*#__PURE__*/_jsx(Amount, {
|
|
404
|
+
value: amount.value,
|
|
405
|
+
currency: amount.currency,
|
|
406
|
+
locale: locale,
|
|
407
|
+
size: "display"
|
|
408
|
+
}), description && /*#__PURE__*/_jsx(Text, {
|
|
409
|
+
variant: "body-md",
|
|
410
|
+
color: "on-surface-variant",
|
|
411
|
+
style: {
|
|
412
|
+
textAlign: 'center'
|
|
413
|
+
},
|
|
414
|
+
children: description
|
|
415
|
+
})]
|
|
416
|
+
})
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
//# sourceMappingURL=money.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","SectionList","View","moneyFormatter","CheckCircle2","ShieldCheck","Button","ListItem","ListSection","Amount","Avatar","Badge","EmptyState","Progress","ExpressiveMoneyInput","RefreshControl","StickyFooter","SwipeableRow","ScreenContainer","Heading","Text","useTheme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FlowStep","step","total","title","children","footer","tokens","messages","gap","style","spacing","value","label","pageOf","variant","color","AmountStep","from","to","balance","quote","onContinue","locale","amount","setAmount","useState","fmt","n","c","format","over","q","undefined","size","fullWidth","disabled","onPress","currency","onValueChange","error","caption","fee","rate","arrives","ReviewStep","rows","confirmLabel","onConfirm","confirmHint","loading","leadingIcon","textAlign","map","r","ActivityList","transactions","onRefresh","refreshing","onEndReached","actions","header","empty","roles","day","Intl","DateTimeFormat","dateStyle","sections","useMemo","Map","t","sort","a","b","date","key","set","get","data","row","signDisplay","status","item","subtitle","leading","name","src","image","trailing","alignItems","tone","keyExtractor","id","contentInsetAdjustmentBehavior","backgroundColor","surface","contentContainerStyle","padding","ListHeaderComponent","ListEmptyComponent","description","renderSectionHeader","section","accessibilityRole","paddingTop","paddingBottom","paddingHorizontal","renderItem","index","borderTopStartRadius","shape","container","borderTopEndRadius","borderBottomStartRadius","length","borderBottomEndRadius","overflow","refreshControl","onEndReachedThreshold","stickySectionHeadersEnabled","TransactionDetail","transaction","when","timeStyle","paddingVertical","dot","ResultScreen","kind","primary","secondary","icon","Glyph","accessibilityLiveRegion","flex","justifyContent","width","height","borderRadius"],"sourceRoot":"../../../src","sources":["patterns/money.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useTheme } from "../theme/ThemeProvider.js";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/** An `@nexub/icons/native` icon coloured by a role. Decorative unless `label` is set. */
|
|
7
|
+
export function Icon({
|
|
8
|
+
icon: Glyph,
|
|
9
|
+
color = 'on-surface-variant',
|
|
10
|
+
...rest
|
|
11
|
+
}) {
|
|
12
|
+
return /*#__PURE__*/_jsx(Glyph, {
|
|
13
|
+
color: useTheme().roles[color],
|
|
14
|
+
...rest
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useTheme","jsx","_jsx","Icon","icon","Glyph","color","rest","roles"],"sourceRoot":"../../../src","sources":["primitives/Icon.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,QAAQ,QAAuB,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASjE;AACA,OAAO,SAASC,IAAIA,CAAC;EAAEC,IAAI,EAAEC,KAAK;EAAEC,KAAK,GAAG,oBAAoB;EAAE,GAAGC;AAAgB,CAAC,EAAE;EACtF,oBAAOL,IAAA,CAACG,KAAK;IAACC,KAAK,EAAEN,QAAQ,CAAC,CAAC,CAACQ,KAAK,CAACF,KAAK,CAAE;IAAA,GAAKC;EAAI,CAAG,CAAC;AAC5D","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { useTheme } from "../theme/ThemeProvider.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
function useBoxStyle({
|
|
8
|
+
padding,
|
|
9
|
+
paddingX,
|
|
10
|
+
paddingY,
|
|
11
|
+
gap,
|
|
12
|
+
background,
|
|
13
|
+
radius,
|
|
14
|
+
align,
|
|
15
|
+
justify,
|
|
16
|
+
flex
|
|
17
|
+
}) {
|
|
18
|
+
const {
|
|
19
|
+
tokens,
|
|
20
|
+
roles
|
|
21
|
+
} = useTheme();
|
|
22
|
+
const s = k => k === undefined ? undefined : tokens.spacing[k];
|
|
23
|
+
return {
|
|
24
|
+
padding: s(padding),
|
|
25
|
+
paddingHorizontal: s(paddingX),
|
|
26
|
+
paddingVertical: s(paddingY),
|
|
27
|
+
gap: s(gap),
|
|
28
|
+
backgroundColor: background && roles[background],
|
|
29
|
+
borderRadius: radius && tokens.shape[radius],
|
|
30
|
+
alignItems: align,
|
|
31
|
+
justifyContent: justify,
|
|
32
|
+
flex
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function Box({
|
|
36
|
+
style,
|
|
37
|
+
...props
|
|
38
|
+
}) {
|
|
39
|
+
return /*#__PURE__*/_jsx(View, {
|
|
40
|
+
style: [useBoxStyle(props), style],
|
|
41
|
+
...props
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Children in a column. @default gap '3' */
|
|
46
|
+
export function Stack({
|
|
47
|
+
gap = '3',
|
|
48
|
+
style,
|
|
49
|
+
...props
|
|
50
|
+
}) {
|
|
51
|
+
return /*#__PURE__*/_jsx(View, {
|
|
52
|
+
style: [useBoxStyle({
|
|
53
|
+
gap,
|
|
54
|
+
...props
|
|
55
|
+
}), style],
|
|
56
|
+
...props
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Children in a row that wraps, centred on the cross axis. @default gap '2' */
|
|
61
|
+
export function Inline({
|
|
62
|
+
gap = '2',
|
|
63
|
+
align = 'center',
|
|
64
|
+
style,
|
|
65
|
+
...props
|
|
66
|
+
}) {
|
|
67
|
+
return /*#__PURE__*/_jsx(View, {
|
|
68
|
+
style: [useBoxStyle({
|
|
69
|
+
gap,
|
|
70
|
+
align,
|
|
71
|
+
...props
|
|
72
|
+
}), {
|
|
73
|
+
flexDirection: 'row',
|
|
74
|
+
flexWrap: 'wrap'
|
|
75
|
+
}, style],
|
|
76
|
+
...props
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=Layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","useTheme","jsx","_jsx","useBoxStyle","padding","paddingX","paddingY","gap","background","radius","align","justify","flex","tokens","roles","s","k","undefined","spacing","paddingHorizontal","paddingVertical","backgroundColor","borderRadius","shape","alignItems","justifyContent","Box","style","props","Stack","Inline","flexDirection","flexWrap"],"sourceRoot":"../../../src","sources":["primitives/Layout.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAwC,cAAc;AAEnE,SAASC,QAAQ,QAAuB,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAoBjE,SAASC,WAAWA,CAAC;EACnBC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,GAAG;EACHC,UAAU;EACVC,MAAM;EACNC,KAAK;EACLC,OAAO;EACPC;AACQ,CAAC,EAAa;EACtB,MAAM;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGd,QAAQ,CAAC,CAAC;EACpC,MAAMe,CAAC,GAAIC,CAAS,IAAMA,CAAC,KAAKC,SAAS,GAAGA,SAAS,GAAGJ,MAAM,CAACK,OAAO,CAACF,CAAC,CAAE;EAC1E,OAAO;IACLZ,OAAO,EAAEW,CAAC,CAACX,OAAO,CAAC;IACnBe,iBAAiB,EAAEJ,CAAC,CAACV,QAAQ,CAAC;IAC9Be,eAAe,EAAEL,CAAC,CAACT,QAAQ,CAAC;IAC5BC,GAAG,EAAEQ,CAAC,CAACR,GAAG,CAAC;IACXc,eAAe,EAAEb,UAAU,IAAIM,KAAK,CAACN,UAAU,CAAC;IAChDc,YAAY,EAAEb,MAAM,IAAII,MAAM,CAACU,KAAK,CAACd,MAAM,CAAC;IAC5Ce,UAAU,EAAEd,KAAK;IACjBe,cAAc,EAAEd,OAAO;IACvBC;EACF,CAAC;AACH;AAEA,OAAO,SAASc,GAAGA,CAAC;EAAEC,KAAK;EAAE,GAAGC;AAAgB,CAAC,EAAE;EACjD,oBAAO1B,IAAA,CAACH,IAAI;IAAC4B,KAAK,EAAE,CAACxB,WAAW,CAACyB,KAAK,CAAC,EAAED,KAAK,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AAChE;;AAEA;AACA,OAAO,SAASC,KAAKA,CAAC;EAAEtB,GAAG,GAAG,GAAG;EAAEoB,KAAK;EAAE,GAAGC;AAAgB,CAAC,EAAE;EAC9D,oBAAO1B,IAAA,CAACH,IAAI;IAAC4B,KAAK,EAAE,CAACxB,WAAW,CAAC;MAAEI,GAAG;MAAE,GAAGqB;IAAM,CAAC,CAAC,EAAED,KAAK,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AAC5E;;AAEA;AACA,OAAO,SAASE,MAAMA,CAAC;EAAEvB,GAAG,GAAG,GAAG;EAAEG,KAAK,GAAG,QAAQ;EAAEiB,KAAK;EAAE,GAAGC;AAAgB,CAAC,EAAE;EACjF,oBACE1B,IAAA,CAACH,IAAI;IACH4B,KAAK,EAAE,CACLxB,WAAW,CAAC;MAAEI,GAAG;MAAEG,KAAK;MAAE,GAAGkB;IAAM,CAAC,CAAC,EACrC;MAAEG,aAAa,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAO,CAAC,EAC1CL,KAAK,CACL;IAAA,GACEC;EAAK,CACV,CAAC;AAEN","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Pressable as RNPressable, StyleSheet, View } from 'react-native';
|
|
5
|
+
import Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
|
|
6
|
+
import { useHaptics, useTheme } from "../theme/ThemeProvider.js";
|
|
7
|
+
|
|
8
|
+
// The touchable itself animates and takes `style`, so layout props (flex,
|
|
9
|
+
// position, margins) apply to the element that sits in the parent's layout.
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const AnimatedPressable = Animated.createAnimatedComponent(RNPressable);
|
|
12
|
+
const AnimatedView = Animated.createAnimatedComponent(View);
|
|
13
|
+
/**
|
|
14
|
+
* The base of every Nexub control: a state layer (on-colour at the pressed
|
|
15
|
+
* opacity) and a 0.97 press-scale on the spatial-fast spring. No ripple.
|
|
16
|
+
* Reduce Motion is honoured by Reanimated (ReduceMotion.System).
|
|
17
|
+
*/
|
|
18
|
+
export function Pressable({
|
|
19
|
+
style,
|
|
20
|
+
children,
|
|
21
|
+
haptic,
|
|
22
|
+
stateLayer = 'on-surface',
|
|
23
|
+
pressScale = 0.97,
|
|
24
|
+
disabled,
|
|
25
|
+
onPress,
|
|
26
|
+
onPressIn,
|
|
27
|
+
onPressOut,
|
|
28
|
+
...rest
|
|
29
|
+
}) {
|
|
30
|
+
const {
|
|
31
|
+
roles,
|
|
32
|
+
tokens
|
|
33
|
+
} = useTheme();
|
|
34
|
+
const play = useHaptics();
|
|
35
|
+
const pressed = useSharedValue(0);
|
|
36
|
+
const spring = tokens.motion.spring.spatial.fast;
|
|
37
|
+
const opacity = tokens.state.pressed;
|
|
38
|
+
const scale = pressScale === false ? 1 : pressScale;
|
|
39
|
+
const container = useAnimatedStyle(() => ({
|
|
40
|
+
transform: [{
|
|
41
|
+
scale: 1 - (1 - scale) * pressed.value
|
|
42
|
+
}]
|
|
43
|
+
}));
|
|
44
|
+
const layer = useAnimatedStyle(() => ({
|
|
45
|
+
opacity: pressed.value * opacity
|
|
46
|
+
}));
|
|
47
|
+
const radius = StyleSheet.flatten(style)?.borderRadius;
|
|
48
|
+
return /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
49
|
+
accessibilityRole: "button",
|
|
50
|
+
accessibilityState: {
|
|
51
|
+
disabled: !!disabled
|
|
52
|
+
},
|
|
53
|
+
disabled: disabled,
|
|
54
|
+
onPressIn: e => {
|
|
55
|
+
pressed.value = withSpring(1, spring);
|
|
56
|
+
onPressIn?.(e);
|
|
57
|
+
},
|
|
58
|
+
onPressOut: e => {
|
|
59
|
+
pressed.value = withSpring(0, spring);
|
|
60
|
+
onPressOut?.(e);
|
|
61
|
+
},
|
|
62
|
+
onPress: e => {
|
|
63
|
+
if (haptic) play(haptic);
|
|
64
|
+
onPress?.(e);
|
|
65
|
+
},
|
|
66
|
+
style: [style, container],
|
|
67
|
+
...rest,
|
|
68
|
+
children: [children, stateLayer && /*#__PURE__*/_jsx(AnimatedView, {
|
|
69
|
+
pointerEvents: "none",
|
|
70
|
+
style: [StyleSheet.absoluteFill, {
|
|
71
|
+
backgroundColor: roles[stateLayer],
|
|
72
|
+
borderRadius: radius
|
|
73
|
+
}, layer]
|
|
74
|
+
})]
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=Pressable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Pressable","RNPressable","StyleSheet","View","Animated","useAnimatedStyle","useSharedValue","withSpring","useHaptics","useTheme","jsx","_jsx","jsxs","_jsxs","AnimatedPressable","createAnimatedComponent","AnimatedView","style","children","haptic","stateLayer","pressScale","disabled","onPress","onPressIn","onPressOut","rest","roles","tokens","play","pressed","spring","motion","spatial","fast","opacity","state","scale","container","transform","value","layer","radius","flatten","borderRadius","accessibilityRole","accessibilityState","e","pointerEvents","absoluteFill","backgroundColor"],"sourceRoot":"../../../src","sources":["primitives/Pressable.tsx"],"mappings":"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","ignoreList":[]}
|