@adyen/kyc-components 2.52.1 → 2.53.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 (26) hide show
  1. package/dist/es/adyen-kyc-components.es.js +448 -449
  2. package/dist/style.css +147 -227
  3. package/dist/types/components/BasicInformation/component/BasicInformationComponent.d.ts +1 -1
  4. package/dist/types/components/BasicInformation/types.d.ts +1 -0
  5. package/dist/types/components/BusinessDetails/types.d.ts +1 -0
  6. package/dist/types/components/BusinessSelection/BusinessInformationCard.d.ts +2 -1
  7. package/dist/types/components/BusinessSelection/component/BusinessSelectionComponent.d.ts +1 -1
  8. package/dist/types/components/BusinessSelection/types.d.ts +1 -0
  9. package/dist/types/components/Dropins/BusinessDetailsDropin/types.d.ts +1 -1
  10. package/dist/types/components/Dropins/CompanyDropin/components/CompanyDropinComponent.d.ts +1 -1
  11. package/dist/types/components/Dropins/CompanySearchDropin/components/CompanySearchDropinComponent.d.ts +1 -1
  12. package/dist/types/components/Dropins/FormWrapper/FormWrapper.d.ts +2 -1
  13. package/dist/types/components/StepProgressIndicator/StepProgressIndicator.d.ts +8 -0
  14. package/dist/types/components/{internal → embedded-ui}/EmbeddedStatus/EmbeddedStatus.d.ts +2 -2
  15. package/dist/types/components/{internal → embedded-ui}/EmbeddedStatus/statusToTag.d.ts +1 -1
  16. package/dist/types/components/internal/Modal/Modal.d.ts +7 -16
  17. package/dist/types/components/internal/StructuredList/StructuredList.d.ts +10 -0
  18. package/dist/types/components/internal/Svg/svgs.d.ts +2 -3
  19. package/dist/types/core/hooks/singpass/useSingpassMyInfoLogin.d.ts +1 -2
  20. package/dist/types/core/hooks/useBusinessData/types.d.ts +1 -0
  21. package/dist/types/core/hooks/useFormComposer.d.ts +1 -0
  22. package/package.json +1 -1
  23. package/dist/es/owners-DT55tjrZ.js +0 -5
  24. package/dist/es/signatory-BUpU_luQ.js +0 -10
  25. package/dist/es/user-business-BZ3Ko-Oi.js +0 -11
  26. package/dist/types/components/internal/NewModal/Modal.d.ts +0 -11
@@ -51,7 +51,7 @@ const defaultTrans = {
51
51
  ICO: "IČO (Identifikační číslo)",
52
52
  MBO: "MBO",
53
53
  MBS: "Matični broj subjekta trgovačkog suda (MBS)",
54
- Mehrwertsteuernummer: "Mehrwertsteuernummer (MwST), Numéro de TVA, Numero dellimposta sul valore aggiunto (IVA), VAT number",
54
+ Mehrwertsteuernummer: "Mehrwertsteuernummer (MwST), Numéro de TVA, Numero dell'imposta sul valore aggiunto (IVA), VAT number",
55
55
  NIF: "NIF (Número de Identificación Fiscal)",
56
56
  NIFdeIVA: "Número de Identificación a efectos de IVA (Impuesto sobre el Valor Añadido)",
57
57
  NIP: "Numer identyfikacji podatkowej (NIP)",
@@ -83,7 +83,7 @@ const defaultTrans = {
83
83
  acceptedDocumentsForPartnerships: "Accepted documents for partnerships",
84
84
  acceptedDocumentsForPrivateCompanies: "Accepted documents for private companies",
85
85
  acceptedDocumentsForPublicCompanies: "Accepted documents for public companies",
86
- accountCantBeSetUp: "Your account cant be set up as your information couldnt be verified. To find out more, reach out to customer support.",
86
+ accountCantBeSetUp: "Your account can't be set up as your information couldn't be verified. To find out more, reach out to customer support.",
87
87
  accountDetailsDescription: "Provide a few details about you to start accepting live payments.",
88
88
  accountHolder: "Account holder",
89
89
  accountHolderDescriptionCompany: "The bank account holder has to have the same name as your company.",
@@ -115,7 +115,7 @@ const defaultTrans = {
115
115
  addressRegisteredWithSecretaryOfState: "Address registered with the Secretary of State for this company.",
116
116
  addresses: "Addresses",
117
117
  adoptionCertificate: "Adoption certificate",
118
- adyenKeepsDataAsLongAsLegallyRequired: "Adyen only keeps your data for as long as were legally required to. It wont be used for any other purposes or by other third parties than those stated.",
118
+ adyenKeepsDataAsLongAsLegallyRequired: "Adyen only keeps your data for as long as we're legally required to. It won't be used for any other purposes or by other third parties than those stated.",
119
119
  adyenWillOnlyGetTemporaryAccess: "Adyen will only gain temporary access to your bank details, and your data is never shared with third parties.",
120
120
  anAssociation: "An association",
121
121
  anAssociationDescription: "The account belongs to a group of people acting together for a specific non-commercial purpose",
@@ -173,7 +173,7 @@ const defaultTrans = {
173
173
  basicInformationFormHeading: "Basic details about your business",
174
174
  basicInformationFormName: "Basic details",
175
175
  becauseYoureUnderXWeNeedToCollectInformationAboutALegalRepresentative: "Because you're under %{age}, we need to collect information about a legal representative in another step",
176
- beforeSubmittingYourCapitalLoanApplication: "Before submitting your capital loan application, we need to collect some information about you and your business. This information is required by EU financial regulations and will not affect your businesss credit score.",
176
+ beforeSubmittingYourCapitalLoanApplication: "Before submitting your capital loan application, we need to collect some information about you and your business. This information is required by EU financial regulations and will not affect your business's credit score.",
177
177
  belowTaxThreshold: "Earnings are below the mandatory indirect tax registration threshold in this country/region of establishment",
178
178
  beneficiariesDetailsIncl: "Beneficiaries details including number of beneficiaries, full legal names, and any default beneficiaries",
179
179
  beneficiary: "Beneficiary",
@@ -212,7 +212,7 @@ const defaultTrans = {
212
212
  cadastroDePessoasFisicas: "Cadastro de Pessoas Físicas (CPF)",
213
213
  canNotCompleteInstantVerification: "Can not complete instant verification?",
214
214
  cancel: "Cancel",
215
- cantSetUpAcccount: "You cant set up an account",
215
+ cantSetUpAcccount: "You can't set up an account",
216
216
  capitalUserTerms: "Capital User Terms",
217
217
  cardUserTerms: "Card User Terms",
218
218
  cashManagementTrust: "Cash management trust",
@@ -262,7 +262,7 @@ const defaultTrans = {
262
262
  companyRegistrationAddressFormDescription: "Specify the address registered to your company with the Secretary of State.",
263
263
  companyRegistrationAddressFormName: "Registered address",
264
264
  companyRegistrationDocument: "Company registration document",
265
- companyRegistrationDocumentFormDescription: "We need an official document to verify your organizations details.",
265
+ companyRegistrationDocumentFormDescription: "We need an official document to verify your organization's details.",
266
266
  companyRegistrationDocumentFormHeading: "Upload a registration document",
267
267
  companyRegistrationDocumentFormName: "Registration document",
268
268
  companyRegistrationNumber: "Company registration number",
@@ -270,7 +270,7 @@ const defaultTrans = {
270
270
  companyStructure: "Company structure",
271
271
  companyStructureFormDescription: "What type of company do you have?",
272
272
  companyStructureFormName: "Company structure",
273
- companyTaxDocumentFormDescription: "We need an official document to verify your organizations tax details.",
273
+ companyTaxDocumentFormDescription: "We need an official document to verify your organization's tax details.",
274
274
  companyTaxDocumentFormHeading: "Upload a tax document",
275
275
  companyTaxDocumentFormName: "Tax document",
276
276
  companyTrustee: "Company trustee",
@@ -347,7 +347,7 @@ const defaultTrans = {
347
347
  doNotHaveYTunnus: "I do not have a Y-TUNNUS",
348
348
  documentAddressedToName: "The document has to be addressed to %{name}",
349
349
  documentCannotBeDamaged: "The document cannot be damaged",
350
- documentIssuedByGovernmentAuthority: "The document has to be issued by a government authority. Its usually given when a business is created at the local commercial register",
350
+ documentIssuedByGovernmentAuthority: "The document has to be issued by a government authority. It's usually given when a business is created at the local commercial register",
351
351
  documentNotExpiredOrDamaged: "The document cannot be expired or damaged",
352
352
  documentRequirements: "Document requirements",
353
353
  documentShowsTaxIdOfCompany: "The document shows the tax ID number of the company",
@@ -360,7 +360,7 @@ const defaultTrans = {
360
360
  doingBusinessAsNameFiling: "Doing business as (DBA) filing",
361
361
  doingBusinessAsNameFiling__FR: "Trading name filing",
362
362
  doingBusinessAsNameFiling__US: "Doing business as (DBA) filing, such as your articles of incorporation",
363
- dontHaveAccessOnlineBanking: "Dont have access to online banking environment?",
363
+ dontHaveAccessOnlineBanking: "Don't have access to online banking environment?",
364
364
  download: "Download",
365
365
  downloadACopy: "Download a copy",
366
366
  downloadAsPdf: "Download as PDF",
@@ -413,12 +413,12 @@ const defaultTrans = {
413
413
  entityEstablishingTrust: "The entity that establishes a trust.",
414
414
  entityOwning25OrMoreOfTrust: "The entity who owns 25% or more of the property in trust.",
415
415
  entityType: "Entity type",
416
- errorMessage_1_10: "Information couldnt be verified",
416
+ errorMessage_1_10: "Information couldn't be verified",
417
417
  errorMessage_1_1000: "Verification failed. Legal entity declined",
418
418
  errorMessage_1_1001: "There were some technical issues in the verification process.",
419
419
  errorMessage_1_1002: "There are more questions about the submitted information.",
420
420
  errorMessage_1_1003: "The document contained sensitive data.",
421
- errorMessage_1_11: "Document didnt meet requirements",
421
+ errorMessage_1_11: "Document didn't meet requirements",
422
422
  errorMessage_1_12: "Legal entity declined",
423
423
  errorMessage_1_30: "Individual details couldn't be verified",
424
424
  errorMessage_1_3000: "The user couldn't be verified.",
@@ -430,12 +430,12 @@ const defaultTrans = {
430
430
  errorMessage_1_3006: "The name didn't match the national ID number.",
431
431
  errorMessage_1_3007: "An incorrect national ID number was entered.",
432
432
  errorMessage_1_3008: "The ID document image was incomplete.",
433
- errorMessage_1_3009: "The photo on the ID document couldnt be recognized.",
433
+ errorMessage_1_3009: "The photo on the ID document couldn't be recognized.",
434
434
  errorMessage_1_3010: "The ID document image was incomplete or too blurry.",
435
435
  errorMessage_1_3011: "The ID document image was in black and white.",
436
- errorMessage_1_3012: "The image couldnt be recognized as a supported ID document.",
436
+ errorMessage_1_3012: "The image couldn't be recognized as a supported ID document.",
437
437
  errorMessage_1_3013: "The ID document wasn't a supported document type.",
438
- errorMessage_1_3014: "The ID document image didnt contain the MRZ code.",
438
+ errorMessage_1_3014: "The ID document image didn't contain the MRZ code.",
439
439
  errorMessage_1_3015: "The ID document was expired.",
440
440
  errorMessage_1_3016: "The ID document image was of too low quality.",
441
441
  errorMessage_1_3017: "The ID document image was a scan.",
@@ -446,47 +446,47 @@ const defaultTrans = {
446
446
  errorMessage_1_3022: "The ID document image only showed one side of the ID document.",
447
447
  errorMessage_1_3023: "The ID document image only showed parts of the ID document.",
448
448
  errorMessage_1_3024: "The ID document wasn't valid.",
449
- errorMessage_1_3025: "The state didnt match the one on the ID document.",
450
- errorMessage_1_3026: "The ID document didnt show an issuing state.",
449
+ errorMessage_1_3025: "The state didn't match the one on the ID document.",
450
+ errorMessage_1_3026: "The ID document didn't show an issuing state.",
451
451
  errorMessage_1_3027: "The ID document wasn't valid.",
452
- errorMessage_1_3028: "The ID number didnt match the one on the document.",
453
- errorMessage_1_3029: "The ID document didnt show a document number.",
452
+ errorMessage_1_3028: "The ID number didn't match the one on the document.",
453
+ errorMessage_1_3029: "The ID document didn't show a document number.",
454
454
  errorMessage_1_3030: "The ID document wasn't valid.",
455
455
  errorMessage_1_3031: "The ID document wasn't valid.",
456
- errorMessage_1_3032: "The first name didnt match the one on the ID document.",
457
- errorMessage_1_3033: "The last name didnt match the one on the ID document.",
458
- errorMessage_1_3034: "The date of birth didnt match the one on the ID document.",
459
- errorMessage_1_3035: "The country didnt match the one on the ID document.",
456
+ errorMessage_1_3032: "The first name didn't match the one on the ID document.",
457
+ errorMessage_1_3033: "The last name didn't match the one on the ID document.",
458
+ errorMessage_1_3034: "The date of birth didn't match the one on the ID document.",
459
+ errorMessage_1_3035: "The country didn't match the one on the ID document.",
460
460
  errorMessage_1_3036: "The ID document image was too low quality.",
461
461
  errorMessage_1_3037: "The last name didn't match the one on the proof of residential address.",
462
- errorMessage_1_3038: "The first name didnt match the one on the proof of residential address.",
463
- errorMessage_1_3039: "The date of birth didnt match the one on the proof of residential address.",
464
- errorMessage_1_3040: "The proof of residential address didnt show the date it was issued.",
465
- errorMessage_1_3041: "The proof of residential address didnt show a name.",
462
+ errorMessage_1_3038: "The first name didn't match the one on the proof of residential address.",
463
+ errorMessage_1_3039: "The date of birth didn't match the one on the proof of residential address.",
464
+ errorMessage_1_3040: "The proof of residential address didn't show the date it was issued.",
465
+ errorMessage_1_3041: "The proof of residential address didn't show a name.",
466
466
  errorMessage_1_3042: "The proof of residential address didn't show an issuing country.",
467
467
  errorMessage_1_3043: "The proof of residential address wasn't a supported document type.",
468
468
  errorMessage_1_3044: "The proof of residential address was too old.",
469
469
  errorMessage_1_3045: "The proof of residential address image was of too low quality.",
470
470
  errorMessage_1_3046: "The address on the proof of residential address was a PO box.",
471
471
  errorMessage_1_3047: "The proof of national ID number wasn't a supported document type.",
472
- errorMessage_1_3048: "The last name didnt match the one on the proof of national ID number.",
473
- errorMessage_1_3049: "The first name didnt match the one on the proof of national ID number.",
474
- errorMessage_1_3050: "The date of birth didnt match the one on the proof of national ID number.",
472
+ errorMessage_1_3048: "The last name didn't match the one on the proof of national ID number.",
473
+ errorMessage_1_3049: "The first name didn't match the one on the proof of national ID number.",
474
+ errorMessage_1_3050: "The date of birth didn't match the one on the proof of national ID number.",
475
475
  errorMessage_1_3051: "The proof of national ID number image was of too low quality.",
476
476
  errorMessage_1_3052: "An ID document is needed to verify the individual.",
477
477
  errorMessage_1_3062: "The name and 4 digit SSN couldn't be verified.",
478
478
  errorMessage_1_31: "ID document is needed",
479
- errorMessage_1_32: "ID document couldnt be processed",
480
- errorMessage_1_33: "ID document didnt meet requirements",
481
- errorMessage_1_34: "Image of the ID document didnt meet requirements",
479
+ errorMessage_1_32: "ID document couldn't be processed",
480
+ errorMessage_1_33: "ID document didn't meet requirements",
481
+ errorMessage_1_34: "Image of the ID document didn't meet requirements",
482
482
  errorMessage_1_35: "Individual details didn't match the ID document",
483
- errorMessage_1_36: "Proof of residency didnt meet requirements",
483
+ errorMessage_1_36: "Proof of residency didn't meet requirements",
484
484
  errorMessage_1_37: "Image of the proof of residency didn't meet the requirements",
485
485
  errorMessage_1_38: "Individual details didn't match the proof of residency",
486
486
  errorMessage_1_39: "Proof of national ID number didn't meet requirements",
487
487
  errorMessage_1_40: "Image of the proof of national ID number didn't meet the requirements",
488
488
  errorMessage_1_41: "Individual details didn't match the proof of national ID number",
489
- errorMessage_1_50: "Organization details couldnt be verified",
489
+ errorMessage_1_50: "Organization details couldn't be verified",
490
490
  errorMessage_1_5000: "The legal business name couldn't be verified.",
491
491
  errorMessage_1_5001: "The tax ID number couldn't be verified.",
492
492
  errorMessage_1_5002: "The state couldn't be verified.",
@@ -499,7 +499,7 @@ const defaultTrans = {
499
499
  errorMessage_1_5009: "The registration number was provided as tax ID.",
500
500
  errorMessage_1_5010: "The company details couldn't be verified. ",
501
501
  errorMessage_1_5011: "The trade name (doing business as) was entered.",
502
- errorMessage_1_5012: "The submitted company type didnt match the one on the registry.",
502
+ errorMessage_1_5012: "The submitted company type didn't match the one on the registry.",
503
503
  errorMessage_1_5013: "The company was not found in the database.",
504
504
  errorMessage_1_5014: "The registration number couldn't be verified. ",
505
505
  errorMessage_1_5015: "The registration number didn't match the legal business name.",
@@ -543,7 +543,7 @@ const defaultTrans = {
543
543
  errorMessage_1_5053: "The affiliation document was not issued within the last 6 months",
544
544
  errorMessage_1_5067: "The legal name didn't match the one on the VAT registry.",
545
545
  errorMessage_1_51: "Organization details didn't match the document",
546
- errorMessage_1_52: "Registration document didnt meet requirements",
546
+ errorMessage_1_52: "Registration document didn't meet requirements",
547
547
  errorMessage_1_53: "Tax document didn't meet requirements",
548
548
  errorMessage_1_54: "Proof of address didn't meet requirements",
549
549
  errorMessage_1_55: "Proof of ownership is needed",
@@ -618,7 +618,7 @@ const defaultTrans = {
618
618
  errorMessage_1_7013: "The bank document was too low quality.",
619
619
  errorMessage_1_7014: "The bank document wasn't a supported document type.",
620
620
  errorMessage_1_7015: "The bank account country didn't match the one on the bank document.",
621
- errorMessage_1_7016: "The branch code didnt match the one on the bank document.",
621
+ errorMessage_1_7016: "The branch code didn't match the one on the bank document.",
622
622
  errorMessage_1_7017: "The bank account currency didn't match the one on the bank document.",
623
623
  errorMessage_1_7018: "The bank document wasn't officially issued by the bank.",
624
624
  errorMessage_1_7019: "The bank document wasn't issued in the past 12 months.",
@@ -629,7 +629,7 @@ const defaultTrans = {
629
629
  errorMessage_1_72: "Verification could not be completed",
630
630
  errorMessage_1_73: "Bank account access could not be authenticated",
631
631
  errorMessage_1_74: "Bank statement is needed",
632
- errorMessage_1_75: "Bank statement didnt meet requirements",
632
+ errorMessage_1_75: "Bank statement didn't meet requirements",
633
633
  errorMessage_1_76: "Bank details didn't match the bank statement",
634
634
  errorMessage_2_8064: "UBO through ownership was missing.",
635
635
  errorMessage_2_8067: "Signatory was missing.",
@@ -715,7 +715,7 @@ const defaultTrans = {
715
715
  handelsregisternummer: "Handelsregisternummer",
716
716
  hasBankStampOrBankSignature: "Includes a bank stamp or signature",
717
717
  hasDba: "Does your business use a DBA name?",
718
- hasDba__helperText: "A Doing Business As (DBA) name is a version of your business name that may be more recognizable to shoppers but is different from the legal name.",
718
+ hasDba__helperText: "A Doing Business As (DBA) name is a version of your business' name that may be more recognizable to shoppers but is different from the legal name.",
719
719
  hasToBeOfficialDocumentFromBank: "Includes the bank logo, bank name, or bank-specific font",
720
720
  helpUsVerifyCompany: "Help us verify this company.",
721
721
  hideDetails: "Hide details",
@@ -748,11 +748,11 @@ const defaultTrans = {
748
748
  identityNumberExempt: "I don't have an identity number",
749
749
  identityNumberExempt__CA: "I don't have an SIN",
750
750
  identityNumberExempt__US: "I don't have an SSN",
751
- ifNoOwnersSpecifyControllingPersons: "If you dont have any owners holding 25% or more, then specify <strong>all controlling persons</strong>.",
751
+ ifNoOwnersSpecifyControllingPersons: "If you don't have any owners holding 25% or more, then specify <strong>all controlling persons</strong>.",
752
752
  imagesInColor: "Images have to be in color",
753
753
  inReview: "In review",
754
754
  inThePreviousStepOwnedByAParentCompany: "In the last step, you indicated that your business is owned by a parent company. We need to know some information about this company before submitting your application.",
755
- inThePreviousStepOwnedByAnUltimateParentCompany: "In a previous step, you indicated that your business parent company was owned by an ultimate parent company. We need to know some information about this company before submitting your application.",
755
+ inThePreviousStepOwnedByAnUltimateParentCompany: "In a previous step, you indicated that your business' parent company was owned by an ultimate parent company. We need to know some information about this company before submitting your application.",
756
756
  includeFrontAndBack: "Include both the front and back side, each in separate file",
757
757
  includesEIN: "Includes your EIN (Employer Identification Number)",
758
758
  includesLegalCompanyName: "Includes the legal name of your company",
@@ -763,9 +763,9 @@ const defaultTrans = {
763
763
  industryAndNaceCode: "Industry and NACE code",
764
764
  industryExemption: "The goods or services provided are exempt from VAT/GST",
765
765
  infoInUploadedDocumentIsTrue: "All information in the uploaded document must be true and up-to-date.",
766
- informationCouldNotBeSubmitted: "Information couldnt be submitted",
766
+ informationCouldNotBeSubmitted: "Information couldn't be submitted",
767
767
  instant: "Instant",
768
- instantIDVerificationDescription: "Take a photo of a passport, identity card, or drivers license.",
768
+ instantIDVerificationDescription: "Take a photo of a passport, identity card, or driver's license.",
769
769
  instantVerification: "Instant verification",
770
770
  instantVerificationDescription: "Log in to your bank account and get instantly verified.",
771
771
  institutionNumber: "Institution number",
@@ -777,7 +777,7 @@ const defaultTrans = {
777
777
  introductionScreenCompanyDescriptionP1: "For example, your company name and registration number.",
778
778
  introductionScreenCompanyDescriptionP2: "Where to find this information",
779
779
  introductionScreenCompanyTitle: "Company details",
780
- introductionScreenDecisionMakerDescriptionLI1: "Drivers license",
780
+ introductionScreenDecisionMakerDescriptionLI1: "Driver's license",
781
781
  introductionScreenDecisionMakerDescriptionLI2: "Passport",
782
782
  introductionScreenDecisionMakerDescriptionLI3: "ID document",
783
783
  introductionScreenDecisionMakerDescriptionP1: "For example, the name and address of important people in your company.",
@@ -786,13 +786,13 @@ const defaultTrans = {
786
786
  introductionScreenEpilogueDescriptionP1: "We check all this information against official records to verify your identity and comply with financial regulations.",
787
787
  introductionScreenEpilogueDescriptionP2: "Your information will be used only for these purposes.",
788
788
  introductionScreenEpilogueTitle: "Why do we need this information?",
789
- introductionScreenIndividualDescriptionLI1: "Drivers license",
789
+ introductionScreenIndividualDescriptionLI1: "Driver's license",
790
790
  introductionScreenIndividualDescriptionLI2: "Passport",
791
791
  introductionScreenIndividualDescriptionLI3: "ID document",
792
792
  introductionScreenIndividualDescriptionP1: "For example, your name and residential address.",
793
793
  introductionScreenIndividualDescriptionP2: "Where to find this information",
794
794
  introductionScreenIndividualTitle: "Personal details",
795
- introductionScreenPrologueDescriptionP1: "Well ask for some details about your business as part of financial regulations.",
795
+ introductionScreenPrologueDescriptionP1: "We'll ask for some details about your business as part of financial regulations.",
796
796
  introductionScreenPrologueDescriptionP2: "Our advice? Have these details on hand so you can get verified quickly.",
797
797
  introductionScreenPrologueTitle: "Before you begin...",
798
798
  introductionScreenSoleProprietorCompanyDescriptionLI1: "Your sole proprietorship registration document",
@@ -800,16 +800,15 @@ const defaultTrans = {
800
800
  introductionScreenSoleProprietorCompanyDescriptionP2: "Where to find this information",
801
801
  introductionScreenSoleProprietorCompanyTitle: "Sole proprietorship details",
802
802
  introductionScreenTrustDescriptionLI1: "Your trust registration document",
803
- introductionScreenTrustDescriptionP1: "For example, your trusts name and business number. Youll also need to upload your trust deed.",
803
+ introductionScreenTrustDescriptionP1: "For example, your trust's name and business number. You'll also need to upload your trust deed.",
804
804
  introductionScreenTrustDescriptionP2: "Where to find this information",
805
- introductionScreenTrustMemberDescriptionLI1: "Drivers license",
805
+ introductionScreenTrustMemberDescriptionLI1: "Driver's license",
806
806
  introductionScreenTrustMemberDescriptionLI2: "Passport",
807
807
  introductionScreenTrustMemberDescriptionLI3: "ID document",
808
808
  introductionScreenTrustMemberDescriptionP1: "The name, date of birth, and address of trust members such as settlors and beneficiaries.",
809
809
  introductionScreenTrustMemberDescriptionP2: "Where to find this information",
810
810
  introductionScreenTrustMemberTitle: "Trust members",
811
811
  introductionScreenTrustTitle: "Trust details",
812
- invalidBirthDate: "Enter a valid birth date (TODO - explain why this is invalid)",
813
812
  invalidDateOfBirth: "Please enter a valid date of birth",
814
813
  invalidDateOfIncorporation: "Please enter a valid date of incorporation",
815
814
  invalidEmail: "Please enter a valid email",
@@ -904,7 +903,7 @@ const defaultTrans = {
904
903
  madeAMistake: "Made a mistake?",
905
904
  maintenanceModeMessage: "We're currently undergoing maintenance — please keep this page open until maintenance is complete to avoid losing unsaved changes.",
906
905
  makeSureToHaveYourTrustDeed: "Make sure to have your trust deed in hand to complete this information accurately.",
907
- manualIDVerificationDescription: "May take a few days. Upload a copy of a passport, identity, or drivers license.",
906
+ manualIDVerificationDescription: "May take a few days. Upload a copy of a passport, identity, or driver's license.",
908
907
  manualUpload: "Manual upload",
909
908
  manualVerificationDescription: "You also have to provide the bank account details.",
910
909
  maxFileSize: "Max file size: %{maxSize}. Maximal 1 page.",
@@ -924,7 +923,7 @@ const defaultTrans = {
924
923
  myInfoBusinessYouCanGetVerifiedDetails: "With Myinfo business, you can get your business's verified details instantly and skip uploading documents.",
925
924
  myInfoYouCanGetVerifiedDetails: "With Myinfo, you can get your verified details instantly and skip uploading documents.",
926
925
  myName: "My name",
927
- myNameDescription: "Its a personal bank account held in my own name",
926
+ myNameDescription: "It's a personal bank account held in my own name",
928
927
  mySoleProprietorName: "My sole proprietor name",
929
928
  mySoleProprietorNameDescription: "The account is in my name, but I am registered as a sole proprietor, sole trader, or freelancer",
930
929
  myinfoBusinessDetailsRetrieved: "Myinfo business details retrieved",
@@ -935,7 +934,7 @@ const defaultTrans = {
935
934
  nameOfTrustAgreement: "Name of trust agreement",
936
935
  nationalInsuranceNumber: "National Insurance Number (NINO)",
937
936
  nationality: "Nationality",
938
- naturalPersonDescription: "He/she doesnt have any business.",
937
+ naturalPersonDescription: "He/she doesn't have any business.",
939
938
  naturalPersonTitle: "Natural person",
940
939
  needHelpYouCanAlwaysReachOutToCustomerSupport: "Need help? You can always reach out to customer support.",
941
940
  next: "Next",
@@ -966,21 +965,21 @@ const defaultTrans = {
966
965
  onboardingRedirectAwaitingCtaButton: "Continue",
967
966
  onboardingRedirectAwaitingDescriptionP1: "Verify your business details to start receiving payments.",
968
967
  onboardingRedirectInReviewCtaButton: "Go to details",
969
- onboardingRedirectInReviewDescriptionP1: "Were reviewing your details. It might take up to 2 business days.",
968
+ onboardingRedirectInReviewDescriptionP1: "We're reviewing your details. It might take up to 2 business days.",
970
969
  onboardingRedirectLinkError: "Onboarding link not available at the moment, please try again later.",
971
970
  onboardingRedirectOpenError: "Pop-up blocker prevented redirecting, please allow pop-ups for this site.",
972
- onboardingRedirectRejectedDescriptionP1: "Your account cant be set up.",
971
+ onboardingRedirectRejectedDescriptionP1: "Your account can't be set up.",
973
972
  onboardingRedirectUnsuccessfulCtaButton: "Update details",
974
- onboardingRedirectUnsuccessfulDescriptionP1: "We couldnt verify some details. Check if theyre correct and make any updates needed.",
973
+ onboardingRedirectUnsuccessfulDescriptionP1: "We couldn't verify some details. Check if they're correct and make any updates needed.",
975
974
  onboardingRedirectVerifiedDescriptionP1: "Your details are verified.",
976
975
  onfidoIsOurTrustedPartner: "Onfido is our trusted partner helping speed up your account setup by verifying your identity in real-time. ",
977
976
  onfidoWillGiveFeedbackInRealTime: "Onfido will give you feedback in real-time",
978
977
  onlyEnterNormalCharacters: "Please only enter normal characters",
979
978
  operationalAddress: "Operational address",
980
979
  operationalAddressHeader: "Additional address",
981
- operationalAddressHeaderDescription: "Is there a different address for your companys main business operations?",
980
+ operationalAddressHeaderDescription: "Is there a different address for your company's main business operations?",
982
981
  operationalAddressIsNotSameItemName: "Yes, our headquarters are at a different location",
983
- operationalAddressIsSame: "Is there a different address for your companys main business operations?",
982
+ operationalAddressIsSame: "Is there a different address for your company's main business operations?",
984
983
  operationalAddressIsSameItemName: "No, the registered address is where we operate",
985
984
  optional: "(optional)",
986
985
  orSoleProprietorshipName: "or sole proprietorship's name",
@@ -990,7 +989,7 @@ const defaultTrans = {
990
989
  otherBusinessInformation: "Other business information",
991
990
  otherInformation: "Other information",
992
991
  otherTrust: "Other trust",
993
- ourFinancialServicesAreNotAvailableYetForPartnershipsAndAssociations: "Our financial services arent available yet for partnerships and associations",
992
+ ourFinancialServicesAreNotAvailableYetForPartnershipsAndAssociations: "Our financial services aren't available yet for partnerships and associations",
994
993
  owner: "Owner",
995
994
  ownerDescription: "Someone who owns 25% or more of the company (directly or indirectly)",
996
995
  ownerGuideDescription: "An <strong>owner</strong> is someone who owns 25% or more of the company, through voting rights, equity, or similar.",
@@ -1075,12 +1074,12 @@ const defaultTrans = {
1075
1074
  publicCompanyTitle: "Public company",
1076
1075
  publicTradingTrust: "Public trading trust",
1077
1076
  ranIntoTechnicalError: "We ran into a technical error",
1078
- reasonForFillingCompanyAddressDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1079
- reasonForFillingCompanyRegistrationDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1080
- reasonForFillingIndividualAddressDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1081
- reasonForFillingIndividualPersonalDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1082
- reasonForFillingPayoutAccountDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1083
- reasonForFillingPayoutDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1077
+ reasonForFillingCompanyAddressDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1078
+ reasonForFillingCompanyRegistrationDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1079
+ reasonForFillingIndividualAddressDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1080
+ reasonForFillingIndividualPersonalDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1081
+ reasonForFillingPayoutAccountDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1082
+ reasonForFillingPayoutDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1084
1083
  region: "Region",
1085
1084
  registeredAddress: "Registered address",
1086
1085
  registeredAddressHeaderDescription: "The address as it appears on your company's official registration documents.",
@@ -1091,7 +1090,7 @@ const defaultTrans = {
1091
1090
  registrationAddress: "Registration address",
1092
1091
  registrationDetails: "Registration details",
1093
1092
  registrationDocument: "Registration document",
1094
- registrationDocumentSubTitle: "Upload your companys business registration document. We need to see this document so we can verify your company.",
1093
+ registrationDocumentSubTitle: "Upload your company's business registration document. We need to see this document so we can verify your company.",
1095
1094
  registrationNumber: "Registration number",
1096
1095
  registrationNumber__US: "State registration number",
1097
1096
  registrationNumber__helperText__US: "This helps us better identify and verify your business.",
@@ -1101,7 +1100,7 @@ const defaultTrans = {
1101
1100
  regonKrsNumber: "REGON / KRS number",
1102
1101
  rejected: "Rejected",
1103
1102
  relationshipTo: "Relationship to %{firstName} %{lastName}",
1104
- remediationFormErrorMessage: "Some information couldnt be verified. Information in this form may need to be adjusted.",
1103
+ remediationFormErrorMessage: "Some information couldn't be verified. Information in this form may need to be adjusted.",
1105
1104
  remediationMessage_1_100: "No remediation possible",
1106
1105
  remediationMessage_1_101: "Contact Support",
1107
1106
  remediationMessage_1_102: "Upload a different document",
@@ -1115,7 +1114,7 @@ const defaultTrans = {
1115
1114
  remediationMessage_1_307: "Upload a proof of national ID number",
1116
1115
  remediationMessage_1_308: "Upload a different proof of national ID number",
1117
1116
  remediationMessage_1_309: "Upload a different image of the proof of national ID number",
1118
- remediationMessage_1_316: "Provide complete 9-digits Social Security Number number or upload an ID document if you dont have SSN.",
1117
+ remediationMessage_1_316: "Provide complete 9-digits Social Security Number number or upload an ID document if you don't have SSN.",
1119
1118
  remediationMessage_1_500: "Update organization details",
1120
1119
  remediationMessage_1_501: "Upload a registration document",
1121
1120
  remediationMessage_1_502: "Upload a different registration document",
@@ -1152,7 +1151,7 @@ const defaultTrans = {
1152
1151
  removeDecisionMaker: "remove %{decisionMaker}",
1153
1152
  removeTrustMember: "Remove %{trustMember}",
1154
1153
  removing: "Removing...",
1155
- requiredIfApplicable: "Required if its applicable ",
1154
+ requiredIfApplicable: "Required if it's applicable ",
1156
1155
  requirements: "Requirements:",
1157
1156
  requiresDecisionMakers: "Requires decision-makers",
1158
1157
  requiresSignatory: "Requires signatory",
@@ -1214,8 +1213,8 @@ const defaultTrans = {
1214
1213
  signatoryGuideDescription: "A <strong>signatory</strong> has been given authority to sign official documents on behalf of the company. Usually a signatory is also an owner or a controlling person.",
1215
1214
  signed: "Signed",
1216
1215
  signer: "Signer",
1217
- singingUpAsCompanyButLooksLikeYouAreAnIndividual: "Youre now signing up as an company. But it looks like youre an individual who uses your personal bank account to receive payouts.",
1218
- singingUpAsIndividualButLooksLikeYouAreACompany: "Youre now signing up as an individual. But it looks like youre a company that uses a company bank account to receive payouts.",
1216
+ singingUpAsCompanyButLooksLikeYouAreAnIndividual: "You're now signing up as an company. But it looks like you're an individual who uses your personal bank account to receive payouts.",
1217
+ singingUpAsIndividualButLooksLikeYouAreACompany: "You're now signing up as an individual. But it looks like you're a company that uses a company bank account to receive payouts.",
1219
1218
  siret: "SIRET",
1220
1219
  skRegistrationNumber: "Identifikačné číslo (IČO)",
1221
1220
  skTaxId: "Identifikačné číslo pre daň z pridanej hodnoty (IČ DPH)",
@@ -1230,7 +1229,7 @@ const defaultTrans = {
1230
1229
  someInformationWillNotBeSaved: "Some information that you entered previously will not be saved. ",
1231
1230
  someoneAppointedToManageACompanysBusinessAndAffairs: "Someone appointed to manage a company's business and affairs.",
1232
1231
  sorryAnErrorOccurred: "We are sorry, an error has occurred",
1233
- sorryWeCantSetUpAnAccountForYou: "Sorry, we cant set up an account for you",
1232
+ sorryWeCantSetUpAnAccountForYou: "Sorry, we can't set up an account for you",
1234
1233
  sortCode: "Sort code",
1235
1234
  ssn: "SSN",
1236
1235
  stamregister: "Stamregister erhverv (SE-nummer)",
@@ -1297,7 +1296,7 @@ const defaultTrans = {
1297
1296
  thereWasAnErrorTryAgain: "There was an error, please try again",
1298
1297
  thisIsMyBusiness: "This is my business",
1299
1298
  thisMeansYouHaveAParentCompany: "If yes, this means you have a parent company, such as a global headquarters or a holding company.",
1300
- thisMeansYouHaveAnUltimateParentCompany: "If yes, this means you have an ultimate parent company. An ultimate parent company is the company thats highest in the corporate structure. Learn more.",
1299
+ thisMeansYouHaveAnUltimateParentCompany: "If yes, this means you have an ultimate parent company. An ultimate parent company is the company that's highest in the corporate structure. Learn more.",
1301
1300
  thisPageIsNowInactive: "This page is now inactive",
1302
1301
  thisSessionWillExpireIn: "This session will expire in %{timeUntilExpiry}. Continue working to avoid losing any unsaved data.",
1303
1302
  toCompleteProcessReviewAndSignOfficialDocumentation: "To complete this process, review and sign the official documentation.",
@@ -1315,7 +1314,7 @@ const defaultTrans = {
1315
1314
  trustDeed: "Trust deed",
1316
1315
  trustDetails: "Trust details",
1317
1316
  trustDetailsDescription: "To prepare your account, we need information about your trust.",
1318
- trustDocumentDescription: "We wont be able to verify your trust without all required information. Make sure the following information is visible on your document:",
1317
+ trustDocumentDescription: "We won't be able to verify your trust without all required information. Make sure the following information is visible on your document:",
1319
1318
  trustInstrument: "Trust instrument",
1320
1319
  trustMembers: "Trust members",
1321
1320
  trustMembersDescription: "Provide information for all trustee, settlor, protector and beneficiary associated with the trust contract.",
@@ -1386,7 +1385,7 @@ const defaultTrans = {
1386
1385
  vatNumberExempted: "Exempted from VAT",
1387
1386
  vatNummerMomsregistreringsnummerOrMomsnummer: "VAT-nummer, Momsregistreringsnummer, or Momsnummer",
1388
1387
  vatRegistrationNumber: "VAT registration number",
1389
- verificationErrorMessage: "Some information couldnt be verified. Click to see what needs to be adjusted.",
1388
+ verificationErrorMessage: "Some information couldn't be verified. Click to see what needs to be adjusted.",
1390
1389
  verificationMethod: "Verification method",
1391
1390
  verified: "Verified",
1392
1391
  verifiedInformation: "Verified information",
@@ -1408,7 +1407,7 @@ const defaultTrans = {
1408
1407
  whatIsTheDifferenceBetweenTheseRoles: "What is the difference between these roles?",
1409
1408
  whatTypeOfCompanyDoYouHave: "What type of company do you have?",
1410
1409
  whatTypeOfTrusteeAreYou: "What type of trustee are you?",
1411
- whatTypeOfYourMembersEntity: "Whats the type of your members entity?",
1410
+ whatTypeOfYourMembersEntity: "What's the type of your member's entity?",
1412
1411
  whereCanIFindTheseNumbersOnMyDriversLicense: "Where can I find these numbers on my driver's license?",
1413
1412
  whereToFindNumbersOnDriversLicense: "Depending on the issuing state the position of these numbers might differ, but the license number is always on the front side of the card and the card number is in most cases located on the back of the license.",
1414
1413
  whereToFindNumbersOnDriversLicense__NZ: "The license number and version number are always on the front side of the card.",
@@ -1418,8 +1417,8 @@ const defaultTrans = {
1418
1417
  whichTypeOfRegistrationNumberDoYouHave: "Which type of registration number do you have?",
1419
1418
  whichTypeOfTaxIdNumberDoYouHave: "Which type of tax identification number do you have?",
1420
1419
  whyDoINeedToFillInThisInformation: "Why do I need to fill in this information?",
1421
- wouldYouLikeToSignUpAsCompanyInstead: "Would you like to sign up as a company instead? (Youll have to re-enter some information from before.)",
1422
- wouldYouLikeToSignUpAsIndividualInstead: "Would you like to sign up as an individual instead? (Youll have to re-enter some information from before.)",
1420
+ wouldYouLikeToSignUpAsCompanyInstead: "Would you like to sign up as a company instead? (You'll have to re-enter some information from before.)",
1421
+ wouldYouLikeToSignUpAsIndividualInstead: "Would you like to sign up as an individual instead? (You'll have to re-enter some information from before.)",
1423
1422
  xCharactersLeft: "%{charactersLeft} characters left",
1424
1423
  xMinutes: "%{minutes} minutes",
1425
1424
  xMinutesAndYSeconds: "%{minutes} and %{seconds}",
@@ -1430,17 +1429,17 @@ const defaultTrans = {
1430
1429
  yesJudicialAdministration: "Yes, the company is under judicial administration, receivership or similar measures",
1431
1430
  yesOtherLegalMeasures: "Yes, the company is facing other legal measures",
1432
1431
  youAlsoHaveToUploadSomeSupportingDocuments: "You'll also have to upload some supporting documents.",
1433
- youAreIndividualOrCompanyAndUseBankAccountInNameOfPartnershipOrAssociation: "Youre an individual or company, and you use a bank account in the name of a partnership, or association.",
1434
- youAreIndividualOrCompanyAndUseBankAccountInNameOfTrustPartnershipOrAssociation: "Youre an individual or company, and you use a bank account in the name of a trust, partnership, or association.",
1435
- youAreNotSoleProprietorAndUseBankAccount: "Youre not a registered sole proprietor, and you use a bank account in your name.",
1436
- youAreRegisteredSoleProprietorAndUseBankAccount: "Youre a registered sole proprietor, and you use a bank account in your name or sole proprietorships name.",
1437
- youAreTrusteeManagingTheTrustForBeneficiaries: "Youre a trustee managing the trust for beneficiaries.",
1432
+ youAreIndividualOrCompanyAndUseBankAccountInNameOfPartnershipOrAssociation: "You're an individual or company, and you use a bank account in the name of a partnership, or association.",
1433
+ youAreIndividualOrCompanyAndUseBankAccountInNameOfTrustPartnershipOrAssociation: "You're an individual or company, and you use a bank account in the name of a trust, partnership, or association.",
1434
+ youAreNotSoleProprietorAndUseBankAccount: "You're not a registered sole proprietor, and you use a bank account in your name.",
1435
+ youAreRegisteredSoleProprietorAndUseBankAccount: "You're a registered sole proprietor, and you use a bank account in your name or sole proprietorship's name.",
1436
+ youAreTrusteeManagingTheTrustForBeneficiaries: "You're a trustee managing the trust for beneficiaries.",
1438
1437
  youCanOnlyUseABankAccountInTheCountryRegionWhereYouLive: "You can only use a bank account in the country/region where you live.",
1439
1438
  youCanOnlyUseABankAccountInTheCountryRegionWhereYourCompanyIsRegistered: "You can only use a bank account in the country/region where your company is registered.",
1440
- youHaveSuccessfullyProvidedTheIdDocument: "Youve successfully provided the ID document.",
1439
+ youHaveSuccessfullyProvidedTheIdDocument: "You've successfully provided the ID document.",
1441
1440
  youHaveUnsavedChanges: "You have unsaved changes",
1442
1441
  youMustXYearsOldToContinue: "You must be at least %{minimumAge} years old to continue",
1443
- youSuccessfullyVerifiedAccount: "Youve successfully verified your bank account.",
1442
+ youSuccessfullyVerifiedAccount: "You've successfully verified your bank account.",
1444
1443
  yourAssociationIsRegisteredItWasSetUpForNonCommercialPurpose: "Your association is registered. It was set up for recreational, cultural, or non-profit purposes.",
1445
1444
  yourBankWillConfirmYourAccountDetails: "Your bank will confirm your account details to us.",
1446
1445
  yourBusinessInformation: "Your business information",
@@ -2115,6 +2114,9 @@ function useBusinessData({
2115
2114
  setSearchResults(void 0);
2116
2115
  setVerifiedBusiness(void 0);
2117
2116
  };
2117
+ const resetTinVerification = () => {
2118
+ setInvalidTin(false);
2119
+ };
2118
2120
  return {
2119
2121
  // Methods
2120
2122
  searchForBusiness,
@@ -2122,6 +2124,7 @@ function useBusinessData({
2122
2124
  verifyBusinessData,
2123
2125
  clearTrustedBusinessData,
2124
2126
  resetBusinessData,
2127
+ resetTinVerification,
2125
2128
  // Data
2126
2129
  isSearching,
2127
2130
  isFetching,
@@ -2352,7 +2355,7 @@ const NO_ALPHABET_REGEX = /^[^a-zA-Z]*$/;
2352
2355
  const INDIVIDUAL_VALID_CHAR_REGEX = /^[\w\s\-—./']*$/;
2353
2356
  const OTHER_ENTITIES_VALID_CHAR_REGEX = /^[\w\s,.;:\-—&!?@()"'/\\+]+$/;
2354
2357
  const matchesRegex = (regex, input) => isString(input) && regex.test(input ?? "");
2355
- const hasRepeatedCharacters = (input) => !isEmpty(input) && new Set(input).size === 1;
2358
+ const hasRepeatedCharacters = (input) => !isEmpty(input) && input.length > 1 && new Set(input).size === 1;
2356
2359
  const isValidMinLength = (input, minLength = 1) => !isEmpty(input) && input.length >= minLength;
2357
2360
  const isInvalidName = (input) => {
2358
2361
  const invalidNames = /* @__PURE__ */ new Set(["John Doe", "Jane Doe", "ABCD", "ABCDE", "ABCDEF", "ABCDEFG", "My Customer", "An other", "n/a", "not applicable", "n/A", "N/A", "N/a", "N\\ /A", "not app", "null"]);
@@ -2397,6 +2400,7 @@ const svgs = {
2397
2400
  store: lazy(() => import("./store-BLl8m644.js")),
2398
2401
  trust: lazy(() => import("./partner-B9xMZpSw.js")),
2399
2402
  user: lazy(() => import("./person-lPJ07vyF.js")),
2403
+ "user-business": lazy(() => import("./document-person-BPjqMJVL.js")),
2400
2404
  upload: lazy(() => import("./upload-XwV0PfcC.js")),
2401
2405
  "users-3": lazy(() => import("./4-people-BTQ6Okmp.js")),
2402
2406
  warning: lazy(() => import("./warning-filled-Od0v7tGX.js")),
@@ -2421,10 +2425,7 @@ const svgs = {
2421
2425
  "singpass-verification-instant": lazy(() => Promise.resolve().then(() => singpassVerificationInstant)),
2422
2426
  "singpass-verification-manual": lazy(() => Promise.resolve().then(() => singpassVerificationManual)),
2423
2427
  // These do not have a good equivalent in the icon package for now
2424
- owners: lazy(() => import("./owners-DT55tjrZ.js")),
2425
2428
  review: lazy(() => import("./review-C4CnZ2XP.js")),
2426
- signatory: lazy(() => import("./signatory-BUpU_luQ.js")),
2427
- "user-business": lazy(() => import("./user-business-BZ3Ko-Oi.js")),
2428
2429
  // id verification
2429
2430
  "onfido-logo": lazy(() => import("./onfido-logo-i_oduqdE.js")),
2430
2431
  "tink-logo": lazy(() => import("./tink-logo-CXMbO28D.js")),
@@ -2433,6 +2434,7 @@ const svgs = {
2433
2434
  "plaid-logo": lazy(() => import("./plaid-logo-4nYeR9iX.js")),
2434
2435
  "trustly-logo": lazy(() => import("./trustly-logo-YJslAOYF.js"))
2435
2436
  };
2437
+ const unscalableIconNames = ["arrow-left", "arrow-right", "bank", "bin", "check", "checkmark", "checkmark-small", "chevron-down", "chevron-right", "chevron-left", "chevron-up", "company", "company-2", "contract", "cross", "decision-maker", "document", "download", "edit", "info-circle", "field-error", "image", "light-bulb", "location", "more-horiz", "new-document", "payout", "pci", "plus", "plus-small", "remove", "save", "search", "store", "trust", "user", "user-business", "upload", "users-3", "warning", "wrong"];
2436
2438
  const logger$D = createLogger("Icon");
2437
2439
  const Svg = ({
2438
2440
  className,
@@ -2442,6 +2444,7 @@ const Svg = ({
2442
2444
  type
2443
2445
  }) => {
2444
2446
  const LazyLoadedSvg = svgs[name];
2447
+ const viewBox = unscalableIconNames.includes(name) ? "0 0 16 16" : void 0;
2445
2448
  if (!LazyLoadedSvg) {
2446
2449
  logger$D.error(`No such svg: "${name}"`);
2447
2450
  return null;
@@ -2451,7 +2454,11 @@ const Svg = ({
2451
2454
  "data-testid": testId,
2452
2455
  children: jsx(Suspense, {
2453
2456
  fallback: null,
2454
- children: jsx(LazyLoadedSvg, {
2457
+ children: viewBox ? jsx(LazyLoadedSvg, {
2458
+ alt,
2459
+ "aria-hidden": type === "icon",
2460
+ viewBox
2461
+ }) : jsx(LazyLoadedSvg, {
2455
2462
  alt,
2456
2463
  "aria-hidden": type === "icon"
2457
2464
  })
@@ -3921,12 +3928,13 @@ const Tag = ({
3921
3928
  children
3922
3929
  });
3923
3930
  };
3924
- const styles$3 = {
3931
+ const styles$4 = {
3925
3932
  "adyen-kyc-dropdown": "adyen-kyc-dropdown",
3926
3933
  "adyen-kyc-dropdown-button": "adyen-kyc-dropdown-button",
3927
3934
  "adyen-kyc-dropdown-button--active": "adyen-kyc-dropdown-button--active",
3928
3935
  "adyen-kyc-filter-input": "adyen-kyc-filter-input",
3929
3936
  "adyen-kyc-dropdown-list": "adyen-kyc-dropdown-list",
3937
+ "adyen-kyc-dropdown-list__transformer": "adyen-kyc-dropdown-list__transformer",
3930
3938
  "adyen-kyc-dropdown-list--active": "adyen-kyc-dropdown-list--active",
3931
3939
  "adyen-kyc-dropdown-element": "adyen-kyc-dropdown-element"
3932
3940
  };
@@ -3977,10 +3985,10 @@ function SelectButton({
3977
3985
  "aria-haspopup": "listbox",
3978
3986
  className: cx({
3979
3987
  "adyen-kyc-dropdown-button": true,
3980
- [styles$3["adyen-kyc-dropdown-button"]]: true,
3988
+ [styles$4["adyen-kyc-dropdown-button"]]: true,
3981
3989
  "adyen-kyc-dropdown-button--readonly": readonly,
3982
3990
  "adyen-kyc-dropdown-button--active": showList,
3983
- [styles$3["adyen-kyc-dropdown-button--active"]]: showList,
3991
+ [styles$4["adyen-kyc-dropdown-button--active"]]: showList,
3984
3992
  "adyen-kyc-dropdown-button--invalid": isInvalid,
3985
3993
  "adyen-kyc-dropdown-field--valid": isValid,
3986
3994
  "adyen-kyc-dropdown-button-search": isSearch
@@ -4050,7 +4058,7 @@ const SelectButtonContentSingle = ({
4050
4058
  "aria-expanded": showList,
4051
4059
  "aria-owns": selectListId,
4052
4060
  autoComplete: "off",
4053
- className: cx("adyen-kyc-filter-input", [styles$3["adyen-kyc-filter-input"]]),
4061
+ className: cx("adyen-kyc-filter-input", [styles$4["adyen-kyc-filter-input"]]),
4054
4062
  onInput,
4055
4063
  placeholder,
4056
4064
  ref: filterInputRef,
@@ -4138,7 +4146,7 @@ const SelectListItem = ({
4138
4146
  }) => jsx("li", {
4139
4147
  "aria-disabled": !!item.disabled,
4140
4148
  "aria-selected": selected,
4141
- className: cx(["adyen-kyc-dropdown-element", styles$3["adyen-kyc-dropdown-element"], {
4149
+ className: cx(["adyen-kyc-dropdown-element", styles$4["adyen-kyc-dropdown-element"], {
4142
4150
  "adyen-kyc-dropdown-element--active": selected,
4143
4151
  "adyen-kyc-dropdown-element--disabled": !!item.disabled,
4144
4152
  "adyen-kyc-dropdown-multi-element": isMulti,
@@ -4186,8 +4194,7 @@ const SelectListItem = ({
4186
4194
  })]
4187
4195
  })
4188
4196
  });
4189
- const ITEM_HEIGHT = 35;
4190
- const VISIBLE_ITEMS = 10;
4197
+ const VISIBLE_ITEMS = 5;
4191
4198
  function SelectList({
4192
4199
  active,
4193
4200
  items,
@@ -4206,7 +4213,14 @@ function SelectList({
4206
4213
  const listRef = useRef(null);
4207
4214
  const [startIndex, setStartIndex] = useState(0);
4208
4215
  const [endIndex, setEndIndex] = useState(VISIBLE_ITEMS);
4209
- const [listHeight, setListHeight] = useState(0);
4216
+ const [itemHeight, setItemHeight] = useState(0);
4217
+ useEffect(() => {
4218
+ var _a, _b, _c;
4219
+ if (listRef.current && itemHeight === 0 && showList) {
4220
+ const height = ((_c = (_b = (_a = listRef.current) == null ? void 0 : _a.firstElementChild) == null ? void 0 : _b.firstElementChild) == null ? void 0 : _c.clientHeight) || 0;
4221
+ setItemHeight(height);
4222
+ }
4223
+ }, [itemHeight, showList]);
4210
4224
  const filteredItems = items.filter((item) => {
4211
4225
  var _a;
4212
4226
  if (isSearch) {
@@ -4222,18 +4236,12 @@ function SelectList({
4222
4236
  scrollTop
4223
4237
  } = listRef.current;
4224
4238
  const maxStartIndex = totalItems - VISIBLE_ITEMS;
4225
- const newStartIndex = Math.min(Math.max(0, Math.floor(scrollTop / ITEM_HEIGHT)), maxStartIndex);
4239
+ const newStartIndex = Math.min(Math.max(0, Math.floor(scrollTop / itemHeight)), maxStartIndex);
4226
4240
  const newEndIndex = Math.min(newStartIndex + VISIBLE_ITEMS, totalItems);
4227
4241
  setStartIndex(newStartIndex);
4228
4242
  setEndIndex(newEndIndex);
4229
4243
  }
4230
- }, [totalItems]);
4231
- useEffect(() => {
4232
- if (listRef.current) {
4233
- const newHeight = totalItems ? Math.min(totalItems, VISIBLE_ITEMS) * ITEM_HEIGHT : ITEM_HEIGHT;
4234
- setListHeight(newHeight);
4235
- }
4236
- }, [totalItems]);
4244
+ }, [totalItems, itemHeight]);
4237
4245
  const getItems = () => {
4238
4246
  if (loading) {
4239
4247
  return jsx("div", {
@@ -4263,35 +4271,31 @@ function SelectList({
4263
4271
  }
4264
4272
  return null;
4265
4273
  };
4266
- return jsx("ul", {
4274
+ const calculateMaxHeight = useCallback(() => totalItems > VISIBLE_ITEMS && itemHeight ? `${itemHeight * (VISIBLE_ITEMS - 1)}px` : "auto", [totalItems, itemHeight]);
4275
+ return jsx("div", {
4267
4276
  className: cx({
4268
4277
  test: true,
4269
4278
  "adyen-kyc-dropdown-list--above": showAbove,
4270
4279
  "adyen-kyc-dropdown-list": true,
4271
- [styles$3["adyen-kyc-dropdown-list"]]: true,
4280
+ [styles$4["adyen-kyc-dropdown-list"]]: true,
4272
4281
  "adyen-kyc-dropdown-list--active": showList,
4273
- [styles$3["adyen-kyc-dropdown-list--active"]]: showList
4282
+ [styles$4["adyen-kyc-dropdown-list--active"]]: showList
4274
4283
  }),
4275
4284
  id: props.selectListId,
4276
- ref: listRef,
4277
4285
  role: "listbox",
4278
4286
  onScroll: handleScroll,
4279
4287
  style: {
4280
- height: `${listHeight}px`,
4281
4288
  overflowY: totalItems > VISIBLE_ITEMS ? "auto" : "hidden",
4282
- position: "absolute"
4289
+ position: "absolute",
4290
+ maxHeight: calculateMaxHeight()
4283
4291
  },
4284
- children: jsx("div", {
4292
+ ref: listRef,
4293
+ children: jsx("ul", {
4294
+ className: "adyen-kyc-dropdown-list__transformer",
4285
4295
  style: {
4286
- height: `${totalItems * ITEM_HEIGHT}px`,
4287
- position: "relative"
4296
+ transform: `translateY(${startIndex * itemHeight}px)`
4288
4297
  },
4289
- children: jsx("div", {
4290
- style: {
4291
- transform: `translateY(${startIndex * ITEM_HEIGHT}px)`
4292
- },
4293
- children: getItems()
4294
- })
4298
+ children: getItems()
4295
4299
  })
4296
4300
  });
4297
4301
  }
@@ -4478,7 +4482,7 @@ const Select = ({
4478
4482
  };
4479
4483
  }, []);
4480
4484
  return jsxs("div", {
4481
- className: cx(["adyen-kyc-dropdown", styles$3["adyen-kyc-dropdown"], className, ...classNameModifiers.map((m) => `adyen-kyc-dropdown--${m}`)]),
4485
+ className: cx(["adyen-kyc-dropdown", styles$4["adyen-kyc-dropdown"], className, ...classNameModifiers.map((m) => `adyen-kyc-dropdown--${m}`)]),
4482
4486
  ref: selectContainerRef,
4483
4487
  onClick: (e) => {
4484
4488
  e.stopPropagation();
@@ -5032,31 +5036,31 @@ const euCountries = [
5032
5036
  "AT",
5033
5037
  "BE",
5034
5038
  "BG",
5039
+ "HR",
5035
5040
  "CY",
5036
5041
  "CZ",
5037
- "DE",
5038
5042
  "DK",
5039
5043
  "EE",
5040
- "ES",
5041
5044
  "FI",
5042
5045
  "FR",
5046
+ "DE",
5043
5047
  "GR",
5044
- "HR",
5045
5048
  "HU",
5046
5049
  "IE",
5047
5050
  "IT",
5051
+ "LV",
5048
5052
  "LT",
5049
5053
  "LU",
5050
- "LV",
5051
5054
  "MT",
5052
5055
  "NL",
5053
5056
  "PL",
5054
5057
  "PT",
5055
5058
  "RO",
5056
- "SE",
5059
+ "SK",
5057
5060
  "SI",
5058
- "SK"
5059
- /* Slovakia */
5061
+ "ES",
5062
+ "SE"
5063
+ /* Sweden */
5060
5064
  ];
5061
5065
  const validateNotEmptyOnBlur = {
5062
5066
  modes: ["blur"],
@@ -11284,15 +11288,16 @@ function DocumentGuidance({
11284
11288
  name: item.svgName
11285
11289
  }), jsxs("figcaption", {
11286
11290
  className: "adyen-kyc-document-guidance__description",
11287
- children: [item.valid ? jsx(Svg, {
11288
- type: "icon",
11291
+ children: [item.valid ? jsx(Icon, {
11289
11292
  name: "check",
11290
- className: cx("adyen-kyc-document-guidance__icon", "adyen-kyc-document-guidance__icon--valid")
11291
- }) : jsx(Svg, {
11292
- type: "icon",
11293
+ className: "adyen-kyc-document-guidance__icon"
11294
+ }) : jsx(Icon, {
11293
11295
  name: "cross",
11294
- className: cx("adyen-kyc-document-guidance__icon", "adyen-kyc-document-guidance__icon--invalid")
11295
- }), i18n.get(item.translationKey)]
11296
+ className: "adyen-kyc-document-guidance__icon adyen-kyc-document-guidance__icon--invalid"
11297
+ }), jsx("span", {
11298
+ className: "adyen-kyc-document-guidance__description-text",
11299
+ children: i18n.get(item.translationKey)
11300
+ })]
11296
11301
  })]
11297
11302
  }, item.translationKey))
11298
11303
  })
@@ -13438,7 +13443,10 @@ function CompanyComponent(props) {
13438
13443
  if (companyCountry != null && companyCountry !== companyCountryPrev) {
13439
13444
  props.onCountryChange(companyCountry);
13440
13445
  }
13441
- this.customNavigationHandler = accountHolder === "myName" ? () => props.onTypeSwitch(LegalEntityType.INDIVIDUAL) : null;
13446
+ this.customNavigationHandler = accountHolder === "myName" ? () => {
13447
+ var _a2;
13448
+ return (_a2 = props.onTypeSwitch) == null ? void 0 : _a2.call(props, LegalEntityType.INDIVIDUAL);
13449
+ } : null;
13442
13450
  };
13443
13451
  return jsxs("div", {
13444
13452
  className: "adyen-kyc-company",
@@ -14912,7 +14920,7 @@ const useIdVerificationToken = ({
14912
14920
  loadingStatus
14913
14921
  };
14914
14922
  };
14915
- const styles$2 = {
14923
+ const styles$3 = {
14916
14924
  "adyen-kyc-loading-input__form": "adyen-kyc-loading-input__form",
14917
14925
  "adyen-kyc-loading-input__form--loading-opacity0": "adyen-kyc-loading-input__form--loading-opacity0",
14918
14926
  "adyen-kyc-loading-input__form--loading-opacity0-1": "adyen-kyc-loading-input__form--loading-opacity0-1",
@@ -14940,12 +14948,12 @@ const LoaderWrapper = ({
14940
14948
  const digit = formOpacityStrArr[0];
14941
14949
  const decimal = formOpacityStrArr[1];
14942
14950
  const opacity = decimal ? `${digit}-${decimal}` : `${digit}`;
14943
- const wrapperClass = cx("adyen-kyc-loading-input__form", styles$2["adyen-kyc-loading-input__form"], {
14944
- [styles$2[`adyen-kyc-loading-input__form--loading-opacity${opacity}`]]: status === "loading"
14951
+ const wrapperClass = cx("adyen-kyc-loading-input__form", styles$3["adyen-kyc-loading-input__form"], {
14952
+ [styles$3[`adyen-kyc-loading-input__form--loading-opacity${opacity}`]]: status === "loading"
14945
14953
  });
14946
14954
  const loaderWrapperClass = cx({
14947
- [styles$2["adyen-kyc-loading-input__loader"]]: true,
14948
- [styles$2["adyen-kyc-loading-input__loader--active"]]: status === "loading" && showSpinner
14955
+ [styles$3["adyen-kyc-loading-input__loader"]]: true,
14956
+ [styles$3["adyen-kyc-loading-input__loader--active"]]: status === "loading" && showSpinner
14949
14957
  });
14950
14958
  const overlayClass = cx("adyen-kyc-loading-input", className);
14951
14959
  return jsxs("div", {
@@ -16455,7 +16463,7 @@ const handleKeys = (keys, callback, propagationMode = "stopIfMatches") => (event
16455
16463
  callback();
16456
16464
  }
16457
16465
  };
16458
- const styles$1 = {
16466
+ const styles$2 = {
16459
16467
  "adyen-kyc-multi-select-list": "adyen-kyc-multi-select-list",
16460
16468
  "adyen-kyc-multi-select-list-item": "adyen-kyc-multi-select-list-item",
16461
16469
  "adyen-kyc-multi-select-list-item--with-description": "adyen-kyc-multi-select-list-item--with-description",
@@ -16467,7 +16475,7 @@ const MultiSelectList = ({
16467
16475
  onSelect,
16468
16476
  mapToSelectItem
16469
16477
  }) => jsx("ul", {
16470
- className: styles$1["adyen-kyc-multi-select-list"],
16478
+ className: styles$2["adyen-kyc-multi-select-list"],
16471
16479
  children: options.map((option) => {
16472
16480
  const item = mapToSelectItem(option);
16473
16481
  const isSelected = selected.includes(option);
@@ -16481,8 +16489,8 @@ const MultiSelectList = ({
16481
16489
  onKeyDown: handleKeys(["Enter", " "], handleSelect),
16482
16490
  onSelect: handleSelect,
16483
16491
  isMulti: true,
16484
- className: cx([styles$1["adyen-kyc-multi-select-list-item"], {
16485
- [styles$1["adyen-kyc-multi-select-list-item--with-description"]]: !!item.description
16492
+ className: cx([styles$2["adyen-kyc-multi-select-list-item"], {
16493
+ [styles$2["adyen-kyc-multi-select-list-item--with-description"]]: !!item.description
16486
16494
  }])
16487
16495
  }, item.id);
16488
16496
  })
@@ -16619,7 +16627,7 @@ const nameValidationRulesV4 = {
16619
16627
  errorMessage: "nameMustContainLetters"
16620
16628
  }, {
16621
16629
  modes: ["blur"],
16622
- validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && isValidMinLength(input, 2) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16630
+ validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16623
16631
  errorMessage: "checkForTypos"
16624
16632
  }],
16625
16633
  lastName: [{
@@ -16632,7 +16640,7 @@ const nameValidationRulesV4 = {
16632
16640
  errorMessage: "nameMustContainLetters"
16633
16641
  }, {
16634
16642
  modes: ["blur"],
16635
- validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && isValidMinLength(input, 1) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16643
+ validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16636
16644
  errorMessage: "checkForTypos"
16637
16645
  }]
16638
16646
  };
@@ -18052,7 +18060,10 @@ function IndividualComponent(props) {
18052
18060
  setIdVerificationMethodSelected(idVerificationMethod);
18053
18061
  }
18054
18062
  const accountHolder = (_j = (_i = currentState.data) == null ? void 0 : _i.personalDetails) == null ? void 0 : _j.accountHolder;
18055
- this.customNavigationHandler = accountHolder === "theCompanyIWorkFor" ? () => props.onTypeSwitch(LegalEntityType.ORGANIZATION) : null;
18063
+ this.customNavigationHandler = accountHolder === "theCompanyIWorkFor" ? () => {
18064
+ var _a3;
18065
+ return (_a3 = props.onTypeSwitch) == null ? void 0 : _a3.call(props, LegalEntityType.ORGANIZATION);
18066
+ } : null;
18056
18067
  setData(currentState.data);
18057
18068
  };
18058
18069
  useEffect(() => {
@@ -23033,7 +23044,8 @@ const useFormComposer = ({
23033
23044
  const [hasAlreadyNavigatedForm, setHasAlreadyNavigatedForm] = useState(false);
23034
23045
  const getFormIndex = (formId) => forms2.findIndex((form) => form.formId === formId);
23035
23046
  const currentStep = getFormIndex(activeForm.formId);
23036
- const isFinalStep = currentStep === forms2.length - 1;
23047
+ const totalSteps = forms2.length;
23048
+ const isFinalStep = currentStep === totalSteps - 1;
23037
23049
  const isFirstStep = currentStep === 0;
23038
23050
  const [hideHomeButton, setHideHomeButton] = useState(false);
23039
23051
  const [hideBackButton, setHideBackButton] = useState(false);
@@ -23138,7 +23150,8 @@ const useFormComposer = ({
23138
23150
  activeForm,
23139
23151
  shouldValidate,
23140
23152
  setShouldValidate,
23141
- currentStep
23153
+ currentStep,
23154
+ totalSteps
23142
23155
  };
23143
23156
  };
23144
23157
  const obscuredPayoutFields = ["bankAccountNumber", "iban"];
@@ -23962,6 +23975,33 @@ const dbaNameFieldMetadata = {
23962
23975
  label: "dbaName",
23963
23976
  validators: [validateNotEmptyOnBlur]
23964
23977
  };
23978
+ const styles$1 = {
23979
+ "adyen-kyc-structured-list": "adyen-kyc-structured-list",
23980
+ "adyen-kyc-structured-list__list-item": "adyen-kyc-structured-list__list-item",
23981
+ "adyen-layout-md": "adyen-layout-md",
23982
+ "adyen-kyc-structured-list__label": "adyen-kyc-structured-list__label",
23983
+ "adyen-kyc-structured-list__value": "adyen-kyc-structured-list__value"
23984
+ };
23985
+ const StructuredList = ({
23986
+ items
23987
+ }) => {
23988
+ const {
23989
+ i18n
23990
+ } = useI18nContext();
23991
+ return jsx("dl", {
23992
+ className: styles$1["adyen-kyc-structured-list"],
23993
+ children: items.map((item) => jsxs("div", {
23994
+ className: styles$1["adyen-kyc-structured-list__list-item"],
23995
+ children: [jsx("dt", {
23996
+ className: styles$1["adyen-kyc-structured-list__label"],
23997
+ children: i18n.get(item.labelKey)
23998
+ }), jsx("dd", {
23999
+ className: styles$1["adyen-kyc-structured-list__value"],
24000
+ children: item.value
24001
+ })]
24002
+ }, item.labelKey))
24003
+ });
24004
+ };
23965
24005
  function VerifiedBusinessCard({
23966
24006
  verifiedBusiness
23967
24007
  }) {
@@ -23971,52 +24011,38 @@ function VerifiedBusinessCard({
23971
24011
  const [expanded, setExpanded] = useState(false);
23972
24012
  const address = (verifiedBusiness == null ? void 0 : verifiedBusiness.street) && (verifiedBusiness == null ? void 0 : verifiedBusiness.city) && (verifiedBusiness == null ? void 0 : verifiedBusiness.state) && (verifiedBusiness == null ? void 0 : verifiedBusiness.zipcode) ? `${verifiedBusiness == null ? void 0 : verifiedBusiness.street} ${verifiedBusiness.city} ${verifiedBusiness.state} ${verifiedBusiness.zipcode}` : verifiedBusiness == null ? void 0 : verifiedBusiness.address;
23973
24013
  const addressLink = (verifiedBusiness == null ? void 0 : verifiedBusiness.address) ? `https://www.google.com/maps/place/${verifiedBusiness == null ? void 0 : verifiedBusiness.address.replaceAll(" ", "+")}` : void 0;
24014
+ const baseItems = useMemo(() => [{
24015
+ labelKey: "legalCompanyName__US",
24016
+ value: verifiedBusiness == null ? void 0 : verifiedBusiness.name
24017
+ }, {
24018
+ labelKey: "registrationNumber__US",
24019
+ value: verifiedBusiness == null ? void 0 : verifiedBusiness.registrationNumber
24020
+ }].filter((item) => !!item.value), [verifiedBusiness == null ? void 0 : verifiedBusiness.name, verifiedBusiness == null ? void 0 : verifiedBusiness.registrationNumber]);
24021
+ const expandedItems = useMemo(() => [{
24022
+ labelKey: "legalForm",
24023
+ value: verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm
24024
+ }, {
24025
+ labelKey: "address",
24026
+ value: jsxs("div", {
24027
+ className: "adyen-kyc-verified-business-card__address",
24028
+ children: [address, addressLink && jsx(Link, {
24029
+ external: true,
24030
+ href: addressLink,
24031
+ children: i18n.get("showOnMap")
24032
+ })]
24033
+ })
24034
+ }].filter((item) => !!item.value), [address, addressLink, i18n, verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm]);
23974
24035
  return jsxs("section", {
23975
24036
  children: [jsx(Typography, {
23976
24037
  el: "h3",
23977
24038
  children: i18n.get("verifiedInformation")
23978
24039
  }), jsxs("div", {
23979
24040
  className: "adyen-kyc-verified-business-card",
23980
- children: [jsxs("ul", {
23981
- children: [jsxs("li", {
23982
- children: [jsx(Typography, {
23983
- className: "adyen-kyc-verified-business-card__data-title ",
23984
- children: i18n.get("legalCompanyName__US")
23985
- }), jsx(Typography, {
23986
- children: verifiedBusiness == null ? void 0 : verifiedBusiness.name
23987
- })]
23988
- }), jsxs("li", {
23989
- children: [jsx(Typography, {
23990
- className: "adyen-kyc-verified-business-card__data-title ",
23991
- children: i18n.get("registrationNumber__US")
23992
- }), jsx(Typography, {
23993
- children: verifiedBusiness == null ? void 0 : verifiedBusiness.registrationNumber
23994
- })]
23995
- })]
24041
+ children: [jsx(StructuredList, {
24042
+ items: baseItems
23996
24043
  }), jsx(Divider, {}), expanded && jsxs(Fragment, {
23997
- children: [((verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm) || address) && jsxs("ul", {
23998
- children: [(verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm) && jsxs("li", {
23999
- children: [jsx(Typography, {
24000
- className: "adyen-kyc-verified-business-card__data-title ",
24001
- children: i18n.get("legalForm")
24002
- }), jsx(Typography, {
24003
- children: verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm
24004
- })]
24005
- }), address && jsxs("li", {
24006
- children: [jsx(Typography, {
24007
- className: "adyen-kyc-verified-business-card__data-title ",
24008
- children: i18n.get("address")
24009
- }), jsx(Typography, {
24010
- children: jsxs("div", {
24011
- className: "adyen-kyc-verified-business-card__address",
24012
- children: [address, addressLink && jsx(Link, {
24013
- external: true,
24014
- href: addressLink,
24015
- children: i18n.get("showOnMap")
24016
- })]
24017
- })
24018
- })]
24019
- })]
24044
+ children: [jsx(StructuredList, {
24045
+ items: expandedItems
24020
24046
  }), jsx(Divider, {})]
24021
24047
  }), jsx("div", {
24022
24048
  className: "adyen-kyc-verified-business-card__button",
@@ -24452,13 +24478,33 @@ function BusinessInformation({
24452
24478
  fetching,
24453
24479
  selectedBusiness
24454
24480
  }) {
24455
- const {
24456
- i18n
24457
- } = useI18nContext();
24458
24481
  const [showLoader, setShowLoader] = useState(false);
24459
24482
  const businessInformationClasses = cx("adyen-kyc-business-information", {
24460
24483
  "adyen-kyc-business-information--fetching": fetching
24461
24484
  });
24485
+ const items = useMemo(() => selectedBusiness ? entriesOf(selectedBusiness).reduce((acc, [key, value]) => {
24486
+ switch (key) {
24487
+ case "legalForm":
24488
+ if (value) acc[0].value = value;
24489
+ break;
24490
+ case "name":
24491
+ if (value) acc[1].value = value;
24492
+ break;
24493
+ case "address":
24494
+ if (value) acc[2].value = value;
24495
+ break;
24496
+ }
24497
+ return acc;
24498
+ }, [{
24499
+ labelKey: "legalForm",
24500
+ value: ""
24501
+ }, {
24502
+ labelKey: "legalCompanyName__US",
24503
+ value: ""
24504
+ }, {
24505
+ labelKey: "address",
24506
+ value: ""
24507
+ }]).filter((item) => !!item.value) : [], [selectedBusiness]);
24462
24508
  const setFetching = () => {
24463
24509
  setTimeout(() => {
24464
24510
  setShowLoader(true);
@@ -24481,36 +24527,8 @@ function BusinessInformation({
24481
24527
  if (!fetching) {
24482
24528
  return jsx("div", {
24483
24529
  className: businessInformationClasses,
24484
- children: jsxs("ul", {
24485
- className: "adyen-kyc-business-information__business-data",
24486
- children: [!!(selectedBusiness == null ? void 0 : selectedBusiness.legalForm) && jsxs("li", {
24487
- name: "legalForm",
24488
- children: [jsx(Typography, {
24489
- className: "adyen-kyc-business-data__key",
24490
- color: "secondary",
24491
- children: i18n.get("legalForm")
24492
- }), jsx(Typography, {
24493
- children: selectedBusiness.legalForm
24494
- })]
24495
- }), !!(selectedBusiness == null ? void 0 : selectedBusiness.name) && jsxs("li", {
24496
- name: "name",
24497
- children: [jsx(Typography, {
24498
- className: "adyen-kyc-business-data__key",
24499
- color: "secondary",
24500
- children: i18n.get("legalCompanyName__US")
24501
- }), jsx(Typography, {
24502
- children: selectedBusiness.name
24503
- })]
24504
- }), !!(selectedBusiness == null ? void 0 : selectedBusiness.address) && jsxs("li", {
24505
- name: "address",
24506
- children: [jsx(Typography, {
24507
- className: "adyen-kyc-business-data__key",
24508
- color: "secondary",
24509
- children: i18n.get("address")
24510
- }), jsx(Typography, {
24511
- children: selectedBusiness.address
24512
- })]
24513
- })]
24530
+ children: jsx(StructuredList, {
24531
+ items
24514
24532
  })
24515
24533
  });
24516
24534
  }
@@ -24523,6 +24541,7 @@ function BusinessInformationCard({
24523
24541
  fetching,
24524
24542
  failedToLoad,
24525
24543
  invalidTin,
24544
+ resetTinVerification,
24526
24545
  setIsBusinessSelection,
24527
24546
  handleSelectBusiness,
24528
24547
  handleConfirmSelection
@@ -24535,6 +24554,10 @@ function BusinessInformationCard({
24535
24554
  if (failedToLoad && selectedBusinessId === searchResult.id) return;
24536
24555
  return handleSelectBusiness(searchResult);
24537
24556
  };
24557
+ const handleGoBack = () => {
24558
+ setIsBusinessSelection(false);
24559
+ resetTinVerification();
24560
+ };
24538
24561
  return jsx(Card, {
24539
24562
  "aria-selected": selectedBusinessId === result.id,
24540
24563
  className: "adyen-kyc-business-information-card",
@@ -24559,7 +24582,7 @@ function BusinessInformationCard({
24559
24582
  actions: jsx(Button, {
24560
24583
  label: "Go back",
24561
24584
  testId: "backBtn",
24562
- onClick: () => setIsBusinessSelection(false),
24585
+ onClick: handleGoBack,
24563
24586
  showAsLink: true
24564
24587
  }),
24565
24588
  testId: "invalidTin"
@@ -24592,6 +24615,7 @@ function BusinessSelectionComponent({
24592
24615
  invalidTin,
24593
24616
  fetchBusinessData,
24594
24617
  verifyBusinessData,
24618
+ resetTinVerification,
24595
24619
  proceedToManualDataEntry,
24596
24620
  handleNextClick,
24597
24621
  setIsBusinessSelection,
@@ -24666,6 +24690,7 @@ function BusinessSelectionComponent({
24666
24690
  fetching: isFetching === "loading",
24667
24691
  failedToLoad: isFetching === "error",
24668
24692
  invalidTin,
24693
+ resetTinVerification,
24669
24694
  handleSelectBusiness,
24670
24695
  handleConfirmSelection,
24671
24696
  setIsBusinessSelection
@@ -24797,7 +24822,8 @@ function BasicInformationComponent({
24797
24822
  proceedToManualDataEntry,
24798
24823
  handleNextClick,
24799
24824
  setShowBusinessSelection,
24800
- setShowCompanyStructure
24825
+ setShowCompanyStructure,
24826
+ resetTinVerification
24801
24827
  }) {
24802
24828
  var _a, _b, _c, _d, _e;
24803
24829
  const {
@@ -24920,7 +24946,8 @@ function BasicInformationComponent({
24920
24946
  proceedToManualDataEntry,
24921
24947
  handleNextClick,
24922
24948
  setIsBusinessSelection: setShowBusinessSelection,
24923
- setShowCompanyStructure
24949
+ setShowCompanyStructure,
24950
+ resetTinVerification
24924
24951
  });
24925
24952
  }
24926
24953
  return jsxs("form", {
@@ -25520,6 +25547,7 @@ function BusinessDetailsComponent(props) {
25520
25547
  searchResults,
25521
25548
  invalidTin,
25522
25549
  verifiedBusiness,
25550
+ resetTinVerification,
25523
25551
  handleNextClick,
25524
25552
  handleAddressSearch,
25525
25553
  handleFindAddress,
@@ -25568,7 +25596,8 @@ function BusinessDetailsComponent(props) {
25568
25596
  verifiedBusiness,
25569
25597
  setShowBusinessSelection,
25570
25598
  setShowCompanyStructure,
25571
- handleNextClick
25599
+ handleNextClick,
25600
+ resetTinVerification
25572
25601
  })
25573
25602
  }), jsx("div", {
25574
25603
  className: formWrapperClasses(forms2.companyStructure.formId),
@@ -25831,68 +25860,60 @@ const ExpiredBanner = () => {
25831
25860
  children: i18n.get("startANewSessionFromTheSamePlaceYouOriginallyAccessed")
25832
25861
  });
25833
25862
  };
25834
- const Modal$1 = ({
25835
- content,
25836
- footer,
25863
+ const Modal = ({
25837
25864
  header,
25838
- classNames,
25865
+ children,
25866
+ footer,
25839
25867
  size = "medium",
25840
- title,
25841
- isDismissible = true,
25842
- onClose = noop,
25843
- role = "dialog"
25868
+ onBack,
25869
+ onClose
25844
25870
  }) => {
25845
- const {
25846
- i18n
25847
- } = useI18nContext();
25848
- const closeModal = useCallback(() => {
25849
- if (isDismissible) {
25850
- onClose();
25851
- }
25852
- }, [isDismissible, onClose]);
25853
- useEffect(() => {
25854
- const handleEscapeKey = ({
25855
- code
25856
- }) => {
25857
- if (isDismissible && code === "Escape") {
25858
- closeModal();
25859
- }
25860
- };
25861
- document.documentElement.classList.add("u-overflow-hidden");
25862
- document.addEventListener("keydown", handleEscapeKey);
25863
- return () => {
25864
- document.documentElement.classList.remove("u-overflow-hidden");
25865
- document.removeEventListener("keydown", handleEscapeKey);
25866
- };
25867
- }, [closeModal, isDismissible]);
25868
- return jsx("div", {
25869
- className: cx("adyen-kyc-overlay", "adyen-kyc-overlay--visible"),
25870
- role: "none",
25871
+ const modalRef = useRef(null);
25872
+ useLayoutEffect(() => {
25873
+ const modalElement = modalRef.current;
25874
+ if (!modalElement) return;
25875
+ modalElement.showModal();
25876
+ modalElement.focus();
25877
+ modalElement.blur();
25878
+ return () => modalElement.close();
25879
+ }, []);
25880
+ return jsx("dialog", {
25881
+ ref: modalRef,
25882
+ className: cx("adyen-kyc-modal", {
25883
+ "adyen-kyc-modal--small": size === "small",
25884
+ "adyen-kyc-modal--large": size === "large",
25885
+ "adyen-kyc-modal--fullscreen": size === "fullscreen",
25886
+ "adyen-kyc-modal--with-backButton": onBack
25887
+ }),
25888
+ onClose,
25871
25889
  children: jsxs("div", {
25872
- className: cx(classNames == null ? void 0 : classNames.modal, "adyen-kyc-modal", {
25873
- "adyen-kyc-modal--small": size === "small",
25874
- "adyen-kyc-modal--large": size === "large"
25875
- }),
25876
- "aria-labelledby": title,
25877
- "aria-modal": "true",
25878
- role,
25879
- children: [isDismissible && jsx(Button, {
25880
- title: i18n.get("close"),
25881
- "aria-label": i18n.get("close"),
25882
- type: "button",
25883
- icon: "cross",
25884
- tertiary: true,
25885
- className: "adyen-kyc-modal__close",
25886
- onClick: () => onClose()
25887
- }), header && jsx("div", {
25888
- className: cx(classNames == null ? void 0 : classNames.header, "adyen-kyc-modal__header"),
25890
+ className: "adyen-kyc-modal__wrapper",
25891
+ children: [header && jsx("header", {
25892
+ className: "adyen-kyc-modal__header",
25889
25893
  children: header
25890
- }), content && jsx("div", {
25891
- className: cx(classNames == null ? void 0 : classNames.content, "adyen-kyc-modal__content"),
25892
- children: content
25893
- }), footer && jsx("div", {
25894
- className: cx(classNames == null ? void 0 : classNames.footer, "adyen-kyc-modal__footer"),
25895
- children: footer
25894
+ }), jsx("section", {
25895
+ className: "adyen-kyc-modal__content",
25896
+ children
25897
+ }), jsx("div", {
25898
+ children: footer && jsx("footer", {
25899
+ className: "adyen-kyc-modal__footer",
25900
+ children: footer
25901
+ })
25902
+ }), jsxs("section", {
25903
+ className: "adyen-kyc-modal-top-bar",
25904
+ children: [onBack ? jsx(Button, {
25905
+ tertiary: true,
25906
+ "aria-label": "back",
25907
+ icon: "arrow-left",
25908
+ onClick: onBack,
25909
+ shaded: true
25910
+ }) : jsx("div", {}), jsx(Button, {
25911
+ tertiary: true,
25912
+ "aria-label": "close",
25913
+ icon: "cross",
25914
+ onClick: onClose,
25915
+ shaded: true
25916
+ })]
25896
25917
  })]
25897
25918
  })
25898
25919
  });
@@ -25963,24 +25984,29 @@ const ExpiryModal = ({
25963
25984
  leftoverSeconds
25964
25985
  } = getDurationInMinutesAndSeconds(secondsUntilExpiry);
25965
25986
  const hasExpired = secondsUntilExpiry <= 0;
25966
- return jsx(Modal$1, {
25987
+ return jsx(Modal, {
25967
25988
  size: "small",
25968
- header: i18n.get("sessionTimeout"),
25969
- content: hasExpired ? i18n.get("toProtectYourInformationThisSessionHasExpired") : i18n.get({
25970
- key: "thisSessionWillExpireIn",
25971
- values: {
25972
- timeUntilExpiry: formatMinutesAndSeconds(minutes, leftoverSeconds, i18n)
25973
- }
25989
+ onClose: onContinue,
25990
+ header: jsx(Typography, {
25991
+ variant: "title",
25992
+ children: i18n.get("sessionTimeout")
25974
25993
  }),
25975
- footer: jsx(Button, {
25976
- label: hasExpired ? i18n.get("close") : i18n.get("continue"),
25977
- onClick: () => onContinue()
25994
+ footer: jsx("div", {
25995
+ className: "adyen-kyc-expiry-modal__footer",
25996
+ children: jsx(Button, {
25997
+ label: hasExpired ? i18n.get("close") : i18n.get("continue"),
25998
+ onClick: () => onContinue()
25999
+ })
25978
26000
  }),
25979
- classNames: {
25980
- header: "adyen-kyc-expiry-modal__header",
25981
- footer: "adyen-kyc-expiry-modal__footer"
25982
- },
25983
- onClose: onContinue
26001
+ children: jsx(Typography, {
26002
+ variant: "body",
26003
+ children: hasExpired ? i18n.get("toProtectYourInformationThisSessionHasExpired") : i18n.get({
26004
+ key: "thisSessionWillExpireIn",
26005
+ values: {
26006
+ timeUntilExpiry: formatMinutesAndSeconds(minutes, leftoverSeconds, i18n)
26007
+ }
26008
+ })
26009
+ })
25984
26010
  });
25985
26011
  };
25986
26012
  const ALMOST_EXPIRED_THRESHOLD = 2 * 60 * 1e3;
@@ -26126,7 +26152,7 @@ const StepProgressIndicator = ({
26126
26152
  fillBefore,
26127
26153
  thick
26128
26154
  }) => stepsCount > 0 ? jsx("div", {
26129
- "aria-label": `Step ${activeStepIndex + 1} of ${stepsCount}`,
26155
+ "aria-label": `Step ${activeStepIndex} of ${stepsCount}`,
26130
26156
  className: "adyen-kyc-progress",
26131
26157
  role: "group",
26132
26158
  children: jsx("ol", {
@@ -26142,70 +26168,12 @@ const StepProgressIndicator = ({
26142
26168
  }),
26143
26169
  children: jsx("span", {
26144
26170
  className: "adyen-kyc-progress__step-label",
26145
- children: `Step ${stepNumber + 1}: ${stepNumber < activeStepIndex ? "completed" : "not completed"}`
26171
+ children: `Step ${stepNumber}: ${stepNumber < activeStepIndex ? "completed" : "not completed"}`
26146
26172
  })
26147
26173
  }, stepNumber);
26148
26174
  })
26149
26175
  })
26150
26176
  }) : null;
26151
- const Modal = ({
26152
- title,
26153
- children,
26154
- footer,
26155
- fullscreen = false,
26156
- onBack,
26157
- onClose
26158
- }) => {
26159
- const modalRef = useRef(null);
26160
- useLayoutEffect(() => {
26161
- const modalElement = modalRef.current;
26162
- if (!modalElement) return;
26163
- modalElement.showModal();
26164
- modalElement.focus();
26165
- modalElement.blur();
26166
- return () => modalElement.close();
26167
- }, []);
26168
- return jsx("dialog", {
26169
- ref: modalRef,
26170
- className: cx("adyen-kyc-modal2", {
26171
- "adyen-kyc-modal2__fullscreen": fullscreen
26172
- }),
26173
- onClose,
26174
- children: jsxs("div", {
26175
- className: "adyen-kyc-modal2-wrapper",
26176
- children: [title && jsx("header", {
26177
- children: jsx(Typography, {
26178
- el: "h2",
26179
- variant: "title-l",
26180
- children: title
26181
- })
26182
- }), jsx("section", {
26183
- className: "adyen-kyc-modal2-content",
26184
- children
26185
- }), jsx("div", {
26186
- children: footer && jsx("footer", {
26187
- className: "adyen-kyc-modal2-footer",
26188
- children: footer
26189
- })
26190
- }), jsxs("section", {
26191
- className: "adyen-kyc-modal2-top-bar",
26192
- children: [onBack ? jsx(Button, {
26193
- tertiary: true,
26194
- "aria-label": "back",
26195
- icon: "arrow-left",
26196
- onClick: onBack,
26197
- shaded: true
26198
- }) : jsx("div", {}), jsx(Button, {
26199
- tertiary: true,
26200
- "aria-label": "close",
26201
- icon: "cross",
26202
- onClick: onClose,
26203
- shaded: true
26204
- })]
26205
- })]
26206
- })
26207
- });
26208
- };
26209
26177
  const DropinLayout = ({
26210
26178
  content,
26211
26179
  footer,
@@ -26385,7 +26353,8 @@ const FormWrapper = ({
26385
26353
  canSubmit: canSubmit2,
26386
26354
  onSubmit,
26387
26355
  problems,
26388
- currentStep
26356
+ currentStep,
26357
+ totalSteps
26389
26358
  }) => {
26390
26359
  var _a;
26391
26360
  const {
@@ -26453,7 +26422,7 @@ const FormWrapper = ({
26453
26422
  const embeddedFooter = jsx(EmbeddedActionBar, {
26454
26423
  left: jsx(StepProgressIndicator, {
26455
26424
  activeStepIndex: currentStep ?? 0,
26456
- stepsCount: 3,
26425
+ stepsCount: totalSteps ?? 3,
26457
26426
  fillBefore: true,
26458
26427
  thick: true
26459
26428
  }),
@@ -26622,7 +26591,7 @@ const mapBusinessDetailsSchemaToLegalEntity = (data) => {
26622
26591
  requestObj.type = LegalEntityType.ORGANIZATION;
26623
26592
  return requestObj;
26624
26593
  };
26625
- const MANDATORY_API_FIELDS = ["basicInformation.legalCompanyName", "basicInformation.country"];
26594
+ const MANDATORY_API_FIELDS = ["additionalInformation.legalCompanyName", "basicInformation.country"];
26626
26595
  const parseConfiguration$7 = ({
26627
26596
  country,
26628
26597
  matchingScenario
@@ -26950,6 +26919,7 @@ function BusinessDetailsDropinComponent({
26950
26919
  return ((_a2 = currentState.data.basicInformation) == null ? void 0 : _a2.country) ?? country;
26951
26920
  }, [(_a = currentState.data.basicInformation) == null ? void 0 : _a.country, country]);
26952
26921
  const [initialData, setInitialData] = useState(mapLegalEntityToBusinessDetailsSchema(legalEntityResponse, Boolean(isTargetLegalEntityType), isNewEntryFlowEnabled ? accountHolder : void 0));
26922
+ const [trustedFields2, setTrustedFields] = useState(legalEntityResponse.trustedFields);
26953
26923
  const documentUtils = documentApiUtils(handleCreateDocument, handleGetDocument, handleUpdateDocument);
26954
26924
  useEffect(() => {
26955
26925
  var _a2;
@@ -26994,7 +26964,7 @@ function BusinessDetailsDropinComponent({
26994
26964
  isExperimentEnabled
26995
26965
  }), [currentCountry, currentState.data, isExperimentEnabled, taskType]);
26996
26966
  const initialForms = useMemo(() => getForms(currentCountry), [currentCountry]);
26997
- const derivedProps = useMemo(() => getPropsFromConfigurations(fieldConfigurations, initialForms, (currentProblems == null ? void 0 : currentProblems.remediationActions) ? Object.values(currentProblems == null ? void 0 : currentProblems.remediationActions) : [], (currentProblems == null ? void 0 : currentProblems.missingData) ?? [], legalEntityResponse ? getFieldsWithExistingData(legalEntityResponse, isExperimentEnabled) : [], customRules, {}, {}, legalEntityResponse.trustedFields), [customRules, fieldConfigurations, initialForms, isExperimentEnabled, legalEntityResponse, currentProblems == null ? void 0 : currentProblems.missingData, currentProblems == null ? void 0 : currentProblems.remediationActions]);
26967
+ const derivedProps = useMemo(() => getPropsFromConfigurations(fieldConfigurations, initialForms, (currentProblems == null ? void 0 : currentProblems.remediationActions) ? Object.values(currentProblems == null ? void 0 : currentProblems.remediationActions) : [], (currentProblems == null ? void 0 : currentProblems.missingData) ?? [], legalEntityResponse ? getFieldsWithExistingData(legalEntityResponse, isExperimentEnabled) : [], customRules, {}, {}, trustedFields2), [fieldConfigurations, initialForms, currentProblems == null ? void 0 : currentProblems.remediationActions, currentProblems == null ? void 0 : currentProblems.missingData, legalEntityResponse, isExperimentEnabled, customRules, trustedFields2]);
26998
26968
  const isSkippingCompanyStructure = useEnableNewEntryFlow() && organizationTypesToSkipCompanyStructureForm.includes((_d = legalEntityResponse == null ? void 0 : legalEntityResponse.organization) == null ? void 0 : _d.type) && accountHolder !== "aTrust";
26999
26969
  const isSkippingCompanyRegistrationDocument = currentCountry === "CA" && ((_e = currentState.data.additionalInformation) == null ? void 0 : _e.registrationNumber) && ((_f = currentState.valid.additionalInformation) == null ? void 0 : _f.registrationNumber) && !((_g = currentState.data.companyRegistrationDocument) == null ? void 0 : _g.registrationDocument);
27000
26970
  const forms2 = useMemo(() => {
@@ -27046,6 +27016,7 @@ function BusinessDetailsDropinComponent({
27046
27016
  verifyBusinessData,
27047
27017
  clearTrustedBusinessData,
27048
27018
  resetBusinessData,
27019
+ resetTinVerification,
27049
27020
  isSearching,
27050
27021
  isFetching,
27051
27022
  isVerifying,
@@ -27191,6 +27162,12 @@ function BusinessDetailsDropinComponent({
27191
27162
  const proceedToManualDataEntry = useCallback(async () => {
27192
27163
  await clearTrustedBusinessData().then(() => setShowCompanyStructure(true));
27193
27164
  }, [clearTrustedBusinessData]);
27165
+ useEffect(() => {
27166
+ var _a2;
27167
+ if ((trustedFields2 == null ? void 0 : trustedFields2.length) && ((_a2 = legalEntityResponse.organization) == null ? void 0 : _a2.registeredAddress.country) !== currentCountry) {
27168
+ setTrustedFields(void 0);
27169
+ }
27170
+ }, [currentCountry]);
27194
27171
  return jsx(FormWrapper, {
27195
27172
  taskName: taskName ?? "businessDetails",
27196
27173
  gotoFormByFormIndex: goToForm,
@@ -27230,6 +27207,7 @@ function BusinessDetailsDropinComponent({
27230
27207
  setShowCompanyStructure,
27231
27208
  searchResults,
27232
27209
  invalidTin,
27210
+ resetTinVerification,
27233
27211
  verifiedBusiness,
27234
27212
  isSearching,
27235
27213
  isFetching,
@@ -27245,42 +27223,6 @@ function BusinessDetailsDropinComponent({
27245
27223
  })
27246
27224
  });
27247
27225
  }
27248
- const getTrustedFieldsByProvider = (provider, trustedFields2) => trustedFields2.find((tf) => tf.provider === provider);
27249
- const parseTrustedFieldsIntoReadOnlyFields = (trustedFields2, mapping) => {
27250
- const formFieldsMapped = [];
27251
- trustedFields2.fields.forEach((field) => {
27252
- for (const [key, value] of Object.entries(mapping)) {
27253
- if (value === field) {
27254
- formFieldsMapped.push(key);
27255
- }
27256
- }
27257
- });
27258
- const readOnlyFields = {};
27259
- formFieldsMapped.forEach((field) => {
27260
- const tokenizedField = field.split(".");
27261
- const formField = tokenizedField.pop();
27262
- const formId = tokenizedField.pop();
27263
- if (formField && formId) {
27264
- if (formId in readOnlyFields) {
27265
- readOnlyFields[formId].push(formField);
27266
- } else {
27267
- readOnlyFields[formId] = [formField];
27268
- }
27269
- }
27270
- });
27271
- return readOnlyFields;
27272
- };
27273
- const trustedFields = ({
27274
- fields,
27275
- trustedFieldsProvider,
27276
- apiMapping
27277
- }) => {
27278
- if (!fields || !trustedFieldsProvider || !apiMapping) {
27279
- return {};
27280
- }
27281
- const trustedFieldsOfProvider = getTrustedFieldsByProvider(trustedFieldsProvider, fields);
27282
- return trustedFieldsOfProvider ? parseTrustedFieldsIntoReadOnlyFields(trustedFieldsOfProvider, apiMapping) : {};
27283
- };
27284
27226
  const parseConfiguration$6 = ({
27285
27227
  country,
27286
27228
  matchingScenario
@@ -27331,7 +27273,7 @@ function CompanyDropinComponent({
27331
27273
  handleHomeClick,
27332
27274
  onTypeSwitch,
27333
27275
  onChange,
27334
- trustedFieldsProvider
27276
+ trustedFields: trustedFields2
27335
27277
  }) {
27336
27278
  var _a, _b, _c, _d, _e;
27337
27279
  const {
@@ -27395,12 +27337,6 @@ function CompanyDropinComponent({
27395
27337
  isSettingEnabled,
27396
27338
  isExperimentEnabled
27397
27339
  }), [country, data, taskType, requiredFields, isSettingEnabled]);
27398
- const legalEntityTrustedFields = legalEntityResponse == null ? void 0 : legalEntityResponse.trustedFields;
27399
- const trustedFieldsOfProvider = useMemo(() => trustedFields({
27400
- fields: legalEntityTrustedFields,
27401
- trustedFieldsProvider,
27402
- apiMapping: companyComponentsKeyMapping
27403
- }), [legalEntityTrustedFields, trustedFieldsProvider]);
27404
27340
  const derivedProps = useMemo(() => ({
27405
27341
  ...getPropsFromConfigurations(fieldConfigurations, companyForms, (problems == null ? void 0 : problems.remediationActions) ? Object.values(problems == null ? void 0 : problems.remediationActions) : [], (problems == null ? void 0 : problems.missingData) ?? [], legalEntityResponse ? getFieldsWithExistingData(legalEntityResponse) : [], fieldsFromCustomRules)
27406
27342
  }), [fieldConfigurations, fieldsFromCustomRules, problems == null ? void 0 : problems.remediationActions]);
@@ -27478,7 +27414,7 @@ function CompanyDropinComponent({
27478
27414
  legalEntityName: dataSubmitted.companyNameAndCountry.legalCompanyName,
27479
27415
  usedAdditionalAddress: dataSubmitted.companyRegistrationAddress.operationalAddressIsSame === operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_NOT_SAME
27480
27416
  };
27481
- const newAccountHolder = dataSubmitted.companyType.accountHolder ?? accountHolder;
27417
+ const newAccountHolder = dataSubmitted.companyType.accountHolder || accountHolder;
27482
27418
  legalEntity.entityAssociations = filterOutUnwantedAssociationsIfRootLE(taskType, legalEntityResponse, newAccountHolder);
27483
27419
  if (!isCountryOfGoverningLawEnabled && ((_a2 = legalEntity.organization) == null ? void 0 : _a2.countryOfGoverningLaw)) {
27484
27420
  delete legalEntity.organization.countryOfGoverningLaw;
@@ -27678,7 +27614,7 @@ function CompanyDropinComponent({
27678
27614
  ref: formRef,
27679
27615
  shouldValidate,
27680
27616
  isTopLevelEntity: taskType === TaskTypes.COMPANY,
27681
- readOnlyFields: trustedFieldsOfProvider
27617
+ readOnlyFields: trustedFields2
27682
27618
  })
27683
27619
  });
27684
27620
  }
@@ -28084,6 +28020,12 @@ function CompanyBasics({
28084
28020
  const {
28085
28021
  isSettingEnabled
28086
28022
  } = useSettingsContext();
28023
+ const {
28024
+ isExperimentEnabled
28025
+ } = useExperimentsContext();
28026
+ const isStrictNameAndAddressValidationEnabled = isExperimentEnabled(ExperimentNames.StrictNameAndAddressValidationV4);
28027
+ const LegalCompanyNameDefaultFieldConfig = isStrictNameAndAddressValidationEnabled ? defaultFieldConfigV4 : defaultFieldConfig$a;
28028
+ const LegalCompanyNameDefaultFieldMetadata = isStrictNameAndAddressValidationEnabled ? defaultFieldMetadataV4 : defaultFieldMetadata$a;
28087
28029
  const {
28088
28030
  updateStateSlice
28089
28031
  } = useGlobalDataSlice(COMPANY_BASICS_FORM_ID);
@@ -28109,9 +28051,9 @@ function CompanyBasics({
28109
28051
  return (_a2 = initialFormUtilsProps.allFields) == null ? void 0 : _a2.reduce((acc, field) => {
28110
28052
  switch (field) {
28111
28053
  case "legalCompanyName":
28112
- return mergeFieldMetadataIntoProps(field, resolveFieldMetadata(defaultFieldConfig$a[country], {
28054
+ return mergeFieldMetadataIntoProps(field, resolveFieldMetadata(LegalCompanyNameDefaultFieldConfig[country], {
28113
28055
  isBusiness: false
28114
- }, defaultFieldMetadata$a), acc);
28056
+ }, LegalCompanyNameDefaultFieldMetadata), acc);
28115
28057
  case "country":
28116
28058
  return {
28117
28059
  ...acc,
@@ -28964,7 +28906,8 @@ function CompanySearchDropinComponent({
28964
28906
  handleGetCompanyDataset,
28965
28907
  handleRefreshCompanyDataset,
28966
28908
  handleVerifyTin,
28967
- onTypeSwitch
28909
+ onTypeSwitch,
28910
+ trustedFields: trustedFields2
28968
28911
  }) {
28969
28912
  var _a, _b, _c, _d, _e, _f, _g;
28970
28913
  const {
@@ -29147,7 +29090,8 @@ function CompanySearchDropinComponent({
29147
29090
  handleCompanyDeepSearch,
29148
29091
  handleGetCompanyDataset,
29149
29092
  handleRefreshCompanyDataset,
29150
- handleVerifyTin
29093
+ handleVerifyTin,
29094
+ readOnlyFields: trustedFields2
29151
29095
  })
29152
29096
  });
29153
29097
  }
@@ -29247,6 +29191,42 @@ const useHasSeenSingpassSelection = ({
29247
29191
  setHasSeenSingpassSelection
29248
29192
  };
29249
29193
  };
29194
+ const getTrustedFieldsByProvider = (provider, trustedFields2) => trustedFields2.find((tf) => tf.provider === provider);
29195
+ const parseTrustedFieldsIntoReadOnlyFields = (trustedFields2, mapping) => {
29196
+ const formFieldsMapped = [];
29197
+ trustedFields2.fields.forEach((field) => {
29198
+ for (const [key, value] of Object.entries(mapping)) {
29199
+ if (value === field) {
29200
+ formFieldsMapped.push(key);
29201
+ }
29202
+ }
29203
+ });
29204
+ const readOnlyFields = {};
29205
+ formFieldsMapped.forEach((field) => {
29206
+ const tokenizedField = field.split(".");
29207
+ const formField = tokenizedField.pop();
29208
+ const formId = tokenizedField.pop();
29209
+ if (formField && formId) {
29210
+ if (formId in readOnlyFields) {
29211
+ readOnlyFields[formId].push(formField);
29212
+ } else {
29213
+ readOnlyFields[formId] = [formField];
29214
+ }
29215
+ }
29216
+ });
29217
+ return readOnlyFields;
29218
+ };
29219
+ const trustedFields = ({
29220
+ fields,
29221
+ trustedFieldsProvider,
29222
+ apiMapping
29223
+ }) => {
29224
+ if (!fields || !trustedFieldsProvider || !apiMapping) {
29225
+ return {};
29226
+ }
29227
+ const trustedFieldsOfProvider = getTrustedFieldsByProvider(trustedFieldsProvider, fields);
29228
+ return trustedFieldsOfProvider ? parseTrustedFieldsIntoReadOnlyFields(trustedFieldsOfProvider, apiMapping) : {};
29229
+ };
29250
29230
  const defaultSingpassState = {
29251
29231
  isLoading: false,
29252
29232
  isSuccess: false
@@ -29275,11 +29255,25 @@ const singpassReducer = (state, action) => {
29275
29255
  return state;
29276
29256
  }
29277
29257
  };
29258
+ const getApiMapping = (enableCompanySearchFlow, legalEntity) => {
29259
+ if (!legalEntity) return;
29260
+ const {
29261
+ type
29262
+ } = legalEntity;
29263
+ if (type === LegalEntityType.INDIVIDUAL) {
29264
+ return individualComponentsKeyMapping;
29265
+ }
29266
+ if (type === LegalEntityType.ORGANIZATION) {
29267
+ if (enableCompanySearchFlow) {
29268
+ return companySearchComponentsKeyMapping;
29269
+ }
29270
+ return companyComponentsKeyMapping;
29271
+ }
29272
+ };
29278
29273
  const useSingpassMyInfoLogin = ({
29279
29274
  legalEntity,
29280
29275
  accountHolder,
29281
- handleOpenSingpassAuthorizationLink,
29282
- apiMapping
29276
+ handleOpenSingpassAuthorizationLink
29283
29277
  }) => {
29284
29278
  const [state, dispatch] = useReducer(singpassReducer, defaultSingpassState);
29285
29279
  const {
@@ -29287,6 +29281,8 @@ const useSingpassMyInfoLogin = ({
29287
29281
  } = useExperimentsContext();
29288
29282
  const isSingpassForCompaniesEnabled = isExperimentEnabled("ShowSingPassButtonForCompanies");
29289
29283
  const isSingpassForIndividualsEnabled = isExperimentEnabled("ShowSingPassButtonForIndividuals");
29284
+ const enableCompanySearchFlow = isExperimentEnabled("EnableCompanySearchFlow");
29285
+ const apiMapping = getApiMapping(enableCompanySearchFlow, legalEntity);
29290
29286
  const isEligibleForSingpass = useMemo(() => {
29291
29287
  if (!legalEntity) {
29292
29288
  return false;
@@ -31038,7 +31034,7 @@ const Introduction = ({
31038
31034
  return (introductionScreens == null ? void 0 : introductionScreens.length) ? jsxs("div", {
31039
31035
  className: "adyen-kyc-introduction",
31040
31036
  children: [jsx(StepProgressIndicator, {
31041
- activeStepIndex: activeIndex,
31037
+ activeStepIndex: activeIndex + 1,
31042
31038
  stepsCount: introductionScreens.length
31043
31039
  }), jsx("div", {
31044
31040
  className: "adyen-kyc-introduction__skip",
@@ -32434,8 +32430,7 @@ function IndividualDropinComponent({
32434
32430
  } = useSingpassMyInfoLogin({
32435
32431
  legalEntity: legalEntityResponse,
32436
32432
  accountHolder,
32437
- handleOpenSingpassAuthorizationLink,
32438
- apiMapping: individualComponentsKeyMapping
32433
+ handleOpenSingpassAuthorizationLink
32439
32434
  });
32440
32435
  const baseTrackingPayload = getBaseTrackingPayload({
32441
32436
  trackingConfig,
@@ -32676,7 +32671,7 @@ function IndividualDropinComponent({
32676
32671
  idDocumentType: idDocumentType || null
32677
32672
  }
32678
32673
  });
32679
- const accountHolderToEvaluated = ((_c2 = dataSubmitted.personalDetails) == null ? void 0 : _c2.accountHolder) ?? accountHolder;
32674
+ const accountHolderToEvaluated = ((_c2 = dataSubmitted.personalDetails) == null ? void 0 : _c2.accountHolder) || accountHolder;
32680
32675
  legalEntity.entityAssociations = filterOutUnwantedAssociationsIfRootLE(taskType, legalEntityResponse, accountHolderToEvaluated ?? void 0);
32681
32676
  const createdLegalEntity = await submitLegalEntity({
32682
32677
  dataSubmitted,
@@ -32823,7 +32818,8 @@ function IndividualDropinComponent({
32823
32818
  setShouldValidate,
32824
32819
  gotoFormByFormIndex,
32825
32820
  nextButtonLabel,
32826
- currentStep
32821
+ currentStep,
32822
+ totalSteps
32827
32823
  } = useFormComposer({
32828
32824
  problems,
32829
32825
  baseTrackingPayload,
@@ -32860,6 +32856,7 @@ function IndividualDropinComponent({
32860
32856
  hideNavigation,
32861
32857
  asModal,
32862
32858
  currentStep,
32859
+ totalSteps,
32863
32860
  children: jsx(IndividualComponent, {
32864
32861
  ...derivedProps,
32865
32862
  capabilities: getCapabilities(legalEntityResponse),
@@ -35525,8 +35522,7 @@ function DropinComposerComponent({
35525
35522
  } = useSingpassMyInfoLogin({
35526
35523
  legalEntity: rootLegalEntity,
35527
35524
  accountHolder,
35528
- handleOpenSingpassAuthorizationLink,
35529
- apiMapping: (legalEntityResponse == null ? void 0 : legalEntityResponse.type) === LegalEntityType.INDIVIDUAL ? individualComponentsKeyMapping : companyComponentsKeyMapping
35525
+ handleOpenSingpassAuthorizationLink
35530
35526
  });
35531
35527
  const hasUsedSingpass = Boolean(Object.keys(singpassTrustedFields).length);
35532
35528
  const rootLegalEntityCountry = getLegalEntityCountry(rootLegalEntity);
@@ -36319,6 +36315,7 @@ function DropinComposerComponent({
36319
36315
  handleFindAddress: args == null ? void 0 : args.handleFindAddress,
36320
36316
  onTypeSwitch: navigateToTypeSwitcher,
36321
36317
  isTargetLegalEntityType: legalEntityType === LegalEntityType.ORGANIZATION,
36318
+ trustedFields: singpassTrustedFields,
36322
36319
  trustedFieldsProvider: isEligibleForSingpass && TrustedFieldsProvider.SINGPASS
36323
36320
  });
36324
36321
  case TaskTypes.COMPANY_SEARCH:
@@ -36355,7 +36352,9 @@ function DropinComposerComponent({
36355
36352
  handleVerifyTin: args.handleVerifyTin,
36356
36353
  onTypeSwitch: navigateToTypeSwitcher,
36357
36354
  isTargetLegalEntityType: legalEntityType === LegalEntityType.ORGANIZATION,
36358
- accountHolder
36355
+ accountHolder,
36356
+ trustedFields: singpassTrustedFields,
36357
+ trustedFieldsProvider: isEligibleForSingpass && TrustedFieldsProvider.SINGPASS
36359
36358
  });
36360
36359
  case TaskTypes.BUSINESS_DETAILS:
36361
36360
  return jsx("div", {
@@ -37272,7 +37271,7 @@ function LegalEntityStatus({
37272
37271
  status
37273
37272
  }) => {
37274
37273
  setOnboardingStatus(status);
37275
- if (status === OnboardingStatus.VERIFIED) {
37274
+ if (status !== OnboardingStatus.AWAITING_DATA) {
37276
37275
  fetchLegalEntity().then((newLegalEntity) => {
37277
37276
  setLegalEntity(newLegalEntity);
37278
37277
  setIsLoading(false);
@@ -39361,7 +39360,7 @@ const ConfigurationApiProvider = ({
39361
39360
  isEmbeddedDropin,
39362
39361
  loadingContext
39363
39362
  } = authContext;
39364
- const sdkVersion = "2.52.1";
39363
+ const sdkVersion = "2.53.0";
39365
39364
  useAnalytics({
39366
39365
  onUserEvent,
39367
39366
  legalEntityId: rootLegalEntityId,
@@ -40039,7 +40038,7 @@ const DebugModal = ({
40039
40038
  };
40040
40039
  const copyToClipboard = async () => {
40041
40040
  const toCopy = {
40042
- sdkVersion: "2.52.1",
40041
+ sdkVersion: "2.53.0",
40043
40042
  experiments: Object.fromEntries(allExperimentsWithValues),
40044
40043
  settings: Object.fromEntries(allSettingsWithValues)
40045
40044
  };
@@ -40052,28 +40051,38 @@ const DebugModal = ({
40052
40051
  setDebugInfoCopied(false);
40053
40052
  }, 5e3);
40054
40053
  };
40055
- return jsx(Modal$1, {
40054
+ const header = jsxs("div", {
40055
+ className: "adyen-kyc-debug-modal__header",
40056
+ children: ["Debug ", jsx(Button, {
40057
+ label: "Copy debug info",
40058
+ icon: "document",
40059
+ onClick: copyToClipboard
40060
+ }), debugInfoCopied ? jsxs("span", {
40061
+ children: [jsx(Icon, {
40062
+ name: "check"
40063
+ }), " Copied!"]
40064
+ }) : void 0]
40065
+ });
40066
+ const footer = jsx(Button, {
40067
+ label: "Get LE data",
40068
+ onClick: () => fetchRootLeData(),
40069
+ disabled: !getRootLegalEntity
40070
+ });
40071
+ return jsx(Modal, {
40056
40072
  size: "large",
40057
- header: jsxs(Fragment, {
40058
- children: ["Debug ", jsx(Button, {
40059
- label: "Copy debug info",
40060
- icon: "document",
40061
- onClick: copyToClipboard
40062
- }), debugInfoCopied ? jsxs("span", {
40063
- children: [jsx(Icon, {
40064
- name: "check"
40065
- }), " Copied!"]
40066
- }) : void 0]
40067
- }),
40068
- content: jsxs(Fragment, {
40073
+ header,
40074
+ footer,
40075
+ onClose: onExit,
40076
+ children: jsxs(Fragment, {
40069
40077
  children: [jsxs("div", {
40070
40078
  className: "adyen-kyc-debug-modal__meta",
40071
40079
  children: [jsxs("span", {
40072
- children: ["SDK version: ", "2.52.1"]
40080
+ children: ["SDK version: ", "2.53.0"]
40073
40081
  }), jsxs("span", {
40074
40082
  children: ["rootLegalEntityId: ", rootLegalEntityId]
40075
40083
  })]
40076
40084
  }), jsxs("div", {
40085
+ className: "adyen-kyc-debug-modal__content",
40077
40086
  children: [jsx(DebugTable, {
40078
40087
  data: allExperimentsWithValues,
40079
40088
  keyHeading: "Experiment",
@@ -40086,17 +40095,7 @@ const DebugModal = ({
40086
40095
  }), rootLeData ? jsx("pre", {
40087
40096
  children: JSON.stringify(rootLeData, null, 2)
40088
40097
  }) : void 0]
40089
- }),
40090
- footer: jsx(Button, {
40091
- label: "Get LE data",
40092
- onClick: () => fetchRootLeData(),
40093
- disabled: !getRootLegalEntity
40094
- }),
40095
- classNames: {
40096
- header: "adyen-kyc-debug-modal__header",
40097
- content: "adyen-kyc-debug-modal__content"
40098
- },
40099
- onClose: onExit
40098
+ })
40100
40099
  });
40101
40100
  };
40102
40101
  const DebugWrapper = ({