@bloque/payments-elements 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/dist/bloque-checkout.d.ts +30 -0
- package/dist/bloque-checkout.d.ts.map +1 -0
- package/dist/card-payment-form.d.ts +18 -0
- package/dist/card-payment-form.d.ts.map +1 -0
- package/dist/cash-payment-form.d.ts +13 -0
- package/dist/cash-payment-form.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/payment-method-selector.d.ts +11 -0
- package/dist/payment-method-selector.d.ts.map +1 -0
- package/dist/pse-payment-form.d.ts +14 -0
- package/dist/pse-payment-form.d.ts.map +1 -0
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +62 -0
package/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Rsbuild project
|
|
2
|
+
|
|
3
|
+
## Setup
|
|
4
|
+
|
|
5
|
+
Install the dependencies:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm install
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Get started
|
|
12
|
+
|
|
13
|
+
Start the dev server, and the app will be available at [http://localhost:3000](http://localhost:3000).
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pnpm run dev
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Build the app for production:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm run build
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Preview the production build locally:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pnpm run preview
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Learn more
|
|
32
|
+
|
|
33
|
+
To learn more about Rsbuild, check out the following resources:
|
|
34
|
+
|
|
35
|
+
- [Rsbuild documentation](https://rsbuild.rs) - explore Rsbuild features and APIs.
|
|
36
|
+
- [Rsbuild GitHub repository](https://github.com/web-infra-dev/rsbuild) - your feedback and contributions are welcome!
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { PaymentSubmitPayload } from '@bloque/payments-core';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import './card-payment-form';
|
|
4
|
+
import './cash-payment-form';
|
|
5
|
+
import './payment-method-selector';
|
|
6
|
+
import './pse-payment-form';
|
|
7
|
+
import type { AppearanceConfig, CheckoutConfig, PaymentMethodType } from './types';
|
|
8
|
+
export declare class BloqueCheckout extends LitElement {
|
|
9
|
+
private selectedMethod;
|
|
10
|
+
private isLoading;
|
|
11
|
+
private error;
|
|
12
|
+
config: CheckoutConfig | null;
|
|
13
|
+
appearance: AppearanceConfig | null;
|
|
14
|
+
amount: number | null;
|
|
15
|
+
availableMethods: PaymentMethodType[];
|
|
16
|
+
requireEmail: boolean;
|
|
17
|
+
showMethodSelector: boolean;
|
|
18
|
+
onSubmit?: (payload: PaymentSubmitPayload) => Promise<void>;
|
|
19
|
+
private get effectiveAvailableMethods();
|
|
20
|
+
private get effectivePrimaryColor();
|
|
21
|
+
private get effectiveBorderRadius();
|
|
22
|
+
private get effectiveFontFamily();
|
|
23
|
+
connectedCallback(): void;
|
|
24
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
25
|
+
static styles: import("lit").CSSResult;
|
|
26
|
+
private handleMethodSelected;
|
|
27
|
+
private handlePaymentSubmitted;
|
|
28
|
+
render(): import("lit").TemplateResult<1>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=bloque-checkout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bloque-checkout.d.ts","sourceRoot":"","sources":["../src/bloque-checkout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AACnC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,qBAAa,cAAe,SAAQ,UAAU;IAE5C,OAAO,CAAC,cAAc,CAAkC;IAGxD,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,KAAK,CAAuB;IAGpC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAQ;IAGrC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAG3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7B,gBAAgB,EAAE,iBAAiB,EAAE,CAA2B;IAGhE,YAAY,UAAQ;IAGpB,kBAAkB,UAAQ;IAG1B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO,KAAK,yBAAyB,GAEpC;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,mBAAmB,GAK9B;IAEQ,iBAAiB;IAOjB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAYxD,MAAM,CAAC,MAAM,0BA8GX;IAEF,OAAO,CAAC,oBAAoB;YAKd,sBAAsB;IAuCpC,MAAM;CA6EP"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class CardPaymentForm extends LitElement {
|
|
3
|
+
private formData;
|
|
4
|
+
private errors;
|
|
5
|
+
requireEmail: boolean;
|
|
6
|
+
static styles: import("lit").CSSResult;
|
|
7
|
+
private formatCardNumber;
|
|
8
|
+
private detectCardBrand;
|
|
9
|
+
private handleCardNumberInput;
|
|
10
|
+
private handleExpiryInput;
|
|
11
|
+
private handleCvvInput;
|
|
12
|
+
private handleInput;
|
|
13
|
+
private validateField;
|
|
14
|
+
private validateForm;
|
|
15
|
+
private handleSubmit;
|
|
16
|
+
render(): import("lit").TemplateResult<1>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=card-payment-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-payment-form.d.ts","sourceRoot":"","sources":["../src/card-payment-form.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,qBAAa,eAAgB,SAAQ,UAAU;IAE7C,OAAO,CAAC,QAAQ,CAOd;IAGF,OAAO,CAAC,MAAM,CAA0D;IAGxE,YAAY,UAAS;IAErB,MAAM,CAAC,MAAM,0BA+FX;IAEF,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY;IAiBpB,MAAM;CAuIP"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class CashPaymentForm extends LitElement {
|
|
3
|
+
private formData;
|
|
4
|
+
private errors;
|
|
5
|
+
static styles: import("lit").CSSResult;
|
|
6
|
+
private handleInput;
|
|
7
|
+
private handleDocumentNumberInput;
|
|
8
|
+
private validateField;
|
|
9
|
+
private validateForm;
|
|
10
|
+
private handleSubmit;
|
|
11
|
+
render(): import("lit").TemplateResult<1>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cash-payment-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cash-payment-form.d.ts","sourceRoot":"","sources":["../src/cash-payment-form.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAU5C,qBAAa,eAAgB,SAAQ,UAAU;IAE7C,OAAO,CAAC,QAAQ,CAKd;IAGF,OAAO,CAAC,MAAM,CAA0D;IAExE,MAAM,CAAC,MAAM,0BA+GX;IAEF,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,YAAY;IAiBpB,MAAM;CA6FP"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var e={};e.d=(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var t={};e.d(t,{h:()=>BloqueCheckout});let r=globalThis,o=r.ShadowRoot&&(void 0===r.ShadyCSS||r.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,i=Symbol(),a=new WeakMap;let css_tag_n=class css_tag_n{constructor(e,t,r){if(this._$cssResult$=!0,r!==i)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(o&&void 0===e){let r=void 0!==t&&1===t.length;r&&(e=a.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),r&&a.set(t,e))}return e}toString(){return this.cssText}};let css_tag_i=(e,...t)=>new css_tag_n(1===e.length?e[0]:t.reduce((t,r,o)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+e[o+1],e[0]),e,i),s=o?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t,r="";for(let t of e.cssRules)r+=t.cssText;return new css_tag_n("string"==typeof(t=r)?t:t+"",void 0,i)})(e):e,{is:l,defineProperty:n,getOwnPropertyDescriptor:d,getOwnPropertyNames:c,getOwnPropertySymbols:p,getPrototypeOf:h}=Object,u=globalThis,m=u.trustedTypes,f=m?m.emptyScript:"",b=u.reactiveElementPolyfillSupport,v={toAttribute(e,t){switch(t){case Boolean:e=e?f:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=null!==e;break;case Number:r=null===e?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},reactive_element_f=(e,t)=>!l(e,t),y={attribute:!0,type:String,converter:v,reflect:!1,useDefault:!1,hasChanged:reactive_element_f};Symbol.metadata??=Symbol("metadata"),u.litPropertyMetadata??=new WeakMap;let reactive_element_y=class reactive_element_y extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=y){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let r=Symbol(),o=this.getPropertyDescriptor(e,r,t);void 0!==o&&n(this.prototype,e,o)}}static getPropertyDescriptor(e,t,r){let{get:o,set:i}=d(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:o,set(t){let a=o?.call(this);i?.call(this,t),this.requestUpdate(e,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??y}static _$Ei(){if(this.hasOwnProperty("elementProperties"))return;let e=h(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty("finalized"))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty("properties")){let e=this.properties;for(let t of[...c(e),...p(e)])this.createProperty(t,e[t])}let e=this[Symbol.metadata];if(null!==e){let t=litPropertyMetadata.get(e);if(void 0!==t)for(let[e,r]of t)this.elementProperties.set(e,r)}for(let[e,t]of(this._$Eh=new Map,this.elementProperties)){let r=this._$Eu(e,t);void 0!==r&&this._$Eh.set(r,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e))for(let r of new Set(e.flat(1/0).reverse()))t.unshift(s(r));else void 0!==e&&t.push(s(e));return t}static _$Eu(e,t){let r=t.attribute;return!1===r?void 0:"string"==typeof r?r:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map;for(let t of this.constructor.elementProperties.keys())this.hasOwnProperty(t)&&(e.set(t,this[t]),delete this[t]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(o)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let o of t){let t=document.createElement("style"),i=r.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=o.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,r){this._$AK(e,r)}_$ET(e,t){let r=this.constructor.elementProperties.get(e),o=this.constructor._$Eu(e,r);if(void 0!==o&&!0===r.reflect){let i=(void 0!==r.converter?.toAttribute?r.converter:v).toAttribute(t,r.type);this._$Em=e,null==i?this.removeAttribute(o):this.setAttribute(o,i),this._$Em=null}}_$AK(e,t){let r=this.constructor,o=r._$Eh.get(e);if(void 0!==o&&this._$Em!==o){let e=r.getPropertyOptions(o),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:v;this._$Em=o;let a=i.fromAttribute(t,e.type);this[o]=a??this._$Ej?.get(o)??a,this._$Em=null}}requestUpdate(e,t,r){if(void 0!==e){let o=this.constructor,i=this[e];if(!(((r??=o.getPropertyOptions(e)).hasChanged??reactive_element_f)(i,t)||r.useDefault&&r.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(o._$Eu(e,r))))return;this.C(e,t,r)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:r,reflect:o,wrapped:i},a){r&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,a??t??this[e]),!0!==i||void 0!==a)||(this._$AL.has(e)||(this.hasUpdated||r||(t=void 0),this._$AL.set(e,t)),!0===o&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}let e=this.constructor.elementProperties;if(e.size>0)for(let[t,r]of e){let{wrapped:e}=r,o=this[t];!0!==e||this._$AL.has(t)||void 0===o||this.C(t,void 0,r,o)}}let e=!1,t=this._$AL;try{(e=this.shouldUpdate(t))?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}};reactive_element_y.elementStyles=[],reactive_element_y.shadowRootOptions={mode:"open"},reactive_element_y.elementProperties=new Map,reactive_element_y.finalized=new Map,b?.({ReactiveElement:reactive_element_y}),(u.reactiveElementVersions??=[]).push("2.1.1");let _=globalThis,g=_.trustedTypes,$=g?g.createPolicy("lit-html",{createHTML:e=>e}):void 0,x="$lit$",A=`lit$${Math.random().toFixed(9).slice(2)}$`,C="?"+A,E=`<${C}>`,S=document,lit_html_l=()=>S.createComment(""),lit_html_c=e=>null===e||"object"!=typeof e&&"function"!=typeof e,w=Array.isArray,q=`[
|
|
2
|
+
\f\r]`,O=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,D=/-->/g,T=/>/g,U=RegExp(`>|${q}(?:([^\\s"'>=/]+)(${q}*=${q}*(?:[^
|
|
3
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),j=/'/g,B=/"/g,F=/^(?:script|style|textarea|title)$/i,lit_html_y=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),V=lit_html_y(1),Y=(lit_html_y(2),lit_html_y(3),Symbol.for("lit-noChange")),W=Symbol.for("lit-nothing"),G=new WeakMap,J=S.createTreeWalker(S,129);function P(e,t){if(!w(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==$?$.createHTML(t):t}let N=class N{constructor({strings:e,_$litType$:t},r){let o;this.parts=[];let i=0,a=0,s=e.length-1,l=this.parts,[n,d]=((e,t)=>{let r=e.length-1,o=[],i,a=2===t?"<svg>":3===t?"<math>":"",s=O;for(let t=0;t<r;t++){let r=e[t],l,n,d=-1,c=0;for(;c<r.length&&(s.lastIndex=c,null!==(n=s.exec(r)));)c=s.lastIndex,s===O?"!--"===n[1]?s=D:void 0!==n[1]?s=T:void 0!==n[2]?(F.test(n[2])&&(i=RegExp("</"+n[2],"g")),s=U):void 0!==n[3]&&(s=U):s===U?">"===n[0]?(s=i??O,d=-1):void 0===n[1]?d=-2:(d=s.lastIndex-n[2].length,l=n[1],s=void 0===n[3]?U:'"'===n[3]?B:j):s===B||s===j?s=U:s===D||s===T?s=O:(s=U,i=void 0);let p=s===U&&e[t+1].startsWith("/>")?" ":"";a+=s===O?r+E:d>=0?(o.push(l),r.slice(0,d)+x+r.slice(d)+A+p):r+A+(-2===d?t:p)}return[P(e,a+(e[r]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),o]})(e,t);if(this.el=N.createElement(n,r),J.currentNode=this.el.content,2===t||3===t){let e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(o=J.nextNode())&&l.length<s;){if(1===o.nodeType){if(o.hasAttributes())for(let e of o.getAttributeNames())if(e.endsWith(x)){let t=d[a++],r=o.getAttribute(e).split(A),s=/([.?@])?(.*)/.exec(t);l.push({type:1,index:i,name:s[2],strings:r,ctor:"."===s[1]?H:"?"===s[1]?I:"@"===s[1]?L:k}),o.removeAttribute(e)}else e.startsWith(A)&&(l.push({type:6,index:i}),o.removeAttribute(e));if(F.test(o.tagName)){let e=o.textContent.split(A),t=e.length-1;if(t>0){o.textContent=g?g.emptyScript:"";for(let r=0;r<t;r++)o.append(e[r],lit_html_l()),J.nextNode(),l.push({type:2,index:++i});o.append(e[t],lit_html_l())}}}else if(8===o.nodeType)if(o.data===C)l.push({type:2,index:i});else{let e=-1;for(;-1!==(e=o.data.indexOf(A,e+1));)l.push({type:7,index:i}),e+=A.length-1}i++}}static createElement(e,t){let r=S.createElement("template");return r.innerHTML=e,r}};function lit_html_S(e,t,r=e,o){if(t===Y)return t;let i=void 0!==o?r._$Co?.[o]:r._$Cl,a=lit_html_c(t)?void 0:t._$litDirective$;return i?.constructor!==a&&(i?._$AO?.(!1),void 0===a?i=void 0:(i=new a(e))._$AT(e,r,o),void 0!==o?(r._$Co??=[])[o]=i:r._$Cl=i),void 0!==i&&(t=lit_html_S(e,i._$AS(e,t.values),i,o)),t}let M=class M{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:r}=this._$AD,o=(e?.creationScope??S).importNode(t,!0);J.currentNode=o;let i=J.nextNode(),a=0,s=0,l=r[0];for(;void 0!==l;){if(a===l.index){let t;2===l.type?t=new R(i,i.nextSibling,this,e):1===l.type?t=new l.ctor(i,l.name,l.strings,this,e):6===l.type&&(t=new z(i,this,e)),this._$AV.push(t),l=r[++s]}a!==l?.index&&(i=J.nextNode(),a++)}return J.currentNode=S,o}p(e){let t=0;for(let r of this._$AV)void 0!==r&&(void 0!==r.strings?(r._$AI(e,r,t),t+=r.strings.length-2):r._$AI(e[t])),t++}};let R=class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,r,o){this.type=2,this._$AH=W,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=r,this.options=o,this._$Cv=o?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){let r;lit_html_c(e=lit_html_S(this,e,t))?e===W||null==e||""===e?(this._$AH!==W&&this._$AR(),this._$AH=W):e!==this._$AH&&e!==Y&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):w(r=e)||"function"==typeof r?.[Symbol.iterator]?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==W&&lit_html_c(this._$AH)?this._$AA.nextSibling.data=e:this.T(S.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:r}=e,o="number"==typeof r?this._$AC(e):(void 0===r.el&&(r.el=N.createElement(P(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===o)this._$AH.p(t);else{let e=new M(o,this),r=e.u(this.options);e.p(t),this.T(r),this._$AH=e}}_$AC(e){let t=G.get(e.strings);return void 0===t&&G.set(e.strings,t=new N(e)),t}k(e){w(this._$AH)||(this._$AH=[],this._$AR());let t=this._$AH,r,o=0;for(let i of e)o===t.length?t.push(r=new R(this.O(lit_html_l()),this.O(lit_html_l()),this,this.options)):r=t[o],r._$AI(i),o++;o<t.length&&(this._$AR(r&&r._$AB.nextSibling,o),t.length=o)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){let t=e.nextSibling;e.remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}};let k=class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,r,o,i){this.type=1,this._$AH=W,this._$AN=void 0,this.element=e,this.name=t,this._$AM=o,this.options=i,r.length>2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=W}_$AI(e,t=this,r,o){let i=this.strings,a=!1;if(void 0===i)(a=!lit_html_c(e=lit_html_S(this,e,t,0))||e!==this._$AH&&e!==Y)&&(this._$AH=e);else{let o,s,l=e;for(e=i[0],o=0;o<i.length-1;o++)(s=lit_html_S(this,l[r+o],t,o))===Y&&(s=this._$AH[o]),a||=!lit_html_c(s)||s!==this._$AH[o],s===W?e=W:e!==W&&(e+=(s??"")+i[o+1]),this._$AH[o]=s}a&&!o&&this.j(e)}j(e){e===W?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}};let H=class H extends k{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===W?void 0:e}};let I=class I extends k{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==W)}};let L=class L extends k{constructor(e,t,r,o,i){super(e,t,r,o,i),this.type=5}_$AI(e,t=this){if((e=lit_html_S(this,e,t,0)??W)===Y)return;let r=this._$AH,o=e===W&&r!==W||e.capture!==r.capture||e.once!==r.once||e.passive!==r.passive,i=e!==W&&(r===W||o);o&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}};let z=class z{constructor(e,t,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){lit_html_S(this,e)}};let K=_.litHtmlPolyfillSupport;K?.(N,R),(_.litHtmlVersions??=[]).push("3.3.1");let Z=globalThis;let lit_element_i=class lit_element_i extends reactive_element_y{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=((e,t,r)=>{let o=r?.renderBefore??t,i=o._$litPart$;if(void 0===i){let e=r?.renderBefore??null;o._$litPart$=i=new R(t.insertBefore(lit_html_l(),e),e,void 0,r??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Y}};lit_element_i._$litElement$=!0,lit_element_i.finalized=!0,Z.litElementHydrateSupport?.({LitElement:lit_element_i});let Q=Z.litElementPolyfillSupport;Q?.({LitElement:lit_element_i}),(Z.litElementVersions??=[]).push("4.2.1");let X={attribute:!0,type:String,converter:v,reflect:!1,hasChanged:reactive_element_f};function property_n(e){return(t,r)=>{let o;return"object"==typeof r?((e=X,t,r)=>{let{kind:o,metadata:i}=r,a=globalThis.litPropertyMetadata.get(i);if(void 0===a&&globalThis.litPropertyMetadata.set(i,a=new Map),"setter"===o&&((e=Object.create(e)).wrapped=!0),a.set(r.name,e),"accessor"===o){let{name:o}=r;return{set(r){let i=t.get.call(this);t.set.call(this,r),this.requestUpdate(o,i,e)},init(t){return void 0!==t&&this.C(o,void 0,e,t),t}}}if("setter"===o){let{name:o}=r;return function(r){let i=this[o];t.call(this,r),this.requestUpdate(o,i,e)}}throw Error("Unsupported decorator location: "+o)})(e,t,r):(o=t.hasOwnProperty(r),t.constructor.createProperty(r,e),o?Object.getOwnPropertyDescriptor(t,r):void 0)}}function state_r(e){return property_n({...e,state:!0,attribute:!1})}function _ts_decorate(e,t,r,o){var i,a=arguments.length,s=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(s=(a<3?i(s):a>3?i(t,r,s):i(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s}let CardPaymentForm=class CardPaymentForm extends lit_element_i{formatCardNumber(e){return(e.replace(/\s/g,"").match(/.{1,4}/g)||[]).join(" ")}detectCardBrand(e){let t=e.replace(/\s/g,"");return t.startsWith("4")||t.startsWith("5")&&t[1]>="1"&&t[1]<="5"||t.startsWith("3")&&("4"===t[1]||"7"===t[1])?"\uD83D\uDCB3":""}handleCardNumberInput(e){let t=e.target,r=t.value.replace(/\D/g,"");this.formData.cardNumber=r,t.value=this.formatCardNumber(r.slice(0,16)),this.validateField("cardNumber",r)}handleExpiryInput(e,t){let r=t.target.value.replace(/\D/g,"");this.formData[e]=r,this.validateField(e,r)}handleCvvInput(e){let t=e.target,r=t.value.replace(/\D/g,"").slice(0,4);this.formData.cvv=r,t.value=r,this.validateField("cvv",r)}handleInput(e,t){let r=t.target;this.formData[e]=r.value,this.validateField(e,r.value)}validateField(e,t){let r="";switch(e){case"cardNumber":t?t.length<13&&(r="N\xfamero de tarjeta inv\xe1lido"):r="El n\xfamero de tarjeta es requerido";break;case"cardholderName":t.trim()||(r="El nombre del titular es requerido");break;case"expiryMonth":{let e=Number.parseInt(t,10);t?(e<1||e>12)&&(r="Mes inv\xe1lido"):r="Requerido";break}case"expiryYear":{let e=Number.parseInt(t,10),o=new Date().getFullYear()%100;t?e<o&&(r="A\xf1o inv\xe1lido"):r="Requerido";break}case"cvv":t?t.length<3&&(r="CVV inv\xe1lido"):r="CVV requerido";break;case"email":this.requireEmail&&!t?r="Email requerido":t&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)&&(r="Email inv\xe1lido")}if(r)this.errors={...this.errors,[e]:r};else{let{[e]:t,...r}=this.errors;this.errors=r}return!r}validateForm(){let e=["cardNumber","cardholderName","expiryMonth","expiryYear","cvv"];this.requireEmail&&e.push("email");let t=!0;for(let r of e)this.validateField(r,this.formData[r]||"")||(t=!1);return t}handleSubmit(e){(e.preventDefault(),this.validateForm())?this.dispatchEvent(new CustomEvent("payment-submitted",{detail:{data:this.formData,type:"card"},bubbles:!0,composed:!0})):this.requestUpdate()}render(){return V`<form class="form-container" @submit="${this.handleSubmit}"><div class="form-group"><label for="cardNumber">Número de tarjeta</label><div class="input-wrapper"><input id="cardNumber" type="text" placeholder="1234 5678 9012 3456" maxlength="19" class="${this.errors.cardNumber?"error":""}" @input="${this.handleCardNumberInput}" autocomplete="cc-number"> ${this.detectCardBrand(this.formData.cardNumber)?V`<span class="card-brand">${this.detectCardBrand(this.formData.cardNumber)}</span>`:""}</div>${this.errors.cardNumber?V`<div class="error-message">${this.errors.cardNumber}</div>`:""}</div><div class="form-group"><label for="cardholderName">Nombre del titular</label> <input id="cardholderName" type="text" placeholder="NOMBRE COMPLETO" class="${this.errors.cardholderName?"error":""}" @input="${e=>this.handleInput("cardholderName",e)}" autocomplete="cc-name" style="text-transform:uppercase"> ${this.errors.cardholderName?V`<div class="error-message">${this.errors.cardholderName}</div>`:""}</div><div class="form-row"><div class="form-group"><label for="expiryMonth">Mes</label> <input id="expiryMonth" type="text" placeholder="MM" maxlength="2" class="${this.errors.expiryMonth?"error":""}" @input="${e=>this.handleExpiryInput("expiryMonth",e)}" autocomplete="cc-exp-month"> ${this.errors.expiryMonth?V`<div class="error-message">${this.errors.expiryMonth}</div>`:""}</div><div class="form-group"><label for="expiryYear">Año</label> <input id="expiryYear" type="text" placeholder="AA" maxlength="2" class="${this.errors.expiryYear?"error":""}" @input="${e=>this.handleExpiryInput("expiryYear",e)}" autocomplete="cc-exp-year"> ${this.errors.expiryYear?V`<div class="error-message">${this.errors.expiryYear}</div>`:""}</div></div><div class="form-group"><label for="cvv">CVV</label> <input id="cvv" type="text" placeholder="123" maxlength="4" class="${this.errors.cvv?"error":""}" @input="${this.handleCvvInput}" autocomplete="cc-csc"> ${this.errors.cvv?V`<div class="error-message">${this.errors.cvv}</div>`:""}</div>${this.requireEmail?V`<div class="form-group"><label for="email">Email</label> <input id="email" type="email" placeholder="ejemplo@correo.com" class="${this.errors.email?"error":""}" @input="${e=>this.handleInput("email",e)}" autocomplete="email"> ${this.errors.email?V`<div class="error-message">${this.errors.email}</div>`:""}</div>`:""} <button type="submit">Pagar</button></form>`}constructor(...e){super(...e),this.formData={cardNumber:"",cardholderName:"",expiryMonth:"",expiryYear:"",cvv:"",email:""},this.errors={},this.requireEmail=!1}};function cash_payment_form_ts_decorate(e,t,r,o){var i,a=arguments.length,s=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(s=(a<3?i(s):a>3?i(t,r,s):i(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s}CardPaymentForm.styles=css_tag_i`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.form-container{max-width:500px;margin:0 auto}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:var(--bloque-border-radius,6px);font-size:15px;transition:all .2s ease;box-sizing:border-box}input:focus{outline:0;border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 10%,transparent)}input.error{border-color:#ef4444}.error-message{color:#ef4444;font-size:13px;margin-top:4px}button{width:100%;padding:12px;background:var(--bloque-primary-color,#4f46e5);color:#fff;border:none;border-radius:var(--bloque-border-radius,6px);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;margin-top:8px}button:hover{background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 90%,#000)}button:disabled{background:#9ca3af;cursor:not-allowed}.card-brand{font-size:24px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.input-wrapper{position:relative}`,_ts_decorate([state_r()],CardPaymentForm.prototype,"formData",void 0),_ts_decorate([state_r()],CardPaymentForm.prototype,"errors",void 0),_ts_decorate([property_n({type:Boolean})],CardPaymentForm.prototype,"requireEmail",void 0);let ee=[{value:"CC",label:"C\xe9dula de Ciudadan\xeda"},{value:"CE",label:"C\xe9dula de Extranjer\xeda"},{value:"TI",label:"Tarjeta de Identidad"},{value:"PP",label:"Pasaporte"}];let CashPaymentForm=class CashPaymentForm extends lit_element_i{handleInput(e,t){let r=t.target;this.formData={...this.formData,[e]:r.value},this.validateField(e,r.value)}handleDocumentNumberInput(e){let t=e.target,r=t.value.replace(/\D/g,"");this.formData.documentNumber=r,t.value=r,this.validateField("documentNumber",r)}validateField(e,t){let r="";switch(e){case"email":t.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)||(r="Email inv\xe1lido"):r="El email es requerido";break;case"documentNumber":t.trim()?t.length<5&&(r="N\xfamero de documento inv\xe1lido"):r="El n\xfamero de documento es requerido";break;case"fullName":t.trim()?t.trim().split(" ").length<2&&(r="Ingresa tu nombre completo"):r="El nombre completo es requerido"}if(r)this.errors={...this.errors,[e]:r};else{let{[e]:t,...r}=this.errors;this.errors=r}return!r}validateForm(){let e=!0;for(let t of["email","documentNumber","fullName"])this.validateField(t,this.formData[t]||"")||(e=!1);return e}handleSubmit(e){(e.preventDefault(),this.validateForm())?this.dispatchEvent(new CustomEvent("payment-submitted",{detail:{data:this.formData,type:"cash"},bubbles:!0,composed:!0})):this.requestUpdate()}render(){return V`<form class="form-container" @submit="${this.handleSubmit}"><div class="info-box"><strong>💵 Pago en efectivo</strong><p style="margin:4px 0">Genera un recibo de pago para realizar tu pago en:</p><ul class="info-list"><li>Puntos Efecty</li><li>Baloto</li><li>Su Red</li><li>Corresponsales bancarios</li></ul></div><div class="form-group"><label for="email">Email</label> <input id="email" type="email" placeholder="ejemplo@correo.com" class="${this.errors.email?"error":""}" @input="${e=>this.handleInput("email",e)}" autocomplete="email"> ${this.errors.email?V`<div class="error-message">${this.errors.email}</div>`:""}</div><div class="form-group"><label for="fullName">Nombre completo</label> <input id="fullName" type="text" placeholder="Juan Pérez García" class="${this.errors.fullName?"error":""}" @input="${e=>this.handleInput("fullName",e)}" autocomplete="name"> ${this.errors.fullName?V`<div class="error-message">${this.errors.fullName}</div>`:""}</div><div class="form-row"><div class="form-group"><label for="documentType">Tipo de documento</label> <select id="documentType" @change="${e=>this.handleInput("documentType",e)}">${ee.map(e=>V`<option value="${e.value}" ?selected="${this.formData.documentType===e.value}">${e.label}</option>`)}</select></div><div class="form-group"><label for="documentNumber">Número de documento</label> <input id="documentNumber" type="text" placeholder="1234567890" class="${this.errors.documentNumber?"error":""}" @input="${this.handleDocumentNumberInput}"> ${this.errors.documentNumber?V`<div class="error-message">${this.errors.documentNumber}</div>`:""}</div></div><button type="submit">Generar recibo de pago</button></form>`}constructor(...e){super(...e),this.formData={email:"",documentType:"CC",documentNumber:"",fullName:""},this.errors={}}};CashPaymentForm.styles=css_tag_i`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.form-container{max-width:500px;margin:0 auto}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}input,select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:var(--bloque-border-radius,6px);font-size:15px;transition:all .2s ease;box-sizing:border-box;background:#fff}input:focus,select:focus{outline:0;border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 10%,transparent)}input.error,select.error{border-color:#ef4444}.error-message{color:#ef4444;font-size:13px;margin-top:4px}button{width:100%;padding:12px;background:var(--bloque-primary-color,#4f46e5);color:#fff;border:none;border-radius:var(--bloque-border-radius,6px);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;margin-top:8px}button:hover{background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 90%,#000)}button:disabled{background:#9ca3af;cursor:not-allowed}.info-box{background:#fef3c7;border:1px solid #fcd34d;border-radius:var(--bloque-border-radius,6px);padding:12px;margin-bottom:16px;font-size:14px;color:#92400e}.info-box strong{display:block;margin-bottom:4px}.info-list{margin:8px 0 0 0;padding-left:20px}.info-list li{margin-bottom:4px}`,cash_payment_form_ts_decorate([state_r()],CashPaymentForm.prototype,"formData",void 0),cash_payment_form_ts_decorate([state_r()],CashPaymentForm.prototype,"errors",void 0);let et={card:{type:"card",label:"Tarjeta de Cr\xe9dito/D\xe9bito",description:"Paga con tu tarjeta de cr\xe9dito o d\xe9bito"},pse:{type:"pse",label:"PSE",description:"Pago seguro en l\xednea con tu banco"},cash:{type:"cash",label:"Efectivo",description:"Genera un recibo para pagar en efectivo"}};function payment_method_selector_ts_decorate(e,t,r,o){var i,a=arguments.length,s=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(s=(a<3?i(s):a>3?i(t,r,s):i(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s}let PaymentMethodSelector=class PaymentMethodSelector extends lit_element_i{handleMethodSelect(e){this.selectedMethod=e,this.dispatchEvent(new CustomEvent("method-selected",{detail:{method:e},bubbles:!0,composed:!0}))}getMethodIcon(e){return({card:"\uD83D\uDCB3",pse:"\uD83C\uDFE6",cash:"\uD83D\uDCB5"})[e]}render(){return V`<div class="payment-methods">${this.availableMethods.map(e=>{let t=et[e],r=this.selectedMethod===e;return V`<div class="payment-method ${r?"selected":""}" @click="${()=>this.handleMethodSelect(e)}" role="radio" aria-checked="${r}" tabindex="0" @keydown="${t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),this.handleMethodSelect(e))}}"><div class="radio"><div class="radio-inner"></div></div><div class="method-content"><p class="method-label">${t.label}</p><p class="method-description">${t.description}</p></div><div class="method-icon">${this.getMethodIcon(e)}</div></div>`})}</div>`}constructor(...e){super(...e),this.selectedMethod=null,this.availableMethods=["card","pse","cash"]}};function pse_payment_form_ts_decorate(e,t,r,o){var i,a=arguments.length,s=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(s=(a<3?i(s):a>3?i(t,r,s):i(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s}PaymentMethodSelector.styles=css_tag_i`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.payment-methods{display:flex;flex-direction:column;gap:12px;max-width:500px;margin:0 auto}.payment-method{display:flex;align-items:center;padding:16px;border:2px solid #e0e0e0;border-radius:var(--bloque-border-radius,8px);cursor:pointer;transition:all .2s ease;background:#fff}.payment-method:hover{border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 2px 8px rgba(79,70,229,.1)}.payment-method.selected{border-color:var(--bloque-primary-color,#4f46e5);background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 8%,#fff)}.radio{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%;margin-right:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.payment-method.selected .radio{border-color:var(--bloque-primary-color,#4f46e5)}.radio-inner{width:10px;height:10px;border-radius:50%;background:var(--bloque-primary-color,#4f46e5);opacity:0;transition:opacity .2s ease}.payment-method.selected .radio-inner{opacity:1}.method-content{flex:1}.method-label{font-weight:600;font-size:16px;color:#111827;margin:0 0 4px 0}.method-description{font-size:14px;color:#6b7280;margin:0}.method-icon{width:40px;height:40px;margin-left:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}`,payment_method_selector_ts_decorate([property_n({type:String})],PaymentMethodSelector.prototype,"selectedMethod",void 0),payment_method_selector_ts_decorate([property_n({type:Array})],PaymentMethodSelector.prototype,"availableMethods",void 0);let er=[{code:"bancolombia",name:"Bancolombia"},{code:"banco_de_bogota",name:"Banco de Bogot\xe1"},{code:"banco_davivienda",name:"Davivienda"},{code:"bbva",name:"BBVA Colombia"},{code:"banco_occidente",name:"Banco de Occidente"},{code:"banco_popular",name:"Banco Popular"},{code:"banco_av_villas",name:"Banco AV Villas"},{code:"colpatria",name:"Scotiabank Colpatria"},{code:"banco_caja_social",name:"Banco Caja Social"},{code:"banco_agrario",name:"Banco Agrario"},{code:"citibank",name:"Citibank"},{code:"banco_gnb_sudameris",name:"Banco GNB Sudameris"},{code:"itau",name:"Ita\xfa"},{code:"bancoomeva",name:"Bancoomeva"}],eo=[{value:"CC",label:"C\xe9dula de Ciudadan\xeda"},{value:"CE",label:"C\xe9dula de Extranjer\xeda"},{value:"NIT",label:"NIT"},{value:"TI",label:"Tarjeta de Identidad"},{value:"PP",label:"Pasaporte"}];let PSEPaymentForm=class PSEPaymentForm extends lit_element_i{handlePersonTypeChange(e){let t=e.target;this.formData.personType=t.value,this.requestUpdate()}handleInput(e,t){let r=t.target;this.formData={...this.formData,[e]:r.value},this.validateField(e,r.value)}handleDocumentNumberInput(e){let t=e.target,r=t.value.replace(/\D/g,"");this.formData.documentNumber=r,t.value=r,this.validateField("documentNumber",r)}validateField(e,t){let r="";switch(e){case"documentNumber":t.trim()?t.length<5&&(r="N\xfamero de documento inv\xe1lido"):r="El n\xfamero de documento es requerido";break;case"bankCode":t||(r="Debe seleccionar un banco");break;case"email":t.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)||(r="Email inv\xe1lido"):r="El email es requerido"}if(r)this.errors={...this.errors,[e]:r};else{let{[e]:t,...r}=this.errors;this.errors=r}return!r}validateForm(){let e=!0;for(let t of["documentNumber","bankCode","email"])this.validateField(t,this.formData[t]||"")||(e=!1);return e}handleSubmit(e){(e.preventDefault(),this.validateForm())?this.dispatchEvent(new CustomEvent("payment-submitted",{detail:{data:this.formData,type:"pse"},bubbles:!0,composed:!0})):this.requestUpdate()}render(){return V`<form class="form-container" @submit="${this.handleSubmit}"><div class="info-box">🏦 Serás redirigido al portal de tu banco para completar el pago de forma segura.</div><div class="form-group"><label>Tipo de persona</label><div class="radio-group"><div class="radio-option"><input type="radio" id="natural" name="personType" value="natural" .checked="${"natural"===this.formData.personType}" @change="${this.handlePersonTypeChange}"> <label for="natural">Persona Natural</label></div><div class="radio-option"><input type="radio" id="juridica" name="personType" value="juridica" .checked="${"juridica"===this.formData.personType}" @change="${this.handlePersonTypeChange}"> <label for="juridica">Persona Jurídica</label></div></div></div><div class="form-row"><div class="form-group"><label for="documentType">Tipo de documento</label> <select id="documentType" @change="${e=>this.handleInput("documentType",e)}">${eo.map(e=>V`<option value="${e.value}" ?selected="${this.formData.documentType===e.value}">${e.label}</option>`)}</select></div><div class="form-group"><label for="documentNumber">Número de documento</label> <input id="documentNumber" type="text" placeholder="1234567890" class="${this.errors.documentNumber?"error":""}" @input="${this.handleDocumentNumberInput}"> ${this.errors.documentNumber?V`<div class="error-message">${this.errors.documentNumber}</div>`:""}</div></div><div class="form-group"><label for="bankCode">Selecciona tu banco</label> <select id="bankCode" class="${this.errors.bankCode?"error":""}" @change="${e=>this.handleInput("bankCode",e)}"><option value="">-- Selecciona un banco --</option>${er.map(e=>V`<option value="${e.code}" ?selected="${this.formData.bankCode===e.code}">${e.name}</option>`)}</select> ${this.errors.bankCode?V`<div class="error-message">${this.errors.bankCode}</div>`:""}</div><div class="form-group"><label for="email">Email</label> <input id="email" type="email" placeholder="ejemplo@correo.com" class="${this.errors.email?"error":""}" @input="${e=>this.handleInput("email",e)}" autocomplete="email"> ${this.errors.email?V`<div class="error-message">${this.errors.email}</div>`:""}</div><button type="submit">Continuar al banco</button></form>`}constructor(...e){super(...e),this.formData={personType:"natural",documentType:"CC",documentNumber:"",bankCode:"",email:""},this.errors={}}};function bloque_checkout_ts_decorate(e,t,r,o){var i,a=arguments.length,s=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(s=(a<3?i(s):a>3?i(t,r,s):i(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s}PSEPaymentForm.styles=css_tag_i`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.form-container{max-width:500px;margin:0 auto}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}input,select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:var(--bloque-border-radius,6px);font-size:15px;transition:all .2s ease;box-sizing:border-box;background:#fff}input:focus,select:focus{outline:0;border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 10%,transparent)}input.error,select.error{border-color:#ef4444}.error-message{color:#ef4444;font-size:13px;margin-top:4px}.radio-group{display:flex;gap:16px;margin-top:8px}.radio-option{display:flex;align-items:center;cursor:pointer}.radio-option input[type=radio]{width:auto;margin-right:8px;cursor:pointer}.radio-option label{margin:0;cursor:pointer;font-weight:400}button{width:100%;padding:12px;background:var(--bloque-primary-color,#4f46e5);color:#fff;border:none;border-radius:var(--bloque-border-radius,6px);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;margin-top:8px}button:hover{background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 90%,#000)}button:disabled{background:#9ca3af;cursor:not-allowed}.info-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--bloque-border-radius,6px);padding:12px;margin-bottom:16px;font-size:14px;color:#1e40af}`,pse_payment_form_ts_decorate([state_r()],PSEPaymentForm.prototype,"formData",void 0),pse_payment_form_ts_decorate([state_r()],PSEPaymentForm.prototype,"errors",void 0);let BloqueCheckout=class BloqueCheckout extends lit_element_i{get effectiveAvailableMethods(){return this.config?.payment_methods||this.availableMethods}get effectivePrimaryColor(){return this.appearance?.primaryColor||"#4f46e5"}get effectiveBorderRadius(){return this.appearance?.borderRadius||"8px"}get effectiveFontFamily(){return this.appearance?.fontFamily||"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif"}connectedCallback(){super.connectedCallback(),1===this.effectiveAvailableMethods.length&&(this.selectedMethod=this.effectiveAvailableMethods[0])}updated(e){super.updated(e),(e.has("availableMethods")||e.has("config"))&&1===this.effectiveAvailableMethods.length&&(this.selectedMethod=this.effectiveAvailableMethods[0])}handleMethodSelected(e){this.selectedMethod=e.detail.method,this.error=null}async handlePaymentSubmitted(e){let{data:t,type:r}=e.detail;this.error=null,this.isLoading=!0;try{this.onSubmit&&await this.onSubmit({data:t,type:r}),this.dispatchEvent(new CustomEvent("payment-success",{detail:{data:t,type:r},bubbles:!0,composed:!0}))}catch(e){this.error=e instanceof Error?e.message:"Payment failed. Please try again.",this.dispatchEvent(new CustomEvent("payment-error",{detail:{data:t,type:r,error:this.error},bubbles:!0,composed:!0}))}finally{this.isLoading=!1}}render(){let e=`
|
|
4
|
+
--bloque-primary-color: ${this.effectivePrimaryColor};
|
|
5
|
+
--bloque-border-radius: ${this.effectiveBorderRadius};
|
|
6
|
+
--bloque-font-family: ${this.effectiveFontFamily};
|
|
7
|
+
`;return V`<div class="checkout-container" style="${e}">${this.showMethodSelector&&this.effectiveAvailableMethods.length>1?V`<div class="section"><div class="section-title">Selecciona tu método de pago</div><payment-method-selector .availableMethods="${this.effectiveAvailableMethods}" .selectedMethod="${this.selectedMethod}" @method-selected="${this.handleMethodSelected}"></payment-method-selector></div>`:""} ${this.selectedMethod?V`<div class="form-container">${this.error?V`<div class="error-banner"><span>⚠️</span> <span>${this.error}</span></div>`:""}<div class="section-title">Completa la información de pago</div><div class="form-wrapper">${this.isLoading?V`<div class="loading-overlay"><div class="spinner"></div></div>`:""} ${"card"===this.selectedMethod?V`<card-payment-form .requireEmail="${this.requireEmail}" @payment-submitted="${this.handlePaymentSubmitted}"></card-payment-form>`:"pse"===this.selectedMethod?V`<pse-payment-form @payment-submitted="${this.handlePaymentSubmitted}"></pse-payment-form>`:V`<cash-payment-form @payment-submitted="${this.handlePaymentSubmitted}"></cash-payment-form>`}</div></div>`:""}</div>`}constructor(...e){super(...e),this.selectedMethod=null,this.isLoading=!1,this.error=null,this.config=null,this.appearance=null,this.amount=null,this.availableMethods=["card","pse","cash"],this.requireEmail=!0,this.showMethodSelector=!0}};BloqueCheckout.styles=css_tag_i`:host{display:block;font-family:var(
|
|
8
|
+
--bloque-font-family,
|
|
9
|
+
-apple-system,
|
|
10
|
+
BlinkMacSystemFont,
|
|
11
|
+
'Segoe UI',
|
|
12
|
+
Roboto,
|
|
13
|
+
Oxygen,
|
|
14
|
+
Ubuntu,
|
|
15
|
+
Cantarell,
|
|
16
|
+
sans-serif
|
|
17
|
+
)}.checkout-container{max-width:600px;margin:0 auto}.section{margin-bottom:32px}.section-title{font-size:18px;font-weight:600;color:#374151;margin-bottom:16px}.form-container{margin-top:24px;padding-top:24px;border-top:2px solid #e5e7eb;animation:fadeIn .3s ease-in}@keyframes fadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.back-button{background:0 0;border:none;color:#6b7280;cursor:pointer;padding:8px 0;font-size:14px;display:flex;align-items:center;gap:4px;margin-bottom:16px;transition:color .2s ease}.back-button:hover{color:#4f46e5}.error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;margin-bottom:16px;color:#991b1b;font-size:14px;display:flex;align-items:center;gap:8px}.loading-overlay{position:absolute;inset:0;background:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:8px}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-wrapper{position:relative}`,bloque_checkout_ts_decorate([state_r()],BloqueCheckout.prototype,"selectedMethod",void 0),bloque_checkout_ts_decorate([state_r()],BloqueCheckout.prototype,"isLoading",void 0),bloque_checkout_ts_decorate([state_r()],BloqueCheckout.prototype,"error",void 0),bloque_checkout_ts_decorate([property_n({type:Object})],BloqueCheckout.prototype,"config",void 0),bloque_checkout_ts_decorate([property_n({type:Object})],BloqueCheckout.prototype,"appearance",void 0),bloque_checkout_ts_decorate([property_n({type:Number})],BloqueCheckout.prototype,"amount",void 0),bloque_checkout_ts_decorate([property_n({type:Array})],BloqueCheckout.prototype,"availableMethods",void 0),bloque_checkout_ts_decorate([property_n({type:Boolean})],BloqueCheckout.prototype,"requireEmail",void 0),bloque_checkout_ts_decorate([property_n({type:Boolean})],BloqueCheckout.prototype,"showMethodSelector",void 0),bloque_checkout_ts_decorate([property_n({attribute:!1})],BloqueCheckout.prototype,"onSubmit",void 0),customElements.define("bloque-checkout",BloqueCheckout),customElements.define("payment-method-selector",PaymentMethodSelector),customElements.define("card-payment-form",CardPaymentForm),customElements.define("pse-payment-form",PSEPaymentForm),customElements.define("cash-payment-form",CashPaymentForm);var ei=t.h;export{ei as BloqueCheckout};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["webpack://@bloque/payments-elements/webpack/runtime/define_property_getters","webpack://@bloque/payments-elements/webpack/runtime/has_own_property","webpack://@bloque/payments-elements/../../node_modules/.bun/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js","webpack://@bloque/payments-elements/../../node_modules/.bun/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/reactive-element.js","webpack://@bloque/payments-elements/../../node_modules/.bun/lit-html@3.3.1/node_modules/lit-html/lit-html.js","webpack://@bloque/payments-elements/../../node_modules/.bun/lit-element@4.2.1/node_modules/lit-element/lit-element.js","webpack://@bloque/payments-elements/../../node_modules/.bun/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.js","webpack://@bloque/payments-elements/../../node_modules/.bun/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.js","webpack://@bloque/payments-elements/./src/card-payment-form.ts","webpack://@bloque/payments-elements/./src/cash-payment-form.ts","webpack://@bloque/payments-elements/./src/types.ts","webpack://@bloque/payments-elements/./src/payment-method-selector.ts","webpack://@bloque/payments-elements/./src/pse-payment-form.ts","webpack://@bloque/payments-elements/./src/bloque-checkout.ts","webpack://@bloque/payments-elements/./src/index.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import type { CardPaymentFormData } from '@bloque/payments-core';\nimport { css, html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\n\nexport class CardPaymentForm extends LitElement {\n @state()\n private formData: CardPaymentFormData = {\n cardNumber: '',\n cardholderName: '',\n expiryMonth: '',\n expiryYear: '',\n cvv: '',\n email: '',\n };\n\n @state()\n private errors: Partial<Record<keyof CardPaymentFormData, string>> = {};\n\n @property({ type: Boolean })\n requireEmail = false;\n\n static styles = css`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.form-container{max-width:500px;margin:0 auto}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:var(--bloque-border-radius,6px);font-size:15px;transition:all .2s ease;box-sizing:border-box}input:focus{outline:0;border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 10%,transparent)}input.error{border-color:#ef4444}.error-message{color:#ef4444;font-size:13px;margin-top:4px}button{width:100%;padding:12px;background:var(--bloque-primary-color,#4f46e5);color:#fff;border:none;border-radius:var(--bloque-border-radius,6px);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;margin-top:8px}button:hover{background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 90%,#000)}button:disabled{background:#9ca3af;cursor:not-allowed}.card-brand{font-size:24px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.input-wrapper{position:relative}`;\n\n private formatCardNumber(value: string): string {\n const cleaned = value.replace(/\\s/g, '');\n const groups = cleaned.match(/.{1,4}/g) || [];\n return groups.join(' ');\n }\n\n private detectCardBrand(number: string): string {\n const cleaned = number.replace(/\\s/g, '');\n if (cleaned.startsWith('4')) return '💳'; // Visa\n if (cleaned.startsWith('5') && cleaned[1] >= '1' && cleaned[1] <= '5')\n return '💳'; // Mastercard\n if (cleaned.startsWith('3') && (cleaned[1] === '4' || cleaned[1] === '7'))\n return '💳'; // Amex\n return '';\n }\n\n private handleCardNumberInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const cleaned = input.value.replace(/\\D/g, '');\n this.formData.cardNumber = cleaned;\n input.value = this.formatCardNumber(cleaned.slice(0, 16));\n this.validateField('cardNumber', cleaned);\n }\n\n private handleExpiryInput(field: 'expiryMonth' | 'expiryYear', e: Event) {\n const input = e.target as HTMLInputElement;\n const value = input.value.replace(/\\D/g, '');\n this.formData[field] = value;\n this.validateField(field, value);\n }\n\n private handleCvvInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const value = input.value.replace(/\\D/g, '').slice(0, 4);\n this.formData.cvv = value;\n input.value = value;\n this.validateField('cvv', value);\n }\n\n private handleInput(field: keyof CardPaymentFormData, e: Event) {\n const input = e.target as HTMLInputElement;\n this.formData[field] = input.value;\n this.validateField(field, input.value);\n }\n\n private validateField(\n field: keyof CardPaymentFormData,\n value: string,\n ): boolean {\n let error = '';\n\n switch (field) {\n case 'cardNumber':\n if (!value) error = 'El número de tarjeta es requerido';\n else if (value.length < 13) error = 'Número de tarjeta inválido';\n break;\n case 'cardholderName':\n if (!value.trim()) error = 'El nombre del titular es requerido';\n break;\n case 'expiryMonth': {\n const month = Number.parseInt(value, 10);\n if (!value) error = 'Requerido';\n else if (month < 1 || month > 12) error = 'Mes inválido';\n break;\n }\n case 'expiryYear': {\n const year = Number.parseInt(value, 10);\n const currentYear = new Date().getFullYear() % 100;\n if (!value) error = 'Requerido';\n else if (year < currentYear) error = 'Año inválido';\n break;\n }\n case 'cvv':\n if (!value) error = 'CVV requerido';\n else if (value.length < 3) error = 'CVV inválido';\n break;\n case 'email':\n if (this.requireEmail && !value) error = 'Email requerido';\n else if (value && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value))\n error = 'Email inválido';\n break;\n }\n\n if (error) {\n this.errors = { ...this.errors, [field]: error };\n } else {\n const { [field]: _, ...rest } = this.errors;\n this.errors = rest;\n }\n\n return !error;\n }\n\n private validateForm(): boolean {\n const fields: (keyof CardPaymentFormData)[] = [\n 'cardNumber',\n 'cardholderName',\n 'expiryMonth',\n 'expiryYear',\n 'cvv',\n ];\n if (this.requireEmail) fields.push('email');\n\n let isValid = true;\n for (const field of fields) {\n if (!this.validateField(field, this.formData[field] || '')) {\n isValid = false;\n }\n }\n return isValid;\n }\n\n private handleSubmit(e: Event) {\n e.preventDefault();\n\n if (!this.validateForm()) {\n this.requestUpdate();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('payment-submitted', {\n detail: { data: this.formData, type: 'card' },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n return html`<form class=\"form-container\" @submit=\"${this.handleSubmit}\"><div class=\"form-group\"><label for=\"cardNumber\">Número de tarjeta</label><div class=\"input-wrapper\"><input id=\"cardNumber\" type=\"text\" placeholder=\"1234 5678 9012 3456\" maxlength=\"19\" class=\"${this.errors.cardNumber ? 'error' : ''}\" @input=\"${this.handleCardNumberInput}\" autocomplete=\"cc-number\"> ${\n this.detectCardBrand(this.formData.cardNumber)\n ? html`<span class=\"card-brand\">${this.detectCardBrand(this.formData.cardNumber)}</span>`\n : ''\n }</div>${\n this.errors.cardNumber\n ? html`<div class=\"error-message\">${this.errors.cardNumber}</div>`\n : ''\n }</div><div class=\"form-group\"><label for=\"cardholderName\">Nombre del titular</label> <input id=\"cardholderName\" type=\"text\" placeholder=\"NOMBRE COMPLETO\" class=\"${this.errors.cardholderName ? 'error' : ''}\" @input=\"${(e: Event) => this.handleInput('cardholderName', e)}\" autocomplete=\"cc-name\" style=\"text-transform:uppercase\"> ${\n this.errors.cardholderName\n ? html`<div class=\"error-message\">${this.errors.cardholderName}</div>`\n : ''\n }</div><div class=\"form-row\"><div class=\"form-group\"><label for=\"expiryMonth\">Mes</label> <input id=\"expiryMonth\" type=\"text\" placeholder=\"MM\" maxlength=\"2\" class=\"${this.errors.expiryMonth ? 'error' : ''}\" @input=\"${(e: Event) => this.handleExpiryInput('expiryMonth', e)}\" autocomplete=\"cc-exp-month\"> ${\n this.errors.expiryMonth\n ? html`<div class=\"error-message\">${this.errors.expiryMonth}</div>`\n : ''\n }</div><div class=\"form-group\"><label for=\"expiryYear\">Año</label> <input id=\"expiryYear\" type=\"text\" placeholder=\"AA\" maxlength=\"2\" class=\"${this.errors.expiryYear ? 'error' : ''}\" @input=\"${(e: Event) => this.handleExpiryInput('expiryYear', e)}\" autocomplete=\"cc-exp-year\"> ${\n this.errors.expiryYear\n ? html`<div class=\"error-message\">${this.errors.expiryYear}</div>`\n : ''\n }</div></div><div class=\"form-group\"><label for=\"cvv\">CVV</label> <input id=\"cvv\" type=\"text\" placeholder=\"123\" maxlength=\"4\" class=\"${this.errors.cvv ? 'error' : ''}\" @input=\"${this.handleCvvInput}\" autocomplete=\"cc-csc\"> ${\n this.errors.cvv\n ? html`<div class=\"error-message\">${this.errors.cvv}</div>`\n : ''\n }</div>${\n this.requireEmail\n ? html`<div class=\"form-group\"><label for=\"email\">Email</label> <input id=\"email\" type=\"email\" placeholder=\"ejemplo@correo.com\" class=\"${this.errors.email ? 'error' : ''}\" @input=\"${(e: Event) => this.handleInput('email', e)}\" autocomplete=\"email\"> ${\n this.errors.email\n ? html`<div class=\"error-message\">${this.errors.email}</div>`\n : ''\n }</div>`\n : ''\n } <button type=\"submit\">Pagar</button></form>`;\n }\n}\n","import type { CashPaymentFormData } from '@bloque/payments-core';\nimport { css, html, LitElement } from 'lit';\nimport { state } from 'lit/decorators.js';\n\nconst DOCUMENT_TYPES = [\n { value: 'CC', label: 'Cédula de Ciudadanía' },\n { value: 'CE', label: 'Cédula de Extranjería' },\n { value: 'TI', label: 'Tarjeta de Identidad' },\n { value: 'PP', label: 'Pasaporte' },\n];\n\nexport class CashPaymentForm extends LitElement {\n @state()\n private formData: CashPaymentFormData = {\n email: '',\n documentType: 'CC',\n documentNumber: '',\n fullName: '',\n };\n\n @state()\n private errors: Partial<Record<keyof CashPaymentFormData, string>> = {};\n\n static styles = css`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.form-container{max-width:500px;margin:0 auto}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}input,select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:var(--bloque-border-radius,6px);font-size:15px;transition:all .2s ease;box-sizing:border-box;background:#fff}input:focus,select:focus{outline:0;border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 10%,transparent)}input.error,select.error{border-color:#ef4444}.error-message{color:#ef4444;font-size:13px;margin-top:4px}button{width:100%;padding:12px;background:var(--bloque-primary-color,#4f46e5);color:#fff;border:none;border-radius:var(--bloque-border-radius,6px);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;margin-top:8px}button:hover{background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 90%,#000)}button:disabled{background:#9ca3af;cursor:not-allowed}.info-box{background:#fef3c7;border:1px solid #fcd34d;border-radius:var(--bloque-border-radius,6px);padding:12px;margin-bottom:16px;font-size:14px;color:#92400e}.info-box strong{display:block;margin-bottom:4px}.info-list{margin:8px 0 0 0;padding-left:20px}.info-list li{margin-bottom:4px}`;\n\n private handleInput(field: keyof CashPaymentFormData, e: Event) {\n const input = e.target as HTMLInputElement | HTMLSelectElement;\n this.formData = { ...this.formData, [field]: input.value };\n this.validateField(field, input.value);\n }\n\n private handleDocumentNumberInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const value = input.value.replace(/\\D/g, '');\n this.formData.documentNumber = value;\n input.value = value;\n this.validateField('documentNumber', value);\n }\n\n private validateField(\n field: keyof CashPaymentFormData,\n value: string,\n ): boolean {\n let error = '';\n\n switch (field) {\n case 'email':\n if (!value.trim()) error = 'El email es requerido';\n else if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value))\n error = 'Email inválido';\n break;\n case 'documentNumber':\n if (!value.trim()) error = 'El número de documento es requerido';\n else if (value.length < 5) error = 'Número de documento inválido';\n break;\n case 'fullName':\n if (!value.trim()) error = 'El nombre completo es requerido';\n else if (value.trim().split(' ').length < 2)\n error = 'Ingresa tu nombre completo';\n break;\n }\n\n if (error) {\n this.errors = { ...this.errors, [field]: error };\n } else {\n const { [field]: _, ...rest } = this.errors;\n this.errors = rest;\n }\n\n return !error;\n }\n\n private validateForm(): boolean {\n const fields: (keyof CashPaymentFormData)[] = [\n 'email',\n 'documentNumber',\n 'fullName',\n ];\n\n let isValid = true;\n for (const field of fields) {\n if (!this.validateField(field, this.formData[field] || '')) {\n isValid = false;\n }\n }\n return isValid;\n }\n\n private handleSubmit(e: Event) {\n e.preventDefault();\n\n if (!this.validateForm()) {\n this.requestUpdate();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('payment-submitted', {\n detail: { data: this.formData, type: 'cash' },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n return html`<form class=\"form-container\" @submit=\"${this.handleSubmit}\"><div class=\"info-box\"><strong>💵 Pago en efectivo</strong><p style=\"margin:4px 0\">Genera un recibo de pago para realizar tu pago en:</p><ul class=\"info-list\"><li>Puntos Efecty</li><li>Baloto</li><li>Su Red</li><li>Corresponsales bancarios</li></ul></div><div class=\"form-group\"><label for=\"email\">Email</label> <input id=\"email\" type=\"email\" placeholder=\"ejemplo@correo.com\" class=\"${this.errors.email ? 'error' : ''}\" @input=\"${(e: Event) => this.handleInput('email', e)}\" autocomplete=\"email\"> ${\n this.errors.email\n ? html`<div class=\"error-message\">${this.errors.email}</div>`\n : ''\n }</div><div class=\"form-group\"><label for=\"fullName\">Nombre completo</label> <input id=\"fullName\" type=\"text\" placeholder=\"Juan Pérez García\" class=\"${this.errors.fullName ? 'error' : ''}\" @input=\"${(e: Event) => this.handleInput('fullName', e)}\" autocomplete=\"name\"> ${\n this.errors.fullName\n ? html`<div class=\"error-message\">${this.errors.fullName}</div>`\n : ''\n }</div><div class=\"form-row\"><div class=\"form-group\"><label for=\"documentType\">Tipo de documento</label> <select id=\"documentType\" @change=\"${(e: Event) => this.handleInput('documentType', e)}\">${DOCUMENT_TYPES.map(\n (type) => html`<option value=\"${type.value}\" ?selected=\"${this.formData.documentType === type.value}\">${type.label}</option>`,\n )}</select></div><div class=\"form-group\"><label for=\"documentNumber\">Número de documento</label> <input id=\"documentNumber\" type=\"text\" placeholder=\"1234567890\" class=\"${this.errors.documentNumber ? 'error' : ''}\" @input=\"${this.handleDocumentNumberInput}\"> ${\n this.errors.documentNumber\n ? html`<div class=\"error-message\">${this.errors.documentNumber}</div>`\n : ''\n }</div></div><button type=\"submit\">Generar recibo de pago</button></form>`;\n }\n}\n","export type PaymentMethodType = 'card' | 'pse' | 'cash';\n\nexport interface PaymentMethod {\n type: PaymentMethodType;\n label: string;\n description: string;\n icon?: string;\n}\n\nexport const PAYMENT_METHODS: Record<PaymentMethodType, PaymentMethod> = {\n card: {\n type: 'card',\n label: 'Tarjeta de Crédito/Débito',\n description: 'Paga con tu tarjeta de crédito o débito',\n },\n pse: {\n type: 'pse',\n label: 'PSE',\n description: 'Pago seguro en línea con tu banco',\n },\n cash: {\n type: 'cash',\n label: 'Efectivo',\n description: 'Genera un recibo para pagar en efectivo',\n },\n};\n\nexport interface CheckoutConfig {\n payment_methods?: PaymentMethodType[];\n amount?: number;\n currency?: string;\n}\n\nexport interface AppearanceConfig {\n primaryColor?: string;\n borderRadius?: string;\n fontFamily?: string;\n}\n","import { css, html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport type { PaymentMethodType } from './types';\nimport { PAYMENT_METHODS } from './types';\n\nexport class PaymentMethodSelector extends LitElement {\n @property({ type: String })\n selectedMethod: PaymentMethodType | null = null;\n\n @property({ type: Array })\n availableMethods: PaymentMethodType[] = ['card', 'pse', 'cash'];\n\n static styles = css`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.payment-methods{display:flex;flex-direction:column;gap:12px;max-width:500px;margin:0 auto}.payment-method{display:flex;align-items:center;padding:16px;border:2px solid #e0e0e0;border-radius:var(--bloque-border-radius,8px);cursor:pointer;transition:all .2s ease;background:#fff}.payment-method:hover{border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 2px 8px rgba(79,70,229,.1)}.payment-method.selected{border-color:var(--bloque-primary-color,#4f46e5);background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 8%,#fff)}.radio{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%;margin-right:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.payment-method.selected .radio{border-color:var(--bloque-primary-color,#4f46e5)}.radio-inner{width:10px;height:10px;border-radius:50%;background:var(--bloque-primary-color,#4f46e5);opacity:0;transition:opacity .2s ease}.payment-method.selected .radio-inner{opacity:1}.method-content{flex:1}.method-label{font-weight:600;font-size:16px;color:#111827;margin:0 0 4px 0}.method-description{font-size:14px;color:#6b7280;margin:0}.method-icon{width:40px;height:40px;margin-left:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}`;\n\n private handleMethodSelect(method: PaymentMethodType) {\n this.selectedMethod = method;\n this.dispatchEvent(\n new CustomEvent('method-selected', {\n detail: { method },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private getMethodIcon(type: PaymentMethodType): string {\n const icons = {\n card: '💳',\n pse: '🏦',\n cash: '💵',\n };\n return icons[type];\n }\n\n render() {\n return html`<div class=\"payment-methods\">${this.availableMethods.map((methodType) => {\n const method = PAYMENT_METHODS[methodType];\n const isSelected = this.selectedMethod === methodType;\n return html`<div class=\"payment-method ${isSelected ? 'selected' : ''}\" @click=\"${() => this.handleMethodSelect(methodType)}\" role=\"radio\" aria-checked=\"${isSelected}\" tabindex=\"0\" @keydown=\"${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.handleMethodSelect(methodType);\n }\n }}\"><div class=\"radio\"><div class=\"radio-inner\"></div></div><div class=\"method-content\"><p class=\"method-label\">${method.label}</p><p class=\"method-description\">${method.description}</p></div><div class=\"method-icon\">${this.getMethodIcon(methodType)}</div></div>`;\n })}</div>`;\n }\n}\n","import type { PSEPaymentFormData } from '@bloque/payments-core';\nimport { css, html, LitElement } from 'lit';\nimport { state } from 'lit/decorators.js';\n\ninterface Bank {\n code: string;\n name: string;\n}\n\nconst BANKS: Bank[] = [\n { code: 'bancolombia', name: 'Bancolombia' },\n { code: 'banco_de_bogota', name: 'Banco de Bogotá' },\n { code: 'banco_davivienda', name: 'Davivienda' },\n { code: 'bbva', name: 'BBVA Colombia' },\n { code: 'banco_occidente', name: 'Banco de Occidente' },\n { code: 'banco_popular', name: 'Banco Popular' },\n { code: 'banco_av_villas', name: 'Banco AV Villas' },\n { code: 'colpatria', name: 'Scotiabank Colpatria' },\n { code: 'banco_caja_social', name: 'Banco Caja Social' },\n { code: 'banco_agrario', name: 'Banco Agrario' },\n { code: 'citibank', name: 'Citibank' },\n { code: 'banco_gnb_sudameris', name: 'Banco GNB Sudameris' },\n { code: 'itau', name: 'Itaú' },\n { code: 'bancoomeva', name: 'Bancoomeva' },\n];\n\nconst DOCUMENT_TYPES = [\n { value: 'CC', label: 'Cédula de Ciudadanía' },\n { value: 'CE', label: 'Cédula de Extranjería' },\n { value: 'NIT', label: 'NIT' },\n { value: 'TI', label: 'Tarjeta de Identidad' },\n { value: 'PP', label: 'Pasaporte' },\n];\n\nexport class PSEPaymentForm extends LitElement {\n @state()\n private formData: PSEPaymentFormData = {\n personType: 'natural',\n documentType: 'CC',\n documentNumber: '',\n bankCode: '',\n email: '',\n };\n\n @state()\n private errors: Partial<Record<keyof PSEPaymentFormData, string>> = {};\n\n static styles = css`:host{display:block;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.form-container{max-width:500px;margin:0 auto}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}input,select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:var(--bloque-border-radius,6px);font-size:15px;transition:all .2s ease;box-sizing:border-box;background:#fff}input:focus,select:focus{outline:0;border-color:var(--bloque-primary-color,#4f46e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 10%,transparent)}input.error,select.error{border-color:#ef4444}.error-message{color:#ef4444;font-size:13px;margin-top:4px}.radio-group{display:flex;gap:16px;margin-top:8px}.radio-option{display:flex;align-items:center;cursor:pointer}.radio-option input[type=radio]{width:auto;margin-right:8px;cursor:pointer}.radio-option label{margin:0;cursor:pointer;font-weight:400}button{width:100%;padding:12px;background:var(--bloque-primary-color,#4f46e5);color:#fff;border:none;border-radius:var(--bloque-border-radius,6px);font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;margin-top:8px}button:hover{background:color-mix(in srgb,var(--bloque-primary-color,#4f46e5) 90%,#000)}button:disabled{background:#9ca3af;cursor:not-allowed}.info-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--bloque-border-radius,6px);padding:12px;margin-bottom:16px;font-size:14px;color:#1e40af}`;\n\n private handlePersonTypeChange(e: Event) {\n const input = e.target as HTMLInputElement;\n this.formData.personType = input.value as 'natural' | 'juridica';\n this.requestUpdate();\n }\n\n private handleInput(field: keyof PSEPaymentFormData, e: Event) {\n const input = e.target as HTMLInputElement | HTMLSelectElement;\n this.formData = { ...this.formData, [field]: input.value };\n this.validateField(field, input.value);\n }\n\n private handleDocumentNumberInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const value = input.value.replace(/\\D/g, '');\n this.formData.documentNumber = value;\n input.value = value;\n this.validateField('documentNumber', value);\n }\n\n private validateField(\n field: keyof PSEPaymentFormData,\n value: string,\n ): boolean {\n let error = '';\n\n switch (field) {\n case 'documentNumber':\n if (!value.trim()) error = 'El número de documento es requerido';\n else if (value.length < 5) error = 'Número de documento inválido';\n break;\n case 'bankCode':\n if (!value) error = 'Debe seleccionar un banco';\n break;\n case 'email':\n if (!value.trim()) error = 'El email es requerido';\n else if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value))\n error = 'Email inválido';\n break;\n }\n\n if (error) {\n this.errors = { ...this.errors, [field]: error };\n } else {\n const { [field]: _, ...rest } = this.errors;\n this.errors = rest;\n }\n\n return !error;\n }\n\n private validateForm(): boolean {\n const fields: (keyof PSEPaymentFormData)[] = [\n 'documentNumber',\n 'bankCode',\n 'email',\n ];\n\n let isValid = true;\n for (const field of fields) {\n if (!this.validateField(field, this.formData[field] || '')) {\n isValid = false;\n }\n }\n return isValid;\n }\n\n private handleSubmit(e: Event) {\n e.preventDefault();\n\n if (!this.validateForm()) {\n this.requestUpdate();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('payment-submitted', {\n detail: { data: this.formData, type: 'pse' },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n return html`<form class=\"form-container\" @submit=\"${this.handleSubmit}\"><div class=\"info-box\">🏦 Serás redirigido al portal de tu banco para completar el pago de forma segura.</div><div class=\"form-group\"><label>Tipo de persona</label><div class=\"radio-group\"><div class=\"radio-option\"><input type=\"radio\" id=\"natural\" name=\"personType\" value=\"natural\" .checked=\"${this.formData.personType === 'natural'}\" @change=\"${this.handlePersonTypeChange}\"> <label for=\"natural\">Persona Natural</label></div><div class=\"radio-option\"><input type=\"radio\" id=\"juridica\" name=\"personType\" value=\"juridica\" .checked=\"${this.formData.personType === 'juridica'}\" @change=\"${this.handlePersonTypeChange}\"> <label for=\"juridica\">Persona Jurídica</label></div></div></div><div class=\"form-row\"><div class=\"form-group\"><label for=\"documentType\">Tipo de documento</label> <select id=\"documentType\" @change=\"${(e: Event) => this.handleInput('documentType', e)}\">${DOCUMENT_TYPES.map(\n (type) => html`<option value=\"${type.value}\" ?selected=\"${this.formData.documentType === type.value}\">${type.label}</option>`,\n )}</select></div><div class=\"form-group\"><label for=\"documentNumber\">Número de documento</label> <input id=\"documentNumber\" type=\"text\" placeholder=\"1234567890\" class=\"${this.errors.documentNumber ? 'error' : ''}\" @input=\"${this.handleDocumentNumberInput}\"> ${\n this.errors.documentNumber\n ? html`<div class=\"error-message\">${this.errors.documentNumber}</div>`\n : ''\n }</div></div><div class=\"form-group\"><label for=\"bankCode\">Selecciona tu banco</label> <select id=\"bankCode\" class=\"${this.errors.bankCode ? 'error' : ''}\" @change=\"${(e: Event) => this.handleInput('bankCode', e)}\"><option value=\"\">-- Selecciona un banco --</option>${BANKS.map(\n (bank) => html`<option value=\"${bank.code}\" ?selected=\"${this.formData.bankCode === bank.code}\">${bank.name}</option>`,\n )}</select> ${\n this.errors.bankCode\n ? html`<div class=\"error-message\">${this.errors.bankCode}</div>`\n : ''\n }</div><div class=\"form-group\"><label for=\"email\">Email</label> <input id=\"email\" type=\"email\" placeholder=\"ejemplo@correo.com\" class=\"${this.errors.email ? 'error' : ''}\" @input=\"${(e: Event) => this.handleInput('email', e)}\" autocomplete=\"email\"> ${\n this.errors.email\n ? html`<div class=\"error-message\">${this.errors.email}</div>`\n : ''\n }</div><button type=\"submit\">Continuar al banco</button></form>`;\n }\n}\n","import type { PaymentSubmitPayload } from '@bloque/payments-core';\nimport { css, html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport './card-payment-form';\nimport './cash-payment-form';\nimport './payment-method-selector';\nimport './pse-payment-form';\nimport type {\n AppearanceConfig,\n CheckoutConfig,\n PaymentMethodType,\n} from './types';\n\nexport class BloqueCheckout extends LitElement {\n @state()\n private selectedMethod: PaymentMethodType | null = null;\n\n @state()\n private isLoading = false;\n\n @state()\n private error: string | null = null;\n\n @property({ type: Object })\n config: CheckoutConfig | null = null;\n\n @property({ type: Object })\n appearance: AppearanceConfig | null = null;\n\n @property({ type: Number })\n amount: number | null = null;\n\n @property({ type: Array })\n availableMethods: PaymentMethodType[] = ['card', 'pse', 'cash'];\n\n @property({ type: Boolean })\n requireEmail = true;\n\n @property({ type: Boolean })\n showMethodSelector = true;\n\n @property({ attribute: false })\n onSubmit?: (payload: PaymentSubmitPayload) => Promise<void>;\n\n private get effectiveAvailableMethods(): PaymentMethodType[] {\n return this.config?.payment_methods || this.availableMethods;\n }\n\n private get effectivePrimaryColor(): string {\n return this.appearance?.primaryColor || '#4f46e5';\n }\n\n private get effectiveBorderRadius(): string {\n return this.appearance?.borderRadius || '8px';\n }\n\n private get effectiveFontFamily(): string {\n return (\n this.appearance?.fontFamily ||\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif\"\n );\n }\n\n override connectedCallback() {\n super.connectedCallback();\n if (this.effectiveAvailableMethods.length === 1) {\n this.selectedMethod = this.effectiveAvailableMethods[0];\n }\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n if (\n changedProperties.has('availableMethods') ||\n changedProperties.has('config')\n ) {\n if (this.effectiveAvailableMethods.length === 1) {\n this.selectedMethod = this.effectiveAvailableMethods[0];\n }\n }\n }\n\n static styles = css`:host{display:block;font-family:var(\n --bloque-font-family,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n sans-serif\n )}.checkout-container{max-width:600px;margin:0 auto}.section{margin-bottom:32px}.section-title{font-size:18px;font-weight:600;color:#374151;margin-bottom:16px}.form-container{margin-top:24px;padding-top:24px;border-top:2px solid #e5e7eb;animation:fadeIn .3s ease-in}@keyframes fadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.back-button{background:0 0;border:none;color:#6b7280;cursor:pointer;padding:8px 0;font-size:14px;display:flex;align-items:center;gap:4px;margin-bottom:16px;transition:color .2s ease}.back-button:hover{color:#4f46e5}.error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;margin-bottom:16px;color:#991b1b;font-size:14px;display:flex;align-items:center;gap:8px}.loading-overlay{position:absolute;inset:0;background:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:8px}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-wrapper{position:relative}`;\n\n private handleMethodSelected(e: CustomEvent) {\n this.selectedMethod = e.detail.method;\n this.error = null;\n }\n\n private async handlePaymentSubmitted(e: CustomEvent) {\n const { data, type } = e.detail;\n\n this.error = null;\n this.isLoading = true;\n\n try {\n // Si hay una función onSubmit, ejecutarla\n if (this.onSubmit) {\n await this.onSubmit({ data, type });\n }\n\n // Emitir evento de éxito para compatibilidad\n this.dispatchEvent(\n new CustomEvent('payment-success', {\n detail: { data, type },\n bubbles: true,\n composed: true,\n }),\n );\n } catch (error) {\n this.error =\n error instanceof Error\n ? error.message\n : 'Payment failed. Please try again.';\n\n // Emitir evento de error\n this.dispatchEvent(\n new CustomEvent('payment-error', {\n detail: { data, type, error: this.error },\n bubbles: true,\n composed: true,\n }),\n );\n } finally {\n this.isLoading = false;\n }\n }\n\n render() {\n // Apply dynamic styles\n const style = `\n --bloque-primary-color: ${this.effectivePrimaryColor};\n --bloque-border-radius: ${this.effectiveBorderRadius};\n --bloque-font-family: ${this.effectiveFontFamily};\n `;\n\n return html`<div class=\"checkout-container\" style=\"${style}\">${\n this.showMethodSelector && this.effectiveAvailableMethods.length > 1\n ? html`<div class=\"section\"><div class=\"section-title\">Selecciona tu método de pago</div><payment-method-selector .availableMethods=\"${this.effectiveAvailableMethods}\" .selectedMethod=\"${this.selectedMethod}\" @method-selected=\"${this.handleMethodSelected}\"></payment-method-selector></div>`\n : ''\n } ${\n this.selectedMethod\n ? html`<div class=\"form-container\">${\n this.error\n ? html`<div class=\"error-banner\"><span>⚠️</span> <span>${this.error}</span></div>`\n : ''\n }<div class=\"section-title\">Completa la información de pago</div><div class=\"form-wrapper\">${\n this.isLoading\n ? html`<div class=\"loading-overlay\"><div class=\"spinner\"></div></div>`\n : ''\n } ${\n this.selectedMethod === 'card'\n ? html`<card-payment-form .requireEmail=\"${this.requireEmail}\" @payment-submitted=\"${this.handlePaymentSubmitted}\"></card-payment-form>`\n : this.selectedMethod === 'pse'\n ? html`<pse-payment-form @payment-submitted=\"${this.handlePaymentSubmitted}\"></pse-payment-form>`\n : html`<cash-payment-form @payment-submitted=\"${this.handlePaymentSubmitted}\"></cash-payment-form>`\n }</div></div>`\n : ''\n }</div>`;\n }\n}\n","import { BloqueCheckout } from './bloque-checkout';\nimport { CardPaymentForm } from './card-payment-form';\nimport { CashPaymentForm } from './cash-payment-form';\nimport { PaymentMethodSelector } from './payment-method-selector';\nimport { PSEPaymentForm } from './pse-payment-form';\n\ncustomElements.define('bloque-checkout', BloqueCheckout);\ncustomElements.define('payment-method-selector', PaymentMethodSelector);\ncustomElements.define('card-payment-form', CardPaymentForm);\ncustomElements.define('pse-payment-form', PSEPaymentForm);\ncustomElements.define('cash-payment-form', CashPaymentForm);\n\nexport type { PaymentSubmitPayload } from '@bloque/payments-core';\nexport { BloqueCheckout } from './bloque-checkout';\nexport type {\n AppearanceConfig,\n CheckoutConfig,\n PaymentMethodType,\n} from './types';\n"],"names":["Object","globalThis","Document","CSSStyleSheet","Symbol","WeakMap","Error","o","t","Boolean","Array","JSON","Number","String","HTMLElement","Map","litPropertyMetadata","Set","Promise","document","Math","RegExp","P","N","a","d","H","I","L","k","M","l","R","z","arguments","r","i","CardPaymentForm","e","Date","CustomEvent","CashPaymentForm","PAYMENT_METHODS","PaymentMethodSelector","PSEPaymentForm","BloqueCheckout","customElements","m"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import type { PaymentMethodType } from './types';
|
|
3
|
+
export declare class PaymentMethodSelector extends LitElement {
|
|
4
|
+
selectedMethod: PaymentMethodType | null;
|
|
5
|
+
availableMethods: PaymentMethodType[];
|
|
6
|
+
static styles: import("lit").CSSResult;
|
|
7
|
+
private handleMethodSelect;
|
|
8
|
+
private getMethodIcon;
|
|
9
|
+
render(): import("lit").TemplateResult<1>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=payment-method-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-method-selector.d.ts","sourceRoot":"","sources":["../src/payment-method-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD,qBAAa,qBAAsB,SAAQ,UAAU;IAEnD,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAGhD,gBAAgB,EAAE,iBAAiB,EAAE,CAA2B;IAEhE,MAAM,CAAC,MAAM,0BAgGX;IAEF,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,aAAa;IASrB,MAAM;CAkCP"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class PSEPaymentForm extends LitElement {
|
|
3
|
+
private formData;
|
|
4
|
+
private errors;
|
|
5
|
+
static styles: import("lit").CSSResult;
|
|
6
|
+
private handlePersonTypeChange;
|
|
7
|
+
private handleInput;
|
|
8
|
+
private handleDocumentNumberInput;
|
|
9
|
+
private validateField;
|
|
10
|
+
private validateForm;
|
|
11
|
+
private handleSubmit;
|
|
12
|
+
render(): import("lit").TemplateResult<1>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=pse-payment-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pse-payment-form.d.ts","sourceRoot":"","sources":["../src/pse-payment-form.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAiC5C,qBAAa,cAAe,SAAQ,UAAU;IAE5C,OAAO,CAAC,QAAQ,CAMd;IAGF,OAAO,CAAC,MAAM,CAAyD;IAEvE,MAAM,CAAC,MAAM,0BAyHX;IAEF,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,YAAY;IAiBpB,MAAM;CA0HP"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type PaymentMethodType = 'card' | 'pse' | 'cash';
|
|
2
|
+
export interface PaymentMethod {
|
|
3
|
+
type: PaymentMethodType;
|
|
4
|
+
label: string;
|
|
5
|
+
description: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const PAYMENT_METHODS: Record<PaymentMethodType, PaymentMethod>;
|
|
9
|
+
export interface CheckoutConfig {
|
|
10
|
+
payment_methods?: PaymentMethodType[];
|
|
11
|
+
amount?: number;
|
|
12
|
+
currency?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface AppearanceConfig {
|
|
15
|
+
primaryColor?: string;
|
|
16
|
+
borderRadius?: string;
|
|
17
|
+
fontFamily?: string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAgBpE,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bloque/payments-elements",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Framework-agnostic Web Components for embedding payment checkouts.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"payments",
|
|
8
|
+
"checkout",
|
|
9
|
+
"web-components",
|
|
10
|
+
"custom-elements",
|
|
11
|
+
"ui-components",
|
|
12
|
+
"embed"
|
|
13
|
+
],
|
|
14
|
+
"author": "Nestor Cortina <nexckycort@gmail.com>",
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public",
|
|
18
|
+
"provenance": true
|
|
19
|
+
},
|
|
20
|
+
"sideEffects": true,
|
|
21
|
+
"homepage": "git+https://github.com/bloque-app/payments.git#readme",
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/bloque-app/payments.git",
|
|
25
|
+
"directory": "packages/payments-elements"
|
|
26
|
+
},
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"import": "./dist/index.js",
|
|
31
|
+
"default": "./dist/index.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"main": "./dist/index.js",
|
|
35
|
+
"module": "./dist/index.js",
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"files": [
|
|
38
|
+
"dist"
|
|
39
|
+
],
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=22"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "NODE_ENV=production rspack build && tsc --project tsconfig.build.json",
|
|
45
|
+
"build:watch": "NODE_ENV=development rspack build --watch",
|
|
46
|
+
"clean": "rm -rf node_modules && rm -rf dist",
|
|
47
|
+
"check": "biome check --write",
|
|
48
|
+
"typecheck": "tsgo --noEmit",
|
|
49
|
+
"types": "tsc --project tsconfig.build.json"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@bloque/payments-core": "workspace:*",
|
|
53
|
+
"lit": "^3.3.1"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@rspack/cli": "^1.6.7",
|
|
57
|
+
"@rspack/core": "^1.6.7",
|
|
58
|
+
"@typescript/native-preview": "catalog:",
|
|
59
|
+
"minify-html-literals-loader": "^1.1.1",
|
|
60
|
+
"typescript": "catalog:"
|
|
61
|
+
}
|
|
62
|
+
}
|