@primer-io/primer-js 0.3.5 → 0.3.6
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/CHANGELOG.md +7 -0
- package/dist/custom-elements.json +1244 -1402
- package/dist/jsx/index.d.ts +20 -8
- package/dist/primer-loader.d.ts +104 -31
- package/dist/primer-loader.js +27 -8
- package/dist/vscode.html-custom-data.json +5 -4
- package/dist/web-types.json +38 -25
- package/package.json +1 -1
package/dist/jsx/index.d.ts
CHANGED
|
@@ -284,6 +284,16 @@ export type CardFormComponentProps = {
|
|
|
284
284
|
disabled?: boolean;
|
|
285
285
|
/** Payment managers injected from context */
|
|
286
286
|
paymentManagers?: InitializedManagersMap;
|
|
287
|
+
/** Client options for configuration */
|
|
288
|
+
clientOptions?: ClientOptionsContextType;
|
|
289
|
+
/** Headless utils for accessing server configuration */
|
|
290
|
+
headlessUtils?: HeadlessUtilsContextType;
|
|
291
|
+
/** Determines whether to show the cardholder name field
|
|
292
|
+
Uses client configuration with fallback to default (true) */
|
|
293
|
+
shouldShowCardholderName?: boolean;
|
|
294
|
+
/** Determines whether the cardholder name field is required
|
|
295
|
+
Uses client configuration with fallback to default (false) */
|
|
296
|
+
shouldRequireCardholderName?: boolean;
|
|
287
297
|
};
|
|
288
298
|
|
|
289
299
|
export type DynamicPaymentComponentProps = {
|
|
@@ -294,7 +304,7 @@ export type DynamicPaymentComponentProps = {
|
|
|
294
304
|
/** */
|
|
295
305
|
sdkState?: SdkStateContextType;
|
|
296
306
|
/** */
|
|
297
|
-
headlessUtils?:
|
|
307
|
+
headlessUtils?: HeadlessUtilsContextType;
|
|
298
308
|
/** */
|
|
299
309
|
open?: boolean;
|
|
300
310
|
};
|
|
@@ -310,7 +320,7 @@ export type PrimerKlarnaComponentProps = {
|
|
|
310
320
|
/** */
|
|
311
321
|
sdkState?: SdkStateContextType;
|
|
312
322
|
/** */
|
|
313
|
-
headlessUtils?:
|
|
323
|
+
headlessUtils?: HeadlessUtilsContextType;
|
|
314
324
|
/** */
|
|
315
325
|
klarnaCategories?: KlarnaCategoriesContextType | null;
|
|
316
326
|
/** */
|
|
@@ -360,6 +370,8 @@ export type PortalDialogComponentProps = {
|
|
|
360
370
|
/** */
|
|
361
371
|
onOpen?: () => void | undefined;
|
|
362
372
|
/** */
|
|
373
|
+
onContentRendered?: () => void | undefined;
|
|
374
|
+
/** */
|
|
363
375
|
secureHtmlContent?: SecureHtmlContentAccess | undefined;
|
|
364
376
|
/** */
|
|
365
377
|
open?: boolean;
|
|
@@ -391,7 +403,7 @@ export type RedirectPaymentComponentProps = {
|
|
|
391
403
|
/** */
|
|
392
404
|
sdkState?: SdkStateContextType;
|
|
393
405
|
/** */
|
|
394
|
-
headlessUtils?:
|
|
406
|
+
headlessUtils?: HeadlessUtilsContextType;
|
|
395
407
|
};
|
|
396
408
|
|
|
397
409
|
export type ShowOtherPaymentsComponentProps = {
|
|
@@ -419,7 +431,7 @@ export type VaultManagerComponentProps = {
|
|
|
419
431
|
/** */
|
|
420
432
|
vaultItemContext?: VaultItemContextType;
|
|
421
433
|
/** */
|
|
422
|
-
headlessUtils?:
|
|
434
|
+
headlessUtils?: HeadlessUtilsContextType;
|
|
423
435
|
};
|
|
424
436
|
|
|
425
437
|
export type CardFormSubmitComponentProps = {
|
|
@@ -427,7 +439,7 @@ export type CardFormSubmitComponentProps = {
|
|
|
427
439
|
Falls back to localized default if not explicitly set. */
|
|
428
440
|
buttonText?: string;
|
|
429
441
|
/** */
|
|
430
|
-
headlessInstance?:
|
|
442
|
+
headlessInstance?: HeadlessUtilsContextType;
|
|
431
443
|
/** */
|
|
432
444
|
clientOptions?: ClientOptionsContextType;
|
|
433
445
|
/** */
|
|
@@ -444,7 +456,7 @@ export type CardNetworkSelectorComponentProps = {
|
|
|
444
456
|
/** Card networks context from provider */
|
|
445
457
|
cardNetworks?: CardNetworksContextType;
|
|
446
458
|
/** */
|
|
447
|
-
headlessUtils?:
|
|
459
|
+
headlessUtils?: HeadlessUtilsContextType;
|
|
448
460
|
/** Dispatched when a network is selected with the network name as detail */
|
|
449
461
|
"onnetwork-selected"?: (e: CustomEvent<CustomEvent>) => void;
|
|
450
462
|
};
|
|
@@ -597,7 +609,7 @@ export type VaultManagerHeaderComponentProps = {
|
|
|
597
609
|
|
|
598
610
|
export type VaultPaymentMethodItemComponentProps = {
|
|
599
611
|
/** */
|
|
600
|
-
headlessUtils?:
|
|
612
|
+
headlessUtils?: HeadlessUtilsContextType;
|
|
601
613
|
/** Whether the component is in edit mode */
|
|
602
614
|
isEditMode?: boolean;
|
|
603
615
|
/** Strongly typed event declarations */
|
|
@@ -625,7 +637,7 @@ export type VaultPaymentSubmitComponentProps = {
|
|
|
625
637
|
Falls back to localized default if not explicitly set. */
|
|
626
638
|
buttonText?: string;
|
|
627
639
|
/** */
|
|
628
|
-
headlessInstance?:
|
|
640
|
+
headlessInstance?: HeadlessUtilsContextType;
|
|
629
641
|
/** */
|
|
630
642
|
sdkState?: SdkStateContextType;
|
|
631
643
|
/** The button variant to use. */
|
package/dist/primer-loader.d.ts
CHANGED
|
@@ -355,6 +355,10 @@ export interface PaymentMethodConfig {
|
|
|
355
355
|
threeDSecureInitUrl?: string;
|
|
356
356
|
threeDSecureProvider?: string;
|
|
357
357
|
threeDSecureEnabled?: boolean;
|
|
358
|
+
cardholderName?: {
|
|
359
|
+
visible?: boolean;
|
|
360
|
+
required?: boolean;
|
|
361
|
+
};
|
|
358
362
|
};
|
|
359
363
|
forceRedirect?: boolean;
|
|
360
364
|
}
|
|
@@ -751,7 +755,7 @@ export interface PrimerHeadlessCheckout {
|
|
|
751
755
|
createPaymentMethodManager(type: PaymentMethodType, options?: PaymentMethodManagerOptions): Promise<IRedirectPaymentMethodManager | null>;
|
|
752
756
|
createVaultManager(): HeadlessVaultManager;
|
|
753
757
|
getSDKUtilities(): HeadlessSDKUtilities;
|
|
754
|
-
configure
|
|
758
|
+
configure?: (options: Omit<HeadlessUniversalCheckoutOptions, "clientSessionCachingEnabled">) => void;
|
|
755
759
|
getAssetsManager(): IAssetsManager;
|
|
756
760
|
start: () => Promise<void>;
|
|
757
761
|
refreshClientSession(): Promise<boolean>;
|
|
@@ -936,6 +940,7 @@ export interface PrimerCheckoutOptions {
|
|
|
936
940
|
card?: {
|
|
937
941
|
cardholderName?: {
|
|
938
942
|
required?: boolean;
|
|
943
|
+
visible?: boolean;
|
|
939
944
|
};
|
|
940
945
|
};
|
|
941
946
|
applePay?: Omit<ApplePayOptions, "container"> & {
|
|
@@ -1144,7 +1149,7 @@ declare class PrimerEventsController implements ReactiveController {
|
|
|
1144
1149
|
dispatchFormSubmitSuccess(result: unknown): void;
|
|
1145
1150
|
dispatchFormSubmitErrors(errors: unknown): void;
|
|
1146
1151
|
}
|
|
1147
|
-
export type
|
|
1152
|
+
export type HeadlessUtilsContextType = HeadlessSDKUtilities | null;
|
|
1148
1153
|
export type KlarnaCategoriesContextType = {
|
|
1149
1154
|
categories: KlarnaPaymentMethodCategory[];
|
|
1150
1155
|
isLoading: boolean;
|
|
@@ -1307,7 +1312,7 @@ declare class SDKContextController implements ReactiveController {
|
|
|
1307
1312
|
setVaultManager(value: VaultManagerContextType): void;
|
|
1308
1313
|
setKlarnaCategories(value: KlarnaCategoriesContextType): void;
|
|
1309
1314
|
setClientOptions(value: PrimerCheckoutOptions | null): void;
|
|
1310
|
-
setHeadlessUtils(value:
|
|
1315
|
+
setHeadlessUtils(value: HeadlessUtilsContextType): void;
|
|
1311
1316
|
setComputedStyles(value: CSSStyleDeclaration): void;
|
|
1312
1317
|
setVaultManagerCvv(value: VaultItemContextType): void;
|
|
1313
1318
|
}
|
|
@@ -2081,7 +2086,7 @@ declare class PrimerKlarnaComponent extends LitElement {
|
|
|
2081
2086
|
static styles: import("lit").CSSResult[];
|
|
2082
2087
|
paymentManagers: InitializedManagersMap;
|
|
2083
2088
|
sdkState: SdkStateContextType;
|
|
2084
|
-
headlessUtils:
|
|
2089
|
+
headlessUtils: HeadlessUtilsContextType;
|
|
2085
2090
|
klarnaCategories: KlarnaCategoriesContextType | null;
|
|
2086
2091
|
disabled: boolean;
|
|
2087
2092
|
private selectedCategory;
|
|
@@ -2193,7 +2198,7 @@ declare class DynamicPaymentComponent extends LitElement {
|
|
|
2193
2198
|
paymentMethod: InitializedPaymentMethod | undefined;
|
|
2194
2199
|
paymentManagers: InitializedManagersMap;
|
|
2195
2200
|
sdkState: SdkStateContextType;
|
|
2196
|
-
headlessUtils:
|
|
2201
|
+
headlessUtils: HeadlessUtilsContextType;
|
|
2197
2202
|
open: boolean;
|
|
2198
2203
|
private _paymentMethodManagerTask;
|
|
2199
2204
|
private _getAssetsTask;
|
|
@@ -2219,7 +2224,7 @@ declare class RedirectPaymentComponent extends LitElement {
|
|
|
2219
2224
|
disabled: boolean;
|
|
2220
2225
|
paymentManagers: InitializedManagersMap;
|
|
2221
2226
|
sdkState: SdkStateContextType;
|
|
2222
|
-
headlessUtils:
|
|
2227
|
+
headlessUtils: HeadlessUtilsContextType;
|
|
2223
2228
|
private _paymentMethodManagerTask;
|
|
2224
2229
|
/**
|
|
2225
2230
|
* Based on packages/primer-sdk-web/src/payment-methods/Button.tsx
|
|
@@ -2247,12 +2252,14 @@ export interface PortalDialogData {
|
|
|
2247
2252
|
size?: "flex" | "large";
|
|
2248
2253
|
showCloseButton?: boolean;
|
|
2249
2254
|
onOpen?: () => void;
|
|
2255
|
+
onContentRendered?: () => void;
|
|
2250
2256
|
}
|
|
2251
2257
|
export declare class PortalDialogComponent extends LitElement {
|
|
2252
2258
|
static styles: import("lit").CSSResult[];
|
|
2253
2259
|
size: "flex" | "large";
|
|
2254
2260
|
showCloseButton: boolean;
|
|
2255
2261
|
onOpen?: () => void;
|
|
2262
|
+
onContentRendered?: () => void;
|
|
2256
2263
|
secureHtmlContent?: SecureHtmlContentAccess;
|
|
2257
2264
|
open: boolean;
|
|
2258
2265
|
/**
|
|
@@ -2314,7 +2321,7 @@ declare class VaultManagerComponent extends LitElement {
|
|
|
2314
2321
|
removeEventListener: <K extends keyof VaultManagerEventMap>(type: K, listener: (ev: VaultManagerEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void;
|
|
2315
2322
|
vaultManagerContext: VaultManagerContextType;
|
|
2316
2323
|
vaultItemContext: VaultItemContextType;
|
|
2317
|
-
headlessUtils:
|
|
2324
|
+
headlessUtils: HeadlessUtilsContextType;
|
|
2318
2325
|
/**
|
|
2319
2326
|
* Whether we're in edit mode
|
|
2320
2327
|
*/
|
|
@@ -2411,7 +2418,7 @@ declare class VaultPaymentMethodItemComponent extends LitElement {
|
|
|
2411
2418
|
*/
|
|
2412
2419
|
vaultManagerContext: VaultManagerContextType;
|
|
2413
2420
|
vaultItemContext: VaultItemContextType;
|
|
2414
|
-
headlessUtils:
|
|
2421
|
+
headlessUtils: HeadlessUtilsContextType;
|
|
2415
2422
|
/**
|
|
2416
2423
|
* The payment method to display
|
|
2417
2424
|
*/
|
|
@@ -2578,7 +2585,7 @@ declare class VaultPaymentSubmitComponent extends LitElement {
|
|
|
2578
2585
|
*/
|
|
2579
2586
|
get buttonText(): string;
|
|
2580
2587
|
set buttonText(value: string);
|
|
2581
|
-
headlessInstance:
|
|
2588
|
+
headlessInstance: HeadlessUtilsContextType;
|
|
2582
2589
|
sdkState: SdkStateContextType;
|
|
2583
2590
|
vaultItemContext: VaultItemContextType;
|
|
2584
2591
|
vaultManager: VaultManagerContextType;
|
|
@@ -2725,14 +2732,36 @@ declare class CardFormComponent extends LitElement {
|
|
|
2725
2732
|
* Payment managers injected from context
|
|
2726
2733
|
*/
|
|
2727
2734
|
paymentManagers: InitializedManagersMap;
|
|
2735
|
+
/**
|
|
2736
|
+
* Client options for configuration
|
|
2737
|
+
*/
|
|
2738
|
+
clientOptions: ClientOptionsContextType;
|
|
2739
|
+
/**
|
|
2740
|
+
* Headless utils for accessing server configuration
|
|
2741
|
+
*/
|
|
2742
|
+
headlessUtils: HeadlessUtilsContextType;
|
|
2728
2743
|
/**
|
|
2729
2744
|
* Context provider for card form data
|
|
2730
2745
|
*/
|
|
2731
2746
|
private readonly cardFormProvider;
|
|
2747
|
+
/**
|
|
2748
|
+
* Determines whether to show the cardholder name field
|
|
2749
|
+
* Uses client configuration with fallback to default (true)
|
|
2750
|
+
*/
|
|
2751
|
+
get shouldShowCardholderName(): boolean;
|
|
2752
|
+
/**
|
|
2753
|
+
* Determines whether the cardholder name field is required
|
|
2754
|
+
* Uses client configuration with fallback to default (false)
|
|
2755
|
+
*/
|
|
2756
|
+
get shouldRequireCardholderName(): boolean;
|
|
2732
2757
|
/**
|
|
2733
2758
|
* Events controller for dispatching form events
|
|
2734
2759
|
*/
|
|
2735
2760
|
private readonly eventsController;
|
|
2761
|
+
/**
|
|
2762
|
+
* Registry for input controllers to enable context-driven meta state management
|
|
2763
|
+
*/
|
|
2764
|
+
private readonly inputControllers;
|
|
2736
2765
|
/**
|
|
2737
2766
|
* Task to set up the card form with hosted inputs
|
|
2738
2767
|
*/
|
|
@@ -2769,19 +2798,6 @@ declare class CardFormComponent extends LitElement {
|
|
|
2769
2798
|
private handleFormSubmit;
|
|
2770
2799
|
render(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
2771
2800
|
}
|
|
2772
|
-
export interface CardFormContext {
|
|
2773
|
-
cardNumberInput: IHeadlessHostedInput;
|
|
2774
|
-
cardHolderNameInput?: IHeadlessHostedInput;
|
|
2775
|
-
expiryInput: IHeadlessHostedInput;
|
|
2776
|
-
cvvInput: IHeadlessHostedInput;
|
|
2777
|
-
setCardholderName: (val: string) => void;
|
|
2778
|
-
setCardNetwork: (val: string) => void;
|
|
2779
|
-
validate: () => Promise<Validation>;
|
|
2780
|
-
submit: (values?: CardPaymentMethodSubmitValues) => Promise<void>;
|
|
2781
|
-
errors?: Validation["validationErrors"];
|
|
2782
|
-
hideLabels?: boolean;
|
|
2783
|
-
disabled?: boolean;
|
|
2784
|
-
}
|
|
2785
2801
|
/**
|
|
2786
2802
|
* A shared type that ensures the host of a HostedInputController contains
|
|
2787
2803
|
* the required properties for proper hosted input handling.
|
|
@@ -2797,10 +2813,12 @@ export interface HostedInputHost extends ReactiveControllerHost, LitElement {
|
|
|
2797
2813
|
label: string;
|
|
2798
2814
|
requestUpdate: ReactiveControllerHost["requestUpdate"];
|
|
2799
2815
|
}
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2816
|
+
declare enum HostedInputType {
|
|
2817
|
+
CARD_NUMBER = "cardNumber",
|
|
2818
|
+
CVV = "cvv",
|
|
2819
|
+
EXPIRY_DATE = "expire",
|
|
2820
|
+
CARD_HOLDER_NAME = "cardholderName"
|
|
2821
|
+
}
|
|
2804
2822
|
/**
|
|
2805
2823
|
* Configuration for the hosted input controller.
|
|
2806
2824
|
*/
|
|
@@ -2819,7 +2837,6 @@ export interface HostedInputConfig {
|
|
|
2819
2837
|
*/
|
|
2820
2838
|
export type InputSource = IHeadlessHostedInput | "cardholderName" | undefined;
|
|
2821
2839
|
declare class HostedInputController<T extends HostedInputHost> implements ReactiveController {
|
|
2822
|
-
private _isFocused;
|
|
2823
2840
|
private _meta;
|
|
2824
2841
|
private _hostedInput;
|
|
2825
2842
|
private _standardInput;
|
|
@@ -2857,18 +2874,74 @@ declare class HostedInputController<T extends HostedInputHost> implements Reacti
|
|
|
2857
2874
|
private setupStandardInput;
|
|
2858
2875
|
/**
|
|
2859
2876
|
* Sets up event listeners for standard input elements
|
|
2877
|
+
* Following the same meta state tracking pattern as hosted inputs in legacy SDK
|
|
2860
2878
|
*/
|
|
2861
2879
|
private setupInputEventListeners;
|
|
2862
2880
|
/**
|
|
2863
2881
|
* Sets up a hosted iframe input for iframe-based input types
|
|
2864
2882
|
*/
|
|
2865
2883
|
private setupHostedIframeInput;
|
|
2866
|
-
/** Exposes the current focus state. */
|
|
2867
|
-
get isFocused(): boolean;
|
|
2868
2884
|
/** Exposes the current metadata state. */
|
|
2869
2885
|
get meta(): InputMetadata;
|
|
2886
|
+
/**
|
|
2887
|
+
* Updates meta state from validation results.
|
|
2888
|
+
* Used to propagate form-level validation results to individual inputs.
|
|
2889
|
+
*/
|
|
2890
|
+
updateMetaFromValidation(validationResult: {
|
|
2891
|
+
valid?: boolean;
|
|
2892
|
+
error?: string | null;
|
|
2893
|
+
errorCode?: string | null;
|
|
2894
|
+
}): void;
|
|
2895
|
+
/**
|
|
2896
|
+
* Sets the submitted state for form submission handling.
|
|
2897
|
+
* Called when form submission occurs.
|
|
2898
|
+
*/
|
|
2899
|
+
setSubmitted(submitted: boolean): void;
|
|
2870
2900
|
hostConnected(): void;
|
|
2871
2901
|
hostDisconnected(): void;
|
|
2902
|
+
/**
|
|
2903
|
+
* Registers this controller with the card form context for centralized management
|
|
2904
|
+
*/
|
|
2905
|
+
private registerWithContext;
|
|
2906
|
+
/**
|
|
2907
|
+
* Unregisters this controller from the card form context
|
|
2908
|
+
*/
|
|
2909
|
+
private unregisterFromContext;
|
|
2910
|
+
}
|
|
2911
|
+
export interface IHostedInputController {
|
|
2912
|
+
meta: {
|
|
2913
|
+
active: boolean;
|
|
2914
|
+
dirty: boolean;
|
|
2915
|
+
error: string | null;
|
|
2916
|
+
errorCode: string | null;
|
|
2917
|
+
submitted: boolean;
|
|
2918
|
+
touched: boolean;
|
|
2919
|
+
valid: boolean;
|
|
2920
|
+
};
|
|
2921
|
+
setSubmitted(submitted: boolean): void;
|
|
2922
|
+
updateMetaFromValidation(result: {
|
|
2923
|
+
valid?: boolean;
|
|
2924
|
+
error?: string | null;
|
|
2925
|
+
errorCode?: string | null;
|
|
2926
|
+
}): void;
|
|
2927
|
+
focusInput(): void;
|
|
2928
|
+
}
|
|
2929
|
+
export interface CardFormContext {
|
|
2930
|
+
cardNumberInput: IHeadlessHostedInput;
|
|
2931
|
+
cardholderNameInput?: IHeadlessHostedInput;
|
|
2932
|
+
expiryInput: IHeadlessHostedInput;
|
|
2933
|
+
cvvInput: IHeadlessHostedInput;
|
|
2934
|
+
setCardholderName: (val: string) => void;
|
|
2935
|
+
setCardNetwork: (val: string) => void;
|
|
2936
|
+
validate: () => Promise<Validation>;
|
|
2937
|
+
submit: (values?: CardPaymentMethodSubmitValues) => Promise<void>;
|
|
2938
|
+
errors?: Validation["validationErrors"];
|
|
2939
|
+
hideLabels?: boolean;
|
|
2940
|
+
disabled?: boolean;
|
|
2941
|
+
setSubmissionState: (submitted: boolean) => void;
|
|
2942
|
+
propagateValidationErrors: (errors: InputValidationError[]) => void;
|
|
2943
|
+
registerInputController: (inputType: HostedInputType, controller: IHostedInputController) => void;
|
|
2944
|
+
unregisterInputController: (inputType: HostedInputType) => void;
|
|
2872
2945
|
}
|
|
2873
2946
|
/**
|
|
2874
2947
|
* Translation configuration object
|
|
@@ -3030,7 +3103,7 @@ declare class CardFormSubmitComponent extends LitElement {
|
|
|
3030
3103
|
*/
|
|
3031
3104
|
get buttonText(): string;
|
|
3032
3105
|
set buttonText(value: string);
|
|
3033
|
-
headlessInstance:
|
|
3106
|
+
headlessInstance: HeadlessUtilsContextType;
|
|
3034
3107
|
clientOptions: ClientOptionsContextType;
|
|
3035
3108
|
sdkState: SdkStateContextType;
|
|
3036
3109
|
cardFormContext: CardFormContext | null;
|
|
@@ -3064,7 +3137,7 @@ declare class CardNetworkSelectorComponent extends LitElement {
|
|
|
3064
3137
|
* Card networks context from provider
|
|
3065
3138
|
*/
|
|
3066
3139
|
cardNetworks: CardNetworksContextType;
|
|
3067
|
-
headlessUtils:
|
|
3140
|
+
headlessUtils: HeadlessUtilsContextType;
|
|
3068
3141
|
private selectedCardNetwork;
|
|
3069
3142
|
/**
|
|
3070
3143
|
* Internal state to track if dropdown is open
|