@shoppexio/storefront-react 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/dist/account.js +1170 -196
  3. package/dist/account.js.map +1 -1
  4. package/dist/{chunk-ZEFZPUAW.js → chunk-NBOIS53R.js} +2 -1
  5. package/dist/chunk-NBOIS53R.js.map +1 -0
  6. package/dist/index.d.ts +151 -21
  7. package/dist/index.js +206 -61
  8. package/dist/index.js.map +1 -1
  9. package/eject/account/account-availability.ts +4 -1
  10. package/eject/account/account-page.tsx +26 -6
  11. package/eject/account/account-referrals.ts +179 -6
  12. package/eject/account/dashboard.tsx +1 -0
  13. package/eject/account/messages/ar.json +40 -3
  14. package/eject/account/messages/de.json +40 -3
  15. package/eject/account/messages/en.json +40 -3
  16. package/eject/account/messages/es.json +40 -3
  17. package/eject/account/messages/fi.json +40 -3
  18. package/eject/account/messages/fr.json +40 -3
  19. package/eject/account/messages/hi.json +40 -3
  20. package/eject/account/messages/it.json +40 -3
  21. package/eject/account/messages/lt.json +40 -3
  22. package/eject/account/messages/nl.json +40 -3
  23. package/eject/account/messages/pl.json +40 -3
  24. package/eject/account/messages/pt.json +40 -3
  25. package/eject/account/messages/ru.json +40 -3
  26. package/eject/account/messages/tr.json +40 -3
  27. package/eject/account/messages/uk.json +40 -3
  28. package/eject/account/messages/zh.json +40 -3
  29. package/eject/account/orders.tsx +53 -0
  30. package/eject/account/referrals.tsx +399 -153
  31. package/eject/account/rewards.tsx +38 -6
  32. package/eject/account/settings.tsx +98 -2
  33. package/eject/account/shared.tsx +3 -2
  34. package/package.json +4 -1
  35. package/dist/chunk-ZEFZPUAW.js.map +0 -1
package/dist/account.js CHANGED
@@ -10,10 +10,10 @@ import {
10
10
  notifyFavoritesChanged,
11
11
  resolveAccountView,
12
12
  withoutFavorite
13
- } from "./chunk-ZEFZPUAW.js";
13
+ } from "./chunk-NBOIS53R.js";
14
14
 
15
15
  // src/account/account-page.tsx
16
- import { useEffect as useEffect5, useState as useState11 } from "react";
16
+ import { useEffect as useEffect5, useState as useState12 } from "react";
17
17
  import { Link as Link8, Navigate, useLocation } from "react-router-dom";
18
18
 
19
19
  // src/account/account-availability.ts
@@ -38,7 +38,9 @@ function accountAvailabilityFrom(source, reseller) {
38
38
  subscriptions: source.subscriptionsCount > 0,
39
39
  wallet: source.walletPresent,
40
40
  rewards: true,
41
- referrals: source.affiliateState !== "not_enrolled",
41
+ // With auto-join off a `not_enrolled` buyer may still make the first link,
42
+ // which is how they join; the panel's control has to be reachable for it.
43
+ referrals: source.affiliateState !== "not_enrolled" || source.affiliateCanCreateLinks,
42
44
  favorites: true,
43
45
  reseller: accountResellerAvailable(reseller)
44
46
  };
@@ -304,7 +306,10 @@ var ar_default = {
304
306
  warrantyClaimSending: "\u062C\u0627\u0631\u064D \u0627\u0644\u0625\u0631\u0633\u0627\u0644\u2026",
305
307
  warrantyClaimDone: "\u0648\u0635\u0644 \u0637\u0644\u0628\u0643 \u0625\u0644\u0649 \u0627\u0644\u0645\u062A\u062C\u0631. \u0633\u064A\u0631\u062F\u0651\u0648\u0646 \u0639\u0628\u0631 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A.",
306
308
  warrantyClaimFailed: "\u062A\u0639\u0630\u0651\u0631 \u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628\u0643.",
307
- warrantyClaimTooLong: "\u0644\u0627 \u064A\u0645\u0643\u0646 \u0623\u0646 \u064A\u062A\u062C\u0627\u0648\u0632 \u0637\u0644\u0628\u0643 {max} \u062D\u0631\u0641."
309
+ warrantyClaimTooLong: "\u0644\u0627 \u064A\u0645\u0643\u0646 \u0623\u0646 \u064A\u062A\u062C\u0627\u0648\u0632 \u0637\u0644\u0628\u0643 {max} \u062D\u0631\u0641.",
310
+ invoicePdf: "\u062A\u0646\u0632\u064A\u0644 \u0627\u0644\u0641\u0627\u062A\u0648\u0631\u0629 (PDF)",
311
+ invoicePdfLoading: "\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u062D\u0636\u064A\u0631\u2026",
312
+ invoicePdfFailed: "\u062A\u0639\u0630\u0651\u0631 \u062A\u0646\u0632\u064A\u0644 \u0647\u0630\u0647 \u0627\u0644\u0641\u0627\u062A\u0648\u0631\u0629. \u064A\u064F\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649."
308
313
  },
309
314
  downloads: {
310
315
  loading: "\u062C\u0627\u0631\u064D \u062A\u062D\u0645\u064A\u0644 \u062A\u0646\u0632\u064A\u0644\u0627\u062A\u0643",
@@ -461,6 +466,16 @@ var ar_default = {
461
466
  commissionsEmptyTitle: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0639\u0645\u0648\u0644\u0627\u062A \u0628\u0639\u062F",
462
467
  commissionsEmptyBody: "\u062A\u0638\u0647\u0631 \u0647\u0646\u0627 \u0645\u0628\u064A\u0639\u0627\u062A \u0627\u0644\u0625\u062D\u0627\u0644\u0629 \u0627\u0644\u0645\u0639\u062A\u0645\u062F\u0629.",
463
468
  commissionFor: "\u0627\u0644\u0637\u0644\u0628 {id}",
469
+ ledgerWaitingPayment: "\u0642\u064A\u062F \u0627\u0644\u0627\u0646\u062A\u0638\u0627\u0631",
470
+ ledgerEarned: "\u0645\u0643\u062A\u0633\u0628\u0629",
471
+ ledgerInPayoutRequest: "\u0641\u064A \u0637\u0644\u0628 \u0635\u0631\u0641",
472
+ ledgerPaidOut: "\u062A\u0645 \u0627\u0644\u062F\u0641\u0639",
473
+ ledgerStoreCredit: "\u0631\u0635\u064A\u062F \u0627\u0644\u0645\u062A\u062C\u0631",
474
+ ledgerSplit: "\u0645\u0642\u0633\u0651\u0645",
475
+ ledgerVoided: "\u0628\u0627\u0637\u0644",
476
+ paidOutPart: "\u062A\u0645 \u062F\u0641\u0639 {amount}",
477
+ storeCreditPart: "{amount} \u0631\u0635\u064A\u062F \u0627\u0644\u0645\u062A\u062C\u0631",
478
+ ofTotal: "\u0645\u0646 {total}",
464
479
  balanceTitle: "\u062D\u0631\u0643\u0629 \u0627\u0644\u0631\u0635\u064A\u062F",
465
480
  balanceEmptyTitle: "\u0644\u0627 \u062A\u0648\u062C\u062F \u062D\u0631\u0643\u0629 \u0631\u0635\u064A\u062F \u0628\u0639\u062F",
466
481
  balanceEmptyBody: "\u062A\u0638\u0647\u0631 \u0647\u0646\u0627 \u0627\u0644\u062A\u062D\u0648\u064A\u0644\u0627\u062A \u0648\u0627\u0644\u062F\u0641\u0639\u0627\u062A.",
@@ -469,7 +484,23 @@ var ar_default = {
469
484
  claimAdjustment: "\u062A\u0633\u0648\u064A\u0629",
470
485
  differentCurrency: "\u0631\u0635\u064A\u062F \u0625\u062D\u0627\u0644\u0627\u062A\u0643 \u0645\u062D\u0641\u0648\u0638 \u0628\u0639\u0645\u0644\u0629 {currency}.",
471
486
  convertedLabel: "\u062D\u064F\u0648\u0650\u0651\u0644 \u0625\u0644\u0649 \u0631\u0635\u064A\u062F \u0627\u0644\u0645\u062A\u062C\u0631",
472
- paidLabel: "\u062A\u0645 \u0627\u0644\u062F\u0641\u0639"
487
+ paidLabel: "\u062A\u0645 \u0627\u0644\u062F\u0641\u0639",
488
+ newLink: "\u0631\u0627\u0628\u0637 \u062C\u062F\u064A\u062F",
489
+ linkLabel: "\u0627\u0644\u0627\u0633\u0645",
490
+ linkLabelPlaceholder: "\u062D\u0645\u0644\u0629 \u064A\u0648\u062A\u064A\u0648\u0628",
491
+ linkCode: "\u0627\u0644\u0631\u0645\u0632",
492
+ linkCommission: "\u0627\u0644\u0639\u0645\u0648\u0644\u0629 \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 (%)",
493
+ linkDiscount: "\u062E\u0635\u0645 \u0627\u0644\u0645\u0634\u062A\u0631\u064A \u0627\u0644\u0645\u0637\u0644\u0648\u0628 (%)",
494
+ linkRatePlaceholder: "\u0627\u0641\u062A\u0631\u0627\u0636\u064A \u0627\u0644\u0645\u062A\u062C\u0631",
495
+ linkRatesHint: "\u0627\u062A\u0631\u0643 \u0627\u0644\u0646\u0633\u0628\u062A\u064A\u0646 \u0641\u0627\u0631\u063A\u062A\u064A\u0646 \u0644\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0646\u0633\u0628 \u0627\u0644\u0645\u062A\u062C\u0631. \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0630\u064A \u064A\u0637\u0644\u0628 \u0646\u0633\u0628\u064B\u0627 \u062E\u0627\u0635\u0629 \u064A\u0646\u062A\u0638\u0631 \u0645\u0648\u0627\u0641\u0642\u0629 \u0627\u0644\u0645\u062A\u062C\u0631.",
496
+ createLink: "\u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0631\u0627\u0628\u0637",
497
+ creatingLink: "\u062C\u0627\u0631\u064D \u0627\u0644\u0625\u0646\u0634\u0627\u0621\u2026",
498
+ linkCreated: "\u0631\u0627\u0628\u0637\u0643 \u062C\u0627\u0647\u0632 \u0644\u0644\u0645\u0634\u0627\u0631\u0643\u0629.",
499
+ linkRequested: "\u0631\u0627\u0628\u0637\u0643 \u0628\u0627\u0646\u062A\u0638\u0627\u0631 \u0645\u0648\u0627\u0641\u0642\u0629 \u0627\u0644\u0645\u062A\u062C\u0631.",
500
+ linkFailed: "\u062A\u0639\u0630\u0651\u0631 \u0625\u0646\u0634\u0627\u0621 \u0631\u0627\u0628\u0637\u0643. \u064A\u064F\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
501
+ linkRequired: "\u0623\u062F\u062E\u0644 \u0627\u0633\u0645\u064B\u0627 \u0648\u0631\u0645\u0632\u064B\u0627 \u0644\u0631\u0627\u0628\u0637\u0643.",
502
+ linkRateInvalid: "\u0623\u062F\u062E\u0644 \u0643\u0644 \u0646\u0633\u0628\u0629 \u0643\u0642\u064A\u0645\u0629 \u0645\u0626\u0648\u064A\u0629 \u0628\u064A\u0646 0 \u0648100 \u0628\u0645\u0646\u0632\u0644\u062A\u064A\u0646 \u0639\u0634\u0631\u064A\u062A\u064A\u0646 \u0639\u0644\u0649 \u0627\u0644\u0623\u0643\u062B\u0631\u060C \u0645\u062B\u0644 12.5.",
503
+ linksEmptyCanCreate: "\u0623\u0646\u0634\u0626 \u0631\u0627\u0628\u0637\u064B\u0627 \u0628\u0631\u0645\u0632\u0643 \u0627\u0644\u062E\u0627\u0635."
473
504
  },
474
505
  support: {
475
506
  loading: "\u062C\u0627\u0631\u064D \u062A\u062D\u0645\u064A\u0644 \u062A\u0630\u0627\u0643\u0631\u0643",
@@ -538,7 +569,15 @@ var ar_default = {
538
569
  signOutOthersDone: "\u062A\u0645 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062E\u0631\u0648\u062C \u0645\u0646 \u0643\u0644 \u0627\u0644\u0623\u062C\u0647\u0632\u0629 \u0627\u0644\u0623\u062E\u0631\u0649.",
539
570
  devicesFailed: "\u062A\u0639\u0630\u0651\u0631 \u062A\u062D\u0645\u064A\u0644 \u0623\u062C\u0647\u0632\u062A\u0643.",
540
571
  signOutDeviceFailed: "\u062A\u0639\u0630\u0651\u0631 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062E\u0631\u0648\u062C \u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u062C\u0647\u0627\u0632. \u064A\u064F\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
541
- deviceOn: "{browser} \u0639\u0644\u0649 {os}"
572
+ deviceOn: "{browser} \u0639\u0644\u0649 {os}",
573
+ orderEmailsTitle: "\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0637\u0644\u0628\u0627\u062A",
574
+ orderEmailsLoading: "\u062C\u0627\u0631\u064D \u062A\u062D\u0645\u064A\u0644 \u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0637\u0644\u0628\u0627\u062A",
575
+ orderCreated: "\u062A\u0623\u0643\u064A\u062F\u0627\u062A \u0627\u0644\u0637\u0644\u0628\u0627\u062A",
576
+ orderCreatedNote: "\u0631\u0633\u0627\u0644\u0629 \u0639\u0646\u062F \u0625\u062A\u0645\u0627\u0645 \u0637\u0644\u0628.",
577
+ orderCompleted: "\u0625\u064A\u0635\u0627\u0644\u0627\u062A \u0627\u0644\u0637\u0644\u0628\u0627\u062A",
578
+ orderCompletedNote: "\u0627\u0644\u0625\u064A\u0635\u0627\u0644\u0627\u062A \u0648\u0625\u0634\u0639\u0627\u0631\u0627\u062A \u0627\u0643\u062A\u0645\u0627\u0644 \u0627\u0644\u0637\u0644\u0628. \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0627\u0644\u062A\u064A \u062A\u0633\u0644\u0651\u0645 \u0645\u0646\u062A\u062C\u0627\u062A\u0643 \u062A\u064F\u0631\u0633\u0644 \u062F\u0627\u0626\u0645\u064B\u0627.",
579
+ paymentIssue: "\u0645\u0634\u0643\u0644\u0627\u062A \u0627\u0644\u062F\u0641\u0639",
580
+ paymentIssueNote: "\u0631\u0633\u0627\u0644\u0629 \u0639\u0646\u062F\u0645\u0627 \u062A\u062D\u062A\u0627\u062C \u0639\u0645\u0644\u064A\u0629 \u062F\u0641\u0639 \u0625\u0644\u0649 \u0627\u0646\u062A\u0628\u0627\u0647\u0643."
542
581
  },
543
582
  walletTopup: {
544
583
  title: "\u0625\u0636\u0627\u0641\u0629 \u0631\u0635\u064A\u062F \u0627\u0644\u0645\u062A\u062C\u0631",
@@ -770,7 +809,10 @@ var de_default = {
770
809
  warrantyClaimSending: "Wird gesendet\u2026",
771
810
  warrantyClaimDone: "Der Shop hat deinen Fall erhalten. Die Antwort kommt per E-Mail.",
772
811
  warrantyClaimFailed: "Dein Fall konnte nicht gesendet werden.",
773
- warrantyClaimTooLong: "Dein Fall darf h\xF6chstens {max} Zeichen lang sein."
812
+ warrantyClaimTooLong: "Dein Fall darf h\xF6chstens {max} Zeichen lang sein.",
813
+ invoicePdf: "Rechnung herunterladen (PDF)",
814
+ invoicePdfLoading: "Wird vorbereitet\u2026",
815
+ invoicePdfFailed: "Wir konnten diese Rechnung nicht herunterladen. Bitte versuch es erneut."
774
816
  },
775
817
  downloads: {
776
818
  loading: "Deine Downloads werden geladen",
@@ -927,6 +969,16 @@ var de_default = {
927
969
  commissionsEmptyTitle: "Noch keine Provisionen",
928
970
  commissionsEmptyBody: "Freigegebene Empfehlungsverk\xE4ufe erscheinen hier.",
929
971
  commissionFor: "Bestellung {id}",
972
+ ledgerWaitingPayment: "Ausstehend",
973
+ ledgerEarned: "Verdient",
974
+ ledgerInPayoutRequest: "In Auszahlungsanfrage",
975
+ ledgerPaidOut: "Ausgezahlt",
976
+ ledgerStoreCredit: "Shop-Guthaben",
977
+ ledgerSplit: "Aufgeteilt",
978
+ ledgerVoided: "Annulliert",
979
+ paidOutPart: "{amount} ausgezahlt",
980
+ storeCreditPart: "{amount} Shop-Guthaben",
981
+ ofTotal: "von {total}",
930
982
  balanceTitle: "Guthabenbewegungen",
931
983
  balanceEmptyTitle: "Noch keine Guthabenbewegungen",
932
984
  balanceEmptyBody: "Umwandlungen und Auszahlungen erscheinen hier.",
@@ -935,7 +987,23 @@ var de_default = {
935
987
  claimAdjustment: "Korrektur",
936
988
  differentCurrency: "Dein Empfehlungsguthaben wird in {currency} gef\xFChrt.",
937
989
  convertedLabel: "In Shop-Guthaben umgewandelt",
938
- paidLabel: "Ausgezahlt"
990
+ paidLabel: "Ausgezahlt",
991
+ newLink: "Neuer Link",
992
+ linkLabel: "Name",
993
+ linkLabelPlaceholder: "YouTube-Kampagne",
994
+ linkCode: "Code",
995
+ linkCommission: "Gew\xFCnschte Provision (%)",
996
+ linkDiscount: "Gew\xFCnschter K\xE4uferrabatt (%)",
997
+ linkRatePlaceholder: "Standard des Shops",
998
+ linkRatesHint: "Lass beide S\xE4tze leer, um die des Shops zu nutzen. Ein Link mit eigenen S\xE4tzen wartet auf die Freigabe durch den Shop.",
999
+ createLink: "Link erstellen",
1000
+ creatingLink: "Wird erstellt\u2026",
1001
+ linkCreated: "Dein Link ist bereit zum Teilen.",
1002
+ linkRequested: "Dein Link wartet auf die Freigabe durch den Shop.",
1003
+ linkFailed: "Wir konnten deinen Link nicht erstellen. Bitte versuch es erneut.",
1004
+ linkRequired: "Gib einen Namen und einen Code f\xFCr deinen Link ein.",
1005
+ linkRateInvalid: "Gib jeden Satz als Prozentwert zwischen 0 und 100 mit h\xF6chstens zwei Nachkommastellen ein, zum Beispiel 12,5.",
1006
+ linksEmptyCanCreate: "Erstell einen mit deinem eigenen Code."
939
1007
  },
940
1008
  support: {
941
1009
  loading: "Deine Anfragen werden geladen",
@@ -1004,7 +1072,15 @@ var de_default = {
1004
1072
  signOutOthersDone: "Alle anderen Ger\xE4te wurden abgemeldet.",
1005
1073
  devicesFailed: "Deine Ger\xE4te konnten nicht geladen werden.",
1006
1074
  signOutDeviceFailed: "Dieses Ger\xE4t konnte nicht abgemeldet werden. Bitte versuche es noch einmal.",
1007
- deviceOn: "{browser} auf {os}"
1075
+ deviceOn: "{browser} auf {os}",
1076
+ orderEmailsTitle: "Bestell-E-Mails",
1077
+ orderEmailsLoading: "Deine Bestell-E-Mails werden geladen",
1078
+ orderCreated: "Bestellbest\xE4tigungen",
1079
+ orderCreatedNote: "Eine E-Mail, wenn du eine Bestellung aufgibst.",
1080
+ orderCompleted: "Bestellbelege",
1081
+ orderCompletedNote: "Belege und Abschlussmeldungen. Die E-Mail, die deine Artikel liefert, wird immer gesendet.",
1082
+ paymentIssue: "Zahlungsprobleme",
1083
+ paymentIssueNote: "Eine E-Mail, wenn eine Zahlung deine Aufmerksamkeit braucht."
1008
1084
  },
1009
1085
  walletTopup: {
1010
1086
  title: "Guthaben aufladen",
@@ -1236,7 +1312,10 @@ var en_default = {
1236
1312
  warrantyClaimSending: "Sending\u2026",
1237
1313
  warrantyClaimDone: "The store has your claim. They reply by email.",
1238
1314
  warrantyClaimFailed: "Your claim could not be sent.",
1239
- warrantyClaimTooLong: "Your claim can be at most {max} characters."
1315
+ warrantyClaimTooLong: "Your claim can be at most {max} characters.",
1316
+ invoicePdf: "Download invoice (PDF)",
1317
+ invoicePdfLoading: "Preparing\u2026",
1318
+ invoicePdfFailed: "We could not download this invoice. Please try again."
1240
1319
  },
1241
1320
  downloads: {
1242
1321
  loading: "Loading your downloads",
@@ -1393,6 +1472,16 @@ var en_default = {
1393
1472
  commissionsEmptyTitle: "No commissions yet",
1394
1473
  commissionsEmptyBody: "Approved referral sales appear here.",
1395
1474
  commissionFor: "Order {id}",
1475
+ ledgerWaitingPayment: "Pending",
1476
+ ledgerEarned: "Earned",
1477
+ ledgerInPayoutRequest: "In payout request",
1478
+ ledgerPaidOut: "Paid out",
1479
+ ledgerStoreCredit: "Store credit",
1480
+ ledgerSplit: "Split",
1481
+ ledgerVoided: "Voided",
1482
+ paidOutPart: "{amount} paid out",
1483
+ storeCreditPart: "{amount} store credit",
1484
+ ofTotal: "of {total}",
1396
1485
  balanceTitle: "Balance activity",
1397
1486
  balanceEmptyTitle: "No balance activity yet",
1398
1487
  balanceEmptyBody: "Conversions and payouts appear here.",
@@ -1401,7 +1490,23 @@ var en_default = {
1401
1490
  claimAdjustment: "Adjustment",
1402
1491
  differentCurrency: "Your referral balance is held in {currency}.",
1403
1492
  convertedLabel: "Moved to store credit",
1404
- paidLabel: "Paid out"
1493
+ paidLabel: "Paid out",
1494
+ newLink: "New link",
1495
+ linkLabel: "Name",
1496
+ linkLabelPlaceholder: "YouTube campaign",
1497
+ linkCode: "Code",
1498
+ linkCommission: "Commission you ask for (%)",
1499
+ linkDiscount: "Buyer discount you ask for (%)",
1500
+ linkRatePlaceholder: "Store default",
1501
+ linkRatesHint: "Leave both rates empty to use the store's own. A link that asks for its own rates waits for the store's approval.",
1502
+ createLink: "Create link",
1503
+ creatingLink: "Creating\u2026",
1504
+ linkCreated: "Your link is ready to share.",
1505
+ linkRequested: "Your link is waiting for the store's approval.",
1506
+ linkFailed: "We could not create your link. Please try again.",
1507
+ linkRequired: "Enter a name and a code for your link.",
1508
+ linkRateInvalid: "Enter each rate as a percentage between 0 and 100 with at most two decimals, for example 12.5.",
1509
+ linksEmptyCanCreate: "Make one with a code of your own."
1405
1510
  },
1406
1511
  support: {
1407
1512
  loading: "Loading your tickets",
@@ -1470,7 +1575,15 @@ var en_default = {
1470
1575
  signOutOthersDone: "Every other device was signed out.",
1471
1576
  devicesFailed: "Your devices could not be loaded.",
1472
1577
  signOutDeviceFailed: "That device could not be signed out. Please try again.",
1473
- deviceOn: "{browser} on {os}"
1578
+ deviceOn: "{browser} on {os}",
1579
+ orderEmailsTitle: "Order emails",
1580
+ orderEmailsLoading: "Loading your order emails",
1581
+ orderCreated: "Order confirmations",
1582
+ orderCreatedNote: "An email when you place an order.",
1583
+ orderCompleted: "Order receipts",
1584
+ orderCompletedNote: "Receipts and completion notices. The email that delivers your items is always sent.",
1585
+ paymentIssue: "Payment issues",
1586
+ paymentIssueNote: "An email when a payment needs your attention."
1474
1587
  },
1475
1588
  walletTopup: {
1476
1589
  title: "Add store credit",
@@ -1702,7 +1815,10 @@ var es_default = {
1702
1815
  warrantyClaimSending: "Enviando\u2026",
1703
1816
  warrantyClaimDone: "La tienda ha recibido tu reclamaci\xF3n. Te responder\xE1n por correo.",
1704
1817
  warrantyClaimFailed: "No se ha podido enviar tu reclamaci\xF3n.",
1705
- warrantyClaimTooLong: "Tu reclamaci\xF3n no puede superar los {max} caracteres."
1818
+ warrantyClaimTooLong: "Tu reclamaci\xF3n no puede superar los {max} caracteres.",
1819
+ invoicePdf: "Descargar factura (PDF)",
1820
+ invoicePdfLoading: "Preparando\u2026",
1821
+ invoicePdfFailed: "No pudimos descargar esta factura. Int\xE9ntalo de nuevo."
1706
1822
  },
1707
1823
  downloads: {
1708
1824
  loading: "Cargando tus descargas",
@@ -1859,6 +1975,16 @@ var es_default = {
1859
1975
  commissionsEmptyTitle: "A\xFAn no hay comisiones",
1860
1976
  commissionsEmptyBody: "Las ventas por referido aprobadas aparecen aqu\xED.",
1861
1977
  commissionFor: "Pedido {id}",
1978
+ ledgerWaitingPayment: "Pendiente",
1979
+ ledgerEarned: "Ganado",
1980
+ ledgerInPayoutRequest: "En solicitud de pago",
1981
+ ledgerPaidOut: "Pagado",
1982
+ ledgerStoreCredit: "Saldo de la tienda",
1983
+ ledgerSplit: "Dividido",
1984
+ ledgerVoided: "Anulado",
1985
+ paidOutPart: "{amount} pagado",
1986
+ storeCreditPart: "{amount} en saldo de la tienda",
1987
+ ofTotal: "de {total}",
1862
1988
  balanceTitle: "Movimientos del saldo",
1863
1989
  balanceEmptyTitle: "A\xFAn no hay movimientos de saldo",
1864
1990
  balanceEmptyBody: "Las conversiones y los pagos aparecen aqu\xED.",
@@ -1867,7 +1993,23 @@ var es_default = {
1867
1993
  claimAdjustment: "Ajuste",
1868
1994
  differentCurrency: "Tu saldo de referidos se lleva en {currency}.",
1869
1995
  convertedLabel: "Convertido en saldo",
1870
- paidLabel: "Pagado"
1996
+ paidLabel: "Pagado",
1997
+ newLink: "Nuevo enlace",
1998
+ linkLabel: "Nombre",
1999
+ linkLabelPlaceholder: "Campa\xF1a de YouTube",
2000
+ linkCode: "C\xF3digo",
2001
+ linkCommission: "Comisi\xF3n que solicitas (%)",
2002
+ linkDiscount: "Descuento para compradores que solicitas (%)",
2003
+ linkRatePlaceholder: "Valor de la tienda",
2004
+ linkRatesHint: "Deja ambos porcentajes vac\xEDos para usar los de la tienda. Un enlace que pide porcentajes propios espera la aprobaci\xF3n de la tienda.",
2005
+ createLink: "Crear enlace",
2006
+ creatingLink: "Creando\u2026",
2007
+ linkCreated: "Tu enlace est\xE1 listo para compartir.",
2008
+ linkRequested: "Tu enlace espera la aprobaci\xF3n de la tienda.",
2009
+ linkFailed: "No pudimos crear tu enlace. Int\xE9ntalo de nuevo.",
2010
+ linkRequired: "Escribe un nombre y un c\xF3digo para tu enlace.",
2011
+ linkRateInvalid: "Escribe cada porcentaje como un valor entre 0 y 100 con dos decimales como m\xE1ximo, por ejemplo 12,5.",
2012
+ linksEmptyCanCreate: "Crea uno con tu propio c\xF3digo."
1871
2013
  },
1872
2014
  support: {
1873
2015
  loading: "Cargando tus tickets",
@@ -1936,7 +2078,15 @@ var es_default = {
1936
2078
  signOutOthersDone: "Se cerr\xF3 la sesi\xF3n en los dem\xE1s dispositivos.",
1937
2079
  devicesFailed: "No se pudieron cargar tus dispositivos.",
1938
2080
  signOutDeviceFailed: "No se pudo cerrar la sesi\xF3n de ese dispositivo. Int\xE9ntalo de nuevo.",
1939
- deviceOn: "{browser} en {os}"
2081
+ deviceOn: "{browser} en {os}",
2082
+ orderEmailsTitle: "Correos de pedidos",
2083
+ orderEmailsLoading: "Cargando tus correos de pedidos",
2084
+ orderCreated: "Confirmaciones de pedido",
2085
+ orderCreatedNote: "Un correo cuando haces un pedido.",
2086
+ orderCompleted: "Recibos de pedido",
2087
+ orderCompletedNote: "Recibos y avisos de finalizaci\xF3n. El correo que entrega tus art\xEDculos se env\xEDa siempre.",
2088
+ paymentIssue: "Problemas de pago",
2089
+ paymentIssueNote: "Un correo cuando un pago requiere tu atenci\xF3n."
1940
2090
  },
1941
2091
  walletTopup: {
1942
2092
  title: "A\xF1adir saldo",
@@ -2168,7 +2318,10 @@ var fi_default = {
2168
2318
  warrantyClaimSending: "L\xE4hetet\xE4\xE4n\u2026",
2169
2319
  warrantyClaimDone: "Kauppa sai vaatimuksesi. He vastaavat s\xE4hk\xF6postitse.",
2170
2320
  warrantyClaimFailed: "Vaatimustasi ei voitu l\xE4hett\xE4\xE4.",
2171
- warrantyClaimTooLong: "Vaatimuksessa saa olla enint\xE4\xE4n {max} merkki\xE4."
2321
+ warrantyClaimTooLong: "Vaatimuksessa saa olla enint\xE4\xE4n {max} merkki\xE4.",
2322
+ invoicePdf: "Lataa lasku (PDF)",
2323
+ invoicePdfLoading: "Valmistellaan\u2026",
2324
+ invoicePdfFailed: "Laskua ei voitu ladata. Yrit\xE4 uudelleen."
2172
2325
  },
2173
2326
  downloads: {
2174
2327
  loading: "Ladataan latauksiasi",
@@ -2325,6 +2478,16 @@ var fi_default = {
2325
2478
  commissionsEmptyTitle: "Ei viel\xE4 provisioita",
2326
2479
  commissionsEmptyBody: "Hyv\xE4ksytyt suosittelumyynnit n\xE4kyv\xE4t t\xE4\xE4ll\xE4.",
2327
2480
  commissionFor: "Tilaus {id}",
2481
+ ledgerWaitingPayment: "Odottaa",
2482
+ ledgerEarned: "Ansaittu",
2483
+ ledgerInPayoutRequest: "Maksupyynn\xF6ss\xE4",
2484
+ ledgerPaidOut: "Maksettu ulos",
2485
+ ledgerStoreCredit: "Kaupan saldo",
2486
+ ledgerSplit: "Jaettu",
2487
+ ledgerVoided: "Mit\xE4t\xF6ity",
2488
+ paidOutPart: "{amount} maksettu ulos",
2489
+ storeCreditPart: "{amount} kaupan saldoa",
2490
+ ofTotal: "yhteens\xE4 {total}",
2328
2491
  balanceTitle: "Saldotapahtumat",
2329
2492
  balanceEmptyTitle: "Ei viel\xE4 saldotapahtumia",
2330
2493
  balanceEmptyBody: "Muunnot ja maksut n\xE4kyv\xE4t t\xE4\xE4ll\xE4.",
@@ -2333,7 +2496,23 @@ var fi_default = {
2333
2496
  claimAdjustment: "Oikaisu",
2334
2497
  differentCurrency: "Suosittelusaldosi s\xE4ilytet\xE4\xE4n valuutassa {currency}.",
2335
2498
  convertedLabel: "Siirretty kaupan saldoon",
2336
- paidLabel: "Maksettu ulos"
2499
+ paidLabel: "Maksettu ulos",
2500
+ newLink: "Uusi linkki",
2501
+ linkLabel: "Nimi",
2502
+ linkLabelPlaceholder: "YouTube-kampanja",
2503
+ linkCode: "Koodi",
2504
+ linkCommission: "Pyydetty komissio (%)",
2505
+ linkDiscount: "Pyydetty ostajan alennus (%)",
2506
+ linkRatePlaceholder: "Kaupan oletus",
2507
+ linkRatesHint: "J\xE4t\xE4 molemmat prosentit tyhjiksi, niin k\xE4ytet\xE4\xE4n kaupan omia. Omia prosentteja pyyt\xE4v\xE4 linkki odottaa kaupan hyv\xE4ksynt\xE4\xE4.",
2508
+ createLink: "Luo linkki",
2509
+ creatingLink: "Luodaan\u2026",
2510
+ linkCreated: "Linkkisi on valmis jaettavaksi.",
2511
+ linkRequested: "Linkkisi odottaa kaupan hyv\xE4ksynt\xE4\xE4.",
2512
+ linkFailed: "Linkki\xE4si ei voitu luoda. Yrit\xE4 uudelleen.",
2513
+ linkRequired: "Anna linkille nimi ja koodi.",
2514
+ linkRateInvalid: "Anna kumpikin prosentti v\xE4lilt\xE4 0\u2013100 enint\xE4\xE4n kahdella desimaalilla, esimerkiksi 12,5.",
2515
+ linksEmptyCanCreate: "Luo linkki omalla koodillasi."
2337
2516
  },
2338
2517
  support: {
2339
2518
  loading: "Ladataan tukipyynt\xF6j\xE4si",
@@ -2402,7 +2581,15 @@ var fi_default = {
2402
2581
  signOutOthersDone: "Kaikki muut laitteet kirjattiin ulos.",
2403
2582
  devicesFailed: "Laitteitasi ei voitu ladata.",
2404
2583
  signOutDeviceFailed: "T\xE4t\xE4 laitetta ei voitu kirjata ulos. Yrit\xE4 uudelleen.",
2405
- deviceOn: "{browser} j\xE4rjestelm\xE4ss\xE4 {os}"
2584
+ deviceOn: "{browser} j\xE4rjestelm\xE4ss\xE4 {os}",
2585
+ orderEmailsTitle: "Tilausviestit",
2586
+ orderEmailsLoading: "Ladataan tilausviestien asetuksia",
2587
+ orderCreated: "Tilausvahvistukset",
2588
+ orderCreatedNote: "S\xE4hk\xF6posti, kun teet tilauksen.",
2589
+ orderCompleted: "Tilauskuitit",
2590
+ orderCompletedNote: "Kuitit ja valmistumisilmoitukset. Tuotteesi toimittava s\xE4hk\xF6posti l\xE4hetet\xE4\xE4n aina.",
2591
+ paymentIssue: "Maksuongelmat",
2592
+ paymentIssueNote: "S\xE4hk\xF6posti, kun maksu vaatii huomiotasi."
2406
2593
  },
2407
2594
  walletTopup: {
2408
2595
  title: "Lis\xE4\xE4 kauppasaldoa",
@@ -2634,7 +2821,10 @@ var fr_default = {
2634
2821
  warrantyClaimSending: "Envoi en cours\u2026",
2635
2822
  warrantyClaimDone: "La boutique a bien re\xE7u votre demande. Elle r\xE9pond par e-mail.",
2636
2823
  warrantyClaimFailed: "Votre demande n'a pas pu \xEAtre envoy\xE9e.",
2637
- warrantyClaimTooLong: "Votre demande ne peut pas d\xE9passer {max} caract\xE8res."
2824
+ warrantyClaimTooLong: "Votre demande ne peut pas d\xE9passer {max} caract\xE8res.",
2825
+ invoicePdf: "T\xE9l\xE9charger la facture (PDF)",
2826
+ invoicePdfLoading: "Pr\xE9paration\u2026",
2827
+ invoicePdfFailed: "Nous n'avons pas pu t\xE9l\xE9charger cette facture. Veuillez r\xE9essayer."
2638
2828
  },
2639
2829
  downloads: {
2640
2830
  loading: "Chargement de vos t\xE9l\xE9chargements",
@@ -2791,6 +2981,16 @@ var fr_default = {
2791
2981
  commissionsEmptyTitle: "Aucune commission pour l'instant",
2792
2982
  commissionsEmptyBody: "Les ventes parrain\xE9es valid\xE9es apparaissent ici.",
2793
2983
  commissionFor: "Commande {id}",
2984
+ ledgerWaitingPayment: "En attente",
2985
+ ledgerEarned: "Gagn\xE9",
2986
+ ledgerInPayoutRequest: "En demande de versement",
2987
+ ledgerPaidOut: "Vers\xE9",
2988
+ ledgerStoreCredit: "Avoir en boutique",
2989
+ ledgerSplit: "R\xE9parti",
2990
+ ledgerVoided: "Invalid\xE9",
2991
+ paidOutPart: "{amount} vers\xE9",
2992
+ storeCreditPart: "{amount} en avoir",
2993
+ ofTotal: "sur {total}",
2794
2994
  balanceTitle: "Mouvements du solde",
2795
2995
  balanceEmptyTitle: "Aucun mouvement de solde",
2796
2996
  balanceEmptyBody: "Les conversions et les versements apparaissent ici.",
@@ -2799,7 +2999,23 @@ var fr_default = {
2799
2999
  claimAdjustment: "Ajustement",
2800
3000
  differentCurrency: "Votre solde de parrainage est tenu en {currency}.",
2801
3001
  convertedLabel: "Converti en avoir",
2802
- paidLabel: "Vers\xE9"
3002
+ paidLabel: "Vers\xE9",
3003
+ newLink: "Nouveau lien",
3004
+ linkLabel: "Nom",
3005
+ linkLabelPlaceholder: "Campagne YouTube",
3006
+ linkCode: "Code",
3007
+ linkCommission: "Commission demand\xE9e (%)",
3008
+ linkDiscount: "Remise acheteur demand\xE9e (%)",
3009
+ linkRatePlaceholder: "Taux de la boutique",
3010
+ linkRatesHint: "Laissez les deux taux vides pour utiliser ceux de la boutique. Un lien qui demande ses propres taux attend la validation de la boutique.",
3011
+ createLink: "Cr\xE9er le lien",
3012
+ creatingLink: "Cr\xE9ation\u2026",
3013
+ linkCreated: "Votre lien est pr\xEAt \xE0 \xEAtre partag\xE9.",
3014
+ linkRequested: "Votre lien attend la validation de la boutique.",
3015
+ linkFailed: "Nous n'avons pas pu cr\xE9er votre lien. Veuillez r\xE9essayer.",
3016
+ linkRequired: "Saisissez un nom et un code pour votre lien.",
3017
+ linkRateInvalid: "Saisissez chaque taux sous forme de pourcentage entre 0 et 100, avec deux d\xE9cimales au plus, par exemple 12,5.",
3018
+ linksEmptyCanCreate: "Cr\xE9ez-en un avec votre propre code."
2803
3019
  },
2804
3020
  support: {
2805
3021
  loading: "Chargement de vos demandes",
@@ -2868,7 +3084,15 @@ var fr_default = {
2868
3084
  signOutOthersDone: "Tous les autres appareils ont \xE9t\xE9 d\xE9connect\xE9s.",
2869
3085
  devicesFailed: "Vos appareils n'ont pas pu \xEAtre charg\xE9s.",
2870
3086
  signOutDeviceFailed: "Cet appareil n'a pas pu \xEAtre d\xE9connect\xE9. R\xE9essayez.",
2871
- deviceOn: "{browser} sur {os}"
3087
+ deviceOn: "{browser} sur {os}",
3088
+ orderEmailsTitle: "E-mails de commande",
3089
+ orderEmailsLoading: "Chargement de vos e-mails de commande",
3090
+ orderCreated: "Confirmations de commande",
3091
+ orderCreatedNote: "Un e-mail lorsque vous passez une commande.",
3092
+ orderCompleted: "Re\xE7us de commande",
3093
+ orderCompletedNote: "Re\xE7us et avis de finalisation. L'e-mail qui livre vos articles est toujours envoy\xE9.",
3094
+ paymentIssue: "Probl\xE8mes de paiement",
3095
+ paymentIssueNote: "Un e-mail lorsqu'un paiement n\xE9cessite votre attention."
2872
3096
  },
2873
3097
  walletTopup: {
2874
3098
  title: "Ajouter du cr\xE9dit",
@@ -3100,7 +3324,10 @@ var hi_default = {
3100
3324
  warrantyClaimSending: "\u092D\u0947\u091C\u093E \u091C\u093E \u0930\u0939\u093E \u0939\u0948\u2026",
3101
3325
  warrantyClaimDone: "\u0938\u094D\u091F\u094B\u0930 \u0915\u094B \u0906\u092A\u0915\u093E \u0926\u093E\u0935\u093E \u092E\u093F\u0932 \u0917\u092F\u093E\u0964 \u091C\u0935\u093E\u092C \u0908\u092E\u0947\u0932 \u0938\u0947 \u0906\u090F\u0917\u093E\u0964",
3102
3326
  warrantyClaimFailed: "\u0906\u092A\u0915\u093E \u0926\u093E\u0935\u093E \u0928\u0939\u0940\u0902 \u092D\u0947\u091C\u093E \u091C\u093E \u0938\u0915\u093E\u0964",
3103
- warrantyClaimTooLong: "\u0906\u092A\u0915\u093E \u0926\u093E\u0935\u093E {max} \u0935\u0930\u094D\u0923\u094B\u0902 \u0938\u0947 \u0905\u0927\u093F\u0915 \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u0924\u093E\u0964"
3327
+ warrantyClaimTooLong: "\u0906\u092A\u0915\u093E \u0926\u093E\u0935\u093E {max} \u0935\u0930\u094D\u0923\u094B\u0902 \u0938\u0947 \u0905\u0927\u093F\u0915 \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u0924\u093E\u0964",
3328
+ invoicePdf: "\u0907\u0928\u0935\u0949\u0907\u0938 \u0921\u093E\u0909\u0928\u0932\u094B\u0921 \u0915\u0930\u0947\u0902 (PDF)",
3329
+ invoicePdfLoading: "\u0924\u0948\u092F\u093E\u0930 \u0915\u093F\u092F\u093E \u091C\u093E \u0930\u0939\u093E \u0939\u0948\u2026",
3330
+ invoicePdfFailed: "\u092F\u0939 \u0907\u0928\u0935\u0949\u0907\u0938 \u0921\u093E\u0909\u0928\u0932\u094B\u0921 \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u093E\u0964 \u0915\u0943\u092A\u092F\u093E \u092B\u093F\u0930 \u0915\u094B\u0936\u093F\u0936 \u0915\u0930\u0947\u0902\u0964"
3104
3331
  },
3105
3332
  downloads: {
3106
3333
  loading: "\u0906\u092A\u0915\u0947 \u0921\u093E\u0909\u0928\u0932\u094B\u0921 \u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u0947 \u0939\u0948\u0902",
@@ -3257,6 +3484,16 @@ var hi_default = {
3257
3484
  commissionsEmptyTitle: "\u0905\u092D\u0940 \u0915\u094B\u0908 \u0915\u092E\u0940\u0936\u0928 \u0928\u0939\u0940\u0902",
3258
3485
  commissionsEmptyBody: "\u092E\u0902\u091C\u093C\u0942\u0930 \u0939\u0941\u0908 \u0930\u0947\u092B\u093C\u0930\u0932 \u092C\u093F\u0915\u094D\u0930\u0940 \u092F\u0939\u093E\u0901 \u0926\u093F\u0916\u0947\u0917\u0940\u0964",
3259
3486
  commissionFor: "\u0911\u0930\u094D\u0921\u0930 {id}",
3487
+ ledgerWaitingPayment: "\u0932\u0902\u092C\u093F\u0924",
3488
+ ledgerEarned: "\u0905\u0930\u094D\u091C\u093F\u0924",
3489
+ ledgerInPayoutRequest: "\u092D\u0941\u0917\u0924\u093E\u0928 \u0905\u0928\u0941\u0930\u094B\u0927 \u092E\u0947\u0902",
3490
+ ledgerPaidOut: "\u092D\u0941\u0917\u0924\u093E\u0928 \u0939\u094B \u0917\u092F\u093E",
3491
+ ledgerStoreCredit: "\u0938\u094D\u091F\u094B\u0930 \u0915\u094D\u0930\u0947\u0921\u093F\u091F",
3492
+ ledgerSplit: "\u0935\u093F\u092D\u093E\u091C\u093F\u0924",
3493
+ ledgerVoided: "\u0905\u092E\u093E\u0928\u094D\u092F \u0915\u093F\u092F\u093E \u0917\u092F\u093E",
3494
+ paidOutPart: "{amount} \u0915\u093E \u092D\u0941\u0917\u0924\u093E\u0928 \u0939\u0941\u0906",
3495
+ storeCreditPart: "{amount} \u0938\u094D\u091F\u094B\u0930 \u0915\u094D\u0930\u0947\u0921\u093F\u091F",
3496
+ ofTotal: "{total} \u092E\u0947\u0902 \u0938\u0947",
3260
3497
  balanceTitle: "\u092C\u0948\u0932\u0947\u0902\u0938 \u0917\u0924\u093F\u0935\u093F\u0927\u093F",
3261
3498
  balanceEmptyTitle: "\u0905\u092D\u0940 \u0915\u094B\u0908 \u092C\u0948\u0932\u0947\u0902\u0938 \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0928\u0939\u0940\u0902",
3262
3499
  balanceEmptyBody: "\u0930\u0942\u092A\u093E\u0902\u0924\u0930\u0923 \u0914\u0930 \u092D\u0941\u0917\u0924\u093E\u0928 \u092F\u0939\u093E\u0901 \u0926\u093F\u0916\u0947\u0902\u0917\u0947\u0964",
@@ -3265,7 +3502,23 @@ var hi_default = {
3265
3502
  claimAdjustment: "\u0938\u092E\u093E\u092F\u094B\u091C\u0928",
3266
3503
  differentCurrency: "\u0906\u092A\u0915\u093E \u0930\u0947\u092B\u093C\u0930\u0932 \u092C\u0948\u0932\u0947\u0902\u0938 {currency} \u092E\u0947\u0902 \u0930\u0916\u093E \u091C\u093E\u0924\u093E \u0939\u0948\u0964",
3267
3504
  convertedLabel: "\u0938\u094D\u091F\u094B\u0930 \u0915\u094D\u0930\u0947\u0921\u093F\u091F \u092E\u0947\u0902 \u092C\u0926\u0932\u093E",
3268
- paidLabel: "\u092D\u0941\u0917\u0924\u093E\u0928 \u0939\u094B \u0917\u092F\u093E"
3505
+ paidLabel: "\u092D\u0941\u0917\u0924\u093E\u0928 \u0939\u094B \u0917\u092F\u093E",
3506
+ newLink: "\u0928\u092F\u093E \u0932\u093F\u0902\u0915",
3507
+ linkLabel: "\u0928\u093E\u092E",
3508
+ linkLabelPlaceholder: "YouTube \u0905\u092D\u093F\u092F\u093E\u0928",
3509
+ linkCode: "\u0915\u094B\u0921",
3510
+ linkCommission: "\u092E\u093E\u0901\u0917\u093E \u0917\u092F\u093E \u0915\u092E\u0940\u0936\u0928 (%)",
3511
+ linkDiscount: "\u092E\u093E\u0901\u0917\u0940 \u0917\u0908 \u0916\u0930\u0940\u0926\u093E\u0930 \u091B\u0942\u091F (%)",
3512
+ linkRatePlaceholder: "\u0938\u094D\u091F\u094B\u0930 \u0915\u093E \u0921\u093F\u092B\u093C\u0949\u0932\u094D\u091F",
3513
+ linkRatesHint: "\u0938\u094D\u091F\u094B\u0930 \u0915\u0940 \u0926\u0930\u0947\u0902 \u0907\u0938\u094D\u0924\u0947\u092E\u093E\u0932 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0926\u094B\u0928\u094B\u0902 \u0926\u0930\u0947\u0902 \u0916\u093E\u0932\u0940 \u091B\u094B\u0921\u093C\u0947\u0902\u0964 \u0905\u092A\u0928\u0940 \u0926\u0930\u0947\u0902 \u092E\u093E\u0901\u0917\u0928\u0947 \u0935\u093E\u0932\u0947 \u0932\u093F\u0902\u0915 \u0915\u094B \u0938\u094D\u091F\u094B\u0930 \u0915\u0940 \u092E\u0902\u091C\u093C\u0942\u0930\u0940 \u0915\u093E \u0907\u0902\u0924\u091C\u093C\u093E\u0930 \u0915\u0930\u0928\u093E \u0939\u094B\u0924\u093E \u0939\u0948\u0964",
3514
+ createLink: "\u0932\u093F\u0902\u0915 \u092C\u0928\u093E\u090F\u0901",
3515
+ creatingLink: "\u092C\u0928\u093E\u092F\u093E \u091C\u093E \u0930\u0939\u093E \u0939\u0948\u2026",
3516
+ linkCreated: "\u0906\u092A\u0915\u093E \u0932\u093F\u0902\u0915 \u0936\u0947\u092F\u0930 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0924\u0948\u092F\u093E\u0930 \u0939\u0948\u0964",
3517
+ linkRequested: "\u0906\u092A\u0915\u0947 \u0932\u093F\u0902\u0915 \u0915\u094B \u0938\u094D\u091F\u094B\u0930 \u0915\u0940 \u092E\u0902\u091C\u093C\u0942\u0930\u0940 \u0915\u093E \u0907\u0902\u0924\u091C\u093C\u093E\u0930 \u0939\u0948\u0964",
3518
+ linkFailed: "\u0906\u092A\u0915\u093E \u0932\u093F\u0902\u0915 \u092C\u0928\u093E\u092F\u093E \u0928\u0939\u0940\u0902 \u091C\u093E \u0938\u0915\u093E\u0964 \u0915\u0943\u092A\u092F\u093E \u092B\u093F\u0930 \u0915\u094B\u0936\u093F\u0936 \u0915\u0930\u0947\u0902\u0964",
3519
+ linkRequired: "\u0905\u092A\u0928\u0947 \u0932\u093F\u0902\u0915 \u0915\u0947 \u0932\u093F\u090F \u0928\u093E\u092E \u0914\u0930 \u0915\u094B\u0921 \u0921\u093E\u0932\u0947\u0902\u0964",
3520
+ linkRateInvalid: "\u0939\u0930 \u0926\u0930 0 \u0938\u0947 100 \u0915\u0947 \u092C\u0940\u091A \u092A\u094D\u0930\u0924\u093F\u0936\u0924 \u092E\u0947\u0902 \u0921\u093E\u0932\u0947\u0902, \u0926\u0936\u092E\u0932\u0935 \u0915\u0947 \u092C\u093E\u0926 \u0905\u0927\u093F\u0915\u0924\u092E \u0926\u094B \u0905\u0902\u0915, \u091C\u0948\u0938\u0947 12.5\u0964",
3521
+ linksEmptyCanCreate: "\u0905\u092A\u0928\u0947 \u0915\u094B\u0921 \u0915\u0947 \u0938\u093E\u0925 \u090F\u0915 \u092C\u0928\u093E\u090F\u0901\u0964"
3269
3522
  },
3270
3523
  support: {
3271
3524
  loading: "\u0906\u092A\u0915\u0947 \u091F\u093F\u0915\u091F \u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u0947 \u0939\u0948\u0902",
@@ -3334,7 +3587,15 @@ var hi_default = {
3334
3587
  signOutOthersDone: "\u092C\u093E\u0915\u0940 \u0938\u092D\u0940 \u0921\u093F\u0935\u093E\u0907\u0938 \u0938\u0947 \u0938\u093E\u0907\u0928 \u0906\u0909\u091F \u0939\u094B \u0917\u092F\u093E\u0964",
3335
3588
  devicesFailed: "\u0906\u092A\u0915\u0947 \u0921\u093F\u0935\u093E\u0907\u0938 \u0932\u094B\u0921 \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u0947\u0964",
3336
3589
  signOutDeviceFailed: "\u0909\u0938 \u0921\u093F\u0935\u093E\u0907\u0938 \u0938\u0947 \u0938\u093E\u0907\u0928 \u0906\u0909\u091F \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u093E\u0964 \u0915\u0943\u092A\u092F\u093E \u092B\u093F\u0930 \u0915\u094B\u0936\u093F\u0936 \u0915\u0930\u0947\u0902\u0964",
3337
- deviceOn: "{os} \u092A\u0930 {browser}"
3590
+ deviceOn: "{os} \u092A\u0930 {browser}",
3591
+ orderEmailsTitle: "\u0911\u0930\u094D\u0921\u0930 \u0908\u092E\u0947\u0932",
3592
+ orderEmailsLoading: "\u0906\u092A\u0915\u0940 \u0911\u0930\u094D\u0921\u0930 \u0908\u092E\u0947\u0932 \u0938\u0947\u091F\u093F\u0902\u0917 \u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u0940 \u0939\u0948\u0902",
3593
+ orderCreated: "\u0911\u0930\u094D\u0921\u0930 \u0915\u0940 \u092A\u0941\u0937\u094D\u091F\u093F",
3594
+ orderCreatedNote: "\u0911\u0930\u094D\u0921\u0930 \u0926\u0947\u0928\u0947 \u092A\u0930 \u090F\u0915 \u0908\u092E\u0947\u0932\u0964",
3595
+ orderCompleted: "\u0911\u0930\u094D\u0921\u0930 \u0930\u0938\u0940\u0926\u0947\u0902",
3596
+ orderCompletedNote: "\u0930\u0938\u0940\u0926\u0947\u0902 \u0914\u0930 \u0911\u0930\u094D\u0921\u0930 \u092A\u0942\u0930\u093E \u0939\u094B\u0928\u0947 \u0915\u0940 \u0938\u0942\u091A\u0928\u093E\u090F\u0901\u0964 \u0906\u092A\u0915\u0947 \u0906\u0907\u091F\u092E \u092A\u0939\u0941\u0901\u091A\u093E\u0928\u0947 \u0935\u093E\u0932\u093E \u0908\u092E\u0947\u0932 \u0939\u092E\u0947\u0936\u093E \u092D\u0947\u091C\u093E \u091C\u093E\u0924\u093E \u0939\u0948\u0964",
3597
+ paymentIssue: "\u092D\u0941\u0917\u0924\u093E\u0928 \u0915\u0940 \u0938\u092E\u0938\u094D\u092F\u093E\u090F\u0901",
3598
+ paymentIssueNote: "\u091C\u092C \u0915\u093F\u0938\u0940 \u092D\u0941\u0917\u0924\u093E\u0928 \u092A\u0930 \u0906\u092A\u0915\u093E \u0927\u094D\u092F\u093E\u0928 \u091A\u093E\u0939\u093F\u090F, \u0924\u092C \u090F\u0915 \u0908\u092E\u0947\u0932\u0964"
3338
3599
  },
3339
3600
  walletTopup: {
3340
3601
  title: "\u0938\u094D\u091F\u094B\u0930 \u0915\u094D\u0930\u0947\u0921\u093F\u091F \u091C\u094B\u0921\u093C\u0947\u0902",
@@ -3566,7 +3827,10 @@ var it_default = {
3566
3827
  warrantyClaimSending: "Invio in corso\u2026",
3567
3828
  warrantyClaimDone: "Il negozio ha ricevuto la tua richiesta. Ti rispondono via e-mail.",
3568
3829
  warrantyClaimFailed: "Non \xE8 stato possibile inviare la richiesta.",
3569
- warrantyClaimTooLong: "La richiesta non pu\xF2 superare i {max} caratteri."
3830
+ warrantyClaimTooLong: "La richiesta non pu\xF2 superare i {max} caratteri.",
3831
+ invoicePdf: "Scarica fattura (PDF)",
3832
+ invoicePdfLoading: "Preparazione\u2026",
3833
+ invoicePdfFailed: "Non siamo riusciti a scaricare questa fattura. Riprova."
3570
3834
  },
3571
3835
  downloads: {
3572
3836
  loading: "Caricamento dei tuoi download",
@@ -3723,6 +3987,16 @@ var it_default = {
3723
3987
  commissionsEmptyTitle: "Ancora nessuna commissione",
3724
3988
  commissionsEmptyBody: "Le vendite referral approvate compaiono qui.",
3725
3989
  commissionFor: "Ordine {id}",
3990
+ ledgerWaitingPayment: "In sospeso",
3991
+ ledgerEarned: "Maturato",
3992
+ ledgerInPayoutRequest: "In richiesta di pagamento",
3993
+ ledgerPaidOut: "Pagato",
3994
+ ledgerStoreCredit: "Credito del negozio",
3995
+ ledgerSplit: "Suddiviso",
3996
+ ledgerVoided: "Annullato",
3997
+ paidOutPart: "{amount} pagato",
3998
+ storeCreditPart: "{amount} in credito del negozio",
3999
+ ofTotal: "di {total}",
3726
4000
  balanceTitle: "Movimenti del saldo",
3727
4001
  balanceEmptyTitle: "Ancora nessun movimento",
3728
4002
  balanceEmptyBody: "Le conversioni e i pagamenti compaiono qui.",
@@ -3731,7 +4005,23 @@ var it_default = {
3731
4005
  claimAdjustment: "Rettifica",
3732
4006
  differentCurrency: "Il tuo saldo referral \xE8 in {currency}.",
3733
4007
  convertedLabel: "Convertito in credito",
3734
- paidLabel: "Pagato"
4008
+ paidLabel: "Pagato",
4009
+ newLink: "Nuovo link",
4010
+ linkLabel: "Nome",
4011
+ linkLabelPlaceholder: "Campagna YouTube",
4012
+ linkCode: "Codice",
4013
+ linkCommission: "Commissione richiesta (%)",
4014
+ linkDiscount: "Sconto acquirente richiesto (%)",
4015
+ linkRatePlaceholder: "Valore del negozio",
4016
+ linkRatesHint: "Lascia vuote entrambe le percentuali per usare quelle del negozio. Un link che chiede percentuali proprie attende l'approvazione del negozio.",
4017
+ createLink: "Crea link",
4018
+ creatingLink: "Creazione\u2026",
4019
+ linkCreated: "Il tuo link \xE8 pronto da condividere.",
4020
+ linkRequested: "Il tuo link attende l'approvazione del negozio.",
4021
+ linkFailed: "Non siamo riusciti a creare il tuo link. Riprova.",
4022
+ linkRequired: "Inserisci un nome e un codice per il tuo link.",
4023
+ linkRateInvalid: "Inserisci ogni percentuale come valore tra 0 e 100 con al massimo due decimali, ad esempio 12,5.",
4024
+ linksEmptyCanCreate: "Creane uno con un tuo codice."
3735
4025
  },
3736
4026
  support: {
3737
4027
  loading: "Caricamento dei tuoi ticket",
@@ -3800,7 +4090,15 @@ var it_default = {
3800
4090
  signOutOthersDone: "Tutti gli altri dispositivi sono stati disconnessi.",
3801
4091
  devicesFailed: "Non \xE8 stato possibile caricare i tuoi dispositivi.",
3802
4092
  signOutDeviceFailed: "Non \xE8 stato possibile disconnettere questo dispositivo. Riprova.",
3803
- deviceOn: "{browser} su {os}"
4093
+ deviceOn: "{browser} su {os}",
4094
+ orderEmailsTitle: "Email degli ordini",
4095
+ orderEmailsLoading: "Caricamento delle email degli ordini",
4096
+ orderCreated: "Conferme d'ordine",
4097
+ orderCreatedNote: "Un'email quando effettui un ordine.",
4098
+ orderCompleted: "Ricevute d'ordine",
4099
+ orderCompletedNote: "Ricevute e avvisi di completamento. L'email che consegna i tuoi articoli viene sempre inviata.",
4100
+ paymentIssue: "Problemi di pagamento",
4101
+ paymentIssueNote: "Un'email quando un pagamento richiede la tua attenzione."
3804
4102
  },
3805
4103
  walletTopup: {
3806
4104
  title: "Aggiungi credito",
@@ -4032,7 +4330,10 @@ var lt_default = {
4032
4330
  warrantyClaimSending: "Siun\u010Diama\u2026",
4033
4331
  warrantyClaimDone: "Parduotuv\u0117 gavo j\u016Bs\u0173 pra\u0161ym\u0105. Atsakymas ateis el. pa\u0161tu.",
4034
4332
  warrantyClaimFailed: "J\u016Bs\u0173 pra\u0161ymo i\u0161si\u0173sti nepavyko.",
4035
- warrantyClaimTooLong: "Pra\u0161ymas negali vir\u0161yti {max} simboli\u0173."
4333
+ warrantyClaimTooLong: "Pra\u0161ymas negali vir\u0161yti {max} simboli\u0173.",
4334
+ invoicePdf: "Atsisi\u0173sti s\u0105skait\u0105 (PDF)",
4335
+ invoicePdfLoading: "Ruo\u0161iama\u2026",
4336
+ invoicePdfFailed: "Nepavyko atsisi\u0173sti \u0161ios s\u0105skaitos. Bandykite dar kart\u0105."
4036
4337
  },
4037
4338
  downloads: {
4038
4339
  loading: "\u012Ekeliami j\u016Bs\u0173 atsisiuntimai",
@@ -4189,6 +4490,16 @@ var lt_default = {
4189
4490
  commissionsEmptyTitle: "Komisini\u0173 dar n\u0117ra",
4190
4491
  commissionsEmptyBody: "Patvirtinti rekomenduoti pardavimai atsiras \u010Dia.",
4191
4492
  commissionFor: "U\u017Esakymas {id}",
4493
+ ledgerWaitingPayment: "Laukiama",
4494
+ ledgerEarned: "U\u017Edirbta",
4495
+ ledgerInPayoutRequest: "I\u0161mok\u0117jimo pra\u0161yme",
4496
+ ledgerPaidOut: "I\u0161mok\u0117ta",
4497
+ ledgerStoreCredit: "Parduotuv\u0117s kreditas",
4498
+ ledgerSplit: "Padalyta",
4499
+ ledgerVoided: "Anuliuota",
4500
+ paidOutPart: "I\u0161mok\u0117ta {amount}",
4501
+ storeCreditPart: "{amount} parduotuv\u0117s kreditu",
4502
+ ofTotal: "i\u0161 {total}",
4192
4503
  balanceTitle: "Liku\u010Dio jud\u0117jimas",
4193
4504
  balanceEmptyTitle: "Liku\u010Dio jud\u0117jimo dar n\u0117ra",
4194
4505
  balanceEmptyBody: "Konvertavimai ir i\u0161mokos atsiras \u010Dia.",
@@ -4197,7 +4508,23 @@ var lt_default = {
4197
4508
  claimAdjustment: "Koregavimas",
4198
4509
  differentCurrency: "J\u016Bs\u0173 rekomendacij\u0173 likutis laikomas {currency} valiuta.",
4199
4510
  convertedLabel: "Perkelta \u012F parduotuv\u0117s kredit\u0105",
4200
- paidLabel: "I\u0161mok\u0117ta"
4511
+ paidLabel: "I\u0161mok\u0117ta",
4512
+ newLink: "Nauja nuoroda",
4513
+ linkLabel: "Pavadinimas",
4514
+ linkLabelPlaceholder: "\u201EYouTube\u201C kampanija",
4515
+ linkCode: "Kodas",
4516
+ linkCommission: "Pageidaujamas komisinis (%)",
4517
+ linkDiscount: "Pageidaujama nuolaida pirk\u0117jams (%)",
4518
+ linkRatePlaceholder: "Parduotuv\u0117s numatytasis",
4519
+ linkRatesHint: "Palikite abu tarifus tu\u0161\u010Dius, kad b\u016Bt\u0173 naudojami parduotuv\u0117s tarifai. Nuoroda su savais tarifais laukia parduotuv\u0117s patvirtinimo.",
4520
+ createLink: "Sukurti nuorod\u0105",
4521
+ creatingLink: "Kuriama\u2026",
4522
+ linkCreated: "J\u016Bs\u0173 nuoroda paruo\u0161ta dalytis.",
4523
+ linkRequested: "J\u016Bs\u0173 nuoroda laukia parduotuv\u0117s patvirtinimo.",
4524
+ linkFailed: "Nepavyko sukurti j\u016Bs\u0173 nuorodos. Bandykite dar kart\u0105.",
4525
+ linkRequired: "\u012Eveskite nuorodos pavadinim\u0105 ir kod\u0105.",
4526
+ linkRateInvalid: "Kiekvien\u0105 tarif\u0105 \u012Fveskite procentais nuo 0 iki 100, ne daugiau kaip dviem skaitmenimis po kablelio, pavyzd\u017Eiui, 12,5.",
4527
+ linksEmptyCanCreate: "Sukurkite nuorod\u0105 su savo kodu."
4201
4528
  },
4202
4529
  support: {
4203
4530
  loading: "\u012Ekeliamos j\u016Bs\u0173 u\u017Eklausos",
@@ -4266,7 +4593,15 @@ var lt_default = {
4266
4593
  signOutOthersDone: "Visi kiti \u012Frenginiai atjungti.",
4267
4594
  devicesFailed: "Nepavyko \u012Fkelti j\u016Bs\u0173 \u012Frengini\u0173.",
4268
4595
  signOutDeviceFailed: "Nepavyko atjungti \u0161io \u012Frenginio. Bandykite dar kart\u0105.",
4269
- deviceOn: "{browser} sistemoje {os}"
4596
+ deviceOn: "{browser} sistemoje {os}",
4597
+ orderEmailsTitle: "U\u017Esakym\u0173 lai\u0161kai",
4598
+ orderEmailsLoading: "\u012Ekeliami u\u017Esakym\u0173 lai\u0161k\u0173 nustatymai",
4599
+ orderCreated: "U\u017Esakym\u0173 patvirtinimai",
4600
+ orderCreatedNote: "Lai\u0161kas, kai pateikiate u\u017Esakym\u0105.",
4601
+ orderCompleted: "U\u017Esakym\u0173 kvitai",
4602
+ orderCompletedNote: "Kvitai ir prane\u0161imai apie \u012Fvykdym\u0105. Lai\u0161kas, kuriuo pristatomos j\u016Bs\u0173 prek\u0117s, siun\u010Diamas visada.",
4603
+ paymentIssue: "Mok\u0117jimo problemos",
4604
+ paymentIssueNote: "Lai\u0161kas, kai mok\u0117jimui reikia j\u016Bs\u0173 d\u0117mesio."
4270
4605
  },
4271
4606
  walletTopup: {
4272
4607
  title: "Papildyti parduotuv\u0117s kredit\u0105",
@@ -4498,7 +4833,10 @@ var nl_default = {
4498
4833
  warrantyClaimSending: "Versturen\u2026",
4499
4834
  warrantyClaimDone: "De winkel heeft je melding ontvangen. Ze antwoorden per e-mail.",
4500
4835
  warrantyClaimFailed: "Je melding kon niet worden verstuurd.",
4501
- warrantyClaimTooLong: "Je melding mag maximaal {max} tekens bevatten."
4836
+ warrantyClaimTooLong: "Je melding mag maximaal {max} tekens bevatten.",
4837
+ invoicePdf: "Factuur downloaden (pdf)",
4838
+ invoicePdfLoading: "Voorbereiden\u2026",
4839
+ invoicePdfFailed: "We konden deze factuur niet downloaden. Probeer het opnieuw."
4502
4840
  },
4503
4841
  downloads: {
4504
4842
  loading: "Je downloads worden geladen",
@@ -4655,6 +4993,16 @@ var nl_default = {
4655
4993
  commissionsEmptyTitle: "Nog geen commissies",
4656
4994
  commissionsEmptyBody: "Goedgekeurde verwijsverkopen verschijnen hier.",
4657
4995
  commissionFor: "Bestelling {id}",
4996
+ ledgerWaitingPayment: "In afwachting",
4997
+ ledgerEarned: "Verdiend",
4998
+ ledgerInPayoutRequest: "In uitbetalingsverzoek",
4999
+ ledgerPaidOut: "Uitbetaald",
5000
+ ledgerStoreCredit: "Winkeltegoed",
5001
+ ledgerSplit: "Verdeeld",
5002
+ ledgerVoided: "Ongeldig gemaakt",
5003
+ paidOutPart: "{amount} uitbetaald",
5004
+ storeCreditPart: "{amount} winkeltegoed",
5005
+ ofTotal: "van {total}",
4658
5006
  balanceTitle: "Saldomutaties",
4659
5007
  balanceEmptyTitle: "Nog geen saldomutaties",
4660
5008
  balanceEmptyBody: "Omzettingen en uitbetalingen verschijnen hier.",
@@ -4663,7 +5011,23 @@ var nl_default = {
4663
5011
  claimAdjustment: "Correctie",
4664
5012
  differentCurrency: "Je verwijssaldo staat in {currency}.",
4665
5013
  convertedLabel: "Omgezet naar winkeltegoed",
4666
- paidLabel: "Uitbetaald"
5014
+ paidLabel: "Uitbetaald",
5015
+ newLink: "Nieuwe link",
5016
+ linkLabel: "Naam",
5017
+ linkLabelPlaceholder: "YouTube-campagne",
5018
+ linkCode: "Code",
5019
+ linkCommission: "Gevraagde commissie (%)",
5020
+ linkDiscount: "Gevraagde korting voor kopers (%)",
5021
+ linkRatePlaceholder: "Standaard van de winkel",
5022
+ linkRatesHint: "Laat beide percentages leeg om die van de winkel te gebruiken. Een link met eigen percentages wacht op goedkeuring van de winkel.",
5023
+ createLink: "Link maken",
5024
+ creatingLink: "Maken\u2026",
5025
+ linkCreated: "Je link is klaar om te delen.",
5026
+ linkRequested: "Je link wacht op goedkeuring van de winkel.",
5027
+ linkFailed: "We konden je link niet maken. Probeer het opnieuw.",
5028
+ linkRequired: "Vul een naam en een code voor je link in.",
5029
+ linkRateInvalid: "Vul elk percentage in tussen 0 en 100 met hoogstens twee decimalen, bijvoorbeeld 12,5.",
5030
+ linksEmptyCanCreate: "Maak er een met je eigen code."
4667
5031
  },
4668
5032
  support: {
4669
5033
  loading: "Je tickets worden geladen",
@@ -4732,7 +5096,15 @@ var nl_default = {
4732
5096
  signOutOthersDone: "Alle andere apparaten zijn uitgelogd.",
4733
5097
  devicesFailed: "Je apparaten konden niet worden geladen.",
4734
5098
  signOutDeviceFailed: "Dat apparaat kon niet worden uitgelogd. Probeer het opnieuw.",
4735
- deviceOn: "{browser} op {os}"
5099
+ deviceOn: "{browser} op {os}",
5100
+ orderEmailsTitle: "Bestelmails",
5101
+ orderEmailsLoading: "Je bestelmails laden",
5102
+ orderCreated: "Orderbevestigingen",
5103
+ orderCreatedNote: "Een e-mail wanneer je een bestelling plaatst.",
5104
+ orderCompleted: "Orderbewijzen",
5105
+ orderCompletedNote: "Bewijzen en meldingen van afronding. De e-mail die je artikelen levert, wordt altijd verstuurd.",
5106
+ paymentIssue: "Betalingsproblemen",
5107
+ paymentIssueNote: "Een e-mail wanneer een betaling je aandacht nodig heeft."
4736
5108
  },
4737
5109
  walletTopup: {
4738
5110
  title: "Tegoed toevoegen",
@@ -4964,7 +5336,10 @@ var pl_default = {
4964
5336
  warrantyClaimSending: "Wysy\u0142anie\u2026",
4965
5337
  warrantyClaimDone: "Sklep otrzyma\u0142 Twoje zg\u0142oszenie. Odpowied\u017A przyjdzie e-mailem.",
4966
5338
  warrantyClaimFailed: "Nie uda\u0142o si\u0119 wys\u0142a\u0107 zg\u0142oszenia.",
4967
- warrantyClaimTooLong: "Zg\u0142oszenie mo\u017Ce mie\u0107 najwy\u017Cej {max} znak\xF3w."
5339
+ warrantyClaimTooLong: "Zg\u0142oszenie mo\u017Ce mie\u0107 najwy\u017Cej {max} znak\xF3w.",
5340
+ invoicePdf: "Pobierz faktur\u0119 (PDF)",
5341
+ invoicePdfLoading: "Przygotowywanie\u2026",
5342
+ invoicePdfFailed: "Nie uda\u0142o si\u0119 pobra\u0107 tej faktury. Spr\xF3buj ponownie."
4968
5343
  },
4969
5344
  downloads: {
4970
5345
  loading: "Wczytujemy Twoje pliki",
@@ -5121,6 +5496,16 @@ var pl_default = {
5121
5496
  commissionsEmptyTitle: "Nie masz jeszcze prowizji",
5122
5497
  commissionsEmptyBody: "Zatwierdzona sprzeda\u017C z polece\u0144 pojawi si\u0119 tutaj.",
5123
5498
  commissionFor: "Zam\xF3wienie {id}",
5499
+ ledgerWaitingPayment: "Oczekuj\u0105ce",
5500
+ ledgerEarned: "Zarobione",
5501
+ ledgerInPayoutRequest: "We wniosku o wyp\u0142at\u0119",
5502
+ ledgerPaidOut: "Wyp\u0142acone",
5503
+ ledgerStoreCredit: "\u015Arodki w sklepie",
5504
+ ledgerSplit: "Podzielone",
5505
+ ledgerVoided: "Uniewa\u017Cnione",
5506
+ paidOutPart: "Wyp\u0142acono {amount}",
5507
+ storeCreditPart: "{amount} w \u015Brodkach sklepu",
5508
+ ofTotal: "z {total}",
5124
5509
  balanceTitle: "Historia salda",
5125
5510
  balanceEmptyTitle: "Nie ma jeszcze historii salda",
5126
5511
  balanceEmptyBody: "Zamiany i wyp\u0142aty pojawi\u0105 si\u0119 tutaj.",
@@ -5129,7 +5514,23 @@ var pl_default = {
5129
5514
  claimAdjustment: "Korekta",
5130
5515
  differentCurrency: "Twoje saldo z polece\u0144 jest prowadzone w {currency}.",
5131
5516
  convertedLabel: "Zamienione na \u015Brodki w sklepie",
5132
- paidLabel: "Wyp\u0142acone"
5517
+ paidLabel: "Wyp\u0142acone",
5518
+ newLink: "Nowy link",
5519
+ linkLabel: "Nazwa",
5520
+ linkLabelPlaceholder: "Kampania na YouTube",
5521
+ linkCode: "Kod",
5522
+ linkCommission: "Prowizja, o kt\xF3r\u0105 prosisz (%)",
5523
+ linkDiscount: "Rabat dla kupuj\u0105cych, o kt\xF3ry prosisz (%)",
5524
+ linkRatePlaceholder: "Domy\u015Blna sklepu",
5525
+ linkRatesHint: "Zostaw oba pola puste, aby u\u017Cy\u0107 stawek sklepu. Link z w\u0142asnymi stawkami czeka na zatwierdzenie przez sklep.",
5526
+ createLink: "Utw\xF3rz link",
5527
+ creatingLink: "Tworzenie\u2026",
5528
+ linkCreated: "Tw\xF3j link jest gotowy do udost\u0119pnienia.",
5529
+ linkRequested: "Tw\xF3j link czeka na zatwierdzenie przez sklep.",
5530
+ linkFailed: "Nie uda\u0142o si\u0119 utworzy\u0107 Twojego linku. Spr\xF3buj ponownie.",
5531
+ linkRequired: "Podaj nazw\u0119 i kod swojego linku.",
5532
+ linkRateInvalid: "Wpisz ka\u017Cd\u0105 stawk\u0119 jako procent od 0 do 100, z najwy\u017Cej dwoma miejscami po przecinku, na przyk\u0142ad 12,5.",
5533
+ linksEmptyCanCreate: "Utw\xF3rz link z w\u0142asnym kodem."
5133
5534
  },
5134
5535
  support: {
5135
5536
  loading: "Wczytujemy Twoje zg\u0142oszenia",
@@ -5198,7 +5599,15 @@ var pl_default = {
5198
5599
  signOutOthersDone: "Wszystkie inne urz\u0105dzenia zosta\u0142y wylogowane.",
5199
5600
  devicesFailed: "Nie uda\u0142o si\u0119 wczyta\u0107 Twoich urz\u0105dze\u0144.",
5200
5601
  signOutDeviceFailed: "Nie uda\u0142o si\u0119 wylogowa\u0107 tego urz\u0105dzenia. Spr\xF3buj ponownie.",
5201
- deviceOn: "{browser} na {os}"
5602
+ deviceOn: "{browser} na {os}",
5603
+ orderEmailsTitle: "E-maile o zam\xF3wieniach",
5604
+ orderEmailsLoading: "Wczytywanie ustawie\u0144 e-maili o zam\xF3wieniach",
5605
+ orderCreated: "Potwierdzenia zam\xF3wie\u0144",
5606
+ orderCreatedNote: "E-mail, gdy sk\u0142adasz zam\xF3wienie.",
5607
+ orderCompleted: "Potwierdzenia realizacji",
5608
+ orderCompletedNote: "Potwierdzenia i powiadomienia o realizacji. E-mail dostarczaj\u0105cy Twoje produkty jest zawsze wysy\u0142any.",
5609
+ paymentIssue: "Problemy z p\u0142atno\u015Bci\u0105",
5610
+ paymentIssueNote: "E-mail, gdy p\u0142atno\u015B\u0107 wymaga Twojej uwagi."
5202
5611
  },
5203
5612
  walletTopup: {
5204
5613
  title: "Dodaj \u015Brodki",
@@ -5430,7 +5839,10 @@ var pt_default = {
5430
5839
  warrantyClaimSending: "A enviar\u2026",
5431
5840
  warrantyClaimDone: "A loja recebeu o teu pedido. Respondem por e-mail.",
5432
5841
  warrantyClaimFailed: "N\xE3o foi poss\xEDvel enviar o teu pedido.",
5433
- warrantyClaimTooLong: "O teu pedido n\xE3o pode ter mais de {max} caracteres."
5842
+ warrantyClaimTooLong: "O teu pedido n\xE3o pode ter mais de {max} caracteres.",
5843
+ invoicePdf: "Transferir fatura (PDF)",
5844
+ invoicePdfLoading: "A preparar\u2026",
5845
+ invoicePdfFailed: "N\xE3o foi poss\xEDvel transferir esta fatura. Tente novamente."
5434
5846
  },
5435
5847
  downloads: {
5436
5848
  loading: "A carregar as tuas transfer\xEAncias",
@@ -5587,6 +5999,16 @@ var pt_default = {
5587
5999
  commissionsEmptyTitle: "Ainda sem comiss\xF5es",
5588
6000
  commissionsEmptyBody: "As vendas por indica\xE7\xE3o aprovadas aparecem aqui.",
5589
6001
  commissionFor: "Encomenda {id}",
6002
+ ledgerWaitingPayment: "Pendente",
6003
+ ledgerEarned: "Ganho",
6004
+ ledgerInPayoutRequest: "Em pedido de pagamento",
6005
+ ledgerPaidOut: "Pago",
6006
+ ledgerStoreCredit: "Saldo da loja",
6007
+ ledgerSplit: "Dividido",
6008
+ ledgerVoided: "Anulado",
6009
+ paidOutPart: "{amount} pago",
6010
+ storeCreditPart: "{amount} em saldo da loja",
6011
+ ofTotal: "de {total}",
5590
6012
  balanceTitle: "Movimentos do saldo",
5591
6013
  balanceEmptyTitle: "Ainda sem movimentos de saldo",
5592
6014
  balanceEmptyBody: "As convers\xF5es e os pagamentos aparecem aqui.",
@@ -5595,7 +6017,23 @@ var pt_default = {
5595
6017
  claimAdjustment: "Ajuste",
5596
6018
  differentCurrency: "O teu saldo de indica\xE7\xF5es est\xE1 em {currency}.",
5597
6019
  convertedLabel: "Passou para saldo da loja",
5598
- paidLabel: "Pago"
6020
+ paidLabel: "Pago",
6021
+ newLink: "Nova liga\xE7\xE3o",
6022
+ linkLabel: "Nome",
6023
+ linkLabelPlaceholder: "Campanha no YouTube",
6024
+ linkCode: "C\xF3digo",
6025
+ linkCommission: "Comiss\xE3o pretendida (%)",
6026
+ linkDiscount: "Desconto para compradores pretendido (%)",
6027
+ linkRatePlaceholder: "Valor da loja",
6028
+ linkRatesHint: "Deixe as duas percentagens vazias para usar as da loja. Uma liga\xE7\xE3o que pede percentagens pr\xF3prias aguarda a aprova\xE7\xE3o da loja.",
6029
+ createLink: "Criar liga\xE7\xE3o",
6030
+ creatingLink: "A criar\u2026",
6031
+ linkCreated: "A sua liga\xE7\xE3o est\xE1 pronta a partilhar.",
6032
+ linkRequested: "A sua liga\xE7\xE3o aguarda a aprova\xE7\xE3o da loja.",
6033
+ linkFailed: "N\xE3o foi poss\xEDvel criar a sua liga\xE7\xE3o. Tente novamente.",
6034
+ linkRequired: "Introduza um nome e um c\xF3digo para a sua liga\xE7\xE3o.",
6035
+ linkRateInvalid: "Insira cada taxa como uma percentagem entre 0 e 100, com no m\xE1ximo duas casas decimais, por exemplo 12,5.",
6036
+ linksEmptyCanCreate: "Crie uma com um c\xF3digo seu."
5599
6037
  },
5600
6038
  support: {
5601
6039
  loading: "A carregar os teus pedidos",
@@ -5664,7 +6102,15 @@ var pt_default = {
5664
6102
  signOutOthersDone: "A sess\xE3o foi terminada em todos os outros dispositivos.",
5665
6103
  devicesFailed: "N\xE3o foi poss\xEDvel carregar os teus dispositivos.",
5666
6104
  signOutDeviceFailed: "N\xE3o foi poss\xEDvel terminar a sess\xE3o nesse dispositivo. Tenta de novo.",
5667
- deviceOn: "{browser} em {os}"
6105
+ deviceOn: "{browser} em {os}",
6106
+ orderEmailsTitle: "E-mails de encomendas",
6107
+ orderEmailsLoading: "A carregar os seus e-mails de encomendas",
6108
+ orderCreated: "Confirma\xE7\xF5es de encomenda",
6109
+ orderCreatedNote: "Um e-mail quando faz uma encomenda.",
6110
+ orderCompleted: "Recibos de encomenda",
6111
+ orderCompletedNote: "Recibos e avisos de conclus\xE3o. O e-mail que entrega os seus artigos \xE9 sempre enviado.",
6112
+ paymentIssue: "Problemas de pagamento",
6113
+ paymentIssueNote: "Um e-mail quando um pagamento precisa da sua aten\xE7\xE3o."
5668
6114
  },
5669
6115
  walletTopup: {
5670
6116
  title: "Adicionar saldo",
@@ -5896,7 +6342,10 @@ var ru_default = {
5896
6342
  warrantyClaimSending: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u2026",
5897
6343
  warrantyClaimDone: "\u041C\u0430\u0433\u0430\u0437\u0438\u043D \u043F\u043E\u043B\u0443\u0447\u0438\u043B \u0432\u0430\u0448\u0435 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0435. \u041E\u0442\u0432\u0435\u0442 \u043F\u0440\u0438\u0434\u0451\u0442 \u043D\u0430 \u043F\u043E\u0447\u0442\u0443.",
5898
6344
  warrantyClaimFailed: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0435.",
5899
- warrantyClaimTooLong: "\u041E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0435 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0442\u044C {max} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432."
6345
+ warrantyClaimTooLong: "\u041E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0435 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0442\u044C {max} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.",
6346
+ invoicePdf: "\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0441\u0447\u0451\u0442 (PDF)",
6347
+ invoicePdfLoading: "\u0413\u043E\u0442\u043E\u0432\u0438\u043C\u2026",
6348
+ invoicePdfFailed: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u044D\u0442\u043E\u0442 \u0441\u0447\u0451\u0442. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437."
5900
6349
  },
5901
6350
  downloads: {
5902
6351
  loading: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C \u0432\u0430\u0448\u0438 \u0444\u0430\u0439\u043B\u044B",
@@ -6053,6 +6502,16 @@ var ru_default = {
6053
6502
  commissionsEmptyTitle: "\u041A\u043E\u043C\u0438\u0441\u0441\u0438\u0439 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442",
6054
6503
  commissionsEmptyBody: "\u041E\u0434\u043E\u0431\u0440\u0435\u043D\u043D\u044B\u0435 \u043F\u0440\u043E\u0434\u0430\u0436\u0438 \u043F\u043E \u0440\u0435\u0444\u0435\u0440\u0430\u043B\u0430\u043C \u043F\u043E\u044F\u0432\u044F\u0442\u0441\u044F \u0437\u0434\u0435\u0441\u044C.",
6055
6504
  commissionFor: "\u0417\u0430\u043A\u0430\u0437 {id}",
6505
+ ledgerWaitingPayment: "\u0412 \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0438",
6506
+ ledgerEarned: "\u0417\u0430\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u043E",
6507
+ ledgerInPayoutRequest: "\u0412 \u0437\u0430\u043F\u0440\u043E\u0441\u0435 \u043D\u0430 \u0432\u044B\u043F\u043B\u0430\u0442\u0443",
6508
+ ledgerPaidOut: "\u0412\u044B\u043F\u043B\u0430\u0447\u0435\u043D\u043E",
6509
+ ledgerStoreCredit: "\u0411\u0430\u043B\u0430\u043D\u0441 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430",
6510
+ ledgerSplit: "\u0420\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u043E",
6511
+ ledgerVoided: "\u0410\u043D\u043D\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
6512
+ paidOutPart: "\u0412\u044B\u043F\u043B\u0430\u0447\u0435\u043D\u043E {amount}",
6513
+ storeCreditPart: "{amount} \u043D\u0430 \u0431\u0430\u043B\u0430\u043D\u0441 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430",
6514
+ ofTotal: "\u0438\u0437 {total}",
6056
6515
  balanceTitle: "\u0414\u0432\u0438\u0436\u0435\u043D\u0438\u0435 \u0431\u0430\u043B\u0430\u043D\u0441\u0430",
6057
6516
  balanceEmptyTitle: "\u0414\u0432\u0438\u0436\u0435\u043D\u0438\u0439 \u043F\u043E \u0431\u0430\u043B\u0430\u043D\u0441\u0443 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442",
6058
6517
  balanceEmptyBody: "\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u044B \u0438 \u0432\u044B\u043F\u043B\u0430\u0442\u044B \u043F\u043E\u044F\u0432\u044F\u0442\u0441\u044F \u0437\u0434\u0435\u0441\u044C.",
@@ -6061,7 +6520,23 @@ var ru_default = {
6061
6520
  claimAdjustment: "\u041A\u043E\u0440\u0440\u0435\u043A\u0442\u0438\u0440\u043E\u0432\u043A\u0430",
6062
6521
  differentCurrency: "\u0412\u0430\u0448 \u0440\u0435\u0444\u0435\u0440\u0430\u043B\u044C\u043D\u044B\u0439 \u0431\u0430\u043B\u0430\u043D\u0441 \u0432\u0435\u0434\u0451\u0442\u0441\u044F \u0432 {currency}.",
6063
6522
  convertedLabel: "\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043E \u043D\u0430 \u0431\u0430\u043B\u0430\u043D\u0441 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430",
6064
- paidLabel: "\u0412\u044B\u043F\u043B\u0430\u0447\u0435\u043D\u043E"
6523
+ paidLabel: "\u0412\u044B\u043F\u043B\u0430\u0447\u0435\u043D\u043E",
6524
+ newLink: "\u041D\u043E\u0432\u0430\u044F \u0441\u0441\u044B\u043B\u043A\u0430",
6525
+ linkLabel: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",
6526
+ linkLabelPlaceholder: "\u041A\u0430\u043C\u043F\u0430\u043D\u0438\u044F \u043D\u0430 YouTube",
6527
+ linkCode: "\u041A\u043E\u0434",
6528
+ linkCommission: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u043A\u043E\u043C\u0438\u0441\u0441\u0438\u044F (%)",
6529
+ linkDiscount: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0441\u043A\u0438\u0434\u043A\u0430 \u0434\u043B\u044F \u043F\u043E\u043A\u0443\u043F\u0430\u0442\u0435\u043B\u0435\u0439 (%)",
6530
+ linkRatePlaceholder: "\u041A\u0430\u043A \u0432 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0435",
6531
+ linkRatesHint: "\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043E\u0431\u0435 \u0441\u0442\u0430\u0432\u043A\u0438 \u043F\u0443\u0441\u0442\u044B\u043C\u0438, \u0447\u0442\u043E\u0431\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0430\u0432\u043A\u0438 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430. \u0421\u0441\u044B\u043B\u043A\u0430 \u0441 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C\u0438 \u0441\u0442\u0430\u0432\u043A\u0430\u043C\u0438 \u0436\u0434\u0451\u0442 \u043E\u0434\u043E\u0431\u0440\u0435\u043D\u0438\u044F \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430.",
6532
+ createLink: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443",
6533
+ creatingLink: "\u0421\u043E\u0437\u0434\u0430\u0451\u043C\u2026",
6534
+ linkCreated: "\u0412\u0430\u0448\u0430 \u0441\u0441\u044B\u043B\u043A\u0430 \u0433\u043E\u0442\u043E\u0432\u0430 \u2014 \u043C\u043E\u0436\u043D\u043E \u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F.",
6535
+ linkRequested: "\u0412\u0430\u0448\u0430 \u0441\u0441\u044B\u043B\u043A\u0430 \u0436\u0434\u0451\u0442 \u043E\u0434\u043E\u0431\u0440\u0435\u043D\u0438\u044F \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430.",
6536
+ linkFailed: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",
6537
+ linkRequired: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0438 \u043A\u043E\u0434 \u0441\u0441\u044B\u043B\u043A\u0438.",
6538
+ linkRateInvalid: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u0430\u0436\u0434\u0443\u044E \u0441\u0442\u0430\u0432\u043A\u0443 \u0432 \u043F\u0440\u043E\u0446\u0435\u043D\u0442\u0430\u0445 \u043E\u0442 0 \u0434\u043E 100, \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 \u0434\u0432\u0443\u0445 \u0437\u043D\u0430\u043A\u043E\u0432 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u044F\u0442\u043E\u0439, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 12,5.",
6539
+ linksEmptyCanCreate: "\u0421\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0441\u044B\u043B\u043A\u0443 \u0441\u043E \u0441\u0432\u043E\u0438\u043C \u043A\u043E\u0434\u043E\u043C."
6065
6540
  },
6066
6541
  support: {
6067
6542
  loading: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C \u0432\u0430\u0448\u0438 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u044F",
@@ -6130,7 +6605,15 @@ var ru_default = {
6130
6605
  signOutOthersDone: "\u0412\u044B\u0445\u043E\u0434 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D \u043D\u0430 \u0432\u0441\u0435\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430\u0445.",
6131
6606
  devicesFailed: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u043F\u0438\u0441\u043E\u043A \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432.",
6132
6607
  signOutDeviceFailed: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u0439\u0442\u0438 \u043D\u0430 \u044D\u0442\u043E\u043C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435. \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443.",
6133
- deviceOn: "{browser} \u043D\u0430 {os}"
6608
+ deviceOn: "{browser} \u043D\u0430 {os}",
6609
+ orderEmailsTitle: "\u041F\u0438\u0441\u044C\u043C\u0430 \u043E \u0437\u0430\u043A\u0430\u0437\u0430\u0445",
6610
+ orderEmailsLoading: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043F\u0438\u0441\u0435\u043C \u043E \u0437\u0430\u043A\u0430\u0437\u0430\u0445",
6611
+ orderCreated: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u043A\u0430\u0437\u043E\u0432",
6612
+ orderCreatedNote: "\u041F\u0438\u0441\u044C\u043C\u043E, \u043A\u043E\u0433\u0434\u0430 \u0432\u044B \u043E\u0444\u043E\u0440\u043C\u043B\u044F\u0435\u0442\u0435 \u0437\u0430\u043A\u0430\u0437.",
6613
+ orderCompleted: "\u0427\u0435\u043A\u0438 \u043F\u043E \u0437\u0430\u043A\u0430\u0437\u0430\u043C",
6614
+ orderCompletedNote: "\u0427\u0435\u043A\u0438 \u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0438. \u041F\u0438\u0441\u044C\u043C\u043E \u0441 \u0432\u0430\u0448\u0438\u043C\u0438 \u0442\u043E\u0432\u0430\u0440\u0430\u043C\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0432\u0441\u0435\u0433\u0434\u0430.",
6615
+ paymentIssue: "\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u0441 \u043E\u043F\u043B\u0430\u0442\u043E\u0439",
6616
+ paymentIssueNote: "\u041F\u0438\u0441\u044C\u043C\u043E, \u043A\u043E\u0433\u0434\u0430 \u043F\u043B\u0430\u0442\u0451\u0436 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0430\u0448\u0435\u0433\u043E \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u044F."
6134
6617
  },
6135
6618
  walletTopup: {
6136
6619
  title: "\u041F\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0431\u0430\u043B\u0430\u043D\u0441",
@@ -6362,7 +6845,10 @@ var tr_default = {
6362
6845
  warrantyClaimSending: "G\xF6nderiliyor\u2026",
6363
6846
  warrantyClaimDone: "Ma\u011Faza talebinizi ald\u0131. E-posta ile yan\u0131t verirler.",
6364
6847
  warrantyClaimFailed: "Talebiniz g\xF6nderilemedi.",
6365
- warrantyClaimTooLong: "Talebiniz en fazla {max} karakter olabilir."
6848
+ warrantyClaimTooLong: "Talebiniz en fazla {max} karakter olabilir.",
6849
+ invoicePdf: "Faturay\u0131 indir (PDF)",
6850
+ invoicePdfLoading: "Haz\u0131rlan\u0131yor\u2026",
6851
+ invoicePdfFailed: "Bu fatura indirilemedi. L\xFCtfen tekrar deneyin."
6366
6852
  },
6367
6853
  downloads: {
6368
6854
  loading: "\u0130ndirmeleriniz y\xFCkleniyor",
@@ -6519,6 +7005,16 @@ var tr_default = {
6519
7005
  commissionsEmptyTitle: "Hen\xFCz komisyon yok",
6520
7006
  commissionsEmptyBody: "Onaylanan referans sat\u0131\u015Flar\u0131 burada g\xF6r\xFCn\xFCr.",
6521
7007
  commissionFor: "{id} numaral\u0131 sipari\u015F",
7008
+ ledgerWaitingPayment: "Beklemede",
7009
+ ledgerEarned: "Kazan\u0131ld\u0131",
7010
+ ledgerInPayoutRequest: "\xD6deme talebinde",
7011
+ ledgerPaidOut: "\xD6dendi",
7012
+ ledgerStoreCredit: "Ma\u011Faza bakiyesi",
7013
+ ledgerSplit: "B\xF6l\xFCnd\xFC",
7014
+ ledgerVoided: "Ge\xE7ersiz k\u0131l\u0131nd\u0131",
7015
+ paidOutPart: "{amount} \xF6dendi",
7016
+ storeCreditPart: "{amount} ma\u011Faza bakiyesi",
7017
+ ofTotal: "toplam {total}",
6522
7018
  balanceTitle: "Bakiye hareketleri",
6523
7019
  balanceEmptyTitle: "Hen\xFCz bakiye hareketi yok",
6524
7020
  balanceEmptyBody: "D\xF6n\xFC\u015F\xFCmler ve \xF6demeler burada g\xF6r\xFCn\xFCr.",
@@ -6527,7 +7023,23 @@ var tr_default = {
6527
7023
  claimAdjustment: "D\xFCzeltme",
6528
7024
  differentCurrency: "Referans bakiyeniz {currency} cinsinden tutulur.",
6529
7025
  convertedLabel: "Ma\u011Faza bakiyesine aktar\u0131ld\u0131",
6530
- paidLabel: "\xD6dendi"
7026
+ paidLabel: "\xD6dendi",
7027
+ newLink: "Yeni ba\u011Flant\u0131",
7028
+ linkLabel: "Ad",
7029
+ linkLabelPlaceholder: "YouTube kampanyas\u0131",
7030
+ linkCode: "Kod",
7031
+ linkCommission: "Talep edilen komisyon (%)",
7032
+ linkDiscount: "Talep edilen al\u0131c\u0131 indirimi (%)",
7033
+ linkRatePlaceholder: "Ma\u011Faza varsay\u0131lan\u0131",
7034
+ linkRatesHint: "Ma\u011Fazan\u0131n oranlar\u0131n\u0131 kullanmak i\xE7in iki oran\u0131 da bo\u015F b\u0131rak\u0131n. Kendi oranlar\u0131n\u0131 isteyen bir ba\u011Flant\u0131 ma\u011Fazan\u0131n onay\u0131n\u0131 bekler.",
7035
+ createLink: "Ba\u011Flant\u0131 olu\u015Ftur",
7036
+ creatingLink: "Olu\u015Fturuluyor\u2026",
7037
+ linkCreated: "Ba\u011Flant\u0131n\u0131z payla\u015F\u0131ma haz\u0131r.",
7038
+ linkRequested: "Ba\u011Flant\u0131n\u0131z ma\u011Fazan\u0131n onay\u0131n\u0131 bekliyor.",
7039
+ linkFailed: "Ba\u011Flant\u0131n\u0131z olu\u015Fturulamad\u0131. L\xFCtfen tekrar deneyin.",
7040
+ linkRequired: "Ba\u011Flant\u0131n\u0131z i\xE7in bir ad ve bir kod girin.",
7041
+ linkRateInvalid: "Her oran\u0131 0 ile 100 aras\u0131nda, en fazla iki ondal\u0131k basamakla y\xFCzde olarak girin, \xF6rne\u011Fin 12,5.",
7042
+ linksEmptyCanCreate: "Kendi kodunuzla bir tane olu\u015Fturun."
6531
7043
  },
6532
7044
  support: {
6533
7045
  loading: "Destek talepleriniz y\xFCkleniyor",
@@ -6596,7 +7108,15 @@ var tr_default = {
6596
7108
  signOutOthersDone: "Di\u011Fer t\xFCm cihazlardan \xE7\u0131k\u0131\u015F yap\u0131ld\u0131.",
6597
7109
  devicesFailed: "Cihazlar\u0131n\u0131z y\xFCklenemedi.",
6598
7110
  signOutDeviceFailed: "Bu cihazdan \xE7\u0131k\u0131\u015F yap\u0131lamad\u0131. L\xFCtfen tekrar deneyin.",
6599
- deviceOn: "{os} \xFCzerinde {browser}"
7111
+ deviceOn: "{os} \xFCzerinde {browser}",
7112
+ orderEmailsTitle: "Sipari\u015F e-postalar\u0131",
7113
+ orderEmailsLoading: "Sipari\u015F e-postas\u0131 ayarlar\u0131n\u0131z y\xFCkleniyor",
7114
+ orderCreated: "Sipari\u015F onaylar\u0131",
7115
+ orderCreatedNote: "Sipari\u015F verdi\u011Finizde bir e-posta.",
7116
+ orderCompleted: "Sipari\u015F makbuzlar\u0131",
7117
+ orderCompletedNote: "Makbuzlar ve tamamlanma bildirimleri. \xDCr\xFCnlerinizi teslim eden e-posta her zaman g\xF6nderilir.",
7118
+ paymentIssue: "\xD6deme sorunlar\u0131",
7119
+ paymentIssueNote: "Bir \xF6deme ilginizi gerektirdi\u011Finde bir e-posta."
6600
7120
  },
6601
7121
  walletTopup: {
6602
7122
  title: "Bakiye ekle",
@@ -6828,7 +7348,10 @@ var uk_default = {
6828
7348
  warrantyClaimSending: "\u041D\u0430\u0434\u0441\u0438\u043B\u0430\u0454\u043C\u043E\u2026",
6829
7349
  warrantyClaimDone: "\u041C\u0430\u0433\u0430\u0437\u0438\u043D \u043E\u0442\u0440\u0438\u043C\u0430\u0432 \u0432\u0430\u0448\u0435 \u0437\u0432\u0435\u0440\u043D\u0435\u043D\u043D\u044F. \u0412\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u044C \u043D\u0430\u0434\u0456\u0439\u0434\u0435 \u043D\u0430 \u043F\u043E\u0448\u0442\u0443.",
6830
7350
  warrantyClaimFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u043D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438 \u0437\u0432\u0435\u0440\u043D\u0435\u043D\u043D\u044F.",
6831
- warrantyClaimTooLong: "\u0417\u0432\u0435\u0440\u043D\u0435\u043D\u043D\u044F \u043D\u0435 \u043C\u0430\u0454 \u043F\u0435\u0440\u0435\u0432\u0438\u0449\u0443\u0432\u0430\u0442\u0438 {max} \u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432."
7351
+ warrantyClaimTooLong: "\u0417\u0432\u0435\u0440\u043D\u0435\u043D\u043D\u044F \u043D\u0435 \u043C\u0430\u0454 \u043F\u0435\u0440\u0435\u0432\u0438\u0449\u0443\u0432\u0430\u0442\u0438 {max} \u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432.",
7352
+ invoicePdf: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0440\u0430\u0445\u0443\u043D\u043E\u043A (PDF)",
7353
+ invoicePdfLoading: "\u0413\u043E\u0442\u0443\u0454\u043C\u043E\u2026",
7354
+ invoicePdfFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0446\u0435\u0439 \u0440\u0430\u0445\u0443\u043D\u043E\u043A. \u0421\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0449\u0435 \u0440\u0430\u0437."
6832
7355
  },
6833
7356
  downloads: {
6834
7357
  loading: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0443\u0454\u043C\u043E \u0432\u0430\u0448\u0456 \u0444\u0430\u0439\u043B\u0438",
@@ -6985,6 +7508,16 @@ var uk_default = {
6985
7508
  commissionsEmptyTitle: "\u041A\u043E\u043C\u0456\u0441\u0456\u0439 \u043F\u043E\u043A\u0438 \u043D\u0435\u043C\u0430\u0454",
6986
7509
  commissionsEmptyBody: "\u0421\u0445\u0432\u0430\u043B\u0435\u043D\u0456 \u0440\u0435\u0444\u0435\u0440\u0430\u043B\u044C\u043D\u0456 \u043F\u0440\u043E\u0434\u0430\u0436\u0456 \u0437\u2019\u044F\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0442\u0443\u0442.",
6987
7510
  commissionFor: "\u0417\u0430\u043C\u043E\u0432\u043B\u0435\u043D\u043D\u044F {id}",
7511
+ ledgerWaitingPayment: "\u0412 \u043E\u0431\u0440\u043E\u0431\u0446\u0456",
7512
+ ledgerEarned: "\u0417\u0430\u0440\u043E\u0431\u043B\u0435\u043D\u043E",
7513
+ ledgerInPayoutRequest: "\u0423 \u0437\u0430\u043F\u0438\u0442\u0456 \u043D\u0430 \u0432\u0438\u043F\u043B\u0430\u0442\u0443",
7514
+ ledgerPaidOut: "\u0412\u0438\u043F\u043B\u0430\u0447\u0435\u043D\u043E",
7515
+ ledgerStoreCredit: "\u0411\u0430\u043B\u0430\u043D\u0441 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0443",
7516
+ ledgerSplit: "\u0420\u043E\u0437\u043F\u043E\u0434\u0456\u043B\u0435\u043D\u043E",
7517
+ ledgerVoided: "\u0410\u043D\u0443\u043B\u044C\u043E\u0432\u0430\u043D\u043E",
7518
+ paidOutPart: "\u0412\u0438\u043F\u043B\u0430\u0447\u0435\u043D\u043E {amount}",
7519
+ storeCreditPart: "{amount} \u043D\u0430 \u0431\u0430\u043B\u0430\u043D\u0441 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0443",
7520
+ ofTotal: "\u0437 {total}",
6988
7521
  balanceTitle: "\u0420\u0443\u0445 \u043A\u043E\u0448\u0442\u0456\u0432",
6989
7522
  balanceEmptyTitle: "\u0420\u0443\u0445\u0456\u0432 \u043A\u043E\u0448\u0442\u0456\u0432 \u043F\u043E\u043A\u0438 \u043D\u0435\u043C\u0430\u0454",
6990
7523
  balanceEmptyBody: "\u041A\u043E\u043D\u0432\u0435\u0440\u0442\u0430\u0446\u0456\u0457 \u0442\u0430 \u0432\u0438\u043F\u043B\u0430\u0442\u0438 \u0437\u2019\u044F\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0442\u0443\u0442.",
@@ -6993,7 +7526,23 @@ var uk_default = {
6993
7526
  claimAdjustment: "\u041A\u043E\u0440\u0438\u0433\u0443\u0432\u0430\u043D\u043D\u044F",
6994
7527
  differentCurrency: "\u0412\u0430\u0448 \u0440\u0435\u0444\u0435\u0440\u0430\u043B\u044C\u043D\u0438\u0439 \u0431\u0430\u043B\u0430\u043D\u0441 \u0432\u0435\u0434\u0435\u0442\u044C\u0441\u044F \u0443 \u0432\u0430\u043B\u044E\u0442\u0456 {currency}.",
6995
7528
  convertedLabel: "\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043E \u0432 \u0431\u0430\u043B\u0430\u043D\u0441 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0443",
6996
- paidLabel: "\u0412\u0438\u043F\u043B\u0430\u0447\u0435\u043D\u043E"
7529
+ paidLabel: "\u0412\u0438\u043F\u043B\u0430\u0447\u0435\u043D\u043E",
7530
+ newLink: "\u041D\u043E\u0432\u0435 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",
7531
+ linkLabel: "\u041D\u0430\u0437\u0432\u0430",
7532
+ linkLabelPlaceholder: "\u041A\u0430\u043C\u043F\u0430\u043D\u0456\u044F \u043D\u0430 YouTube",
7533
+ linkCode: "\u041A\u043E\u0434",
7534
+ linkCommission: "\u0411\u0430\u0436\u0430\u043D\u0430 \u043A\u043E\u043C\u0456\u0441\u0456\u044F (%)",
7535
+ linkDiscount: "\u0411\u0430\u0436\u0430\u043D\u0430 \u0437\u043D\u0438\u0436\u043A\u0430 \u0434\u043B\u044F \u043F\u043E\u043A\u0443\u043F\u0446\u0456\u0432 (%)",
7536
+ linkRatePlaceholder: "\u042F\u043A \u0443 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0456",
7537
+ linkRatesHint: "\u0417\u0430\u043B\u0438\u0448\u0442\u0435 \u043E\u0431\u0438\u0434\u0432\u0456 \u0441\u0442\u0430\u0432\u043A\u0438 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u043C\u0438, \u0449\u043E\u0431 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u0442\u0438 \u0441\u0442\u0430\u0432\u043A\u0438 \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0443. \u041F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \u0437 \u0432\u043B\u0430\u0441\u043D\u0438\u043C\u0438 \u0441\u0442\u0430\u0432\u043A\u0430\u043C\u0438 \u043E\u0447\u0456\u043A\u0443\u0454 \u043D\u0430 \u0441\u0445\u0432\u0430\u043B\u0435\u043D\u043D\u044F \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0443.",
7538
+ createLink: "\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",
7539
+ creatingLink: "\u0421\u0442\u0432\u043E\u0440\u044E\u0454\u043C\u043E\u2026",
7540
+ linkCreated: "\u0412\u0430\u0448\u0435 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \u0433\u043E\u0442\u043E\u0432\u0435 \u2014 \u043C\u043E\u0436\u043D\u0430 \u0434\u0456\u043B\u0438\u0442\u0438\u0441\u044F.",
7541
+ linkRequested: "\u0412\u0430\u0448\u0435 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \u043E\u0447\u0456\u043A\u0443\u0454 \u043D\u0430 \u0441\u0445\u0432\u0430\u043B\u0435\u043D\u043D\u044F \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0443.",
7542
+ linkFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0441\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F. \u0421\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0449\u0435 \u0440\u0430\u0437.",
7543
+ linkRequired: "\u0412\u043A\u0430\u0436\u0456\u0442\u044C \u043D\u0430\u0437\u0432\u0443 \u0439 \u043A\u043E\u0434 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F.",
7544
+ linkRateInvalid: "\u0412\u0432\u0435\u0434\u0456\u0442\u044C \u043A\u043E\u0436\u043D\u0443 \u0441\u0442\u0430\u0432\u043A\u0443 \u0443 \u0432\u0456\u0434\u0441\u043E\u0442\u043A\u0430\u0445 \u0432\u0456\u0434 0 \u0434\u043E 100, \u043D\u0435 \u0431\u0456\u043B\u044C\u0448\u0435 \u0434\u0432\u043E\u0445 \u0437\u043D\u0430\u043A\u0456\u0432 \u043F\u0456\u0441\u043B\u044F \u043A\u043E\u043C\u0438, \u043D\u0430\u043F\u0440\u0438\u043A\u043B\u0430\u0434 12,5.",
7545
+ linksEmptyCanCreate: "\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \u0437 \u0432\u043B\u0430\u0441\u043D\u0438\u043C \u043A\u043E\u0434\u043E\u043C."
6997
7546
  },
6998
7547
  support: {
6999
7548
  loading: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0443\u0454\u043C\u043E \u0432\u0430\u0448\u0456 \u0437\u0432\u0435\u0440\u043D\u0435\u043D\u043D\u044F",
@@ -7062,7 +7611,15 @@ var uk_default = {
7062
7611
  signOutOthersDone: "\u0412\u0438\u0445\u0456\u0434 \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043E \u043D\u0430 \u0432\u0441\u0456\u0445 \u0456\u043D\u0448\u0438\u0445 \u043F\u0440\u0438\u0441\u0442\u0440\u043E\u044F\u0445.",
7063
7612
  devicesFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0432\u0430\u0448\u0456 \u043F\u0440\u0438\u0441\u0442\u0440\u043E\u0457.",
7064
7613
  signOutDeviceFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0438\u0439\u0442\u0438 \u043D\u0430 \u0446\u044C\u043E\u043C\u0443 \u043F\u0440\u0438\u0441\u0442\u0440\u043E\u0457. \u0421\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0449\u0435 \u0440\u0430\u0437.",
7065
- deviceOn: "{browser} \u043D\u0430 {os}"
7614
+ deviceOn: "{browser} \u043D\u0430 {os}",
7615
+ orderEmailsTitle: "\u041B\u0438\u0441\u0442\u0438 \u043F\u0440\u043E \u0437\u0430\u043C\u043E\u0432\u043B\u0435\u043D\u043D\u044F",
7616
+ orderEmailsLoading: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0443\u0454\u043C\u043E \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u043B\u0438\u0441\u0442\u0456\u0432 \u043F\u0440\u043E \u0437\u0430\u043C\u043E\u0432\u043B\u0435\u043D\u043D\u044F",
7617
+ orderCreated: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043C\u043E\u0432\u043B\u0435\u043D\u044C",
7618
+ orderCreatedNote: "\u041B\u0438\u0441\u0442, \u043A\u043E\u043B\u0438 \u0432\u0438 \u043E\u0444\u043E\u0440\u043C\u043B\u044E\u0454\u0442\u0435 \u0437\u0430\u043C\u043E\u0432\u043B\u0435\u043D\u043D\u044F.",
7619
+ orderCompleted: "\u041A\u0432\u0438\u0442\u0430\u043D\u0446\u0456\u0457 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u043B\u0435\u043D\u043D\u044F\u043C\u0438",
7620
+ orderCompletedNote: "\u041A\u0432\u0438\u0442\u0430\u043D\u0446\u0456\u0457 \u0442\u0430 \u0441\u043F\u043E\u0432\u0456\u0449\u0435\u043D\u043D\u044F \u043F\u0440\u043E \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043D\u044F. \u041B\u0438\u0441\u0442 \u0456\u0437 \u0432\u0430\u0448\u0438\u043C\u0438 \u0442\u043E\u0432\u0430\u0440\u0430\u043C\u0438 \u043D\u0430\u0434\u0441\u0438\u043B\u0430\u0454\u0442\u044C\u0441\u044F \u0437\u0430\u0432\u0436\u0434\u0438.",
7621
+ paymentIssue: "\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u0438 \u0437 \u043E\u043F\u043B\u0430\u0442\u043E\u044E",
7622
+ paymentIssueNote: "\u041B\u0438\u0441\u0442, \u043A\u043E\u043B\u0438 \u043F\u043B\u0430\u0442\u0456\u0436 \u043F\u043E\u0442\u0440\u0435\u0431\u0443\u0454 \u0432\u0430\u0448\u043E\u0457 \u0443\u0432\u0430\u0433\u0438."
7066
7623
  },
7067
7624
  walletTopup: {
7068
7625
  title: "\u041F\u043E\u043F\u043E\u0432\u043D\u0438\u0442\u0438 \u0431\u0430\u043B\u0430\u043D\u0441",
@@ -7294,7 +7851,10 @@ var zh_default = {
7294
7851
  warrantyClaimSending: "\u63D0\u4EA4\u4E2D\u2026",
7295
7852
  warrantyClaimDone: "\u5546\u5E97\u5DF2\u6536\u5230\u4F60\u7684\u7533\u8BF7\uFF0C\u4ED6\u4EEC\u4F1A\u901A\u8FC7\u90AE\u4EF6\u56DE\u590D\u3002",
7296
7853
  warrantyClaimFailed: "\u7533\u8BF7\u63D0\u4EA4\u5931\u8D25\u3002",
7297
- warrantyClaimTooLong: "\u7533\u8BF7\u5185\u5BB9\u4E0D\u80FD\u8D85\u8FC7 {max} \u4E2A\u5B57\u7B26\u3002"
7854
+ warrantyClaimTooLong: "\u7533\u8BF7\u5185\u5BB9\u4E0D\u80FD\u8D85\u8FC7 {max} \u4E2A\u5B57\u7B26\u3002",
7855
+ invoicePdf: "\u4E0B\u8F7D\u53D1\u7968 (PDF)",
7856
+ invoicePdfLoading: "\u6B63\u5728\u51C6\u5907\u2026",
7857
+ invoicePdfFailed: "\u65E0\u6CD5\u4E0B\u8F7D\u6B64\u53D1\u7968\uFF0C\u8BF7\u91CD\u8BD5\u3002"
7298
7858
  },
7299
7859
  downloads: {
7300
7860
  loading: "\u6B63\u5728\u52A0\u8F7D\u4F60\u7684\u4E0B\u8F7D\u5185\u5BB9",
@@ -7451,6 +8011,16 @@ var zh_default = {
7451
8011
  commissionsEmptyTitle: "\u8FD8\u6CA1\u6709\u4F63\u91D1",
7452
8012
  commissionsEmptyBody: "\u5BA1\u6838\u901A\u8FC7\u7684\u63A8\u8350\u8BA2\u5355\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002",
7453
8013
  commissionFor: "\u8BA2\u5355 {id}",
8014
+ ledgerWaitingPayment: "\u5904\u7406\u4E2D",
8015
+ ledgerEarned: "\u5DF2\u8D5A\u53D6",
8016
+ ledgerInPayoutRequest: "\u63D0\u73B0\u7533\u8BF7\u4E2D",
8017
+ ledgerPaidOut: "\u5DF2\u6253\u6B3E",
8018
+ ledgerStoreCredit: "\u5546\u5E97\u4F59\u989D",
8019
+ ledgerSplit: "\u62C6\u5206\u7ED3\u7B97",
8020
+ ledgerVoided: "\u5DF2\u4F5C\u5E9F",
8021
+ paidOutPart: "\u5DF2\u6253\u6B3E {amount}",
8022
+ storeCreditPart: "\u5546\u5E97\u4F59\u989D {amount}",
8023
+ ofTotal: "\u5171 {total}",
7454
8024
  balanceTitle: "\u4F59\u989D\u52A8\u6001",
7455
8025
  balanceEmptyTitle: "\u8FD8\u6CA1\u6709\u4F59\u989D\u52A8\u6001",
7456
8026
  balanceEmptyBody: "\u8F6C\u6362\u548C\u6253\u6B3E\u8BB0\u5F55\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002",
@@ -7459,7 +8029,23 @@ var zh_default = {
7459
8029
  claimAdjustment: "\u8C03\u6574",
7460
8030
  differentCurrency: "\u4F60\u7684\u63A8\u8350\u4F59\u989D\u4EE5 {currency} \u7ED3\u7B97\u3002",
7461
8031
  convertedLabel: "\u5DF2\u8F6C\u4E3A\u5546\u5E97\u4F59\u989D",
7462
- paidLabel: "\u5DF2\u6253\u6B3E"
8032
+ paidLabel: "\u5DF2\u6253\u6B3E",
8033
+ newLink: "\u65B0\u5EFA\u94FE\u63A5",
8034
+ linkLabel: "\u540D\u79F0",
8035
+ linkLabelPlaceholder: "YouTube \u63A8\u5E7F",
8036
+ linkCode: "\u4EE3\u7801",
8037
+ linkCommission: "\u7533\u8BF7\u7684\u4F63\u91D1\u6BD4\u4F8B (%)",
8038
+ linkDiscount: "\u7533\u8BF7\u7684\u4E70\u5BB6\u6298\u6263 (%)",
8039
+ linkRatePlaceholder: "\u4F7F\u7528\u5546\u5E97\u9ED8\u8BA4\u503C",
8040
+ linkRatesHint: "\u4E24\u9879\u6BD4\u4F8B\u7559\u7A7A\u5373\u4F7F\u7528\u5546\u5E97\u7684\u9ED8\u8BA4\u6BD4\u4F8B\u3002\u7533\u8BF7\u81EA\u5B9A\u4E49\u6BD4\u4F8B\u7684\u94FE\u63A5\u9700\u7B49\u5F85\u5546\u5E97\u5BA1\u6838\u3002",
8041
+ createLink: "\u521B\u5EFA\u94FE\u63A5",
8042
+ creatingLink: "\u6B63\u5728\u521B\u5EFA\u2026",
8043
+ linkCreated: "\u60A8\u7684\u94FE\u63A5\u5DF2\u53EF\u5206\u4EAB\u3002",
8044
+ linkRequested: "\u60A8\u7684\u94FE\u63A5\u6B63\u5728\u7B49\u5F85\u5546\u5E97\u5BA1\u6838\u3002",
8045
+ linkFailed: "\u65E0\u6CD5\u521B\u5EFA\u60A8\u7684\u94FE\u63A5\uFF0C\u8BF7\u91CD\u8BD5\u3002",
8046
+ linkRequired: "\u8BF7\u586B\u5199\u94FE\u63A5\u7684\u540D\u79F0\u548C\u4EE3\u7801\u3002",
8047
+ linkRateInvalid: "\u8BF7\u5C06\u6BCF\u4E2A\u6BD4\u4F8B\u586B\u5199\u4E3A 0 \u5230 100 \u4E4B\u95F4\u7684\u767E\u5206\u6BD4\uFF0C\u6700\u591A\u4E24\u4F4D\u5C0F\u6570\uFF0C\u4F8B\u5982 12.5\u3002",
8048
+ linksEmptyCanCreate: "\u7528\u60A8\u81EA\u5DF1\u7684\u4EE3\u7801\u521B\u5EFA\u4E00\u4E2A\u3002"
7463
8049
  },
7464
8050
  support: {
7465
8051
  loading: "\u6B63\u5728\u52A0\u8F7D\u4F60\u7684\u5DE5\u5355",
@@ -7528,7 +8114,15 @@ var zh_default = {
7528
8114
  signOutOthersDone: "\u5176\u4ED6\u6240\u6709\u8BBE\u5907\u5DF2\u9000\u51FA\u767B\u5F55\u3002",
7529
8115
  devicesFailed: "\u65E0\u6CD5\u52A0\u8F7D\u4F60\u7684\u8BBE\u5907\u3002",
7530
8116
  signOutDeviceFailed: "\u8BE5\u8BBE\u5907\u9000\u51FA\u767B\u5F55\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002",
7531
- deviceOn: "{os} \u4E0A\u7684 {browser}"
8117
+ deviceOn: "{os} \u4E0A\u7684 {browser}",
8118
+ orderEmailsTitle: "\u8BA2\u5355\u90AE\u4EF6",
8119
+ orderEmailsLoading: "\u6B63\u5728\u52A0\u8F7D\u8BA2\u5355\u90AE\u4EF6\u8BBE\u7F6E",
8120
+ orderCreated: "\u8BA2\u5355\u786E\u8BA4",
8121
+ orderCreatedNote: "\u4E0B\u5355\u65F6\u53D1\u9001\u7684\u90AE\u4EF6\u3002",
8122
+ orderCompleted: "\u8BA2\u5355\u6536\u636E",
8123
+ orderCompletedNote: "\u6536\u636E\u548C\u8BA2\u5355\u5B8C\u6210\u901A\u77E5\u3002\u7528\u4E8E\u4EA4\u4ED8\u5546\u54C1\u7684\u90AE\u4EF6\u59CB\u7EC8\u4F1A\u53D1\u9001\u3002",
8124
+ paymentIssue: "\u4ED8\u6B3E\u95EE\u9898",
8125
+ paymentIssueNote: "\u4ED8\u6B3E\u9700\u8981\u60A8\u5904\u7406\u65F6\u53D1\u9001\u7684\u90AE\u4EF6\u3002"
7532
8126
  },
7533
8127
  walletTopup: {
7534
8128
  title: "\u6DFB\u52A0\u5546\u5E97\u4F59\u989D",
@@ -8256,9 +8850,9 @@ var STATUS_TONES = {
8256
8850
  CANCELED: TONE_BAD,
8257
8851
  CANCELLED: TONE_BAD
8258
8852
  };
8259
- function StatusChip({ status }) {
8853
+ function StatusChip({ status, label }) {
8260
8854
  const tone = STATUS_TONES[status.trim().toUpperCase()] ?? "sxa:meta-chip--neutral";
8261
- return /* @__PURE__ */ jsx2("span", { className: `sx-account-status sx-account-chip sxa:meta-chip sxa:meta-chip--status ${tone} sxa:shrink-0`, children: statusLabel(status) });
8855
+ return /* @__PURE__ */ jsx2("span", { className: `sx-account-status sx-account-chip sxa:meta-chip sxa:meta-chip--status ${tone} sxa:shrink-0`, children: label ?? statusLabel(status) });
8262
8856
  }
8263
8857
  function AccountCard({
8264
8858
  children,
@@ -8382,7 +8976,8 @@ function useAccountAvailability(reads) {
8382
8976
  deliverablesCount: dashboard.state.data.stats.deliverables_count,
8383
8977
  subscriptionsCount: dashboard.state.data.subscriptions.length,
8384
8978
  walletPresent: dashboard.state.data.wallet !== null,
8385
- affiliateState: dashboard.state.data.affiliate.state
8979
+ affiliateState: dashboard.state.data.affiliate.state,
8980
+ affiliateCanCreateLinks: dashboard.state.data.affiliate.can_create_custom_links
8386
8981
  } : null,
8387
8982
  program?.ok ? program.data : null,
8388
8983
  lastKnown.current
@@ -9267,6 +9862,7 @@ function AccountOrderDetail({ orderId }) {
9267
9862
  /* @__PURE__ */ jsx7(StatusChip, { status: order.status })
9268
9863
  ] }),
9269
9864
  order.statusDetails ? /* @__PURE__ */ jsx7("p", { className: "sxa:mt-3 sxa:text-small sxa:leading-relaxed sxa:text-muted", children: order.statusDetails }) : null,
9865
+ /* @__PURE__ */ jsx7(InvoicePdfButton, { orderUniqid: order.uniqid }),
9270
9866
  /* @__PURE__ */ jsx7("ul", { className: "sxa:mt-6 sxa:space-y-3", children: order.lineItems.map((item) => /* @__PURE__ */ jsx7("li", { children: /* @__PURE__ */ jsxs6(AccountCard, { className: "sxa:px-5 sxa:py-4", children: [
9271
9867
  /* @__PURE__ */ jsxs6("div", { className: "sxa:flex sxa:flex-wrap sxa:items-start sxa:justify-between sxa:gap-3", children: [
9272
9868
  /* @__PURE__ */ jsxs6("div", { className: "sxa:min-w-0", children: [
@@ -9298,6 +9894,43 @@ function AccountOrderDetail({ orderId }) {
9298
9894
  /* @__PURE__ */ jsx7(OrderWarranties, { orderUniqid: order.uniqid })
9299
9895
  ] });
9300
9896
  }
9897
+ function InvoicePdfButton({ orderUniqid }) {
9898
+ const [busy, setBusy] = useState5(false);
9899
+ const [error, setError] = useState5(null);
9900
+ const download = async () => {
9901
+ setBusy(true);
9902
+ setError(null);
9903
+ const response = await callCustomerApi((sdk) => sdk.invoicePdf(orderUniqid));
9904
+ setBusy(false);
9905
+ if (!response.success || response.data === void 0) {
9906
+ setError(response.message?.trim() || t("orders.invoicePdfFailed"));
9907
+ return;
9908
+ }
9909
+ const url = URL.createObjectURL(response.data.blob);
9910
+ const anchor = document.createElement("a");
9911
+ anchor.href = url;
9912
+ anchor.download = response.data.filename ?? "";
9913
+ anchor.click();
9914
+ URL.revokeObjectURL(url);
9915
+ };
9916
+ return /* @__PURE__ */ jsxs6("div", { className: "sxa:mt-4", children: [
9917
+ /* @__PURE__ */ jsxs6(
9918
+ "button",
9919
+ {
9920
+ type: "button",
9921
+ disabled: busy,
9922
+ "aria-busy": busy || void 0,
9923
+ className: "sx-account-button sxa:card-button sxa:card-button--add sxa:disabled:cursor-not-allowed sxa:disabled:opacity-50",
9924
+ onClick: () => void download(),
9925
+ children: [
9926
+ busy ? /* @__PURE__ */ jsx7(BusySpinner, { className: "sxa:mr-1.5 sxa:h-3.5 sxa:w-3.5" }) : /* @__PURE__ */ jsx7(ReceiptIcon, { className: "sxa:mr-1.5 sxa:h-3.5 sxa:w-3.5" }),
9927
+ busy ? t("orders.invoicePdfLoading") : t("orders.invoicePdf")
9928
+ ]
9929
+ }
9930
+ ),
9931
+ error ? /* @__PURE__ */ jsx7(AccountFieldError, { message: error }) : null
9932
+ ] });
9933
+ }
9301
9934
  function OrderWarranties({ orderUniqid }) {
9302
9935
  const { state, reload } = useAccountResource(`warranties:${orderUniqid}`, () => callCustomerApi((sdk) => sdk.warranties(orderUniqid)));
9303
9936
  const [claimed, setClaimed] = useState5({});
@@ -9592,10 +10225,16 @@ function StatTile({ label, value }) {
9592
10225
  ] });
9593
10226
  }
9594
10227
 
10228
+ // src/account/referrals.tsx
10229
+ import { useId, useState as useState6 } from "react";
10230
+
9595
10231
  // src/account/account-referrals.ts
9596
10232
  function isEnrolledInReferrals(summary) {
9597
10233
  return summary.state !== "not_enrolled";
9598
10234
  }
10235
+ function offersReferralLinks(summary) {
10236
+ return isEnrolledInReferrals(summary) || summary.can_create_custom_links;
10237
+ }
9599
10238
  function referralShareUrl(link) {
9600
10239
  const url = link.url?.trim();
9601
10240
  return url ? url : null;
@@ -9603,6 +10242,9 @@ function referralShareUrl(link) {
9603
10242
  function isAwaitingApproval(link) {
9604
10243
  return link.status === "pending";
9605
10244
  }
10245
+ function isShareableLink(link) {
10246
+ return link.status === "active";
10247
+ }
9606
10248
  var CLAIM_TYPE_KEYS = {
9607
10249
  STORE_CREDIT: "referrals.claimStoreCredit",
9608
10250
  CRYPTO_PAYOUT_REQUEST: "referrals.claimCryptoPayout",
@@ -9614,11 +10256,72 @@ function claimTypeKey(type) {
9614
10256
  function isForeignBalanceCurrency(summary, shopCurrency) {
9615
10257
  return summary.balance_currency.toUpperCase() !== shopCurrency.toUpperCase();
9616
10258
  }
10259
+ var LEDGER_STATUS_KEYS = {
10260
+ waiting_payment: "referrals.ledgerWaitingPayment",
10261
+ earned: "referrals.ledgerEarned",
10262
+ in_payout_request: "referrals.ledgerInPayoutRequest",
10263
+ paid_out: "referrals.ledgerPaidOut",
10264
+ store_credit: "referrals.ledgerStoreCredit",
10265
+ split: "referrals.ledgerSplit",
10266
+ voided: "referrals.ledgerVoided"
10267
+ };
10268
+ var LEDGER_STATUS_TONES = {
10269
+ waiting_payment: "PENDING",
10270
+ earned: "APPROVED",
10271
+ in_payout_request: "REQUESTED",
10272
+ paid_out: "PAID",
10273
+ store_credit: "CONVERTED",
10274
+ split: "PAID",
10275
+ voided: "VOIDED"
10276
+ };
10277
+ function commissionLedgerKey(status) {
10278
+ return LEDGER_STATUS_KEYS[status];
10279
+ }
10280
+ function commissionLedgerTone(status) {
10281
+ return LEDGER_STATUS_TONES[status];
10282
+ }
10283
+ function commissionAmounts(commission) {
10284
+ const status = commission.ledger_status;
10285
+ const amount = status === "earned" ? commission.earned_amount : status === "in_payout_request" ? commission.requested_amount : status === "paid_out" ? commission.paid_amount : status === "store_credit" ? commission.store_credit_amount : commission.commission_amount;
10286
+ return {
10287
+ amount,
10288
+ total: Number(amount) !== Number(commission.commission_amount) ? commission.commission_amount : null,
10289
+ paidOut: status !== "paid_out" && Number(commission.paid_amount) > 0 ? commission.paid_amount : null,
10290
+ storeCredit: status !== "store_credit" && Number(commission.store_credit_amount) > 0 ? commission.store_credit_amount : null
10291
+ };
10292
+ }
10293
+ function parseRequestedRate(raw) {
10294
+ const value = raw.trim();
10295
+ if (value === "") return null;
10296
+ if (!/^\d{1,3}([.,]\d{1,2})?$/.test(value)) return void 0;
10297
+ const rate = Number(value.replace(",", "."));
10298
+ return rate <= 100 ? rate : void 0;
10299
+ }
10300
+ function referralLinkInput(draft) {
10301
+ const label = draft.label.trim();
10302
+ const code = draft.code.trim();
10303
+ if (label === "" || code === "") return { ok: false, reason: "required" };
10304
+ const commission = parseRequestedRate(draft.commission);
10305
+ const discount = parseRequestedRate(draft.discount);
10306
+ if (commission === void 0 || discount === void 0) return { ok: false, reason: "rate" };
10307
+ return {
10308
+ ok: true,
10309
+ input: {
10310
+ label,
10311
+ code,
10312
+ ...commission !== null ? { requested_affiliate_revenue_percent: commission } : {},
10313
+ ...discount !== null ? { requested_affiliate_customer_discount_percent: discount } : {}
10314
+ }
10315
+ };
10316
+ }
9617
10317
 
9618
10318
  // src/account/referrals.tsx
9619
- import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
10319
+ import { Fragment, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
10320
+ var FIELD3 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
9620
10321
  function AccountReferrals() {
9621
10322
  const { state, reload } = useAccountDashboard();
10323
+ const [creating, setCreating] = useState6(false);
10324
+ const [created, setCreated] = useState6(null);
9622
10325
  if (state.status === "loading") {
9623
10326
  return /* @__PURE__ */ jsx9(AccountRowsSkeleton, { rows: 3, label: t("referrals.loading") });
9624
10327
  }
@@ -9626,12 +10329,13 @@ function AccountReferrals() {
9626
10329
  return /* @__PURE__ */ jsx9(AccountError, { message: state.message, onRetry: reload });
9627
10330
  }
9628
10331
  const summary = state.data.affiliate;
9629
- if (!isEnrolledInReferrals(summary)) {
10332
+ if (!offersReferralLinks(summary)) {
9630
10333
  return /* @__PURE__ */ jsx9(AccountEmpty, { title: t("referrals.notEnrolledTitle"), body: t("referrals.notEnrolledBody") });
9631
10334
  }
10335
+ const enrolled = isEnrolledInReferrals(summary);
9632
10336
  const { balances, balance_currency: currency } = summary;
9633
10337
  return /* @__PURE__ */ jsxs8("div", { className: "sxa:space-y-8", children: [
9634
- /* @__PURE__ */ jsxs8("div", { children: [
10338
+ enrolled ? /* @__PURE__ */ jsxs8("div", { children: [
9635
10339
  /* @__PURE__ */ jsxs8(AccountCard, { className: "sxa:p-6 sxa:md:p-7", children: [
9636
10340
  /* @__PURE__ */ jsx9("p", { className: "sxa:text-small sxa:text-muted", children: t("referrals.availableLabel") }),
9637
10341
  /* @__PURE__ */ jsx9("p", { className: "sxa:mt-1 sxa:text-h1 sxa:font-bold sxa:tabular-nums", children: formatAccountAmount(balances.available, currency) }),
@@ -9672,71 +10376,249 @@ function AccountReferrals() {
9672
10376
  )
9673
10377
  ] }),
9674
10378
  isForeignBalanceCurrency(summary, state.data.shop.currency) ? /* @__PURE__ */ jsx9("p", { className: "sxa:mt-3 sxa:text-small sxa:text-muted", children: t("referrals.differentCurrency", { currency }) }) : null
9675
- ] }),
10379
+ ] }) : null,
9676
10380
  /* @__PURE__ */ jsxs8("section", { children: [
9677
- /* @__PURE__ */ jsx9(AccountSectionTitle, { children: t("referrals.linksTitle") }),
10381
+ /* @__PURE__ */ jsxs8("div", { className: "sxa:flex sxa:flex-wrap sxa:items-center sxa:justify-between sxa:gap-3", children: [
10382
+ /* @__PURE__ */ jsx9(AccountSectionTitle, { children: t("referrals.linksTitle") }),
10383
+ summary.can_create_custom_links && !creating ? /* @__PURE__ */ jsx9(
10384
+ "button",
10385
+ {
10386
+ type: "button",
10387
+ className: "sx-account-button sxa:card-button sxa:card-button--add",
10388
+ onClick: () => {
10389
+ setCreating(true);
10390
+ setCreated(null);
10391
+ },
10392
+ children: t("referrals.newLink")
10393
+ }
10394
+ ) : null
10395
+ ] }),
9678
10396
  /* @__PURE__ */ jsx9("p", { className: "sxa:mt-1 sxa:text-small sxa:text-muted", children: summary.affiliate_codes_accepted_at_checkout ? t("referrals.codesAccepted") : t("referrals.codesNotAccepted") }),
10397
+ !summary.can_create_custom_links && summary.custom_link_request_disabled_reason ? /* @__PURE__ */ jsx9("p", { className: "sxa:mt-1 sxa:text-small sxa:text-muted", children: summary.custom_link_request_disabled_reason }) : null,
10398
+ created ? /* @__PURE__ */ jsx9(AccountNotice, { message: created === "pending" ? t("referrals.linkRequested") : t("referrals.linkCreated") }) : null,
10399
+ creating && summary.can_create_custom_links ? /* @__PURE__ */ jsx9(
10400
+ NewReferralLinkForm,
10401
+ {
10402
+ onCancel: () => setCreating(false),
10403
+ onCreated: (pending) => {
10404
+ setCreating(false);
10405
+ setCreated(pending ? "pending" : "ready");
10406
+ reload();
10407
+ },
10408
+ onUnknown: reload
10409
+ }
10410
+ ) : null,
9679
10411
  /* @__PURE__ */ jsx9("div", { className: "sxa:mt-4", children: summary.links.length === 0 ? /* @__PURE__ */ jsx9(
9680
10412
  AccountEmpty,
9681
10413
  {
9682
10414
  title: t("referrals.linksEmptyTitle"),
9683
- body: t("referrals.linksEmptyBody")
10415
+ body: summary.can_create_custom_links ? t("referrals.linksEmptyCanCreate") : t("referrals.linksEmptyBody")
9684
10416
  }
9685
10417
  ) : /* @__PURE__ */ jsx9("ul", { className: "sxa:space-y-4", children: summary.links.map((link) => /* @__PURE__ */ jsx9("li", { children: /* @__PURE__ */ jsx9(ReferralLinkCard, { link, currency }) }, link.id)) }) })
9686
10418
  ] }),
9687
- /* @__PURE__ */ jsxs8("section", { children: [
9688
- /* @__PURE__ */ jsx9(AccountSectionTitle, { children: t("referrals.commissionsTitle") }),
9689
- /* @__PURE__ */ jsx9("div", { className: "sxa:mt-4", children: summary.commissions.length === 0 ? /* @__PURE__ */ jsx9(
9690
- AccountEmpty,
9691
- {
9692
- title: t("referrals.commissionsEmptyTitle"),
9693
- body: t("referrals.commissionsEmptyBody")
9694
- }
9695
- ) : /* @__PURE__ */ jsx9("ul", { className: "sxa:space-y-4", children: summary.commissions.map((commission) => /* @__PURE__ */ jsxs8(
9696
- "li",
9697
- {
9698
- className: "sxa:flex sxa:items-center sxa:gap-4 sxa:rounded-input sxa:border sxa:bg-surface sxa:p-5 sxa:shadow-card",
9699
- children: [
9700
- /* @__PURE__ */ jsxs8("div", { className: "sxa:min-w-0 sxa:flex-1", children: [
9701
- /* @__PURE__ */ jsx9("p", { className: "sxa:truncate sxa:text-small sxa:font-semibold", children: t("referrals.commissionFor", { id: commission.invoice_id }) }),
9702
- commission.created_at ? /* @__PURE__ */ jsx9("p", { className: "sxa:mt-1 sxa:text-micro sxa:text-muted", children: formatAccountDate(commission.created_at) }) : null
9703
- ] }),
9704
- /* @__PURE__ */ jsx9("span", { className: "sxa:shrink-0 sxa:text-small sxa:font-semibold sxa:tabular-nums", children: formatAccountAmount(commission.commission_amount, currency) }),
9705
- /* @__PURE__ */ jsx9(StatusChip, { status: commission.status })
9706
- ]
9707
- },
9708
- commission.id
9709
- )) }) })
9710
- ] }),
9711
- /* @__PURE__ */ jsxs8("section", { children: [
9712
- /* @__PURE__ */ jsx9(AccountSectionTitle, { children: t("referrals.balanceTitle") }),
9713
- /* @__PURE__ */ jsx9("div", { className: "sxa:mt-4", children: summary.claims.length === 0 ? /* @__PURE__ */ jsx9(
9714
- AccountEmpty,
9715
- {
9716
- title: t("referrals.balanceEmptyTitle"),
9717
- body: t("referrals.balanceEmptyBody")
9718
- }
9719
- ) : /* @__PURE__ */ jsx9("ul", { className: "sxa:space-y-4", children: summary.claims.map((claim) => {
9720
- const typeKey = claimTypeKey(claim.type);
9721
- return /* @__PURE__ */ jsxs8(
10419
+ enrolled ? /* @__PURE__ */ jsxs8(Fragment, { children: [
10420
+ /* @__PURE__ */ jsxs8("section", { children: [
10421
+ /* @__PURE__ */ jsx9(AccountSectionTitle, { children: t("referrals.commissionsTitle") }),
10422
+ /* @__PURE__ */ jsx9("div", { className: "sxa:mt-4", children: summary.commissions.length === 0 ? /* @__PURE__ */ jsx9(
10423
+ AccountEmpty,
10424
+ {
10425
+ title: t("referrals.commissionsEmptyTitle"),
10426
+ body: t("referrals.commissionsEmptyBody")
10427
+ }
10428
+ ) : /* @__PURE__ */ jsx9("ul", { className: "sxa:space-y-4", children: summary.commissions.map((commission) => /* @__PURE__ */ jsxs8(
9722
10429
  "li",
9723
10430
  {
9724
10431
  className: "sxa:flex sxa:items-center sxa:gap-4 sxa:rounded-input sxa:border sxa:bg-surface sxa:p-5 sxa:shadow-card",
9725
10432
  children: [
9726
10433
  /* @__PURE__ */ jsxs8("div", { className: "sxa:min-w-0 sxa:flex-1", children: [
9727
- /* @__PURE__ */ jsx9("p", { className: "sxa:truncate sxa:text-small sxa:font-semibold", children: typeKey ? t(typeKey) : statusLabel(claim.type) }),
9728
- claim.created_at ? /* @__PURE__ */ jsx9("p", { className: "sxa:mt-1 sxa:text-micro sxa:text-muted", children: formatAccountDate(claim.created_at) }) : null
10434
+ /* @__PURE__ */ jsx9("p", { className: "sxa:truncate sxa:text-small sxa:font-semibold", children: t("referrals.commissionFor", { id: commission.invoice_id }) }),
10435
+ commission.created_at ? /* @__PURE__ */ jsx9("p", { className: "sxa:mt-1 sxa:text-micro sxa:text-muted", children: formatAccountDate(commission.created_at) }) : null
9729
10436
  ] }),
9730
- /* @__PURE__ */ jsx9("span", { className: "sxa:shrink-0 sxa:text-small sxa:font-semibold sxa:tabular-nums", children: formatAccountAmount(claim.amount, claim.currency) }),
9731
- /* @__PURE__ */ jsx9(StatusChip, { status: claim.status })
10437
+ /* @__PURE__ */ jsx9(CommissionAmount, { commission, currency }),
10438
+ /* @__PURE__ */ jsx9(
10439
+ StatusChip,
10440
+ {
10441
+ status: commissionLedgerTone(commission.ledger_status),
10442
+ label: t(commissionLedgerKey(commission.ledger_status))
10443
+ }
10444
+ )
9732
10445
  ]
9733
10446
  },
9734
- claim.id
9735
- );
9736
- }) }) })
9737
- ] })
10447
+ commission.id
10448
+ )) }) })
10449
+ ] }),
10450
+ /* @__PURE__ */ jsxs8("section", { children: [
10451
+ /* @__PURE__ */ jsx9(AccountSectionTitle, { children: t("referrals.balanceTitle") }),
10452
+ /* @__PURE__ */ jsx9("div", { className: "sxa:mt-4", children: summary.claims.length === 0 ? /* @__PURE__ */ jsx9(
10453
+ AccountEmpty,
10454
+ {
10455
+ title: t("referrals.balanceEmptyTitle"),
10456
+ body: t("referrals.balanceEmptyBody")
10457
+ }
10458
+ ) : /* @__PURE__ */ jsx9("ul", { className: "sxa:space-y-4", children: summary.claims.map((claim) => {
10459
+ const typeKey = claimTypeKey(claim.type);
10460
+ return /* @__PURE__ */ jsxs8(
10461
+ "li",
10462
+ {
10463
+ className: "sxa:flex sxa:items-center sxa:gap-4 sxa:rounded-input sxa:border sxa:bg-surface sxa:p-5 sxa:shadow-card",
10464
+ children: [
10465
+ /* @__PURE__ */ jsxs8("div", { className: "sxa:min-w-0 sxa:flex-1", children: [
10466
+ /* @__PURE__ */ jsx9("p", { className: "sxa:truncate sxa:text-small sxa:font-semibold", children: typeKey ? t(typeKey) : statusLabel(claim.type) }),
10467
+ claim.created_at ? /* @__PURE__ */ jsx9("p", { className: "sxa:mt-1 sxa:text-micro sxa:text-muted", children: formatAccountDate(claim.created_at) }) : null
10468
+ ] }),
10469
+ /* @__PURE__ */ jsx9("span", { className: "sxa:shrink-0 sxa:text-small sxa:font-semibold sxa:tabular-nums", children: formatAccountAmount(claim.amount, claim.currency) }),
10470
+ /* @__PURE__ */ jsx9(StatusChip, { status: claim.status })
10471
+ ]
10472
+ },
10473
+ claim.id
10474
+ );
10475
+ }) }) })
10476
+ ] })
10477
+ ] }) : null
9738
10478
  ] });
9739
10479
  }
10480
+ function NewReferralLinkForm({
10481
+ onCancel,
10482
+ onCreated,
10483
+ onUnknown
10484
+ }) {
10485
+ const id = useId();
10486
+ const [draft, setDraft] = useState6({ label: "", code: "", commission: "", discount: "" });
10487
+ const [busy, setBusy] = useState6(false);
10488
+ const [error, setError] = useState6(null);
10489
+ const set = (field) => (event) => {
10490
+ setDraft((current) => ({ ...current, [field]: event.target.value }));
10491
+ setError(null);
10492
+ };
10493
+ const submit = async () => {
10494
+ const parsed = referralLinkInput(draft);
10495
+ if (!parsed.ok) {
10496
+ setError(parsed.reason === "required" ? t("referrals.linkRequired") : t("referrals.linkRateInvalid"));
10497
+ return;
10498
+ }
10499
+ setBusy(true);
10500
+ setError(null);
10501
+ const response = await callCustomerApi((sdk) => sdk.createAffiliateLink(parsed.input));
10502
+ setBusy(false);
10503
+ if (!response.success || response.data === void 0) {
10504
+ setError(response.message?.trim() || t("referrals.linkFailed"));
10505
+ if (response.status === void 0 || response.status >= 500) onUnknown();
10506
+ return;
10507
+ }
10508
+ onCreated(response.data.affiliate_link.status === "pending");
10509
+ };
10510
+ return /* @__PURE__ */ jsx9(AccountCard, { className: "sxa:mt-4 sxa:p-5", children: /* @__PURE__ */ jsxs8(
10511
+ "form",
10512
+ {
10513
+ noValidate: true,
10514
+ onSubmit: (event) => {
10515
+ event.preventDefault();
10516
+ void submit();
10517
+ },
10518
+ children: [
10519
+ /* @__PURE__ */ jsxs8("div", { className: "sxa:grid sxa:gap-4 sxa:sm:grid-cols-2", children: [
10520
+ /* @__PURE__ */ jsxs8("div", { children: [
10521
+ /* @__PURE__ */ jsx9("label", { htmlFor: `${id}-label`, className: "sxa:mb-1.5 sxa:block sxa:text-small sxa:font-medium", children: t("referrals.linkLabel") }),
10522
+ /* @__PURE__ */ jsx9(
10523
+ "input",
10524
+ {
10525
+ id: `${id}-label`,
10526
+ type: "text",
10527
+ maxLength: 100,
10528
+ autoComplete: "off",
10529
+ value: draft.label,
10530
+ disabled: busy,
10531
+ placeholder: t("referrals.linkLabelPlaceholder"),
10532
+ onChange: set("label"),
10533
+ className: FIELD3
10534
+ }
10535
+ )
10536
+ ] }),
10537
+ /* @__PURE__ */ jsxs8("div", { children: [
10538
+ /* @__PURE__ */ jsx9("label", { htmlFor: `${id}-code`, className: "sxa:mb-1.5 sxa:block sxa:text-small sxa:font-medium", children: t("referrals.linkCode") }),
10539
+ /* @__PURE__ */ jsx9(
10540
+ "input",
10541
+ {
10542
+ id: `${id}-code`,
10543
+ type: "text",
10544
+ maxLength: 32,
10545
+ autoComplete: "off",
10546
+ autoCapitalize: "none",
10547
+ spellCheck: false,
10548
+ value: draft.code,
10549
+ disabled: busy,
10550
+ placeholder: "creator-2026",
10551
+ onChange: set("code"),
10552
+ className: FIELD3
10553
+ }
10554
+ )
10555
+ ] }),
10556
+ /* @__PURE__ */ jsxs8("div", { children: [
10557
+ /* @__PURE__ */ jsx9("label", { htmlFor: `${id}-commission`, className: "sxa:mb-1.5 sxa:block sxa:text-small sxa:font-medium", children: t("referrals.linkCommission") }),
10558
+ /* @__PURE__ */ jsx9(
10559
+ "input",
10560
+ {
10561
+ id: `${id}-commission`,
10562
+ type: "text",
10563
+ inputMode: "decimal",
10564
+ autoComplete: "off",
10565
+ value: draft.commission,
10566
+ disabled: busy,
10567
+ placeholder: t("referrals.linkRatePlaceholder"),
10568
+ onChange: set("commission"),
10569
+ className: FIELD3
10570
+ }
10571
+ )
10572
+ ] }),
10573
+ /* @__PURE__ */ jsxs8("div", { children: [
10574
+ /* @__PURE__ */ jsx9("label", { htmlFor: `${id}-discount`, className: "sxa:mb-1.5 sxa:block sxa:text-small sxa:font-medium", children: t("referrals.linkDiscount") }),
10575
+ /* @__PURE__ */ jsx9(
10576
+ "input",
10577
+ {
10578
+ id: `${id}-discount`,
10579
+ type: "text",
10580
+ inputMode: "decimal",
10581
+ autoComplete: "off",
10582
+ value: draft.discount,
10583
+ disabled: busy,
10584
+ placeholder: t("referrals.linkRatePlaceholder"),
10585
+ onChange: set("discount"),
10586
+ className: FIELD3
10587
+ }
10588
+ )
10589
+ ] })
10590
+ ] }),
10591
+ /* @__PURE__ */ jsx9("p", { className: "sxa:mt-3 sxa:text-micro sxa:leading-relaxed sxa:text-muted", children: t("referrals.linkRatesHint") }),
10592
+ error ? /* @__PURE__ */ jsx9(AccountFieldError, { message: error }) : null,
10593
+ /* @__PURE__ */ jsxs8("div", { className: "sxa:mt-4 sxa:flex sxa:flex-wrap sxa:items-center sxa:gap-2", children: [
10594
+ /* @__PURE__ */ jsxs8(
10595
+ "button",
10596
+ {
10597
+ type: "submit",
10598
+ disabled: busy,
10599
+ "aria-busy": busy || void 0,
10600
+ className: "sx-account-cta sxa:cta-button sxa:inline-flex sxa:h-9 sxa:items-center sxa:px-4 sxa:text-small sxa:font-semibold sxa:disabled:cursor-not-allowed sxa:disabled:opacity-50",
10601
+ children: [
10602
+ busy ? /* @__PURE__ */ jsx9(BusySpinner, { className: "sxa:mr-1.5 sxa:h-3.5 sxa:w-3.5" }) : null,
10603
+ busy ? t("referrals.creatingLink") : t("referrals.createLink")
10604
+ ]
10605
+ }
10606
+ ),
10607
+ /* @__PURE__ */ jsx9(
10608
+ "button",
10609
+ {
10610
+ type: "button",
10611
+ disabled: busy,
10612
+ className: "sx-account-button sxa:card-button sxa:card-button--add sxa:disabled:cursor-not-allowed sxa:disabled:opacity-50",
10613
+ onClick: onCancel,
10614
+ children: t("common.cancel")
10615
+ }
10616
+ )
10617
+ ] })
10618
+ ]
10619
+ }
10620
+ ) });
10621
+ }
9740
10622
  function BalanceTile({
9741
10623
  label,
9742
10624
  amount,
@@ -9769,7 +10651,7 @@ function ReferralLinkCard({
9769
10651
  ] })
9770
10652
  ] }),
9771
10653
  isAwaitingApproval(link) ? /* @__PURE__ */ jsx9("p", { className: "sxa:mt-3 sxa:text-small sxa:text-muted", children: t("referrals.awaitingApproval") }) : null,
9772
- /* @__PURE__ */ jsxs8("div", { className: "sxa:mt-3 sxa:flex sxa:flex-wrap sxa:items-center sxa:gap-2", children: [
10654
+ isShareableLink(link) ? /* @__PURE__ */ jsxs8("div", { className: "sxa:mt-3 sxa:flex sxa:flex-wrap sxa:items-center sxa:gap-2", children: [
9773
10655
  /* @__PURE__ */ jsx9("code", { className: "sxa:min-w-0 sxa:flex-1 sxa:truncate sxa:rounded-input sxa:border sxa:bg-bg sxa:px-3 sxa:py-2 sxa:font-mono sxa:text-micro", children: shareValue }),
9774
10656
  /* @__PURE__ */ jsxs8("div", { className: "sxa:flex sxa:shrink-0 sxa:items-center sxa:gap-2", children: [
9775
10657
  shareUrl ? /* @__PURE__ */ jsxs8(
@@ -9787,7 +10669,7 @@ function ReferralLinkCard({
9787
10669
  ) : null,
9788
10670
  /* @__PURE__ */ jsx9(CopyButton, { value: shareValue })
9789
10671
  ] })
9790
- ] }),
10672
+ ] }) : null,
9791
10673
  /* @__PURE__ */ jsxs8("dl", { className: "sxa:mt-4 sxa:grid sxa:grid-cols-3 sxa:gap-4 sxa:border-t sxa:pt-4", children: [
9792
10674
  /* @__PURE__ */ jsx9(StatCell, { label: t("referrals.clicks"), value: String(link.total_clicks) }),
9793
10675
  /* @__PURE__ */ jsx9(StatCell, { label: t("referrals.sales"), value: String(link.total_sales) }),
@@ -9807,11 +10689,23 @@ function StatCell({ label, value }) {
9807
10689
  /* @__PURE__ */ jsx9("dd", { className: "sxa:mt-1 sxa:text-small sxa:font-semibold sxa:tabular-nums", children: value })
9808
10690
  ] });
9809
10691
  }
10692
+ function CommissionAmount({ commission, currency }) {
10693
+ const { amount, total, paidOut, storeCredit } = commissionAmounts(commission);
10694
+ const note = [
10695
+ total !== null ? t("referrals.ofTotal", { total: formatAccountAmount(total, currency) }) : null,
10696
+ paidOut !== null ? t("referrals.paidOutPart", { amount: formatAccountAmount(paidOut, currency) }) : null,
10697
+ storeCredit !== null ? t("referrals.storeCreditPart", { amount: formatAccountAmount(storeCredit, currency) }) : null
10698
+ ].filter((part) => part !== null).join(" \xB7 ");
10699
+ return /* @__PURE__ */ jsxs8("span", { className: "sxa:shrink-0 sxa:text-right sxa:text-small sxa:font-semibold sxa:tabular-nums", children: [
10700
+ /* @__PURE__ */ jsx9("span", { className: "sxa:block", children: formatAccountAmount(amount, currency) }),
10701
+ note ? /* @__PURE__ */ jsx9("span", { className: "sxa:mt-1 sxa:block sxa:text-micro sxa:font-normal sxa:text-muted", children: note }) : null
10702
+ ] });
10703
+ }
9810
10704
 
9811
10705
  // src/account/reseller.tsx
9812
- import { useCallback as useCallback2, useEffect as useEffect3, useId, useRef as useRef3, useState as useState6 } from "react";
9813
- import { Fragment, jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
9814
- var FIELD3 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
10706
+ import { useCallback as useCallback2, useEffect as useEffect3, useId as useId2, useRef as useRef3, useState as useState7 } from "react";
10707
+ import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
10708
+ var FIELD4 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
9815
10709
  var PAGE_SIZE = 20;
9816
10710
  function AccountReseller() {
9817
10711
  const { state, reload } = useAccountResellerProgram();
@@ -9873,11 +10767,11 @@ function ResellerEntry({
9873
10767
  program,
9874
10768
  onDone
9875
10769
  }) {
9876
- const fieldId = useId();
9877
- const [note, setNote] = useState6("");
9878
- const [token, setToken] = useState6("");
9879
- const [busy, setBusy] = useState6(false);
9880
- const [error, setError] = useState6(null);
10770
+ const fieldId = useId2();
10771
+ const [note, setNote] = useState7("");
10772
+ const [token, setToken] = useState7("");
10773
+ const [busy, setBusy] = useState7(false);
10774
+ const [error, setError] = useState7(null);
9881
10775
  const attemptedInviteToken = useRef3(null);
9882
10776
  useEffect3(() => {
9883
10777
  if (program.reseller?.status !== "INVITED") return;
@@ -9969,7 +10863,7 @@ function ResellerEntry({
9969
10863
  setToken(event.target.value);
9970
10864
  setError(null);
9971
10865
  },
9972
- className: FIELD3
10866
+ className: FIELD4
9973
10867
  }
9974
10868
  ),
9975
10869
  error ? /* @__PURE__ */ jsx10(AccountFieldError, { message: error }) : null,
@@ -10024,7 +10918,7 @@ function ResellerEntry({
10024
10918
  setNote(event.target.value);
10025
10919
  setError(null);
10026
10920
  },
10027
- className: `${FIELD3} sxa:resize-none`
10921
+ className: `${FIELD4} sxa:resize-none`
10028
10922
  }
10029
10923
  ),
10030
10924
  error ? /* @__PURE__ */ jsx10(AccountFieldError, { message: error }) : null,
@@ -10047,8 +10941,8 @@ function ResellerEntry({
10047
10941
  ] });
10048
10942
  }
10049
10943
  function ActiveReseller({ relationship }) {
10050
- const [basket, setBasket] = useState6([]);
10051
- const [priced, setPriced] = useState6(null);
10944
+ const [basket, setBasket] = useState7([]);
10945
+ const [priced, setPriced] = useState7(null);
10052
10946
  const replaceBasket = (next) => {
10053
10947
  setBasket(next);
10054
10948
  setPriced(null);
@@ -10158,10 +11052,10 @@ function WholesaleWallet() {
10158
11052
  ] });
10159
11053
  }
10160
11054
  function usePagedList(resetKey, read) {
10161
- const [state, setState] = useState6({ status: "loading" });
10162
- const [attempt, setAttempt] = useState6(0);
10163
- const [moreBusy, setMoreBusy] = useState6(false);
10164
- const [moreError, setMoreError] = useState6(null);
11055
+ const [state, setState] = useState7({ status: "loading" });
11056
+ const [attempt, setAttempt] = useState7(0);
11057
+ const [moreBusy, setMoreBusy] = useState7(false);
11058
+ const [moreError, setMoreError] = useState7(null);
10165
11059
  const readRef = useRef3(read);
10166
11060
  readRef.current = read;
10167
11061
  const stateRef = useRef3(state);
@@ -10245,9 +11139,9 @@ function MorePages({
10245
11139
  ] });
10246
11140
  }
10247
11141
  function WholesaleCatalog({ onAdd }) {
10248
- const searchId = useId();
10249
- const [search, setSearch] = useState6("");
10250
- const [query, setQuery] = useState6("");
11142
+ const searchId = useId2();
11143
+ const [search, setSearch] = useState7("");
11144
+ const [query, setQuery] = useState7("");
10251
11145
  const { state, moreBusy, moreError, loadMore, reload } = usePagedList(
10252
11146
  `reseller-catalog:${query}`,
10253
11147
  async (page) => {
@@ -10293,7 +11187,7 @@ function WholesaleCatalog({ onAdd }) {
10293
11187
  type: "search",
10294
11188
  value: search,
10295
11189
  onChange: (event) => setSearch(event.target.value),
10296
- className: `${FIELD3} sxa:w-36`
11190
+ className: `${FIELD4} sxa:w-36`
10297
11191
  }
10298
11192
  ),
10299
11193
  /* @__PURE__ */ jsx10(
@@ -10420,8 +11314,8 @@ function WholesaleBasket({
10420
11314
  onBasketChange,
10421
11315
  onPriced
10422
11316
  }) {
10423
- const [busy, setBusy] = useState6(false);
10424
- const [error, setError] = useState6(null);
11317
+ const [busy, setBusy] = useState7(false);
11318
+ const [error, setError] = useState7(null);
10425
11319
  const items = basket.map(({ product_id, variant_id, quantity }) => ({
10426
11320
  product_id,
10427
11321
  variant_id,
@@ -10447,7 +11341,7 @@ function WholesaleBasket({
10447
11341
  return /* @__PURE__ */ jsxs9("section", { children: [
10448
11342
  /* @__PURE__ */ jsx10(AccountSectionTitle, { children: t("reseller.basketTitle") }),
10449
11343
  /* @__PURE__ */ jsxs9(AccountCard, { className: "sxa:mt-4 sxa:p-6", children: [
10450
- basket.length === 0 ? /* @__PURE__ */ jsx10("p", { className: "sxa:text-small sxa:text-muted", children: t("reseller.basketEmpty") }) : /* @__PURE__ */ jsxs9(Fragment, { children: [
11344
+ basket.length === 0 ? /* @__PURE__ */ jsx10("p", { className: "sxa:text-small sxa:text-muted", children: t("reseller.basketEmpty") }) : /* @__PURE__ */ jsxs9(Fragment2, { children: [
10451
11345
  /* @__PURE__ */ jsx10("ul", { className: "sxa:space-y-3", children: basket.map((line) => /* @__PURE__ */ jsxs9(
10452
11346
  "li",
10453
11347
  {
@@ -10468,7 +11362,7 @@ function WholesaleBasket({
10468
11362
  step: 1,
10469
11363
  value: line.quantity,
10470
11364
  disabled: busy,
10471
- className: `${FIELD3} sxa:w-24 sxa:tabular-nums`,
11365
+ className: `${FIELD4} sxa:w-24 sxa:tabular-nums`,
10472
11366
  onChange: (event) => onBasketChange(basket.map((entry) => entry === line ? { ...entry, quantity: wholesaleQuantity(event.target.value) } : entry))
10473
11367
  }
10474
11368
  )
@@ -10527,7 +11421,7 @@ function WholesaleBasket({
10527
11421
  ] });
10528
11422
  }
10529
11423
  function WholesaleOrders() {
10530
- const [selected, setSelected] = useState6(null);
11424
+ const [selected, setSelected] = useState7(null);
10531
11425
  const { state, moreBusy, moreError, loadMore, reload } = usePagedList(
10532
11426
  "reseller-orders",
10533
11427
  async (page) => {
@@ -10678,7 +11572,7 @@ function OrderLine({ line, currency }) {
10678
11572
  }
10679
11573
  function ResellerApiKeys() {
10680
11574
  const { state, reload } = useAccountResource("reseller-api-keys", () => callCustomerApi((sdk) => sdk.resellerApiKeys()));
10681
- const [error, setError] = useState6(null);
11575
+ const [error, setError] = useState7(null);
10682
11576
  const heading = /* @__PURE__ */ jsx10(AccountSectionTitle, { children: t("reseller.apiKeysTitle") });
10683
11577
  const elsewhere = /* @__PURE__ */ jsx10("p", { className: "sxa:mt-4 sxa:rounded-input sxa:border sxa:bg-bg sxa:p-5 sxa:text-small sxa:leading-relaxed sxa:text-muted", children: t("reseller.keysElsewhere") });
10684
11578
  if (state.status === "loading") {
@@ -10732,7 +11626,7 @@ function ResellerApiKeys() {
10732
11626
  }
10733
11627
 
10734
11628
  // src/account/rewards.tsx
10735
- import { useState as useState7 } from "react";
11629
+ import { useRef as useRef4, useState as useState8 } from "react";
10736
11630
  import { Link as Link6 } from "react-router-dom";
10737
11631
 
10738
11632
  // src/account/account-loyalty.ts
@@ -10870,7 +11764,7 @@ function optionalEpochSecondsToDate(value) {
10870
11764
 
10871
11765
  // src/account/rewards.tsx
10872
11766
  import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
10873
- var FIELD4 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
11767
+ var FIELD5 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
10874
11768
  function AccountRewards() {
10875
11769
  const { state, reload } = useAccountDashboard();
10876
11770
  const loyalty = useAccountResource("loyalty", () => callCustomerApi((sdk) => sdk.loyalty()), { keepStale: true });
@@ -10968,14 +11862,18 @@ function LoyaltyPoints({
10968
11862
  onCredited
10969
11863
  }) {
10970
11864
  const { state, reload } = resource;
10971
- const [notice, setNotice] = useState7(null);
11865
+ const [notice, setNotice] = useState8(null);
11866
+ const [unconfirmedOn, setUnconfirmedOn] = useState8(null);
10972
11867
  const loyalty = state.status === "ready" ? state.data : null;
11868
+ const onScreen = useRef4(loyalty);
11869
+ onScreen.current = loyalty;
10973
11870
  if (loyalty === null) {
10974
11871
  return state.status === "error" ? /* @__PURE__ */ jsx11(PointsSection, { children: /* @__PURE__ */ jsx11(AccountError, { message: state.message, onRetry: reload }) }) : null;
10975
11872
  }
10976
11873
  if (!loyalty.enabled) return null;
10977
11874
  const stale = state.status === "ready" ? state.staleMessage : void 0;
10978
11875
  const offer = redeemOffer(loyalty);
11876
+ const unconfirmed = unconfirmedOn === loyalty;
10979
11877
  return /* @__PURE__ */ jsxs10(PointsSection, { children: [
10980
11878
  /* @__PURE__ */ jsxs10("div", { className: `sxa:grid sxa:grid-cols-1 sxa:gap-4 ${loyalty.account ? "sxa:sm:grid-cols-2" : ""}`, children: [
10981
11879
  /* @__PURE__ */ jsx11(PointsTile, { label: t("rewards.pointsBalance"), points: loyaltyPointsBalance(loyalty.account) }),
@@ -10989,15 +11887,17 @@ function LoyaltyPoints({
10989
11887
  ] }),
10990
11888
  loyalty.account === null ? /* @__PURE__ */ jsx11("p", { className: "sxa:mt-3 sxa:text-small sxa:text-muted", children: t("rewards.pointsEarnHint") }) : null,
10991
11889
  stale ? /* @__PURE__ */ jsx11(AccountError, { message: stale, onRetry: reload }) : null,
10992
- notice ? /* @__PURE__ */ jsx11(AccountNotice, { message: notice }) : null,
11890
+ unconfirmed ? /* @__PURE__ */ jsx11("p", { role: "status", className: "sxa:mt-3 sxa:text-small sxa:text-muted", children: t("rewards.loading") }) : notice ? /* @__PURE__ */ jsx11(AccountNotice, { message: notice }) : null,
10993
11891
  offer.kind === "below-minimum" && loyalty.account !== null ? /* @__PURE__ */ jsx11("p", { className: "sxa:mt-3 sxa:text-small sxa:text-muted", children: t("rewards.redeemMinimum", { points: offer.minimumPoints }) }) : null,
10994
11892
  offer.kind === "offered" ? /* @__PURE__ */ jsx11(
10995
11893
  RedeemPoints,
10996
11894
  {
10997
11895
  offer,
10998
11896
  currency,
11897
+ locked: unconfirmed,
10999
11898
  onRedeemed: (message) => {
11000
11899
  setNotice(message);
11900
+ setUnconfirmedOn(message === null ? onScreen.current : null);
11001
11901
  reload();
11002
11902
  onCredited();
11003
11903
  }
@@ -11021,12 +11921,13 @@ function PointsTile({ label, points }) {
11021
11921
  function RedeemPoints({
11022
11922
  offer,
11023
11923
  currency,
11924
+ locked,
11024
11925
  onRedeemed
11025
11926
  }) {
11026
- const [typed, setTyped] = useState7("");
11027
- const [confirming, setConfirming] = useState7(false);
11028
- const [submitting, setSubmitting] = useState7(false);
11029
- const [error, setError] = useState7(null);
11927
+ const [typed, setTyped] = useState8("");
11928
+ const [confirming, setConfirming] = useState8(false);
11929
+ const [submitting, setSubmitting] = useState8(false);
11930
+ const [error, setError] = useState8(null);
11030
11931
  const preview = redeemPreview(typed, offer);
11031
11932
  const retype = (value) => {
11032
11933
  setTyped(value);
@@ -11034,7 +11935,7 @@ function RedeemPoints({
11034
11935
  setError(null);
11035
11936
  };
11036
11937
  const submit = async () => {
11037
- if (preview.kind !== "ready") return;
11938
+ if (preview.kind !== "ready" || locked) return;
11038
11939
  setSubmitting(true);
11039
11940
  setError(null);
11040
11941
  try {
@@ -11043,6 +11944,12 @@ function RedeemPoints({
11043
11944
  points: preview.points,
11044
11945
  idempotencyKey
11045
11946
  }));
11947
+ if (response.code === "RESPONSE_CONTRACT_VIOLATION") {
11948
+ setTyped("");
11949
+ setConfirming(false);
11950
+ onRedeemed(null);
11951
+ return;
11952
+ }
11046
11953
  if (!response.success || response.data === void 0) {
11047
11954
  setError(response.message?.trim() || t("rewards.redeemFailed"));
11048
11955
  return;
@@ -11075,18 +11982,18 @@ function RedeemPoints({
11075
11982
  max: offer.balance,
11076
11983
  step: 1,
11077
11984
  value: typed,
11078
- disabled: submitting,
11985
+ disabled: submitting || locked,
11079
11986
  placeholder: String(offer.minimumPoints),
11080
11987
  "aria-invalid": preview.kind === "not-a-number" || preview.kind === "zero-value" ? true : void 0,
11081
11988
  onChange: (event) => retype(event.target.value),
11082
- className: `${FIELD4} sxa:w-36 sxa:tabular-nums`
11989
+ className: `${FIELD5} sxa:w-36 sxa:tabular-nums`
11083
11990
  }
11084
11991
  ),
11085
11992
  !confirming ? /* @__PURE__ */ jsx11(
11086
11993
  "button",
11087
11994
  {
11088
11995
  type: "button",
11089
- disabled: preview.kind !== "ready" || submitting,
11996
+ disabled: preview.kind !== "ready" || submitting || locked,
11090
11997
  className: "sx-account-button sxa:card-button sxa:card-button--add sxa:disabled:cursor-not-allowed sxa:disabled:opacity-50",
11091
11998
  onClick: () => setConfirming(true),
11092
11999
  children: t("rewards.redeemContinue")
@@ -11220,7 +12127,7 @@ function grantStatusLabel(status) {
11220
12127
  }
11221
12128
 
11222
12129
  // src/account/settings.tsx
11223
- import { useEffect as useEffect4, useId as useId2, useRef as useRef4, useState as useState8 } from "react";
12130
+ import { useEffect as useEffect4, useId as useId3, useRef as useRef5, useState as useState9 } from "react";
11224
12131
 
11225
12132
  // src/account/account-settings.ts
11226
12133
  function isRecord2(value) {
@@ -11296,7 +12203,7 @@ function isAcceptableAvatarSize(bytes) {
11296
12203
 
11297
12204
  // src/account/settings.tsx
11298
12205
  import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
11299
- var FIELD5 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
12206
+ var FIELD6 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
11300
12207
  function AccountSettings() {
11301
12208
  const { state, reload } = useAccountDashboard();
11302
12209
  if (state.status === "loading") {
@@ -11315,13 +12222,14 @@ function AccountSettings() {
11315
12222
  }
11316
12223
  ),
11317
12224
  /* @__PURE__ */ jsx12(EmailPreferencesSection, {}),
12225
+ /* @__PURE__ */ jsx12(OrderEmailsSection, {}),
11318
12226
  /* @__PURE__ */ jsx12(DevicesSection, {})
11319
12227
  ] });
11320
12228
  }
11321
12229
  function useLastCompleteRead(state, narrow) {
11322
- const [shown, setShown] = useState8(null);
11323
- const [broken, setBroken] = useState8(false);
11324
- const narrowRef = useRef4(narrow);
12230
+ const [shown, setShown] = useState9(null);
12231
+ const [broken, setBroken] = useState9(false);
12232
+ const narrowRef = useRef5(narrow);
11325
12233
  narrowRef.current = narrow;
11326
12234
  useEffect4(() => {
11327
12235
  if (state.status !== "ready") return;
@@ -11336,17 +12244,17 @@ function ProfileSection({
11336
12244
  email,
11337
12245
  onSaved
11338
12246
  }) {
11339
- const nameId = useId2();
11340
- const [value, setValue] = useState8(name);
11341
- const [busy, setBusy] = useState8(false);
11342
- const [notice, setNotice] = useState8(null);
11343
- const [error, setError] = useState8(null);
11344
- const [avatar, setAvatar] = useState8({ status: "reading" });
11345
- const [avatarAttempt, setAvatarAttempt] = useState8(0);
11346
- const avatarSettled = useRef4(false);
11347
- const [avatarBusy, setAvatarBusy] = useState8(null);
12247
+ const nameId = useId3();
12248
+ const [value, setValue] = useState9(name);
12249
+ const [busy, setBusy] = useState9(false);
12250
+ const [notice, setNotice] = useState9(null);
12251
+ const [error, setError] = useState9(null);
12252
+ const [avatar, setAvatar] = useState9({ status: "reading" });
12253
+ const [avatarAttempt, setAvatarAttempt] = useState9(0);
12254
+ const avatarSettled = useRef5(false);
12255
+ const [avatarBusy, setAvatarBusy] = useState9(null);
11348
12256
  const avatarUrl = avatar.status === "known" ? avatar.url : null;
11349
- const fileInput = useRef4(null);
12257
+ const fileInput = useRef5(null);
11350
12258
  useEffect4(() => {
11351
12259
  let live = true;
11352
12260
  void callCustomerApi((sdk) => sdk.me()).then((result) => {
@@ -11510,7 +12418,7 @@ function ProfileSection({
11510
12418
  setValue(event.target.value);
11511
12419
  setError(null);
11512
12420
  },
11513
- className: `${FIELD5} sxa:max-w-md`
12421
+ className: `${FIELD6} sxa:max-w-md`
11514
12422
  }
11515
12423
  ),
11516
12424
  notice ? /* @__PURE__ */ jsx12(AccountNotice, { message: notice }) : null,
@@ -11540,8 +12448,8 @@ function EmailPreferencesSection() {
11540
12448
  const narrowed = narrowEmailPreferences(payload);
11541
12449
  return narrowed.ok ? { ok: true, value: narrowed.preferences } : { ok: false };
11542
12450
  });
11543
- const [pendingKey, setPendingKey] = useState8(null);
11544
- const [error, setError] = useState8(null);
12451
+ const [pendingKey, setPendingKey] = useState9(null);
12452
+ const [error, setError] = useState9(null);
11545
12453
  const heading = /* @__PURE__ */ jsx12(AccountSectionTitle, { children: t("settings.emailsTitle") });
11546
12454
  if (state.status === "error" || broken) {
11547
12455
  return /* @__PURE__ */ jsxs11("section", { children: [
@@ -11613,16 +12521,74 @@ function EmailPreferencesSection() {
11613
12521
  ] })
11614
12522
  ] });
11615
12523
  }
12524
+ function OrderEmailsSection() {
12525
+ const { state, reload } = useAccountResource("notification-preferences", () => callCustomerApi((sdk) => sdk.notificationPreferences()));
12526
+ const [saved, setSaved] = useState9(null);
12527
+ const [pendingKey, setPendingKey] = useState9(null);
12528
+ const [error, setError] = useState9(null);
12529
+ const heading = /* @__PURE__ */ jsx12(AccountSectionTitle, { children: t("settings.orderEmailsTitle") });
12530
+ if (state.status === "error") {
12531
+ return /* @__PURE__ */ jsxs11("section", { children: [
12532
+ heading,
12533
+ /* @__PURE__ */ jsx12("div", { className: "sxa:mt-4", children: /* @__PURE__ */ jsx12(AccountError, { message: state.message, onRetry: reload }) })
12534
+ ] });
12535
+ }
12536
+ if (state.status === "loading") {
12537
+ return /* @__PURE__ */ jsxs11("section", { children: [
12538
+ heading,
12539
+ /* @__PURE__ */ jsx12("p", { role: "status", className: "sxa:mt-4 sxa:text-small sxa:text-muted", children: t("settings.orderEmailsLoading") })
12540
+ ] });
12541
+ }
12542
+ const shown = saved ?? state.data;
12543
+ const write = async (key, enabled) => {
12544
+ setPendingKey(key);
12545
+ setError(null);
12546
+ const response = await callCustomerApi((sdk) => sdk.updateNotificationPreferences({ [key]: enabled }));
12547
+ setPendingKey(null);
12548
+ if (!response.success || response.data === void 0) {
12549
+ setError(response.message?.trim() || t("settings.emailsSaveFailed"));
12550
+ return;
12551
+ }
12552
+ setSaved(response.data);
12553
+ };
12554
+ const rows = [
12555
+ { key: "order_created_emails", label: t("settings.orderCreated"), note: t("settings.orderCreatedNote") },
12556
+ { key: "order_completed_emails", label: t("settings.orderCompleted"), note: t("settings.orderCompletedNote") },
12557
+ { key: "payment_issue_emails", label: t("settings.paymentIssue"), note: t("settings.paymentIssueNote") }
12558
+ ];
12559
+ return /* @__PURE__ */ jsxs11("section", { children: [
12560
+ heading,
12561
+ /* @__PURE__ */ jsxs11(AccountCard, { className: "sxa:mt-4 sxa:space-y-4 sxa:p-6", children: [
12562
+ error ? /* @__PURE__ */ jsx12(AccountFieldError, { message: error }) : null,
12563
+ rows.map((row) => /* @__PURE__ */ jsxs11("label", { className: "sxa:flex sxa:items-start sxa:gap-3", children: [
12564
+ /* @__PURE__ */ jsx12(
12565
+ "input",
12566
+ {
12567
+ type: "checkbox",
12568
+ checked: shown[row.key],
12569
+ disabled: pendingKey !== null,
12570
+ className: "sxa:mt-1 sxa:h-4 sxa:w-4 sxa:shrink-0",
12571
+ onChange: (event) => void write(row.key, event.target.checked)
12572
+ }
12573
+ ),
12574
+ /* @__PURE__ */ jsxs11("span", { className: "sxa:min-w-0", children: [
12575
+ /* @__PURE__ */ jsx12("span", { className: "sxa:block sxa:text-small sxa:font-medium", children: row.label }),
12576
+ /* @__PURE__ */ jsx12("span", { className: "sxa:mt-1 sxa:block sxa:text-micro sxa:text-muted", children: row.note })
12577
+ ] })
12578
+ ] }, row.key))
12579
+ ] })
12580
+ ] });
12581
+ }
11616
12582
  function DevicesSection() {
11617
12583
  const { state, reload } = useAccountResource("sessions", () => callCustomerApi((sdk) => sdk.sessions()));
11618
12584
  const { shown, broken } = useLastCompleteRead(state, (payload) => {
11619
12585
  const narrowed = narrowCustomerSessions(payload);
11620
12586
  return narrowed.ok ? { ok: true, value: narrowed.sessions } : { ok: false };
11621
12587
  });
11622
- const [armed, setArmed] = useState8(null);
11623
- const [pendingId, setPendingId] = useState8(null);
11624
- const [error, setError] = useState8(null);
11625
- const [notice, setNotice] = useState8(null);
12588
+ const [armed, setArmed] = useState9(null);
12589
+ const [pendingId, setPendingId] = useState9(null);
12590
+ const [error, setError] = useState9(null);
12591
+ const [notice, setNotice] = useState9(null);
11626
12592
  const heading = /* @__PURE__ */ jsx12(AccountSectionTitle, { children: t("settings.devicesTitle") });
11627
12593
  if (state.status === "error" || broken) {
11628
12594
  return /* @__PURE__ */ jsxs11("section", { children: [
@@ -11782,7 +12748,7 @@ function readAvatarUrl(data) {
11782
12748
  }
11783
12749
 
11784
12750
  // src/account/subscriptions.tsx
11785
- import { useState as useState9 } from "react";
12751
+ import { useState as useState10 } from "react";
11786
12752
  import { Link as Link7 } from "react-router-dom";
11787
12753
 
11788
12754
  // src/account/account-subscriptions.ts
@@ -11842,11 +12808,11 @@ function narrowBillingHistory(payload) {
11842
12808
  }
11843
12809
 
11844
12810
  // src/account/subscriptions.tsx
11845
- import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
12811
+ import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
11846
12812
  function AccountSubscriptions() {
11847
12813
  const { state, reload } = useAccountDashboard();
11848
- const [selectedUniqid, setSelectedUniqid] = useState9(null);
11849
- const [notice, setNotice] = useState9(null);
12814
+ const [selectedUniqid, setSelectedUniqid] = useState10(null);
12815
+ const [notice, setNotice] = useState10(null);
11850
12816
  if (state.status === "loading") {
11851
12817
  return /* @__PURE__ */ jsx13(AccountRowsSkeleton, { rows: 3, label: t("subscriptions.loading") });
11852
12818
  }
@@ -11915,9 +12881,9 @@ function SubscriptionDetail({
11915
12881
  onBack,
11916
12882
  onChanged
11917
12883
  }) {
11918
- const [pendingAction, setPendingAction] = useState9(null);
11919
- const [confirmingCancel, setConfirmingCancel] = useState9(false);
11920
- const [actionError, setActionError] = useState9(null);
12884
+ const [pendingAction, setPendingAction] = useState10(null);
12885
+ const [confirmingCancel, setConfirmingCancel] = useState10(false);
12886
+ const [actionError, setActionError] = useState10(null);
11921
12887
  const atPeriodEnd = cancelsAtPeriodEnd(subscription.gateway);
11922
12888
  const run = async (action, call, doneMessage) => {
11923
12889
  setPendingAction(action);
@@ -11944,7 +12910,7 @@ function SubscriptionDetail({
11944
12910
  notice ? /* @__PURE__ */ jsx13(AccountNotice, { message: notice }) : null,
11945
12911
  actionError ? /* @__PURE__ */ jsx13("div", { className: "sxa:mt-3", children: /* @__PURE__ */ jsx13(AccountError, { message: actionError }) }) : null,
11946
12912
  /* @__PURE__ */ jsxs12(AccountCard, { className: "sxa:mt-5 sxa:p-6", children: [
11947
- subscription.plan ? /* @__PURE__ */ jsxs12(Fragment2, { children: [
12913
+ subscription.plan ? /* @__PURE__ */ jsxs12(Fragment3, { children: [
11948
12914
  /* @__PURE__ */ jsx13("p", { className: "sxa:text-h2 sxa:font-bold sxa:tabular-nums", children: formatAccountAmount(subscription.plan.price, subscription.plan.currency) }),
11949
12915
  billing ? /* @__PURE__ */ jsx13("p", { className: "sxa:mt-1 sxa:text-small sxa:text-muted", children: t(billing.key, billing.params) }) : null
11950
12916
  ] }) : null,
@@ -12091,7 +13057,7 @@ function BillingHistoryList({ payload, reload }) {
12091
13057
  }
12092
13058
 
12093
13059
  // src/account/support.tsx
12094
- import { useId as useId3, useState as useState10 } from "react";
13060
+ import { useId as useId4, useState as useState11 } from "react";
12095
13061
 
12096
13062
  // src/account/account-support.ts
12097
13063
  function isRecord4(value) {
@@ -12165,10 +13131,10 @@ function isOwnMessage(role) {
12165
13131
 
12166
13132
  // src/account/support.tsx
12167
13133
  import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
12168
- var FIELD6 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
13134
+ var FIELD7 = "sx-account-field sxa:w-full sxa:rounded-card sxa:border sxa:bg-[color-mix(in_oklab,_var(--sx-bg)_40%,_transparent)] sxa:px-3 sxa:py-2.5 sxa:text-small sxa:shadow-card sxa:placeholder:text-muted sxa:focus-visible:border-accent sxa:focus-visible:ring-[3px] sxa:focus-visible:ring-[color-mix(in_oklab,_var(--sx-accent)_50%,_transparent)] sxa:focus-visible:outline-none";
12169
13135
  function AccountSupport() {
12170
13136
  const { state, reload } = useAccountDashboard();
12171
- const [mode, setMode] = useState10({ name: "list" });
13137
+ const [mode, setMode] = useState11({ name: "list" });
12172
13138
  if (state.status === "loading") {
12173
13139
  return /* @__PURE__ */ jsx14(AccountRowsSkeleton, { rows: 3, label: t("support.loading") });
12174
13140
  }
@@ -12255,11 +13221,11 @@ function CreateTicket({
12255
13221
  onCancel,
12256
13222
  onCreated
12257
13223
  }) {
12258
- const fieldId = useId3();
12259
- const [title, setTitle] = useState10("");
12260
- const [message, setMessage] = useState10("");
12261
- const [busy, setBusy] = useState10(false);
12262
- const [error, setError] = useState10(null);
13224
+ const fieldId = useId4();
13225
+ const [title, setTitle] = useState11("");
13226
+ const [message, setMessage] = useState11("");
13227
+ const [busy, setBusy] = useState11(false);
13228
+ const [error, setError] = useState11(null);
12263
13229
  const submit = async () => {
12264
13230
  if (!isSendableMessage(message)) {
12265
13231
  setError(t("support.tooShort"));
@@ -12307,7 +13273,7 @@ function CreateTicket({
12307
13273
  value: title,
12308
13274
  disabled: busy,
12309
13275
  onChange: (event) => setTitle(event.target.value),
12310
- className: FIELD6
13276
+ className: FIELD7
12311
13277
  }
12312
13278
  ),
12313
13279
  /* @__PURE__ */ jsx14(
@@ -12330,7 +13296,7 @@ function CreateTicket({
12330
13296
  setMessage(event.target.value);
12331
13297
  setError(null);
12332
13298
  },
12333
- className: `${FIELD6} sxa:resize-none`
13299
+ className: `${FIELD7} sxa:resize-none`
12334
13300
  }
12335
13301
  ),
12336
13302
  error ? /* @__PURE__ */ jsx14(AccountFieldError, { message: error }) : null,
@@ -12396,10 +13362,10 @@ function ThreadBody({
12396
13362
  ticket,
12397
13363
  onReplied
12398
13364
  }) {
12399
- const replyId = useId3();
12400
- const [reply, setReply] = useState10("");
12401
- const [busy, setBusy] = useState10(false);
12402
- const [error, setError] = useState10(null);
13365
+ const replyId = useId4();
13366
+ const [reply, setReply] = useState11("");
13367
+ const [busy, setBusy] = useState11(false);
13368
+ const [error, setError] = useState11(null);
12403
13369
  const closed = isTicketClosed(ticket.status);
12404
13370
  const send = async () => {
12405
13371
  if (!isSendableMessage(reply)) {
@@ -12465,7 +13431,7 @@ function ThreadBody({
12465
13431
  setReply(event.target.value);
12466
13432
  setError(null);
12467
13433
  },
12468
- className: `${FIELD6} sxa:resize-none`
13434
+ className: `${FIELD7} sxa:resize-none`
12469
13435
  }
12470
13436
  ),
12471
13437
  error ? /* @__PURE__ */ jsx14(AccountFieldError, { message: error }) : null,
@@ -12489,7 +13455,7 @@ function ThreadBody({
12489
13455
  }
12490
13456
 
12491
13457
  // src/account/account-page.tsx
12492
- import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
13458
+ import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
12493
13459
  var takenPrefill;
12494
13460
  function takeSignInPrefillOnce() {
12495
13461
  if (takenPrefill === void 0) takenPrefill = takeAccountSignInPrefill(document);
@@ -12507,16 +13473,22 @@ function remainingSearch(search) {
12507
13473
  const query = kept.toString();
12508
13474
  return query ? `?${query}` : "";
12509
13475
  }
13476
+ function announceCustomerSessionChange() {
13477
+ notifyFavoritesChanged();
13478
+ }
13479
+ function signOutEndedSession(result) {
13480
+ return result.success || result.status !== void 0;
13481
+ }
12510
13482
  function AccountPage({ frame: Frame, notFound }) {
12511
13483
  const location = useLocation();
12512
13484
  const search = new URLSearchParams(location.search);
12513
13485
  const canonical = canonicalAccountPath(location.pathname, search);
12514
13486
  const view = resolveAccountView(location.pathname, search);
12515
- const [session, setSession] = useState11({ status: "checking" });
12516
- const [signOutError, setSignOutError] = useState11(null);
12517
- const [signingOut, setSigningOut] = useState11(false);
12518
- const [probeToken, setProbeToken] = useState11(0);
12519
- const [prefill, setPrefill] = useState11(takeSignInPrefillOnce);
13487
+ const [session, setSession] = useState12({ status: "checking" });
13488
+ const [signOutError, setSignOutError] = useState12(null);
13489
+ const [signingOut, setSigningOut] = useState12(false);
13490
+ const [probeToken, setProbeToken] = useState12(0);
13491
+ const [prefill, setPrefill] = useState12(takeSignInPrefillOnce);
12520
13492
  useEffect5(() => {
12521
13493
  let active = true;
12522
13494
  captureAccountResellerInvite(document, window);
@@ -12545,14 +13517,15 @@ function AccountPage({ frame: Frame, notFound }) {
12545
13517
  setSignOutError(null);
12546
13518
  const result = await callCustomerApi((sdk) => sdk.logout());
12547
13519
  setSigningOut(false);
12548
- if (!result.success && result.status === void 0) {
13520
+ if (!signOutEndedSession(result)) {
12549
13521
  setSignOutError(result.message?.trim() || t("account.signOutFailed"));
12550
13522
  return;
12551
13523
  }
12552
13524
  setSession({ status: "signed-out" });
13525
+ announceCustomerSessionChange();
12553
13526
  };
12554
13527
  if (canonical !== null) return /* @__PURE__ */ jsx15(Navigate, { to: `${canonical}${remainingSearch(search)}`, replace: true });
12555
- if (view.kind === "unknown-tab") return /* @__PURE__ */ jsx15(Fragment3, { children: notFound });
13528
+ if (view.kind === "unknown-tab") return /* @__PURE__ */ jsx15(Fragment4, { children: notFound });
12556
13529
  return /* @__PURE__ */ jsx15(Frame, { children: /* @__PURE__ */ jsxs14(
12557
13530
  "section",
12558
13531
  {
@@ -12585,6 +13558,7 @@ function AccountPage({ frame: Frame, notFound }) {
12585
13558
  onSignedIn: () => {
12586
13559
  setPrefill(spendSignInPrefill());
12587
13560
  setSession({ status: "signed-in" });
13561
+ announceCustomerSessionChange();
12588
13562
  }
12589
13563
  }
12590
13564
  ) : null,