@volr/react-ui 0.1.133 → 0.1.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -171,12 +171,12 @@ declare const en: {
171
171
  readonly alreadyExists: "Biometric login is already set up.";
172
172
  readonly notSupported: "Your device doesn't support biometric login.";
173
173
  readonly prfNotSupported: "Setup failed. Please use your device's biometric (Touch ID, Face ID) directly. Using other devices or apps may not work.";
174
- readonly prfNotSupportedWindows: "Setup failed. Windows Hello doesn't support PRF. In the passkey picker, choose \"Use a phone or tablet\".";
174
+ readonly prfNotSupportedWindows: "Setup failed. The selected passkey provider doesn't support PRF. In the passkey picker, choose \"Use a phone or tablet\" and complete with Google Password Manager on the device.";
175
175
  readonly generic: "Setup failed. Please try again.";
176
176
  };
177
177
  readonly compatibility: {
178
178
  readonly title: "Browser Update Required";
179
- readonly inAppBrowser: "Secure login is not available in this app browser. Please open in Safari or Chrome.";
179
+ readonly inAppBrowser: "Passkeys are not supported in in-app browsers. Please open in your device browser (Chrome/Edge on Android, Safari on iOS).";
180
180
  readonly outdatedChrome: "Chrome 109 or later is required. Please update your browser.";
181
181
  readonly outdatedEdge: "Edge 109 or later is required. Please update your browser.";
182
182
  readonly outdatedSafari: "Safari 17.4 or later is required. Please update macOS/iOS.";
@@ -198,7 +198,7 @@ declare const en: {
198
198
  readonly linux: "Scan the QR code on screen with your phone camera.";
199
199
  readonly default: "Please use this device's biometric.";
200
200
  readonly note: "Using other devices or apps may not work.";
201
- readonly windowsNote: "This PC will use Face ID or fingerprint from your phone.";
201
+ readonly windowsNote: "Complete on your phone or tablet with Google Password Manager for best compatibility.";
202
202
  };
203
203
  readonly migration: {
204
204
  readonly title: "Set up passkey for this site";
@@ -322,6 +322,16 @@ declare const en: {
322
322
  readonly default: "Processing...";
323
323
  readonly doNotClose: "Please don't close this window";
324
324
  };
325
+ readonly result: {
326
+ readonly successTitle: "Payment Complete";
327
+ readonly failureTitle: "Payment Failed";
328
+ readonly successMessage: "Your payment has been processed successfully";
329
+ readonly failureMessage: "Something went wrong. Please try again.";
330
+ readonly amountLabel: "Amount";
331
+ readonly usdValueLabel: "USD Value";
332
+ readonly transactionLabel: "Transaction";
333
+ readonly reportIssue: "Report an issue";
334
+ };
325
335
  };
326
336
  readonly errors: {
327
337
  readonly webauthnNotSupported: "WebAuthn API is not supported";
package/dist/index.d.ts CHANGED
@@ -171,12 +171,12 @@ declare const en: {
171
171
  readonly alreadyExists: "Biometric login is already set up.";
172
172
  readonly notSupported: "Your device doesn't support biometric login.";
173
173
  readonly prfNotSupported: "Setup failed. Please use your device's biometric (Touch ID, Face ID) directly. Using other devices or apps may not work.";
174
- readonly prfNotSupportedWindows: "Setup failed. Windows Hello doesn't support PRF. In the passkey picker, choose \"Use a phone or tablet\".";
174
+ readonly prfNotSupportedWindows: "Setup failed. The selected passkey provider doesn't support PRF. In the passkey picker, choose \"Use a phone or tablet\" and complete with Google Password Manager on the device.";
175
175
  readonly generic: "Setup failed. Please try again.";
176
176
  };
177
177
  readonly compatibility: {
178
178
  readonly title: "Browser Update Required";
179
- readonly inAppBrowser: "Secure login is not available in this app browser. Please open in Safari or Chrome.";
179
+ readonly inAppBrowser: "Passkeys are not supported in in-app browsers. Please open in your device browser (Chrome/Edge on Android, Safari on iOS).";
180
180
  readonly outdatedChrome: "Chrome 109 or later is required. Please update your browser.";
181
181
  readonly outdatedEdge: "Edge 109 or later is required. Please update your browser.";
182
182
  readonly outdatedSafari: "Safari 17.4 or later is required. Please update macOS/iOS.";
@@ -198,7 +198,7 @@ declare const en: {
198
198
  readonly linux: "Scan the QR code on screen with your phone camera.";
199
199
  readonly default: "Please use this device's biometric.";
200
200
  readonly note: "Using other devices or apps may not work.";
201
- readonly windowsNote: "This PC will use Face ID or fingerprint from your phone.";
201
+ readonly windowsNote: "Complete on your phone or tablet with Google Password Manager for best compatibility.";
202
202
  };
203
203
  readonly migration: {
204
204
  readonly title: "Set up passkey for this site";
@@ -322,6 +322,16 @@ declare const en: {
322
322
  readonly default: "Processing...";
323
323
  readonly doNotClose: "Please don't close this window";
324
324
  };
325
+ readonly result: {
326
+ readonly successTitle: "Payment Complete";
327
+ readonly failureTitle: "Payment Failed";
328
+ readonly successMessage: "Your payment has been processed successfully";
329
+ readonly failureMessage: "Something went wrong. Please try again.";
330
+ readonly amountLabel: "Amount";
331
+ readonly usdValueLabel: "USD Value";
332
+ readonly transactionLabel: "Transaction";
333
+ readonly reportIssue: "Report an issue";
334
+ };
325
335
  };
326
336
  readonly errors: {
327
337
  readonly webauthnNotSupported: "WebAuthn API is not supported";
package/dist/index.js CHANGED
@@ -547,12 +547,12 @@ var en = {
547
547
  alreadyExists: "Biometric login is already set up.",
548
548
  notSupported: "Your device doesn't support biometric login.",
549
549
  prfNotSupported: "Setup failed. Please use your device's biometric (Touch ID, Face ID) directly. Using other devices or apps may not work.",
550
- prfNotSupportedWindows: `Setup failed. Windows Hello doesn't support PRF. In the passkey picker, choose "Use a phone or tablet".`,
550
+ prfNotSupportedWindows: `Setup failed. The selected passkey provider doesn't support PRF. In the passkey picker, choose "Use a phone or tablet" and complete with Google Password Manager on the device.`,
551
551
  generic: "Setup failed. Please try again."
552
552
  },
553
553
  compatibility: {
554
554
  title: "Browser Update Required",
555
- inAppBrowser: "Secure login is not available in this app browser. Please open in Safari or Chrome.",
555
+ inAppBrowser: "Passkeys are not supported in in-app browsers. Please open in your device browser (Chrome/Edge on Android, Safari on iOS).",
556
556
  outdatedChrome: "Chrome 109 or later is required. Please update your browser.",
557
557
  outdatedEdge: "Edge 109 or later is required. Please update your browser.",
558
558
  outdatedSafari: "Safari 17.4 or later is required. Please update macOS/iOS.",
@@ -574,7 +574,7 @@ var en = {
574
574
  linux: "Scan the QR code on screen with your phone camera.",
575
575
  default: "Please use this device's biometric.",
576
576
  note: "Using other devices or apps may not work.",
577
- windowsNote: "This PC will use Face ID or fingerprint from your phone."
577
+ windowsNote: "Complete on your phone or tablet with Google Password Manager for best compatibility."
578
578
  },
579
579
  migration: {
580
580
  title: "Set up passkey for this site",
@@ -698,6 +698,16 @@ var en = {
698
698
  confirming: "Almost done...",
699
699
  default: "Processing...",
700
700
  doNotClose: "Please don't close this window"
701
+ },
702
+ result: {
703
+ successTitle: "Payment Complete",
704
+ failureTitle: "Payment Failed",
705
+ successMessage: "Your payment has been processed successfully",
706
+ failureMessage: "Something went wrong. Please try again.",
707
+ amountLabel: "Amount",
708
+ usdValueLabel: "USD Value",
709
+ transactionLabel: "Transaction",
710
+ reportIssue: "Report an issue"
701
711
  }
702
712
  },
703
713
  errors: {
@@ -794,12 +804,12 @@ var ko = {
794
804
  alreadyExists: "\uC774\uBBF8 \uC0DD\uCCB4 \uB85C\uADF8\uC778\uC774 \uC124\uC815\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.",
795
805
  notSupported: "\uC774 \uAE30\uAE30\uB294 \uC0DD\uCCB4 \uB85C\uADF8\uC778\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
796
806
  prfNotSupported: "\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC774 \uAE30\uAE30\uC758 \uC0DD\uCCB4 \uC778\uC99D(Touch ID, Face ID)\uC744 \uC9C1\uC811 \uC120\uD0DD\uD574\uC8FC\uC138\uC694. \uB2E4\uB978 \uAE30\uAE30\uB098 \uC571 \uC0AC\uC6A9 \uC2DC \uB3D9\uC791\uD558\uC9C0 \uC54A\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
797
- prfNotSupportedWindows: '\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. Windows Hello\uB294 PRF\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD328\uC2A4\uD0A4 \uC120\uD0DD \uD654\uBA74\uC5D0\uC11C "\uD734\uB300\uD3F0/\uD0DC\uBE14\uB9BF \uC0AC\uC6A9"\uC744 \uC120\uD0DD\uD574\uC8FC\uC138\uC694.',
807
+ prfNotSupportedWindows: '\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC120\uD0DD\uD55C \uD328\uC2A4\uD0A4 \uC81C\uACF5\uC790\uAC00 PRF\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD328\uC2A4\uD0A4 \uC120\uD0DD \uD654\uBA74\uC5D0\uC11C "\uD734\uB300\uD3F0/\uD0DC\uBE14\uB9BF \uC0AC\uC6A9"\uC744 \uC120\uD0DD\uD558\uACE0, \uD734\uB300\uD3F0/\uD0DC\uBE14\uB9BF\uC5D0\uC11C\uB294 Google Password Manager\uB85C \uC9C4\uD589\uD574\uC8FC\uC138\uC694.',
798
808
  generic: "\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694."
799
809
  },
800
810
  compatibility: {
801
811
  title: "\uBE0C\uB77C\uC6B0\uC800 \uC5C5\uB370\uC774\uD2B8 \uD544\uC694",
802
- inAppBrowser: "\uD604\uC7AC \uC571 \uB0B4 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB294 \uBCF4\uC548 \uB85C\uADF8\uC778\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. Safari \uB610\uB294 Chrome\uC5D0\uC11C \uC5F4\uC5B4\uC8FC\uC138\uC694.",
812
+ inAppBrowser: "\uC571 \uB0B4 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB294 \uD328\uC2A4\uD0A4 \uB85C\uADF8\uC778\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uAE30\uBCF8 \uBE0C\uB77C\uC6B0\uC800(\uC548\uB4DC\uB85C\uC774\uB4DC: Chrome/Edge, iOS: Safari)\uC5D0\uC11C \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694.",
803
813
  outdatedChrome: "Chrome 109 \uC774\uC0C1 \uBC84\uC804\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800\uB97C \uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.",
804
814
  outdatedEdge: "Edge 109 \uC774\uC0C1 \uBC84\uC804\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800\uB97C \uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.",
805
815
  outdatedSafari: "Safari 17.4 \uC774\uC0C1 \uBC84\uC804\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. macOS/iOS\uB97C \uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.",
@@ -821,7 +831,7 @@ var ko = {
821
831
  linux: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C\uB85C \uD654\uBA74\uC758 QR \uCF54\uB4DC\uB97C \uC2A4\uCE94\uD574\uC8FC\uC138\uC694.",
822
832
  default: "\uC774 \uAE30\uAE30\uC758 \uC0DD\uCCB4 \uC778\uC99D\uC744 \uC0AC\uC6A9\uD574\uC8FC\uC138\uC694.",
823
833
  note: "\uB2E4\uB978 \uAE30\uAE30\uB098 \uC571 \uC0AC\uC6A9 \uC2DC \uB3D9\uC791\uD558\uC9C0 \uC54A\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
824
- windowsNote: "\uC774 PC\uC5D0\uC11C\uB294 \uD734\uB300\uD3F0\uC758 Face ID \uB610\uB294 \uC9C0\uBB38 \uC778\uC2DD\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4."
834
+ windowsNote: "\uD734\uB300\uD3F0/\uD0DC\uBE14\uB9BF\uC5D0\uC11C\uB294 Google Password Manager\uB85C \uC9C4\uD589\uD558\uBA74 \uC548\uC815\uC801\uC785\uB2C8\uB2E4."
825
835
  },
826
836
  migration: {
827
837
  title: "\uC774 \uC0AC\uC774\uD2B8\uC6A9 \uD328\uC2A4\uD0A4 \uC124\uC815",
@@ -970,6 +980,16 @@ var ko = {
970
980
  confirming: "\uAC70\uC758 \uC644\uB8CC...",
971
981
  default: "\uCC98\uB9AC \uC911...",
972
982
  doNotClose: "\uCC3D\uC744 \uB2EB\uC9C0 \uB9C8\uC138\uC694"
983
+ },
984
+ result: {
985
+ successTitle: "\uACB0\uC81C \uC644\uB8CC",
986
+ failureTitle: "\uACB0\uC81C \uC2E4\uD328",
987
+ successMessage: "\uACB0\uC81C\uAC00 \uC815\uC0C1\uC801\uC73C\uB85C \uCC98\uB9AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",
988
+ failureMessage: "\uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694.",
989
+ amountLabel: "\uAE08\uC561",
990
+ usdValueLabel: "USD \uAC00\uCE58",
991
+ transactionLabel: "\uD2B8\uB79C\uC7AD\uC158",
992
+ reportIssue: "\uBB38\uC81C \uC2E0\uACE0\uD558\uAE30"
973
993
  }
974
994
  },
975
995
  errors: {
@@ -6612,8 +6632,14 @@ var PaymentResultView = ({
6612
6632
  onRetry,
6613
6633
  onReport
6614
6634
  }) => {
6635
+ const { t } = useI18n();
6615
6636
  const isSuccess = payment.status === "CONFIRMED";
6616
6637
  payment.status === "FAILED" || !!error;
6638
+ const isInAppBrowserError = error?.code === "INAPP_BROWSER_NOT_SUPPORTED";
6639
+ const handleOpenExternalBrowser = () => {
6640
+ if (typeof window === "undefined") return;
6641
+ window.open(window.location.href, "_system");
6642
+ };
6617
6643
  return /* @__PURE__ */ jsxs("div", { className: "volr:space-y-6", children: [
6618
6644
  /* @__PURE__ */ jsx("div", { className: "volr:flex volr:justify-center volr:pt-2", children: isSuccess ? /* @__PURE__ */ jsx("div", { className: "volr:w-14 volr:h-14 volr:rounded-full volr:bg-green-50 volr:flex volr:items-center volr:justify-center", children: /* @__PURE__ */ jsx(
6619
6645
  "svg",
@@ -6651,12 +6677,12 @@ var PaymentResultView = ({
6651
6677
  }
6652
6678
  ) }) }),
6653
6679
  /* @__PURE__ */ jsxs("div", { className: "volr:text-center volr:space-y-1", children: [
6654
- /* @__PURE__ */ jsx("h3", { className: "volr:text-lg volr:font-semibold volr:text-slate-900", children: isSuccess ? "Payment Complete" : "Payment Failed" }),
6655
- /* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-slate-500", children: isSuccess ? "Your payment has been processed successfully" : error?.message || "Something went wrong. Please try again." })
6680
+ /* @__PURE__ */ jsx("h3", { className: "volr:text-lg volr:font-semibold volr:text-slate-900", children: isSuccess ? t("payment.result.successTitle") : t("payment.result.failureTitle") }),
6681
+ /* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-slate-500", children: isSuccess ? t("payment.result.successMessage") : isInAppBrowserError ? t("passkey.compatibility.inAppBrowser") : error?.message || t("payment.result.failureMessage") })
6656
6682
  ] }),
6657
6683
  isSuccess && payment.txHash && /* @__PURE__ */ jsxs("div", { className: "volr:bg-slate-50 volr:rounded-lg volr:p-4 volr:space-y-2", children: [
6658
6684
  /* @__PURE__ */ jsxs("div", { className: "volr:flex volr:justify-between volr:text-sm", children: [
6659
- /* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: "Amount" }),
6685
+ /* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: t("payment.result.amountLabel") }),
6660
6686
  /* @__PURE__ */ jsxs("span", { className: "volr:font-medium volr:text-slate-900", children: [
6661
6687
  (Number(payment.amount) / Math.pow(10, payment.token.decimals)).toLocaleString(),
6662
6688
  " ",
@@ -6664,14 +6690,14 @@ var PaymentResultView = ({
6664
6690
  ] })
6665
6691
  ] }),
6666
6692
  payment.totalUsd && /* @__PURE__ */ jsxs("div", { className: "volr:flex volr:justify-between volr:text-sm", children: [
6667
- /* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: "USD Value" }),
6693
+ /* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: t("payment.result.usdValueLabel") }),
6668
6694
  /* @__PURE__ */ jsxs("span", { className: "volr:text-slate-600", children: [
6669
6695
  "$",
6670
6696
  parseFloat(payment.totalUsd).toFixed(2)
6671
6697
  ] })
6672
6698
  ] }),
6673
6699
  /* @__PURE__ */ jsxs("div", { className: "volr:flex volr:justify-between volr:text-sm", children: [
6674
- /* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: "Transaction" }),
6700
+ /* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: t("payment.result.transactionLabel") }),
6675
6701
  /* @__PURE__ */ jsxs("code", { className: "volr:text-xs volr:text-slate-600 volr:font-mono", children: [
6676
6702
  payment.txHash.slice(0, 8),
6677
6703
  "...",
@@ -6679,14 +6705,23 @@ var PaymentResultView = ({
6679
6705
  ] })
6680
6706
  ] })
6681
6707
  ] }),
6682
- /* @__PURE__ */ jsx("div", { className: "volr:space-y-4", children: isSuccess ? /* @__PURE__ */ jsx(Button, { onClick: onDone, className: "volr:w-full", children: "Done" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
6683
- /* @__PURE__ */ jsx(Button, { onClick: onRetry, className: "volr:w-full", children: "Try Again" }),
6708
+ /* @__PURE__ */ jsx("div", { className: "volr:space-y-4", children: isSuccess ? /* @__PURE__ */ jsx(Button, { onClick: onDone, className: "volr:w-full", children: t("common.done") }) : /* @__PURE__ */ jsxs(Fragment, { children: [
6709
+ isInAppBrowserError && /* @__PURE__ */ jsx(Button, { onClick: handleOpenExternalBrowser, className: "volr:w-full", children: t("passkey.compatibility.openInExternalBrowser") }),
6710
+ /* @__PURE__ */ jsx(
6711
+ Button,
6712
+ {
6713
+ onClick: onRetry,
6714
+ className: "volr:w-full",
6715
+ variant: isInAppBrowserError ? "secondary" : void 0,
6716
+ children: t("common.tryAgain")
6717
+ }
6718
+ ),
6684
6719
  /* @__PURE__ */ jsx(
6685
6720
  "button",
6686
6721
  {
6687
6722
  onClick: onReport,
6688
6723
  className: "volr:w-full volr:text-sm volr:text-slate-400 hover:volr:text-slate-600 volr:transition-colors volr:py-2",
6689
- children: "Report an issue"
6724
+ children: t("payment.result.reportIssue")
6690
6725
  }
6691
6726
  )
6692
6727
  ] }) }),