@basis-theory/web-elements 3.0.0-beta.3 → 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/.vite/manifest.json +19 -8
  2. package/dist/api-client/src/api-client.d.ts.map +1 -1
  3. package/dist/api-client/src/bin-lookup-transform.d.ts +35 -0
  4. package/dist/api-client/src/bin-lookup-transform.d.ts.map +1 -0
  5. package/dist/api-client/src/http-client.d.ts.map +1 -1
  6. package/dist/api-client/src/index.d.ts +1 -1
  7. package/dist/api-client/src/index.d.ts.map +1 -1
  8. package/dist/api-client/src/types.d.ts +114 -6
  9. package/dist/api-client/src/types.d.ts.map +1 -1
  10. package/dist/basis-theory-sdk.es.js +1 -1
  11. package/dist/basis-theory-sdk.umd.js +1 -1
  12. package/dist/basis-theory-sdk.umd.js.map +1 -1
  13. package/dist/{create-card-DipDWgph.js → create-card-B5zEHyRg.js} +49 -15
  14. package/dist/create-card-B5zEHyRg.js.map +1 -0
  15. package/dist/create-copy-button-DrAz8g0m.js +233 -0
  16. package/dist/create-copy-button-DrAz8g0m.js.map +1 -0
  17. package/dist/{index-BBfuUaLw.js → index-BOedIhUN.js} +406 -54
  18. package/dist/index-BOedIhUN.js.map +1 -0
  19. package/dist/loader/basis-theory.min.js +1 -1
  20. package/dist/postmessage/src/client.d.ts.map +1 -1
  21. package/dist/postmessage/src/event-map.d.ts +4 -0
  22. package/dist/postmessage/src/event-map.d.ts.map +1 -1
  23. package/dist/postmessage/src/server.d.ts.map +1 -1
  24. package/dist/postmessage/src/types.d.ts +7 -3
  25. package/dist/postmessage/src/types.d.ts.map +1 -1
  26. package/dist/shared/src/index.d.ts +1 -0
  27. package/dist/shared/src/index.d.ts.map +1 -1
  28. package/dist/shared/src/proxy-validation.d.ts +93 -0
  29. package/dist/shared/src/proxy-validation.d.ts.map +1 -0
  30. package/dist/sri.json +9 -9
  31. package/dist/stats.html +1 -1
  32. package/dist/web-elements/src/BasisTheory.d.ts +1 -1
  33. package/dist/web-elements/src/BasisTheory.d.ts.map +1 -1
  34. package/dist/web-elements/src/basis-theory.d.ts +23 -0
  35. package/dist/web-elements/src/basis-theory.d.ts.map +1 -1
  36. package/dist/web-elements/src/elements/create-card-number.d.ts +2 -1
  37. package/dist/web-elements/src/elements/create-card-number.d.ts.map +1 -1
  38. package/dist/web-elements/src/elements/create-card.d.ts +14 -1
  39. package/dist/web-elements/src/elements/create-card.d.ts.map +1 -1
  40. package/dist/web-elements/src/elements/create-copy-button.d.ts +19 -0
  41. package/dist/web-elements/src/elements/create-copy-button.d.ts.map +1 -0
  42. package/dist/web-elements/src/elements/create-cvv.d.ts +2 -1
  43. package/dist/web-elements/src/elements/create-cvv.d.ts.map +1 -1
  44. package/dist/web-elements/src/elements/create-expiry.d.ts +2 -1
  45. package/dist/web-elements/src/elements/create-expiry.d.ts.map +1 -1
  46. package/dist/web-elements/src/elements/create-text.d.ts +2 -1
  47. package/dist/web-elements/src/elements/create-text.d.ts.map +1 -1
  48. package/dist/web-elements/src/index.d.ts +1 -1
  49. package/dist/web-elements/src/index.d.ts.map +1 -1
  50. package/dist/web-elements/src/types/events.d.ts +30 -2
  51. package/dist/web-elements/src/types/events.d.ts.map +1 -1
  52. package/dist/web-elements/src/types.d.ts +135 -5
  53. package/dist/web-elements/src/types.d.ts.map +1 -1
  54. package/dist/web-elements/src/utils/create-event-dispatcher.d.ts.map +1 -1
  55. package/dist/web-elements/src/utils/validate-element-options.d.ts.map +1 -1
  56. package/package.json +5 -5
  57. package/dist/create-card-DipDWgph.js.map +0 -1
  58. package/dist/index-BBfuUaLw.js.map +0 -1
@@ -131,7 +131,7 @@ export interface SDKConfig {
131
131
  };
132
132
  }
133
133
  export type { ElementType } from './types/events';
134
- export type EventType = 'change' | 'ready' | 'focus' | 'blur' | 'error';
134
+ export type EventType = 'change' | 'ready' | 'networkChanged' | 'focus' | 'blur' | 'error' | 'copy';
135
135
  export interface ElementOptions {
136
136
  /**
137
137
  * Placeholder text displayed when input is empty.
@@ -253,6 +253,25 @@ export interface ElementOptions {
253
253
  * Only applicable to card elements
254
254
  */
255
255
  cardBrands?: string[];
256
+ /**
257
+ * Enable BIN enrichment (6-digit) for the card number field (standalone or unified card).
258
+ * When true, co-badge networks are detected and `selectedNetwork` is available when applicable.
259
+ * If omitted but `coBadge` is set, BIN enrichment is enabled automatically unless explicitly
260
+ * disabled here (`false` or `{ enabled: false }`).
261
+ */
262
+ binLookup?: boolean | {
263
+ enabled?: boolean;
264
+ debounceMs?: number;
265
+ };
266
+ /**
267
+ * Co-badge: network priority and optional in-iframe network selector (manual mode).
268
+ * Implies BIN enrichment when set; you do not need to pass `binLookup` unless you want to
269
+ * tune `debounceMs` or opt out with `binLookup: false`.
270
+ */
271
+ coBadge?: {
272
+ preferredNetworks?: string[];
273
+ mode?: 'auto' | 'manual';
274
+ };
256
275
  }
257
276
  export interface Element {
258
277
  /**
@@ -299,13 +318,17 @@ export interface Element {
299
318
  * @returns Unsubscribe function
300
319
  */
301
320
  on(eventType: EventType, listener: EventListener): () => void;
321
+ /**
322
+ * Override selected payment network for co-badge cards (card number element only)
323
+ */
324
+ setNetwork?(network: string): Promise<void>;
302
325
  }
303
326
  export type EventListener = (event: CustomEvent) => void;
304
327
  /**
305
328
  * Re-export unified event types from ./types/events
306
329
  * All events now include BaseEventDetail (elementType, elementId, timestamp)
307
330
  */
308
- export type { BaseEventDetail, BlurEventDetail, CardElementChangeEventDetail, CardNumberChangeEventDetail, ChangeEventDetail, ElementEventDetailMap, ElementEventListener, ElementEventType, ErrorCode, ErrorEventDetail, FocusEventDetail, ReadyEventDetail, ValidationError, } from './types/events';
331
+ export type { BaseEventDetail, BlurEventDetail, CardElementChangeEventDetail, CardNumberChangeEventDetail, ChangeEventDetail, CopyEventDetail, ElementEventDetailMap, ElementEventListener, ElementEventType, ErrorCode, ErrorEventDetail, FocusEventDetail, NetworkChangedEventDetail, ReadyEventDetail, ValidationError, } from './types/events';
309
332
  /** Primitive or an Element reference — resolved to a value during tokenization */
310
333
  export type ElementLeaf = string | number | boolean | null | undefined | Element;
311
334
  /** Freeform object that may contain Element references at any depth */
@@ -372,6 +395,28 @@ export interface EncryptedToken {
372
395
  encrypted: string;
373
396
  type: string;
374
397
  }
398
+ /**
399
+ * Options for {@link BasisTheorySDK.proxy} — HTTP verb is chosen by the method name.
400
+ */
401
+ export interface ProxyRequestOptions {
402
+ /** Destination URL (ephemeral proxy). Mutually exclusive with `proxyKey`. */
403
+ url?: string;
404
+ /** Pre-configured proxy key. Mutually exclusive with `url`. */
405
+ proxyKey?: string;
406
+ /** Headers forwarded to the destination request */
407
+ headers?: Record<string, string>;
408
+ /** Request body; may contain Element references */
409
+ body?: ElementInputObject | unknown;
410
+ /** When true, the API may return response metadata alongside data */
411
+ includeResponseHeaders?: boolean;
412
+ }
413
+ /**
414
+ * Proxy result when `includeResponseHeaders` is true (matches common API envelope).
415
+ */
416
+ export interface ProxyResponse {
417
+ data: unknown;
418
+ headers: Record<string, string>;
419
+ }
375
420
  /**
376
421
  * Sub-element reference for tokenization (used in CardElement)
377
422
  */
@@ -398,14 +443,69 @@ export interface CardElement extends Element {
398
443
  };
399
444
  }
400
445
  export type { CardElementOptions } from './elements/create-card';
446
+ /**
447
+ * Options specific to the CopyButton element
448
+ *
449
+ * SECURITY NOTE: This element is opt-in only via allowClipboard: true.
450
+ * Clipboard access for raw card data may not be PCI compliant and must
451
+ * never be enabled inadvertently.
452
+ */
453
+ export interface CopyButtonOptions {
454
+ /**
455
+ * REQUIRED: Explicitly opt-in to clipboard access
456
+ * Must be set to true - throws ConfigurationError if missing
457
+ *
458
+ * @security This flag exists because clipboard access for raw card data
459
+ * may not be PCI compliant and must never be enabled inadvertently.
460
+ */
461
+ allowClipboard: true;
462
+ /**
463
+ * Static string value to copy when clicked
464
+ * Overridden by setValueRef() if called
465
+ */
466
+ value?: string;
467
+ /**
468
+ * Label text displayed on the button
469
+ * @default 'Copy'
470
+ */
471
+ text?: string;
472
+ /**
473
+ * Disable the button
474
+ * @default false
475
+ */
476
+ disabled?: boolean;
477
+ }
478
+ /**
479
+ * CopyButton element with setValueRef method
480
+ */
481
+ export interface CopyButtonElement extends Element {
482
+ /**
483
+ * Link this copy button to another element's value
484
+ * When clicked, copies the linked element's current value
485
+ *
486
+ * @param element - The element to link to (e.g., cardNumber, text)
487
+ *
488
+ * @example
489
+ * ```typescript
490
+ * const cardNumber = bt.createElement('cardNumber');
491
+ * const copyBtn = bt.createElement('copyButton', { allowClipboard: true });
492
+ *
493
+ * copyBtn.setValueRef(cardNumber);
494
+ *
495
+ * // Now clicking copyBtn will copy the card number value
496
+ * ```
497
+ */
498
+ setValueRef(element: Element): Promise<void>;
499
+ }
401
500
  export interface BasisTheorySDK {
402
501
  /**
403
502
  * Create a new element instance
404
503
  * Returns Element instance immediately (synchronous)
405
504
  */
406
505
  createElement(type: 'card', options?: ElementOptions): CardElement;
407
- createElement(type: Exclude<ElementType, 'card'>, options?: ElementOptions): Element;
408
- createElement(type: ElementType, options?: ElementOptions): Element | CardElement;
506
+ createElement(type: 'copyButton', options: CopyButtonOptions): CopyButtonElement;
507
+ createElement(type: Exclude<ElementType, 'card' | 'copyButton'>, options?: ElementOptions): Element;
508
+ createElement(type: ElementType, options?: ElementOptions | CopyButtonOptions): Element | CardElement | CopyButtonElement;
409
509
  /**
410
510
  * Tokenize data (creates a token)
411
511
  */
@@ -501,6 +601,31 @@ export interface BasisTheorySDK {
501
601
  sessions: {
502
602
  create(): Promise<Session>;
503
603
  };
604
+ /**
605
+ * Proxy HTTP requests through Basis Theory (Element references in `body` are resolved in the coordinator).
606
+ */
607
+ proxy: {
608
+ get(options: ProxyRequestOptions & {
609
+ includeResponseHeaders: true;
610
+ }): Promise<ProxyResponse>;
611
+ get(options?: ProxyRequestOptions): Promise<unknown>;
612
+ post(options: ProxyRequestOptions & {
613
+ includeResponseHeaders: true;
614
+ }): Promise<ProxyResponse>;
615
+ post(options?: ProxyRequestOptions): Promise<unknown>;
616
+ put(options: ProxyRequestOptions & {
617
+ includeResponseHeaders: true;
618
+ }): Promise<ProxyResponse>;
619
+ put(options?: ProxyRequestOptions): Promise<unknown>;
620
+ patch(options: ProxyRequestOptions & {
621
+ includeResponseHeaders: true;
622
+ }): Promise<ProxyResponse>;
623
+ patch(options?: ProxyRequestOptions): Promise<unknown>;
624
+ delete(options: ProxyRequestOptions & {
625
+ includeResponseHeaders: true;
626
+ }): Promise<ProxyResponse>;
627
+ delete(options?: ProxyRequestOptions): Promise<unknown>;
628
+ };
504
629
  /**
505
630
  * Update the theme mode for all mounted elements
506
631
  *
@@ -520,7 +645,7 @@ export interface BasisTheorySDK {
520
645
  * mount() calls this function to trigger initialization when needed
521
646
  */
522
647
  export interface ElementFactory {
523
- (apiKey: string, config: SDKConfig, options: ElementOptions | undefined, elementId: string, ensureCoordinatorReady: () => Promise<void>): Element;
648
+ (apiKey: string, config: SDKConfig, options: ElementOptions | CopyButtonOptions | undefined, elementId: string, ensureCoordinatorReady: () => Promise<void>): Element;
524
649
  }
525
650
  export interface MountConfig {
526
651
  timeoutMs: number;
@@ -533,5 +658,10 @@ export interface IframeConfig {
533
658
  src: string;
534
659
  sandbox: string;
535
660
  title: string;
661
+ /**
662
+ * Feature policy/permissions for the iframe (e.g., 'clipboard-write', 'payment *')
663
+ * @default 'payment *'
664
+ */
665
+ allow?: string;
536
666
  }
537
667
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-event-dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/utils/create-event-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAKV,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,UAAU,qBAAqB;IAC7B,mBAAmB;IACnB,WAAW,EAAE,WAAW,CAAC;IAEzB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAElB,0DAA0D;IAC1D,MAAM,EAAE,iBAAiB,CAAC;IAE1B,6CAA6C;IAC7C,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,qBAAqB;;0BA0GzD,SAAS,WACN,MAAM,UACP,KAAK,KACZ,IAAI;CAeR,CAAC"}
1
+ {"version":3,"file":"create-event-dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/utils/create-event-dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAKV,SAAS,EAEV,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,UAAU,qBAAqB;IAC7B,mBAAmB;IACnB,WAAW,EAAE,WAAW,CAAC;IAEzB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAElB,0DAA0D;IAC1D,MAAM,EAAE,iBAAiB,CAAC;IAE1B,6CAA6C;IAC7C,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,qBAAqB;;0BA4IzD,SAAS,WACN,MAAM,UACP,KAAK,KACZ,IAAI;CAeR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-element-options.d.ts","sourceRoot":"","sources":["../../../../src/utils/validate-element-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAmC5D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,WAAW,EACjB,UAAS,cAAmB,KAC3B,IAsGF,CAAC"}
1
+ {"version":3,"file":"validate-element-options.d.ts","sourceRoot":"","sources":["../../../../src/utils/validate-element-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAqB,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA2C/E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,WAAW,EACjB,UAAS,cAAmB,KAC3B,IAkHF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basis-theory/web-elements",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.4",
4
4
  "description": "Secure, PCI-compliant elements for creating payment input forms",
5
5
  "type": "module",
6
6
  "main": "./dist/basis-theory-sdk.umd.js",
@@ -48,10 +48,10 @@
48
48
  "directory": "packages/web-elements"
49
49
  },
50
50
  "dependencies": {
51
- "@basis-theory-elements/api-client": "3.0.0-beta.2",
52
- "@basis-theory-elements/postmessage": "3.0.0-beta.2",
53
- "@basis-theory-elements/shared": "3.0.0-beta.2",
54
- "@basis-theory-elements/validation": "3.0.0-beta.2"
51
+ "@basis-theory-elements/api-client": "3.0.0-beta.4",
52
+ "@basis-theory-elements/postmessage": "3.0.0-beta.4",
53
+ "@basis-theory-elements/shared": "3.0.0-beta.4",
54
+ "@basis-theory-elements/validation": "3.0.0-beta.4"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/node": "^20.0.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-card-DipDWgph.js","sources":["../src/elements/create-card.ts"],"sourcesContent":["/**\n * Card Element Factory (Unified)\n */\n\nimport type { PostMessageClient } from '@basis-theory-elements/postmessage';\nimport { createPostMessageClient } from '@basis-theory-elements/postmessage';\nimport { ElementError, log } from '@basis-theory-elements/shared';\nimport { createMounter } from '../mounter/create-mounter';\nimport type {\n CardElement,\n ElementMounter,\n ElementOptions,\n EventListener,\n EventType,\n SDKConfig,\n SubElementRef,\n} from '../types';\nimport { createIframe } from '../utils/create-iframe';\nimport { createEventDispatcher } from '../utils/create-event-dispatcher';\n\n/**\n * Default stack threshold in pixels for CardElement auto-layout\n * When container width is below this threshold, card inputs stack vertically\n */\nconst DEFAULT_CARD_STACK_THRESHOLD = 400;\n\n/**\n * Card element options\n */\nexport interface CardElementOptions {\n /** CSS styling */\n style?: Record<string, any>;\n\n /** Placeholder text for each sub-field */\n placeholder?: {\n cardNumber?: string;\n expiryDate?: string;\n cvc?: string;\n };\n\n /** Accessibility label */\n ariaLabel?: string;\n\n /** Disabled state (applies to all 3 sub-fields) */\n disabled?: boolean;\n\n /** Read-only state (applies to all 3 sub-fields) */\n readOnly?: boolean;\n\n /** Layout mode */\n layout?: 'row' | 'column' | 'auto';\n\n /** Stack threshold in pixels (only applies when layout: 'auto') */\n stackAt?: number;\n\n /** Icon position */\n iconPosition?: 'left' | 'right' | 'none';\n\n /** Restrict accepted card brands */\n cardBrands?: string[];\n}\n\n/**\n * Factory function to create a unified card element\n * No class, pure functional approach with closure-based state\n */\nexport const createCardElement = (\n apiKey: string,\n sdkConfig: SDKConfig,\n options: CardElementOptions = {},\n coordinatorElementId: string,\n ensureCoordinatorReady: () => Promise<void>\n): CardElement => {\n // Private state (closure)\n let iframe: HTMLIFrameElement | null = null;\n let client: PostMessageClient | null = null;\n let mounter: ElementMounter | null = null;\n let isMounted = false;\n let container: HTMLElement | null = null;\n let eventDispatcher: ReturnType<typeof createEventDispatcher> | null = null;\n\n // Event target for event emission\n const eventTarget = new EventTarget();\n\n // Use coordinator-generated ID for all references\n const id = coordinatorElementId;\n const type = 'card';\n\n // Setup event dispatcher\n const setupEventListeners = () => {\n if (!client) {\n return;\n }\n\n eventDispatcher = createEventDispatcher({\n elementType: type,\n elementId: id,\n client,\n eventTarget,\n });\n\n eventDispatcher.setupSubscriptions();\n };\n\n /**\n * Create sub-element reference for tokenization\n * These refs are used in bt.tokens.create() data payload\n */\n const createSubElementRef = (subId: string): SubElementRef => ({\n id: subId,\n type: 'card',\n get mounted() {\n return isMounted;\n },\n mount: () => {\n throw ElementError('Sub-field refs cannot be mounted independently');\n },\n unmount: () => {},\n update: () => Promise.resolve(),\n focus: () => {},\n blur: () => {},\n clear: () => {},\n on: () => () => {},\n });\n\n // Public API (Element interface with sub-field refs)\n const cardElement = {\n id,\n type,\n get mounted() {\n return isMounted;\n },\n\n // Sub-field references for tokenization\n fields: {\n number: createSubElementRef(`${id}__number`),\n expiryDate: createSubElementRef(`${id}__expiry`),\n cvc: createSubElementRef(`${id}__cvc`),\n },\n\n mount: async (selector: string | HTMLElement) => {\n if (isMounted) {\n throw ElementError('Element is already mounted');\n }\n\n // Resolve container\n container =\n typeof selector === 'string'\n ? document.querySelector(selector)\n : selector;\n\n if (!container) {\n throw ElementError(`Container not found: ${selector}`);\n }\n\n // Create iframe\n const parentOrigin = window.location.origin;\n const iframeUrl = new URL(`${sdkConfig.elementsBaseUrl}/card.html`);\n iframeUrl.searchParams.set('parentOrigin', parentOrigin);\n iframeUrl.searchParams.set('elementId', id);\n iframeUrl.searchParams.set(\n 'measurePerformance',\n String(sdkConfig.measurePerformance || false)\n );\n iframeUrl.searchParams.set('debug', String(sdkConfig.debug || false));\n\n iframe = createIframe({\n src: iframeUrl.toString(),\n sandbox: 'allow-scripts allow-same-origin',\n title: options.ariaLabel || 'Card Input',\n });\n\n // Add element ID and theme mode attributes\n iframe.setAttribute('data-bt-element-id', id);\n iframe.setAttribute('data-theme-mode', sdkConfig.themeMode || 'auto');\n\n // Create PostMessage client\n client = createPostMessageClient(iframe, {\n targetOrigin: sdkConfig.iframeOrigin,\n timeout: sdkConfig.timeoutMs,\n retries: sdkConfig.retryConfig.maxRetries,\n debug: sdkConfig.debug,\n });\n\n // Create mounter\n mounter = createMounter();\n\n // Set up event listeners\n setupEventListeners();\n\n // Subscribe to 'ready' event BEFORE mounting iframe\n const readyPromise = new Promise<void>((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(\n ElementError(\n `Iframe EVENT_READY not received within ${sdkConfig.timeoutMs}ms`,\n id,\n { elementType: type, timeoutMs: sdkConfig.timeoutMs }\n )\n );\n }, sdkConfig.timeoutMs);\n\n const handleReady = () => {\n clearTimeout(timeout);\n resolve();\n };\n\n eventTarget.addEventListener('ready', handleReady, { once: true });\n });\n\n // Mount iframe to DOM (synchronous)\n mounter.mount(container, iframe, {\n timeoutMs: sdkConfig.timeoutMs,\n });\n\n isMounted = true;\n\n // Wait for coordinator + configuration to complete\n try {\n // Wait for coordinator (loads Core SDK if needed)\n await ensureCoordinatorReady();\n\n // Wait for EVENT_READY\n await readyPromise;\n\n // Send initial configuration with card-specific options\n await client!.sendRequest('CMD_SET_CONFIG', {\n elementId: id,\n apiKey,\n apiTimeout: sdkConfig.timeoutMs,\n apiRetries: sdkConfig.retryConfig.maxRetries,\n theme: sdkConfig.theme,\n darkTheme: sdkConfig.darkTheme,\n themeMode: sdkConfig.themeMode,\n placeholder: options.placeholder,\n style: options.style,\n disabled: options.disabled,\n readOnly: options.readOnly,\n layout: options.layout || 'auto',\n stackAt: options.stackAt || DEFAULT_CARD_STACK_THRESHOLD,\n iconPosition: options.iconPosition || 'left',\n cardBrands: options.cardBrands,\n debug: sdkConfig.debug,\n });\n\n // Reveal iframe now that theme is fully applied\n if (iframe) iframe.style.opacity = '1';\n } catch (error) {\n // Dispatch error event before cleanup\n if (eventDispatcher) {\n eventDispatcher.dispatchError(\n 'MOUNT_ERROR',\n (error as Error).message,\n error as Error\n );\n }\n\n // Mount failed - clean up and mark as unmounted\n isMounted = false;\n\n if (client) {\n client.destroy();\n client = null;\n }\n\n if (mounter && iframe) {\n mounter.unmount(iframe);\n iframe = null;\n mounter = null;\n }\n\n eventDispatcher = null;\n container = null;\n\n throw error;\n }\n },\n\n unmount: () => {\n if (!isMounted) {\n throw ElementError('Element is not mounted');\n }\n\n // Tell iframe to notify coordinator to clear cached values (all 3 sub-fields)\n if (client) {\n client.sendRequest('CMD_CLEAR_CACHE', {}).catch((error) => {\n log('Failed to send clear cache command', {\n elementId: id,\n error: (error as Error).message,\n });\n });\n\n client.destroy();\n client = null;\n }\n\n if (mounter && iframe) {\n mounter.unmount(iframe);\n iframe = null;\n mounter = null;\n }\n\n eventDispatcher = null;\n container = null;\n isMounted = false;\n },\n\n update: async (newOptions: Partial<ElementOptions> & { themeMode?: string }) => {\n if (!isMounted || !client) {\n throw ElementError('Element must be mounted before updating');\n }\n\n // Cast to CardElementOptions to access card-specific properties\n const cardOptions = newOptions as Partial<CardElementOptions> & { themeMode?: string };\n\n // Build update payload\n const updatePayload: Record<string, any> = {\n placeholder: cardOptions.placeholder,\n style: cardOptions.style,\n disabled: cardOptions.disabled,\n readOnly: cardOptions.readOnly,\n layout: cardOptions.layout,\n stackAt: cardOptions.stackAt,\n iconPosition: cardOptions.iconPosition,\n cardBrands: cardOptions.cardBrands,\n };\n\n // Include theme mode update if provided\n if (newOptions.themeMode !== undefined) {\n updatePayload.themeMode = newOptions.themeMode;\n updatePayload.theme = sdkConfig.theme;\n updatePayload.darkTheme = sdkConfig.darkTheme;\n }\n\n await client.sendRequest('CMD_UPDATE_CONFIG', updatePayload);\n },\n\n focus: () => {\n if (!isMounted || !client) {\n throw ElementError('Element must be mounted before focusing');\n }\n\n client.sendRequest('CMD_FOCUS', {});\n },\n\n blur: () => {\n if (!isMounted || !client) {\n throw ElementError('Element must be mounted before blurring');\n }\n\n client.sendRequest('CMD_BLUR', {});\n },\n\n clear: () => {\n if (!isMounted || !client) {\n throw ElementError('Element must be mounted before clearing');\n }\n\n client.sendRequest('CMD_CLEAR', {});\n },\n\n on: (eventType: EventType, listener: EventListener) => {\n eventTarget.addEventListener(\n eventType,\n listener as EventListenerOrEventListenerObject\n );\n\n // Return unsubscribe function\n return () =>\n eventTarget.removeEventListener(\n eventType,\n listener as EventListenerOrEventListenerObject\n );\n },\n };\n\n return cardElement as CardElement;\n};\n"],"names":[],"mappings":"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"}