@daimo/sdk 1.4.3 → 1.5.1

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 (240) hide show
  1. package/dist/client/createDaimoClient.d.ts +12 -1
  2. package/dist/client/createDaimoClient.d.ts.map +1 -1
  3. package/dist/client/createDaimoClient.js +40 -1
  4. package/dist/client/createDaimoClient.js.map +1 -1
  5. package/dist/common/account.d.ts +167 -9
  6. package/dist/common/account.d.ts.map +1 -1
  7. package/dist/common/account.js +8 -0
  8. package/dist/common/account.js.map +1 -1
  9. package/dist/common/api.d.ts +5 -5
  10. package/dist/common/api.d.ts.map +1 -1
  11. package/dist/common/api.js +2 -0
  12. package/dist/common/api.js.map +1 -1
  13. package/dist/common/index.d.ts +1 -0
  14. package/dist/common/index.d.ts.map +1 -1
  15. package/dist/common/index.js +1 -0
  16. package/dist/common/index.js.map +1 -1
  17. package/dist/common/session.d.ts +1 -1
  18. package/dist/common/session.d.ts.map +1 -1
  19. package/dist/common/theme.d.ts +47 -0
  20. package/dist/common/theme.d.ts.map +1 -0
  21. package/dist/common/theme.js +230 -0
  22. package/dist/common/theme.js.map +1 -0
  23. package/dist/common/token.d.ts +3 -0
  24. package/dist/common/token.d.ts.map +1 -1
  25. package/dist/common/token.js +26 -1
  26. package/dist/common/token.js.map +1 -1
  27. package/dist/version.d.ts +1 -1
  28. package/dist/version.js +1 -1
  29. package/dist/web/api/navTree.d.ts +1 -1
  30. package/dist/web/api/navTree.d.ts.map +1 -1
  31. package/dist/web/components/ChooseChainPage.d.ts.map +1 -1
  32. package/dist/web/components/ChooseChainPage.js +3 -3
  33. package/dist/web/components/ChooseChainPage.js.map +1 -1
  34. package/dist/web/components/ConfirmationPage.d.ts.map +1 -1
  35. package/dist/web/components/ConfirmationPage.js +2 -1
  36. package/dist/web/components/ConfirmationPage.js.map +1 -1
  37. package/dist/web/components/DaimoFrame.d.ts +50 -0
  38. package/dist/web/components/DaimoFrame.d.ts.map +1 -0
  39. package/dist/web/components/DaimoFrame.js +195 -0
  40. package/dist/web/components/DaimoFrame.js.map +1 -0
  41. package/dist/web/components/DaimoModal.d.ts.map +1 -1
  42. package/dist/web/components/DaimoModal.js +52 -7
  43. package/dist/web/components/DaimoModal.js.map +1 -1
  44. package/dist/web/components/DaimoModalPreview.d.ts +11 -0
  45. package/dist/web/components/DaimoModalPreview.d.ts.map +1 -0
  46. package/dist/web/components/DaimoModalPreview.js +98 -0
  47. package/dist/web/components/DaimoModalPreview.js.map +1 -0
  48. package/dist/web/components/ModalChrome.d.ts +28 -0
  49. package/dist/web/components/ModalChrome.d.ts.map +1 -0
  50. package/dist/web/components/ModalChrome.js +64 -0
  51. package/dist/web/components/ModalChrome.js.map +1 -0
  52. package/dist/web/components/SelectAmountPage.d.ts.map +1 -1
  53. package/dist/web/components/SelectAmountPage.js +2 -2
  54. package/dist/web/components/SelectAmountPage.js.map +1 -1
  55. package/dist/web/components/SelectTokenPage.d.ts.map +1 -1
  56. package/dist/web/components/SelectTokenPage.js +5 -4
  57. package/dist/web/components/SelectTokenPage.js.map +1 -1
  58. package/dist/web/components/StripeOnrampPage.d.ts.map +1 -1
  59. package/dist/web/components/StripeOnrampPage.js +2 -1
  60. package/dist/web/components/StripeOnrampPage.js.map +1 -1
  61. package/dist/web/components/TokenAmountEntry.d.ts.map +1 -1
  62. package/dist/web/components/TokenAmountEntry.js +2 -1
  63. package/dist/web/components/TokenAmountEntry.js.map +1 -1
  64. package/dist/web/components/TronAmountPage.d.ts +18 -0
  65. package/dist/web/components/TronAmountPage.d.ts.map +1 -0
  66. package/dist/web/components/TronAmountPage.js +80 -0
  67. package/dist/web/components/TronAmountPage.js.map +1 -0
  68. package/dist/web/components/account/AccountApplePayPage.d.ts +3 -1
  69. package/dist/web/components/account/AccountApplePayPage.d.ts.map +1 -1
  70. package/dist/web/components/account/AccountApplePayPage.js +51 -23
  71. package/dist/web/components/account/AccountApplePayPage.js.map +1 -1
  72. package/dist/web/components/account/AccountBankPickerPage.d.ts.map +1 -1
  73. package/dist/web/components/account/AccountBankPickerPage.js +3 -0
  74. package/dist/web/components/account/AccountBankPickerPage.js.map +1 -1
  75. package/dist/web/components/account/AccountBankTransferSubmittedPage.d.ts.map +1 -1
  76. package/dist/web/components/account/AccountBankTransferSubmittedPage.js +8 -4
  77. package/dist/web/components/account/AccountBankTransferSubmittedPage.js.map +1 -1
  78. package/dist/web/components/account/AccountEmailPage.d.ts.map +1 -1
  79. package/dist/web/components/account/AccountEmailPage.js +20 -14
  80. package/dist/web/components/account/AccountEmailPage.js.map +1 -1
  81. package/dist/web/components/account/AccountEnrollmentPage.d.ts +5 -3
  82. package/dist/web/components/account/AccountEnrollmentPage.d.ts.map +1 -1
  83. package/dist/web/components/account/AccountEnrollmentPage.js +141 -137
  84. package/dist/web/components/account/AccountEnrollmentPage.js.map +1 -1
  85. package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts +10 -0
  86. package/dist/web/components/account/AccountEnrollmentUpdatePage.d.ts.map +1 -0
  87. package/dist/web/components/account/AccountEnrollmentUpdatePage.js +214 -0
  88. package/dist/web/components/account/AccountEnrollmentUpdatePage.js.map +1 -0
  89. package/dist/web/components/account/AccountFlowProvider.js +3 -0
  90. package/dist/web/components/account/AccountFlowProvider.js.map +1 -1
  91. package/dist/web/components/account/AccountOtpCodeEntry.d.ts +4 -1
  92. package/dist/web/components/account/AccountOtpCodeEntry.d.ts.map +1 -1
  93. package/dist/web/components/account/AccountOtpCodeEntry.js +44 -43
  94. package/dist/web/components/account/AccountOtpCodeEntry.js.map +1 -1
  95. package/dist/web/components/account/AccountPhoneOtpPage.d.ts.map +1 -1
  96. package/dist/web/components/account/AccountPhoneOtpPage.js +2 -0
  97. package/dist/web/components/account/AccountPhoneOtpPage.js.map +1 -1
  98. package/dist/web/components/account/AccountProviderOtpPage.d.ts +7 -0
  99. package/dist/web/components/account/AccountProviderOtpPage.d.ts.map +1 -0
  100. package/dist/web/components/account/AccountProviderOtpPage.js +64 -0
  101. package/dist/web/components/account/AccountProviderOtpPage.js.map +1 -0
  102. package/dist/web/components/account/AccountReadyPage.d.ts +2 -0
  103. package/dist/web/components/account/AccountReadyPage.d.ts.map +1 -0
  104. package/dist/web/components/account/AccountReadyPage.js +7 -0
  105. package/dist/web/components/account/AccountReadyPage.js.map +1 -0
  106. package/dist/web/components/account/AccountRipioOtpPage.d.ts +7 -0
  107. package/dist/web/components/account/AccountRipioOtpPage.d.ts.map +1 -0
  108. package/dist/web/components/account/AccountRipioOtpPage.js +54 -0
  109. package/dist/web/components/account/AccountRipioOtpPage.js.map +1 -0
  110. package/dist/web/components/account/PaginatedEnrollmentForm.d.ts +15 -0
  111. package/dist/web/components/account/PaginatedEnrollmentForm.d.ts.map +1 -0
  112. package/dist/web/components/account/PaginatedEnrollmentForm.js +208 -0
  113. package/dist/web/components/account/PaginatedEnrollmentForm.js.map +1 -0
  114. package/dist/web/components/account/formSchemas.d.ts +81 -0
  115. package/dist/web/components/account/formSchemas.d.ts.map +1 -0
  116. package/dist/web/components/account/formSchemas.js +80 -0
  117. package/dist/web/components/account/formSchemas.js.map +1 -0
  118. package/dist/web/components/account/formSchemas.test.d.ts +2 -0
  119. package/dist/web/components/account/formSchemas.test.d.ts.map +1 -0
  120. package/dist/web/components/account/formSchemas.test.js +57 -0
  121. package/dist/web/components/account/formSchemas.test.js.map +1 -0
  122. package/dist/web/components/account/kycRequirement.d.ts +1 -1
  123. package/dist/web/components/account/kycRequirement.d.ts.map +1 -1
  124. package/dist/web/components/account/kycRequirement.js +9 -7
  125. package/dist/web/components/account/kycRequirement.js.map +1 -1
  126. package/dist/web/components/account/openDeeplink.d.ts.map +1 -1
  127. package/dist/web/components/account/openDeeplink.js +15 -0
  128. package/dist/web/components/account/openDeeplink.js.map +1 -1
  129. package/dist/web/components/buttons.d.ts +3 -2
  130. package/dist/web/components/buttons.d.ts.map +1 -1
  131. package/dist/web/components/buttons.js +4 -4
  132. package/dist/web/components/buttons.js.map +1 -1
  133. package/dist/web/components/containers.d.ts +1 -0
  134. package/dist/web/components/containers.d.ts.map +1 -1
  135. package/dist/web/components/containers.js +3 -5
  136. package/dist/web/components/containers.js.map +1 -1
  137. package/dist/web/components/formFields.d.ts +40 -0
  138. package/dist/web/components/formFields.d.ts.map +1 -0
  139. package/dist/web/components/formFields.js +75 -0
  140. package/dist/web/components/formFields.js.map +1 -0
  141. package/dist/web/components/frameMessages.d.ts +31 -0
  142. package/dist/web/components/frameMessages.d.ts.map +1 -0
  143. package/dist/web/components/frameMessages.js +77 -0
  144. package/dist/web/components/frameMessages.js.map +1 -0
  145. package/dist/web/components/icons.d.ts +6 -0
  146. package/dist/web/components/icons.d.ts.map +1 -1
  147. package/dist/web/components/icons.js +12 -0
  148. package/dist/web/components/icons.js.map +1 -1
  149. package/dist/web/components/shared.d.ts +1 -1
  150. package/dist/web/components/shared.d.ts.map +1 -1
  151. package/dist/web/components/shared.js +6 -5
  152. package/dist/web/components/shared.js.map +1 -1
  153. package/dist/web/formatAmount.d.ts +2 -2
  154. package/dist/web/formatAmount.d.ts.map +1 -1
  155. package/dist/web/formatAmount.js +39 -12
  156. package/dist/web/formatAmount.js.map +1 -1
  157. package/dist/web/formatAmount.test.d.ts +2 -0
  158. package/dist/web/formatAmount.test.d.ts.map +1 -0
  159. package/dist/web/formatAmount.test.js +43 -0
  160. package/dist/web/formatAmount.test.js.map +1 -0
  161. package/dist/web/hooks/accountAuthNav.d.ts +3 -0
  162. package/dist/web/hooks/accountAuthNav.d.ts.map +1 -0
  163. package/dist/web/hooks/accountAuthNav.js +24 -0
  164. package/dist/web/hooks/accountAuthNav.js.map +1 -0
  165. package/dist/web/hooks/accountAuthNav.test.d.ts +2 -0
  166. package/dist/web/hooks/accountAuthNav.test.d.ts.map +1 -0
  167. package/dist/web/hooks/accountAuthNav.test.js +32 -0
  168. package/dist/web/hooks/accountAuthNav.test.js.map +1 -0
  169. package/dist/web/hooks/formatUserError.d.ts.map +1 -1
  170. package/dist/web/hooks/formatUserError.js +5 -2
  171. package/dist/web/hooks/formatUserError.js.map +1 -1
  172. package/dist/web/hooks/locale.d.ts +2 -0
  173. package/dist/web/hooks/locale.d.ts.map +1 -1
  174. package/dist/web/hooks/locale.js +41 -4
  175. package/dist/web/hooks/locale.js.map +1 -1
  176. package/dist/web/hooks/locale.test.d.ts +2 -0
  177. package/dist/web/hooks/locale.test.d.ts.map +1 -0
  178. package/dist/web/hooks/locale.test.js +41 -0
  179. package/dist/web/hooks/locale.test.js.map +1 -0
  180. package/dist/web/hooks/locales/en.d.ts +12 -0
  181. package/dist/web/hooks/locales/en.d.ts.map +1 -1
  182. package/dist/web/hooks/locales/en.js +12 -0
  183. package/dist/web/hooks/locales/en.js.map +1 -1
  184. package/dist/web/hooks/locales/es.d.ts.map +1 -1
  185. package/dist/web/hooks/locales/es.js +12 -0
  186. package/dist/web/hooks/locales/es.js.map +1 -1
  187. package/dist/web/hooks/locales/ja.d.ts.map +1 -1
  188. package/dist/web/hooks/locales/ja.js +12 -0
  189. package/dist/web/hooks/locales/ja.js.map +1 -1
  190. package/dist/web/hooks/locales/ko.d.ts.map +1 -1
  191. package/dist/web/hooks/locales/ko.js +12 -0
  192. package/dist/web/hooks/locales/ko.js.map +1 -1
  193. package/dist/web/hooks/locales/pt.d.ts +4 -0
  194. package/dist/web/hooks/locales/pt.d.ts.map +1 -0
  195. package/dist/web/hooks/locales/pt.js +167 -0
  196. package/dist/web/hooks/locales/pt.js.map +1 -0
  197. package/dist/web/hooks/locales/zh.d.ts.map +1 -1
  198. package/dist/web/hooks/locales/zh.js +12 -0
  199. package/dist/web/hooks/locales/zh.js.map +1 -1
  200. package/dist/web/hooks/types.d.ts +9 -1
  201. package/dist/web/hooks/types.d.ts.map +1 -1
  202. package/dist/web/hooks/types.js.map +1 -1
  203. package/dist/web/hooks/useAccountFlow.d.ts +14 -1
  204. package/dist/web/hooks/useAccountFlow.d.ts.map +1 -1
  205. package/dist/web/hooks/useAccountFlow.js +10 -1
  206. package/dist/web/hooks/useAccountFlow.js.map +1 -1
  207. package/dist/web/hooks/useCreateDeposit.d.ts +1 -1
  208. package/dist/web/hooks/useCreateDeposit.d.ts.map +1 -1
  209. package/dist/web/hooks/useCreateDeposit.js +103 -15
  210. package/dist/web/hooks/useCreateDeposit.js.map +1 -1
  211. package/dist/web/hooks/useDraftDeposit.d.ts +2 -1
  212. package/dist/web/hooks/useDraftDeposit.d.ts.map +1 -1
  213. package/dist/web/hooks/useDraftDeposit.js +16 -0
  214. package/dist/web/hooks/useDraftDeposit.js.map +1 -1
  215. package/dist/web/hooks/useSessionNav.d.ts +4 -2
  216. package/dist/web/hooks/useSessionNav.d.ts.map +1 -1
  217. package/dist/web/hooks/useSessionNav.js +33 -22
  218. package/dist/web/hooks/useSessionNav.js.map +1 -1
  219. package/dist/web/hooks/useWalletFlow.d.ts.map +1 -1
  220. package/dist/web/hooks/useWalletFlow.js +64 -26
  221. package/dist/web/hooks/useWalletFlow.js.map +1 -1
  222. package/dist/web/hooks/walletError.d.ts +9 -0
  223. package/dist/web/hooks/walletError.d.ts.map +1 -0
  224. package/dist/web/hooks/walletError.js +16 -0
  225. package/dist/web/hooks/walletError.js.map +1 -0
  226. package/dist/web/index.d.ts +7 -1
  227. package/dist/web/index.d.ts.map +1 -1
  228. package/dist/web/index.js +3 -0
  229. package/dist/web/index.js.map +1 -1
  230. package/dist/web/isDesktopBrowser.d.ts +2 -0
  231. package/dist/web/isDesktopBrowser.d.ts.map +1 -0
  232. package/dist/web/isDesktopBrowser.js +6 -0
  233. package/dist/web/isDesktopBrowser.js.map +1 -0
  234. package/dist/web/styles.css +1 -1
  235. package/dist/web/theme.css +1 -1
  236. package/dist/web/theme.d.ts +7 -0
  237. package/dist/web/theme.d.ts.map +1 -0
  238. package/dist/web/theme.js +23 -0
  239. package/dist/web/theme.js.map +1 -0
  240. package/package.json +6 -4
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useRef, useState } from "react";
2
+ import { forwardRef, useCallback, useEffect, useRef, useState, } from "react";
3
3
  import { arbitrum, base, bsc, celo, ethereum, getChainName, gnosis, hyperEvm, linea, megaEth, monad, optimism, polygon, solana, tempo, tron, worldchain, } from "../../common/chain.js";
4
4
  import { formatAmountInput, formatFixedAmount, isValidAmountInput, parseDisplayAmount, } from "../formatAmount.js";
5
5
  import { t } from "../hooks/locale.js";
@@ -87,6 +87,7 @@ export function AmountInput({ minimum, maximum, currencySymbol = "$", defaultLab
87
87
  }
88
88
  };
89
89
  const displayValue = formatAmountInput(inputValue);
90
+ const placeholder = formatAmountInput("0.00");
90
91
  const inputWidth = displayValue.length === 0
91
92
  ? "3.55ch"
92
93
  : `${Math.min(displayValue.length - (displayValue.match(/\./g) || []).length * 0.55, 12)}ch`;
@@ -107,7 +108,7 @@ export function AmountInput({ minimum, maximum, currencySymbol = "$", defaultLab
107
108
  return;
108
109
  didAutofocusRef.current = true;
109
110
  requestAnimationFrame(() => el.focus());
110
- }, type: "text", inputMode: "decimal", value: displayValue, disabled: disabled, onChange: handleInputChange, onKeyDown: handleKeyDown, placeholder: "0.00", className: "daimo-bg-transparent daimo-font-semibold daimo-text-[var(--daimo-text)] daimo-placeholder-[var(--daimo-placeholder)] daimo-outline-none daimo-border-none daimo-shadow-none daimo-caret-[var(--daimo-text-muted)] daimo-ring-0 focus:daimo-outline-none focus:daimo-ring-0 focus:daimo-border-none focus:daimo-shadow-none", style: {
111
+ }, type: "text", inputMode: "decimal", value: displayValue, disabled: disabled, onChange: handleInputChange, onKeyDown: handleKeyDown, placeholder: placeholder, className: "daimo-bg-transparent daimo-font-semibold daimo-text-[var(--daimo-text)] daimo-placeholder-[var(--daimo-placeholder)] daimo-outline-none daimo-border-none daimo-shadow-none daimo-caret-[var(--daimo-text-muted)] daimo-ring-0 focus:daimo-outline-none focus:daimo-ring-0 focus:daimo-border-none focus:daimo-shadow-none", style: {
111
112
  width: inputWidth,
112
113
  minWidth: "1ch",
113
114
  maxWidth: "10ch",
@@ -138,10 +139,10 @@ export function useAmountInput(minimum, maximum, initialValue) {
138
139
  return { amount, isValid, handleChange };
139
140
  }
140
141
  /** Standard text input with consistent styling. */
141
- export function TextInput(props) {
142
+ export const TextInput = forwardRef(function TextInput(props, ref) {
142
143
  const { className, ...rest } = props;
143
- return (_jsx("input", { ...rest, className: `daimo-w-full daimo-px-3 daimo-py-2 daimo-text-base daimo-bg-[var(--daimo-surface-secondary)] daimo-text-[var(--daimo-text)] daimo-placeholder-[var(--daimo-placeholder)] daimo-rounded-[var(--daimo-radius-md)] daimo-border-none daimo-outline-none focus:daimo-ring-2 focus:daimo-ring-[var(--daimo-accent)] daimo-transition-shadow ${className ?? ""}` }));
144
- }
144
+ return (_jsx("input", { ...rest, ref: ref, className: `daimo-box-border daimo-w-full daimo-min-w-0 daimo-max-w-full daimo-px-3 daimo-py-2 daimo-text-base daimo-bg-[var(--daimo-surface-secondary)] daimo-text-[var(--daimo-text)] daimo-placeholder-[var(--daimo-placeholder)] daimo-rounded-[var(--daimo-radius-md)] daimo-border-none daimo-outline-none focus:daimo-ring-2 focus:daimo-ring-[var(--daimo-accent)] daimo-transition-shadow ${className ?? ""}` }));
145
+ });
145
146
  /** Resolve relative icon paths to absolute URLs */
146
147
  export function resolveIconUrl(icon, baseUrl) {
147
148
  if (icon.startsWith("http://") ||
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/web/components/shared.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/web/components/shared.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export declare function parseDisplayAmount(value: string): string;
1
+ export declare function parseDisplayAmount(value: string, locale?: string): string;
2
2
  export declare function isValidAmountInput(value: string, maxDecimals: number): boolean;
3
- export declare function formatAmountInput(value: string): string;
3
+ export declare function formatAmountInput(value: string, locale?: string): string;
4
4
  export declare function formatFixedAmount(value: number, fractionDigits?: number): string;
5
5
  //# sourceMappingURL=formatAmount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatAmount.d.ts","sourceRoot":"","sources":["../../src/web/formatAmount.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAIT;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAI,GAAG,MAAM,CAK3E"}
1
+ {"version":3,"file":"formatAmount.d.ts","sourceRoot":"","sources":["../../src/web/formatAmount.ts"],"names":[],"mappings":"AASA,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,SAAoB,GACzB,MAAM,CAeR;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAGT;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,SAAoB,GACzB,MAAM,CAgBR;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAI,GAAG,MAAM,CAK3E"}
@@ -1,26 +1,53 @@
1
- const GROUP_SEPARATOR = ",";
2
- export function parseDisplayAmount(value) {
3
- return value.replaceAll(GROUP_SEPARATOR, "").trim();
1
+ import { getNumberLocale } from "./hooks/locale.js";
2
+ const CANONICAL_DECIMAL_SEPARATOR = ".";
3
+ export function parseDisplayAmount(value, locale = getNumberLocale()) {
4
+ const trimmed = value.trim();
5
+ if (trimmed === "")
6
+ return "";
7
+ const separators = getAmountSeparators(locale);
8
+ const ungrouped = separators.group === ""
9
+ ? trimmed
10
+ : trimmed.replaceAll(separators.group, "");
11
+ if (separators.decimal === CANONICAL_DECIMAL_SEPARATOR)
12
+ return ungrouped;
13
+ return ungrouped.replaceAll(separators.decimal, CANONICAL_DECIMAL_SEPARATOR);
4
14
  }
5
15
  export function isValidAmountInput(value, maxDecimals) {
6
- const sanitized = parseDisplayAmount(value);
7
16
  const regex = new RegExp(`^\\d*\\.?\\d{0,${maxDecimals}}$`);
8
- return sanitized === "" || regex.test(sanitized);
17
+ return value === "" || regex.test(value);
9
18
  }
10
- export function formatAmountInput(value) {
11
- const sanitized = parseDisplayAmount(value);
12
- if (sanitized === "")
19
+ export function formatAmountInput(value, locale = getNumberLocale()) {
20
+ if (value === "")
13
21
  return "";
14
- const [integer = "", decimal] = sanitized.split(".");
15
- const groupedInteger = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
22
+ if (countOccurrences(value, CANONICAL_DECIMAL_SEPARATOR) > 1)
23
+ return value;
24
+ const [integer = "", decimal] = value.split(CANONICAL_DECIMAL_SEPARATOR);
25
+ if (!/^\d*$/.test(integer) || (decimal != null && !/^\d*$/.test(decimal))) {
26
+ return value;
27
+ }
28
+ const separators = getAmountSeparators(locale);
29
+ const groupedInteger = separators.group === ""
30
+ ? integer
31
+ : integer.replace(/\B(?=(\d{3})+(?!\d))/g, separators.group);
16
32
  if (decimal == null)
17
33
  return groupedInteger;
18
- return `${groupedInteger}.${decimal}`;
34
+ return `${groupedInteger}${separators.decimal}${decimal}`;
19
35
  }
20
36
  export function formatFixedAmount(value, fractionDigits = 2) {
21
- return new Intl.NumberFormat(undefined, {
37
+ return new Intl.NumberFormat(getNumberLocale(), {
22
38
  minimumFractionDigits: fractionDigits,
23
39
  maximumFractionDigits: fractionDigits,
24
40
  }).format(value);
25
41
  }
42
+ function getAmountSeparators(locale) {
43
+ const parts = new Intl.NumberFormat(locale).formatToParts(1000.1);
44
+ return {
45
+ decimal: parts.find((part) => part.type === "decimal")?.value ??
46
+ CANONICAL_DECIMAL_SEPARATOR,
47
+ group: parts.find((part) => part.type === "group")?.value ?? "",
48
+ };
49
+ }
50
+ function countOccurrences(value, search) {
51
+ return value.split(search).length - 1;
52
+ }
26
53
  //# sourceMappingURL=formatAmount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatAmount.js","sourceRoot":"","sources":["../../src/web/formatAmount.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,WAAmB;IAEnB,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,kBAAkB,WAAW,IAAI,CAAC,CAAC;IAC5D,OAAO,SAAS,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACrE,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,cAAc,CAAC;IAC3C,OAAO,GAAG,cAAc,IAAI,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,cAAc,GAAG,CAAC;IACjE,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;QACtC,qBAAqB,EAAE,cAAc;QACrC,qBAAqB,EAAE,cAAc;KACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"formatAmount.js","sourceRoot":"","sources":["../../src/web/formatAmount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=formatAmount.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatAmount.test.d.ts","sourceRoot":"","sources":["../../src/web/formatAmount.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { formatAmountInput, formatFixedAmount, isValidAmountInput, parseDisplayAmount, } from "./formatAmount.js";
3
+ import { setLocale } from "./hooks/locale.js";
4
+ describe("amount input formatting", () => {
5
+ test("parses and formats en-us display amounts", () => {
6
+ setLocale("en-US");
7
+ expect(parseDisplayAmount("100,000.00")).toBe("100000.00");
8
+ expect(formatAmountInput("100000.00")).toBe("100,000.00");
9
+ expect(parseDisplayAmount("1,23")).toBe("123");
10
+ });
11
+ test("parses and formats pt-br display amounts", () => {
12
+ setLocale("pt-BR");
13
+ expect(parseDisplayAmount("100.000,00")).toBe("100000.00");
14
+ expect(formatAmountInput("100000.00")).toBe("100.000,00");
15
+ expect(parseDisplayAmount("1,5")).toBe("1.5");
16
+ expect(parseDisplayAmount("1.234,")).toBe("1234.");
17
+ expect(formatAmountInput("1.5")).toBe("1,5");
18
+ expect(formatAmountInput("0.00")).toBe("0,00");
19
+ });
20
+ test("validates canonical amount input without reparsing", () => {
21
+ setLocale("pt-BR");
22
+ const parsed = parseDisplayAmount("1,234");
23
+ expect(parsed).toBe("1.234");
24
+ expect(isValidAmountInput(parsed, 2)).toBe(false);
25
+ expect(isValidAmountInput("1.5", 2)).toBe(true);
26
+ expect(formatAmountInput("1.5")).toBe("1,5");
27
+ });
28
+ test("uses local separators for unsupported text locales", () => {
29
+ setLocale("de-DE");
30
+ expect(parseDisplayAmount("100.000,00")).toBe("100000.00");
31
+ expect(formatAmountInput("100000.00")).toBe("100.000,00");
32
+ expect(formatFixedAmount(5)).toBe("5,00");
33
+ });
34
+ test("falls back to latin digits for unsupported locales", () => {
35
+ setLocale("mr-IN");
36
+ expect(formatFixedAmount(5)).toBe("5.00");
37
+ });
38
+ test("formats fixed amounts with numeric locale", () => {
39
+ setLocale("pt-BR");
40
+ expect(formatFixedAmount(1234.5)).toBe("1.234,50");
41
+ });
42
+ });
43
+ //# sourceMappingURL=formatAmount.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatAmount.test.js","sourceRoot":"","sources":["../../src/web/formatAmount.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC9D,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC9D,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC9D,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { NavEntry } from "./types.js";
2
+ export declare function pruneCompletedAccountAuth(stack: NavEntry[], nextType: NavEntry["type"]): NavEntry[];
3
+ //# sourceMappingURL=accountAuthNav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountAuthNav.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/accountAuthNav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA4C3C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,EAAE,EACjB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,cAI3B"}
@@ -0,0 +1,24 @@
1
+ const ACCOUNT_AUTH_CHALLENGE_ENTRY_TYPES = new Set([
2
+ "account-otp",
3
+ "account-phone-otp",
4
+ "account-provider-otp",
5
+ ]);
6
+ const ACCOUNT_AUTH_ENTRY_TYPES = new Set([
7
+ "account-email",
8
+ "account-otp",
9
+ "account-phone",
10
+ "account-phone-otp",
11
+ "account-provider-otp",
12
+ ]);
13
+ function isAccountAuthChallengeEntryType(type) {
14
+ return ACCOUNT_AUTH_CHALLENGE_ENTRY_TYPES.has(type);
15
+ }
16
+ function isAccountAuthEntryType(type) {
17
+ return ACCOUNT_AUTH_ENTRY_TYPES.has(type);
18
+ }
19
+ export function pruneCompletedAccountAuth(stack, nextType) {
20
+ if (isAccountAuthChallengeEntryType(nextType))
21
+ return stack;
22
+ return stack.filter((entry) => !isAccountAuthEntryType(entry.type));
23
+ }
24
+ //# sourceMappingURL=accountAuthNav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountAuthNav.js","sourceRoot":"","sources":["../../../src/web/hooks/accountAuthNav.ts"],"names":[],"mappings":"AAeA,MAAM,kCAAkC,GACtC,IAAI,GAAG,CAAgC;IACrC,aAAa;IACb,mBAAmB;IACnB,sBAAsB;CACvB,CAAC,CAAC;AAEL,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAuB;IAC7D,eAAe;IACf,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,sBAAsB;CACvB,CAAC,CAAC;AAEH,SAAS,+BAA+B,CACtC,IAAsB;IAEtB,OAAO,kCAAkC,CAAC,GAAG,CAC3C,IAAqC,CACtC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAsB;IAEtB,OAAO,wBAAwB,CAAC,GAAG,CAAC,IAA4B,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAiB,EACjB,QAA0B;IAE1B,IAAI,+BAA+B,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=accountAuthNav.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountAuthNav.test.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/accountAuthNav.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { pruneCompletedAccountAuth } from "./accountAuthNav.js";
3
+ const nodeId = "fiat";
4
+ const rail = "ars";
5
+ describe("account auth nav pruning", () => {
6
+ test("prunes stale provider otp after account enrollment completes", () => {
7
+ const stack = [
8
+ { type: "choose-option", nodeId: "root", autoNav: true },
9
+ { type: "account-provider-otp", nodeId, rail },
10
+ { type: "account-enrollment", nodeId, rail },
11
+ ];
12
+ expect(pruneCompletedAccountAuth(stack, "account-enrollment")).toEqual([
13
+ { type: "choose-option", nodeId: "root", autoNav: true },
14
+ { type: "account-enrollment", nodeId, rail },
15
+ ]);
16
+ });
17
+ test("keeps auth entries when entering provider otp challenge", () => {
18
+ const stack = [
19
+ { type: "account-email", nodeId, rail },
20
+ { type: "account-enrollment", nodeId, rail },
21
+ ];
22
+ expect(pruneCompletedAccountAuth(stack, "account-provider-otp")).toBe(stack);
23
+ });
24
+ test("keeps existing phone otp challenge behavior", () => {
25
+ const stack = [
26
+ { type: "account-phone", nodeId, rail },
27
+ { type: "account-enrollment", nodeId, rail },
28
+ ];
29
+ expect(pruneCompletedAccountAuth(stack, "account-phone-otp")).toBe(stack);
30
+ });
31
+ });
32
+ //# sourceMappingURL=accountAuthNav.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountAuthNav.test.js","sourceRoot":"","sources":["../../../src/web/hooks/accountAuthNav.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB,MAAM,IAAI,GAAG,KAAK,CAAC;AAEnB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACxE,MAAM,KAAK,GAAe;YACxB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,EAAE;YAC9C,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE;SAC7C,CAAC;QAEF,MAAM,CAAC,yBAAyB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YACxD,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACnE,MAAM,KAAK,GAAe;YACxB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE;SAC7C,CAAC;QAEF,MAAM,CAAC,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAe;YACxB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE;SAC7C,CAAC;QAEF,MAAM,CAAC,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatUserError.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/formatUserError.ts"],"names":[],"mappings":"AAiBA,qDAAqD;AACrD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,QAAQ,SAAuB,GAC9B,MAAM,CAmBR"}
1
+ {"version":3,"file":"formatUserError.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/formatUserError.ts"],"names":[],"mappings":"AAkBA,qDAAqD;AACrD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,QAAQ,SAAuB,GAC9B,MAAM,CAsBR"}
@@ -1,4 +1,5 @@
1
1
  import { t } from "./locale.js";
2
+ import { prefixWalletError, WalletError } from "./walletError.js";
2
3
  /** Known error patterns mapped to user-friendly messages */
3
4
  function getErrorMappings() {
4
5
  return [
@@ -15,6 +16,8 @@ function getErrorMappings() {
15
16
  }
16
17
  /** Convert error to user-friendly display message */
17
18
  export function formatUserError(err, fallback = t.somethingWentWrong) {
19
+ // Wallet provider errors carry the wallet name; prefix the resolved message.
20
+ const walletName = err instanceof WalletError ? err.walletName : null;
18
21
  let raw;
19
22
  if (err instanceof Error) {
20
23
  raw = err.message;
@@ -30,9 +33,9 @@ export function formatUserError(err, fallback = t.somethingWentWrong) {
30
33
  }
31
34
  for (const [pattern, message] of getErrorMappings()) {
32
35
  if (typeof pattern === "string" ? raw === pattern : pattern.test(raw)) {
33
- return message;
36
+ return prefixWalletError(walletName, message);
34
37
  }
35
38
  }
36
- return raw || fallback;
39
+ return prefixWalletError(walletName, raw || fallback);
37
40
  }
38
41
  //# sourceMappingURL=formatUserError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatUserError.js","sourceRoot":"","sources":["../../../src/web/hooks/formatUserError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,4DAA4D;AAC5D,SAAS,gBAAgB;IACvB,OAAO;QACL,CAAC,mCAAmC,EAAE,CAAC,CAAC,mBAAmB,CAAC;QAC5D;YACE,sHAAsH;YACtH,CAAC,CAAC,yBAAyB;SAC5B;QACD;YACE,iDAAiD;YACjD,CAAC,CAAC,uBAAuB;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAC7B,GAAY,EACZ,QAAQ,GAAG,CAAC,CAAC,kBAAkB;IAE/B,IAAI,GAAW,CAAC;IAChB,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC;SAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QAC9D,GAAG,GAAG,MAAM,CAAE,GAA4B,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,EAAE,CAAC;IACX,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,IAAI,QAAQ,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"formatUserError.js","sourceRoot":"","sources":["../../../src/web/hooks/formatUserError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAElE,4DAA4D;AAC5D,SAAS,gBAAgB;IACvB,OAAO;QACL,CAAC,mCAAmC,EAAE,CAAC,CAAC,mBAAmB,CAAC;QAC5D;YACE,sHAAsH;YACtH,CAAC,CAAC,yBAAyB;SAC5B;QACD;YACE,iDAAiD;YACjD,CAAC,CAAC,uBAAuB;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAC7B,GAAY,EACZ,QAAQ,GAAG,CAAC,CAAC,kBAAkB;IAE/B,6EAA6E;IAC7E,MAAM,UAAU,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtE,IAAI,GAAW,CAAC;IAChB,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC;SAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QAC9D,GAAG,GAAG,MAAM,CAAE,GAA4B,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,EAAE,CAAC;IACX,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,OAAO,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC,UAAU,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;AACxD,CAAC"}
@@ -4,6 +4,8 @@ export type DaimoModalLocale = typeof en;
4
4
  export declare let t: DaimoModalLocale;
5
5
  /** Get the current active locale code. */
6
6
  export declare function getLocale(): string;
7
+ /** Get the current numeric locale code. */
8
+ export declare function getNumberLocale(): string;
7
9
  /** Set the active locale. Accepts full codes (es-ES) or short codes (es). */
8
10
  export declare function setLocale(languageCode: string): void;
9
11
  /** Auto-detect locale from browser language if not explicitly set. */
@@ -1 +1 @@
1
- {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAMrC,MAAM,MAAM,gBAAgB,GAAG,OAAO,EAAE,CAAC;AAIzC,wDAAwD;AACxD,eAAO,IAAI,CAAC,EAAE,gBAAqB,CAAC;AAQpC,0CAA0C;AAC1C,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,QAU7C;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,SAK/B"}
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAOrC,MAAM,MAAM,gBAAgB,GAAG,OAAO,EAAE,CAAC;AAczC,wDAAwD;AACxD,eAAO,IAAI,CAAC,EAAE,gBAAqB,CAAC;AAWpC,0CAA0C;AAC1C,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,2CAA2C;AAC3C,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,QAmB7C;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,SAK/B"}
@@ -2,29 +2,54 @@ import { en } from "./locales/en.js";
2
2
  import { es } from "./locales/es.js";
3
3
  import { ja } from "./locales/ja.js";
4
4
  import { ko } from "./locales/ko.js";
5
+ import { pt } from "./locales/pt.js";
5
6
  import { zh } from "./locales/zh.js";
6
- const translations = { en, es, ja, ko, zh };
7
+ const DEFAULT_LOCALE = "en";
8
+ const DEFAULT_NUMBER_LOCALE = "en-US";
9
+ const translations = {
10
+ en,
11
+ es,
12
+ ja,
13
+ ko,
14
+ pt,
15
+ zh,
16
+ };
7
17
  /** Current active translations. Defaults to English. */
8
18
  export let t = en;
9
19
  /** Current active locale code (short form, e.g. "en", "zh"). */
10
- let currentLocale = "en";
20
+ let currentLocale = DEFAULT_LOCALE;
21
+ /** Current numeric locale code (full form, e.g. "en-US", "de-DE"). */
22
+ let currentNumberLocale = DEFAULT_NUMBER_LOCALE;
11
23
  /** Whether setLocale has been called explicitly or via auto-detect. */
12
24
  let localeInitialized = false;
13
25
  /** Get the current active locale code. */
14
26
  export function getLocale() {
15
27
  return currentLocale;
16
28
  }
29
+ /** Get the current numeric locale code. */
30
+ export function getNumberLocale() {
31
+ return currentNumberLocale;
32
+ }
17
33
  /** Set the active locale. Accepts full codes (es-ES) or short codes (es). */
18
34
  export function setLocale(languageCode) {
19
35
  localeInitialized = true;
20
36
  if (translations[languageCode]) {
21
37
  t = translations[languageCode];
22
38
  currentLocale = languageCode;
39
+ currentNumberLocale = languageCode;
23
40
  return;
24
41
  }
25
42
  const short = languageCode.split("-")[0].toLowerCase();
26
- t = translations[short] ?? en;
27
- currentLocale = translations[short] ? short : "en";
43
+ const translation = translations[short];
44
+ if (translation) {
45
+ t = translation;
46
+ currentLocale = short;
47
+ currentNumberLocale = languageCode;
48
+ return;
49
+ }
50
+ t = en;
51
+ currentLocale = DEFAULT_LOCALE;
52
+ currentNumberLocale = getLatinNumberLocale(languageCode);
28
53
  }
29
54
  /** Auto-detect locale from browser language if not explicitly set. */
30
55
  export function autoDetectLocale() {
@@ -34,4 +59,16 @@ export function autoDetectLocale() {
34
59
  setLocale(navigator.language);
35
60
  }
36
61
  }
62
+ function getLatinNumberLocale(languageCode) {
63
+ const locale = `${languageCode}-u-nu-latn`;
64
+ try {
65
+ if (Intl.NumberFormat.supportedLocalesOf([locale]).length === 0) {
66
+ return DEFAULT_NUMBER_LOCALE;
67
+ }
68
+ return locale;
69
+ }
70
+ catch {
71
+ return DEFAULT_NUMBER_LOCALE;
72
+ }
73
+ }
37
74
  //# sourceMappingURL=locale.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../src/web/hooks/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIrC,MAAM,YAAY,GAAqC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAE9E,wDAAwD;AACxD,MAAM,CAAC,IAAI,CAAC,GAAqB,EAAE,CAAC;AAEpC,gEAAgE;AAChE,IAAI,aAAa,GAAG,IAAI,CAAC;AAEzB,uEAAuE;AACvE,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,0CAA0C;AAC1C,MAAM,UAAU,SAAS;IACvB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,YAAoB;IAC5C,iBAAiB,GAAG,IAAI,CAAC;IACzB,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/B,aAAa,GAAG,YAAY,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9B,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB;IAC9B,IAAI,iBAAiB;QAAE,OAAO;IAC9B,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3D,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../src/web/hooks/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIrC,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAEtC,MAAM,YAAY,GAAqC;IACrD,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;CACH,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,IAAI,CAAC,GAAqB,EAAE,CAAC;AAEpC,gEAAgE;AAChE,IAAI,aAAa,GAAG,cAAc,CAAC;AAEnC,sEAAsE;AACtE,IAAI,mBAAmB,GAAG,qBAAqB,CAAC;AAEhD,uEAAuE;AACvE,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,0CAA0C;AAC1C,MAAM,UAAU,SAAS;IACvB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,eAAe;IAC7B,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,YAAoB;IAC5C,iBAAiB,GAAG,IAAI,CAAC;IACzB,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/B,aAAa,GAAG,YAAY,CAAC;QAC7B,mBAAmB,GAAG,YAAY,CAAC;QACnC,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,WAAW,EAAE,CAAC;QAChB,CAAC,GAAG,WAAW,CAAC;QAChB,aAAa,GAAG,KAAK,CAAC;QACtB,mBAAmB,GAAG,YAAY,CAAC;QACnC,OAAO;IACT,CAAC;IACD,CAAC,GAAG,EAAE,CAAC;IACP,aAAa,GAAG,cAAc,CAAC;IAC/B,mBAAmB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB;IAC9B,IAAI,iBAAiB;QAAE,OAAO;IAC9B,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3D,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAoB;IAChD,MAAM,MAAM,GAAG,GAAG,YAAY,YAAY,CAAC;IAC3C,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,qBAAqB,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=locale.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.test.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/locale.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { getLocale, getNumberLocale, setLocale, t } from "./locale.js";
3
+ describe("locale selection", () => {
4
+ test("selects Portuguese text for short locale", () => {
5
+ setLocale("pt");
6
+ expect(getLocale()).toBe("pt");
7
+ expect(getNumberLocale()).toBe("pt");
8
+ expect(t.selectAmount).toBe("Selecionar valor");
9
+ });
10
+ test("selects Portuguese text and preserves Brazilian number locale", () => {
11
+ setLocale("pt-BR");
12
+ expect(getLocale()).toBe("pt");
13
+ expect(getNumberLocale()).toBe("pt-BR");
14
+ expect(t.enterAmount).toBe("Inserir valor");
15
+ });
16
+ test("selects Portuguese text and preserves Portugal number locale", () => {
17
+ setLocale("pt-PT");
18
+ expect(getLocale()).toBe("pt");
19
+ expect(getNumberLocale()).toBe("pt-PT");
20
+ expect(t.deposit).toBe("Depositar");
21
+ });
22
+ test("falls back to English text and numbers for unknown translation locale", () => {
23
+ setLocale("zz-ZZ");
24
+ expect(getLocale()).toBe("en");
25
+ expect(getNumberLocale()).toBe("en-US");
26
+ expect(t.selectAmount).toBe("Select Amount");
27
+ });
28
+ test("falls back to English text but preserves local separators", () => {
29
+ setLocale("de-DE");
30
+ expect(getLocale()).toBe("en");
31
+ expect(getNumberLocale()).toBe("de-DE-u-nu-latn");
32
+ expect(t.minimum).toBe("Minimum");
33
+ });
34
+ test("falls back to English text and Latin digits for unsupported text locale", () => {
35
+ setLocale("mr-IN");
36
+ expect(getLocale()).toBe("en");
37
+ expect(getNumberLocale()).toBe("mr-IN-u-nu-latn");
38
+ expect(t.minimum).toBe("Minimum");
39
+ });
40
+ });
41
+ //# sourceMappingURL=locale.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.test.js","sourceRoot":"","sources":["../../../src/web/hooks/locale.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEvE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACzE,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACxE,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;QACjF,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACrE,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACnF,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -86,6 +86,9 @@ export declare const en: {
86
86
  accountPhone: string;
87
87
  accountPhoneDesc: string;
88
88
  accountSubmit: string;
89
+ accountFieldRequired: string;
90
+ accountBooleanYes: string;
91
+ accountBooleanNo: string;
89
92
  accountSelectBank: string;
90
93
  accountSearchInstitutions: string;
91
94
  accountOtherInstitutions: string;
@@ -108,6 +111,15 @@ export declare const en: {
108
111
  accountKycIntroTitle: string;
109
112
  accountKycIntroDesc: string;
110
113
  accountKycIntroCta: string;
114
+ accountHostedKycDesktopDesc: string;
115
+ accountHostedKycMobileDesc: string;
116
+ accountHostedKycTitle: string;
117
+ accountHostedKycCta: string;
118
+ accountHostedLivenessTitle: string;
119
+ accountHostedLivenessDesc: string;
120
+ accountHostedLivenessCta: string;
121
+ accountHostedActionDesktopSuffix: string;
122
+ accountHostedActionMobileSuffix: string;
111
123
  accountKycTrustEncrypted: string;
112
124
  accountKycTrustPrivate: string;
113
125
  accountKycTrustQuick: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../src/web/hooks/locales/en.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCA+HoB,MAAM,SAAS,MAAM;;;sCAIpB,MAAM;;;;2CAID,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAqCtB,MAAM;;;;;;CAM9B,CAAC"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../src/web/hooks/locales/en.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAkIoB,MAAM,SAAS,MAAM;;;sCAIpB,MAAM;;;;2CAID,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmDtB,MAAM;;;;;;CAM9B,CAAC"}
@@ -102,6 +102,9 @@ export const en = {
102
102
  accountPhone: "Verify your phone",
103
103
  accountPhoneDesc: "We'll text you a 6-digit code to verify your number.",
104
104
  accountSubmit: "Submit",
105
+ accountFieldRequired: "Required",
106
+ accountBooleanYes: "Yes",
107
+ accountBooleanNo: "No",
105
108
  accountSelectBank: "Select Bank",
106
109
  accountSearchInstitutions: "Search institutions...",
107
110
  accountOtherInstitutions: "Other institutions",
@@ -124,6 +127,15 @@ export const en = {
124
127
  accountKycIntroTitle: "Verify your identity",
125
128
  accountKycIntroDesc: "Confirm a few details so you can use this deposit method. Your information stays encrypted and private.",
126
129
  accountKycIntroCta: "Continue",
130
+ accountHostedKycDesktopDesc: "Complete identity verification in a separate window, then return to this page.",
131
+ accountHostedKycMobileDesc: "Complete identity verification outside this modal, then return to this page.",
132
+ accountHostedKycTitle: "Verification",
133
+ accountHostedKycCta: "Open verification",
134
+ accountHostedLivenessTitle: "Liveness check",
135
+ accountHostedLivenessDesc: "Take a quick selfie to finish verifying your identity, then return to this page.",
136
+ accountHostedLivenessCta: "Start liveness check",
137
+ accountHostedActionDesktopSuffix: "Open it in a separate window and return to this page.",
138
+ accountHostedActionMobileSuffix: "Open it outside this modal and return to this page.",
127
139
  accountKycTrustEncrypted: "Encrypted",
128
140
  accountKycTrustPrivate: "Private",
129
141
  accountKycTrustQuick: "2 min",