@nexub/react-native 0.0.0-stage → 2.2.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 (134) hide show
  1. package/README.md +113 -2
  2. package/lib/module/components/actions.js +222 -0
  3. package/lib/module/components/actions.js.map +1 -0
  4. package/lib/module/components/containers.js +300 -0
  5. package/lib/module/components/containers.js.map +1 -0
  6. package/lib/module/components/display.js +299 -0
  7. package/lib/module/components/display.js.map +1 -0
  8. package/lib/module/components/feedback.js +484 -0
  9. package/lib/module/components/feedback.js.map +1 -0
  10. package/lib/module/components/inputs.js +792 -0
  11. package/lib/module/components/inputs.js.map +1 -0
  12. package/lib/module/components/mobile.js +818 -0
  13. package/lib/module/components/mobile.js.map +1 -0
  14. package/lib/module/components/overlays.js +421 -0
  15. package/lib/module/components/overlays.js.map +1 -0
  16. package/lib/module/components/shared.js +57 -0
  17. package/lib/module/components/shared.js.map +1 -0
  18. package/lib/module/hooks/useControllableState.js +23 -0
  19. package/lib/module/hooks/useControllableState.js.map +1 -0
  20. package/lib/module/index.js +31 -0
  21. package/lib/module/index.js.map +1 -0
  22. package/lib/module/package.json +1 -0
  23. package/lib/module/patterns/app.js +709 -0
  24. package/lib/module/patterns/app.js.map +1 -0
  25. package/lib/module/patterns/auth.js +224 -0
  26. package/lib/module/patterns/auth.js.map +1 -0
  27. package/lib/module/patterns/home.js +201 -0
  28. package/lib/module/patterns/home.js.map +1 -0
  29. package/lib/module/patterns/index.js +8 -0
  30. package/lib/module/patterns/index.js.map +1 -0
  31. package/lib/module/patterns/money.js +419 -0
  32. package/lib/module/patterns/money.js.map +1 -0
  33. package/lib/module/primitives/Icon.js +17 -0
  34. package/lib/module/primitives/Icon.js.map +1 -0
  35. package/lib/module/primitives/Layout.js +79 -0
  36. package/lib/module/primitives/Layout.js.map +1 -0
  37. package/lib/module/primitives/Pressable.js +79 -0
  38. package/lib/module/primitives/Pressable.js.map +1 -0
  39. package/lib/module/primitives/ScreenContainer.js +58 -0
  40. package/lib/module/primitives/ScreenContainer.js.map +1 -0
  41. package/lib/module/primitives/Surface.js +57 -0
  42. package/lib/module/primitives/Surface.js.map +1 -0
  43. package/lib/module/primitives/Text.js +70 -0
  44. package/lib/module/primitives/Text.js.map +1 -0
  45. package/lib/module/theme/ThemeProvider.js +127 -0
  46. package/lib/module/theme/ThemeProvider.js.map +1 -0
  47. package/lib/module/theme/fonts.js +56 -0
  48. package/lib/module/theme/fonts.js.map +1 -0
  49. package/lib/module/theme/haptics.js +56 -0
  50. package/lib/module/theme/haptics.js.map +1 -0
  51. package/lib/module/theme/motion.js +89 -0
  52. package/lib/module/theme/motion.js.map +1 -0
  53. package/lib/module/theme/navigation.js +99 -0
  54. package/lib/module/theme/navigation.js.map +1 -0
  55. package/lib/typescript/components/actions.d.ts +53 -0
  56. package/lib/typescript/components/actions.d.ts.map +1 -0
  57. package/lib/typescript/components/containers.d.ts +59 -0
  58. package/lib/typescript/components/containers.d.ts.map +1 -0
  59. package/lib/typescript/components/display.d.ts +68 -0
  60. package/lib/typescript/components/display.d.ts.map +1 -0
  61. package/lib/typescript/components/feedback.d.ts +96 -0
  62. package/lib/typescript/components/feedback.d.ts.map +1 -0
  63. package/lib/typescript/components/inputs.d.ts +141 -0
  64. package/lib/typescript/components/inputs.d.ts.map +1 -0
  65. package/lib/typescript/components/mobile.d.ts +173 -0
  66. package/lib/typescript/components/mobile.d.ts.map +1 -0
  67. package/lib/typescript/components/overlays.d.ts +74 -0
  68. package/lib/typescript/components/overlays.d.ts.map +1 -0
  69. package/lib/typescript/components/shared.d.ts +20 -0
  70. package/lib/typescript/components/shared.d.ts.map +1 -0
  71. package/lib/typescript/hooks/useControllableState.d.ts +6 -0
  72. package/lib/typescript/hooks/useControllableState.d.ts.map +1 -0
  73. package/lib/typescript/index.d.ts +39 -0
  74. package/lib/typescript/index.d.ts.map +1 -0
  75. package/lib/typescript/package.json +1 -0
  76. package/lib/typescript/patterns/app.d.ts +139 -0
  77. package/lib/typescript/patterns/app.d.ts.map +1 -0
  78. package/lib/typescript/patterns/auth.d.ts +54 -0
  79. package/lib/typescript/patterns/auth.d.ts.map +1 -0
  80. package/lib/typescript/patterns/home.d.ts +50 -0
  81. package/lib/typescript/patterns/home.d.ts.map +1 -0
  82. package/lib/typescript/patterns/index.d.ts +9 -0
  83. package/lib/typescript/patterns/index.d.ts.map +1 -0
  84. package/lib/typescript/patterns/money.d.ts +106 -0
  85. package/lib/typescript/patterns/money.d.ts.map +1 -0
  86. package/lib/typescript/primitives/Icon.d.ts +12 -0
  87. package/lib/typescript/primitives/Icon.d.ts.map +1 -0
  88. package/lib/typescript/primitives/Layout.d.ts +26 -0
  89. package/lib/typescript/primitives/Layout.d.ts.map +1 -0
  90. package/lib/typescript/primitives/Pressable.d.ts +21 -0
  91. package/lib/typescript/primitives/Pressable.d.ts.map +1 -0
  92. package/lib/typescript/primitives/ScreenContainer.d.ts +25 -0
  93. package/lib/typescript/primitives/ScreenContainer.d.ts.map +1 -0
  94. package/lib/typescript/primitives/Surface.d.ts +23 -0
  95. package/lib/typescript/primitives/Surface.d.ts.map +1 -0
  96. package/lib/typescript/primitives/Text.d.ts +21 -0
  97. package/lib/typescript/primitives/Text.d.ts.map +1 -0
  98. package/lib/typescript/theme/ThemeProvider.d.ts +69 -0
  99. package/lib/typescript/theme/ThemeProvider.d.ts.map +1 -0
  100. package/lib/typescript/theme/fonts.d.ts +25 -0
  101. package/lib/typescript/theme/fonts.d.ts.map +1 -0
  102. package/lib/typescript/theme/haptics.d.ts +3 -0
  103. package/lib/typescript/theme/haptics.d.ts.map +1 -0
  104. package/lib/typescript/theme/motion.d.ts +79 -0
  105. package/lib/typescript/theme/motion.d.ts.map +1 -0
  106. package/lib/typescript/theme/navigation.d.ts +158 -0
  107. package/lib/typescript/theme/navigation.d.ts.map +1 -0
  108. package/package.json +138 -3
  109. package/src/components/actions.tsx +259 -0
  110. package/src/components/containers.tsx +352 -0
  111. package/src/components/display.tsx +345 -0
  112. package/src/components/feedback.tsx +541 -0
  113. package/src/components/inputs.tsx +899 -0
  114. package/src/components/mobile.tsx +883 -0
  115. package/src/components/overlays.tsx +488 -0
  116. package/src/components/shared.ts +54 -0
  117. package/src/hooks/useControllableState.ts +27 -0
  118. package/src/index.ts +177 -0
  119. package/src/patterns/app.tsx +715 -0
  120. package/src/patterns/auth.tsx +266 -0
  121. package/src/patterns/home.tsx +211 -0
  122. package/src/patterns/index.ts +59 -0
  123. package/src/patterns/money.tsx +458 -0
  124. package/src/primitives/Icon.tsx +15 -0
  125. package/src/primitives/Layout.tsx +71 -0
  126. package/src/primitives/Pressable.tsx +97 -0
  127. package/src/primitives/ScreenContainer.tsx +65 -0
  128. package/src/primitives/Surface.tsx +75 -0
  129. package/src/primitives/Text.tsx +79 -0
  130. package/src/theme/ThemeProvider.tsx +210 -0
  131. package/src/theme/fonts.ts +52 -0
  132. package/src/theme/haptics.ts +57 -0
  133. package/src/theme/motion.ts +105 -0
  134. 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,79 @@
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
+ import { nxSpring } from "../theme/motion.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const PRESS_SPRING = nxSpring('spatial', 'fast');
10
+
11
+ // The touchable itself animates and takes `style`, so layout props (flex,
12
+ // position, margins) apply to the element that sits in the parent's layout.
13
+ const AnimatedPressable = Animated.createAnimatedComponent(RNPressable);
14
+ const AnimatedView = Animated.createAnimatedComponent(View);
15
+ /**
16
+ * The base of every Nexub control: a state layer (on-colour at the pressed
17
+ * opacity) and a 0.97 press-scale on the spatial-fast spring. No ripple.
18
+ * Reduce Motion is honoured by Reanimated (ReduceMotion.System).
19
+ */
20
+ export function Pressable({
21
+ style,
22
+ children,
23
+ haptic,
24
+ stateLayer = 'on-surface',
25
+ pressScale = 0.97,
26
+ disabled,
27
+ onPress,
28
+ onPressIn,
29
+ onPressOut,
30
+ ...rest
31
+ }) {
32
+ const {
33
+ roles,
34
+ tokens
35
+ } = useTheme();
36
+ const play = useHaptics();
37
+ const pressed = useSharedValue(0);
38
+ const spring = PRESS_SPRING;
39
+ const opacity = tokens.state.pressed;
40
+ const scale = pressScale === false ? 1 : pressScale;
41
+ const container = useAnimatedStyle(() => ({
42
+ transform: [{
43
+ scale: 1 - (1 - scale) * pressed.value
44
+ }]
45
+ }));
46
+ const layer = useAnimatedStyle(() => ({
47
+ opacity: pressed.value * opacity
48
+ }));
49
+ const radius = StyleSheet.flatten(style)?.borderRadius;
50
+ return /*#__PURE__*/_jsxs(AnimatedPressable, {
51
+ accessibilityRole: "button",
52
+ accessibilityState: {
53
+ disabled: !!disabled
54
+ },
55
+ disabled: disabled,
56
+ onPressIn: e => {
57
+ pressed.value = withSpring(1, spring);
58
+ onPressIn?.(e);
59
+ },
60
+ onPressOut: e => {
61
+ pressed.value = withSpring(0, spring);
62
+ onPressOut?.(e);
63
+ },
64
+ onPress: e => {
65
+ if (haptic) play(haptic);
66
+ onPress?.(e);
67
+ },
68
+ style: [style, container],
69
+ ...rest,
70
+ children: [children, stateLayer && /*#__PURE__*/_jsx(AnimatedView, {
71
+ pointerEvents: "none",
72
+ style: [StyleSheet.absoluteFill, {
73
+ backgroundColor: roles[stateLayer],
74
+ borderRadius: radius
75
+ }, layer]
76
+ })]
77
+ });
78
+ }
79
+ //# sourceMappingURL=Pressable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","RNPressable","StyleSheet","View","Animated","useAnimatedStyle","useSharedValue","withSpring","useHaptics","useTheme","nxSpring","jsx","_jsx","jsxs","_jsxs","PRESS_SPRING","AnimatedPressable","createAnimatedComponent","AnimatedView","style","children","haptic","stateLayer","pressScale","disabled","onPress","onPressIn","onPressOut","rest","roles","tokens","play","pressed","spring","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":[]}