@tempoxyz/ds 0.3.9 → 0.3.11

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 (128) hide show
  1. package/dist/docs/AGENTS.md +9 -0
  2. package/dist/docs/components/accordion.md +489 -0
  3. package/dist/docs/components/address-card.md +147 -0
  4. package/dist/docs/components/agent-logo.md +194 -0
  5. package/dist/docs/components/alert-dialog.md +631 -0
  6. package/dist/docs/components/alert.md +448 -0
  7. package/dist/docs/components/amount-input.md +305 -0
  8. package/dist/docs/components/amount.md +794 -0
  9. package/dist/docs/components/app-shell.md +559 -0
  10. package/dist/docs/components/asset-chip.md +294 -0
  11. package/dist/docs/components/autocomplete.md +619 -0
  12. package/dist/docs/components/avatar.md +321 -0
  13. package/dist/docs/components/badge.md +339 -0
  14. package/dist/docs/components/badged-logo.md +116 -0
  15. package/dist/docs/components/banner.md +379 -0
  16. package/dist/docs/components/bar-chart.md +208 -0
  17. package/dist/docs/components/breadcrumbs.md +380 -0
  18. package/dist/docs/components/button-group.md +286 -0
  19. package/dist/docs/components/button.md +650 -0
  20. package/dist/docs/components/calendar.md +375 -0
  21. package/dist/docs/components/callout.md +96 -0
  22. package/dist/docs/components/checkbox-group.md +521 -0
  23. package/dist/docs/components/checkbox.md +467 -0
  24. package/dist/docs/components/choice-group.md +516 -0
  25. package/dist/docs/components/choicebox.md +641 -0
  26. package/dist/docs/components/code.md +100 -0
  27. package/dist/docs/components/combobox.md +939 -0
  28. package/dist/docs/components/container.md +257 -0
  29. package/dist/docs/components/copy-button.md +642 -0
  30. package/dist/docs/components/date-picker.md +514 -0
  31. package/dist/docs/components/dialog.md +1332 -0
  32. package/dist/docs/components/drawer.md +966 -0
  33. package/dist/docs/components/empty.md +340 -0
  34. package/dist/docs/components/field.md +570 -0
  35. package/dist/docs/components/fieldset.md +398 -0
  36. package/dist/docs/components/frame.md +434 -0
  37. package/dist/docs/components/gauge.md +299 -0
  38. package/dist/docs/components/get-started-visual.md +117 -0
  39. package/dist/docs/components/grid.md +288 -0
  40. package/dist/docs/components/hero-visual.md +155 -0
  41. package/dist/docs/components/hex.md +487 -0
  42. package/dist/docs/components/icon-tile.md +292 -0
  43. package/dist/docs/components/identicon.md +371 -0
  44. package/dist/docs/components/inline.md +233 -0
  45. package/dist/docs/components/inset.md +225 -0
  46. package/dist/docs/components/kbd.md +423 -0
  47. package/dist/docs/components/list-group.md +981 -0
  48. package/dist/docs/components/loading-dots.md +237 -0
  49. package/dist/docs/components/menu.md +934 -0
  50. package/dist/docs/components/native-select.md +204 -0
  51. package/dist/docs/components/network-logo.md +248 -0
  52. package/dist/docs/components/number-field.md +543 -0
  53. package/dist/docs/components/otp-field.md +616 -0
  54. package/dist/docs/components/pagination.md +516 -0
  55. package/dist/docs/components/popover.md +544 -0
  56. package/dist/docs/components/progress.md +388 -0
  57. package/dist/docs/components/qr.md +314 -0
  58. package/dist/docs/components/radio-group.md +528 -0
  59. package/dist/docs/components/secret-value.md +406 -0
  60. package/dist/docs/components/select.md +751 -0
  61. package/dist/docs/components/separator.md +379 -0
  62. package/dist/docs/components/sidebar-menu.md +922 -0
  63. package/dist/docs/components/skeleton.md +517 -0
  64. package/dist/docs/components/slider.md +539 -0
  65. package/dist/docs/components/snippet.md +424 -0
  66. package/dist/docs/components/spinner.md +216 -0
  67. package/dist/docs/components/split-bar.md +139 -0
  68. package/dist/docs/components/split-button.md +464 -0
  69. package/dist/docs/components/stack.md +299 -0
  70. package/dist/docs/components/status-chip.md +226 -0
  71. package/dist/docs/components/status-indicator.md +119 -0
  72. package/dist/docs/components/status-row.md +174 -0
  73. package/dist/docs/components/stepper.md +451 -0
  74. package/dist/docs/components/success-hero.md +157 -0
  75. package/dist/docs/components/surface.md +639 -0
  76. package/dist/docs/components/switch.md +472 -0
  77. package/dist/docs/components/table.md +967 -0
  78. package/dist/docs/components/tabs.md +627 -0
  79. package/dist/docs/components/tempo-logo.md +185 -0
  80. package/dist/docs/components/text-input.md +624 -0
  81. package/dist/docs/components/textarea.md +352 -0
  82. package/dist/docs/components/toast.md +535 -0
  83. package/dist/docs/components/token-logo.md +371 -0
  84. package/dist/docs/components/token.md +247 -0
  85. package/dist/docs/components/tooltip.md +490 -0
  86. package/dist/docs/components/verification-code.md +116 -0
  87. package/dist/docs/components/visual.md +249 -0
  88. package/dist/docs/components.md +203 -0
  89. package/dist/docs/foundations/accessibility.md +377 -0
  90. package/dist/docs/foundations/agents.md +150 -0
  91. package/dist/docs/foundations/color.md +522 -0
  92. package/dist/docs/foundations/content/tone.md +194 -0
  93. package/dist/docs/foundations/content/voice.md +194 -0
  94. package/dist/docs/foundations/content/writing-style.md +406 -0
  95. package/dist/docs/foundations/iconography.md +282 -0
  96. package/dist/docs/foundations/intent.md +360 -0
  97. package/dist/docs/foundations/layout.md +508 -0
  98. package/dist/docs/foundations/linter.md +296 -0
  99. package/dist/docs/foundations/motion.md +151 -0
  100. package/dist/docs/foundations/radius-and-padding.md +86 -0
  101. package/dist/docs/foundations/typography.md +266 -0
  102. package/dist/docs/index.md +137 -0
  103. package/dist/docs/introduction/faq.md +132 -0
  104. package/dist/docs/introduction/getting-started.md +377 -0
  105. package/dist/docs/patterns/blockchain-values.md +709 -0
  106. package/dist/docs/patterns/dashboards.md +638 -0
  107. package/dist/docs/patterns/destructive-actions.md +626 -0
  108. package/dist/docs/patterns/empty-states.md +612 -0
  109. package/dist/docs/patterns/errors-and-validation.md +808 -0
  110. package/dist/docs/patterns/feedback-and-status.md +518 -0
  111. package/dist/docs/patterns/forms.md +679 -0
  112. package/dist/docs/patterns/loading.md +630 -0
  113. package/dist/docs/patterns/navigation.md +397 -0
  114. package/dist/docs/patterns/payments.md +765 -0
  115. package/dist/docs/patterns/responsive-layout.md +997 -0
  116. package/dist/docs/patterns/tables-and-lists.md +964 -0
  117. package/dist/docs/products/tempo-console.md +671 -0
  118. package/dist/docs/products/tempo-performance.md +437 -0
  119. package/dist/docs/products/tempo-wallet.md +438 -0
  120. package/dist/web/components/OtpField.css +1 -1
  121. package/dist/web/components/OtpField.d.ts +1 -1
  122. package/dist/web/components/OtpField.d.ts.map +1 -1
  123. package/dist/web/components/OtpField.js +3 -4
  124. package/dist/web/components/OtpField.js.map +1 -1
  125. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  126. package/dist/web/index.js.zyzz.json +1 -1
  127. package/package.json +1 -1
  128. package/src/web/components/OtpField.tsx +2 -24
@@ -0,0 +1,438 @@
1
+ # Tempo Wallet
2
+
3
+ Tempo Wallet is the first-party wallet for balances, transfers, and deposits.
4
+
5
+ > [!NOTE]
6
+ > The reference layouts on this page are compositions of library components and `style`, not shipped components. `@tempoxyz/ds` exports no `WalletOverview` or `SendReview`. Copy a layout into your app and adapt it.
7
+
8
+ ## Overview
9
+
10
+ Tempo Wallet runs at [wallet.tempo.xyz](https://wallet.tempo.xyz). You sign in with a passkey, then send, receive, deposit, and swap stablecoins, and manage private balances in Zones.
11
+
12
+ Roles:
13
+
14
+ * **Account Holders:** Hold, send, and receive stablecoins such as pathUSD and USDC.e.
15
+ * **Developers and Agents (MPP):** Pay for API requests. Access keys permit an app or agent to spend within limits you approve.
16
+
17
+ ## Surfaces
18
+
19
+ * **Web (@tempoxyz/ds):** wallet.tempo.xyz on desktop browsers.
20
+ * **Mobile Web (@tempoxyz/ds):** The same app in iOS and Android browsers.
21
+ * **Terminal (CLI):** Tempo Wallet CLI, built outside this library.
22
+
23
+ No native iOS or Android app is documented. The Apple Pay deposit option is the only flow tied to a device. It needs a US debit card and an iOS device.
24
+
25
+ ## Key Screens
26
+
27
+ ### Overview
28
+
29
+ ```tsx
30
+ import { Amount, Button, Grid, Hex, Identicon, ListGroup, style, Surface, TokenLogo, Tooltip } from '@tempoxyz/ds'
31
+ import { AddFunds, ArrowDownLeft, Privacy, Send, SwapHorizontal } from '@tempoxyz/ds/icons'
32
+
33
+ export const fill = true
34
+ const account = '0x0b2c69c5c1bbd3f8b642c8d8a3c8a903f780f9b2'
35
+
36
+ const balances = [
37
+ {
38
+ address: '0x20c0000000000000000000000000000000000000',
39
+ amount: '8420.00',
40
+ name: 'PathUSD',
41
+ symbol: 'pathUSD',
42
+ units: '8,420.00',
43
+ },
44
+ {
45
+ address: '0x20c000000000000000000000b9537d11c60e8b50',
46
+ amount: '3170.32',
47
+ name: 'Bridged USDC (Stargate)',
48
+ symbol: 'USDC.e',
49
+ units: '3,170.32',
50
+ },
51
+ ]
52
+
53
+ export function Demo() {
54
+ return (
55
+ <div {...styles.page()}>
56
+ <header {...styles.account()}>
57
+ <Identicon address={account} aria-hidden size="32" />
58
+ <Hex.Root value={account} {...styles.address()}>
59
+ <Hex.Text />
60
+ <Hex.Copy aria-label="Copy wallet address" />
61
+ </Hex.Root>
62
+ </header>
63
+
64
+ <Surface>
65
+ <p {...styles.caption()}>Total balance</p>
66
+ <Amount currency="USD" size="xl" value="12840.32" />
67
+ <div {...styles.actions()}>
68
+ <Button>
69
+ <Send />
70
+ Send
71
+ </Button>
72
+ <Button variant="secondary">
73
+ <ArrowDownLeft />
74
+ Receive
75
+ </Button>
76
+ <Button variant="secondary">
77
+ <AddFunds />
78
+ Deposit
79
+ </Button>
80
+ <Button variant="secondary">
81
+ <SwapHorizontal />
82
+ Swap
83
+ </Button>
84
+ </div>
85
+ </Surface>
86
+
87
+ <Grid fit="large" gap="16">
88
+ <Surface>
89
+ <Surface.Header>
90
+ <Surface.Title>Balances</Surface.Title>
91
+ </Surface.Header>
92
+ <ListGroup.Root>
93
+ {balances.map((balance) => (
94
+ <ListGroup.Row key={balance.address}>
95
+ <TokenLogo address={balance.address} />
96
+ <ListGroup.Info>
97
+ <ListGroup.Title>{balance.name}</ListGroup.Title>
98
+ <ListGroup.Description>
99
+ {balance.units} {balance.symbol}
100
+ </ListGroup.Description>
101
+ </ListGroup.Info>
102
+ <Amount currency="USD" value={balance.amount} />
103
+ <Tooltip.Root>
104
+ <Tooltip.Trigger
105
+ aria-label={`Send ${balance.name}`}
106
+ render={<Button shape="icon" size="small" variant="tertiary" />}
107
+ >
108
+ <Send />
109
+ </Tooltip.Trigger>
110
+ <Tooltip.Popup>Send {balance.name}</Tooltip.Popup>
111
+ </Tooltip.Root>
112
+ </ListGroup.Row>
113
+ ))}
114
+ <ListGroup.Row action="navigation" render={<a href="#zones" />}>
115
+ <span {...styles.zone()}>
116
+ <Privacy />
117
+ </span>
118
+ <ListGroup.Info>
119
+ <ListGroup.Title>Private balance</ListGroup.Title>
120
+ <ListGroup.Description>Held in a zone</ListGroup.Description>
121
+ </ListGroup.Info>
122
+ <Amount currency="USD" value="1250.00" />
123
+ </ListGroup.Row>
124
+ </ListGroup.Root>
125
+ </Surface>
126
+
127
+ <Surface>
128
+ <Surface.Header>
129
+ <Surface.Title>Activity</Surface.Title>
130
+ <Button size="small" variant="tertiary">
131
+ View all
132
+ </Button>
133
+ </Surface.Header>
134
+ <ListGroup.Root>
135
+ <ListGroup.Row>
136
+ <ListGroup.Info>
137
+ <ListGroup.Title>Received from 0x3c44…93bc</ListGroup.Title>
138
+ <ListGroup.Description>Today, 9:41 AM</ListGroup.Description>
139
+ </ListGroup.Info>
140
+ <Amount sign="+" symbol="pathUSD" value="250.00" />
141
+ </ListGroup.Row>
142
+ <ListGroup.Row action="navigation" render={<a href="#access-key-activity" />}>
143
+ <ListGroup.Info>
144
+ <ListGroup.Title>Access Key activity</ListGroup.Title>
145
+ <ListGroup.Description>3 transactions</ListGroup.Description>
146
+ </ListGroup.Info>
147
+ <Amount sign="−" symbol="pathUSD" value="0.08" />
148
+ </ListGroup.Row>
149
+ <ListGroup.Row>
150
+ <ListGroup.Info>
151
+ <ListGroup.Title>Sent to 0x91bd…07e1</ListGroup.Title>
152
+ <ListGroup.Description>Yesterday, 4:18 PM</ListGroup.Description>
153
+ </ListGroup.Info>
154
+ <Amount sign="−" symbol="USDC.e" value="48.50" />
155
+ </ListGroup.Row>
156
+ </ListGroup.Root>
157
+ </Surface>
158
+ </Grid>
159
+ </div>
160
+ )
161
+ }
162
+
163
+ namespace styles {
164
+ export const account = style({ alignItems: 'center', columnGap: '12', display: 'flex' })
165
+
166
+ export const actions = style({
167
+ display: 'flex',
168
+ flexWrap: 'wrap',
169
+ gap: '8',
170
+ marginBlockStart: '24',
171
+ })
172
+
173
+ export const address = style({ minWidth: '0' })
174
+
175
+ export const caption = style({
176
+ color: 'content.secondary',
177
+ margin: '0',
178
+ marginBlockEnd: '4',
179
+ typography: 'body.b2',
180
+ })
181
+
182
+ export const page = style({
183
+ backgroundColor: 'background.primary',
184
+ display: 'flex',
185
+ flexDirection: 'column',
186
+ padding: '16',
187
+ rowGap: '16',
188
+ })
189
+
190
+ export const zone = style({
191
+ alignItems: 'center',
192
+ backgroundColor: 'container.strong',
193
+ borderRadius: 'full',
194
+ cornerShape: 'round',
195
+ display: 'inline-flex',
196
+ flexShrink: '0 !custom',
197
+ height: '24',
198
+ justifyContent: 'center',
199
+ width: '24',
200
+ })
201
+ }
202
+ ```
203
+
204
+ [View example source](https://github.com/tempoxyz/ds/blob/main/docs/src/examples/demos/Products/WalletOverview.tsx)
205
+
206
+ The overview leads with the total balance in USD, then the actions that move funds. On wide screens, Balances and Activity sit side by side. In a narrow column, they stack.
207
+
208
+ * **Wallet Address (Hex.Copy):** An identicon and the copyable address that others send to.
209
+ * **Total (size=xl):** Shows the total in USD.
210
+ * **Actions (primary):** Send is primary. Receive, Deposit, and Swap are secondary.
211
+ * **Balances (ListGroup):** A token icon, name, units, USD value, and a Send button.
212
+ * **Private Balance (navigation):** A row that opens Zones.
213
+ * **Access Key Activity (navigation):** Opens the list of MPP charges.
214
+
215
+ Patterns:
216
+
217
+ * [Payments](/docs/patterns/payments) for the Send, Receive, Deposit, and Swap entry points.
218
+ * [Blockchain Values](/docs/patterns/blockchain-values) for the address, token units, and USD values.
219
+ * [Tables and Lists](/docs/patterns/tables-and-lists) for balance and activity rows.
220
+
221
+ ### Send Review
222
+
223
+ ```tsx
224
+ import { Alert, Amount, Button, Hex, Identicon, ListGroup, style, Surface, TokenLogo } from '@tempoxyz/ds'
225
+ import { useEffect, useState } from 'react'
226
+
227
+ export const fill = true
228
+ const recipient = '0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc'
229
+
230
+ export function Demo() {
231
+ const [state, setState] = useState<'review' | 'sending' | 'sent'>('review')
232
+
233
+ useEffect(() => {
234
+ if (state !== 'sending') return
235
+ const timer = setTimeout(() => setState('sent'), 1200)
236
+ return () => clearTimeout(timer)
237
+ }, [state])
238
+
239
+ return (
240
+ <div {...styles.page()}>
241
+ <Surface {...styles.panel()}>
242
+ <Surface.Header>
243
+ <Surface.Title>{state === 'sent' ? 'Sent' : 'Review send'}</Surface.Title>
244
+ </Surface.Header>
245
+
246
+ <div {...styles.hero()}>
247
+ <Amount align="center" size="lg" symbol="pathUSD" value="250.00" />
248
+ </div>
249
+
250
+ <ListGroup.Root>
251
+ <ListGroup.Row>
252
+ <ListGroup.Label>To</ListGroup.Label>
253
+ <span {...styles.recipient()}>
254
+ <Identicon address={recipient} aria-hidden size="24" />
255
+ <Hex.Root value={recipient} {...styles.hex()}>
256
+ <Hex.Text />
257
+ <Hex.Copy aria-label="Copy recipient address" />
258
+ </Hex.Root>
259
+ </span>
260
+ </ListGroup.Row>
261
+ <ListGroup.Row>
262
+ <ListGroup.Label>Token</ListGroup.Label>
263
+ <TokenLogo address="0x20c0000000000000000000000000000000000000" size="small" />
264
+ PathUSD
265
+ </ListGroup.Row>
266
+ <ListGroup.Row>
267
+ <ListGroup.Label>Network</ListGroup.Label>
268
+ Tempo
269
+ </ListGroup.Row>
270
+ <ListGroup.Row>
271
+ <ListGroup.Label>Note</ListGroup.Label>
272
+ Invoice 1042
273
+ </ListGroup.Row>
274
+ <ListGroup.Row>
275
+ <ListGroup.Label>Network fee</ListGroup.Label>
276
+ <Amount currency="USD" precise value="0.001" />
277
+ </ListGroup.Row>
278
+ </ListGroup.Root>
279
+
280
+ {state === 'sent' ? (
281
+ <>
282
+ <Alert intent="positive" {...styles.notice()}>
283
+ <Alert.Icon />
284
+ <Alert.Content>Sent 250.00 pathUSD to 0x3c44…93bc.</Alert.Content>
285
+ </Alert>
286
+ <div {...styles.actions()}>
287
+ <Button.Link href="https://explore.tempo.xyz/" variant="secondary">
288
+ View in explorer
289
+ </Button.Link>
290
+ <Button onClick={() => setState('review')}>Done</Button>
291
+ </div>
292
+ </>
293
+ ) : (
294
+ <>
295
+ <p {...styles.warning()}>
296
+ Check the address before you confirm. Funds sent to the wrong address may not be
297
+ recoverable.
298
+ </p>
299
+ <div {...styles.actions()}>
300
+ <Button disabled={state === 'sending'} variant="secondary">
301
+ Back
302
+ </Button>
303
+ <Button loading={state === 'sending'} onClick={() => setState('sending')}>
304
+ Confirm send
305
+ </Button>
306
+ </div>
307
+ </>
308
+ )}
309
+ </Surface>
310
+ </div>
311
+ )
312
+ }
313
+
314
+ namespace styles {
315
+ export const actions = style({
316
+ columnGap: '8',
317
+ display: 'flex',
318
+ justifyContent: 'flex-end',
319
+ marginBlockStart: '24',
320
+ '@media (max-width: 40rem)': {
321
+ flexDirection: 'column-reverse',
322
+ rowGap: '8',
323
+ },
324
+ })
325
+
326
+ export const hero = style({ paddingBlock: '24' })
327
+
328
+ export const hex = style({ minWidth: '0' })
329
+
330
+ export const notice = style({ marginBlockStart: '24' })
331
+
332
+ export const page = style({
333
+ backgroundColor: 'background.primary',
334
+ display: 'flex',
335
+ justifyContent: 'center',
336
+ padding: '16',
337
+ })
338
+
339
+ export const panel = style({ maxWidth: '28rem !custom', width: '100% !custom' })
340
+
341
+ export const recipient = style({
342
+ alignItems: 'center',
343
+ columnGap: '8',
344
+ display: 'flex',
345
+ justifyContent: 'flex-end',
346
+ minWidth: '0',
347
+ })
348
+
349
+ export const warning = style({
350
+ color: 'content.secondary',
351
+ margin: '0',
352
+ marginBlockStart: '24',
353
+ typography: 'body.b3',
354
+ })
355
+ }
356
+ ```
357
+
358
+ [View example source](https://github.com/tempoxyz/ds/blob/main/docs/src/examples/demos/Products/WalletSendReview.tsx)
359
+
360
+ Send collects a recipient address, amount, token, and optional note. The review shows them with the network fee before you confirm.
361
+
362
+ * **Transfer Amount (symbol):** Shows the value of the transfer in large type and in token units.
363
+ * **Details (ListGroup.Label):** Lists the recipient, token, network, note, and network fee.
364
+ * **Recipient (Hex):** An identicon beside the address. Both ends stay visible for comparison.
365
+ * **Confirm (loading):** The only primary action. It is busy during the submit. A success alert with an Explorer link replaces it.
366
+
367
+ Patterns:
368
+
369
+ * [Payments](/docs/patterns/payments) for the review and confirmation step.
370
+ * [Blockchain Values](/docs/patterns/blockchain-values) for the truncated address and the fee.
371
+ * [Destructive Actions](/docs/patterns/destructive-actions) for what can't be undone.
372
+
373
+ ## Content
374
+
375
+ ### Show USD for Holdings and Token Units for Transfers
376
+
377
+ * **Holdings:** Show balances in USD.
378
+ * **Transfers:** Show the token amount, since the transaction carries it. The review states 250.00 pathUSD, not $250.00.
379
+
380
+ ### Label Every Address by What It Receives
381
+
382
+ * **Wallet address:** Receives from other Tempo Wallets.
383
+ * **Deposit address:** Shown in the Deposit crypto flow, for one chain and token.
384
+
385
+ **Do:** Label each address by purpose, such as Wallet address or Deposit address, and name the chain and
386
+ token beside a deposit address.
387
+
388
+ **Don't:** Show a bare 0x address without a label, or ask for the wallet address inside a deposit
389
+ flow.
390
+
391
+ ### Say Where a Deposit Option Works
392
+
393
+ Deposit offers Buy MACH, Fiat/cards, Deposit crypto, and Claim referral code. Availability depends on the country and the enabled onramps.
394
+
395
+ State a limit beside the option, such as US only for Apple Pay, not after the choice.
396
+
397
+ ### Group Machine Payments
398
+
399
+ An MPP session can produce several charges. Show the session as one row, such as Access Key activity with 3 transactions. List each charge when the row expands.
400
+
401
+ ### Don't Promise Recovery
402
+
403
+ Tempo can't recover a deleted passkey, and a transfer to the wrong address may be lost. State both in sign-in and review copy. Tell people to save their passkey in a password manager that syncs across devices.
404
+
405
+ ## Open Gaps
406
+
407
+ The library has no part for these needs yet. Before you add one, propose it as an issue in the Design System project.
408
+
409
+ * **Address Field:** Nothing checks a 0x address or suggests recipients. Use an input and an error, or an autocomplete.
410
+ * **QR Scanning:** Renders a QR code but can't read one from the camera.
411
+ * **Mobile Blockchain Parts:** `@tempoxyz/ds/mobile` has no amount, address, identicon, rows, token, or QR counterpart.
412
+ * **Activity Grouping:** Each screen composes grouped MPP rows again. No part names the session or its charge count.
413
+
414
+ ## Related
415
+
416
+ [Payments](/docs/patterns/payments)
417
+
418
+ Covers send, receive, and deposit flows.
419
+
420
+ [Blockchain Values](/docs/patterns/blockchain-values)
421
+
422
+ Covers addresses, amounts, and fees.
423
+
424
+ [Amount](/docs/components/amount)
425
+
426
+ Use for USD and token values.
427
+
428
+ [Hex](/docs/components/hex)
429
+
430
+ Use for addresses and hashes.
431
+
432
+ [ListGroup](/docs/components/list-group)
433
+
434
+ Use for balances and activity.
435
+
436
+ [TokenLogo](/docs/components/token-logo)
437
+
438
+ Use for token icons.
@@ -1 +1 @@
1
- .z_tds_2f_web-iELgRU0{appearance:none}.z_tds_2f_web-iELgRU1{background-color:var(--z-tds_2f_web-color-container-regular,light-dark(var(--z-tds_2f_web-color-neutral-shade-004,#0000000a),var(--z-tds_2f_web-color-neutral-tint-008,#ffffff14)))}.z_tds_2f_web-iELgRU2{border:none}.z_tds_2f_web-iELgRU3{box-sizing:border-box}.z_tds_2f_web-iELgRU4{caret-color:var(--z-tds_2f_web-color-content-primary,light-dark(var(--z-tds_2f_web-color-neutral-100,#000),var(--z-tds_2f_web-color-neutral-000,#fff)))}.z_tds_2f_web-iELgRU5{color:var(--z-tds_2f_web-color-content-primary,light-dark(var(--z-tds_2f_web-color-neutral-100,#000),var(--z-tds_2f_web-color-neutral-000,#fff)))}.z_tds_2f_web-iELgRU6{outline-color:#0000}.z_tds_2f_web-iELgRU7{outline-offset:-1.5px}.z_tds_2f_web-iELgRU8{outline-style:solid}.z_tds_2f_web-iELgRU9{outline-width:1.5px}.z_tds_2f_web-iELgRUa{padding:var(--z-tds_2f_web-spacing-0,0rem)}.z_tds_2f_web-iELgRUb{text-align:center}.z_tds_2f_web-iELgRUc{transition-duration:var(--z-tds_2f_web-transitionDuration-160,.16s)}.z_tds_2f_web-iELgRUd{transition-property:background-color,opacity,outline-color}.z_tds_2f_web-iELgRUe{transition-timing-function:var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}.z_tds_2f_web-iELgRUf{&:disabled{opacity:var(--z-tds_2f_web-opacity-disabled,.32)}}.z_tds_2f_web-iELgRUg{&:where(:hover:not(:disabled)){background-color:var(--z-tds_2f_web-color-container-strong,light-dark(var(--z-tds_2f_web-color-neutral-shade-008,#00000014),var(--z-tds_2f_web-color-neutral-tint-016,#ffffff29)))}}.z_tds_2f_web-iELgRUh{&:focus-visible{background-color:var(--z-tds_2f_web-color-background-elevated,light-dark(var(--z-tds_2f_web-color-neutral-000,#fff),#1a1a1a))}}.z_tds_2f_web-iELgRUi{&:focus-visible{outline-color:var(--z-tds_2f_web-color-border-focus,light-dark(var(--z-tds_2f_web-color-neutral-shade-040,#0006),var(--z-tds_2f_web-color-neutral-tint-052,#ffffff85)))}}.z_tds_2f_web-iELgRUj{&[data-invalid],[data-invalid] &{background-color:var(--z-tds_2f_web-color-container-negative,light-dark(var(--z-tds_2f_web-color-accent-alpha-regular-red-100,#eb341714),var(--z-tds_2f_web-color-accent-alpha-regular-red-200,#f55c4529)))}}.z_tds_2f_web-iELgRUk{[data-success] &{animation:z-kid-tds_2f_web_2f_otp_2d_field_2f_pop .32s var(--z-tds_2f_web-ease-overshoot,cubic-bezier(.34, 1.36, .64, 1)) both}}.z_tds_2f_web-iELgRUl{[data-success] &{background-color:var(--z-tds_2f_web-color-container-positive,light-dark(var(--z-tds_2f_web-color-accent-alpha-regular-green-100,#13a96314),var(--z-tds_2f_web-color-accent-alpha-regular-green-200,#59e5a429)))}}.z_tds_2f_web-iELgRUm{[data-success] &:nth-child(2){animation-delay:40ms}}.z_tds_2f_web-iELgRUn{[data-success] &:nth-child(3){animation-delay:80ms}}.z_tds_2f_web-iELgRUo{[data-success] &:nth-child(4){animation-delay:.12s}}.z_tds_2f_web-iELgRUp{[data-success] &:nth-child(5){animation-delay:.16s}}.z_tds_2f_web-iELgRUq{[data-success] &:nth-child(6){animation-delay:.2s}}.z_tds_2f_web-iELgRUr{[data-success] &:nth-child(7){animation-delay:.24s}}.z_tds_2f_web-iELgRUs{[data-success] &:nth-child(8){animation-delay:.28s}}@media (prefers-reduced-motion:reduce){.z_tds_2f_web-iELgRUt{[data-success] &{animation:none}}}.z_tds_2f_web-iELgRUu{align-items:center}.z_tds_2f_web-iELgRUv{column-gap:var(--z-tds_2f_web-spacing-8,.5rem)}.z_tds_2f_web-iELgRUw{display:flex}.z_tds_2f_web-iELgRUx{flex-wrap:nowrap}.z_tds_2f_web-iELgRUy{max-width:100%}.z_tds_2f_web-iELgRUz{min-width:var(--z-tds_2f_web-spacing-0,0rem)}.z_tds_2f_web-iELgRU10{&>input{border-radius:var(--z-tds_2f_web-radius-xs,calc(.75rem * var(--tds-corner-scale,1)))}}.z_tds_2f_web-iELgRU11{&>input{flex:auto}}.z_tds_2f_web-iELgRU12{&>input{height:var(--z-tds_2f_web-spacing-56,3.5rem)}}.z_tds_2f_web-iELgRU13{&>input{min-width:var(--z-tds_2f_web-spacing-0,0rem)}}.z_tds_2f_web-iELgRU14{&>input{font-family:var(--z-tds_2f_web-typography-body-b1Strong-fontFamily,var(--z-tds_2f_web-fontFamily-body,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"))}}.z_tds_2f_web-iELgRU15{&>input{font-size:var(--z-tds_2f_web-typography-body-b1Strong-fontSize,16px)}}.z_tds_2f_web-iELgRU16{&>input{font-weight:var(--z-tds_2f_web-typography-body-b1Strong-fontWeight,500)}}.z_tds_2f_web-iELgRU17{&>input{letter-spacing:var(--z-tds_2f_web-typography-body-b1Strong-letterSpacing,-.18px)}}.z_tds_2f_web-iELgRU18{&>input{line-height:var(--z-tds_2f_web-typography-body-b1Strong-lineHeight,22px)}}.z_tds_2f_web-iELgRU19{&>input{width:var(--z-tds_2f_web-spacing-44,2.75rem)}}.z_tds_2f_web-iELgRU1a{&>input:focus-visible{width:calc(2.75rem + 3px)}}.z_tds_2f_web-iELgRU1b{&[data-invalid]{animation:z-kid-tds_2f_web_2f_otp_2d_field_2f_nudge .36s var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}}@media (prefers-reduced-motion:reduce){.z_tds_2f_web-iELgRU1c{&[data-invalid]{animation:none}}}
1
+ .z_tds_2f_web-iELgRU0{appearance:none}.z_tds_2f_web-iELgRU1{background-color:var(--z-tds_2f_web-color-container-regular,light-dark(var(--z-tds_2f_web-color-neutral-shade-004,#0000000a),var(--z-tds_2f_web-color-neutral-tint-008,#ffffff14)))}.z_tds_2f_web-iELgRU2{border:none}.z_tds_2f_web-iELgRU3{box-sizing:border-box}.z_tds_2f_web-iELgRU4{caret-color:var(--z-tds_2f_web-color-content-primary,light-dark(var(--z-tds_2f_web-color-neutral-100,#000),var(--z-tds_2f_web-color-neutral-000,#fff)))}.z_tds_2f_web-iELgRU5{color:var(--z-tds_2f_web-color-content-primary,light-dark(var(--z-tds_2f_web-color-neutral-100,#000),var(--z-tds_2f_web-color-neutral-000,#fff)))}.z_tds_2f_web-iELgRU6{outline-color:#0000}.z_tds_2f_web-iELgRU7{outline-offset:-1.5px}.z_tds_2f_web-iELgRU8{outline-style:solid}.z_tds_2f_web-iELgRU9{outline-width:1.5px}.z_tds_2f_web-iELgRUa{padding:var(--z-tds_2f_web-spacing-0,0rem)}.z_tds_2f_web-iELgRUb{text-align:center}.z_tds_2f_web-iELgRUc{transition-duration:var(--z-tds_2f_web-transitionDuration-160,.16s)}.z_tds_2f_web-iELgRUd{transition-property:background-color,opacity,outline-color}.z_tds_2f_web-iELgRUe{transition-timing-function:var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}.z_tds_2f_web-iELgRUf{&:disabled{opacity:var(--z-tds_2f_web-opacity-disabled,.32)}}.z_tds_2f_web-iELgRUg{&:where(:hover:not(:disabled)){background-color:var(--z-tds_2f_web-color-container-strong,light-dark(var(--z-tds_2f_web-color-neutral-shade-008,#00000014),var(--z-tds_2f_web-color-neutral-tint-016,#ffffff29)))}}.z_tds_2f_web-iELgRUh{&:focus-visible{background-color:var(--z-tds_2f_web-color-background-elevated,light-dark(var(--z-tds_2f_web-color-neutral-000,#fff),#1a1a1a))}}.z_tds_2f_web-iELgRUi{&:focus-visible{outline-color:var(--z-tds_2f_web-color-border-focus,light-dark(var(--z-tds_2f_web-color-neutral-shade-040,#0006),var(--z-tds_2f_web-color-neutral-tint-052,#ffffff85)))}}.z_tds_2f_web-iELgRUj{&[data-invalid],[data-invalid] &{background-color:var(--z-tds_2f_web-color-container-negative,light-dark(var(--z-tds_2f_web-color-accent-alpha-regular-red-100,#eb341714),var(--z-tds_2f_web-color-accent-alpha-regular-red-200,#f55c4529)))}}.z_tds_2f_web-iELgRUk{[data-success] &{background-color:var(--z-tds_2f_web-color-container-positive,light-dark(var(--z-tds_2f_web-color-accent-alpha-regular-green-100,#13a96314),var(--z-tds_2f_web-color-accent-alpha-regular-green-200,#59e5a429)))}}.z_tds_2f_web-iELgRUl{align-items:center}.z_tds_2f_web-iELgRUm{column-gap:var(--z-tds_2f_web-spacing-8,.5rem)}.z_tds_2f_web-iELgRUn{display:flex}.z_tds_2f_web-iELgRUo{flex-wrap:nowrap}.z_tds_2f_web-iELgRUp{max-width:100%}.z_tds_2f_web-iELgRUq{min-width:var(--z-tds_2f_web-spacing-0,0rem)}.z_tds_2f_web-iELgRUr{&>input{border-radius:var(--z-tds_2f_web-radius-xs,calc(.75rem * var(--tds-corner-scale,1)))}}.z_tds_2f_web-iELgRUs{&>input{flex:auto}}.z_tds_2f_web-iELgRUt{&>input{height:var(--z-tds_2f_web-spacing-56,3.5rem)}}.z_tds_2f_web-iELgRUu{&>input{min-width:var(--z-tds_2f_web-spacing-0,0rem)}}.z_tds_2f_web-iELgRUv{&>input{font-family:var(--z-tds_2f_web-typography-body-b1Strong-fontFamily,var(--z-tds_2f_web-fontFamily-body,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"))}}.z_tds_2f_web-iELgRUw{&>input{font-size:var(--z-tds_2f_web-typography-body-b1Strong-fontSize,16px)}}.z_tds_2f_web-iELgRUx{&>input{font-weight:var(--z-tds_2f_web-typography-body-b1Strong-fontWeight,500)}}.z_tds_2f_web-iELgRUy{&>input{letter-spacing:var(--z-tds_2f_web-typography-body-b1Strong-letterSpacing,-.18px)}}.z_tds_2f_web-iELgRUz{&>input{line-height:var(--z-tds_2f_web-typography-body-b1Strong-lineHeight,22px)}}.z_tds_2f_web-iELgRU10{&>input{width:var(--z-tds_2f_web-spacing-44,2.75rem)}}.z_tds_2f_web-iELgRU11{&>input:focus-visible{width:calc(2.75rem + 3px)}}.z_tds_2f_web-iELgRU12{&[data-invalid]{animation:z-kid-tds_2f_web_2f_otp_2d_field_2f_nudge .36s var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}}@media (prefers-reduced-motion:reduce){.z_tds_2f_web-iELgRU13{&[data-invalid]{animation:none}}}
@@ -4,7 +4,7 @@ import type * as zyzz from 'zyzz';
4
4
  /**
5
5
  * One-time passcode entry with a slot per character. Slots render by default from `length`.
6
6
  * Setting `invalid` fills the slots red and nudges them sideways. Setting `success` fills them
7
- * green and pops them in sequence.
7
+ * green.
8
8
  *
9
9
  * Base UI renders a `role="group"` of text inputs that accepts digits by default. Pasting a code
10
10
  * into a slot fills it and the slots after it. The first slot carries
@@ -1 +1 @@
1
- {"version":3,"file":"OtpField.d.ts","sourceRoot":"","sources":["../../../src/web/components/OtpField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAA6B,MAAM,OAAO,CAAA;AAC7E,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAA;AAMjC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,yBAAiB,QAAQ,CAAC;IACxB;;;;;;OAMG;IACH,SAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,+BAyBrC;IAED,UAAiB,IAAI,CAAC;QACpB,KAAY,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,GACjF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,GACvC,IAAI,CACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EACxB,cAAc,GACd,YAAY,GACZ,cAAc,GACd,UAAU,GACV,MAAM,GACN,WAAW,GACX,QAAQ,GACR,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,UAAU,GACV,gBAAgB,GAChB,OAAO,CACV,GAAG;YAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAAE,CAAA;KACvE;IAED;;;OAGG;IACH,SAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,+BAYvC;IAED,UAAiB,KAAK,CAAC;QACrB,KAAY,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;KAC9F;CACF;AAqBD,kBAAU,MAAM,CAAC;IACR,MAAM,KAAK,gCA2CjB,CAAA;IAEM,MAAM,IAAI,gCA+BhB,CAAA;CACF"}
1
+ {"version":3,"file":"OtpField.d.ts","sourceRoot":"","sources":["../../../src/web/components/OtpField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAA6B,MAAM,OAAO,CAAA;AAC7E,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAA;AAMjC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,yBAAiB,QAAQ,CAAC;IACxB;;;;;;OAMG;IACH,SAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,+BAyBrC;IAED,UAAiB,IAAI,CAAC;QACpB,KAAY,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,GACjF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,GACvC,IAAI,CACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EACxB,cAAc,GACd,YAAY,GACZ,cAAc,GACd,UAAU,GACV,MAAM,GACN,WAAW,GACX,QAAQ,GACR,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,UAAU,GACV,gBAAgB,GAChB,OAAO,CACV,GAAG;YAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAAE,CAAA;KACvE;IAED;;;OAGG;IACH,SAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,+BAYvC;IAED,UAAiB,KAAK,CAAC;QACrB,KAAY,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;KAC9F;CACF;AAaD,kBAAU,MAAM,CAAC;IACR,MAAM,KAAK,gCA6BjB,CAAA;IAEM,MAAM,IAAI,gCA+BhB,CAAA;CACF"}
@@ -9,7 +9,7 @@ const InvalidContext = createContext(false);
9
9
  /**
10
10
  * One-time passcode entry with a slot per character. Slots render by default from `length`.
11
11
  * Setting `invalid` fills the slots red and nudges them sideways. Setting `success` fills them
12
- * green and pops them in sequence.
12
+ * green.
13
13
  *
14
14
  * Base UI renders a `role="group"` of text inputs that accepts digits by default. Pasting a code
15
15
  * into a slot fills it and the slots after it. The first slot carries
@@ -55,11 +55,10 @@ export var OtpField;
55
55
  OtpField.Input = Input;
56
56
  })(OtpField || (OtpField = {}));
57
57
  const nudge = "z-kid-tds_2f_web_2f_otp_2d_field_2f_nudge";
58
- const pop = "z-kid-tds_2f_web_2f_otp_2d_field_2f_pop";
59
58
  var styles;
60
59
  (function (styles) {
61
- styles.input = /*#__PURE__*/__zyzzProps.create({className:"z_tds_2f_web-iELgRU0 z_tds_2f_web-iELgRU1 z_tds_2f_web-iELgRU2 z_tds_2f_web-iELgRU3 z_tds_2f_web-iELgRU4 z_tds_2f_web-iELgRU5 z_tds_2f_web-iELgRU6 z_tds_2f_web-iELgRU7 z_tds_2f_web-iELgRU8 z_tds_2f_web-iELgRU9 z_tds_2f_web-iELgRUa z_tds_2f_web-iELgRUb z_tds_2f_web-iELgRUc z_tds_2f_web-iELgRUd z_tds_2f_web-iELgRUe z_tds_2f_web-iELgRUf z_tds_2f_web-iELgRUg z_tds_2f_web-iELgRUh z_tds_2f_web-iELgRUi z_tds_2f_web-iELgRUj z_tds_2f_web-iELgRUk z_tds_2f_web-iELgRUl z_tds_2f_web-iELgRUm z_tds_2f_web-iELgRUn z_tds_2f_web-iELgRUo z_tds_2f_web-iELgRUp z_tds_2f_web-iELgRUq z_tds_2f_web-iELgRUr z_tds_2f_web-iELgRUs z_tds_2f_web-iELgRUt"});
62
- styles.root = /*#__PURE__*/__zyzzProps.create({className:"z_tds_2f_web-iELgRUu z_tds_2f_web-iELgRUv z_tds_2f_web-iELgRUw z_tds_2f_web-iELgRUx z_tds_2f_web-iELgRUy z_tds_2f_web-iELgRUz z_tds_2f_web-iELgRU10 z_tds_2f_web-iELgRU11 z_tds_2f_web-iELgRU12 z_tds_2f_web-iELgRU13 z_tds_2f_web-iELgRU14 z_tds_2f_web-iELgRU15 z_tds_2f_web-iELgRU16 z_tds_2f_web-iELgRU17 z_tds_2f_web-iELgRU18 z_tds_2f_web-iELgRU19 z_tds_2f_web-iELgRU1a z_tds_2f_web-iELgRU1b z_tds_2f_web-iELgRU1c"});
60
+ styles.input = /*#__PURE__*/__zyzzProps.create({className:"z_tds_2f_web-iELgRU0 z_tds_2f_web-iELgRU1 z_tds_2f_web-iELgRU2 z_tds_2f_web-iELgRU3 z_tds_2f_web-iELgRU4 z_tds_2f_web-iELgRU5 z_tds_2f_web-iELgRU6 z_tds_2f_web-iELgRU7 z_tds_2f_web-iELgRU8 z_tds_2f_web-iELgRU9 z_tds_2f_web-iELgRUa z_tds_2f_web-iELgRUb z_tds_2f_web-iELgRUc z_tds_2f_web-iELgRUd z_tds_2f_web-iELgRUe z_tds_2f_web-iELgRUf z_tds_2f_web-iELgRUg z_tds_2f_web-iELgRUh z_tds_2f_web-iELgRUi z_tds_2f_web-iELgRUj z_tds_2f_web-iELgRUk"});
61
+ styles.root = /*#__PURE__*/__zyzzProps.create({className:"z_tds_2f_web-iELgRUl z_tds_2f_web-iELgRUm z_tds_2f_web-iELgRUn z_tds_2f_web-iELgRUo z_tds_2f_web-iELgRUp z_tds_2f_web-iELgRUq z_tds_2f_web-iELgRUr z_tds_2f_web-iELgRUs z_tds_2f_web-iELgRUt z_tds_2f_web-iELgRUu z_tds_2f_web-iELgRUv z_tds_2f_web-iELgRUw z_tds_2f_web-iELgRUx z_tds_2f_web-iELgRUy z_tds_2f_web-iELgRUz z_tds_2f_web-iELgRU10 z_tds_2f_web-iELgRU11 z_tds_2f_web-iELgRU12 z_tds_2f_web-iELgRU13"});
63
62
  })(styles || (styles = {}));
64
63
  //# sourceMappingURL=OtpField.js.map
65
64
  import './OtpField.css';
@@ -1 +1 @@
1
- {"version":3,"file":"OtpField.js","sourceRoot":"","sources":["../../../src/web/components/OtpField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OtpField.js","sourceRoot":"","sources":["../../../src/web/components/OtpField.tsx"],"names":[],"mappings":"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"}