rebill-web-components-sdk 1.10.10-beta.1 → 1.10.10-beta.3

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 (170) hide show
  1. package/dist/cjs/card-fields-wrapper_11.cjs.entry.js +8 -8
  2. package/dist/cjs/index-C-VTnc0I.js.map +1 -1
  3. package/dist/cjs/input-otp.cjs.entry.js +2 -2
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/rebill-card.rebill-input-email.entry.cjs.js.map +1 -1
  6. package/dist/cjs/rebill-card_2.cjs.entry.js +78 -84
  7. package/dist/cjs/rebill-container_2.cjs.entry.js +1 -1
  8. package/dist/cjs/rebill-flex-container.cjs.entry.js +1 -1
  9. package/dist/cjs/rebill-grid-container.cjs.entry.js +1 -1
  10. package/dist/cjs/rebill-input-select.cjs.entry.js +2 -2
  11. package/dist/cjs/rebill-input-text.cjs.entry.js +2 -2
  12. package/dist/cjs/rebill-mode-sandbox_2.cjs.entry.js +1 -1
  13. package/dist/cjs/rebill-timeline-debit-day_2.cjs.entry.js +2 -2
  14. package/dist/cjs/rebill-web-components-sdk.cjs.js +1 -1
  15. package/dist/collection/components/shared/inputs/input-email/input-email.css +19 -8
  16. package/dist/collection/components/shared/inputs/input-email/input-email.js +85 -75
  17. package/dist/collection/components/shared/inputs/input-email/input-email.js.map +1 -1
  18. package/dist/collection/components/shared/inputs/input-otp/input-otp.js +2 -2
  19. package/dist/collection/components/shared/inputs/input-phone/input-phone.js +2 -2
  20. package/dist/collection/components/shared/inputs/input-select/input-select.js +2 -2
  21. package/dist/collection/components/shared/inputs/input-text/input-text.js +2 -2
  22. package/dist/collection/components/shared/layouts/generics/container.js +1 -1
  23. package/dist/collection/components/shared/layouts/generics/flex.js +1 -1
  24. package/dist/collection/components/shared/layouts/generics/grid.js +1 -1
  25. package/dist/collection/components/shared/mode-sandbox/mode-sandbox-mobile.js +1 -1
  26. package/dist/collection/components/shared/selectable-card/selectable-card.js +2 -2
  27. package/dist/collection/components/shared/singlePaymentMethod/singlePaymentMethod.js +4 -4
  28. package/dist/collection/components/shared/timeline/timeline-debit-day.js +1 -1
  29. package/dist/collection/components/shared/timeline/timeline-free-trial.js +1 -1
  30. package/dist/collection/utils/email-validation.js +11 -1
  31. package/dist/collection/utils/email-validation.js.map +1 -1
  32. package/dist/components/card-fields-wrapper.js +1 -1
  33. package/dist/components/change-card-success.js +1 -1
  34. package/dist/components/discount-coupon.js +1 -1
  35. package/dist/components/input-otp.js +1 -1
  36. package/dist/components/otp-component.js +1 -1
  37. package/dist/components/{p-xKyxKtdF.js → p-30DP4s-1.js} +4 -4
  38. package/dist/components/{p-xKyxKtdF.js.map → p-30DP4s-1.js.map} +1 -1
  39. package/dist/components/p-8BpuJ_V5.js.map +1 -1
  40. package/dist/components/{p-Cg8vTcm1.js → p-B28tIeVs.js} +3 -3
  41. package/dist/components/{p-Cg8vTcm1.js.map → p-B28tIeVs.js.map} +1 -1
  42. package/dist/components/{p-PtbrPqLv.js → p-B2zhJUcA.js} +4 -4
  43. package/dist/components/{p-PtbrPqLv.js.map → p-B2zhJUcA.js.map} +1 -1
  44. package/dist/components/{p-0K5ek-gN.js → p-B3jFm6B_.js} +4 -4
  45. package/dist/components/{p-0K5ek-gN.js.map → p-B3jFm6B_.js.map} +1 -1
  46. package/dist/components/{p-BGrQjFTc.js → p-BOYVvAQB.js} +3 -3
  47. package/dist/components/{p-BGrQjFTc.js.map → p-BOYVvAQB.js.map} +1 -1
  48. package/dist/components/{p-BgLkcEoy.js → p-BR18G7Pq.js} +4 -4
  49. package/dist/components/{p-BgLkcEoy.js.map → p-BR18G7Pq.js.map} +1 -1
  50. package/dist/components/{p-BwbfTRHn.js → p-Ba3VDw-H.js} +3 -3
  51. package/dist/components/{p-BwbfTRHn.js.map → p-Ba3VDw-H.js.map} +1 -1
  52. package/dist/components/{p-h01Qiljf.js → p-Ba8zuq-V.js} +3 -3
  53. package/dist/components/{p-h01Qiljf.js.map → p-Ba8zuq-V.js.map} +1 -1
  54. package/dist/components/{p-B0tiz_Xb.js → p-C7654vE1.js} +4 -4
  55. package/dist/components/{p-B0tiz_Xb.js.map → p-C7654vE1.js.map} +1 -1
  56. package/dist/components/{p-CiOrml-5.js → p-CFLYpSRc.js} +3 -3
  57. package/dist/components/{p-CiOrml-5.js.map → p-CFLYpSRc.js.map} +1 -1
  58. package/dist/components/{p-VlzBlwUc.js → p-CMVxImmw.js} +5 -5
  59. package/dist/components/{p-VlzBlwUc.js.map → p-CMVxImmw.js.map} +1 -1
  60. package/dist/components/{p-Cthy0N10.js → p-CP4gYqda.js} +5 -5
  61. package/dist/components/{p-Cthy0N10.js.map → p-CP4gYqda.js.map} +1 -1
  62. package/dist/components/{p-CSeC5LGG.js → p-Ch0U0Vmb.js} +3 -3
  63. package/dist/components/{p-CSeC5LGG.js.map → p-Ch0U0Vmb.js.map} +1 -1
  64. package/dist/components/{p-CamHvHq5.js → p-ChYpVv-Q.js} +4 -4
  65. package/dist/components/{p-CamHvHq5.js.map → p-ChYpVv-Q.js.map} +1 -1
  66. package/dist/components/{p-CtFu9Z9D.js → p-CypPi9fK.js} +4 -4
  67. package/dist/components/{p-CtFu9Z9D.js.map → p-CypPi9fK.js.map} +1 -1
  68. package/dist/components/{p-BOYEmkB-.js → p-D19UjlNC.js} +5 -5
  69. package/dist/components/{p-BOYEmkB-.js.map → p-D19UjlNC.js.map} +1 -1
  70. package/dist/components/{p-BqeCVajN.js → p-D6CVLxdH.js} +4 -4
  71. package/dist/components/{p-BqeCVajN.js.map → p-D6CVLxdH.js.map} +1 -1
  72. package/dist/components/{p-CVq9IPp4.js → p-DPB4aAQa.js} +6 -6
  73. package/dist/components/{p-CVq9IPp4.js.map → p-DPB4aAQa.js.map} +1 -1
  74. package/dist/components/{p-6IQljT42.js → p-Dhm2b0J_.js} +7 -7
  75. package/dist/components/{p-6IQljT42.js.map → p-Dhm2b0J_.js.map} +1 -1
  76. package/dist/components/{p-Dvnf-j7X.js → p-Dhs3vhG4.js} +5 -5
  77. package/dist/components/{p-Dvnf-j7X.js.map → p-Dhs3vhG4.js.map} +1 -1
  78. package/dist/components/{p-DR6_SaU9.js → p-Dp-CUwYp.js} +3 -3
  79. package/dist/components/{p-DR6_SaU9.js.map → p-Dp-CUwYp.js.map} +1 -1
  80. package/dist/components/{p-DeStKoNN.js → p-Dsrpb4rI.js} +3 -3
  81. package/dist/components/{p-DeStKoNN.js.map → p-Dsrpb4rI.js.map} +1 -1
  82. package/dist/components/{p-De7T_ng8.js → p-G3CHdt_U.js} +6 -6
  83. package/dist/components/{p-De7T_ng8.js.map → p-G3CHdt_U.js.map} +1 -1
  84. package/dist/components/{p-CN-2D26g.js → p-Pg_gixIL.js} +3 -3
  85. package/dist/components/{p-CN-2D26g.js.map → p-Pg_gixIL.js.map} +1 -1
  86. package/dist/components/{p-d40T-Ru7.js → p-fJpj0Zb5.js} +4 -4
  87. package/dist/components/{p-d40T-Ru7.js.map → p-fJpj0Zb5.js.map} +1 -1
  88. package/dist/components/{p-Czjk80qD.js → p-fXuAmVVV.js} +6 -6
  89. package/dist/components/{p-Czjk80qD.js.map → p-fXuAmVVV.js.map} +1 -1
  90. package/dist/components/{p-BMlyFJD4.js → p-iM2t1WOr.js} +3 -3
  91. package/dist/components/{p-BMlyFJD4.js.map → p-iM2t1WOr.js.map} +1 -1
  92. package/dist/components/{p-C-mZ7tbj.js → p-lrqPOj5Q.js} +3 -3
  93. package/dist/components/{p-C-mZ7tbj.js.map → p-lrqPOj5Q.js.map} +1 -1
  94. package/dist/components/{p-Bnocq8Cb.js → p-mSjgruQE.js} +4 -4
  95. package/dist/components/{p-Bnocq8Cb.js.map → p-mSjgruQE.js.map} +1 -1
  96. package/dist/components/{p-DP1RHUGR.js → p-r59n4m0a.js} +82 -90
  97. package/dist/components/p-r59n4m0a.js.map +1 -0
  98. package/dist/components/payment-method-selector.js +1 -1
  99. package/dist/components/rebill-address-form.js +1 -1
  100. package/dist/components/rebill-address-search.js +1 -1
  101. package/dist/components/rebill-address.js +1 -1
  102. package/dist/components/rebill-bank-selector.js +1 -1
  103. package/dist/components/rebill-change-card.js +19 -19
  104. package/dist/components/rebill-checkout-single-column.js +1 -1
  105. package/dist/components/rebill-checkout.js +26 -26
  106. package/dist/components/rebill-container.js +1 -1
  107. package/dist/components/rebill-flex-container.js +1 -1
  108. package/dist/components/rebill-footer.js +1 -1
  109. package/dist/components/rebill-grid-container.js +1 -1
  110. package/dist/components/rebill-input-email.js +1 -1
  111. package/dist/components/rebill-input-phone.js +1 -1
  112. package/dist/components/rebill-input-select.js +1 -1
  113. package/dist/components/rebill-input-text.js +1 -1
  114. package/dist/components/rebill-installments.js +1 -1
  115. package/dist/components/rebill-mode-sandbox-mobile.js +1 -1
  116. package/dist/components/rebill-processing-payment.js +1 -1
  117. package/dist/components/rebill-renewal.js +19 -19
  118. package/dist/components/rebill-summary.js +1 -1
  119. package/dist/components/rebill-timeline-debit-day.js +1 -1
  120. package/dist/components/rebill-timeline-free-trial.js +1 -1
  121. package/dist/components/renewal-success-page.js +1 -1
  122. package/dist/components/renewal-summary.js +1 -1
  123. package/dist/components/root-component.js +3 -3
  124. package/dist/components/selectable-card.js +1 -1
  125. package/dist/components/single-payment-method.js +1 -1
  126. package/dist/components/success-page.js +1 -1
  127. package/dist/components/user-information-phone.js +1 -1
  128. package/dist/components/user-information.js +1 -1
  129. package/dist/esm/card-fields-wrapper_11.entry.js +8 -8
  130. package/dist/esm/index-BTZ7D7jU.js.map +1 -1
  131. package/dist/esm/input-otp.entry.js +2 -2
  132. package/dist/esm/loader.js +1 -1
  133. package/dist/esm/rebill-card.rebill-input-email.entry.js.map +1 -1
  134. package/dist/esm/rebill-card_2.entry.js +78 -84
  135. package/dist/esm/rebill-container_2.entry.js +1 -1
  136. package/dist/esm/rebill-flex-container.entry.js +1 -1
  137. package/dist/esm/rebill-grid-container.entry.js +1 -1
  138. package/dist/esm/rebill-input-select.entry.js +2 -2
  139. package/dist/esm/rebill-input-text.entry.js +2 -2
  140. package/dist/esm/rebill-mode-sandbox_2.entry.js +1 -1
  141. package/dist/esm/rebill-timeline-debit-day_2.entry.js +2 -2
  142. package/dist/esm/rebill-web-components-sdk.js +1 -1
  143. package/dist/rebill-web-components-sdk/{p-2b3cb9b5.entry.js → p-11ee0328.entry.js} +2 -2
  144. package/dist/rebill-web-components-sdk/{p-24a79725.entry.js → p-130877f9.entry.js} +2 -2
  145. package/dist/rebill-web-components-sdk/{p-734696df.entry.js → p-16e7646e.entry.js} +2 -2
  146. package/dist/rebill-web-components-sdk/{p-c6c8bf05.entry.js → p-6eede717.entry.js} +2 -2
  147. package/dist/rebill-web-components-sdk/p-BTZ7D7jU.js.map +1 -1
  148. package/dist/rebill-web-components-sdk/p-b2fe4694.entry.js +2 -0
  149. package/dist/rebill-web-components-sdk/p-b2fe4694.entry.js.map +1 -0
  150. package/dist/rebill-web-components-sdk/{p-a09a0d53.entry.js → p-b350f63e.entry.js} +2 -2
  151. package/dist/rebill-web-components-sdk/{p-c38319c1.entry.js → p-be004b4f.entry.js} +2 -2
  152. package/dist/rebill-web-components-sdk/{p-894d7d00.entry.js → p-d73d7c39.entry.js} +2 -2
  153. package/dist/rebill-web-components-sdk/{p-45d1115b.entry.js → p-dd44d494.entry.js} +2 -2
  154. package/dist/rebill-web-components-sdk/{p-6ab7c3bc.entry.js → p-e54f571c.entry.js} +2 -2
  155. package/dist/rebill-web-components-sdk/rebill-card.rebill-input-email.entry.esm.js.map +1 -1
  156. package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
  157. package/dist/types/components/shared/inputs/input-email/input-email.d.ts +8 -17
  158. package/package.json +1 -1
  159. package/dist/components/p-DP1RHUGR.js.map +0 -1
  160. package/dist/rebill-web-components-sdk/p-8a2f420d.entry.js +0 -2
  161. package/dist/rebill-web-components-sdk/p-8a2f420d.entry.js.map +0 -1
  162. /package/dist/rebill-web-components-sdk/{p-2b3cb9b5.entry.js.map → p-11ee0328.entry.js.map} +0 -0
  163. /package/dist/rebill-web-components-sdk/{p-24a79725.entry.js.map → p-130877f9.entry.js.map} +0 -0
  164. /package/dist/rebill-web-components-sdk/{p-734696df.entry.js.map → p-16e7646e.entry.js.map} +0 -0
  165. /package/dist/rebill-web-components-sdk/{p-c6c8bf05.entry.js.map → p-6eede717.entry.js.map} +0 -0
  166. /package/dist/rebill-web-components-sdk/{p-a09a0d53.entry.js.map → p-b350f63e.entry.js.map} +0 -0
  167. /package/dist/rebill-web-components-sdk/{p-c38319c1.entry.js.map → p-be004b4f.entry.js.map} +0 -0
  168. /package/dist/rebill-web-components-sdk/{p-894d7d00.entry.js.map → p-d73d7c39.entry.js.map} +0 -0
  169. /package/dist/rebill-web-components-sdk/{p-45d1115b.entry.js.map → p-dd44d494.entry.js.map} +0 -0
  170. /package/dist/rebill-web-components-sdk/{p-6ab7c3bc.entry.js.map → p-e54f571c.entry.js.map} +0 -0
@@ -103,14 +103,14 @@ const InputOtp = class {
103
103
  }
104
104
  };
105
105
  render() {
106
- return (h("div", { key: '8f324c2d6a73de5de5b83d4b00632e7182ea3695', class: "otp-container" }, h("div", { key: '4a9d719f15a25cb7bb457b1e07aa2b2d214edf26', class: "email-icon" }, h("rebill-icon", { key: '8248ca0435594b7325930055f578c9188f5d12ca', name: "invite" })), h("div", { key: 'def3880f5a8ad7403e63f9f7fa2067972718fa16', class: "otp-input-container", onClick: this.handleFieldClick }, h("div", { key: '316ccdd7ffed1251fa6efbff1695b34735e54de2', class: "otp-fields" }, [0, 1, 2, 3, 4, 5].map(index => (h("div", { key: index, style: { display: 'flex', alignItems: 'center' } }, h("div", { class: `otp-field ${this.error ? 'error' : ''}` }, h("input", { type: "text", maxlength: "1", placeholder: this.placeholder, value: this.otpValue[index] || '', onInput: e => this.handleInput(e, index), onClick: () => this.handleInputClick(), onKeyDown: e => this.handleKeyDown(e, index), onPaste: e => this.handlePaste(e), onFocus: e => {
106
+ return (h("div", { key: '615be7ff9ad29a0873228f501be83d0891bc74af', class: "otp-container" }, h("div", { key: 'e03de7a45bb1673738f4ef9f416300e08852bcc6', class: "email-icon" }, h("rebill-icon", { key: 'b595dfa8ab4849e199a162a38c3eb5cc0ae8b1ac', name: "invite" })), h("div", { key: '5b790fac0488f00ff68f6cf8ce4f0ed680b9b1db', class: "otp-input-container", onClick: this.handleFieldClick }, h("div", { key: '2cd37978e718e40280387d9eac57db16f10a9c3d', class: "otp-fields" }, [0, 1, 2, 3, 4, 5].map(index => (h("div", { key: index, style: { display: 'flex', alignItems: 'center' } }, h("div", { class: `otp-field ${this.error ? 'error' : ''}` }, h("input", { type: "text", maxlength: "1", placeholder: this.placeholder, value: this.otpValue[index] || '', onInput: e => this.handleInput(e, index), onClick: () => this.handleInputClick(), onKeyDown: e => this.handleKeyDown(e, index), onPaste: e => this.handlePaste(e), onFocus: e => {
107
107
  this.el
108
108
  ?.querySelectorAll('.otp-field')
109
109
  .forEach(field => field.classList.remove('active'));
110
110
  e.target.parentElement?.classList.add('active');
111
111
  }, onBlur: e => {
112
112
  e.target.parentElement?.classList.remove('active');
113
- } })), index === 2 && h("div", { class: "otp-separator" }, "-")))))), this.error && h("div", { key: '27f7bd5e8d35b95867e27ad8a7ec2591761f3ebd', class: "otp-error" }, this.error)));
113
+ } })), index === 2 && h("div", { class: "otp-separator" }, "-")))))), this.error && h("div", { key: 'fabee9ad77fa762f6b2e6f267d47c323bd7b88cb', class: "otp-error" }, this.error)));
114
114
  }
115
115
  };
116
116
  InputOtp.style = inputOtpCss;
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-DQuL1Twl.js';
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy(JSON.parse("[[\"rebill-checkout\",[[256,\"rebill-checkout\",{\"productId\":[1,\"product-id\"],\"planId\":[1,\"plan-id\"],\"publicKey\":[1,\"public-key\"],\"instantProduct\":[1,\"instant-product\"],\"instantPlan\":[1,\"instant-plan\"],\"display\":[1],\"customerInformation\":[1,\"customer-information\"],\"oneClickCheckout\":[4,\"one-click-checkout\"],\"css\":[1],\"language\":[1],\"checkoutLandingSession\":[1,\"checkout-landing-session\"],\"externalPayment\":[1,\"external-payment\"],\"rejectedPaymentCard\":[32],\"rejectedPaymentAPM\":[32],\"countries\":[32],\"currentPaymentMethod\":[32],\"checkoutResponse\":[32],\"isSubmitting\":[32],\"isCardSubmitting\":[32],\"isCardSuccess\":[32],\"isAPMSubmitting\":[32],\"isAPMSuccess\":[32],\"storedCheckoutResults\":[32],\"alertErrorKeys\":[32],\"currentApmPaymentMethod\":[32],\"breakpoint\":[32],\"showRefreshModal\":[32],\"cardError\":[32],\"initialData\":[32],\"allRequiredFields\":[32],\"currentRequiredFields\":[32],\"customerExists\":[32],\"showOtp\":[32],\"otpVerified\":[32],\"responseCheckoutCard\":[32],\"cardMode\":[32],\"submit\":[64]},[[0,\"paymentMethodSelected\",\"handlePaymentMethodSelected\"],[0,\"input\",\"handleInputChange\"],[0,\"onRebillAccountClick\",\"handleRebillAccountClick\"],[0,\"returnForm\",\"handleReturnForm\"],[0,\"signOut\",\"handleSignOut\"],[0,\"codeVerified\",\"handleCodeVerified\"]],{\"language\":[\"handleLanguageChange\"]}]]],[\"rebill-renewal\",[[256,\"rebill-renewal\",{\"renewalData\":[1,\"renewal-data\"],\"renewalToken\":[1,\"renewal-token\"],\"currentPaymentMethod\":[32],\"isSubmitting\":[32],\"isCardSubmitting\":[32],\"isCardSuccess\":[32],\"errorMessage\":[32],\"breakpoint\":[32],\"errorPaymentCard\":[32],\"errorPaymentAPM\":[32],\"initialData\":[32],\"checkoutResponse\":[32],\"currentApmPaymentMethod\":[32],\"countries\":[32],\"allRequiredFields\":[32],\"currentRequiredFields\":[32],\"errorCardInvalid\":[32],\"cardMode\":[32]},[[0,\"paymentMethodSelected\",\"handlePaymentMethodSelected\"],[0,\"bankSelected\",\"handleBankSelected\"],[0,\"cardSelected\",\"handleCardSelected\"]]]]],[\"rebill-change-card\",[[256,\"rebill-change-card\",{\"changeCardData\":[1,\"change-card-data\"],\"changeCardToken\":[1,\"change-card-token\"],\"isSubmitting\":[32],\"isCardSubmitting\":[32],\"isCardSuccess\":[32],\"errorMessage\":[32],\"breakpoint\":[32],\"errorPaymentCard\":[32],\"initialData\":[32],\"countries\":[32],\"allRequiredFields\":[32],\"currentRequiredFields\":[32],\"errorCardInvalid\":[32],\"cardMode\":[32],\"completedAt\":[32]}]]],[\"root-component\",[[256,\"root-component\",{\"isLoading\":[32],\"currentLang\":[32],\"formData\":[32]}]]],[\"rebill-card-carousel\",[[256,\"rebill-card-carousel\",{\"interval\":[2],\"size\":[1],\"color\":[1],\"showAllCards\":[4,\"show-all-cards\"],\"currentIndex\":[32]}]]],[\"rebill-flex-container\",[[260,\"rebill-flex-container\",{\"direction\":[1],\"wrap\":[1],\"gap\":[1],\"alignItems\":[1,\"align-items\"],\"justifyContent\":[1,\"justify-content\"]}]]],[\"rebill-grid-container\",[[260,\"rebill-grid-container\",{\"columns\":[2],\"gap\":[1],\"alignItems\":[1,\"align-items\"],\"justifyContent\":[1,\"justify-content\"]}]]],[\"rebill-icon_2\",[[260,\"rebill-typography\",{\"variant\":[1],\"color\":[1],\"align\":[1],\"noWrap\":[4,\"no-wrap\"],\"gutterBottom\":[4,\"gutter-bottom\"],\"paragraph\":[4]}],[256,\"rebill-icon\",{\"name\":[1],\"size\":[1],\"color\":[1],\"svgContent\":[32]}]]],[\"renewal-success-page\",[[256,\"renewal-success-page\",{\"typePaymentMethod\":[1,\"type-payment-method\"],\"country\":[1],\"bank\":[1],\"paymentMethodName\":[1,\"payment-method-name\"],\"cardLastFour\":[1,\"card-last-four\"],\"paymentDate\":[1,\"payment-date\"],\"referenceNumber\":[1,\"reference-number\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"debitDay\":[2,\"debit-day\"],\"planAmount\":[2,\"plan-amount\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"currentLocale\":[32],\"breakpoint\":[32],\"loaderProgress\":[32],\"isLoadingLottie\":[32],\"showRedirectMessage\":[32]}]]],[\"change-card-success\",[[256,\"change-card-success\",{\"customerName\":[1,\"customer-name\"],\"cardLastFour\":[1,\"card-last-four\"],\"cardBrand\":[1,\"card-brand\"],\"paymentDate\":[1,\"payment-date\"],\"customerEmail\":[1,\"customer-email\"],\"currentLocale\":[32]}]]],[\"collapsible-card_3\",[[256,\"discount-coupon\",{\"hideLabel\":[4,\"hide-label\"],\"displayMode\":[1,\"display-mode\"],\"readonlyCouponCode\":[1,\"readonly-coupon-code\"],\"readonlyDiscountAmount\":[2,\"readonly-discount-amount\"],\"readonlyCurrency\":[1,\"readonly-currency\"],\"couponCode\":[32],\"actionStatus\":[32],\"isLoading\":[32],\"isError\":[32],\"currentLocale\":[32]}],[256,\"rebill-divider\"],[260,\"collapsible-card\",{\"header\":[1],\"open\":[4],\"variant\":[1],\"isOpen\":[32]}]]],[\"renewal-summary\",[[256,\"renewal-summary\",{\"displayedComponents\":[16],\"totalAmount\":[2,\"total-amount\"],\"subTotalAmount\":[2,\"sub-total-amount\"],\"subscriptionTitle\":[1,\"subscription-title\"],\"subscriptionAmount\":[2,\"subscription-amount\"],\"nextChargeDate\":[1,\"next-charge-date\"],\"frequency\":[16],\"currency\":[1],\"couponCode\":[1,\"coupon-code\"],\"discountAmount\":[2,\"discount-amount\"],\"discountPercentage\":[2,\"discount-percentage\"],\"titleKey\":[1,\"title-key\"],\"forceUpdate\":[32]}]]],[\"input-otp\",[[256,\"input-otp\",{\"error\":[1],\"otp\":[1],\"clearable\":[4],\"placeholder\":[1],\"otpValue\":[32]}]]],[\"rebill-container_2\",[[260,\"rebill-container\",{\"maxWidth\":[1,\"max-width\"],\"padding\":[1],\"fluid\":[4]}],[256,\"rebill-input-checkbox\",{\"label\":[1],\"checked\":[1540],\"error\":[1],\"id\":[1],\"disabled\":[4]},[[4,\"change\",\"handleFormChange\"]]]]],[\"rebill-timeline-debit-day_2\",[[256,\"rebill-timeline-debit-day\",{\"debitDay\":[2,\"debit-day\"],\"totalAmount\":[2,\"total-amount\"],\"planAmount\":[2,\"plan-amount\"],\"currency\":[1],\"debitStrategy\":[1,\"debit-strategy\"],\"language\":[1],\"discountApplied\":[4,\"discount-applied\"],\"discountType\":[1,\"discount-type\"],\"discountedPercentage\":[2,\"discounted-percentage\"],\"discountDuration\":[2,\"discount-duration\"],\"discountAmount\":[2,\"discount-amount\"],\"currentLanguage\":[32]}],[256,\"rebill-timeline-free-trial\",{\"trialPeriodEndsAt\":[1,\"trial-period-ends-at\"],\"trialPeriodEndsReminderAt\":[1,\"trial-period-ends-reminder-at\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"subtotal\":[2],\"currency\":[1],\"language\":[1],\"discountApplied\":[4,\"discount-applied\"],\"discountType\":[1,\"discount-type\"],\"discountedPercentage\":[2,\"discounted-percentage\"],\"discountDuration\":[2,\"discount-duration\"],\"discountAmount\":[2,\"discount-amount\"],\"currentLanguage\":[32]}]]],[\"rebill-mode-sandbox_2\",[[256,\"rebill-mode-sandbox\",{\"isPanelVisible\":[32],\"isPanelClosing\":[32],\"isCardsPanelVisible\":[32],\"isCardsPanelClosing\":[32],\"currentLanguage\":[32]}],[256,\"rebill-mode-sandbox-mobile\",{\"isPanelVisible\":[32],\"currentLanguage\":[32]}]]],[\"rebill-card_2\",[[256,\"rebill-card\",{\"cardTitle\":[1,\"card-title\"],\"cardLabels\":[16]}],[256,\"rebill-input-email\",{\"label\":[1],\"placeholder\":[1],\"value\":[1537],\"error\":[1],\"id\":[1],\"disabled\":[4],\"leftIcon\":[1,\"left-icon\"],\"clearable\":[4],\"variant\":[1],\"emailSuggestions\":[32],\"highlightedSuggestionIndex\":[32],\"emailCorrectionSuggestion\":[32],\"isValidFormat\":[32],\"hasBlurred\":[32],\"getInputElement\":[64]},[[4,\"change\",\"handleFormChange\"],[4,\"click\",\"handleDocumentClick\"]]]]],[\"rebill-vertical-divider\",[[256,\"rebill-vertical-divider\",{\"height\":[1],\"color\":[1],\"thickness\":[1],\"dashed\":[4],\"connectorActive\":[4,\"connector-active\"],\"withDot\":[4,\"with-dot\"]}]]],[\"rebill-alert\",[[256,\"rebill-alert\",{\"type\":[1],\"message\":[1],\"alertTitle\":[1,\"alert-title\"],\"icon\":[1],\"variant\":[1],\"size\":[1],\"colorIcon\":[1,\"color-icon\"]}]]],[\"rebill-input-text\",[[256,\"rebill-input-text\",{\"label\":[1],\"placeholder\":[1],\"value\":[1537],\"error\":[1],\"id\":[1],\"disabled\":[4],\"leftIcon\":[1,\"left-icon\"],\"rightIcon\":[1,\"right-icon\"],\"clearable\":[4],\"variant\":[1],\"uppercase\":[4],\"getInputElement\":[64]},[[4,\"change\",\"handleFormChange\"]]]]],[\"rebill-input-select\",[[256,\"rebill-input-select\",{\"label\":[1],\"options\":[16],\"value\":[1537],\"error\":[1],\"id\":[1],\"disabled\":[4],\"placeholder\":[1],\"variant\":[1],\"arrowIcon\":[1,\"arrow-icon\"],\"dropPosition\":[1,\"drop-position\"],\"fontSize\":[1,\"font-size\"],\"backgroundColor\":[1,\"background-color\"],\"searchable\":[4],\"searchPlaceholder\":[1,\"search-placeholder\"],\"loading\":[4],\"isOpen\":[32],\"componentId\":[32],\"highlightedIndex\":[32],\"searchTerm\":[32],\"filteredOptions\":[32],\"languageUpdateTrigger\":[32]},[[4,\"change\",\"handleFormChange\"],[4,\"closeAllSelects\",\"handleCloseAllSelects\"],[4,\"click\",\"handleDocumentClick\"],[0,\"keydown\",\"handleKeyDown\"]]]]],[\"rebill-button\",[[260,\"rebill-button\",{\"type\":[1],\"disabled\":[4],\"id\":[1],\"loading\":[4],\"showSpinnerWithText\":[4,\"show-spinner-with-text\"],\"nonClickable\":[4,\"non-clickable\"],\"variant\":[1],\"theme\":[1],\"size\":[1],\"icon\":[1],\"iconColor\":[1,\"icon-color\"]}]]],[\"organization-logo_4\",[[256,\"rebill-card-icon\",{\"cardBrand\":[1,\"card-brand\"],\"width\":[2],\"height\":[2]}],[260,\"rebill-checkout-single-column\"],[256,\"rebill-footer\",{\"breakpoint\":[32]}],[256,\"organization-logo\",{\"organization\":[16]}]]],[\"otp-component_5\",[[256,\"rebill-summary\",{\"totalAmount\":[8,\"total-amount\"],\"itemTitle\":[1,\"item-title\"],\"itemDescription\":[1,\"item-description\"],\"itemAmount\":[8,\"item-amount\"],\"planFrequency\":[1,\"plan-frequency\"],\"planFrequencyCount\":[2,\"plan-frequency-count\"],\"subtotal\":[8],\"discount\":[8],\"currency\":[1],\"displayedComponents\":[16],\"allowCoupon\":[4,\"allow-coupon\"],\"currentBreakpoint\":[1,\"current-breakpoint\"],\"discountType\":[1,\"discount-type\"],\"discountedPercentage\":[2,\"discounted-percentage\"],\"discountDuration\":[2,\"discount-duration\"],\"discountAmount\":[2,\"discount-amount\"],\"discountApplied\":[32]},[[0,\"discountApplied\",\"handleDiscountApplied\"]]],[256,\"success-page\",{\"typePaymentMethod\":[1,\"type-payment-method\"],\"country\":[1],\"bank\":[1],\"paymentMethodName\":[1,\"payment-method-name\"],\"cardLastFour\":[1,\"card-last-four\"],\"paymentDate\":[1,\"payment-date\"],\"referenceNumber\":[1,\"reference-number\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"debitDay\":[2,\"debit-day\"],\"planAmount\":[2,\"plan-amount\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"currentLocale\":[32],\"breakpoint\":[32],\"loaderProgress\":[32],\"isLoadingLottie\":[32],\"showRedirectMessage\":[32]}],[256,\"user-information\",{\"userInformation\":[16],\"errors\":[16],\"customerExists\":[4,\"customer-exists\"],\"disabled\":[4]},[[0,\"input\",\"handleInputChange\"],[0,\"blur\",\"handleBlur\"]]],[256,\"otp-component\",{\"timeLeft\":[32],\"isTimerRunning\":[32],\"codeResent\":[32],\"isVerifying\":[32],\"otpValue\":[32],\"error\":[32]}],[256,\"rebill-modal-overlay\",{\"visible\":[32],\"languageUpdateTrigger\":[32]}]]],[\"rebill-autofill-detector\",[[260,\"rebill-autofill-detector\",{\"targetSelector\":[1,\"target-selector\"],\"disabled\":[4],\"browserAutocompleteDetected\":[32],\"disabledDetector\":[32]}]]],[\"rebill-form\",[[260,\"rebill-form\",{\"validationSchema\":[8,\"validation-schema\"],\"initialData\":[16],\"renderForm\":[16],\"formData\":[32],\"errors\":[32],\"submitForm\":[64],\"resetValidation\":[64],\"clearError\":[64]},[[0,\"input\",\"handleInputChange\"],[0,\"blur\",\"handleBlur\"]],{\"initialData\":[\"handleInitialDataChange\"],\"validationSchema\":[\"handleValidationSchemaChange\"]}]]],[\"card-fields-wrapper_11\",[[256,\"card-fields-wrapper\",{\"installmentsError\":[1,\"installments-error\"],\"documentTypeError\":[1,\"document-type-error\"],\"documentNumberError\":[1,\"document-number-error\"],\"showDocument\":[4,\"show-document\"],\"customCSS\":[1,\"custom-c-s-s\"]}],[256,\"rebill-address-form\",{\"addressType\":[1,\"address-type\"],\"countryOptions\":[16],\"stateOptions\":[16],\"errors\":[16],\"disabled\":[4],\"showAdditionalInformation\":[32]}],[256,\"rebill-address-search\",{\"addressType\":[1,\"address-type\"],\"placeholder\":[1],\"error\":[1],\"disabled\":[4],\"isInitialized\":[32],\"currentLocale\":[32]}],[256,\"single-payment-method\",{\"paymentMethod\":[1,\"payment-method\"],\"currencyCountry\":[1,\"currency-country\"],\"paymentMethodDetails\":[16],\"icons\":[16]}],[256,\"rebill-input-phone\",{\"placeholder\":[1],\"value\":[1537],\"error\":[1],\"phoneNumberId\":[1,\"phone-number-id\"],\"countryCodeId\":[1,\"country-code-id\"],\"validationErrorId\":[1,\"validation-error-id\"],\"disabled\":[4],\"initialCountry\":[1,\"initial-country\"],\"required\":[4],\"searchable\":[4],\"searchPlaceholder\":[1,\"search-placeholder\"],\"selectedCountry\":[32],\"isDropdownOpen\":[32],\"validationError\":[32],\"searchTerm\":[32],\"filteredCountries\":[32],\"componentId\":[32],\"languageUpdateTrigger\":[32]},[[4,\"change\",\"handleFormChange\"],[4,\"closeAllSelects\",\"handleCloseAllSelects\"],[4,\"click\",\"handleDocumentClick\"]]],[260,\"selectable-card\",{\"selected\":[4],\"label\":[1],\"cardKey\":[1,\"card-key\"],\"disabled\":[4]}],[256,\"rebill-installments\",{\"error\":[1],\"currentValue\":[32],\"isDisabled\":[32],\"value\":[32],\"placeholder\":[32]}],[256,\"card-identification\",{\"documentTypeError\":[1,\"document-type-error\"],\"documentNumberError\":[1,\"document-number-error\"],\"disabled\":[4],\"documentTypes\":[32],\"country\":[32],\"currentLanguage\":[32]}],[256,\"card-iframe\",{\"customCSS\":[1,\"custom-c-s-s\"],\"iframeLoaded\":[32],\"currentLang\":[32],\"initialLang\":[32],\"iframeHeight\":[32]}],[256,\"rebill-input-combo\",{\"label\":[1],\"options\":[16],\"selectValue\":[1537,\"select-value\"],\"inputValue\":[1537,\"input-value\"],\"inputPlaceholder\":[1,\"input-placeholder\"],\"selectPlaceholder\":[1,\"select-placeholder\"],\"error\":[1],\"selectId\":[1,\"select-id\"],\"inputId\":[1,\"input-id\"],\"disabled\":[4],\"selectWidth\":[1,\"select-width\"],\"isOpen\":[32],\"highlightedIndex\":[32],\"componentId\":[32]},[[4,\"change\",\"handleFormChange\"],[4,\"closeAllSelects\",\"handleCloseAllSelects\"],[4,\"click\",\"handleDocumentClick\"]]],[256,\"card-skeleton\"]]],[\"apm-checkout_14\",[[256,\"apm-checkout\",{\"paymentMethod\":[1,\"payment-method\"],\"referenceId\":[1,\"reference-id\"],\"qrCodeData\":[1,\"qr-code-data\"],\"code\":[1],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"country\":[1],\"redirectUrl\":[1,\"redirect-url\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"checkoutRequestId\":[1,\"checkout-request-id\"],\"bearerToken\":[1,\"bearer-token\"],\"bankTransferData\":[8,\"bank-transfer-data\"],\"barcode\":[1],\"showRedirectMessage\":[32],\"isPolling\":[32],\"minutesLeft\":[32],\"qrStartTime\":[32],\"downloadData\":[32]}],[256,\"rebill-bank-selector\",{\"banks\":[16],\"defaultSelectedBankId\":[1,\"default-selected-bank-id\"],\"error\":[1],\"disabled\":[4],\"selectedBankId\":[32],\"languageUpdateTrigger\":[32]}],[256,\"payment-method-selector\",{\"enabledPaymentMethods\":[16],\"defaultSelected\":[1,\"default-selected\"],\"showErrorComponent\":[4,\"show-error-component\"],\"cardError\":[16],\"country\":[1],\"installmentsError\":[1,\"installments-error\"],\"documentTypeError\":[1,\"document-type-error\"],\"showDocument\":[4,\"show-document\"],\"documentNumberError\":[1,\"document-number-error\"],\"customCSS\":[1,\"custom-c-s-s\"],\"errorComponent\":[16],\"disabled\":[4],\"icon\":[32],\"selectedPaymentMethod\":[32],\"saveCard\":[32]},[[0,\"selectableCardClick\",\"handleSelectableCardClick\"]]],[256,\"rebill-address\",{\"billingView\":[1537,\"billing-view\"],\"disabled\":[4],\"countryOptions\":[16],\"errors\":[16],\"currentBillingStateOptions\":[32],\"isLoadingAddress\":[32]}],[256,\"rebill-processing-payment\",{\"titleKey\":[1,\"title-key\"],\"subtitleKey\":[1,\"subtitle-key\"],\"currentLocale\":[32],\"breakpoint\":[32],\"loaderProgress\":[32],\"isLoadingLottie\":[32]}],[256,\"bank-transfer\",{\"bankTransferData\":[8,\"bank-transfer-data\"]}],[256,\"qr-code\",{\"qrCodeData\":[1,\"qr-code-data\"],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"paymentMethod\":[1,\"payment-method\"],\"code\":[1],\"qrCodeSvg\":[32],\"isImage\":[32],\"timeLeft\":[32],\"formattedTime\":[32],\"hasCopied\":[32]}],[256,\"user-information-static\",{\"userInfo\":[16],\"variant\":[1]}],[256,\"apm-download\",{\"data\":[16]}],[256,\"payment-button\",{\"isDisabled\":[4,\"is-disabled\"],\"isLoading\":[4,\"is-loading\"],\"paymentMethod\":[1,\"payment-method\"],\"isRenewal\":[4,\"is-renewal\"],\"isChangeCard\":[4,\"is-change-card\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"redirectUrl\":[4,\"redirect-url\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"country\":[1],\"currentLanguage\":[32],\"countdownSeconds\":[32],\"paymentMethodDisplayName\":[32]},null,{\"redirectUrl\":[\"onRedirectPropsChange\"],\"timeToRedirect\":[\"onRedirectPropsChange\"]}],[256,\"user-information-phone\",{\"error\":[1],\"countryCode\":[1,\"country-code\"],\"disabled\":[4],\"languageUpdateTrigger\":[32]}],[256,\"boleto-payment\",{\"barcode\":[1],\"referenceId\":[1,\"reference-id\"],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"instructions\":[16],\"showInstructions\":[32],\"hasCopied\":[32]}],[256,\"rebill-checkout-form\",{\"validationSchema\":[8,\"validation-schema\"],\"initialData\":[16],\"renderForm\":[16],\"resetValidation\":[64]},[[0,\"change\",\"handleFormChange\"]]],[256,\"reference-code\",{\"referenceId\":[1,\"reference-id\"],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"instructions\":[16],\"showInstructions\":[32]}]]]]"), options);
8
+ return bootstrapLazy(JSON.parse("[[\"rebill-checkout\",[[256,\"rebill-checkout\",{\"productId\":[1,\"product-id\"],\"planId\":[1,\"plan-id\"],\"publicKey\":[1,\"public-key\"],\"instantProduct\":[1,\"instant-product\"],\"instantPlan\":[1,\"instant-plan\"],\"display\":[1],\"customerInformation\":[1,\"customer-information\"],\"oneClickCheckout\":[4,\"one-click-checkout\"],\"css\":[1],\"language\":[1],\"checkoutLandingSession\":[1,\"checkout-landing-session\"],\"externalPayment\":[1,\"external-payment\"],\"rejectedPaymentCard\":[32],\"rejectedPaymentAPM\":[32],\"countries\":[32],\"currentPaymentMethod\":[32],\"checkoutResponse\":[32],\"isSubmitting\":[32],\"isCardSubmitting\":[32],\"isCardSuccess\":[32],\"isAPMSubmitting\":[32],\"isAPMSuccess\":[32],\"storedCheckoutResults\":[32],\"alertErrorKeys\":[32],\"currentApmPaymentMethod\":[32],\"breakpoint\":[32],\"showRefreshModal\":[32],\"cardError\":[32],\"initialData\":[32],\"allRequiredFields\":[32],\"currentRequiredFields\":[32],\"customerExists\":[32],\"showOtp\":[32],\"otpVerified\":[32],\"responseCheckoutCard\":[32],\"cardMode\":[32],\"submit\":[64]},[[0,\"paymentMethodSelected\",\"handlePaymentMethodSelected\"],[0,\"input\",\"handleInputChange\"],[0,\"onRebillAccountClick\",\"handleRebillAccountClick\"],[0,\"returnForm\",\"handleReturnForm\"],[0,\"signOut\",\"handleSignOut\"],[0,\"codeVerified\",\"handleCodeVerified\"]],{\"language\":[\"handleLanguageChange\"]}]]],[\"rebill-renewal\",[[256,\"rebill-renewal\",{\"renewalData\":[1,\"renewal-data\"],\"renewalToken\":[1,\"renewal-token\"],\"currentPaymentMethod\":[32],\"isSubmitting\":[32],\"isCardSubmitting\":[32],\"isCardSuccess\":[32],\"errorMessage\":[32],\"breakpoint\":[32],\"errorPaymentCard\":[32],\"errorPaymentAPM\":[32],\"initialData\":[32],\"checkoutResponse\":[32],\"currentApmPaymentMethod\":[32],\"countries\":[32],\"allRequiredFields\":[32],\"currentRequiredFields\":[32],\"errorCardInvalid\":[32],\"cardMode\":[32]},[[0,\"paymentMethodSelected\",\"handlePaymentMethodSelected\"],[0,\"bankSelected\",\"handleBankSelected\"],[0,\"cardSelected\",\"handleCardSelected\"]]]]],[\"rebill-change-card\",[[256,\"rebill-change-card\",{\"changeCardData\":[1,\"change-card-data\"],\"changeCardToken\":[1,\"change-card-token\"],\"isSubmitting\":[32],\"isCardSubmitting\":[32],\"isCardSuccess\":[32],\"errorMessage\":[32],\"breakpoint\":[32],\"errorPaymentCard\":[32],\"initialData\":[32],\"countries\":[32],\"allRequiredFields\":[32],\"currentRequiredFields\":[32],\"errorCardInvalid\":[32],\"cardMode\":[32],\"completedAt\":[32]}]]],[\"root-component\",[[256,\"root-component\",{\"isLoading\":[32],\"currentLang\":[32],\"formData\":[32]}]]],[\"rebill-card-carousel\",[[256,\"rebill-card-carousel\",{\"interval\":[2],\"size\":[1],\"color\":[1],\"showAllCards\":[4,\"show-all-cards\"],\"currentIndex\":[32]}]]],[\"rebill-flex-container\",[[260,\"rebill-flex-container\",{\"direction\":[1],\"wrap\":[1],\"gap\":[1],\"alignItems\":[1,\"align-items\"],\"justifyContent\":[1,\"justify-content\"]}]]],[\"rebill-grid-container\",[[260,\"rebill-grid-container\",{\"columns\":[2],\"gap\":[1],\"alignItems\":[1,\"align-items\"],\"justifyContent\":[1,\"justify-content\"]}]]],[\"rebill-icon_2\",[[260,\"rebill-typography\",{\"variant\":[1],\"color\":[1],\"align\":[1],\"noWrap\":[4,\"no-wrap\"],\"gutterBottom\":[4,\"gutter-bottom\"],\"paragraph\":[4]}],[256,\"rebill-icon\",{\"name\":[1],\"size\":[1],\"color\":[1],\"svgContent\":[32]}]]],[\"renewal-success-page\",[[256,\"renewal-success-page\",{\"typePaymentMethod\":[1,\"type-payment-method\"],\"country\":[1],\"bank\":[1],\"paymentMethodName\":[1,\"payment-method-name\"],\"cardLastFour\":[1,\"card-last-four\"],\"paymentDate\":[1,\"payment-date\"],\"referenceNumber\":[1,\"reference-number\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"debitDay\":[2,\"debit-day\"],\"planAmount\":[2,\"plan-amount\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"currentLocale\":[32],\"breakpoint\":[32],\"loaderProgress\":[32],\"isLoadingLottie\":[32],\"showRedirectMessage\":[32]}]]],[\"change-card-success\",[[256,\"change-card-success\",{\"customerName\":[1,\"customer-name\"],\"cardLastFour\":[1,\"card-last-four\"],\"cardBrand\":[1,\"card-brand\"],\"paymentDate\":[1,\"payment-date\"],\"customerEmail\":[1,\"customer-email\"],\"currentLocale\":[32]}]]],[\"collapsible-card_3\",[[256,\"discount-coupon\",{\"hideLabel\":[4,\"hide-label\"],\"displayMode\":[1,\"display-mode\"],\"readonlyCouponCode\":[1,\"readonly-coupon-code\"],\"readonlyDiscountAmount\":[2,\"readonly-discount-amount\"],\"readonlyCurrency\":[1,\"readonly-currency\"],\"couponCode\":[32],\"actionStatus\":[32],\"isLoading\":[32],\"isError\":[32],\"currentLocale\":[32]}],[256,\"rebill-divider\"],[260,\"collapsible-card\",{\"header\":[1],\"open\":[4],\"variant\":[1],\"isOpen\":[32]}]]],[\"renewal-summary\",[[256,\"renewal-summary\",{\"displayedComponents\":[16],\"totalAmount\":[2,\"total-amount\"],\"subTotalAmount\":[2,\"sub-total-amount\"],\"subscriptionTitle\":[1,\"subscription-title\"],\"subscriptionAmount\":[2,\"subscription-amount\"],\"nextChargeDate\":[1,\"next-charge-date\"],\"frequency\":[16],\"currency\":[1],\"couponCode\":[1,\"coupon-code\"],\"discountAmount\":[2,\"discount-amount\"],\"discountPercentage\":[2,\"discount-percentage\"],\"titleKey\":[1,\"title-key\"],\"forceUpdate\":[32]}]]],[\"input-otp\",[[256,\"input-otp\",{\"error\":[1],\"otp\":[1],\"clearable\":[4],\"placeholder\":[1],\"otpValue\":[32]}]]],[\"rebill-container_2\",[[260,\"rebill-container\",{\"maxWidth\":[1,\"max-width\"],\"padding\":[1],\"fluid\":[4]}],[256,\"rebill-input-checkbox\",{\"label\":[1],\"checked\":[1540],\"error\":[1],\"id\":[1],\"disabled\":[4]},[[4,\"change\",\"handleFormChange\"]]]]],[\"rebill-timeline-debit-day_2\",[[256,\"rebill-timeline-debit-day\",{\"debitDay\":[2,\"debit-day\"],\"totalAmount\":[2,\"total-amount\"],\"planAmount\":[2,\"plan-amount\"],\"currency\":[1],\"debitStrategy\":[1,\"debit-strategy\"],\"language\":[1],\"discountApplied\":[4,\"discount-applied\"],\"discountType\":[1,\"discount-type\"],\"discountedPercentage\":[2,\"discounted-percentage\"],\"discountDuration\":[2,\"discount-duration\"],\"discountAmount\":[2,\"discount-amount\"],\"currentLanguage\":[32]}],[256,\"rebill-timeline-free-trial\",{\"trialPeriodEndsAt\":[1,\"trial-period-ends-at\"],\"trialPeriodEndsReminderAt\":[1,\"trial-period-ends-reminder-at\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"subtotal\":[2],\"currency\":[1],\"language\":[1],\"discountApplied\":[4,\"discount-applied\"],\"discountType\":[1,\"discount-type\"],\"discountedPercentage\":[2,\"discounted-percentage\"],\"discountDuration\":[2,\"discount-duration\"],\"discountAmount\":[2,\"discount-amount\"],\"currentLanguage\":[32]}]]],[\"rebill-mode-sandbox_2\",[[256,\"rebill-mode-sandbox\",{\"isPanelVisible\":[32],\"isPanelClosing\":[32],\"isCardsPanelVisible\":[32],\"isCardsPanelClosing\":[32],\"currentLanguage\":[32]}],[256,\"rebill-mode-sandbox-mobile\",{\"isPanelVisible\":[32],\"currentLanguage\":[32]}]]],[\"rebill-card_2\",[[256,\"rebill-card\",{\"cardTitle\":[1,\"card-title\"],\"cardLabels\":[16]}],[256,\"rebill-input-email\",{\"label\":[1],\"placeholder\":[1],\"value\":[1537],\"error\":[1],\"id\":[1],\"disabled\":[4],\"leftIcon\":[1,\"left-icon\"],\"clearable\":[4],\"variant\":[1],\"emailSuggestions\":[32],\"highlightedSuggestionIndex\":[32],\"emailCorrectionSuggestion\":[32],\"dropdownPosition\":[32],\"getInputElement\":[64]},[[4,\"change\",\"handleFormChange\"],[4,\"click\",\"handleDocumentClick\"],[5,\"touchend\",\"handleDocumentTouchEnd\"]]]]],[\"rebill-vertical-divider\",[[256,\"rebill-vertical-divider\",{\"height\":[1],\"color\":[1],\"thickness\":[1],\"dashed\":[4],\"connectorActive\":[4,\"connector-active\"],\"withDot\":[4,\"with-dot\"]}]]],[\"rebill-alert\",[[256,\"rebill-alert\",{\"type\":[1],\"message\":[1],\"alertTitle\":[1,\"alert-title\"],\"icon\":[1],\"variant\":[1],\"size\":[1],\"colorIcon\":[1,\"color-icon\"]}]]],[\"rebill-input-text\",[[256,\"rebill-input-text\",{\"label\":[1],\"placeholder\":[1],\"value\":[1537],\"error\":[1],\"id\":[1],\"disabled\":[4],\"leftIcon\":[1,\"left-icon\"],\"rightIcon\":[1,\"right-icon\"],\"clearable\":[4],\"variant\":[1],\"uppercase\":[4],\"getInputElement\":[64]},[[4,\"change\",\"handleFormChange\"]]]]],[\"rebill-input-select\",[[256,\"rebill-input-select\",{\"label\":[1],\"options\":[16],\"value\":[1537],\"error\":[1],\"id\":[1],\"disabled\":[4],\"placeholder\":[1],\"variant\":[1],\"arrowIcon\":[1,\"arrow-icon\"],\"dropPosition\":[1,\"drop-position\"],\"fontSize\":[1,\"font-size\"],\"backgroundColor\":[1,\"background-color\"],\"searchable\":[4],\"searchPlaceholder\":[1,\"search-placeholder\"],\"loading\":[4],\"isOpen\":[32],\"componentId\":[32],\"highlightedIndex\":[32],\"searchTerm\":[32],\"filteredOptions\":[32],\"languageUpdateTrigger\":[32]},[[4,\"change\",\"handleFormChange\"],[4,\"closeAllSelects\",\"handleCloseAllSelects\"],[4,\"click\",\"handleDocumentClick\"],[0,\"keydown\",\"handleKeyDown\"]]]]],[\"rebill-button\",[[260,\"rebill-button\",{\"type\":[1],\"disabled\":[4],\"id\":[1],\"loading\":[4],\"showSpinnerWithText\":[4,\"show-spinner-with-text\"],\"nonClickable\":[4,\"non-clickable\"],\"variant\":[1],\"theme\":[1],\"size\":[1],\"icon\":[1],\"iconColor\":[1,\"icon-color\"]}]]],[\"organization-logo_4\",[[256,\"rebill-card-icon\",{\"cardBrand\":[1,\"card-brand\"],\"width\":[2],\"height\":[2]}],[260,\"rebill-checkout-single-column\"],[256,\"rebill-footer\",{\"breakpoint\":[32]}],[256,\"organization-logo\",{\"organization\":[16]}]]],[\"otp-component_5\",[[256,\"rebill-summary\",{\"totalAmount\":[8,\"total-amount\"],\"itemTitle\":[1,\"item-title\"],\"itemDescription\":[1,\"item-description\"],\"itemAmount\":[8,\"item-amount\"],\"planFrequency\":[1,\"plan-frequency\"],\"planFrequencyCount\":[2,\"plan-frequency-count\"],\"subtotal\":[8],\"discount\":[8],\"currency\":[1],\"displayedComponents\":[16],\"allowCoupon\":[4,\"allow-coupon\"],\"currentBreakpoint\":[1,\"current-breakpoint\"],\"discountType\":[1,\"discount-type\"],\"discountedPercentage\":[2,\"discounted-percentage\"],\"discountDuration\":[2,\"discount-duration\"],\"discountAmount\":[2,\"discount-amount\"],\"discountApplied\":[32]},[[0,\"discountApplied\",\"handleDiscountApplied\"]]],[256,\"success-page\",{\"typePaymentMethod\":[1,\"type-payment-method\"],\"country\":[1],\"bank\":[1],\"paymentMethodName\":[1,\"payment-method-name\"],\"cardLastFour\":[1,\"card-last-four\"],\"paymentDate\":[1,\"payment-date\"],\"referenceNumber\":[1,\"reference-number\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"debitDay\":[2,\"debit-day\"],\"planAmount\":[2,\"plan-amount\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"currentLocale\":[32],\"breakpoint\":[32],\"loaderProgress\":[32],\"isLoadingLottie\":[32],\"showRedirectMessage\":[32]}],[256,\"user-information\",{\"userInformation\":[16],\"errors\":[16],\"customerExists\":[4,\"customer-exists\"],\"disabled\":[4]},[[0,\"input\",\"handleInputChange\"],[0,\"blur\",\"handleBlur\"]]],[256,\"otp-component\",{\"timeLeft\":[32],\"isTimerRunning\":[32],\"codeResent\":[32],\"isVerifying\":[32],\"otpValue\":[32],\"error\":[32]}],[256,\"rebill-modal-overlay\",{\"visible\":[32],\"languageUpdateTrigger\":[32]}]]],[\"rebill-autofill-detector\",[[260,\"rebill-autofill-detector\",{\"targetSelector\":[1,\"target-selector\"],\"disabled\":[4],\"browserAutocompleteDetected\":[32],\"disabledDetector\":[32]}]]],[\"rebill-form\",[[260,\"rebill-form\",{\"validationSchema\":[8,\"validation-schema\"],\"initialData\":[16],\"renderForm\":[16],\"formData\":[32],\"errors\":[32],\"submitForm\":[64],\"resetValidation\":[64],\"clearError\":[64]},[[0,\"input\",\"handleInputChange\"],[0,\"blur\",\"handleBlur\"]],{\"initialData\":[\"handleInitialDataChange\"],\"validationSchema\":[\"handleValidationSchemaChange\"]}]]],[\"card-fields-wrapper_11\",[[256,\"card-fields-wrapper\",{\"installmentsError\":[1,\"installments-error\"],\"documentTypeError\":[1,\"document-type-error\"],\"documentNumberError\":[1,\"document-number-error\"],\"showDocument\":[4,\"show-document\"],\"customCSS\":[1,\"custom-c-s-s\"]}],[256,\"rebill-address-form\",{\"addressType\":[1,\"address-type\"],\"countryOptions\":[16],\"stateOptions\":[16],\"errors\":[16],\"disabled\":[4],\"showAdditionalInformation\":[32]}],[256,\"rebill-address-search\",{\"addressType\":[1,\"address-type\"],\"placeholder\":[1],\"error\":[1],\"disabled\":[4],\"isInitialized\":[32],\"currentLocale\":[32]}],[256,\"single-payment-method\",{\"paymentMethod\":[1,\"payment-method\"],\"currencyCountry\":[1,\"currency-country\"],\"paymentMethodDetails\":[16],\"icons\":[16]}],[256,\"rebill-input-phone\",{\"placeholder\":[1],\"value\":[1537],\"error\":[1],\"phoneNumberId\":[1,\"phone-number-id\"],\"countryCodeId\":[1,\"country-code-id\"],\"validationErrorId\":[1,\"validation-error-id\"],\"disabled\":[4],\"initialCountry\":[1,\"initial-country\"],\"required\":[4],\"searchable\":[4],\"searchPlaceholder\":[1,\"search-placeholder\"],\"selectedCountry\":[32],\"isDropdownOpen\":[32],\"validationError\":[32],\"searchTerm\":[32],\"filteredCountries\":[32],\"componentId\":[32],\"languageUpdateTrigger\":[32]},[[4,\"change\",\"handleFormChange\"],[4,\"closeAllSelects\",\"handleCloseAllSelects\"],[4,\"click\",\"handleDocumentClick\"]]],[260,\"selectable-card\",{\"selected\":[4],\"label\":[1],\"cardKey\":[1,\"card-key\"],\"disabled\":[4]}],[256,\"rebill-installments\",{\"error\":[1],\"currentValue\":[32],\"isDisabled\":[32],\"value\":[32],\"placeholder\":[32]}],[256,\"card-identification\",{\"documentTypeError\":[1,\"document-type-error\"],\"documentNumberError\":[1,\"document-number-error\"],\"disabled\":[4],\"documentTypes\":[32],\"country\":[32],\"currentLanguage\":[32]}],[256,\"card-iframe\",{\"customCSS\":[1,\"custom-c-s-s\"],\"iframeLoaded\":[32],\"currentLang\":[32],\"initialLang\":[32],\"iframeHeight\":[32]}],[256,\"rebill-input-combo\",{\"label\":[1],\"options\":[16],\"selectValue\":[1537,\"select-value\"],\"inputValue\":[1537,\"input-value\"],\"inputPlaceholder\":[1,\"input-placeholder\"],\"selectPlaceholder\":[1,\"select-placeholder\"],\"error\":[1],\"selectId\":[1,\"select-id\"],\"inputId\":[1,\"input-id\"],\"disabled\":[4],\"selectWidth\":[1,\"select-width\"],\"isOpen\":[32],\"highlightedIndex\":[32],\"componentId\":[32]},[[4,\"change\",\"handleFormChange\"],[4,\"closeAllSelects\",\"handleCloseAllSelects\"],[4,\"click\",\"handleDocumentClick\"]]],[256,\"card-skeleton\"]]],[\"apm-checkout_14\",[[256,\"apm-checkout\",{\"paymentMethod\":[1,\"payment-method\"],\"referenceId\":[1,\"reference-id\"],\"qrCodeData\":[1,\"qr-code-data\"],\"code\":[1],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"country\":[1],\"redirectUrl\":[1,\"redirect-url\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"checkoutRequestId\":[1,\"checkout-request-id\"],\"bearerToken\":[1,\"bearer-token\"],\"bankTransferData\":[8,\"bank-transfer-data\"],\"barcode\":[1],\"showRedirectMessage\":[32],\"isPolling\":[32],\"minutesLeft\":[32],\"qrStartTime\":[32],\"downloadData\":[32]}],[256,\"rebill-bank-selector\",{\"banks\":[16],\"defaultSelectedBankId\":[1,\"default-selected-bank-id\"],\"error\":[1],\"disabled\":[4],\"selectedBankId\":[32],\"languageUpdateTrigger\":[32]}],[256,\"payment-method-selector\",{\"enabledPaymentMethods\":[16],\"defaultSelected\":[1,\"default-selected\"],\"showErrorComponent\":[4,\"show-error-component\"],\"cardError\":[16],\"country\":[1],\"installmentsError\":[1,\"installments-error\"],\"documentTypeError\":[1,\"document-type-error\"],\"showDocument\":[4,\"show-document\"],\"documentNumberError\":[1,\"document-number-error\"],\"customCSS\":[1,\"custom-c-s-s\"],\"errorComponent\":[16],\"disabled\":[4],\"icon\":[32],\"selectedPaymentMethod\":[32],\"saveCard\":[32]},[[0,\"selectableCardClick\",\"handleSelectableCardClick\"]]],[256,\"rebill-address\",{\"billingView\":[1537,\"billing-view\"],\"disabled\":[4],\"countryOptions\":[16],\"errors\":[16],\"currentBillingStateOptions\":[32],\"isLoadingAddress\":[32]}],[256,\"rebill-processing-payment\",{\"titleKey\":[1,\"title-key\"],\"subtitleKey\":[1,\"subtitle-key\"],\"currentLocale\":[32],\"breakpoint\":[32],\"loaderProgress\":[32],\"isLoadingLottie\":[32]}],[256,\"bank-transfer\",{\"bankTransferData\":[8,\"bank-transfer-data\"]}],[256,\"qr-code\",{\"qrCodeData\":[1,\"qr-code-data\"],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"paymentMethod\":[1,\"payment-method\"],\"code\":[1],\"qrCodeSvg\":[32],\"isImage\":[32],\"timeLeft\":[32],\"formattedTime\":[32],\"hasCopied\":[32]}],[256,\"user-information-static\",{\"userInfo\":[16],\"variant\":[1]}],[256,\"apm-download\",{\"data\":[16]}],[256,\"payment-button\",{\"isDisabled\":[4,\"is-disabled\"],\"isLoading\":[4,\"is-loading\"],\"paymentMethod\":[1,\"payment-method\"],\"isRenewal\":[4,\"is-renewal\"],\"isChangeCard\":[4,\"is-change-card\"],\"trialPeriodDays\":[2,\"trial-period-days\"],\"redirectUrl\":[4,\"redirect-url\"],\"timeToRedirect\":[2,\"time-to-redirect\"],\"country\":[1],\"currentLanguage\":[32],\"countdownSeconds\":[32],\"paymentMethodDisplayName\":[32]},null,{\"redirectUrl\":[\"onRedirectPropsChange\"],\"timeToRedirect\":[\"onRedirectPropsChange\"]}],[256,\"user-information-phone\",{\"error\":[1],\"countryCode\":[1,\"country-code\"],\"disabled\":[4],\"languageUpdateTrigger\":[32]}],[256,\"boleto-payment\",{\"barcode\":[1],\"referenceId\":[1,\"reference-id\"],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"instructions\":[16],\"showInstructions\":[32],\"hasCopied\":[32]}],[256,\"rebill-checkout-form\",{\"validationSchema\":[8,\"validation-schema\"],\"initialData\":[16],\"renderForm\":[16],\"resetValidation\":[64]},[[0,\"change\",\"handleFormChange\"]]],[256,\"reference-code\",{\"referenceId\":[1,\"reference-id\"],\"providerName\":[1,\"provider-name\"],\"expirationDate\":[1,\"expiration-date\"],\"instructions\":[16],\"showInstructions\":[32]}]]]]"), options);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };
@@ -1 +1 @@
1
- {"version":3,"file":"rebill-card.rebill-input-email.entry.js","sources":["src/utils/email-validation.constants.ts","src/utils/email-validation.ts","src/components/shared/card/card.css?tag=rebill-card","src/components/shared/card/card.tsx","src/components/shared/inputs/input-email/input-email.css?tag=rebill-input-email","src/components/shared/inputs/input-email/input-email.tsx"],"sourcesContent":["export const COMMON_EMAIL_DOMAINS = [\n 'gmail.com',\n 'outlook.com',\n 'hotmail.com',\n 'yahoo.com',\n 'icloud.com',\n 'msn.com',\n 'live.com',\n];\n\nexport const VALID_TLDS = [\n 'com',\n 'org',\n 'net',\n 'info',\n 'biz',\n 'online',\n 'site',\n 'store',\n 'shop',\n 'xyz',\n 'pro',\n 'name',\n 'email',\n 'cloud',\n 'tech',\n 'app',\n 'dev',\n 'io',\n 'me',\n 'ai',\n 'co',\n 'int',\n 'edu',\n 'gov',\n 'mil',\n 'us',\n 'ca',\n 'uk',\n 'de',\n 'fr',\n 'es',\n 'it',\n 'nl',\n 'be',\n 'se',\n 'no',\n 'dk',\n 'fi',\n 'ch',\n 'at',\n 'pl',\n 'cz',\n 'gr',\n 'hu',\n 'pt',\n 'ro',\n 'bg',\n 'si',\n 'sk',\n 'ie',\n 'lt',\n 'lv',\n 'ee',\n 'is',\n 'ru',\n 'tr',\n 'ge',\n 'am',\n 'az',\n 'ar',\n 'mx',\n 'br',\n 'cl',\n 'co',\n 'uy',\n 'py',\n 'bo',\n 'pe',\n 'ec',\n 've',\n 'pa',\n 'cr',\n 'ni',\n 'hn',\n 'sv',\n 'gt',\n 'bs',\n 'bb',\n 'ag',\n 'dm',\n 'gd',\n 'lc',\n 'vc',\n 'tt',\n 'jm',\n 'do',\n 'ht',\n 'ky',\n 'tc',\n 'vg',\n 'bm',\n 'gf',\n 'gp',\n 'mq',\n 're',\n 'yt',\n 'pf',\n 'nc',\n];\n\nexport const MAX_LEVENSHTEIN_DISTANCE_DOMAIN = 3;\nexport const MAX_LEVENSHTEIN_DISTANCE_TLD = 2;\nexport const BLUR_DELAY_MS = 200;\n","import {\n COMMON_EMAIL_DOMAINS,\n MAX_LEVENSHTEIN_DISTANCE_DOMAIN,\n MAX_LEVENSHTEIN_DISTANCE_TLD,\n VALID_TLDS,\n} from './email-validation.constants';\n\n// ============================================================================\n// HELPER FUNCTIONS\n// ============================================================================\n\nfunction normalizeDomain(domain: string): string {\n return domain?.toLowerCase().trim() || '';\n}\n\nfunction normalizeTLD(tld: string): string {\n if (!tld) return '';\n return tld.toLowerCase().replace(/^\\./, '');\n}\n\nfunction isExactCommonDomain(domain: string): boolean {\n return COMMON_EMAIL_DOMAINS.some(\n commonDomain => normalizeDomain(commonDomain) === normalizeDomain(domain),\n );\n}\n\nfunction buildEmailCorrection(localPart: string, domain: string): string {\n return `${localPart}@${domain}`;\n}\n\nfunction getDomainParts(commonDomain: string): { name: string; tld: string } {\n const parts = commonDomain.split('.');\n return {\n name: parts[0],\n tld: parts[1] || '',\n };\n}\n\nfunction levenshteinDistance(str1: string, str2: string): number {\n const matrix: number[][] = [];\n\n for (let i = 0; i <= str2.length; i++) {\n matrix[i] = [i];\n }\n\n for (let j = 0; j <= str1.length; j++) {\n matrix[0][j] = j;\n }\n\n for (let i = 1; i <= str2.length; i++) {\n for (let j = 1; j <= str1.length; j++) {\n if (str2.charAt(i - 1) === str1.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1,\n matrix[i][j - 1] + 1,\n matrix[i - 1][j] + 1,\n );\n }\n }\n }\n\n return matrix[str2.length][str1.length];\n}\n\nfunction extractDomainName(domain: string): string {\n return domain.split('.')[0];\n}\n\n/**\n * Valida si el TLD es válido\n * Los TLDs en VALID_TLDS no tienen punto (ej: \"com\")\n */\nexport function isValidTLD(tld: string): boolean {\n if (!tld) return false;\n return VALID_TLDS.includes(normalizeTLD(tld));\n}\n\n/**\n * Encuentra un TLD válido similar al ingresado\n * Retorna el TLD sin punto porque se usa en join('.')\n */\nexport function findSimilarTLD(inputTLD: string): string | null {\n if (!inputTLD) return null;\n\n const normalized = normalizeTLD(inputTLD);\n\n if (VALID_TLDS.includes(normalized)) {\n return null;\n }\n let bestMatch: string | null = null;\n let minDistance = Infinity;\n\n for (const validTLD of VALID_TLDS) {\n const distance = levenshteinDistance(normalized, validTLD);\n\n if (distance < minDistance && distance > 0 && distance <= MAX_LEVENSHTEIN_DISTANCE_TLD) {\n minDistance = distance;\n bestMatch = validTLD;\n }\n }\n\n return bestMatch;\n}\n\n/**\n * Encuentra el dominio más similar a uno de los dominios comunes\n */\nexport function findSimilarDomain(inputDomain: string): string | null {\n if (!inputDomain || inputDomain.trim() === '') {\n return null;\n }\n\n const normalizedInput = inputDomain.toLowerCase().trim();\n const domainName = extractDomainName(normalizedInput);\n\n let bestMatch: string | null = null;\n let minDistance = Infinity;\n\n for (const domain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(domain);\n const distance = levenshteinDistance(domainName, commonDomainName);\n\n if (distance < minDistance && distance > 0 && distance <= MAX_LEVENSHTEIN_DISTANCE_DOMAIN) {\n minDistance = distance;\n bestMatch = domain;\n }\n }\n\n return bestMatch;\n}\n\n/**\n * Detecta si hay errores de formato en el dominio (no errores tipográficos)\n * ej: doble punto (..), punto al inicio/final, caracteres inválidos\n */\nexport function hasEmailFormatError(domainPart: string): boolean {\n if (!domainPart) return false;\n\n if (domainPart.includes('..')) {\n return true;\n }\n\n if (domainPart.startsWith('.') || domainPart.endsWith('.')) {\n return true;\n }\n\n const validDomainPattern = /^[a-zA-Z0-9.-]+$/;\n if (!validDomainPattern.test(domainPart)) {\n return true;\n }\n\n // Validar que el TLD (después del último punto) tenga al menos 2 caracteres\n const lastDotIndex = domainPart.lastIndexOf('.');\n if (lastDotIndex !== -1) {\n const tld = domainPart.substring(lastDotIndex + 1);\n if (tld.length < 2) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Detecta si falta un punto en el dominio (ej: \"gmailcom\" -> \"gmail.com\")\n */\nexport function detectMissingDot(\n domainPart: string,\n isValidTLDFn: (tld: string) => boolean,\n): string | null {\n if (!domainPart || domainPart.includes('.')) {\n return null;\n }\n\n for (const commonDomain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(commonDomain);\n const normalizedDomain = normalizeDomain(domainPart);\n const normalizedCommonName = normalizeDomain(commonDomainName);\n\n if (normalizedDomain.startsWith(normalizedCommonName)) {\n const remaining = normalizedDomain.substring(normalizedCommonName.length);\n\n if (isValidTLDFn(remaining)) {\n return `${commonDomainName}.${remaining}`;\n }\n }\n }\n for (const commonDomain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(commonDomain);\n const { tld: commonTLD } = getDomainParts(commonDomain);\n\n const expectedWithoutDot = `${commonDomainName}${commonTLD}`;\n if (normalizeDomain(domainPart) === normalizeDomain(expectedWithoutDot)) {\n return commonDomain;\n }\n }\n\n return null;\n}\n\n/**\n * Detecta si falta un punto en un dominio de múltiples partes\n * ej: \"gmailcom.ar\" -> \"gmail.com.ar\"\n */\nexport function detectMissingDotInMultiPartDomain(domainPart: string): string | null {\n if (!domainPart || !domainPart.includes('.')) {\n return null;\n }\n\n const domainParts = domainPart.split('.');\n const firstPart = domainParts[0];\n const restParts = domainParts.slice(1);\n\n for (const commonDomain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(commonDomain);\n const { tld: commonTLD } = getDomainParts(commonDomain);\n\n const expectedWithoutDot = `${commonDomainName}${commonTLD}`;\n if (normalizeDomain(firstPart) === normalizeDomain(expectedWithoutDot)) {\n const correctedParts = [commonDomainName, commonTLD, ...restParts];\n return correctedParts.join('.');\n }\n }\n\n return null;\n}\n\n/**\n * Valida el formato básico del email completo\n * @param email - El email a validar\n * @returns true si el formato es válido, false en caso contrario\n */\nexport function validateEmailFormat(email: string): boolean {\n if (!email || email.trim() === '') {\n return true;\n }\n\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n}\n\n/**\n * Genera sugerencias de email basadas en dominios comunes\n * @param emailValue - El valor actual del email que el usuario está escribiendo\n * @returns Array de emails sugeridos\n */\nexport function getEmailSuggestions(emailValue: string): string[] {\n if (!emailValue || !emailValue.includes('@')) {\n return [];\n }\n\n const [localPart, domainPart] = emailValue.split('@');\n\n if (!localPart) {\n return [];\n }\n\n if (domainPart && domainPart.includes('.') && !domainPart.endsWith('.')) {\n return [];\n }\n\n const filteredDomains = COMMON_EMAIL_DOMAINS.filter(domain => {\n if (!domainPart || domainPart.trim() === '') {\n return true;\n }\n return domain.startsWith(domainPart.toLowerCase());\n });\n\n return filteredDomains.map(domain => `${localPart}@${domain}`);\n}\n\n/**\n * Corrige errores tipográficos en un dominio que ya tiene puntos\n * @param localPart - La parte local del email (antes del @)\n * @param domainPart - La parte del dominio (después del @)\n * @returns El email corregido sugerido, o null si no hay corrección\n */\nfunction correctDomainTypos(localPart: string, domainPart: string): string | null {\n const domainParts = domainPart.split('.');\n const domainName = domainParts[0];\n const isDomainNameValid = COMMON_EMAIL_DOMAINS.some(domain => {\n const { name } = getDomainParts(domain);\n return normalizeDomain(name) === normalizeDomain(domainName);\n });\n\n let correctedDomainParts = [...domainParts];\n let hasCorrection = false;\n\n if (!isDomainNameValid) {\n const similarDomain = findSimilarDomain(domainPart);\n if (similarDomain) {\n const { name } = getDomainParts(similarDomain);\n correctedDomainParts[0] = name;\n hasCorrection = true;\n }\n }\n\n for (let i = 1; i < correctedDomainParts.length; i++) {\n const part = correctedDomainParts[i];\n if (!isValidTLD(part)) {\n const similarTLD = findSimilarTLD(part);\n if (similarTLD) {\n correctedDomainParts[i] = similarTLD;\n hasCorrection = true;\n }\n }\n }\n\n return hasCorrection ? buildEmailCorrection(localPart, correctedDomainParts.join('.')) : null;\n}\n\n/**\n * Detecta si hay un error tipográfico en el email y sugiere una corrección\n * @param emailValue - El email a verificar\n * @returns El email corregido sugerido, o null si no hay corrección\n */\nexport function suggestEmailCorrection(emailValue: string): string | null {\n if (!emailValue || !emailValue.includes('@')) {\n return null;\n }\n\n const [localPart, domainPart] = emailValue.split('@');\n\n if (!localPart || !domainPart) {\n return null;\n }\n\n if (hasEmailFormatError(domainPart)) {\n return null;\n }\n\n if (isExactCommonDomain(domainPart)) {\n return null;\n }\n\n if (!domainPart.includes('.')) {\n const correctedDomain = detectMissingDot(domainPart, isValidTLD);\n return correctedDomain ? buildEmailCorrection(localPart, correctedDomain) : null;\n }\n\n const missingDotCorrection = detectMissingDotInMultiPartDomain(domainPart);\n if (missingDotCorrection) {\n return buildEmailCorrection(localPart, missingDotCorrection);\n }\n\n return correctDomainTypos(localPart, domainPart);\n}\n",".card-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n border-radius: 8px;\n padding: 16px;\n background-color: var(--rebill-color-background);\n}\n\n.card-labels {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.card-label {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n gap: 16px;\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'rebill-card',\n styleUrl: 'card.css',\n shadow: false,\n})\nexport class Card {\n @Prop() cardTitle: string;\n @Prop() cardLabels: { label: string; value: string }[];\n render() {\n return (\n <div class=\"card-container\">\n <div class=\"card-title\">\n <rebill-typography variant=\"subtitle-bold\">{this.cardTitle}</rebill-typography>\n </div>\n <div class=\"card-labels\">\n {this.cardLabels.map(label => (\n <div class=\"card-label\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.TEXT_SECONDARY}>\n {label.label}\n </rebill-typography>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.TEXT_PRIMARY}>\n {label.value}\n </rebill-typography>\n </div>\n ))}\n </div>\n </div>\n );\n }\n}\n","@import '../shared-input.css';\n\n.input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.input-element {\n width: 100%;\n box-sizing: border-box;\n}\n\n.icon-left,\n.icon-right {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.icon-left {\n left: 0.75rem;\n color: var(--rebill-color-text-secondary-light);\n}\n\n.icon-right {\n right: 0.75rem;\n cursor: pointer;\n color: var(--rebill-color-text-secondary-light);\n}\n\n.input-element.input-error:focus {\n flex-direction: column;\n box-shadow: 0 0 0 2px var(--rebill-color-error-light);\n}\n\n.input-wrapper.has-invalid-format .input-element {\n border-color: var(--rebill-color-error);\n}\n\n.input-wrapper.has-invalid-format .input-element:focus {\n box-shadow: 0 0 0 2px var(--rebill-color-error-light);\n}\n\n/* Floating label styles */\n.floating-label {\n position: relative;\n}\n\n.floating-label .input-text__input-label {\n position: absolute;\n top: 50%;\n left: 0.75rem;\n transform: translateY(-50%);\n color: var(--rebill-color-text-secondary-light);\n transition: all 0.1s ease-in-out;\n pointer-events: none;\n}\n\n.floating-label .input-element::placeholder {\n color: transparent;\n}\n\n.floating-label .input-element:focus ~ .input-text__input-label,\n.floating-label .input-element:not(:placeholder-shown) ~ .input-text__input-label {\n top: 0;\n font-size: 0.62rem;\n color: var(--rebill-color-text-secondary);\n background-color: var(--rebill-color-background);\n padding: 0 4px;\n left: 0.75rem;\n}\n\n.floating-label.has-left-icon .input-text__input-label {\n left: 2.5rem;\n}\n\n/* Disabled state styles */\n.input-element:disabled {\n color: var(--rebill-color-neutrals-500);\n}\n\n.input-wrapper:has(.input-element:disabled) .icon-left,\n.input-wrapper:has(.input-element:disabled) .icon-right {\n color: var(--rebill-color-text-secondary-light) !important;\n}\n\n/* Email suggestions dropdown */\n.email-suggestions-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 1000;\n background-color: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 0.375rem;\n box-shadow:\n 0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n margin-top: 0.25rem;\n max-height: 200px;\n overflow-y: auto;\n animation: slideDown 0.15s ease-out;\n box-sizing: border-box;\n width: 100%;\n}\n\n.email-suggestions-header {\n padding: 0.75rem;\n font-size: 0.875rem;\n font-weight: 400;\n color: var(--rebill-color-primary);\n border-bottom: 1px solid var(--rebill-color-border);\n background-color: var(--rebill-color-background);\n}\n\n.email-suggestion-item {\n padding: 0.75rem;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.email-suggestion-item:last-child {\n border-bottom: none;\n}\n\n.email-suggestion-item:hover,\n.email-suggestion-item.highlighted {\n background-color: var(--rebill-color-background-right);\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Scrollbar styling for email suggestions dropdown */\n.email-suggestions-dropdown::-webkit-scrollbar {\n width: 6px;\n}\n\n.email-suggestions-dropdown::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.email-suggestions-dropdown::-webkit-scrollbar-thumb {\n background-color: var(--rebill-color-border);\n border-radius: 3px;\n}\n\n.email-suggestions-dropdown::-webkit-scrollbar-thumb:hover {\n background-color: var(--rebill-color-text-secondary);\n}\n\n/* Email correction suggestion */\n.email-correction-suggestion {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 0.75rem;\n margin-top: 0.375rem;\n line-height: 1.4;\n}\n\n.email-correction-icon {\n flex-shrink: 0;\n}\n\n.email-correction-text {\n color: var(--rebill-color-text-primary);\n flex: 1;\n}\n\n.email-correction-link {\n color: var(--rebill-color-link);\n text-decoration: underline;\n cursor: pointer;\n font-weight: 500;\n transition: opacity 0.2s ease;\n}\n\n.email-correction-link:hover {\n opacity: 0.8;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Method,\n Prop,\n State,\n h,\n} from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { COLORS_ENUM } from '../../../../utils/color-class-mapper';\nimport {\n getEmailSuggestions,\n suggestEmailCorrection,\n validateEmailFormat,\n} from '../../../../utils/email-validation';\nimport { BLUR_DELAY_MS } from '../../../../utils/email-validation.constants';\n\n@Component({\n tag: 'rebill-input-email',\n styleUrl: 'input-email.css',\n shadow: false,\n})\nexport class InputEmail {\n @Element() el: HTMLElement;\n private inputElement: HTMLInputElement;\n private suggestionsDropdownRef?: HTMLDivElement;\n private isMouseOverSuggestions: boolean = false;\n private blurTimeout?: number;\n\n // Constants\n private readonly INPUT_PADDING_WITH_ICON = '2.5rem';\n private readonly INPUT_PADDING_DEFAULT = '0.75rem';\n\n /** Etiqueta que se muestra arriba del input */\n @Prop() label: string = '';\n /** Placeholder del input */\n @Prop() placeholder: string = '';\n /** Valor del input */\n @Prop({ mutable: true, reflect: true }) value: string = '';\n /** Mensaje de error */\n @Prop() error: string = '';\n /** ID del input */\n @Prop() id: string = 'email';\n /** Estado deshabilitado */\n @Prop() disabled: boolean = false;\n /** Icono a la izquierda */\n @Prop() leftIcon: string;\n /** Permitir limpiar el input */\n @Prop() clearable: boolean = false;\n /** Variacion de estilo del input */\n @Prop() variant: 'default' | 'floating' = 'default';\n /** Evento al cambiar el valor */\n @Event() input: EventEmitter<{ id: string; value: string }>;\n /** Evento al salir del input */\n @Event() blur: EventEmitter<{ id: string; value: string }>;\n /** Sugerencias de email */\n @State() emailSuggestions: string[] = [];\n /** Índice de la sugerencia resaltada */\n @State() highlightedSuggestionIndex: number = -1;\n /** Sugerencia de corrección de email (para errores tipográficos) */\n @State() emailCorrectionSuggestion: string | null = null;\n /** Indica si el formato del email es válido */\n @State() isValidFormat: boolean = true;\n /** Indica si el usuario ya salió del campo (blur) */\n @State() hasBlurred: boolean = false;\n\n @Listen('change', { target: 'document' })\n handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n if (formData && this.id in formData) {\n this.value = formData[this.id];\n }\n }\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: MouseEvent) {\n if (\n this.suggestionsDropdownRef &&\n !this.suggestionsDropdownRef.contains(event.target as Node) &&\n !this.inputElement?.contains(event.target as Node) &&\n !this.isMouseOverSuggestions\n ) {\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n }\n }\n\n // ============================================================================\n // EMAIL VALIDATION & SUGGESTIONS\n // ============================================================================\n\n /**\n * Detecta si hay un error tipográfico en el email y actualiza el estado\n */\n private checkForTypo(emailValue: string): void {\n this.emailCorrectionSuggestion = suggestEmailCorrection(emailValue);\n }\n\n // ============================================================================\n // INPUT EVENT HANDLERS\n // ============================================================================\n\n private normalizeEmailInput(value: string): string {\n return value.toLowerCase();\n }\n\n private updateEmailState(inputValue: string): void {\n this.isValidFormat = validateEmailFormat(inputValue);\n this.emailSuggestions = getEmailSuggestions(inputValue);\n this.highlightedSuggestionIndex = -1;\n // Limpiar sugerencia de corrección al modificar el input\n this.emailCorrectionSuggestion = null;\n this.value = inputValue;\n }\n\n private emitInputEvent(value: string): void {\n this.input.emit({ id: this.id, value });\n }\n\n private onInput = (event: Event) => {\n if (this.disabled) return;\n\n const input = event.target as HTMLInputElement;\n const inputValue = this.normalizeEmailInput(input.value);\n\n input.value = inputValue;\n this.updateEmailState(inputValue);\n this.emitInputEvent(inputValue);\n };\n\n private resetValidationState(): void {\n this.isValidFormat = true;\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n this.emailCorrectionSuggestion = null;\n this.hasBlurred = false;\n }\n\n private onClear = () => {\n if (this.disabled) return;\n\n this.value = '';\n this.resetValidationState();\n this.input.emit({ id: this.id, value: this.value });\n };\n\n private trimAndUpdateValue(): void {\n const trimmedValue = this.value.trim();\n if (trimmedValue !== this.value) {\n this.value = trimmedValue;\n this.input.emit({ id: this.id, value: this.value });\n }\n }\n\n private clearSuggestions(): void {\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n // Nota: No limpiamos emailCorrectionSuggestion para que el usuario pueda verla\n }\n\n private onBlur = () => {\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n }\n\n this.blurTimeout = window.setTimeout(() => {\n if (!this.isMouseOverSuggestions) {\n this.hasBlurred = true;\n this.trimAndUpdateValue();\n // Revalidar formato después del trim\n this.isValidFormat = validateEmailFormat(this.value);\n this.clearSuggestions();\n // Verificar errores tipográficos solo cuando sale del campo\n this.checkForTypo(this.value);\n this.blur.emit({ id: this.id, value: this.value });\n }\n }, BLUR_DELAY_MS);\n };\n\n private onFocus = () => {\n if (this.value) {\n this.emailSuggestions = getEmailSuggestions(this.value);\n }\n };\n\n // ============================================================================\n // SUGGESTION INTERACTION HANDLERS\n // ============================================================================\n\n private moveHighlightDown(): void {\n this.highlightedSuggestionIndex = Math.min(\n this.highlightedSuggestionIndex + 1,\n this.emailSuggestions.length - 1,\n );\n }\n\n private moveHighlightUp(): void {\n this.highlightedSuggestionIndex = Math.max(this.highlightedSuggestionIndex - 1, -1);\n }\n\n private selectHighlightedSuggestion(): void {\n if (this.highlightedSuggestionIndex >= 0) {\n this.selectSuggestion(this.emailSuggestions[this.highlightedSuggestionIndex]);\n }\n }\n\n private closeSuggestions(): void {\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n }\n\n private onKeyDown = (event: KeyboardEvent) => {\n if (this.emailSuggestions.length === 0) {\n return;\n }\n\n const keyHandlers: Record<string, () => void> = {\n ArrowDown: () => this.moveHighlightDown(),\n ArrowUp: () => this.moveHighlightUp(),\n Escape: () => this.closeSuggestions(),\n };\n\n const handler = keyHandlers[event.key];\n if (handler) {\n event.preventDefault();\n handler();\n } else if (event.key === 'Enter' && this.highlightedSuggestionIndex >= 0) {\n event.preventDefault();\n this.selectHighlightedSuggestion();\n }\n };\n\n private selectSuggestion = (suggestion: string) => {\n this.value = suggestion;\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n this.emailCorrectionSuggestion = null;\n if (this.inputElement) {\n this.inputElement.value = suggestion;\n }\n this.input.emit({ id: this.id, value: this.value });\n this.inputElement?.focus();\n };\n\n private applyCorrection = () => {\n if (this.emailCorrectionSuggestion) {\n this.selectSuggestion(this.emailCorrectionSuggestion);\n }\n };\n\n private handleSuggestionMouseEnter = (index: number) => {\n this.highlightedSuggestionIndex = index;\n };\n\n private handleSuggestionsMouseEnter = () => {\n this.isMouseOverSuggestions = true;\n };\n\n private handleSuggestionsMouseLeave = () => {\n this.isMouseOverSuggestions = false;\n };\n\n // ============================================================================\n // PUBLIC METHODS\n // ============================================================================\n\n @Method()\n async getInputElement(): Promise<HTMLInputElement | null> {\n return this.inputElement;\n }\n\n disconnectedCallback() {\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n }\n }\n\n // ============================================================================\n // RENDER HELPERS\n // ============================================================================\n\n private getInputPaddingStyles() {\n return {\n paddingLeft: this.leftIcon ? this.INPUT_PADDING_WITH_ICON : this.INPUT_PADDING_DEFAULT,\n paddingRight: this.clearable ? this.INPUT_PADDING_WITH_ICON : this.INPUT_PADDING_DEFAULT,\n };\n }\n\n private shouldShowInvalidFormat(): boolean {\n return !this.isValidFormat && this.value && !this.error && this.hasBlurred;\n }\n\n private shouldShowInvalidFormatError(): boolean {\n return !this.isValidFormat && this.value && !this.error && this.hasBlurred;\n }\n\n private renderEmailCorrectionSuggestion() {\n if (!this.emailCorrectionSuggestion) return null;\n\n const translatedText = I18nService.translate('userInformation.emailCorrectionSuggestion', {\n email: this.emailCorrectionSuggestion,\n });\n const parts = translatedText.split(this.emailCorrectionSuggestion);\n\n return (\n <div class=\"email-correction-suggestion\" role=\"status\" aria-live=\"polite\">\n <rebill-icon name=\"circle-info-outline\" size=\"16px\" color={COLORS_ENUM.NEUTRALS_500} />\n <span class=\"email-correction-text\">\n {parts.map((part, index) => (\n <span key={index}>\n {part}\n {index < parts.length - 1 && (\n <span class=\"email-correction-link\" onClick={this.applyCorrection}>\n {this.emailCorrectionSuggestion}\n </span>\n )}\n </span>\n ))}\n </span>\n </div>\n );\n }\n\n render() {\n const isFloating = this.variant === 'floating';\n const showEmailSuggestions = this.emailSuggestions.length > 0;\n\n const inputClasses = {\n 'input-element': true,\n 'input-error': !!this.error,\n };\n\n const wrapperClasses = {\n 'input-wrapper': true,\n 'floating-label': isFloating,\n 'has-left-icon': !!this.leftIcon,\n 'has-email-suggestions': showEmailSuggestions,\n 'has-invalid-format': this.shouldShowInvalidFormat(),\n };\n\n return (\n <div class=\"input-container\">\n {!isFloating && this.label && (\n <label class={`input-label ${this.disabled ? 'disabled' : ''}`}>{this.label}</label>\n )}\n <div class={wrapperClasses}>\n {this.leftIcon && (\n <div class=\"icon-left\">\n <rebill-icon name={this.leftIcon}></rebill-icon>\n </div>\n )}\n <input\n ref={el => (this.inputElement = el)}\n type=\"email\"\n class={inputClasses}\n placeholder={isFloating ? this.label : this.placeholder}\n value={this.value}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.onKeyDown}\n disabled={this.disabled}\n autocomplete=\"email\"\n autocapitalize=\"none\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n aria-autocomplete=\"list\"\n aria-expanded={showEmailSuggestions ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-owns={showEmailSuggestions ? 'email-suggestions' : undefined}\n aria-invalid={!this.isValidFormat && this.value && this.hasBlurred ? 'true' : 'false'}\n aria-describedby={\n this.error || (!this.isValidFormat && this.value && this.hasBlurred)\n ? `${this.id}-error`\n : undefined\n }\n style={this.getInputPaddingStyles()}\n />\n {isFloating && <label class=\"input-text__input-label input-label\">{this.label}</label>}\n {this.clearable && this.value && (\n <div class=\"icon-right\" onClick={this.onClear}>\n <rebill-icon name=\"x\"></rebill-icon>\n </div>\n )}\n {showEmailSuggestions && (\n <div\n id=\"email-suggestions\"\n ref={el => (this.suggestionsDropdownRef = el)}\n class=\"email-suggestions-dropdown\"\n role=\"listbox\"\n aria-label={I18nService.translate(\n 'userInformation.suggestionsLabel',\n 'Email suggestions',\n )}\n onMouseEnter={this.handleSuggestionsMouseEnter}\n onMouseLeave={this.handleSuggestionsMouseLeave}\n >\n <div class=\"email-suggestions-header\">\n {I18nService.translate('userInformation.suggestionsHeader', 'Suggestion')}\n </div>\n {this.emailSuggestions.map((suggestion, index) => (\n <div\n key={suggestion}\n role=\"option\"\n aria-selected={this.highlightedSuggestionIndex === index ? 'true' : 'false'}\n class={`email-suggestion-item ${this.highlightedSuggestionIndex === index ? 'highlighted' : ''}`}\n onClick={() => this.selectSuggestion(suggestion)}\n onMouseEnter={() => this.handleSuggestionMouseEnter(index)}\n >\n {suggestion}\n </div>\n ))}\n </div>\n )}\n </div>\n {this.error && (\n <span id={`${this.id}-error`} class=\"error-message\" role=\"alert\">\n {this.error}\n </span>\n )}\n {this.shouldShowInvalidFormatError() && (\n <span id={`${this.id}-error`} class=\"error-message\" role=\"alert\">\n {I18nService.translate('paymentErrors.emailInvalid', 'The email address is not valid')}\n </span>\n )}\n {this.renderEmailCorrectionSuggestion()}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rebill-card.rebill-input-email.entry.js","sources":["src/utils/email-validation.constants.ts","src/utils/email-validation.ts","src/components/shared/card/card.css?tag=rebill-card","src/components/shared/card/card.tsx","src/components/shared/inputs/input-email/input-email.css?tag=rebill-input-email","src/components/shared/inputs/input-email/input-email.tsx"],"sourcesContent":["export const COMMON_EMAIL_DOMAINS = [\n 'gmail.com',\n 'outlook.com',\n 'hotmail.com',\n 'yahoo.com',\n 'icloud.com',\n 'msn.com',\n 'live.com',\n];\n\nexport const VALID_TLDS = [\n 'com',\n 'org',\n 'net',\n 'info',\n 'biz',\n 'online',\n 'site',\n 'store',\n 'shop',\n 'xyz',\n 'pro',\n 'name',\n 'email',\n 'cloud',\n 'tech',\n 'app',\n 'dev',\n 'io',\n 'me',\n 'ai',\n 'co',\n 'int',\n 'edu',\n 'gov',\n 'mil',\n 'us',\n 'ca',\n 'uk',\n 'de',\n 'fr',\n 'es',\n 'it',\n 'nl',\n 'be',\n 'se',\n 'no',\n 'dk',\n 'fi',\n 'ch',\n 'at',\n 'pl',\n 'cz',\n 'gr',\n 'hu',\n 'pt',\n 'ro',\n 'bg',\n 'si',\n 'sk',\n 'ie',\n 'lt',\n 'lv',\n 'ee',\n 'is',\n 'ru',\n 'tr',\n 'ge',\n 'am',\n 'az',\n 'ar',\n 'mx',\n 'br',\n 'cl',\n 'co',\n 'uy',\n 'py',\n 'bo',\n 'pe',\n 'ec',\n 've',\n 'pa',\n 'cr',\n 'ni',\n 'hn',\n 'sv',\n 'gt',\n 'bs',\n 'bb',\n 'ag',\n 'dm',\n 'gd',\n 'lc',\n 'vc',\n 'tt',\n 'jm',\n 'do',\n 'ht',\n 'ky',\n 'tc',\n 'vg',\n 'bm',\n 'gf',\n 'gp',\n 'mq',\n 're',\n 'yt',\n 'pf',\n 'nc',\n];\n\nexport const MAX_LEVENSHTEIN_DISTANCE_DOMAIN = 3;\nexport const MAX_LEVENSHTEIN_DISTANCE_TLD = 2;\nexport const BLUR_DELAY_MS = 200;\n","import {\n COMMON_EMAIL_DOMAINS,\n MAX_LEVENSHTEIN_DISTANCE_DOMAIN,\n MAX_LEVENSHTEIN_DISTANCE_TLD,\n VALID_TLDS,\n} from './email-validation.constants';\n\n// ============================================================================\n// HELPER FUNCTIONS\n// ============================================================================\n\nfunction normalizeDomain(domain: string): string {\n return domain?.toLowerCase().trim() || '';\n}\n\nfunction normalizeTLD(tld: string): string {\n if (!tld) return '';\n return tld.toLowerCase().replace(/^\\./, '');\n}\n\nfunction isExactCommonDomain(domain: string): boolean {\n return COMMON_EMAIL_DOMAINS.some(\n commonDomain => normalizeDomain(commonDomain) === normalizeDomain(domain),\n );\n}\n\nfunction buildEmailCorrection(localPart: string, domain: string): string {\n return `${localPart}@${domain}`;\n}\n\nfunction getDomainParts(commonDomain: string): { name: string; tld: string } {\n const parts = commonDomain.split('.');\n return {\n name: parts[0],\n tld: parts[1] || '',\n };\n}\n\nfunction levenshteinDistance(str1: string, str2: string): number {\n const matrix: number[][] = [];\n\n for (let i = 0; i <= str2.length; i++) {\n matrix[i] = [i];\n }\n\n for (let j = 0; j <= str1.length; j++) {\n matrix[0][j] = j;\n }\n\n for (let i = 1; i <= str2.length; i++) {\n for (let j = 1; j <= str1.length; j++) {\n if (str2.charAt(i - 1) === str1.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1,\n matrix[i][j - 1] + 1,\n matrix[i - 1][j] + 1,\n );\n }\n }\n }\n\n return matrix[str2.length][str1.length];\n}\n\nfunction extractDomainName(domain: string): string {\n return domain.split('.')[0];\n}\n\n/**\n * Valida si el TLD es válido\n * Los TLDs en VALID_TLDS no tienen punto (ej: \"com\")\n */\nexport function isValidTLD(tld: string): boolean {\n if (!tld) return false;\n return VALID_TLDS.includes(normalizeTLD(tld));\n}\n\n/**\n * Encuentra un TLD válido similar al ingresado\n * Retorna el TLD sin punto porque se usa en join('.')\n */\nexport function findSimilarTLD(inputTLD: string): string | null {\n if (!inputTLD) return null;\n\n const normalized = normalizeTLD(inputTLD);\n\n if (VALID_TLDS.includes(normalized)) {\n return null;\n }\n let bestMatch: string | null = null;\n let minDistance = Infinity;\n\n for (const validTLD of VALID_TLDS) {\n const distance = levenshteinDistance(normalized, validTLD);\n\n if (distance < minDistance && distance > 0 && distance <= MAX_LEVENSHTEIN_DISTANCE_TLD) {\n minDistance = distance;\n bestMatch = validTLD;\n }\n }\n\n return bestMatch;\n}\n\n/**\n * Encuentra el dominio más similar a uno de los dominios comunes\n */\nexport function findSimilarDomain(inputDomain: string): string | null {\n if (!inputDomain || inputDomain.trim() === '') {\n return null;\n }\n\n const normalizedInput = inputDomain.toLowerCase().trim();\n const domainName = extractDomainName(normalizedInput);\n\n let bestMatch: string | null = null;\n let minDistance = Infinity;\n\n for (const domain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(domain);\n const distance = levenshteinDistance(domainName, commonDomainName);\n\n if (distance < minDistance && distance > 0 && distance <= MAX_LEVENSHTEIN_DISTANCE_DOMAIN) {\n minDistance = distance;\n bestMatch = domain;\n }\n }\n\n return bestMatch;\n}\n\n/**\n * Detecta si hay errores de formato en el dominio (no errores tipográficos)\n * ej: doble punto (..), punto al inicio/final, caracteres inválidos\n */\nexport function hasEmailFormatError(domainPart: string): boolean {\n if (!domainPart) return false;\n\n if (domainPart.includes('..')) {\n return true;\n }\n\n if (domainPart.startsWith('.') || domainPart.endsWith('.')) {\n return true;\n }\n\n const validDomainPattern = /^[a-zA-Z0-9.-]+$/;\n if (!validDomainPattern.test(domainPart)) {\n return true;\n }\n\n // Validar que el TLD (después del último punto) tenga al menos 2 caracteres\n const lastDotIndex = domainPart.lastIndexOf('.');\n if (lastDotIndex !== -1) {\n const tld = domainPart.substring(lastDotIndex + 1);\n if (tld.length < 2) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Detecta si falta un punto en el dominio (ej: \"gmailcom\" -> \"gmail.com\")\n */\nexport function detectMissingDot(\n domainPart: string,\n isValidTLDFn: (tld: string) => boolean,\n): string | null {\n if (!domainPart || domainPart.includes('.')) {\n return null;\n }\n\n for (const commonDomain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(commonDomain);\n const normalizedDomain = normalizeDomain(domainPart);\n const normalizedCommonName = normalizeDomain(commonDomainName);\n\n if (normalizedDomain.startsWith(normalizedCommonName)) {\n const remaining = normalizedDomain.substring(normalizedCommonName.length);\n\n if (isValidTLDFn(remaining)) {\n return `${commonDomainName}.${remaining}`;\n }\n }\n }\n for (const commonDomain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(commonDomain);\n const { tld: commonTLD } = getDomainParts(commonDomain);\n\n const expectedWithoutDot = `${commonDomainName}${commonTLD}`;\n if (normalizeDomain(domainPart) === normalizeDomain(expectedWithoutDot)) {\n return commonDomain;\n }\n }\n\n return null;\n}\n\n/**\n * Detecta si falta un punto en un dominio de múltiples partes\n * ej: \"gmailcom.ar\" -> \"gmail.com.ar\"\n */\nexport function detectMissingDotInMultiPartDomain(domainPart: string): string | null {\n if (!domainPart || !domainPart.includes('.')) {\n return null;\n }\n\n const domainParts = domainPart.split('.');\n const firstPart = domainParts[0];\n const restParts = domainParts.slice(1);\n\n for (const commonDomain of COMMON_EMAIL_DOMAINS) {\n const commonDomainName = extractDomainName(commonDomain);\n const { tld: commonTLD } = getDomainParts(commonDomain);\n\n const expectedWithoutDot = `${commonDomainName}${commonTLD}`;\n if (normalizeDomain(firstPart) === normalizeDomain(expectedWithoutDot)) {\n const correctedParts = [commonDomainName, commonTLD, ...restParts];\n return correctedParts.join('.');\n }\n }\n\n return null;\n}\n\n/**\n * Valida el formato básico del email completo\n * @param email - El email a validar\n * @returns true si el formato es válido, false en caso contrario\n */\nexport function validateEmailFormat(email: string): boolean {\n if (!email || email.trim() === '') {\n return true;\n }\n\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(email)) {\n return false;\n }\n\n // Extraer la parte del dominio para validar formato completo (incluyendo TLD de al menos 2 caracteres)\n const parts = email.split('@');\n if (parts.length !== 2) {\n return false;\n }\n\n const domainPart = parts[1];\n // Usar hasEmailFormatError para validar el dominio (incluye validación de TLD de 1 carácter)\n return !hasEmailFormatError(domainPart);\n}\n\n/**\n * Genera sugerencias de email basadas en dominios comunes\n * @param emailValue - El valor actual del email que el usuario está escribiendo\n * @returns Array de emails sugeridos\n */\nexport function getEmailSuggestions(emailValue: string): string[] {\n if (!emailValue || !emailValue.includes('@')) {\n return [];\n }\n\n const [localPart, domainPart] = emailValue.split('@');\n\n if (!localPart) {\n return [];\n }\n\n if (domainPart && domainPart.includes('.') && !domainPart.endsWith('.')) {\n return [];\n }\n\n const filteredDomains = COMMON_EMAIL_DOMAINS.filter(domain => {\n if (!domainPart || domainPart.trim() === '') {\n return true;\n }\n return domain.startsWith(domainPart.toLowerCase());\n });\n\n return filteredDomains.map(domain => `${localPart}@${domain}`);\n}\n\n/**\n * Corrige errores tipográficos en un dominio que ya tiene puntos\n * @param localPart - La parte local del email (antes del @)\n * @param domainPart - La parte del dominio (después del @)\n * @returns El email corregido sugerido, o null si no hay corrección\n */\nfunction correctDomainTypos(localPart: string, domainPart: string): string | null {\n const domainParts = domainPart.split('.');\n const domainName = domainParts[0];\n const isDomainNameValid = COMMON_EMAIL_DOMAINS.some(domain => {\n const { name } = getDomainParts(domain);\n return normalizeDomain(name) === normalizeDomain(domainName);\n });\n\n let correctedDomainParts = [...domainParts];\n let hasCorrection = false;\n\n if (!isDomainNameValid) {\n const similarDomain = findSimilarDomain(domainPart);\n if (similarDomain) {\n const { name } = getDomainParts(similarDomain);\n correctedDomainParts[0] = name;\n hasCorrection = true;\n }\n }\n\n for (let i = 1; i < correctedDomainParts.length; i++) {\n const part = correctedDomainParts[i];\n if (!isValidTLD(part)) {\n const similarTLD = findSimilarTLD(part);\n if (similarTLD) {\n correctedDomainParts[i] = similarTLD;\n hasCorrection = true;\n }\n }\n }\n\n return hasCorrection ? buildEmailCorrection(localPart, correctedDomainParts.join('.')) : null;\n}\n\n/**\n * Detecta si hay un error tipográfico en el email y sugiere una corrección\n * @param emailValue - El email a verificar\n * @returns El email corregido sugerido, o null si no hay corrección\n */\nexport function suggestEmailCorrection(emailValue: string): string | null {\n if (!emailValue || !emailValue.includes('@')) {\n return null;\n }\n\n const [localPart, domainPart] = emailValue.split('@');\n\n if (!localPart || !domainPart) {\n return null;\n }\n\n if (hasEmailFormatError(domainPart)) {\n return null;\n }\n\n if (isExactCommonDomain(domainPart)) {\n return null;\n }\n\n if (!domainPart.includes('.')) {\n const correctedDomain = detectMissingDot(domainPart, isValidTLD);\n return correctedDomain ? buildEmailCorrection(localPart, correctedDomain) : null;\n }\n\n const missingDotCorrection = detectMissingDotInMultiPartDomain(domainPart);\n if (missingDotCorrection) {\n return buildEmailCorrection(localPart, missingDotCorrection);\n }\n\n return correctDomainTypos(localPart, domainPart);\n}\n",".card-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n border-radius: 8px;\n padding: 16px;\n background-color: var(--rebill-color-background);\n}\n\n.card-labels {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.card-label {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n gap: 16px;\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'rebill-card',\n styleUrl: 'card.css',\n shadow: false,\n})\nexport class Card {\n @Prop() cardTitle: string;\n @Prop() cardLabels: { label: string; value: string }[];\n render() {\n return (\n <div class=\"card-container\">\n <div class=\"card-title\">\n <rebill-typography variant=\"subtitle-bold\">{this.cardTitle}</rebill-typography>\n </div>\n <div class=\"card-labels\">\n {this.cardLabels.map(label => (\n <div class=\"card-label\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.TEXT_SECONDARY}>\n {label.label}\n </rebill-typography>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.TEXT_PRIMARY}>\n {label.value}\n </rebill-typography>\n </div>\n ))}\n </div>\n </div>\n );\n }\n}\n","@import '../shared-input.css';\n\n.input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.input-element {\n width: 100%;\n box-sizing: border-box;\n}\n\n.icon-left,\n.icon-right {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.icon-left {\n left: 0.75rem;\n color: var(--rebill-color-text-secondary-light);\n}\n\n.icon-right {\n right: 0.75rem;\n cursor: pointer;\n color: var(--rebill-color-text-secondary-light);\n}\n\n.input-element.input-error:focus {\n flex-direction: column;\n box-shadow: 0 0 0 2px var(--rebill-color-error-light);\n}\n\n/* Floating label styles */\n.floating-label {\n position: relative;\n}\n\n.floating-label .input-text__input-label {\n position: absolute;\n top: 50%;\n left: 0.75rem;\n transform: translateY(-50%);\n color: var(--rebill-color-text-secondary-light);\n transition: all 0.1s ease-in-out;\n pointer-events: none;\n}\n\n.floating-label .input-element::placeholder {\n color: transparent;\n}\n\n.floating-label .input-element:focus ~ .input-text__input-label,\n.floating-label .input-element:not(:placeholder-shown) ~ .input-text__input-label {\n top: 0;\n font-size: 0.62rem;\n color: var(--rebill-color-text-secondary);\n background-color: var(--rebill-color-background);\n padding: 0 4px;\n left: 0.75rem;\n}\n\n.floating-label.has-left-icon .input-text__input-label {\n left: 2.5rem;\n}\n\n/* Disabled state styles */\n.input-element:disabled {\n color: var(--rebill-color-neutrals-500);\n}\n\n.input-wrapper:has(.input-element:disabled) .icon-left,\n.input-wrapper:has(.input-element:disabled) .icon-right {\n color: var(--rebill-color-text-secondary-light) !important;\n}\n\n/* Email suggestions dropdown */\n.email-suggestions-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 1000;\n background-color: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 0.375rem;\n box-shadow:\n 0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n margin-top: 0.25rem;\n max-height: 200px;\n overflow-y: auto;\n animation: slideDown 0.15s ease-out;\n box-sizing: border-box;\n width: 100%;\n}\n\n.email-suggestions-dropdown.dropdown-up {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.25rem;\n animation: slideUp 0.15s ease-out;\n}\n\n.email-suggestions-header {\n padding: 0.75rem;\n font-size: 0.875rem;\n font-weight: 400;\n color: var(--rebill-color-primary);\n border-bottom: 1px solid var(--rebill-color-border);\n background-color: var(--rebill-color-background);\n}\n\n.email-suggestion-item {\n padding: 0.75rem;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.email-suggestion-item:last-child {\n border-bottom: none;\n}\n\n.email-suggestion-item:hover,\n.email-suggestion-item.highlighted {\n background-color: var(--rebill-color-background-right);\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideUp {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Scrollbar styling for email suggestions dropdown */\n.email-suggestions-dropdown::-webkit-scrollbar {\n width: 6px;\n}\n\n.email-suggestions-dropdown::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.email-suggestions-dropdown::-webkit-scrollbar-thumb {\n background-color: var(--rebill-color-border);\n border-radius: 3px;\n}\n\n.email-suggestions-dropdown::-webkit-scrollbar-thumb:hover {\n background-color: var(--rebill-color-text-secondary);\n}\n\n/* Email correction suggestion */\n.email-correction-suggestion {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 0.75rem;\n margin-top: 0.375rem;\n line-height: 1.4;\n}\n\n.email-correction-icon {\n flex-shrink: 0;\n}\n\n.email-correction-text {\n color: var(--rebill-color-text-primary);\n flex: 1;\n}\n\n.email-correction-link {\n color: var(--rebill-color-link);\n text-decoration: underline;\n cursor: pointer;\n font-weight: 500;\n transition: opacity 0.2s ease;\n}\n\n.email-correction-link:hover {\n opacity: 0.8;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Method,\n Prop,\n State,\n h,\n} from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { getEmailSuggestions, suggestEmailCorrection } from '../../../../utils/email-validation';\nimport { BLUR_DELAY_MS } from '../../../../utils/email-validation.constants';\n\n@Component({\n tag: 'rebill-input-email',\n styleUrl: 'input-email.css',\n shadow: false,\n})\nexport class InputEmail {\n @Element() el: HTMLElement;\n private inputElement: HTMLInputElement;\n private suggestionsDropdownRef?: HTMLDivElement;\n private blurTimeout?: number;\n\n /** Etiqueta que se muestra arriba del input */\n @Prop() label: string = '';\n /** Placeholder del input */\n @Prop() placeholder: string = '';\n /** Valor del input */\n @Prop({ mutable: true, reflect: true }) value: string = '';\n /** Mensaje de error */\n @Prop() error: string = '';\n /** ID del input */\n @Prop() id: string = 'email';\n /** Estado deshabilitado */\n @Prop() disabled: boolean = false;\n /** Icono a la izquierda */\n @Prop() leftIcon: string;\n /** Permitir limpiar el input */\n @Prop() clearable: boolean = false;\n /** Variacion de estilo del input */\n @Prop() variant: 'default' | 'floating' = 'default';\n /** Evento al cambiar el valor */\n @Event() input: EventEmitter<{ id: string; value: string }>;\n /** Evento al salir del input */\n @Event() blur: EventEmitter<{ id: string; value: string }>;\n /** Sugerencias de email */\n @State() emailSuggestions: string[] = [];\n /** Índice de la sugerencia resaltada */\n @State() highlightedSuggestionIndex: number = -1;\n /** Sugerencia de corrección de email (para errores tipográficos) */\n @State() emailCorrectionSuggestion: string | null = null;\n /** Posición del dropdown (arriba o abajo) */\n @State() dropdownPosition: 'down' | 'up' = 'down';\n\n @Listen('change', { target: 'document' })\n handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n if (formData && this.id in formData) {\n this.value = formData[this.id];\n }\n }\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: MouseEvent) {\n if (\n this.suggestionsDropdownRef &&\n !this.suggestionsDropdownRef.contains(event.target as Node) &&\n !this.inputElement?.contains(event.target as Node)\n ) {\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n }\n }\n\n @Listen('touchend', { target: 'document' })\n handleDocumentTouchEnd(event: TouchEvent) {\n const target = event.changedTouches?.[0]?.target as Node;\n if (\n this.suggestionsDropdownRef &&\n target &&\n !this.suggestionsDropdownRef.contains(target) &&\n !this.inputElement?.contains(target)\n ) {\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n }\n }\n\n // ============================================================================\n // EMAIL VALIDATION & SUGGESTIONS\n // ============================================================================\n\n /**\n * Detecta si hay un error tipográfico en el email y actualiza el estado\n */\n private checkForTypo(emailValue: string): void {\n this.emailCorrectionSuggestion = suggestEmailCorrection(emailValue);\n }\n\n /**\n * Calcula si el dropdown debe posicionarse arriba o abajo según el espacio disponible\n */\n private calculateDropdownPosition(): void {\n if (!this.inputElement || !this.suggestionsDropdownRef) return;\n\n const inputRect = this.inputElement.getBoundingClientRect();\n const dropdownHeight = this.suggestionsDropdownRef.offsetHeight || 200; // max-height del CSS\n const spaceBelow = window.innerHeight - inputRect.bottom;\n const spaceAbove = inputRect.top;\n\n // Si no hay espacio abajo pero sí arriba, posicionar arriba\n if (spaceBelow < dropdownHeight && spaceAbove > spaceBelow) {\n this.dropdownPosition = 'up';\n } else {\n this.dropdownPosition = 'down';\n }\n }\n\n // ============================================================================\n // INPUT EVENT HANDLERS\n // ============================================================================\n\n private normalizeEmailInput(value: string): string {\n return value.toLowerCase();\n }\n\n private updateEmailState(inputValue: string): void {\n this.emailSuggestions = getEmailSuggestions(inputValue);\n this.highlightedSuggestionIndex = -1;\n // Limpiar sugerencia de corrección al modificar el input\n this.emailCorrectionSuggestion = null;\n this.value = inputValue;\n\n // Calcular posición del dropdown después de actualizar sugerencias\n if (this.emailSuggestions.length > 0) {\n setTimeout(() => this.calculateDropdownPosition(), 0);\n }\n }\n\n private onInput = (event: Event) => {\n if (this.disabled) return;\n\n const input = event.target as HTMLInputElement;\n const inputValue = this.normalizeEmailInput(input.value);\n\n input.value = inputValue;\n this.updateEmailState(inputValue);\n this.input.emit({ id: this.id, value: inputValue });\n };\n\n private resetValidationState(): void {\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n this.emailCorrectionSuggestion = null;\n }\n\n private onClear = () => {\n if (this.disabled) return;\n\n this.value = '';\n this.resetValidationState();\n this.input.emit({ id: this.id, value: this.value });\n };\n\n private trimAndUpdateValue(): void {\n const trimmedValue = this.value.trim();\n if (trimmedValue !== this.value) {\n this.value = trimmedValue;\n this.input.emit({ id: this.id, value: this.value });\n }\n }\n\n private clearSuggestions(): void {\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n // Nota: No limpiamos emailCorrectionSuggestion para que el usuario pueda verla\n }\n\n private onBlur = () => {\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n }\n\n this.blurTimeout = window.setTimeout(() => {\n // Verificar si el elemento activo está dentro del dropdown o es el input\n const activeElement = document.activeElement;\n const isClickingSuggestion =\n this.suggestionsDropdownRef?.contains(activeElement) || activeElement === this.inputElement;\n\n if (!isClickingSuggestion) {\n this.trimAndUpdateValue();\n this.clearSuggestions();\n // Verificar errores tipográficos solo cuando sale del campo\n this.checkForTypo(this.value);\n this.blur.emit({ id: this.id, value: this.value });\n }\n }, BLUR_DELAY_MS);\n };\n\n private onFocus = () => {\n if (this.value) {\n this.emailSuggestions = getEmailSuggestions(this.value);\n // Calcular posición después de que se rendericen las sugerencias\n setTimeout(() => this.calculateDropdownPosition(), 0);\n }\n };\n\n // ============================================================================\n // SUGGESTION INTERACTION HANDLERS\n // ============================================================================\n\n private onKeyDown = (event: KeyboardEvent) => {\n if (this.emailSuggestions.length === 0) {\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.highlightedSuggestionIndex = Math.min(\n this.highlightedSuggestionIndex + 1,\n this.emailSuggestions.length - 1,\n );\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.highlightedSuggestionIndex = Math.max(this.highlightedSuggestionIndex - 1, -1);\n break;\n case 'Escape':\n event.preventDefault();\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n break;\n case 'Enter':\n if (\n this.highlightedSuggestionIndex >= 0 &&\n this.highlightedSuggestionIndex < this.emailSuggestions.length\n ) {\n event.preventDefault();\n this.selectSuggestion(this.emailSuggestions[this.highlightedSuggestionIndex]);\n }\n break;\n }\n };\n\n private selectSuggestion = (suggestion: string) => {\n this.value = suggestion;\n this.emailSuggestions = [];\n this.highlightedSuggestionIndex = -1;\n this.emailCorrectionSuggestion = null;\n if (this.inputElement) {\n this.inputElement.value = suggestion;\n }\n this.input.emit({ id: this.id, value: this.value });\n this.inputElement?.focus();\n };\n\n private applyCorrection = () => {\n if (this.emailCorrectionSuggestion) {\n this.selectSuggestion(this.emailCorrectionSuggestion);\n }\n };\n\n private handleSuggestionMouseEnter = (index: number) => {\n this.highlightedSuggestionIndex = index;\n };\n\n private handleSuggestionTouchEnd = (suggestion: string, event: TouchEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.selectSuggestion(suggestion);\n };\n\n // ============================================================================\n // PUBLIC METHODS\n // ============================================================================\n\n @Method()\n async getInputElement(): Promise<HTMLInputElement | null> {\n return this.inputElement;\n }\n\n disconnectedCallback() {\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n }\n }\n\n // ============================================================================\n // RENDER HELPERS\n // ============================================================================\n\n private renderEmailCorrectionSuggestion() {\n if (!this.emailCorrectionSuggestion) return null;\n\n const translatedText = I18nService.translate('userInformation.emailCorrectionSuggestion', {\n email: this.emailCorrectionSuggestion,\n });\n const parts = translatedText.split(this.emailCorrectionSuggestion);\n\n return (\n <div class=\"email-correction-suggestion\" role=\"status\" aria-live=\"polite\">\n <rebill-icon name=\"circle-info-outline\" size=\"16px\" />\n <span class=\"email-correction-text\">\n {parts.map((part, index) => (\n <span key={index}>\n {part}\n {index < parts.length - 1 && (\n <span class=\"email-correction-link\" onClick={this.applyCorrection}>\n {this.emailCorrectionSuggestion}\n </span>\n )}\n </span>\n ))}\n </span>\n </div>\n );\n }\n\n render() {\n const isFloating = this.variant === 'floating';\n const showEmailSuggestions = this.emailSuggestions.length > 0;\n\n const inputClasses = {\n 'input-element': true,\n 'input-error': !!this.error,\n };\n\n const wrapperClasses = {\n 'input-wrapper': true,\n 'floating-label': isFloating,\n 'has-left-icon': !!this.leftIcon,\n 'has-email-suggestions': showEmailSuggestions,\n };\n\n return (\n <div class=\"input-container\">\n {!isFloating && this.label && (\n <label class={`input-label ${this.disabled ? 'disabled' : ''}`}>{this.label}</label>\n )}\n <div class={wrapperClasses}>\n {this.leftIcon && (\n <div class=\"icon-left\">\n <rebill-icon name={this.leftIcon}></rebill-icon>\n </div>\n )}\n <input\n ref={el => (this.inputElement = el)}\n type=\"email\"\n class={inputClasses}\n placeholder={isFloating ? this.label : this.placeholder}\n value={this.value}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.onKeyDown}\n disabled={this.disabled}\n autocomplete=\"email\"\n autocapitalize=\"none\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n aria-autocomplete=\"list\"\n aria-expanded={showEmailSuggestions ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-owns={showEmailSuggestions ? 'email-suggestions' : undefined}\n aria-invalid={!!this.error ? 'true' : 'false'}\n aria-describedby={this.error ? `${this.id}-error` : undefined}\n style={{\n paddingLeft: this.leftIcon ? '2.5rem' : '0.75rem',\n paddingRight: this.clearable && this.value ? '2.5rem' : '0.75rem',\n }}\n />\n {isFloating && <label class=\"input-text__input-label input-label\">{this.label}</label>}\n {this.clearable && this.value && (\n <div class=\"icon-right\" onClick={this.onClear}>\n <rebill-icon name=\"x\"></rebill-icon>\n </div>\n )}\n {showEmailSuggestions && (\n <div\n id=\"email-suggestions\"\n ref={el => {\n this.suggestionsDropdownRef = el;\n if (el) {\n setTimeout(() => this.calculateDropdownPosition(), 0);\n }\n }}\n class={`email-suggestions-dropdown ${this.dropdownPosition === 'up' ? 'dropdown-up' : ''}`}\n role=\"listbox\"\n aria-label={I18nService.translate(\n 'userInformation.suggestionsLabel',\n 'Email suggestions',\n )}\n >\n <div class=\"email-suggestions-header\">\n {I18nService.translate('userInformation.suggestionsHeader', 'Suggestion')}\n </div>\n {this.emailSuggestions.map((suggestion, index) => (\n <div\n key={suggestion}\n role=\"option\"\n aria-selected={this.highlightedSuggestionIndex === index ? 'true' : 'false'}\n class={`email-suggestion-item ${this.highlightedSuggestionIndex === index ? 'highlighted' : ''}`}\n onClick={() => this.selectSuggestion(suggestion)}\n onTouchEnd={e => this.handleSuggestionTouchEnd(suggestion, e)}\n onMouseEnter={() => this.handleSuggestionMouseEnter(index)}\n >\n {suggestion}\n </div>\n ))}\n </div>\n )}\n </div>\n {this.error && (\n <span id={`${this.id}-error`} class=\"error-message\" role=\"alert\">\n {this.error}\n </span>\n )}\n {this.renderEmailCorrectionSuggestion()}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}