@primer-io/primer-js 1.0.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -83,16 +83,12 @@ This is used to control the CSS-only loader visibility */
83
83
  /** */
84
84
  sdkContextController?: SDKContextController;
85
85
  /** */
86
- sdkStateController?: SdkStateController;
87
- /** */
88
86
  primerEventsController?: PrimerEventsController;
89
87
  /** */
90
88
  styleProcessingController?: StyleProcessingController;
91
89
  /** */
92
90
  vaultManagerController?: VaultManagerController;
93
91
  /** */
94
- achPaymentEventsController?: AchPaymentEventsController;
95
- /** */
96
92
  headlessSdkController?: HeadlessSdkController;
97
93
  };
98
94
 
@@ -154,6 +150,15 @@ export type DialogComponentProps = {
154
150
  "onprimer:dialog-close"?: (e: CustomEvent<CustomEvent>) => void;
155
151
  };
156
152
 
153
+ export type PrimerIconComponentProps = {
154
+ /** */
155
+ color?: string;
156
+ /** */
157
+ size?: "lg" | "md" | "sm";
158
+ /** The name of the icon to draw - available names can be found under library.ts file */
159
+ name?: IconName | undefined;
160
+ };
161
+
157
162
  export type ErrorMessageComponentProps = {
158
163
  /** The error message text to display */
159
164
  message?: string;
@@ -165,15 +170,6 @@ export type ErrorMessageComponentProps = {
165
170
  role?: string;
166
171
  };
167
172
 
168
- export type PrimerIconComponentProps = {
169
- /** */
170
- color?: string;
171
- /** */
172
- size?: "lg" | "md" | "sm";
173
- /** The name of the icon to draw - available names can be found under library.ts file */
174
- name?: IconName | undefined;
175
- };
176
-
177
173
  export type InputComponentProps = {
178
174
  /** */
179
175
  value?: string;
@@ -242,13 +238,6 @@ export type InputWrapperComponentProps = {
242
238
  "has-error"?: boolean;
243
239
  };
244
240
 
245
- export type PortalComponentProps = {
246
- /** */
247
- id?: string;
248
- /** */
249
- oneventName?: (e: CustomEvent<CustomEvent>) => void;
250
- };
251
-
252
241
  export type SelectComponentProps = {
253
242
  /** The name attribute for the select element */
254
243
  name?: string;
@@ -286,32 +275,18 @@ Useful when embedding in inputs */
286
275
  compact?: boolean;
287
276
  };
288
277
 
289
- export type AchPaymentComponentProps = {
290
- /** */
278
+ export type AdyenKlarnaComponentProps = {
279
+ /** The payment method from context */
291
280
  paymentMethod?: InitializedPaymentMethod | undefined;
281
+ /** Whether the component is disabled */
282
+ disabled?: boolean;
292
283
  /** */
293
- paymentManagers?: InitializedManagersMap;
294
- /** */
295
- sdkState?: SdkStateContextType | undefined;
296
- /** */
297
- clientOptions?: ClientOptionsContextType | undefined;
298
- /** */
299
- screen?: "form" | "mandate";
300
- /** */
301
- "onprimer-ach-error"?: (e: CustomEvent<CustomEvent>) => void;
302
- /** */
303
- "onprimer-ach-bank-details-collected"?: (e: CustomEvent<CustomEvent>) => void;
304
- /** */
305
- "onprimer-ach-mandate-confirmed"?: (e: CustomEvent<CustomEvent>) => void;
306
- /** */
307
- "onprimer-ach-mandate-declined"?: (e: CustomEvent<CustomEvent>) => void;
284
+ primerContext?: ContextType | undefined;
308
285
  };
309
286
 
310
287
  export type BillingAddressComponentProps = {
311
- /** Configuration from SDK Core containing checkoutModules configuration */
312
- configuration?: ConfigurationContextType;
313
- /** Headless SDK utilities for API methods like setBillingAddress */
314
- headlessUtils?: HeadlessUtilsContextType;
288
+ /** */
289
+ primerContext?: ContextType | undefined;
315
290
  /** Fired when form data changes */
316
291
  "onprimer-billing-address-change"?: (e: CustomEvent<CustomEvent>) => void;
317
292
  /** Fired when form is submitted */
@@ -323,8 +298,7 @@ export type BlikComponentProps = {
323
298
  paymentMethod?: InitializedPaymentMethod;
324
299
  /** Disables component interaction when true */
325
300
  disabled?: boolean;
326
- /** */
327
- paymentManagers?: InitializedManagersMap;
301
+
328
302
  /** Dispatched on successful payment */
329
303
  "onprimer-payment-success"?: (e: CustomEvent<never>) => void;
330
304
  /** Dispatched on payment error */
@@ -336,16 +310,8 @@ export type CardFormComponentProps = {
336
310
  "hide-labels"?: boolean;
337
311
  /** */
338
312
  disabled?: boolean;
339
- /** Payment managers injected from context */
340
- paymentManagers?: InitializedManagersMap;
341
- /** Client options for configuration */
342
- clientOptions?: ClientOptionsContextType;
343
- /** Headless utils for accessing server configuration */
344
- headlessUtils?: HeadlessUtilsContextType;
345
- /** Analytics utils for sending analytics events */
346
- analyticsUtils?: AnalyticsContextType;
347
- /** Events controller from context for receiving forwarded events */
348
- contextEventsController?: EventsContextType;
313
+ /** */
314
+ primerContext?: ContextType | undefined;
349
315
  /** Determines whether to show the cardholder name field
350
316
  Uses client configuration with fallback to default (true) */
351
317
  shouldShowCardholderName?: boolean;
@@ -354,48 +320,54 @@ Uses client configuration with fallback to default (false) */
354
320
  shouldRequireCardholderName?: boolean;
355
321
  };
356
322
 
357
- export type DynamicPaymentComponentProps = {
358
- /** */
359
- paymentMethod?: InitializedPaymentMethod | undefined;
360
- /** */
361
- paymentManagers?: InitializedManagersMap;
362
- /** */
363
- sdkState?: SdkStateContextType;
364
- /** */
365
- headlessUtils?: HeadlessUtilsContextType;
366
- /** */
367
- open?: boolean;
368
- };
369
-
370
323
  export type ErrorMessageContainerComponentProps = {
371
324
  /** */
372
325
  "show-processing-errors"?: boolean;
326
+ /** Consume the unified context
327
+ This automatically subscribes to changes in the SDK state */
328
+ primerContext?: ContextType | undefined;
373
329
  };
374
330
 
375
331
  export type PrimerKlarnaComponentProps = {
376
332
  /** */
377
- paymentManagers?: InitializedManagersMap;
333
+ disabled?: boolean;
334
+ /** */
335
+ primerContext?: ContextType | undefined;
336
+ };
337
+
338
+ export type PaymentMethodComponentProps = {
339
+ /** */
340
+ type?: PaymentMethodType | undefined;
378
341
  /** */
379
- sdkState?: SdkStateContextType;
342
+ disabled?: boolean;
380
343
  /** */
381
- headlessUtils?: HeadlessUtilsContextType;
344
+ primerContext?: ContextType | undefined;
345
+ };
346
+
347
+ export type PaymentMethodAccordionComponentProps = {
382
348
  /** */
383
- klarnaCategories?: KlarnaCategoriesContextType | null;
349
+ type?: PaymentMethodType | undefined;
384
350
  /** */
385
351
  disabled?: boolean;
386
352
  /** */
387
- toggleExpand?: string;
353
+ expanded?: boolean;
354
+ /** When true, suppresses auto-collapse on window blur.
355
+ Used when payment flows open external popups (e.g. Klarna). */
356
+ "suppress-blur-collapse"?: boolean;
357
+
358
+ /** */
359
+ "onexpanded-change"?: (e: CustomEvent<CustomEvent>) => void;
388
360
  };
389
361
 
390
- export type PaymentMethodComponentProps = {
362
+ export type PaymentMethodButtonComponentProps = {
391
363
  /** */
392
364
  type?: PaymentMethodType | undefined;
393
365
  /** */
394
366
  disabled?: boolean;
395
367
  /** */
396
- paymentMethods?: PaymentMethodsContextType;
397
- /** Analytics utils for sending analytics events */
398
- analyticsUtils?: AnalyticsContextType;
368
+ primerContext?: ContextType | undefined;
369
+ /** */
370
+ "onpayment-method-click"?: (e: CustomEvent<Event>) => void;
399
371
  };
400
372
 
401
373
  export type PaymentMethodContainerComponentProps = {
@@ -406,9 +378,7 @@ export type PaymentMethodContainerComponentProps = {
406
378
  /** */
407
379
  disabled?: boolean;
408
380
  /** */
409
- paymentMethods?: PaymentMethodsContextType;
410
- /** */
411
- clientOptions?: ClientOptionsContextType;
381
+ primerContext?: ContextType | undefined;
412
382
  };
413
383
 
414
384
  export type PortalDialogComponentProps = {
@@ -438,38 +408,24 @@ export type PrimerCheckoutCompleteComponentProps = {};
438
408
 
439
409
  export type PrimerCheckoutErrorComponentProps = {
440
410
  /** */
441
- sdkState?: SdkStateContextType;
411
+ primerContext?: ContextType | undefined;
442
412
  };
443
413
 
444
414
  export type PrimerMainComponentProps = {
445
415
  /** */
446
- paymentMethods?: PaymentMethodsContextType;
447
- /** */
448
- sdkState?: SdkStateContextType;
449
- /** */
450
- clientOptions?: ClientOptionsContextType;
416
+ primerContext?: ContextType | undefined;
451
417
  };
452
418
 
453
419
  export type RedirectPaymentComponentProps = {
454
420
  /** */
455
- paymentMethod?: InitializedPaymentMethod | undefined;
421
+ paymentMethod?: RedirectPaymentMethod | undefined;
456
422
  /** */
457
423
  disabled?: boolean;
458
- /** */
459
- paymentManagers?: InitializedManagersMap;
460
- /** */
461
- sdkState?: SdkStateContextType;
462
- /** */
463
- headlessUtils?: HeadlessUtilsContextType;
464
- /** */
465
- clientOptions?: ClientOptionsContextType | undefined;
466
424
  };
467
425
 
468
426
  export type ShowOtherPaymentsComponentProps = {
469
- /** Consume the vault manager context to interact with vault state */
470
- vaultManager?: VaultManagerContextType;
471
- /** Consume the events context for external control */
472
- contextEventsController?: EventsContextType;
427
+ /** */
428
+ primerContext?: ContextType | undefined;
473
429
  /** */
474
430
  "onprimer:show-other-payments-toggled"?: (e: CustomEvent<CustomEvent>) => void;
475
431
  };
@@ -490,15 +446,19 @@ export type VaultManagerComponentProps = {
490
446
  options?: boolean | AddEventListenerOptions,
491
447
  ) => void;
492
448
  /** */
493
- vaultManagerContext?: VaultManagerContextType;
449
+ primerContext?: ContextType | undefined;
494
450
  /** */
495
- vaultItemContext?: VaultItemContextType;
451
+ "onprimer-vault-payment-error"?: (e: CustomEvent<CustomEvent>) => void;
452
+ };
453
+
454
+ export type PaymentMethodAccordionConfirmButtonComponentProps = {
496
455
  /** */
497
- headlessUtils?: HeadlessUtilsContextType;
456
+ disabled?: boolean;
498
457
  /** */
499
- contextEventsController?: EventsContextType;
458
+ loading?: boolean;
459
+
500
460
  /** */
501
- "onprimer-vault-payment-error"?: (e: CustomEvent<CustomEvent>) => void;
461
+ onconfirm?: (e: CustomEvent<Event>) => void;
502
462
  };
503
463
 
504
464
  export type CardFormSubmitComponentProps = {
@@ -506,35 +466,23 @@ export type CardFormSubmitComponentProps = {
506
466
  Falls back to localized default if not explicitly set. */
507
467
  buttonText?: string;
508
468
  /** */
509
- headlessUtils?: HeadlessUtilsContextType;
510
- /** */
511
- clientOptions?: ClientOptionsContextType;
512
- /** */
513
- sdkState?: SdkStateContextType;
514
- /** */
515
469
  cardFormContext?: CardFormContext | null;
516
470
  /** The button variant to use. */
517
471
  variant?: string;
518
472
  /** Whether the button is disabled. */
519
473
  disabled?: boolean;
520
474
  /** */
521
- analyticsUtils?: AnalyticsContextType;
522
- /** */
523
- contextEventsController?: EventsContextType;
475
+ primerContext?: ContextType | undefined;
524
476
  };
525
477
 
526
478
  export type CardNetworkSelectorComponentProps = {
527
- /** Card networks context from provider */
528
- cardNetworks?: CardNetworksContextType;
529
479
  /** */
530
- headlessUtils?: HeadlessUtilsContextType;
480
+ primerContext?: ContextType | undefined;
531
481
  /** Dispatched when a network is selected with the network name as detail */
532
482
  "onnetwork-selected"?: (e: CustomEvent<CustomEvent>) => void;
533
483
  };
534
484
 
535
485
  export type InputCardExpiryComponentProps = {
536
- /** */
537
- computedStyles?: CSSStyleDeclaration | null;
538
486
  /** The input label text.
539
487
  Falls back to localized default if not explicitly set. */
540
488
  label?: string;
@@ -547,11 +495,11 @@ Falls back to localized default if not explicitly set. */
547
495
  "aria-label"?: string;
548
496
  /** */
549
497
  cardFormContext?: CardFormContext | null;
498
+ /** */
499
+ primerContext?: ContextType | undefined;
550
500
  };
551
501
 
552
502
  export type InputCardHolderNameComponentProps = {
553
- /** */
554
- computedStyles?: CSSStyleDeclaration | null;
555
503
  /** The input label text.
556
504
  Falls back to localized default if not explicitly set. */
557
505
  label?: string;
@@ -564,11 +512,11 @@ Falls back to localized default if not explicitly set. */
564
512
  "aria-label"?: string;
565
513
  /** */
566
514
  cardFormContext?: CardFormContext | null;
515
+ /** */
516
+ primerContext?: ContextType | undefined;
567
517
  };
568
518
 
569
519
  export type InputCardNumberComponentProps = {
570
- /** */
571
- computedStyles?: CSSStyleDeclaration | null;
572
520
  /** The input label text.
573
521
  Falls back to localized default if not explicitly set. */
574
522
  label?: string;
@@ -581,11 +529,11 @@ Falls back to localized default if not explicitly set. */
581
529
  "aria-label"?: string;
582
530
  /** */
583
531
  cardFormContext?: CardFormContext | null;
532
+ /** */
533
+ primerContext?: ContextType | undefined;
584
534
  };
585
535
 
586
536
  export type InputCvvComponentProps = {
587
- /** */
588
- computedStyles?: CSSStyleDeclaration | null;
589
537
  /** The input label text.
590
538
  Falls back to localized default if not explicitly set. */
591
539
  label?: string;
@@ -598,33 +546,35 @@ Falls back to localized default if not explicitly set. */
598
546
  "aria-label"?: string;
599
547
  /** */
600
548
  cardFormContext?: CardFormContext | null;
549
+ /** */
550
+ primerContext?: ContextType | undefined;
601
551
  };
602
552
 
603
553
  export type ApplePayComponentProps = {
604
554
  /** */
605
- paymentMethod?: InitializedPaymentMethod | undefined;
606
- /** */
607
- paymentManagers?: InitializedManagersMap;
555
+ paymentMethod?: NativePaymentMethod | undefined;
608
556
  /** */
609
557
  disabled?: boolean;
558
+ /** */
559
+ primerContext?: ContextType | undefined;
610
560
  };
611
561
 
612
562
  export type GooglePayComponentProps = {
613
563
  /** */
614
- paymentMethod?: InitializedPaymentMethod | undefined;
615
- /** */
616
- paymentManagers?: InitializedManagersMap;
564
+ paymentMethod?: NativePaymentMethod | undefined;
617
565
  /** */
618
566
  disabled?: boolean;
567
+ /** */
568
+ primerContext?: ContextType | undefined;
619
569
  };
620
570
 
621
571
  export type PayPalComponentProps = {
622
572
  /** */
623
- paymentMethod?: InitializedPaymentMethod | undefined;
624
- /** */
625
- paymentManagers?: InitializedManagersMap;
573
+ paymentMethod?: NativePaymentMethod | undefined;
626
574
  /** */
627
575
  disabled?: boolean;
576
+ /** */
577
+ primerContext?: ContextType | undefined;
628
578
  };
629
579
 
630
580
  export type PaymentMethodContentComponentProps = {
@@ -633,15 +583,10 @@ export type PaymentMethodContentComponentProps = {
633
583
  };
634
584
 
635
585
  export type VaultCvvInputComponentProps = {
636
- /** */
637
- computedStyles?: CSSStyleDeclaration | null;
638
586
  /** */
639
587
  paymentMethod?: PaymentCardVaultedMethod | null;
640
- /** Form context for checking form dirty state */
641
- vaultManagerFormContext?: VaultManagerContextType;
642
- /** CVV-specific context for dedicated CVV handling
643
- Separated to minimize re-renders on frequent CVV input changes */
644
- vaultManagerCvvContext?: VaultItemContextType;
588
+ /** */
589
+ primerContext?: ContextType | undefined;
645
590
  };
646
591
 
647
592
  export type VaultDeleteConfirmationComponentProps = {
@@ -663,8 +608,6 @@ export type VaultDeleteConfirmationComponentProps = {
663
608
  listener: (ev: VaultManagerEventMap[K]) => void,
664
609
  options?: boolean | AddEventListenerOptions,
665
610
  ) => void;
666
- /** Consume the vault manager context to access payment method info */
667
- vaultManager?: VaultManagerContextType;
668
611
  };
669
612
 
670
613
  export type VaultEmptyStateComponentProps = {};
@@ -706,8 +649,6 @@ export type VaultManagerHeaderComponentProps = {
706
649
  };
707
650
 
708
651
  export type VaultPaymentMethodItemComponentProps = {
709
- /** */
710
- headlessUtils?: HeadlessUtilsContextType;
711
652
  /** Whether the component is in edit mode */
712
653
  isEditMode?: boolean;
713
654
  /** Strongly typed event declarations */
@@ -722,22 +663,16 @@ export type VaultPaymentMethodItemComponentProps = {
722
663
  listener: (ev: VaultManagerEventMap[K]) => void,
723
664
  options?: boolean | AddEventListenerOptions,
724
665
  ) => void;
725
- /** Consume the vault manager context */
726
- vaultManagerContext?: VaultManagerContextType;
727
666
  /** */
728
- vaultItemContext?: VaultItemContextType;
667
+ primerContext?: ContextType | undefined;
729
668
  /** The payment method to display */
730
- paymentMethod?: VaultedPaymentMethod | null;
669
+ paymentMethod?: VaultedPaymentMethod | undefined;
731
670
  };
732
671
 
733
672
  export type VaultPaymentSubmitComponentProps = {
734
673
  /** The button text to display.
735
674
  Falls back to localized default if not explicitly set. */
736
675
  buttonText?: string;
737
- /** */
738
- headlessInstance?: HeadlessUtilsContextType;
739
- /** */
740
- sdkState?: SdkStateContextType;
741
676
  /** The button variant to use. */
742
677
  variant?: string;
743
678
  /** Whether the button is disabled.
@@ -745,11 +680,7 @@ This property allows external disabling of the button
745
680
  regardless of the context state. */
746
681
  disabled?: boolean;
747
682
  /** */
748
- vaultItemContext?: VaultItemContextType;
749
- /** */
750
- vaultManager?: VaultManagerContextType;
751
- /** */
752
- clientOptions?: PrimerCheckoutOptions | null;
683
+ primerContext?: ContextType | undefined;
753
684
  };
754
685
 
755
686
  export type CustomElements = {
@@ -809,6 +740,13 @@ export type CustomElements = {
809
740
  */
810
741
  "primer-dialog": Partial<DialogComponentProps & BaseProps & BaseEvents>;
811
742
 
743
+ /**
744
+ *
745
+ * ---
746
+ *
747
+ */
748
+ "primer-icon": Partial<PrimerIconComponentProps & BaseProps & BaseEvents>;
749
+
812
750
  /**
813
751
  * A reusable atomic error message component that displays error information
814
752
  * with appropriate styling and accessibility attributes.
@@ -825,13 +763,6 @@ export type CustomElements = {
825
763
  */
826
764
  "primer-error-message": Partial<ErrorMessageComponentProps & BaseProps & BaseEvents>;
827
765
 
828
- /**
829
- *
830
- * ---
831
- *
832
- */
833
- "primer-icon": Partial<PrimerIconComponentProps & BaseProps & BaseEvents>;
834
-
835
766
  /**
836
767
  * A fully type-safe input component that wraps the native HTML input element
837
768
  * while providing additional functionality and styling.
@@ -894,16 +825,6 @@ export type CustomElements = {
894
825
  */
895
826
  "primer-input-wrapper": Partial<InputWrapperComponentProps & BaseProps & BaseEvents>;
896
827
 
897
- /**
898
- *
899
- * ---
900
- *
901
- *
902
- * ### **Events:**
903
- * - **eventName**
904
- */
905
- "primer-portal": Partial<PortalComponentProps & BaseProps & BaseEvents>;
906
-
907
828
  /**
908
829
  * A native select dropdown component
909
830
  * ---
@@ -929,14 +850,8 @@ export type CustomElements = {
929
850
  *
930
851
  * ---
931
852
  *
932
- *
933
- * ### **Events:**
934
- * - **primer-ach-error**
935
- * - **primer-ach-bank-details-collected**
936
- * - **primer-ach-mandate-confirmed**
937
- * - **primer-ach-mandate-declined**
938
853
  */
939
- "primer-ach-payment": Partial<AchPaymentComponentProps & BaseProps & BaseEvents>;
854
+ "primer-adyen-klarna": Partial<AdyenKlarnaComponentProps & BaseProps & BaseEvents>;
940
855
 
941
856
  /**
942
857
  * BillingAddressComponent provides a form for collecting billing address information.
@@ -985,13 +900,6 @@ export type CustomElements = {
985
900
  */
986
901
  "primer-card-form": Partial<CardFormComponentProps & BaseProps & BaseEvents>;
987
902
 
988
- /**
989
- *
990
- * ---
991
- *
992
- */
993
- "primer-dynamic-payment": Partial<DynamicPaymentComponentProps & BaseProps & BaseEvents>;
994
-
995
903
  /**
996
904
  * A container component that connects to the SDK state context
997
905
  * and displays appropriate error messages based on error state.
@@ -1024,6 +932,26 @@ export type CustomElements = {
1024
932
  */
1025
933
  "primer-payment-method": Partial<PaymentMethodComponentProps & BaseProps & BaseEvents>;
1026
934
 
935
+ /**
936
+ *
937
+ * ---
938
+ *
939
+ *
940
+ * ### **Events:**
941
+ * - **expanded-change**
942
+ */
943
+ "primer-payment-method-accordion": Partial<PaymentMethodAccordionComponentProps & BaseProps & BaseEvents>;
944
+
945
+ /**
946
+ *
947
+ * ---
948
+ *
949
+ *
950
+ * ### **Events:**
951
+ * - **payment-method-click**
952
+ */
953
+ "primer-payment-method-button": Partial<PaymentMethodButtonComponentProps & BaseProps & BaseEvents>;
954
+
1027
955
  /**
1028
956
  *
1029
957
  * ---
@@ -1096,6 +1024,18 @@ export type CustomElements = {
1096
1024
  */
1097
1025
  "primer-vault-manager": Partial<VaultManagerComponentProps & BaseProps & BaseEvents>;
1098
1026
 
1027
+ /**
1028
+ *
1029
+ * ---
1030
+ *
1031
+ *
1032
+ * ### **Events:**
1033
+ * - **confirm**
1034
+ */
1035
+ "primer-payment-method-accordion-confirm-button": Partial<
1036
+ PaymentMethodAccordionConfirmButtonComponentProps & BaseProps & BaseEvents
1037
+ >;
1038
+
1099
1039
  /**
1100
1040
  * A form submit button component for card forms.
1101
1041
  *